@ynput/ayon-frontend-shared 0.2.25 → 0.2.26
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/Views.cjs.js +1 -1
- package/dist/Views.es.js +14 -14
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +33 -25
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +10 -10
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +229 -68
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js +21 -25
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +64 -54
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +22 -20
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +60 -59
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +14 -14
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +17 -18
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +38 -33
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js +2 -0
- package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useCustomProtocolCheck.es.js +43 -0
- package/dist/shared/src/hooks/useCustomProtocolCheck.es.js.map +1 -0
- package/dist/types/containers/Slicer/createFilterFromSlicer.d.ts +3 -1
- package/dist/types/containers/Slicer/types.d.ts +1 -1
- package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +1 -0
- package/dist/types/containers/Views/context/ViewsContext.d.ts +2 -1
- package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +3 -3
- package/dist/types/hooks/useActionTriggers.d.ts +1 -1
- package/dist/types/hooks/useCustomProtocolCheck.d.ts +10 -0
- package/package.json +1 -1
package/dist/Views.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./shared/src/containers/Views/Views.cjs.js"),e=require("./shared/src/containers/Views/context/ViewsContext.cjs.js"),n=require("./shared/src/containers/Views/ViewsButton/ViewsButton.cjs.js"),s=require("./shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js"),i=require("./shared/src/containers/Views/utils/portalUtils.cjs.js"),o=require("./shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js"),t=require("./shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js"),r=require("./shared/src/containers/Views/utils/generateWorkingView.cjs.js"),V=require("./shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js"),w=require("./shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js"),a=require("./shared/src/containers/Views/hooks/useSelectedView.cjs.js"),c=require("./shared/src/containers/Views/hooks/useViewsMutations.cjs.js"),g=require("./shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./shared/src/containers/Views/Views.cjs.js"),e=require("./shared/src/containers/Views/context/ViewsContext.cjs.js"),n=require("./shared/src/containers/Views/ViewsButton/ViewsButton.cjs.js"),s=require("./shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js"),i=require("./shared/src/containers/Views/utils/portalUtils.cjs.js"),o=require("./shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js"),t=require("./shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js"),r=require("./shared/src/containers/Views/utils/generateWorkingView.cjs.js"),V=require("./shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js"),w=require("./shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js"),a=require("./shared/src/containers/Views/hooks/useSelectedView.cjs.js"),c=require("./shared/src/containers/Views/hooks/useViewsMutations.cjs.js"),g=require("./shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js"),S=require("./shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js"),l=require("./shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js"),I=require("./shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js"),v=["overview","taskProgress","lists","reviews"];exports.Views=u.Views;exports.ViewsProvider=e.ViewsProvider;exports.isViewStudioScope=e.isViewStudioScope;exports.useViewsContext=e.useViewsContext;exports.ViewsButton=n.ViewsButton;exports.NEW_VIEW_ID=s.NEW_VIEW_ID;exports.ViewsMenuContainer=s.ViewsMenuContainer;exports.WORKING_VIEW_ID=s.WORKING_VIEW_ID;exports.getViewsPortalContainer=i.getViewsPortalContainer;exports.getViewsPortalId=i.getViewsPortalId;exports.getCustomViewsFallback=o.getCustomViewsFallback;exports.VIEW_DIVIDER=t.VIEW_DIVIDER;exports.ViewsMenu=t.ViewsMenu;exports.generateViewId=r.generateViewId;exports.generateWorkingView=r.generateWorkingView;exports.useBuildViewMenuItems=V.default;exports.useSaveViewFromCurrent=w.useSaveViewFromCurrent;exports.useSelectedView=a.useSelectedView;exports.useViewsMutations=c.useViewsMutations;exports.useViewsShortcuts=g.useViewsShortcuts;exports.useTaskProgressViewSettings=S.useTaskProgressViewSettings;exports.useOverviewViewSettings=l.useOverviewViewSettings;exports.useListsViewSettings=I.useListsViewSettings;exports.viewTypes=v;
|
|
2
2
|
//# sourceMappingURL=Views.cjs.js.map
|
package/dist/Views.es.js
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
import { Views as t } from "./shared/src/containers/Views/Views.es.js";
|
|
2
|
-
import { ViewsProvider as i,
|
|
3
|
-
import { ViewsButton as
|
|
2
|
+
import { ViewsProvider as i, isViewStudioScope as w, useViewsContext as V } from "./shared/src/containers/Views/context/ViewsContext.es.js";
|
|
3
|
+
import { ViewsButton as m } from "./shared/src/containers/Views/ViewsButton/ViewsButton.es.js";
|
|
4
4
|
import { NEW_VIEW_ID as n, ViewsMenuContainer as x, WORKING_VIEW_ID as f } from "./shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
5
5
|
import { getViewsPortalContainer as g, getViewsPortalId as I } from "./shared/src/containers/Views/utils/portalUtils.es.js";
|
|
6
6
|
import { getCustomViewsFallback as v } from "./shared/src/containers/Views/utils/getCustomViewsFallback.es.js";
|
|
7
|
-
import { VIEW_DIVIDER as
|
|
8
|
-
import { generateViewId as
|
|
7
|
+
import { VIEW_DIVIDER as d, ViewsMenu as W } from "./shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
8
|
+
import { generateViewId as C, generateWorkingView as E } from "./shared/src/containers/Views/utils/generateWorkingView.es.js";
|
|
9
9
|
import { default as _ } from "./shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js";
|
|
10
10
|
import { useSaveViewFromCurrent as D } from "./shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js";
|
|
11
11
|
import { useSelectedView as B } from "./shared/src/containers/Views/hooks/useSelectedView.es.js";
|
|
12
12
|
import { useViewsMutations as N } from "./shared/src/containers/Views/hooks/useViewsMutations.es.js";
|
|
13
13
|
import { useViewsShortcuts as R } from "./shared/src/containers/Views/hooks/useViewsShortcuts.es.js";
|
|
14
14
|
import { useTaskProgressViewSettings as b } from "./shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js";
|
|
15
|
-
import { useOverviewViewSettings as
|
|
16
|
-
import { useListsViewSettings as
|
|
15
|
+
import { useOverviewViewSettings as y } from "./shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js";
|
|
16
|
+
import { useListsViewSettings as K } from "./shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js";
|
|
17
17
|
const e = ["overview", "taskProgress", "lists", "reviews"];
|
|
18
18
|
export {
|
|
19
19
|
n as NEW_VIEW_ID,
|
|
20
|
-
|
|
20
|
+
d as VIEW_DIVIDER,
|
|
21
21
|
t as Views,
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
m as ViewsButton,
|
|
23
|
+
W as ViewsMenu,
|
|
24
24
|
x as ViewsMenuContainer,
|
|
25
25
|
i as ViewsProvider,
|
|
26
26
|
f as WORKING_VIEW_ID,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
C as generateViewId,
|
|
28
|
+
E as generateWorkingView,
|
|
29
29
|
v as getCustomViewsFallback,
|
|
30
30
|
g as getViewsPortalContainer,
|
|
31
31
|
I as getViewsPortalId,
|
|
32
|
-
w as
|
|
32
|
+
w as isViewStudioScope,
|
|
33
33
|
_ as useBuildViewMenuItems,
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
K as useListsViewSettings,
|
|
35
|
+
y as useOverviewViewSettings,
|
|
36
36
|
D as useSaveViewFromCurrent,
|
|
37
37
|
B as useSelectedView,
|
|
38
38
|
b as useTaskProgressViewSettings,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const I=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");const g=require("react");require("react-dom");require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("lodash");require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("date-fns");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");const C=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../Watchers/Watchers.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../Badge/Badge.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../Chips/Chips.cjs.js");require("../LinksManager.styled.cjs.js");const E=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../LinksManagerDialog.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const h=({projectName:q,direction:t,entityId:s,entityType:a,targetEntityType:n,linkType:d})=>{const{history:r}=C.useCellEditing(),[c]=I.useDeleteEntityLinkMutation(),[l]=I.useCreateEntityLinkMutation(),k=g.useCallback(async(i,o=!0)=>{try{const u=i.map(e=>({targetEntityId:e.targetEntityId,linkId:e.linkId,sourceEntityId:s,sourceEntityType:a,targetEntityType:n,linkType:d,direction:t,projectName:q}));await E.addMultipleLinks(u,l),o&&r&&r.pushHistory([()=>L(i.map(e=>({id:e.linkId,target:{entityId:e.targetEntityId,entityType:n}})),!1)])}catch{}},[l,q,s,a,n,d,t,r]),L=g.useCallback(async(i,o=!0)=>{try{const u=i.map(e=>({id:e.id,target:e.target,source:{entityType:a,entityId:s},linkType:d,direction:t,projectName:q}));await E.removeMultipleLinks(u,c),o&&r&&r.pushHistory(i.map(e=>()=>k([{targetEntityId:e.target.entityId,linkId:e.id}],!1)))}catch{}},[c,q,s,a,n,d,t,r]);return{remove:L,add:k}};module.exports=h;
|
|
1
|
+
"use strict";require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const g=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");const h=require("react");require("react-dom");require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("lodash");const E=require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("date-fns");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");const m=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../Watchers/Watchers.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../Badge/Badge.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../Chips/Chips.cjs.js");require("../LinksManager.styled.cjs.js");const I=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../LinksManagerDialog.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const C=({projectName:q,direction:t,entityId:i,entityType:s,targetEntityType:a,linkType:n})=>{const{history:u}=m.useCellEditing(),[l]=g.useDeleteEntityLinkMutation(),[f]=g.useCreateEntityLinkMutation(),k=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.targetEntityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({targetEntityId:e.targetEntityId,linkId:e.linkId,sourceEntityId:i,sourceEntityType:s,targetEntityType:a,linkType:n,direction:t,projectName:q}));await I.addMultipleLinks(d,f),o&&u&&u.pushHistory([()=>L(r.map(e=>({id:e.linkId,target:{entityId:e.targetEntityId,entityType:a}})),!1)])}catch{}},[f,q,i,s,a,n,t,u]),L=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.target.entityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({id:e.id,target:e.target,source:{entityType:s,entityId:i},linkType:n,direction:t,projectName:q}));await I.removeMultipleLinks(d,l),o&&u&&u.pushHistory(r.map(e=>()=>k([{targetEntityId:e.target.entityId,linkId:e.id}],!1)))}catch{}},[l,q,i,s,a,n,t,u]);return{remove:L,add:k}};module.exports=C;
|
|
2
2
|
//# sourceMappingURL=useUpdateLinks.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateLinks.cjs.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUpdateLinks.cjs.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n // prevent self-referential links\n const hasSelf = links.some((l) => l.targetEntityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n // prevent removing if any link is self-referential (shouldn't happen, but guard)\n const hasSelf = links.some((l) => l.target.entityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","l","toast","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":"q7YA6BA,MAAMA,EAAiB,CAAC,CACtB,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,SAAAC,CACF,IAAa,CACL,KAAA,CAAE,QAAAC,CAAQ,EAAIC,iBAAe,EAE7B,CAACC,CAAU,EAAIC,8BAA4B,EAC3C,CAACC,CAAO,EAAIC,8BAA4B,EAGxCC,EAAWC,EAAA,YACf,MAAOC,EAAOC,EAAe,KAAS,CAChC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,iBAAmBd,CAAQ,EAClD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,MAAMC,EAA0BJ,EAAM,IAAKK,IAAU,CACnD,eAAgBA,EAAK,eACrB,OAAQA,EAAK,OACb,eAAgBjB,EAChB,iBAAkBC,EAClB,iBAAAC,EACA,SAAAC,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEI,MAAAoB,EAAA,iBAAiBF,EAAYR,CAAO,EAGtCK,GAAgBT,GAClBA,EAAQ,YAAY,CAClB,IACEe,EACEP,EAAM,IAAKK,IAAU,CACnB,GAAIA,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYf,CAAiB,CAAA,EACtE,EACF,EAAA,CACF,CACH,OAEgB,CAAA,CAGvB,EACA,CAACM,EAASV,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAC7F,EAGMe,EAAcR,EAAA,YAClB,MACEC,EACAC,EAAwB,KACrB,CACC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,OAAO,WAAad,CAAQ,EACnD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,MAAMK,EAAgCR,EAAM,IAAKK,IAAU,CACzD,GAAIA,EAAK,GACT,OAAQA,EAAK,OACb,OAAQ,CAAE,WAAAhB,EAAY,SAAAD,CAAS,EAC/B,SAAAG,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEI,MAAAuB,EAAA,oBAAoBD,EAAed,CAAU,EAI/CO,GAAgBT,GACVA,EAAA,YACNQ,EAAM,IACHK,GAAS,IACRP,EAAS,CAAC,CAAE,eAAgBO,EAAK,OAAO,SAAU,OAAQA,EAAK,EAAG,CAAC,EAAG,EAAK,CAAA,CAEjF,OAEiB,CAAA,CAGvB,EACA,CAACX,EAAYR,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAChG,EAEA,MAAO,CAAE,OAAQe,EAAa,IAAKT,CAAS,CAC9C"}
|
|
@@ -87,7 +87,7 @@ import "../../../containers/Feed/context/FeedContext.es.js";
|
|
|
87
87
|
import "../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
|
|
88
88
|
import "../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
|
|
89
89
|
import "lodash";
|
|
90
|
-
import "react-toastify";
|
|
90
|
+
import { toast as g } from "react-toastify";
|
|
91
91
|
import "uuid";
|
|
92
92
|
import "../../../util/pubsub.es.js";
|
|
93
93
|
import "../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js";
|
|
@@ -128,7 +128,7 @@ import "date-fns";
|
|
|
128
128
|
import "../../EmptyPlaceholder/EmptyPlaceholder.es.js";
|
|
129
129
|
import "../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
130
130
|
import "../../../containers/ProjectTreeTable/ProjectTreeTable.es.js";
|
|
131
|
-
import { useCellEditing as
|
|
131
|
+
import { useCellEditing as E } from "../../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
|
|
132
132
|
import "@tanstack/react-table";
|
|
133
133
|
import "../../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
134
134
|
import "../../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
|
|
@@ -177,7 +177,7 @@ import "../../Feedback/FeedbackContext.es.js";
|
|
|
177
177
|
import "../../Feedback/SupportBubble.es.js";
|
|
178
178
|
import "../../Chips/Chips.es.js";
|
|
179
179
|
import "../LinksManager.styled.es.js";
|
|
180
|
-
import { addMultipleLinks as
|
|
180
|
+
import { addMultipleLinks as v, removeMultipleLinks as y } from "../utils/linkUpdates.es.js";
|
|
181
181
|
import "../../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
|
|
182
182
|
import "../LinksManagerDialog.es.js";
|
|
183
183
|
import "../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js";
|
|
@@ -212,29 +212,33 @@ import "../../../containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
|
212
212
|
const ki = ({
|
|
213
213
|
projectName: m,
|
|
214
214
|
direction: p,
|
|
215
|
-
entityId:
|
|
216
|
-
entityType:
|
|
217
|
-
targetEntityType:
|
|
215
|
+
entityId: o,
|
|
216
|
+
entityType: s,
|
|
217
|
+
targetEntityType: a,
|
|
218
218
|
linkType: e
|
|
219
219
|
}) => {
|
|
220
|
-
const { history:
|
|
221
|
-
async (
|
|
220
|
+
const { history: i } = E(), [f] = I(), [c] = k(), l = L(
|
|
221
|
+
async (r, n = !0) => {
|
|
222
222
|
try {
|
|
223
|
-
|
|
223
|
+
if (r.some((t) => t.targetEntityId === o)) {
|
|
224
|
+
g.error("You can't link an entity to itself");
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const u = r.map((t) => ({
|
|
224
228
|
targetEntityId: t.targetEntityId,
|
|
225
229
|
linkId: t.linkId,
|
|
226
|
-
sourceEntityId:
|
|
227
|
-
sourceEntityType:
|
|
228
|
-
targetEntityType:
|
|
230
|
+
sourceEntityId: o,
|
|
231
|
+
sourceEntityType: s,
|
|
232
|
+
targetEntityType: a,
|
|
229
233
|
linkType: e,
|
|
230
234
|
direction: p,
|
|
231
235
|
projectName: m
|
|
232
236
|
}));
|
|
233
|
-
await
|
|
234
|
-
() =>
|
|
235
|
-
|
|
237
|
+
await v(u, c), n && i && i.pushHistory([
|
|
238
|
+
() => h(
|
|
239
|
+
r.map((t) => ({
|
|
236
240
|
id: t.linkId,
|
|
237
|
-
target: { entityId: t.targetEntityId, entityType:
|
|
241
|
+
target: { entityId: t.targetEntityId, entityType: a }
|
|
238
242
|
})),
|
|
239
243
|
!1
|
|
240
244
|
)
|
|
@@ -242,29 +246,33 @@ const ki = ({
|
|
|
242
246
|
} catch {
|
|
243
247
|
}
|
|
244
248
|
},
|
|
245
|
-
[c, m, s, a,
|
|
246
|
-
),
|
|
247
|
-
async (
|
|
249
|
+
[c, m, o, s, a, e, p, i]
|
|
250
|
+
), h = L(
|
|
251
|
+
async (r, n = !0) => {
|
|
248
252
|
try {
|
|
249
|
-
|
|
253
|
+
if (r.some((t) => t.target.entityId === o)) {
|
|
254
|
+
g.error("You can't link an entity to itself");
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const u = r.map((t) => ({
|
|
250
258
|
id: t.id,
|
|
251
259
|
target: t.target,
|
|
252
|
-
source: { entityType:
|
|
260
|
+
source: { entityType: s, entityId: o },
|
|
253
261
|
linkType: e,
|
|
254
262
|
direction: p,
|
|
255
263
|
projectName: m
|
|
256
264
|
}));
|
|
257
|
-
await
|
|
258
|
-
|
|
265
|
+
await y(u, f), n && i && i.pushHistory(
|
|
266
|
+
r.map(
|
|
259
267
|
(t) => () => l([{ targetEntityId: t.target.entityId, linkId: t.id }], !1)
|
|
260
268
|
)
|
|
261
269
|
);
|
|
262
270
|
} catch {
|
|
263
271
|
}
|
|
264
272
|
},
|
|
265
|
-
[
|
|
273
|
+
[f, m, o, s, a, e, p, i]
|
|
266
274
|
);
|
|
267
|
-
return { remove:
|
|
275
|
+
return { remove: h, add: l };
|
|
268
276
|
};
|
|
269
277
|
export {
|
|
270
278
|
ki as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateLinks.es.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useUpdateLinks.es.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n // prevent self-referential links\n const hasSelf = links.some((l) => l.targetEntityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n // prevent removing if any link is self-referential (shouldn't happen, but guard)\n const hasSelf = links.some((l) => l.target.entityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","l","toast","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,KAAiB,CAAC;AAAA,EACtB,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AACF,MAAa;AACL,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAe,GAE7B,CAACC,CAAU,IAAIC,EAA4B,GAC3C,CAACC,CAAO,IAAIC,EAA4B,GAGxCC,IAAWC;AAAA,IACf,OAAOC,GAAOC,IAAe,OAAS;AAChC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,mBAAmBd,CAAQ,GAClD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMC,IAA0BJ,EAAM,IAAI,CAACK,OAAU;AAAA,UACnD,gBAAgBA,EAAK;AAAA,UACrB,QAAQA,EAAK;AAAA,UACb,gBAAgBjB;AAAA,UAChB,kBAAkBC;AAAA,UAClB,kBAAAC;AAAA,UACA,UAAAC;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAoB,EAAiBF,GAAYR,CAAO,GAGtCK,KAAgBT,KAClBA,EAAQ,YAAY;AAAA,UAClB,MACEe;AAAA,YACEP,EAAM,IAAI,CAACK,OAAU;AAAA,cACnB,IAAIA,EAAK;AAAA,cACT,QAAQ,EAAE,UAAUA,EAAK,gBAAgB,YAAYf,EAAiB;AAAA,YAAA,EACtE;AAAA,YACF;AAAA,UAAA;AAAA,QACF,CACH;AAAA,cAEgB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACM,GAASV,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAC7F,GAGMe,IAAcR;AAAA,IAClB,OACEC,GACAC,IAAwB,OACrB;AACC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,OAAO,aAAad,CAAQ,GACnD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMK,IAAgCR,EAAM,IAAI,CAACK,OAAU;AAAA,UACzD,IAAIA,EAAK;AAAA,UACT,QAAQA,EAAK;AAAA,UACb,QAAQ,EAAE,YAAAhB,GAAY,UAAAD,EAAS;AAAA,UAC/B,UAAAG;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAuB,EAAoBD,GAAed,CAAU,GAI/CO,KAAgBT,KACVA,EAAA;AAAA,UACNQ,EAAM;AAAA,YACJ,CAACK,MAAS,MACRP,EAAS,CAAC,EAAE,gBAAgBO,EAAK,OAAO,UAAU,QAAQA,EAAK,GAAG,CAAC,GAAG,EAAK;AAAA,UAAA;AAAA,QAEjF;AAAA,cAEiB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACX,GAAYR,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAChG;AAEA,SAAO,EAAE,QAAQe,GAAa,KAAKT,EAAS;AAC9C;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("../../../../../_virtual/jsx-runtime.cjs.js"),l=require("react");require("@ynput/ayon-react-components");require("lodash");const a=require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");const K=require("../utils/cellUtils.cjs.js"),v=require("../utils/getTypeDefaultValue.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("clsx");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../ProjectTreeTable.cjs.js");const S=require("./CellEditingContext.cjs.js"),V=require("../hooks/useHistory.cjs.js"),B=require("./SelectionCellsContext.cjs.js"),H=require("../hooks/useUpdateTableData.cjs.js"),L=require("./ProjectTableContext.cjs.js"),$=require("../utils/validateUpdateEntities.cjs.js");require("./ClipboardContext.cjs.js");require("./ColumnSettingsContext.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("./ProjectDataContext.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/LinksManager/LinksManagerDialog.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const z=({children:A})=>{const[f,D]=l.useState(null),T=l.useCallback(i=>i===f,[f]),m=V(),{pushHistory:F,undo:U,redo:P,canUndo:w,canRedo:k}=m,{selectedCells:E}=B.useSelectionCellsContext(),{updateEntities:I,inheritFromParent:c}=H({pushHistory:F}),{attribFields:y,getEntityById:j}=L.useProjectTableContext(),d=l.useCallback(async(i=[],e=!0)=>{try{return $(i,y),await I(i,e)}catch(r){return a.toast.error(r.message),Promise.reject(r)}},[I,y]),g=async()=>{const[i,e,r]=U()||[];if(i&&i.length>0)try{await d(i,!1)}catch{a.toast.error("Failed to undo changes")}if(e&&e.length>0)try{await c(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(t=>{try{t()}catch{a.toast.error("Failed to execute custom undo action")}})},h=async()=>{const[i,e,r]=P()||[];if(i&&i.length>0)try{await d(i,!1)}catch{a.toast.error("Failed to redo changes")}if(e&&e.length>0)try{await c(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(t=>{try{t()}catch{a.toast.error("Failed to execute custom redo action")}})},x=l.useCallback(async i=>{const e=[],r=[];for(const t of i){const{colId:o,rowId:s}=K.parseCellId(t)||{};if(!o||!s){console.warn(`Invalid cellId: ${t}`);continue}const u=j(s);if(!u)return;const q=o.replace("attrib_",""),n=o.startsWith("attrib_");if(!q){console.warn(`Invalid column ID: ${o}`);continue}let p=null;if(n){const b=y.find(C=>C.name===q);if(!b){console.warn(`Attribute field not found: ${q}`);continue}if(b.data.inherit){const C=r.find(M=>M.entityId===u.entityId);C?C.attribs.push(q):r.push({entityId:u.entityId,attribs:[q],entityType:u.entityType,ownAttrib:u.ownAttrib||[],rowId:s,folderId:u.entityType==="folder"?u.parentId:u.entityType==="task"?u.folderId:void 0});continue}else p=b.data.default||v.getTypeDefaultValue(b.data.type)}else if(q==="assignees")p=v.getTypeDefaultValue("list_of_strings");else if(q==="tags")p=v.getTypeDefaultValue("list_of_strings");else{console.warn(`Field not editable: ${q}`);continue}const R={id:s,rowId:s,field:q,value:p,isAttrib:n,type:u.entityType};e.push(R)}if(e.length>0)try{await d(e,!0)}catch(t){a.toast.error("Failed to clear selected cells"),console.error("Error clearing selected cells:",t)}if(r.length>0)try{await c(r,!0)}catch(t){a.toast.error("Failed to inherit parent values for cleared cells"),console.error("Error clearing inherited cells:",t)}e.length===0&&r.length===0&&a.toast.warn("No valid cells selected to clear")},[y,I]),N=l.useMemo(()=>({editingCellId:f,setEditingCellId:D,isEditing:T,updateEntities:d,inheritFromParent:c,undo:g,redo:h,history:m}),[f,T,d,c,g,h,m]);return l.useEffect(()=>{const i=e=>{const r=e.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable||r.getAttribute("role")==="textbox"||r.tagName==="LI")return;const o=typeof navigator<"u"&&(navigator.userAgentData&&navigator.userAgentData.platform.toUpperCase().includes("MAC")||navigator.userAgent.toUpperCase().includes("MAC"))?e.metaKey:e.ctrlKey;if(o&&e.key==="z"&&(e.preventDefault(),w&&g()),(o&&e.key==="y"||o&&e.shiftKey&&e.key==="z"||o&&e.key==="Z")&&(e.preventDefault(),k&&h()),e.key==="Backspace"||e.key==="Delete"){if(!E.size)return;e.preventDefault();const s=Array.from(E).map(n=>document.getElementById(n)),u=n=>n==null?void 0:n.classList.contains("editable"),q=s.filter(u);if(q.length===0){a.toast.warn("No editable cells selected to clear");return}x(q.map(n=>n==null?void 0:n.id).filter(Boolean))}};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[w,k,g,h,E,x]),_.jsxRuntimeExports.jsx(S.CellEditingContext.Provider,{value:N,children:A})};exports.CellEditingProvider=z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("../../../../../_virtual/jsx-runtime.cjs.js"),l=require("react");require("@ynput/ayon-react-components");require("lodash");const a=require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");const _=require("../utils/cellUtils.cjs.js"),v=require("../utils/getTypeDefaultValue.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("clsx");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../ProjectTreeTable.cjs.js");const S=require("./CellEditingContext.cjs.js"),V=require("../hooks/useHistory.cjs.js"),B=require("./SelectionCellsContext.cjs.js"),H=require("../hooks/useUpdateTableData.cjs.js"),L=require("./ProjectTableContext.cjs.js"),$=require("../utils/validateUpdateEntities.cjs.js");require("./ClipboardContext.cjs.js");require("./ColumnSettingsContext.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("./ProjectDataContext.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/LinksManager/LinksManagerDialog.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const z=({children:A})=>{const[f,D]=l.useState(null),T=l.useCallback(i=>i===f,[f]),C=V(),{pushHistory:F,undo:U,redo:P,canUndo:w,canRedo:k}=C,{selectedCells:E}=B.useSelectionCellsContext(),{updateEntities:I,inheritFromParent:c}=H({pushHistory:F}),{attribFields:y,getEntityById:j}=L.useProjectTableContext(),d=l.useCallback(async(i=[],e=!0)=>{try{return $(i,y),await I(i,e)}catch(r){return a.toast.error(r.message),Promise.reject(r)}},[I,y]),g=async()=>{const[i,e,r]=U()||[];if(i&&i.length>0)try{await d(i,!1)}catch{a.toast.error("Failed to undo changes")}if(e&&e.length>0)try{await c(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(t=>{try{t()}catch{a.toast.error("Failed to execute custom undo action")}})},h=async()=>{const[i,e,r]=P()||[];if(i&&i.length>0)try{await d(i,!1)}catch{a.toast.error("Failed to redo changes")}if(e&&e.length>0)try{await c(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(t=>{try{t()}catch{a.toast.error("Failed to execute custom redo action")}})},x=l.useCallback(async i=>{const e=[],r=[];for(const t of i){const{colId:o,rowId:s}=_.parseCellId(t)||{};if(!o||!s){console.warn(`Invalid cellId: ${t}`);continue}const u=j(s);if(!u)return;const q=o.replace("attrib_",""),n=o.startsWith("attrib_");if(!q){console.warn(`Invalid column ID: ${o}`);continue}let p=null;if(n){const b=y.find(m=>m.name===q);if(!b){console.warn(`Attribute field not found: ${q}`);continue}if(b.data.inherit){const m=r.find(R=>R.entityId===u.entityId);m?m.attribs.push(q):r.push({entityId:u.entityId,attribs:[q],entityType:u.entityType,ownAttrib:u.ownAttrib||[],rowId:s,folderId:u.entityType==="folder"?u.parentId:u.entityType==="task"?u.folderId:void 0});continue}else p=b.data.default||v.getTypeDefaultValue(b.data.type)}else if(q==="assignees")p=v.getTypeDefaultValue("list_of_strings");else if(q==="tags")p=v.getTypeDefaultValue("list_of_strings");else{console.warn(`Field not editable: ${q}`);continue}const N={id:s,rowId:s,field:q,value:p,isAttrib:n,type:u.entityType};e.push(N)}if(e.length>0)try{await d(e,!0)}catch(t){a.toast.error("Failed to clear selected cells"),console.error("Error clearing selected cells:",t)}if(r.length>0)try{await c(r,!0)}catch(t){a.toast.error("Failed to inherit parent values for cleared cells"),console.error("Error clearing inherited cells:",t)}e.length===0&&r.length===0&&a.toast.warn("No valid cells selected to clear")},[y,I]),K=l.useMemo(()=>({editingCellId:f,setEditingCellId:D,isEditing:T,updateEntities:d,inheritFromParent:c,undo:g,redo:h,history:C}),[f,T,d,c,g,h,C]);return l.useEffect(()=>{const i=e=>{const r=e.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable||r.getAttribute("role")==="textbox"||r.tagName==="LI")return;const o=typeof navigator<"u"&&(navigator.userAgentData&&navigator.userAgentData.platform.toUpperCase().includes("MAC")||navigator.userAgent.toUpperCase().includes("MAC"))?e.metaKey:e.ctrlKey;if(o&&e.key==="z"&&(e.preventDefault(),w&&g()),(o&&e.key==="y"||o&&e.shiftKey&&e.key==="z"||o&&e.key==="Z")&&(e.preventDefault(),k&&h()),e.key==="Backspace"&&!(e.ctrlKey||e.metaKey)||e.key==="Delete"){if(!E.size)return;e.preventDefault();const s=Array.from(E).map(n=>document.getElementById(n)),u=n=>n==null?void 0:n.classList.contains("editable"),q=s.filter(u);if(q.length===0){a.toast.warn("No editable cells selected to clear");return}x(q.map(n=>n==null?void 0:n.id).filter(Boolean))}};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[w,k,g,h,E,x]),M.jsxRuntimeExports.jsx(S.CellEditingContext.Provider,{value:K,children:A})};exports.CellEditingProvider=z;
|
|
2
2
|
//# sourceMappingURL=CellEditingProvider.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellEditingProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellId] = useState<CellId | null>(null)\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const { pushHistory, undo: undoHistory, redo: redoHistory, canUndo, canRedo } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (entityUpdates.length === 0 && entityInheriting.length === 0) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if (e.key === 'Backspace' || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellId","useState","isEditing","useCallback","id","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","value","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CellEditingProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellId] = useState<CellId | null>(null)\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const { pushHistory, undo: undoHistory, redo: redoHistory, canUndo, canRedo } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (entityUpdates.length === 0 && entityInheriting.length === 0) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if ((e.key === 'Backspace' && !(e.ctrlKey || e.metaKey)) || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellId","useState","isEditing","useCallback","id","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","value","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}
|