@ynput/ayon-frontend-shared 0.3.27 → 0.3.29
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/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +25 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +404 -190
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +19 -18
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +406 -402
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +34 -33
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +15 -13
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +12 -10
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +1 -0
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +58 -36
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +125 -99
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js +69 -9
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js +95 -35
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +20 -19
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js +2 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js +64 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -0
- package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.es.js +27 -26
- package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +104 -103
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +118 -111
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.es.js +43 -19
- package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +22 -21
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +24 -20
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js.map +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js +89 -88
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +162 -138
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +5 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- 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 +9 -7
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -3
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.es.js +5 -5
- package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +46 -43
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -3
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +5 -3
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +9 -7
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +5 -2
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +69 -79
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +192 -141
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +7 -5
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +41 -44
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -4
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +103 -100
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +5 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -18
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +67 -64
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +26 -24
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +5 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +6 -5
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +5 -3
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +5 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +5 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -3
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +9 -7
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -3
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +565 -563
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +61 -50
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +104 -102
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js +10 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js +25 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.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 +114 -112
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +8 -8
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +21 -19
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -111
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +109 -107
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +106 -105
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +107 -105
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +101 -99
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +337 -40
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +123 -119
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +100 -98
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +125 -120
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +103 -101
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.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 +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +112 -110
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +100 -98
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +110 -108
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +89 -356
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +41 -39
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +29 -28
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +31 -32
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +98 -96
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +5 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +5 -3
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +53 -49
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +9 -7
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +21 -149
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +54 -53
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.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 +5 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +10 -8
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.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 +23 -20
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +8 -5
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.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 +3 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +7 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +5 -4
- package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +9 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +5 -4
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +7 -4
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.es.js +7 -4
- package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +6 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +7 -5
- package/dist/shared/src/context/WebsocketContext.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 +3 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +5 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +2 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +31 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
- package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js +43 -44
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
- package/dist/shared/src/util/formatUTCDate.cjs.js +2 -0
- package/dist/shared/src/util/formatUTCDate.cjs.js.map +1 -0
- package/dist/shared/src/util/formatUTCDate.es.js +9 -0
- package/dist/shared/src/util/formatUTCDate.es.js.map +1 -0
- package/dist/shared/src/util/getProjectDisplayName.cjs.js +2 -0
- package/dist/shared/src/util/getProjectDisplayName.cjs.js.map +1 -0
- package/dist/shared/src/util/getProjectDisplayName.es.js +5 -0
- package/dist/shared/src/util/getProjectDisplayName.es.js.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +38 -0
- package/dist/types/api/generated/graphqlLinks.d.ts +10 -4
- package/dist/types/api/generated/projectFolders.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +7 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +14 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +7 -0
- package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +566 -0
- package/dist/types/api/queries/folders/index.d.ts +1 -0
- package/dist/types/api/queries/links/getLinks.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +7 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
- package/dist/types/api/queries/users/getUsers.d.ts +7 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +14 -0
- package/dist/types/components/Powerpack/PricingLink.d.ts +1 -1
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -0
- package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +7 -2
- package/dist/types/components/ReviewablesSelector/index.d.ts +1 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +2 -1
- package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +1 -0
- package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/components/DeleteConfirmContent.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/utils/expandRelativeDates.d.ts +1 -1
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
- package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +3 -7
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useReviewablesKeyboardNavigation.d.ts +13 -0
- package/dist/types/util/buildHierarchicalTableRows.d.ts +2 -0
- package/dist/types/util/confirmDelete.d.ts +1 -1
- package/dist/types/util/formatUTCDate.d.ts +1 -0
- package/dist/types/util/getProjectDisplayName.d.ts +6 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +23 -21
- package/dist/util.es.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.cjs.js","sources":["../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n FC,\n useState,\n useRef,\n useEffect,\n ReactNode,\n useCallback,\n HTMLAttributes,\n ButtonHTMLAttributes,\n LabelHTMLAttributes,\n InputHTMLAttributes,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parseISO } from 'date-fns'\nimport * as Styled from './DateRangePicker.styled'\nimport clsx from 'clsx'\nimport { BLOCK_DIALOG_CLOSE_CLASS } from '../LinksManager/CellEditingDialog'\nimport { ButtonProps } from '@ynput/ayon-react-components'\n\nexport interface DateRangePickerPassthrough {\n root?: Partial<HTMLAttributes<HTMLDivElement>>\n trigger?: Partial<ButtonHTMLAttributes<HTMLButtonElement>>\n dropdown?: Partial<HTMLAttributes<HTMLDivElement>>\n content?: Partial<HTMLAttributes<HTMLDivElement>>\n startDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n endDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n clearButton?: Partial<ButtonProps>\n closeButton?: Partial<ButtonProps>\n valueDisplay?: Partial<HTMLAttributes<HTMLSpanElement>>\n}\n\nexport interface DateRange {\n startDate: string | null\n endDate: string | null\n}\n\nexport interface DateRangePickerProps {\n /** Current date range value */\n value: DateRange\n /** Callback when date range changes */\n onChange: (range: DateRange) => void\n /** Custom trigger button when no dates are set */\n emptyTrigger?: ReactNode\n /** Custom trigger button when dates are set */\n valueTrigger?: (range: DateRange, formattedRange: string) => ReactNode\n /** Alignment of the dropdown relative to trigger */\n align?: 'left' | 'right'\n /** Whether the picker is disabled */\n disabled?: boolean\n /** Additional class name for the container */\n className?: string\n /** Format for displaying dates (default: 'MMM d') */\n displayFormat?: string\n /** Minimum selectable date */\n minDate?: Date\n /** Maximum selectable date */\n maxDate?: Date\n /** Passthrough props for internal components */\n pt?: DateRangePickerPassthrough\n}\n\nconst formatDateForInput = (dateStr: string | null): string => {\n if (!dateStr) return ''\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return format(date, 'yyyy-MM-dd')\n }\n } catch {\n return ''\n }\n return ''\n}\n\nconst formatDateForDisplay = (dateStr: string | null, formatStr: string): string | null => {\n if (!dateStr) return null\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return format(date, formatStr)\n }\n } catch {\n return null\n }\n return null\n}\n\nconst parseDateInput = (value: string): string | null => {\n if (!value) return null\n try {\n const date = new Date(value)\n if (isValid(date)) {\n date.setUTCHours(0, 0, 0, 0)\n return date.toISOString()\n }\n } catch {\n return null\n }\n return null\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n value,\n onChange,\n emptyTrigger,\n valueTrigger,\n align = 'left',\n disabled = false,\n className,\n displayFormat = 'MMM d',\n minDate,\n maxDate,\n pt,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [localStartDate, setLocalStartDate] = useState('')\n const [localEndDate, setLocalEndDate] = useState('')\n const triggerRef = useRef<HTMLButtonElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const startDateInputRef = useRef<HTMLInputElement>(null)\n const endDateInputRef = useRef<HTMLInputElement>(null)\n\n const hasValue = value.startDate || value.endDate\n\n const handleSaveAndClose = useCallback(() => {\n const start = parseDateInput(localStartDate)\n const end = parseDateInput(localEndDate)\n if (start !== value.startDate || end !== value.endDate) {\n onChange({ startDate: start, endDate: end })\n }\n setIsOpen(false)\n }, [localStartDate, localEndDate, value.startDate, value.endDate, onChange])\n\n useEffect(() => {\n if (isOpen) {\n setLocalStartDate(formatDateForInput(value.startDate))\n setLocalEndDate(formatDateForInput(value.endDate))\n\n // Automatically open start date picker if no dates are set\n if (!value.startDate && !value.endDate) {\n setTimeout(() => {\n try {\n startDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n }, [isOpen, value.startDate, value.endDate])\n\n // Handle click outside to close\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (\n triggerRef.current &&\n !triggerRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [isOpen, handleSaveAndClose])\n\n // Handle escape key\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, handleSaveAndClose])\n\n const handleStartDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalStartDate(newValue)\n\n const newStartDate = parseDateInput(newValue)\n const currentEndDate = parseDateInput(localEndDate)\n\n // Validate: startDate cannot be after endDate\n if (newStartDate && currentEndDate) {\n const start = new Date(newStartDate)\n const end = new Date(currentEndDate)\n if (start > end) {\n // If start is after end, set end to same as start\n setLocalEndDate(newValue)\n }\n }\n\n // Automatically open end date picker after start date is selected\n if (newStartDate) {\n setTimeout(() => {\n try {\n endDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n\n const handleEndDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalEndDate(newValue)\n\n const newEndDate = parseDateInput(newValue)\n const currentStartDate = parseDateInput(localStartDate)\n\n let finalStart = currentStartDate\n let finalEnd = newEndDate\n\n // Validate: endDate cannot be before startDate\n if (newEndDate && currentStartDate) {\n const start = new Date(currentStartDate)\n const end = new Date(newEndDate)\n if (end < start) {\n // If end is before start, set start to same as end\n setLocalStartDate(newValue)\n finalStart = newEndDate\n }\n }\n\n onChange({ startDate: finalStart, endDate: finalEnd })\n }\n\n const handleClear = () => {\n setLocalStartDate('')\n setLocalEndDate('')\n onChange({ startDate: null, endDate: null })\n setIsOpen(false)\n }\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (!disabled) {\n if (isOpen) {\n handleSaveAndClose()\n } else {\n setIsOpen(true)\n }\n }\n }\n\n // Format the display string\n const displayStart = isOpen ? parseDateInput(localStartDate) : value.startDate\n const displayEnd = isOpen ? parseDateInput(localEndDate) : value.endDate\n\n const startDisplay = formatDateForDisplay(displayStart, displayFormat)\n const endDisplay = formatDateForDisplay(displayEnd, displayFormat)\n const formattedRange =\n startDisplay && endDisplay\n ? `${startDisplay} - ${endDisplay}`\n : startDisplay || endDisplay || ''\n\n // Get position for dropdown\n const getDropdownPosition = () => {\n if (!triggerRef.current) return { top: 0, left: 0 }\n const rect = triggerRef.current.getBoundingClientRect()\n return {\n top: rect.bottom + 4,\n left: align === 'left' ? rect.left : rect.right,\n }\n }\n\n const renderTrigger = () => {\n if (hasValue) {\n if (valueTrigger) {\n return valueTrigger(value, formattedRange)\n }\n return (\n <span className={clsx('date-value', pt?.valueDisplay?.className)} {...pt?.valueDisplay}>\n {formattedRange}\n </span>\n )\n }\n\n if (emptyTrigger) {\n return emptyTrigger\n }\n\n return <Styled.DefaultEmptyTrigger icon={'calendar_add_on'} />\n }\n\n const position = getDropdownPosition()\n\n return (\n <Styled.Container\n {...pt?.root}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, className, pt?.root?.className)}\n >\n <Styled.Trigger\n ref={triggerRef}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n {...pt?.trigger}\n className={clsx(hasValue ? 'has-value' : 'empty', pt?.trigger?.className)}\n >\n {renderTrigger()}\n </Styled.Trigger>\n\n {isOpen &&\n createPortal(\n <Styled.Dropdown\n ref={dropdownRef}\n style={{\n top: position.top,\n left: align === 'left' ? position.left : 'auto',\n right: align === 'right' ? window.innerWidth - position.left : 'auto',\n ...pt?.dropdown?.style,\n }}\n onMouseDown={(e) => e.stopPropagation()}\n {...pt?.dropdown}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, align, pt?.dropdown?.className)}\n >\n <Styled.DropdownContent className={pt?.content?.className} {...pt?.content}>\n <Styled.CloseButton\n icon=\"close\"\n variant=\"text\"\n onClick={handleSaveAndClose}\n {...pt?.closeButton}\n />\n <Styled.DateField\n className={pt?.startDate?.field?.className}\n {...pt?.startDate?.field}\n >\n <label {...pt?.startDate?.label}>Start date</label>\n <Styled.DateInput\n ref={startDateInputRef}\n type=\"date\"\n value={localStartDate}\n onChange={handleStartDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={minDate ? format(minDate, 'yyyy-MM-dd') : undefined}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.startDate?.input}\n />\n </Styled.DateField>\n\n <Styled.DateField className={pt?.endDate?.field?.className} {...pt?.endDate?.field}>\n <label {...pt?.endDate?.label}>End date</label>\n <Styled.DateInput\n ref={endDateInputRef}\n type=\"date\"\n value={localEndDate}\n onChange={handleEndDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={localStartDate || (minDate ? format(minDate, 'yyyy-MM-dd') : undefined)}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.endDate?.input}\n />\n </Styled.DateField>\n\n {hasValue && (\n <Styled.ClearButton onClick={handleClear} variant=\"text\" {...pt?.clearButton}>\n Clear dates\n </Styled.ClearButton>\n )}\n </Styled.DropdownContent>\n </Styled.Dropdown>,\n document.body,\n )}\n </Styled.Container>\n )\n}\n"],"names":["formatDateForInput","dateStr","date","parseISO","isValid","format","formatDateForDisplay","formatStr","parseDateInput","value","DateRangePicker","onChange","emptyTrigger","valueTrigger","align","disabled","className","displayFormat","minDate","maxDate","pt","isOpen","setIsOpen","useState","localStartDate","setLocalStartDate","localEndDate","setLocalEndDate","triggerRef","useRef","dropdownRef","startDateInputRef","endDateInputRef","hasValue","handleSaveAndClose","useCallback","start","end","useEffect","handleClickOutside","e","target","handleKeyDown","handleStartDateChange","newValue","newStartDate","currentEndDate","handleEndDateChange","newEndDate","currentStartDate","finalStart","finalEnd","handleClear","handleToggle","displayStart","displayEnd","startDisplay","endDisplay","formattedRange","getDropdownPosition","rect","renderTrigger","jsx","clsx","Styled.DefaultEmptyTrigger","position","jsxs","Styled.Container","BLOCK_DIALOG_CLOSE_CLASS","Styled.Trigger","createPortal","Styled.Dropdown","Styled.DropdownContent","Styled.CloseButton","Styled.DateField","Styled.DateInput","Styled.ClearButton"],"mappings":"gUAqEMA,EAAsBC,GAAmC,CAC7D,GAAI,CAACA,EAAS,MAAO,GACrB,GAAI,CACF,MAAMC,EAAOC,EAAAA,SAASF,CAAO,EAC7B,GAAIG,EAAAA,QAAQF,CAAI,EACd,OAAOG,EAAAA,OAAOH,EAAM,YAAY,CAEpC,MAAQ,CACN,MAAO,EACT,CACA,MAAO,EACT,EAEMI,EAAuB,CAACL,EAAwBM,IAAqC,CACzF,GAAI,CAACN,EAAS,OAAO,KACrB,GAAI,CACF,MAAMC,EAAOC,EAAAA,SAASF,CAAO,EAC7B,GAAIG,EAAAA,QAAQF,CAAI,EACd,OAAOG,EAAAA,OAAOH,EAAMK,CAAS,CAEjC,MAAQ,CACN,OAAO,IACT,CACA,OAAO,IACT,EAEMC,EAAkBC,GAAiC,CACvD,GAAI,CAACA,EAAO,OAAO,KACnB,GAAI,CACF,MAAMP,EAAO,IAAI,KAAKO,CAAK,EAC3B,GAAIL,EAAAA,QAAQF,CAAI,EACd,OAAAA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,EAAK,YAAA,CAEhB,MAAQ,CACN,OAAO,IACT,CACA,OAAO,IACT,EAEaQ,EAA4C,CAAC,CACxD,MAAAD,EACA,SAAAE,EACA,aAAAC,EACA,aAAAC,EACA,MAAAC,EAAQ,OACR,SAAAC,EAAW,GACX,UAAAC,EACA,cAAAC,EAAgB,QAChB,QAAAC,EACA,QAAAC,EACA,GAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EACpC,CAACC,EAAgBC,CAAiB,EAAIF,EAAAA,SAAS,EAAE,EACjD,CAACG,EAAcC,CAAe,EAAIJ,EAAAA,SAAS,EAAE,EAC7CK,EAAaC,EAAAA,OAA0B,IAAI,EAC3CC,EAAcD,EAAAA,OAAuB,IAAI,EACzCE,EAAoBF,EAAAA,OAAyB,IAAI,EACjDG,EAAkBH,EAAAA,OAAyB,IAAI,EAE/CI,EAAWxB,EAAM,WAAaA,EAAM,QAEpCyB,EAAqBC,EAAAA,YAAY,IAAM,CAC3C,MAAMC,EAAQ5B,EAAegB,CAAc,EACrCa,EAAM7B,EAAekB,CAAY,GACnCU,IAAU3B,EAAM,WAAa4B,IAAQ5B,EAAM,UAC7CE,EAAS,CAAE,UAAWyB,EAAO,QAASC,EAAK,EAE7Cf,EAAU,EAAK,CACjB,EAAG,CAACE,EAAgBE,EAAcjB,EAAM,UAAWA,EAAM,QAASE,CAAQ,CAAC,EAE3E2B,EAAAA,UAAU,IAAM,CACVjB,IACFI,EAAkBzB,EAAmBS,EAAM,SAAS,CAAC,EACrDkB,EAAgB3B,EAAmBS,EAAM,OAAO,CAAC,EAG7C,CAACA,EAAM,WAAa,CAACA,EAAM,SAC7B,WAAW,IAAM,CACf,GAAI,CACFsB,EAAkB,SAAS,WAAA,CAC7B,MAAc,CAEd,CACF,EAAG,GAAG,EAGZ,EAAG,CAACV,EAAQZ,EAAM,UAAWA,EAAM,OAAO,CAAC,EAG3C6B,EAAAA,UAAU,IAAM,CACd,GAAI,CAACjB,EAAQ,OAEb,MAAMkB,EAAsBC,GAAkB,CAC5C,MAAMC,EAASD,EAAE,OAEfZ,EAAW,SACX,CAACA,EAAW,QAAQ,SAASa,CAAM,GACnCX,EAAY,SACZ,CAACA,EAAY,QAAQ,SAASW,CAAM,GAEpCP,EAAA,CAEJ,EAEA,gBAAS,iBAAiB,YAAaK,CAAkB,EAClD,IAAM,SAAS,oBAAoB,YAAaA,CAAkB,CAC3E,EAAG,CAAClB,EAAQa,CAAkB,CAAC,EAG/BI,EAAAA,UAAU,IAAM,CACd,GAAI,CAACjB,EAAQ,OAEb,MAAMqB,EAAiBF,GAAqB,CACtCA,EAAE,MAAQ,WACZA,EAAE,gBAAA,EACFN,EAAA,EAEJ,EAEA,gBAAS,iBAAiB,UAAWQ,CAAa,EAC3C,IAAM,SAAS,oBAAoB,UAAWA,CAAa,CACpE,EAAG,CAACrB,EAAQa,CAAkB,CAAC,EAE/B,MAAMS,EAAyBH,GAA2C,CACxE,MAAMI,EAAWJ,EAAE,OAAO,MAC1Bf,EAAkBmB,CAAQ,EAE1B,MAAMC,EAAerC,EAAeoC,CAAQ,EACtCE,EAAiBtC,EAAekB,CAAY,EAGlD,GAAImB,GAAgBC,EAAgB,CAClC,MAAMV,EAAQ,IAAI,KAAKS,CAAY,EAC7BR,EAAM,IAAI,KAAKS,CAAc,EAC/BV,EAAQC,GAEVV,EAAgBiB,CAAQ,CAE5B,CAGIC,GACF,WAAW,IAAM,CACf,GAAI,CACFb,EAAgB,SAAS,WAAA,CAC3B,MAAc,CAEd,CACF,EAAG,GAAG,CAEV,EAEMe,EAAuBP,GAA2C,CACtE,MAAMI,EAAWJ,EAAE,OAAO,MAC1Bb,EAAgBiB,CAAQ,EAExB,MAAMI,EAAaxC,EAAeoC,CAAQ,EACpCK,EAAmBzC,EAAegB,CAAc,EAEtD,IAAI0B,EAAaD,EACbE,EAAWH,EAGf,GAAIA,GAAcC,EAAkB,CAClC,MAAMb,EAAQ,IAAI,KAAKa,CAAgB,EAC3B,IAAI,KAAKD,CAAU,EACrBZ,IAERX,EAAkBmB,CAAQ,EAC1BM,EAAaF,EAEjB,CAEArC,EAAS,CAAE,UAAWuC,EAAY,QAASC,EAAU,CACvD,EAEMC,EAAc,IAAM,CACxB3B,EAAkB,EAAE,EACpBE,EAAgB,EAAE,EAClBhB,EAAS,CAAE,UAAW,KAAM,QAAS,KAAM,EAC3CW,EAAU,EAAK,CACjB,EAEM+B,EAAgBb,GAAwB,CAC5CA,EAAE,gBAAA,EACGzB,IACCM,EACFa,EAAA,EAEAZ,EAAU,EAAI,EAGpB,EAGMgC,EAAejC,EAASb,EAAegB,CAAc,EAAIf,EAAM,UAC/D8C,EAAalC,EAASb,EAAekB,CAAY,EAAIjB,EAAM,QAE3D+C,EAAelD,EAAqBgD,EAAcrC,CAAa,EAC/DwC,EAAanD,EAAqBiD,EAAYtC,CAAa,EAC3DyC,EACJF,GAAgBC,EACZ,GAAGD,CAAY,MAAMC,CAAU,GAC/BD,GAAgBC,GAAc,GAG9BE,EAAsB,IAAM,CAChC,GAAI,CAAC/B,EAAW,QAAS,MAAO,CAAE,IAAK,EAAG,KAAM,CAAA,EAChD,MAAMgC,EAAOhC,EAAW,QAAQ,sBAAA,EAChC,MAAO,CACL,IAAKgC,EAAK,OAAS,EACnB,KAAM9C,IAAU,OAAS8C,EAAK,KAAOA,EAAK,KAAA,CAE9C,EAEMC,EAAgB,IAChB5B,EACEpB,EACKA,EAAaJ,EAAOiD,CAAc,EAGzCI,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAWC,EAAK,aAAc3C,GAAI,cAAc,SAAS,EAAI,GAAGA,GAAI,aACvE,SAAAsC,CAAA,CACH,EAIA9C,GAIGkD,EAAAA,kBAAAA,IAACE,EAAAA,oBAAA,CAA2B,KAAM,iBAAA,CAAmB,EAGxDC,EAAWN,EAAA,EAEjB,OACEO,EAAAA,kBAAAA,KAACC,EAAAA,UAAA,CACE,GAAG/C,GAAI,KACR,UAAW2C,EAAKK,EAAAA,yBAA0BpD,EAAWI,GAAI,MAAM,SAAS,EAExE,SAAA,CAAA0C,EAAAA,kBAAAA,IAACO,EAAAA,QAAA,CACC,IAAKzC,EACL,QAASyB,EACT,SAAAtC,EACA,KAAK,SACJ,GAAGK,GAAI,QACR,UAAW2C,EAAK9B,EAAW,YAAc,QAASb,GAAI,SAAS,SAAS,EAEvE,SAAAyC,EAAA,CAAc,CAAA,EAGhBxC,GACCiD,EAAAA,aACER,EAAAA,kBAAAA,IAACS,EAAAA,SAAA,CACC,IAAKzC,EACL,MAAO,CACL,IAAKmC,EAAS,IACd,KAAMnD,IAAU,OAASmD,EAAS,KAAO,OACzC,MAAOnD,IAAU,QAAU,OAAO,WAAamD,EAAS,KAAO,OAC/D,GAAG7C,GAAI,UAAU,KAAA,EAEnB,YAAcoB,GAAMA,EAAE,gBAAA,EACrB,GAAGpB,GAAI,SACR,UAAW2C,EAAKK,EAAAA,yBAA0BtD,EAAOM,GAAI,UAAU,SAAS,EAExE,SAAA8C,EAAAA,kBAAAA,KAACM,kBAAA,CAAuB,UAAWpD,GAAI,SAAS,UAAY,GAAGA,GAAI,QACjE,SAAA,CAAA0C,EAAAA,kBAAAA,IAACW,EAAAA,YAAA,CACC,KAAK,QACL,QAAQ,OACR,QAASvC,EACR,GAAGd,GAAI,WAAA,CAAA,EAEV8C,EAAAA,kBAAAA,KAACQ,EAAAA,UAAA,CACC,UAAWtD,GAAI,WAAW,OAAO,UAChC,GAAGA,GAAI,WAAW,MAEnB,SAAA,CAAA0C,wBAAC,QAAA,CAAO,GAAG1C,GAAI,WAAW,MAAO,SAAA,aAAU,EAC3C0C,EAAAA,kBAAAA,IAACa,EAAAA,UAAA,CACC,IAAK5C,EACL,KAAK,OACL,MAAOP,EACP,SAAUmB,EACV,IAAKxB,EAAUd,EAAAA,OAAOc,EAAS,YAAY,EAAI,OAC/C,IAAKD,EAAUb,EAAAA,OAAOa,EAAS,YAAY,EAAI,OAC/C,QAAUsB,GAAW,CACnB,GAAI,CACFA,EAAE,cAAc,WAAA,CAClB,MAAc,CAEd,CACF,EACC,GAAGpB,GAAI,WAAW,KAAA,CAAA,CACrB,CAAA,CAAA,EAGF8C,EAAAA,kBAAAA,KAACQ,EAAAA,UAAA,CAAiB,UAAWtD,GAAI,SAAS,OAAO,UAAY,GAAGA,GAAI,SAAS,MAC3E,SAAA,CAAA0C,wBAAC,QAAA,CAAO,GAAG1C,GAAI,SAAS,MAAO,SAAA,WAAQ,EACvC0C,EAAAA,kBAAAA,IAACa,EAAAA,UAAA,CACC,IAAK3C,EACL,KAAK,OACL,MAAON,EACP,SAAUqB,EACV,IAAK5B,EAAUd,EAAAA,OAAOc,EAAS,YAAY,EAAI,OAC/C,IAAKK,IAAmBN,EAAUb,EAAAA,OAAOa,EAAS,YAAY,EAAI,QAClE,QAAUsB,GAAW,CACnB,GAAI,CACFA,EAAE,cAAc,WAAA,CAClB,MAAc,CAEd,CACF,EACC,GAAGpB,GAAI,SAAS,KAAA,CAAA,CACnB,EACF,EAECa,GACC6B,EAAAA,kBAAAA,IAACc,cAAA,CAAmB,QAASxB,EAAa,QAAQ,OAAQ,GAAGhC,GAAI,YAAa,SAAA,aAAA,CAE9E,CAAA,CAAA,CAEJ,CAAA,CAAA,EAEF,SAAS,IAAA,CACX,CAAA,CAAA,CAGR"}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.cjs.js","sources":["../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n FC,\n useState,\n useRef,\n useEffect,\n ReactNode,\n useCallback,\n HTMLAttributes,\n ButtonHTMLAttributes,\n LabelHTMLAttributes,\n InputHTMLAttributes,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { formatUTCDate } from '../../util/formatUTCDate'\nimport * as Styled from './DateRangePicker.styled'\nimport clsx from 'clsx'\nimport { BLOCK_DIALOG_CLOSE_CLASS } from '../LinksManager/CellEditingDialog'\nimport { ButtonProps } from '@ynput/ayon-react-components'\n\nexport interface DateRangePickerPassthrough {\n root?: Partial<HTMLAttributes<HTMLDivElement>>\n trigger?: Partial<ButtonHTMLAttributes<HTMLButtonElement>>\n dropdown?: Partial<HTMLAttributes<HTMLDivElement>>\n content?: Partial<HTMLAttributes<HTMLDivElement>>\n startDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n endDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n clearButton?: Partial<ButtonProps>\n closeButton?: Partial<ButtonProps>\n valueDisplay?: Partial<HTMLAttributes<HTMLSpanElement>>\n}\n\nexport interface DateRange {\n startDate: string | null\n endDate: string | null\n}\n\nexport interface DateRangePickerProps {\n /** Current date range value */\n value: DateRange\n /** Callback when date range changes */\n onChange: (range: DateRange) => void\n /** Custom trigger button when no dates are set */\n emptyTrigger?: ReactNode\n /** Custom trigger button when dates are set */\n valueTrigger?: (range: DateRange, formattedRange: string) => ReactNode\n /** Alignment of the dropdown relative to trigger */\n align?: 'left' | 'right'\n /** Whether the picker is disabled */\n disabled?: boolean\n /** Additional class name for the container */\n className?: string\n /** Format for displaying dates (default: 'MMM d') */\n displayFormat?: string\n /** Minimum selectable date */\n minDate?: Date\n /** Maximum selectable date */\n maxDate?: Date\n /** Passthrough props for internal components */\n pt?: DateRangePickerPassthrough\n}\n\nconst formatDateForInput = (dateStr: string | null): string => {\n if (!dateStr) return ''\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return formatUTCDate(date, 'yyyy-MM-dd')\n }\n } catch {\n return ''\n }\n return ''\n}\n\nconst formatDateForDisplay = (dateStr: string | null, formatStr: string): string | null => {\n if (!dateStr) return null\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return formatUTCDate(date, formatStr)\n }\n } catch {\n return null\n }\n return null\n}\n\nconst parseDateInput = (value: string): string | null => {\n if (!value) return null\n try {\n const [y, m, d] = value.split('-').map(Number)\n if (y && m && d) {\n return new Date(Date.UTC(y, m - 1, d)).toISOString()\n }\n } catch {\n return null\n }\n return null\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n value,\n onChange,\n emptyTrigger,\n valueTrigger,\n align = 'left',\n disabled = false,\n className,\n displayFormat = 'MMM d',\n minDate,\n maxDate,\n pt,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [localStartDate, setLocalStartDate] = useState('')\n const [localEndDate, setLocalEndDate] = useState('')\n const triggerRef = useRef<HTMLButtonElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const startDateInputRef = useRef<HTMLInputElement>(null)\n const endDateInputRef = useRef<HTMLInputElement>(null)\n\n const hasValue = value.startDate || value.endDate\n\n const handleSaveAndClose = useCallback(() => {\n const start = parseDateInput(localStartDate)\n const end = parseDateInput(localEndDate)\n if (start !== value.startDate || end !== value.endDate) {\n onChange({ startDate: start, endDate: end })\n }\n setIsOpen(false)\n }, [localStartDate, localEndDate, value.startDate, value.endDate, onChange])\n\n useEffect(() => {\n if (isOpen) {\n setLocalStartDate(formatDateForInput(value.startDate))\n setLocalEndDate(formatDateForInput(value.endDate))\n\n // Automatically open start date picker if no dates are set\n if (!value.startDate && !value.endDate) {\n setTimeout(() => {\n try {\n startDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n }, [isOpen, value.startDate, value.endDate])\n\n // Handle click outside to close\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (\n triggerRef.current &&\n !triggerRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [isOpen, handleSaveAndClose])\n\n // Handle escape key\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, handleSaveAndClose])\n\n const handleStartDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalStartDate(newValue)\n\n const newStartDate = parseDateInput(newValue)\n const currentEndDate = parseDateInput(localEndDate)\n\n // Validate: startDate cannot be after endDate\n if (newStartDate && currentEndDate) {\n const start = new Date(newStartDate)\n const end = new Date(currentEndDate)\n if (start > end) {\n // If start is after end, set end to same as start\n setLocalEndDate(newValue)\n }\n }\n\n // Automatically open end date picker after start date is selected\n if (newStartDate) {\n setTimeout(() => {\n try {\n endDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n\n const handleEndDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalEndDate(newValue)\n\n const newEndDate = parseDateInput(newValue)\n const currentStartDate = parseDateInput(localStartDate)\n\n let finalStart = currentStartDate\n let finalEnd = newEndDate\n\n // Validate: endDate cannot be before startDate\n if (newEndDate && currentStartDate) {\n const start = new Date(currentStartDate)\n const end = new Date(newEndDate)\n if (end < start) {\n // If end is before start, set start to same as end\n setLocalStartDate(newValue)\n finalStart = newEndDate\n }\n }\n\n onChange({ startDate: finalStart, endDate: finalEnd })\n }\n\n const handleClear = () => {\n setLocalStartDate('')\n setLocalEndDate('')\n onChange({ startDate: null, endDate: null })\n setIsOpen(false)\n }\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (!disabled) {\n if (isOpen) {\n handleSaveAndClose()\n } else {\n setIsOpen(true)\n }\n }\n }\n\n // Format the display string\n const displayStart = isOpen ? parseDateInput(localStartDate) : value.startDate\n const displayEnd = isOpen ? parseDateInput(localEndDate) : value.endDate\n\n const startDisplay = formatDateForDisplay(displayStart, displayFormat)\n const endDisplay = formatDateForDisplay(displayEnd, displayFormat)\n const formattedRange =\n startDisplay && endDisplay\n ? `${startDisplay} - ${endDisplay}`\n : startDisplay || endDisplay || ''\n\n // Get position for dropdown\n const getDropdownPosition = () => {\n if (!triggerRef.current) return { top: 0, left: 0 }\n const rect = triggerRef.current.getBoundingClientRect()\n return {\n top: rect.bottom + 4,\n left: align === 'left' ? rect.left : rect.right,\n }\n }\n\n const renderTrigger = () => {\n if (hasValue) {\n if (valueTrigger) {\n return valueTrigger(value, formattedRange)\n }\n return (\n <span className={clsx('date-value', pt?.valueDisplay?.className)} {...pt?.valueDisplay}>\n {formattedRange}\n </span>\n )\n }\n\n if (emptyTrigger) {\n return emptyTrigger\n }\n\n return <Styled.DefaultEmptyTrigger icon={'calendar_add_on'} />\n }\n\n const position = getDropdownPosition()\n\n return (\n <Styled.Container\n {...pt?.root}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, className, pt?.root?.className)}\n >\n <Styled.Trigger\n ref={triggerRef}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n {...pt?.trigger}\n className={clsx(hasValue ? 'has-value' : 'empty', pt?.trigger?.className)}\n >\n {renderTrigger()}\n </Styled.Trigger>\n\n {isOpen &&\n createPortal(\n <Styled.Dropdown\n ref={dropdownRef}\n style={{\n top: position.top,\n left: align === 'left' ? position.left : 'auto',\n right: align === 'right' ? window.innerWidth - position.left : 'auto',\n ...pt?.dropdown?.style,\n }}\n onMouseDown={(e) => e.stopPropagation()}\n {...pt?.dropdown}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, align, pt?.dropdown?.className)}\n >\n <Styled.DropdownContent className={pt?.content?.className} {...pt?.content}>\n <Styled.CloseButton\n icon=\"close\"\n variant=\"text\"\n onClick={handleSaveAndClose}\n {...pt?.closeButton}\n />\n <Styled.DateField\n className={pt?.startDate?.field?.className}\n {...pt?.startDate?.field}\n >\n <label {...pt?.startDate?.label}>Start date</label>\n <Styled.DateInput\n ref={startDateInputRef}\n type=\"date\"\n value={localStartDate}\n onChange={handleStartDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={minDate ? format(minDate, 'yyyy-MM-dd') : undefined}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.startDate?.input}\n />\n </Styled.DateField>\n\n <Styled.DateField className={pt?.endDate?.field?.className} {...pt?.endDate?.field}>\n <label {...pt?.endDate?.label}>End date</label>\n <Styled.DateInput\n ref={endDateInputRef}\n type=\"date\"\n value={localEndDate}\n onChange={handleEndDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={localStartDate || (minDate ? format(minDate, 'yyyy-MM-dd') : undefined)}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.endDate?.input}\n />\n </Styled.DateField>\n\n {hasValue && (\n <Styled.ClearButton onClick={handleClear} variant=\"text\" {...pt?.clearButton}>\n Clear dates\n </Styled.ClearButton>\n )}\n </Styled.DropdownContent>\n </Styled.Dropdown>,\n document.body,\n )}\n </Styled.Container>\n )\n}\n"],"names":["formatDateForInput","dateStr","date","parseISO","isValid","formatUTCDate","formatDateForDisplay","formatStr","parseDateInput","value","y","m","d","DateRangePicker","onChange","emptyTrigger","valueTrigger","align","disabled","className","displayFormat","minDate","maxDate","pt","isOpen","setIsOpen","useState","localStartDate","setLocalStartDate","localEndDate","setLocalEndDate","triggerRef","useRef","dropdownRef","startDateInputRef","endDateInputRef","hasValue","handleSaveAndClose","useCallback","start","end","useEffect","handleClickOutside","e","target","handleKeyDown","handleStartDateChange","newValue","newStartDate","currentEndDate","handleEndDateChange","newEndDate","currentStartDate","finalStart","finalEnd","handleClear","handleToggle","displayStart","displayEnd","startDisplay","endDisplay","formattedRange","getDropdownPosition","rect","renderTrigger","jsx","clsx","Styled.DefaultEmptyTrigger","position","jsxs","Styled.Container","BLOCK_DIALOG_CLOSE_CLASS","Styled.Trigger","createPortal","Styled.Dropdown","Styled.DropdownContent","Styled.CloseButton","Styled.DateField","Styled.DateInput","format","Styled.ClearButton"],"mappings":"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"}
|
|
@@ -1,61 +1,62 @@
|
|
|
1
1
|
import { j as a } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { createPortal as
|
|
4
|
-
import { format as
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
2
|
+
import { useState as b, useRef as E, useCallback as rt, useEffect as O } from "react";
|
|
3
|
+
import { createPortal as at } from "react-dom";
|
|
4
|
+
import { format as j, parseISO as G, isValid as W } from "date-fns";
|
|
5
|
+
import { formatUTCDate as q } from "../../util/formatUTCDate.es.js";
|
|
6
|
+
import { Container as st, Trigger as ot, Dropdown as ct, DropdownContent as lt, CloseButton as dt, DateField as A, DateInput as F, ClearButton as it, DefaultEmptyTrigger as ut } from "./DateRangePicker.styled.es.js";
|
|
7
|
+
import k from "clsx";
|
|
8
|
+
import { BLOCK_DIALOG_CLOSE_CLASS as K } from "../LinksManager/CellEditingDialog.es.js";
|
|
9
|
+
const U = (e) => {
|
|
9
10
|
if (!e) return "";
|
|
10
11
|
try {
|
|
11
|
-
const s =
|
|
12
|
-
if (
|
|
13
|
-
return
|
|
12
|
+
const s = G(e);
|
|
13
|
+
if (W(s))
|
|
14
|
+
return q(s, "yyyy-MM-dd");
|
|
14
15
|
} catch {
|
|
15
16
|
return "";
|
|
16
17
|
}
|
|
17
18
|
return "";
|
|
18
|
-
},
|
|
19
|
+
}, $ = (e, s) => {
|
|
19
20
|
if (!e) return null;
|
|
20
21
|
try {
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
return
|
|
22
|
+
const l = G(e);
|
|
23
|
+
if (W(l))
|
|
24
|
+
return q(l, s);
|
|
24
25
|
} catch {
|
|
25
26
|
return null;
|
|
26
27
|
}
|
|
27
28
|
return null;
|
|
28
|
-
},
|
|
29
|
+
}, d = (e) => {
|
|
29
30
|
if (!e) return null;
|
|
30
31
|
try {
|
|
31
|
-
const s =
|
|
32
|
-
if (
|
|
33
|
-
return
|
|
32
|
+
const [s, l, D] = e.split("-").map(Number);
|
|
33
|
+
if (s && l && D)
|
|
34
|
+
return new Date(Date.UTC(s, l - 1, D)).toISOString();
|
|
34
35
|
} catch {
|
|
35
36
|
return null;
|
|
36
37
|
}
|
|
37
38
|
return null;
|
|
38
|
-
},
|
|
39
|
+
}, xt = ({
|
|
39
40
|
value: e,
|
|
40
41
|
onChange: s,
|
|
41
|
-
emptyTrigger:
|
|
42
|
-
valueTrigger:
|
|
42
|
+
emptyTrigger: l,
|
|
43
|
+
valueTrigger: D,
|
|
43
44
|
align: p = "left",
|
|
44
|
-
disabled:
|
|
45
|
-
className:
|
|
46
|
-
displayFormat:
|
|
45
|
+
disabled: T = !1,
|
|
46
|
+
className: z,
|
|
47
|
+
displayFormat: B = "MMM d",
|
|
47
48
|
minDate: w,
|
|
48
49
|
maxDate: g,
|
|
49
50
|
pt: n
|
|
50
51
|
}) => {
|
|
51
|
-
const [c,
|
|
52
|
-
const t =
|
|
53
|
-
(t !== e.startDate || r !== e.endDate) && s({ startDate: t, endDate: r }),
|
|
54
|
-
}, [
|
|
52
|
+
const [c, N] = b(!1), [i, C] = b(""), [m, x] = b(""), y = E(null), M = E(null), v = E(null), _ = E(null), S = e.startDate || e.endDate, u = rt(() => {
|
|
53
|
+
const t = d(i), r = d(m);
|
|
54
|
+
(t !== e.startDate || r !== e.endDate) && s({ startDate: t, endDate: r }), N(!1);
|
|
55
|
+
}, [i, m, e.startDate, e.endDate, s]);
|
|
55
56
|
O(() => {
|
|
56
|
-
c && (C(
|
|
57
|
+
c && (C(U(e.startDate)), x(U(e.endDate)), !e.startDate && !e.endDate && setTimeout(() => {
|
|
57
58
|
try {
|
|
58
|
-
|
|
59
|
+
v.current?.showPicker();
|
|
59
60
|
} catch {
|
|
60
61
|
}
|
|
61
62
|
}, 100));
|
|
@@ -63,110 +64,110 @@ const G = (e) => {
|
|
|
63
64
|
if (!c) return;
|
|
64
65
|
const t = (r) => {
|
|
65
66
|
const o = r.target;
|
|
66
|
-
|
|
67
|
+
y.current && !y.current.contains(o) && M.current && !M.current.contains(o) && u();
|
|
67
68
|
};
|
|
68
69
|
return document.addEventListener("mousedown", t), () => document.removeEventListener("mousedown", t);
|
|
69
|
-
}, [c,
|
|
70
|
+
}, [c, u]), O(() => {
|
|
70
71
|
if (!c) return;
|
|
71
72
|
const t = (r) => {
|
|
72
|
-
r.key === "Escape" && (r.stopPropagation(),
|
|
73
|
+
r.key === "Escape" && (r.stopPropagation(), u());
|
|
73
74
|
};
|
|
74
75
|
return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
|
|
75
|
-
}, [c,
|
|
76
|
-
const
|
|
76
|
+
}, [c, u]);
|
|
77
|
+
const H = (t) => {
|
|
77
78
|
const r = t.target.value;
|
|
78
79
|
C(r);
|
|
79
|
-
const o =
|
|
80
|
-
if (o &&
|
|
81
|
-
const h = new Date(o),
|
|
82
|
-
h >
|
|
80
|
+
const o = d(r), f = d(m);
|
|
81
|
+
if (o && f) {
|
|
82
|
+
const h = new Date(o), R = new Date(f);
|
|
83
|
+
h > R && x(r);
|
|
83
84
|
}
|
|
84
85
|
o && setTimeout(() => {
|
|
85
86
|
try {
|
|
86
|
-
|
|
87
|
+
_.current?.showPicker();
|
|
87
88
|
} catch {
|
|
88
89
|
}
|
|
89
90
|
}, 100);
|
|
90
|
-
},
|
|
91
|
+
}, J = (t) => {
|
|
91
92
|
const r = t.target.value;
|
|
92
93
|
x(r);
|
|
93
|
-
const o =
|
|
94
|
-
let h =
|
|
95
|
-
if (o &&
|
|
96
|
-
const
|
|
97
|
-
new Date(o) <
|
|
94
|
+
const o = d(r), f = d(i);
|
|
95
|
+
let h = f, R = o;
|
|
96
|
+
if (o && f) {
|
|
97
|
+
const nt = new Date(f);
|
|
98
|
+
new Date(o) < nt && (C(r), h = o);
|
|
98
99
|
}
|
|
99
|
-
s({ startDate: h, endDate:
|
|
100
|
-
},
|
|
101
|
-
C(""), x(""), s({ startDate: null, endDate: null }),
|
|
102
|
-
},
|
|
103
|
-
t.stopPropagation(),
|
|
104
|
-
},
|
|
105
|
-
if (!
|
|
106
|
-
const t =
|
|
100
|
+
s({ startDate: h, endDate: R });
|
|
101
|
+
}, Q = () => {
|
|
102
|
+
C(""), x(""), s({ startDate: null, endDate: null }), N(!1);
|
|
103
|
+
}, X = (t) => {
|
|
104
|
+
t.stopPropagation(), T || (c ? u() : N(!0));
|
|
105
|
+
}, Y = c ? d(i) : e.startDate, Z = c ? d(m) : e.endDate, L = $(Y, B), P = $(Z, B), V = L && P ? `${L} - ${P}` : L || P || "", tt = () => {
|
|
106
|
+
if (!y.current) return { top: 0, left: 0 };
|
|
107
|
+
const t = y.current.getBoundingClientRect();
|
|
107
108
|
return {
|
|
108
109
|
top: t.bottom + 4,
|
|
109
110
|
left: p === "left" ? t.left : t.right
|
|
110
111
|
};
|
|
111
|
-
},
|
|
112
|
+
}, et = () => S ? D ? D(e, V) : /* @__PURE__ */ a.jsx("span", { className: k("date-value", n?.valueDisplay?.className), ...n?.valueDisplay, children: V }) : l || /* @__PURE__ */ a.jsx(ut, { icon: "calendar_add_on" }), I = tt();
|
|
112
113
|
return /* @__PURE__ */ a.jsxs(
|
|
113
|
-
|
|
114
|
+
st,
|
|
114
115
|
{
|
|
115
116
|
...n?.root,
|
|
116
|
-
className:
|
|
117
|
+
className: k(K, z, n?.root?.className),
|
|
117
118
|
children: [
|
|
118
119
|
/* @__PURE__ */ a.jsx(
|
|
119
|
-
|
|
120
|
+
ot,
|
|
120
121
|
{
|
|
121
|
-
ref:
|
|
122
|
-
onClick:
|
|
123
|
-
disabled:
|
|
122
|
+
ref: y,
|
|
123
|
+
onClick: X,
|
|
124
|
+
disabled: T,
|
|
124
125
|
type: "button",
|
|
125
126
|
...n?.trigger,
|
|
126
|
-
className:
|
|
127
|
-
children:
|
|
127
|
+
className: k(S ? "has-value" : "empty", n?.trigger?.className),
|
|
128
|
+
children: et()
|
|
128
129
|
}
|
|
129
130
|
),
|
|
130
|
-
c &&
|
|
131
|
+
c && at(
|
|
131
132
|
/* @__PURE__ */ a.jsx(
|
|
132
|
-
|
|
133
|
+
ct,
|
|
133
134
|
{
|
|
134
135
|
ref: M,
|
|
135
136
|
style: {
|
|
136
|
-
top:
|
|
137
|
-
left: p === "left" ?
|
|
138
|
-
right: p === "right" ? window.innerWidth -
|
|
137
|
+
top: I.top,
|
|
138
|
+
left: p === "left" ? I.left : "auto",
|
|
139
|
+
right: p === "right" ? window.innerWidth - I.left : "auto",
|
|
139
140
|
...n?.dropdown?.style
|
|
140
141
|
},
|
|
141
142
|
onMouseDown: (t) => t.stopPropagation(),
|
|
142
143
|
...n?.dropdown,
|
|
143
|
-
className:
|
|
144
|
-
children: /* @__PURE__ */ a.jsxs(
|
|
144
|
+
className: k(K, p, n?.dropdown?.className),
|
|
145
|
+
children: /* @__PURE__ */ a.jsxs(lt, { className: n?.content?.className, ...n?.content, children: [
|
|
145
146
|
/* @__PURE__ */ a.jsx(
|
|
146
|
-
|
|
147
|
+
dt,
|
|
147
148
|
{
|
|
148
149
|
icon: "close",
|
|
149
150
|
variant: "text",
|
|
150
|
-
onClick:
|
|
151
|
+
onClick: u,
|
|
151
152
|
...n?.closeButton
|
|
152
153
|
}
|
|
153
154
|
),
|
|
154
155
|
/* @__PURE__ */ a.jsxs(
|
|
155
|
-
|
|
156
|
+
A,
|
|
156
157
|
{
|
|
157
158
|
className: n?.startDate?.field?.className,
|
|
158
159
|
...n?.startDate?.field,
|
|
159
160
|
children: [
|
|
160
161
|
/* @__PURE__ */ a.jsx("label", { ...n?.startDate?.label, children: "Start date" }),
|
|
161
162
|
/* @__PURE__ */ a.jsx(
|
|
162
|
-
|
|
163
|
+
F,
|
|
163
164
|
{
|
|
164
|
-
ref:
|
|
165
|
+
ref: v,
|
|
165
166
|
type: "date",
|
|
166
|
-
value:
|
|
167
|
-
onChange:
|
|
168
|
-
max: g ?
|
|
169
|
-
min: w ?
|
|
167
|
+
value: i,
|
|
168
|
+
onChange: H,
|
|
169
|
+
max: g ? j(g, "yyyy-MM-dd") : void 0,
|
|
170
|
+
min: w ? j(w, "yyyy-MM-dd") : void 0,
|
|
170
171
|
onClick: (t) => {
|
|
171
172
|
try {
|
|
172
173
|
t.currentTarget.showPicker();
|
|
@@ -179,17 +180,17 @@ const G = (e) => {
|
|
|
179
180
|
]
|
|
180
181
|
}
|
|
181
182
|
),
|
|
182
|
-
/* @__PURE__ */ a.jsxs(
|
|
183
|
+
/* @__PURE__ */ a.jsxs(A, { className: n?.endDate?.field?.className, ...n?.endDate?.field, children: [
|
|
183
184
|
/* @__PURE__ */ a.jsx("label", { ...n?.endDate?.label, children: "End date" }),
|
|
184
185
|
/* @__PURE__ */ a.jsx(
|
|
185
|
-
|
|
186
|
+
F,
|
|
186
187
|
{
|
|
187
|
-
ref:
|
|
188
|
+
ref: _,
|
|
188
189
|
type: "date",
|
|
189
|
-
value:
|
|
190
|
-
onChange:
|
|
191
|
-
max: g ?
|
|
192
|
-
min:
|
|
190
|
+
value: m,
|
|
191
|
+
onChange: J,
|
|
192
|
+
max: g ? j(g, "yyyy-MM-dd") : void 0,
|
|
193
|
+
min: i || (w ? j(w, "yyyy-MM-dd") : void 0),
|
|
193
194
|
onClick: (t) => {
|
|
194
195
|
try {
|
|
195
196
|
t.currentTarget.showPicker();
|
|
@@ -200,7 +201,7 @@ const G = (e) => {
|
|
|
200
201
|
}
|
|
201
202
|
)
|
|
202
203
|
] }),
|
|
203
|
-
|
|
204
|
+
S && /* @__PURE__ */ a.jsx(it, { onClick: Q, variant: "text", ...n?.clearButton, children: "Clear dates" })
|
|
204
205
|
] })
|
|
205
206
|
}
|
|
206
207
|
),
|
|
@@ -211,6 +212,6 @@ const G = (e) => {
|
|
|
211
212
|
);
|
|
212
213
|
};
|
|
213
214
|
export {
|
|
214
|
-
|
|
215
|
+
xt as DateRangePicker
|
|
215
216
|
};
|
|
216
217
|
//# sourceMappingURL=DateRangePicker.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.es.js","sources":["../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n FC,\n useState,\n useRef,\n useEffect,\n ReactNode,\n useCallback,\n HTMLAttributes,\n ButtonHTMLAttributes,\n LabelHTMLAttributes,\n InputHTMLAttributes,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parseISO } from 'date-fns'\nimport * as Styled from './DateRangePicker.styled'\nimport clsx from 'clsx'\nimport { BLOCK_DIALOG_CLOSE_CLASS } from '../LinksManager/CellEditingDialog'\nimport { ButtonProps } from '@ynput/ayon-react-components'\n\nexport interface DateRangePickerPassthrough {\n root?: Partial<HTMLAttributes<HTMLDivElement>>\n trigger?: Partial<ButtonHTMLAttributes<HTMLButtonElement>>\n dropdown?: Partial<HTMLAttributes<HTMLDivElement>>\n content?: Partial<HTMLAttributes<HTMLDivElement>>\n startDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n endDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n clearButton?: Partial<ButtonProps>\n closeButton?: Partial<ButtonProps>\n valueDisplay?: Partial<HTMLAttributes<HTMLSpanElement>>\n}\n\nexport interface DateRange {\n startDate: string | null\n endDate: string | null\n}\n\nexport interface DateRangePickerProps {\n /** Current date range value */\n value: DateRange\n /** Callback when date range changes */\n onChange: (range: DateRange) => void\n /** Custom trigger button when no dates are set */\n emptyTrigger?: ReactNode\n /** Custom trigger button when dates are set */\n valueTrigger?: (range: DateRange, formattedRange: string) => ReactNode\n /** Alignment of the dropdown relative to trigger */\n align?: 'left' | 'right'\n /** Whether the picker is disabled */\n disabled?: boolean\n /** Additional class name for the container */\n className?: string\n /** Format for displaying dates (default: 'MMM d') */\n displayFormat?: string\n /** Minimum selectable date */\n minDate?: Date\n /** Maximum selectable date */\n maxDate?: Date\n /** Passthrough props for internal components */\n pt?: DateRangePickerPassthrough\n}\n\nconst formatDateForInput = (dateStr: string | null): string => {\n if (!dateStr) return ''\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return format(date, 'yyyy-MM-dd')\n }\n } catch {\n return ''\n }\n return ''\n}\n\nconst formatDateForDisplay = (dateStr: string | null, formatStr: string): string | null => {\n if (!dateStr) return null\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return format(date, formatStr)\n }\n } catch {\n return null\n }\n return null\n}\n\nconst parseDateInput = (value: string): string | null => {\n if (!value) return null\n try {\n const date = new Date(value)\n if (isValid(date)) {\n date.setUTCHours(0, 0, 0, 0)\n return date.toISOString()\n }\n } catch {\n return null\n }\n return null\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n value,\n onChange,\n emptyTrigger,\n valueTrigger,\n align = 'left',\n disabled = false,\n className,\n displayFormat = 'MMM d',\n minDate,\n maxDate,\n pt,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [localStartDate, setLocalStartDate] = useState('')\n const [localEndDate, setLocalEndDate] = useState('')\n const triggerRef = useRef<HTMLButtonElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const startDateInputRef = useRef<HTMLInputElement>(null)\n const endDateInputRef = useRef<HTMLInputElement>(null)\n\n const hasValue = value.startDate || value.endDate\n\n const handleSaveAndClose = useCallback(() => {\n const start = parseDateInput(localStartDate)\n const end = parseDateInput(localEndDate)\n if (start !== value.startDate || end !== value.endDate) {\n onChange({ startDate: start, endDate: end })\n }\n setIsOpen(false)\n }, [localStartDate, localEndDate, value.startDate, value.endDate, onChange])\n\n useEffect(() => {\n if (isOpen) {\n setLocalStartDate(formatDateForInput(value.startDate))\n setLocalEndDate(formatDateForInput(value.endDate))\n\n // Automatically open start date picker if no dates are set\n if (!value.startDate && !value.endDate) {\n setTimeout(() => {\n try {\n startDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n }, [isOpen, value.startDate, value.endDate])\n\n // Handle click outside to close\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (\n triggerRef.current &&\n !triggerRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [isOpen, handleSaveAndClose])\n\n // Handle escape key\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, handleSaveAndClose])\n\n const handleStartDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalStartDate(newValue)\n\n const newStartDate = parseDateInput(newValue)\n const currentEndDate = parseDateInput(localEndDate)\n\n // Validate: startDate cannot be after endDate\n if (newStartDate && currentEndDate) {\n const start = new Date(newStartDate)\n const end = new Date(currentEndDate)\n if (start > end) {\n // If start is after end, set end to same as start\n setLocalEndDate(newValue)\n }\n }\n\n // Automatically open end date picker after start date is selected\n if (newStartDate) {\n setTimeout(() => {\n try {\n endDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n\n const handleEndDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalEndDate(newValue)\n\n const newEndDate = parseDateInput(newValue)\n const currentStartDate = parseDateInput(localStartDate)\n\n let finalStart = currentStartDate\n let finalEnd = newEndDate\n\n // Validate: endDate cannot be before startDate\n if (newEndDate && currentStartDate) {\n const start = new Date(currentStartDate)\n const end = new Date(newEndDate)\n if (end < start) {\n // If end is before start, set start to same as end\n setLocalStartDate(newValue)\n finalStart = newEndDate\n }\n }\n\n onChange({ startDate: finalStart, endDate: finalEnd })\n }\n\n const handleClear = () => {\n setLocalStartDate('')\n setLocalEndDate('')\n onChange({ startDate: null, endDate: null })\n setIsOpen(false)\n }\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (!disabled) {\n if (isOpen) {\n handleSaveAndClose()\n } else {\n setIsOpen(true)\n }\n }\n }\n\n // Format the display string\n const displayStart = isOpen ? parseDateInput(localStartDate) : value.startDate\n const displayEnd = isOpen ? parseDateInput(localEndDate) : value.endDate\n\n const startDisplay = formatDateForDisplay(displayStart, displayFormat)\n const endDisplay = formatDateForDisplay(displayEnd, displayFormat)\n const formattedRange =\n startDisplay && endDisplay\n ? `${startDisplay} - ${endDisplay}`\n : startDisplay || endDisplay || ''\n\n // Get position for dropdown\n const getDropdownPosition = () => {\n if (!triggerRef.current) return { top: 0, left: 0 }\n const rect = triggerRef.current.getBoundingClientRect()\n return {\n top: rect.bottom + 4,\n left: align === 'left' ? rect.left : rect.right,\n }\n }\n\n const renderTrigger = () => {\n if (hasValue) {\n if (valueTrigger) {\n return valueTrigger(value, formattedRange)\n }\n return (\n <span className={clsx('date-value', pt?.valueDisplay?.className)} {...pt?.valueDisplay}>\n {formattedRange}\n </span>\n )\n }\n\n if (emptyTrigger) {\n return emptyTrigger\n }\n\n return <Styled.DefaultEmptyTrigger icon={'calendar_add_on'} />\n }\n\n const position = getDropdownPosition()\n\n return (\n <Styled.Container\n {...pt?.root}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, className, pt?.root?.className)}\n >\n <Styled.Trigger\n ref={triggerRef}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n {...pt?.trigger}\n className={clsx(hasValue ? 'has-value' : 'empty', pt?.trigger?.className)}\n >\n {renderTrigger()}\n </Styled.Trigger>\n\n {isOpen &&\n createPortal(\n <Styled.Dropdown\n ref={dropdownRef}\n style={{\n top: position.top,\n left: align === 'left' ? position.left : 'auto',\n right: align === 'right' ? window.innerWidth - position.left : 'auto',\n ...pt?.dropdown?.style,\n }}\n onMouseDown={(e) => e.stopPropagation()}\n {...pt?.dropdown}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, align, pt?.dropdown?.className)}\n >\n <Styled.DropdownContent className={pt?.content?.className} {...pt?.content}>\n <Styled.CloseButton\n icon=\"close\"\n variant=\"text\"\n onClick={handleSaveAndClose}\n {...pt?.closeButton}\n />\n <Styled.DateField\n className={pt?.startDate?.field?.className}\n {...pt?.startDate?.field}\n >\n <label {...pt?.startDate?.label}>Start date</label>\n <Styled.DateInput\n ref={startDateInputRef}\n type=\"date\"\n value={localStartDate}\n onChange={handleStartDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={minDate ? format(minDate, 'yyyy-MM-dd') : undefined}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.startDate?.input}\n />\n </Styled.DateField>\n\n <Styled.DateField className={pt?.endDate?.field?.className} {...pt?.endDate?.field}>\n <label {...pt?.endDate?.label}>End date</label>\n <Styled.DateInput\n ref={endDateInputRef}\n type=\"date\"\n value={localEndDate}\n onChange={handleEndDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={localStartDate || (minDate ? format(minDate, 'yyyy-MM-dd') : undefined)}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.endDate?.input}\n />\n </Styled.DateField>\n\n {hasValue && (\n <Styled.ClearButton onClick={handleClear} variant=\"text\" {...pt?.clearButton}>\n Clear dates\n </Styled.ClearButton>\n )}\n </Styled.DropdownContent>\n </Styled.Dropdown>,\n document.body,\n )}\n </Styled.Container>\n )\n}\n"],"names":["formatDateForInput","dateStr","date","parseISO","isValid","format","formatDateForDisplay","formatStr","parseDateInput","value","DateRangePicker","onChange","emptyTrigger","valueTrigger","align","disabled","className","displayFormat","minDate","maxDate","pt","isOpen","setIsOpen","useState","localStartDate","setLocalStartDate","localEndDate","setLocalEndDate","triggerRef","useRef","dropdownRef","startDateInputRef","endDateInputRef","hasValue","handleSaveAndClose","useCallback","start","end","useEffect","handleClickOutside","e","target","handleKeyDown","handleStartDateChange","newValue","newStartDate","currentEndDate","handleEndDateChange","newEndDate","currentStartDate","finalStart","finalEnd","handleClear","handleToggle","displayStart","displayEnd","startDisplay","endDisplay","formattedRange","getDropdownPosition","rect","renderTrigger","jsx","clsx","Styled.DefaultEmptyTrigger","position","jsxs","Styled.Container","BLOCK_DIALOG_CLOSE_CLASS","Styled.Trigger","createPortal","Styled.Dropdown","Styled.DropdownContent","Styled.CloseButton","Styled.DateField","Styled.DateInput","Styled.ClearButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.es.js","sources":["../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n FC,\n useState,\n useRef,\n useEffect,\n ReactNode,\n useCallback,\n HTMLAttributes,\n ButtonHTMLAttributes,\n LabelHTMLAttributes,\n InputHTMLAttributes,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { formatUTCDate } from '../../util/formatUTCDate'\nimport * as Styled from './DateRangePicker.styled'\nimport clsx from 'clsx'\nimport { BLOCK_DIALOG_CLOSE_CLASS } from '../LinksManager/CellEditingDialog'\nimport { ButtonProps } from '@ynput/ayon-react-components'\n\nexport interface DateRangePickerPassthrough {\n root?: Partial<HTMLAttributes<HTMLDivElement>>\n trigger?: Partial<ButtonHTMLAttributes<HTMLButtonElement>>\n dropdown?: Partial<HTMLAttributes<HTMLDivElement>>\n content?: Partial<HTMLAttributes<HTMLDivElement>>\n startDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n endDate?: Partial<{\n field?: Partial<HTMLAttributes<HTMLDivElement>>\n label?: Partial<LabelHTMLAttributes<HTMLLabelElement>>\n input?: Partial<InputHTMLAttributes<HTMLInputElement>>\n }>\n clearButton?: Partial<ButtonProps>\n closeButton?: Partial<ButtonProps>\n valueDisplay?: Partial<HTMLAttributes<HTMLSpanElement>>\n}\n\nexport interface DateRange {\n startDate: string | null\n endDate: string | null\n}\n\nexport interface DateRangePickerProps {\n /** Current date range value */\n value: DateRange\n /** Callback when date range changes */\n onChange: (range: DateRange) => void\n /** Custom trigger button when no dates are set */\n emptyTrigger?: ReactNode\n /** Custom trigger button when dates are set */\n valueTrigger?: (range: DateRange, formattedRange: string) => ReactNode\n /** Alignment of the dropdown relative to trigger */\n align?: 'left' | 'right'\n /** Whether the picker is disabled */\n disabled?: boolean\n /** Additional class name for the container */\n className?: string\n /** Format for displaying dates (default: 'MMM d') */\n displayFormat?: string\n /** Minimum selectable date */\n minDate?: Date\n /** Maximum selectable date */\n maxDate?: Date\n /** Passthrough props for internal components */\n pt?: DateRangePickerPassthrough\n}\n\nconst formatDateForInput = (dateStr: string | null): string => {\n if (!dateStr) return ''\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return formatUTCDate(date, 'yyyy-MM-dd')\n }\n } catch {\n return ''\n }\n return ''\n}\n\nconst formatDateForDisplay = (dateStr: string | null, formatStr: string): string | null => {\n if (!dateStr) return null\n try {\n const date = parseISO(dateStr)\n if (isValid(date)) {\n return formatUTCDate(date, formatStr)\n }\n } catch {\n return null\n }\n return null\n}\n\nconst parseDateInput = (value: string): string | null => {\n if (!value) return null\n try {\n const [y, m, d] = value.split('-').map(Number)\n if (y && m && d) {\n return new Date(Date.UTC(y, m - 1, d)).toISOString()\n }\n } catch {\n return null\n }\n return null\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n value,\n onChange,\n emptyTrigger,\n valueTrigger,\n align = 'left',\n disabled = false,\n className,\n displayFormat = 'MMM d',\n minDate,\n maxDate,\n pt,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [localStartDate, setLocalStartDate] = useState('')\n const [localEndDate, setLocalEndDate] = useState('')\n const triggerRef = useRef<HTMLButtonElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const startDateInputRef = useRef<HTMLInputElement>(null)\n const endDateInputRef = useRef<HTMLInputElement>(null)\n\n const hasValue = value.startDate || value.endDate\n\n const handleSaveAndClose = useCallback(() => {\n const start = parseDateInput(localStartDate)\n const end = parseDateInput(localEndDate)\n if (start !== value.startDate || end !== value.endDate) {\n onChange({ startDate: start, endDate: end })\n }\n setIsOpen(false)\n }, [localStartDate, localEndDate, value.startDate, value.endDate, onChange])\n\n useEffect(() => {\n if (isOpen) {\n setLocalStartDate(formatDateForInput(value.startDate))\n setLocalEndDate(formatDateForInput(value.endDate))\n\n // Automatically open start date picker if no dates are set\n if (!value.startDate && !value.endDate) {\n setTimeout(() => {\n try {\n startDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n }, [isOpen, value.startDate, value.endDate])\n\n // Handle click outside to close\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (\n triggerRef.current &&\n !triggerRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [isOpen, handleSaveAndClose])\n\n // Handle escape key\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n handleSaveAndClose()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, handleSaveAndClose])\n\n const handleStartDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalStartDate(newValue)\n\n const newStartDate = parseDateInput(newValue)\n const currentEndDate = parseDateInput(localEndDate)\n\n // Validate: startDate cannot be after endDate\n if (newStartDate && currentEndDate) {\n const start = new Date(newStartDate)\n const end = new Date(currentEndDate)\n if (start > end) {\n // If start is after end, set end to same as start\n setLocalEndDate(newValue)\n }\n }\n\n // Automatically open end date picker after start date is selected\n if (newStartDate) {\n setTimeout(() => {\n try {\n endDateInputRef.current?.showPicker()\n } catch (err) {\n // fallback\n }\n }, 100)\n }\n }\n\n const handleEndDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalEndDate(newValue)\n\n const newEndDate = parseDateInput(newValue)\n const currentStartDate = parseDateInput(localStartDate)\n\n let finalStart = currentStartDate\n let finalEnd = newEndDate\n\n // Validate: endDate cannot be before startDate\n if (newEndDate && currentStartDate) {\n const start = new Date(currentStartDate)\n const end = new Date(newEndDate)\n if (end < start) {\n // If end is before start, set start to same as end\n setLocalStartDate(newValue)\n finalStart = newEndDate\n }\n }\n\n onChange({ startDate: finalStart, endDate: finalEnd })\n }\n\n const handleClear = () => {\n setLocalStartDate('')\n setLocalEndDate('')\n onChange({ startDate: null, endDate: null })\n setIsOpen(false)\n }\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (!disabled) {\n if (isOpen) {\n handleSaveAndClose()\n } else {\n setIsOpen(true)\n }\n }\n }\n\n // Format the display string\n const displayStart = isOpen ? parseDateInput(localStartDate) : value.startDate\n const displayEnd = isOpen ? parseDateInput(localEndDate) : value.endDate\n\n const startDisplay = formatDateForDisplay(displayStart, displayFormat)\n const endDisplay = formatDateForDisplay(displayEnd, displayFormat)\n const formattedRange =\n startDisplay && endDisplay\n ? `${startDisplay} - ${endDisplay}`\n : startDisplay || endDisplay || ''\n\n // Get position for dropdown\n const getDropdownPosition = () => {\n if (!triggerRef.current) return { top: 0, left: 0 }\n const rect = triggerRef.current.getBoundingClientRect()\n return {\n top: rect.bottom + 4,\n left: align === 'left' ? rect.left : rect.right,\n }\n }\n\n const renderTrigger = () => {\n if (hasValue) {\n if (valueTrigger) {\n return valueTrigger(value, formattedRange)\n }\n return (\n <span className={clsx('date-value', pt?.valueDisplay?.className)} {...pt?.valueDisplay}>\n {formattedRange}\n </span>\n )\n }\n\n if (emptyTrigger) {\n return emptyTrigger\n }\n\n return <Styled.DefaultEmptyTrigger icon={'calendar_add_on'} />\n }\n\n const position = getDropdownPosition()\n\n return (\n <Styled.Container\n {...pt?.root}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, className, pt?.root?.className)}\n >\n <Styled.Trigger\n ref={triggerRef}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n {...pt?.trigger}\n className={clsx(hasValue ? 'has-value' : 'empty', pt?.trigger?.className)}\n >\n {renderTrigger()}\n </Styled.Trigger>\n\n {isOpen &&\n createPortal(\n <Styled.Dropdown\n ref={dropdownRef}\n style={{\n top: position.top,\n left: align === 'left' ? position.left : 'auto',\n right: align === 'right' ? window.innerWidth - position.left : 'auto',\n ...pt?.dropdown?.style,\n }}\n onMouseDown={(e) => e.stopPropagation()}\n {...pt?.dropdown}\n className={clsx(BLOCK_DIALOG_CLOSE_CLASS, align, pt?.dropdown?.className)}\n >\n <Styled.DropdownContent className={pt?.content?.className} {...pt?.content}>\n <Styled.CloseButton\n icon=\"close\"\n variant=\"text\"\n onClick={handleSaveAndClose}\n {...pt?.closeButton}\n />\n <Styled.DateField\n className={pt?.startDate?.field?.className}\n {...pt?.startDate?.field}\n >\n <label {...pt?.startDate?.label}>Start date</label>\n <Styled.DateInput\n ref={startDateInputRef}\n type=\"date\"\n value={localStartDate}\n onChange={handleStartDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={minDate ? format(minDate, 'yyyy-MM-dd') : undefined}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.startDate?.input}\n />\n </Styled.DateField>\n\n <Styled.DateField className={pt?.endDate?.field?.className} {...pt?.endDate?.field}>\n <label {...pt?.endDate?.label}>End date</label>\n <Styled.DateInput\n ref={endDateInputRef}\n type=\"date\"\n value={localEndDate}\n onChange={handleEndDateChange}\n max={maxDate ? format(maxDate, 'yyyy-MM-dd') : undefined}\n min={localStartDate || (minDate ? format(minDate, 'yyyy-MM-dd') : undefined)}\n onClick={(e: any) => {\n try {\n e.currentTarget.showPicker()\n } catch (err) {\n // fallback for older browsers\n }\n }}\n {...pt?.endDate?.input}\n />\n </Styled.DateField>\n\n {hasValue && (\n <Styled.ClearButton onClick={handleClear} variant=\"text\" {...pt?.clearButton}>\n Clear dates\n </Styled.ClearButton>\n )}\n </Styled.DropdownContent>\n </Styled.Dropdown>,\n document.body,\n )}\n </Styled.Container>\n )\n}\n"],"names":["formatDateForInput","dateStr","date","parseISO","isValid","formatUTCDate","formatDateForDisplay","formatStr","parseDateInput","value","y","m","d","DateRangePicker","onChange","emptyTrigger","valueTrigger","align","disabled","className","displayFormat","minDate","maxDate","pt","isOpen","setIsOpen","useState","localStartDate","setLocalStartDate","localEndDate","setLocalEndDate","triggerRef","useRef","dropdownRef","startDateInputRef","endDateInputRef","hasValue","handleSaveAndClose","useCallback","start","end","useEffect","handleClickOutside","e","target","handleKeyDown","handleStartDateChange","newValue","newStartDate","currentEndDate","handleEndDateChange","newEndDate","currentStartDate","finalStart","finalEnd","handleClear","handleToggle","displayStart","displayEnd","startDisplay","endDisplay","formattedRange","getDropdownPosition","rect","renderTrigger","jsx","clsx","Styled.DefaultEmptyTrigger","position","jsxs","Styled.Container","BLOCK_DIALOG_CLOSE_CLASS","Styled.Trigger","createPortal","Styled.Dropdown","Styled.DropdownContent","Styled.CloseButton","Styled.DateField","Styled.DateInput","format","Styled.ClearButton"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/jsx-runtime.cjs.js"),d=require("react"),p=require("react-toastify");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/dataImport.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/projectFolders.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/activities/getCategories.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/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");const x=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/entityLists/listFolders.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/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.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/users/guests.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("../../api/queries/uris/getUris.cjs.js");const a=require("@ynput/ayon-react-components"),g=require("../../../../node_modules/@uiw/react-textarea-code-editor/esm/index.cjs.js");require("lodash");const m=require("../../util/copyToClipboard.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");const y=({projectName:n,entityType:i,entityIds:s,visible:t,onHide:l})=>{const{data:r={},isLoading:o,isError:u,error:c}=x.useGetEntityQuery({projectName:n,entityType:i,entityId:s?.[0]},{skip:!t});u&&p.toast.error(`Unable to load detail. ${c}`);const q=d.useMemo(()=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}},[r]);return!t||Array.isArray(r)&&r.length<1?null:e.jsxRuntimeExports.jsxs(a.Dialog,{isOpen:!0,onClose:l,size:"lg",style:{width:"50vw"},header:`${i} detail`,children:[e.jsxRuntimeExports.jsx("style",{children:`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/jsx-runtime.cjs.js"),d=require("react"),p=require("react-toastify");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/dataImport.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/projectFolders.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/activities/getCategories.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/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");const x=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/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/folders/getFolderDeleteInfo.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/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.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/users/guests.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("../../api/queries/uris/getUris.cjs.js");const a=require("@ynput/ayon-react-components"),g=require("../../../../node_modules/@uiw/react-textarea-code-editor/esm/index.cjs.js");require("lodash");const m=require("../../util/copyToClipboard.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");const y=({projectName:n,entityType:i,entityIds:s,visible:t,onHide:l})=>{const{data:r={},isLoading:o,isError:u,error:c}=x.useGetEntityQuery({projectName:n,entityType:i,entityId:s?.[0]},{skip:!t});u&&p.toast.error(`Unable to load detail. ${c}`);const q=d.useMemo(()=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}},[r]);return!t||Array.isArray(r)&&r.length<1?null:e.jsxRuntimeExports.jsxs(a.Dialog,{isOpen:!0,onClose:l,size:"lg",style:{width:"50vw"},header:`${i} detail`,children:[e.jsxRuntimeExports.jsx("style",{children:`
|
|
2
2
|
.details-dialog__code { position: relative; }
|
|
3
3
|
.details-dialog__copy { position: absolute; right: 12px; top: 24px; z-index: 10; background: rgba(0,0,0,0.5); border-radius: 4px; padding: 6px; cursor: pointer; display: none; align-items: center; justify-content: center; }
|
|
4
4
|
.details-dialog__code:hover .details-dialog__copy, .details-dialog__code:focus-within .details-dialog__copy { display: flex; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsDialog.cjs.js","sources":["../../../../../src/components/DetailsDialog/DetailsDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { useGetEntityQuery } from '@shared/api'\nimport { Dialog, Icon } from '@ynput/ayon-react-components'\nimport CodeEditor from '@uiw/react-textarea-code-editor'\nimport { copyToClipboard } from '@shared/util'\n\nexport interface DetailsDialogProps {\n projectName?: string\n entityType: string\n entityIds: string[]\n visible: boolean\n onHide: () => void\n}\n\nexport const DetailsDialog = ({\n projectName,\n entityType,\n entityIds,\n visible,\n onHide,\n}: DetailsDialogProps) => {\n const {\n data = {},\n isLoading,\n isError,\n error,\n } = useGetEntityQuery(\n { projectName, entityType: entityType, entityId: entityIds?.[0] },\n { skip: !visible },\n )\n\n // Show error toast if the query errored\n if (isError) {\n toast.error(`Unable to load detail. ${error}`)\n }\n\n // Raw pretty JSON for copying and highlighting\n const rawJson = useMemo(() => {\n try {\n return JSON.stringify(data, null, 2)\n } catch {\n return String(data)\n }\n }, [data])\n\n // Keep the early return after hooks to ensure hooks are called on every render in the same order\n if (!visible || (Array.isArray(data) ? data.length < 1 : false)) return null\n\n return (\n <Dialog\n isOpen={true}\n onClose={onHide}\n size=\"lg\"\n style={{ width: '50vw' }}\n header={`${entityType} detail`}\n >\n <style>{`\n .details-dialog__code { position: relative; }\n .details-dialog__copy { position: absolute; right: 12px; top: 24px; z-index: 10; background: rgba(0,0,0,0.5); border-radius: 4px; padding: 6px; cursor: pointer; display: none; align-items: center; justify-content: center; }\n .details-dialog__code:hover .details-dialog__copy, .details-dialog__code:focus-within .details-dialog__copy { display: flex; }\n .w-tc-editor .token.property { color: #c9a5f7 !important; }\n .w-tc-editor .token.string { color: #6bc985 !important; }\n .w-tc-editor .token.number { color: #e5a66b !important; }\n .w-tc-editor .token.boolean { color: #e5a66b !important; }\n .w-tc-editor .token.null { color: #7a8a99 !important; }\n .w-tc-editor .token.punctuation { color: #b0bec5 !important; }\n .w-tc-editor .token.operator { color: #b0bec5 !important; }\n .details-dialog__code .w-tc-editor textarea { display: none !important; }\n `}</style>\n <div className=\"details-dialog__code\">\n {isLoading || isError ? (\n <pre>{isLoading ? 'loading...' : 'error...'}</pre>\n ) : (\n <>\n <div\n role=\"button\"\n aria-label=\"Copy JSON\"\n onClick={() => copyToClipboard(rawJson)}\n className=\"details-dialog__copy\"\n >\n <Icon icon={'content_copy'} data-tooltip=\"Copy to clipboard\" />\n </div>\n <CodeEditor\n wrap={'off'}\n value={rawJson}\n language=\"json\"\n placeholder=\"Please enter JS code.\"\n readOnly\n data-color-mode={'dark'}\n />\n </>\n )}\n </div>\n </Dialog>\n )\n}"],"names":["DetailsDialog","projectName","entityType","entityIds","visible","onHide","data","isLoading","isError","error","useGetEntityQuery","toast","rawJson","useMemo","jsxs","Dialog","jsx","Fragment","copyToClipboard","Icon","CodeEditor"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DetailsDialog.cjs.js","sources":["../../../../../src/components/DetailsDialog/DetailsDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { useGetEntityQuery } from '@shared/api'\nimport { Dialog, Icon } from '@ynput/ayon-react-components'\nimport CodeEditor from '@uiw/react-textarea-code-editor'\nimport { copyToClipboard } from '@shared/util'\n\nexport interface DetailsDialogProps {\n projectName?: string\n entityType: string\n entityIds: string[]\n visible: boolean\n onHide: () => void\n}\n\nexport const DetailsDialog = ({\n projectName,\n entityType,\n entityIds,\n visible,\n onHide,\n}: DetailsDialogProps) => {\n const {\n data = {},\n isLoading,\n isError,\n error,\n } = useGetEntityQuery(\n { projectName, entityType: entityType, entityId: entityIds?.[0] },\n { skip: !visible },\n )\n\n // Show error toast if the query errored\n if (isError) {\n toast.error(`Unable to load detail. ${error}`)\n }\n\n // Raw pretty JSON for copying and highlighting\n const rawJson = useMemo(() => {\n try {\n return JSON.stringify(data, null, 2)\n } catch {\n return String(data)\n }\n }, [data])\n\n // Keep the early return after hooks to ensure hooks are called on every render in the same order\n if (!visible || (Array.isArray(data) ? data.length < 1 : false)) return null\n\n return (\n <Dialog\n isOpen={true}\n onClose={onHide}\n size=\"lg\"\n style={{ width: '50vw' }}\n header={`${entityType} detail`}\n >\n <style>{`\n .details-dialog__code { position: relative; }\n .details-dialog__copy { position: absolute; right: 12px; top: 24px; z-index: 10; background: rgba(0,0,0,0.5); border-radius: 4px; padding: 6px; cursor: pointer; display: none; align-items: center; justify-content: center; }\n .details-dialog__code:hover .details-dialog__copy, .details-dialog__code:focus-within .details-dialog__copy { display: flex; }\n .w-tc-editor .token.property { color: #c9a5f7 !important; }\n .w-tc-editor .token.string { color: #6bc985 !important; }\n .w-tc-editor .token.number { color: #e5a66b !important; }\n .w-tc-editor .token.boolean { color: #e5a66b !important; }\n .w-tc-editor .token.null { color: #7a8a99 !important; }\n .w-tc-editor .token.punctuation { color: #b0bec5 !important; }\n .w-tc-editor .token.operator { color: #b0bec5 !important; }\n .details-dialog__code .w-tc-editor textarea { display: none !important; }\n `}</style>\n <div className=\"details-dialog__code\">\n {isLoading || isError ? (\n <pre>{isLoading ? 'loading...' : 'error...'}</pre>\n ) : (\n <>\n <div\n role=\"button\"\n aria-label=\"Copy JSON\"\n onClick={() => copyToClipboard(rawJson)}\n className=\"details-dialog__copy\"\n >\n <Icon icon={'content_copy'} data-tooltip=\"Copy to clipboard\" />\n </div>\n <CodeEditor\n wrap={'off'}\n value={rawJson}\n language=\"json\"\n placeholder=\"Please enter JS code.\"\n readOnly\n data-color-mode={'dark'}\n />\n </>\n )}\n </div>\n </Dialog>\n )\n}"],"names":["DetailsDialog","projectName","entityType","entityIds","visible","onHide","data","isLoading","isError","error","useGetEntityQuery","toast","rawJson","useMemo","jsxs","Dialog","jsx","Fragment","copyToClipboard","Icon","CodeEditor"],"mappings":"2wKAeO,MAAMA,EAAgB,CAAC,CAC5B,YAAAC,EACA,WAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,CACF,IAA0B,CACxB,KAAM,CACJ,KAAAC,EAAO,CAAA,EACP,UAAAC,EACA,QAAAC,EACA,MAAAC,CAAA,EACEC,EAAAA,kBACF,CAAE,YAAAT,EAAa,WAAAC,EAAwB,SAAUC,IAAY,CAAC,CAAA,EAC9D,CAAE,KAAM,CAACC,CAAA,CAAQ,EAIfI,GACFG,EAAAA,MAAM,MAAM,0BAA0BF,CAAK,EAAE,EAI/C,MAAMG,EAAUC,EAAAA,QAAQ,IAAM,CAC5B,GAAI,CACF,OAAO,KAAK,UAAUP,EAAM,KAAM,CAAC,CACrC,MAAQ,CACN,OAAO,OAAOA,CAAI,CACpB,CACF,EAAG,CAACA,CAAI,CAAC,EAGT,MAAI,CAACF,GAAY,MAAM,QAAQE,CAAI,GAAIA,EAAK,OAAS,EAAmB,KAGtEQ,EAAAA,kBAAAA,KAACC,EAAAA,OAAA,CACC,OAAQ,GACR,QAASV,EACT,KAAK,KACL,MAAO,CAAE,MAAO,MAAA,EAChB,OAAQ,GAAGH,CAAU,UAErB,SAAA,CAAAc,wBAAC,QAAA,CAAO,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAYN,EACFA,wBAAC,MAAA,CAAI,UAAU,uBACZ,SAAAT,GAAaC,EACZQ,wBAAC,MAAA,CAAK,SAAAT,EAAY,aAAe,UAAA,CAAW,EAE5CO,yBAAAG,EAAAA,kBAAAA,SAAA,CACE,SAAA,CAAAD,EAAAA,kBAAAA,IAAC,MAAA,CACC,KAAK,SACL,aAAW,YACX,QAAS,IAAME,EAAAA,gBAAgBN,CAAO,EACtC,UAAU,uBAEV,SAAAI,EAAAA,kBAAAA,IAACG,OAAA,CAAK,KAAM,eAAgB,eAAa,mBAAA,CAAoB,CAAA,CAAA,EAE/DH,EAAAA,kBAAAA,IAACI,EAAAA,QAAA,CACC,KAAM,MACN,MAAOR,EACP,SAAS,OACT,YAAY,wBACZ,SAAQ,GACR,kBAAiB,MAAA,CAAA,CACnB,CAAA,CACF,CAAA,CAEJ,CAAA,CAAA,CAAA,CAGN"}
|
|
@@ -64,6 +64,7 @@ import "../../api/queries/entityLists/getListsAttributes.es.js";
|
|
|
64
64
|
import "../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
65
65
|
import "../../api/queries/entityLists/listFolders.es.js";
|
|
66
66
|
import "../../api/queries/folders/getFolders.es.js";
|
|
67
|
+
import "../../api/queries/folders/getFolderDeleteInfo.es.js";
|
|
67
68
|
import "../../api/queries/grouping/getGrouping.es.js";
|
|
68
69
|
import "../../api/queries/links/updateLinks.es.js";
|
|
69
70
|
import "../../api/queries/links/getLinks.es.js";
|
|
@@ -99,7 +100,7 @@ import "lodash";
|
|
|
99
100
|
import { copyToClipboard as x } from "../../util/copyToClipboard.es.js";
|
|
100
101
|
import "uuid";
|
|
101
102
|
import "../../util/pubsub.es.js";
|
|
102
|
-
const
|
|
103
|
+
const gt = ({
|
|
103
104
|
projectName: a,
|
|
104
105
|
entityType: r,
|
|
105
106
|
entityIds: l,
|
|
@@ -173,6 +174,6 @@ const st = ({
|
|
|
173
174
|
);
|
|
174
175
|
};
|
|
175
176
|
export {
|
|
176
|
-
|
|
177
|
+
gt as DetailsDialog
|
|
177
178
|
};
|
|
178
179
|
//# sourceMappingURL=DetailsDialog.es.js.map
|