@ynput/ayon-frontend-shared 0.2.29 → 0.2.30
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 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +51 -49
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +220 -213
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +82 -74
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +23 -19
- package/dist/context.es.js.map +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +12 -10
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- package/dist/index.es.js.map +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 +8 -7
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.es.js +9 -2
- package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js +46 -0
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +10 -5
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +23 -18
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.es.js +12 -5
- package/dist/shared/src/api/queries/attributes/updateAttributes.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/entities/updateEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +33 -32
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +151 -125
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +2 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +111 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +104 -88
- package/dist/shared/src/api/queries/entityLists/updateLists.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 +7 -6
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -19
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +10 -70
- package/dist/shared/src/api/queries/project/getProject.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 +35 -61
- package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +14 -8
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +23 -23
- 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 +18 -17
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +19 -11
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +30 -29
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.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/DetailsPanelAttributesEditor.cjs.js +5 -3
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +64 -51
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +66 -59
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js +4 -5
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js +46 -41
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.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 +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +76 -5
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +76 -5
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +11 -11
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +32 -32
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +15 -8
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.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 +3 -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 +5 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +51 -152
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js +3 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js +3 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js +2 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js +141 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -0
- 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 +5 -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 +5 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +2 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +177 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +2 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +31 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +3 -3
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +8 -7
- package/dist/shared/src/components/Powerpack/PowerpackButton.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 +42 -31
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +12 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +15 -4
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -4
- 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 +6 -3
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js +2 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js.map +1 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js +2 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +116 -105
- 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 -2
- 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 -3
- 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 -2
- 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/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 +3 -2
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +3 -3
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -5
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.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 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +12 -11
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -2
- 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 +5 -4
- 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 -2
- 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 +4 -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 -2
- 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 +149 -160
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +7 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -6
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/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 +3 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +5 -2
- 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 +5 -2
- 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 -2
- 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 -2
- 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 +4 -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 +20 -19
- package/dist/shared/src/containers/Feed/Feed.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 +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +18 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +24 -9
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +7 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +7 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.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 +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.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 +7 -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 +8 -4
- 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 +191 -183
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +280 -57
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- 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 -2
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.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 +34 -32
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +10 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +7 -5
- 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 +20 -18
- 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 +48 -45
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +239 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -0
- 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 +3 -2
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.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 +25 -22
- 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 +5 -2
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.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 +16 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.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 +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +57 -55
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.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 -4
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.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 -2
- 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 +169 -148
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +23 -4
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +24 -5
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +62 -50
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.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 +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +9 -8
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.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 +6 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.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 +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.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 +13 -12
- 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 +6 -4
- package/dist/shared/src/context/DetailsPanelContext.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 +61 -41
- package/dist/shared/src/context/PowerpackContext.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/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 +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js +2 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.es.js +12 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.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/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/checkName.cjs.js +1 -1
- package/dist/shared/src/util/checkName.cjs.js.map +1 -1
- package/dist/shared/src/util/checkName.es.js +35 -5
- package/dist/shared/src/util/checkName.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.es.js +59 -35
- package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +13 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +13 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +52 -36
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js +103 -83
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
- package/dist/types/api/generated/anatomy.d.ts +23 -0
- package/dist/types/api/generated/attributes.d.ts +15 -4
- package/dist/types/api/generated/entityLists.d.ts +102 -9
- package/dist/types/api/generated/graphql.d.ts +9 -1
- package/dist/types/api/generated/projects.d.ts +8 -0
- package/dist/types/api/queries/attributes/getAttributes.d.ts +1 -0
- package/dist/types/api/queries/attributes/updateAttributes.d.ts +162 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +152 -0
- package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +5 -0
- package/dist/types/api/queries/entityLists/index.d.ts +1 -0
- package/dist/types/api/queries/entityLists/listFolders.d.ts +613 -0
- package/dist/types/api/queries/entityLists/types.d.ts +3 -1
- package/dist/types/api/queries/entityLists/updateLists.d.ts +5 -0
- package/dist/types/api/queries/entityLists/updateListsAttributes.d.ts +5 -0
- package/dist/types/api/queries/project/getProject.d.ts +4 -305
- package/dist/types/api/queries/project/updateProject.d.ts +803 -0
- package/dist/types/api/queries/users/updateUsers.d.ts +160 -0
- package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +4 -0
- package/dist/types/components/DetailsPanelDetails/BorderedSection.d.ts +5 -3
- package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +3 -2
- package/dist/types/components/DetailsPanelDetails/index.d.ts +1 -0
- package/dist/types/components/EnumEditor/EnumEditorItem.d.ts +13 -0
- package/dist/types/components/EnumEditor/index.d.ts +1 -0
- package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +11 -0
- package/dist/types/components/ListAttributeForm/index.d.ts +1 -0
- package/dist/types/components/ListMetaData/ListMetaData.d.ts +8 -0
- package/dist/types/components/ListMetaData/index.d.ts +1 -0
- package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +1 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/containers/DetailsPanel/DetailsPanel.styled.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +1 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnGroupBy.d.ts +10 -0
- package/dist/types/containers/SimpleTable/SimpleTable.d.ts +3 -0
- package/dist/types/containers/SimpleTable/SimpleTableRowTemplate.d.ts +5 -1
- package/dist/types/context/AddonProjectContext.d.ts +2 -1
- package/dist/types/context/PowerpackContext.d.ts +4 -2
- package/dist/types/context/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useQueryArgumentChangeLoading.d.ts +9 -0
- package/dist/types/util/checkName.d.ts +9 -1
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +34 -32
- package/package.json +1 -1
|
@@ -29,6 +29,7 @@ const a = o`
|
|
|
29
29
|
justify-content: stretch;
|
|
30
30
|
border-radius: 4px;
|
|
31
31
|
overflow: hidden;
|
|
32
|
+
background-color: var(--md-sys-color-surface-container-high);
|
|
32
33
|
&.dragged {
|
|
33
34
|
opacity: 0;
|
|
34
35
|
}
|
|
@@ -83,7 +84,6 @@ const a = o`
|
|
|
83
84
|
}
|
|
84
85
|
`, v = e.div`
|
|
85
86
|
${a}
|
|
86
|
-
background-color: var(--md-sys-color-surface-container-high);
|
|
87
87
|
align-items: stretch;
|
|
88
88
|
padding: 0 8px;
|
|
89
89
|
min-height: 0;
|
|
@@ -109,6 +109,7 @@ const a = o`
|
|
|
109
109
|
height: 14px;
|
|
110
110
|
`, y = e(i)`
|
|
111
111
|
flex-grow: 1;
|
|
112
|
+
width: 100%;
|
|
112
113
|
button div {
|
|
113
114
|
width: 100%;
|
|
114
115
|
}
|
|
@@ -126,6 +127,7 @@ const a = o`
|
|
|
126
127
|
justify-content: start;
|
|
127
128
|
flex-grow: 1;
|
|
128
129
|
gap: var(--base-gap-small);
|
|
130
|
+
width: 100%;
|
|
129
131
|
`, c = e.div`
|
|
130
132
|
${t}
|
|
131
133
|
cursor: pointer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumEditor.styled.es.js","sources":["../../../../../src/components/EnumEditor/EnumEditor.styled.ts"],"sourcesContent":["import {\n InputText as BaseInputText,\n IconSelect as BaseIconSelect,\n Button as BaseButton,\n} from '@ynput/ayon-react-components'\nimport styled, { css } from 'styled-components'\n\nconst centeredContentFlexColumn = css`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n`\n\nconst centeredContentFlexRow = css`\n display: flex;\n align-items: center;\n gap: 8px;\n`\nconst inputLikeColorsAndBorder = css`\n min-height: var(--base-input-size);\n max-height: var(--base-input-size);\n background-color: var(--md-sys-color-surface-container-low);\n border-radius: var(--border-radius-m);\n border: 1px solid;\n border-color: var(--md-sys-color-outline-variant);\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-low-hover);\n }\n`\n\nexport const EnumListWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n gap: 4px;\n`\n\nexport const EnumItemWrapper = styled.div`\n justify-content: stretch;\n border-radius: 4px;\n overflow: hidden;\n &.dragged {\n opacity: 0;\n }\n`\n\nexport const EnumItemHeader = styled.div`\n ${centeredContentFlexRow}\n cursor: pointer;\n user-select: none;\n padding: 8px;\n height: 36px;\n font-size: 14px;\n line-height: 17px;\n background-color: var(--md-sys-color-surface-container-high);\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n .icon.toggle-expand {\n visibility: visible;\n }\n }\n .icon {\n width: 20px;\n height: 20px;\n &.draggable {\n cursor: grab;\n }\n &.toggle-expand {\n visibility: hidden;\n }\n }\n &.collapsed {\n color: red;\n height: 0;\n }\n &.expanded {\n background-color: var(--md-sys-color-surface-container-highest);\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n .icon.toggle-expand {\n visibility: visible;\n }\n }\n .spacer {\n flex-grow: 1;\n }\n`\n\nexport const EnumItemBodyExpander = styled.div`\n display: grid;\n grid-template-rows: 0fr;\n overflow: hidden;\n transition: grid-template-rows 0.25s;\n &.expanded {\n grid-template-rows: 1fr;\n }\n`\n\nexport const EnumItemBody = styled.div`\n ${centeredContentFlexColumn}\n
|
|
1
|
+
{"version":3,"file":"EnumEditor.styled.es.js","sources":["../../../../../src/components/EnumEditor/EnumEditor.styled.ts"],"sourcesContent":["import {\n InputText as BaseInputText,\n IconSelect as BaseIconSelect,\n Button as BaseButton,\n} from '@ynput/ayon-react-components'\nimport styled, { css } from 'styled-components'\n\nconst centeredContentFlexColumn = css`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n`\n\nconst centeredContentFlexRow = css`\n display: flex;\n align-items: center;\n gap: 8px;\n`\nconst inputLikeColorsAndBorder = css`\n min-height: var(--base-input-size);\n max-height: var(--base-input-size);\n background-color: var(--md-sys-color-surface-container-low);\n border-radius: var(--border-radius-m);\n border: 1px solid;\n border-color: var(--md-sys-color-outline-variant);\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-low-hover);\n }\n`\n\nexport const EnumListWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n gap: 4px;\n`\n\nexport const EnumItemWrapper = styled.div`\n justify-content: stretch;\n border-radius: 4px;\n overflow: hidden;\n background-color: var(--md-sys-color-surface-container-high);\n &.dragged {\n opacity: 0;\n }\n`\n\nexport const EnumItemHeader = styled.div`\n ${centeredContentFlexRow}\n cursor: pointer;\n user-select: none;\n padding: 8px;\n height: 36px;\n font-size: 14px;\n line-height: 17px;\n background-color: var(--md-sys-color-surface-container-high);\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n .icon.toggle-expand {\n visibility: visible;\n }\n }\n .icon {\n width: 20px;\n height: 20px;\n &.draggable {\n cursor: grab;\n }\n &.toggle-expand {\n visibility: hidden;\n }\n }\n &.collapsed {\n color: red;\n height: 0;\n }\n &.expanded {\n background-color: var(--md-sys-color-surface-container-highest);\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n .icon.toggle-expand {\n visibility: visible;\n }\n }\n .spacer {\n flex-grow: 1;\n }\n`\n\nexport const EnumItemBodyExpander = styled.div`\n display: grid;\n grid-template-rows: 0fr;\n overflow: hidden;\n transition: grid-template-rows 0.25s;\n &.expanded {\n grid-template-rows: 1fr;\n }\n`\n\nexport const EnumItemBody = styled.div`\n ${centeredContentFlexColumn}\n align-items: stretch;\n padding: 0 8px;\n min-height: 0;\n transition: padding 0.25s;\n &.expanded {\n padding: 8px;\n }\n`\n\nexport const Label = styled.div`\n user-select: none;\n min-width: 80px;\n`\n\nexport const Row = styled.div`\n ${centeredContentFlexRow}\n &.footer {\n justify-content: space-between;\n padding: 0 8px;\n }\n`\n\nexport const ActionWrapper = styled.div`\n ${centeredContentFlexRow}\n gap: 4px;\n`\n\nexport const LabelColor = styled.div`\n border-radius: 4px;\n width: 14px;\n height: 14px;\n`\n\nexport const IconSelect = styled(BaseIconSelect)`\n flex-grow: 1;\n width: 100%;\n button div {\n width: 100%;\n }\n`\n\nexport const Button = styled(BaseButton)`\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n`\n\nexport const InputText = styled(BaseInputText)`\n background-color: var(--md-sys-color-surface-container-low);\n border-color: var(--md-sys-color-outline-variant);\n flex-grow: 1;\n padding: 4px 8px;\n`\n\nexport const PlaceholderWrapper = styled.div`\n display: flex;\n justify-content: start;\n flex-grow: 1;\n gap: var(--base-gap-small);\n width: 100%;\n`\nexport const Placeholder = styled.div`\n ${inputLikeColorsAndBorder}\n cursor: pointer;\n display: flex;\n justify-content: start;\n flex-grow: 1;\n align-items: center;\n width: 100%;\n padding-left: 8px;\n user-select: none;\n`\n\nexport const ColorPicker = styled(Placeholder)`\n ${inputLikeColorsAndBorder}\n position: relative;\n cursor: pointer;\n &.active:hover {\n filter: brightness(1.4);\n }\n input {\n position: absolute;\n visibility: hidden;\n }\n`\n"],"names":["centeredContentFlexColumn","css","centeredContentFlexRow","inputLikeColorsAndBorder","EnumListWrapper","styled","EnumItemWrapper","EnumItemHeader","EnumItemBodyExpander","EnumItemBody","Label","Row","ActionWrapper","LabelColor","IconSelect","BaseIconSelect","Button","BaseButton","InputText","BaseInputText","PlaceholderWrapper","Placeholder","ColorPicker"],"mappings":";;AAOA,MAAMA,IAA4BC;AAAA;AAAA;AAAA;AAAA;AAAA,GAO5BC,IAAyBD;AAAA;AAAA;AAAA;AAAA,GAKzBE,IAA2BF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAapBG,IAAkBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOzBC,IAAkBD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUzBE,IAAiBF,EAAO;AAAA,IACjCH,CAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0CbM,IAAuBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAU9BI,IAAeJ,EAAO;AAAA,IAC/BL,CAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUhBU,IAAQL,EAAO;AAAA;AAAA;AAAA,GAKfM,IAAMN,EAAO;AAAA,IACtBH,CAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,GAObU,IAAgBP,EAAO;AAAA,IAChCH,CAAsB;AAAA;AAAA,GAIbW,IAAaR,EAAO;AAAA;AAAA;AAAA;AAAA,GAMpBS,IAAaT,EAAOU,CAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQlCC,IAASX,EAAOY,CAAU;AAAA;AAAA;AAAA;AAAA,GAM1BC,IAAYb,EAAOc,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,GAOhCC,IAAqBf,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAO5BgB,IAAchB,EAAO;AAAA,IAC9BF,CAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWfmB,IAAcjB,EAAOgB,CAAW;AAAA,IACzClB,CAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("../../../../_virtual/jsx-runtime.cjs.js"),l=require("react"),b=require("lodash"),r=require("./EnumEditor.styled.cjs.js"),y=({item:i,onChange:s,onRemove:f,onDuplicate:v,showRemoveButton:j=!0,showDuplicateButton:p=!0,autoFocus:o=!1,isExpanded:x=!0})=>{var m;const{label:h,value:k,icon:c,color:n,isNewAttribute:R}=i,a=l.useRef(null),u=l.useRef(null),d=l.useRef(null),E=l.useRef(null);return l.useEffect(()=>{var e;(o||i.isNewAttribute)&&((e=a.current)==null||e.select())},[o,i.isNewAttribute]),l.useEffect(()=>{x&&!o&&!i.isNewAttribute&&setTimeout(()=>{var e;return(e=a.current)==null?void 0:e.focus()},250)},[x,o,i.isNewAttribute]),t.jsxRuntimeExports.jsxs(r.EnumItemBody,{className:x?"expanded":"collapsed",children:[t.jsxRuntimeExports.jsxs(r.Row,{children:[t.jsxRuntimeExports.jsx(r.Label,{children:"Label"}),t.jsxRuntimeExports.jsx(r.InputText,{ref:a,value:h,autoFocus:o||R,onChange:e=>{if(!R)return s&&s(["label"],[e.target.value]);u.current&&(u.current.value=b.kebabCase(e.target.value)),s&&s(["label","value"],[e.target.value,b.kebabCase(e.target.value)])},placeholder:"Enter label"})]},"label"),t.jsxRuntimeExports.jsxs(r.Row,{children:[t.jsxRuntimeExports.jsx(r.Label,{children:"Value"}),t.jsxRuntimeExports.jsx(r.InputText,{ref:u,value:((m=u.current)==null?void 0:m.value)||k,onChange:e=>s&&s(["value"],[e.target.value]),placeholder:"Enter value"})]},"value"),t.jsxRuntimeExports.jsxs(r.Row,{children:[t.jsxRuntimeExports.jsx(r.Label,{children:"Icon"}),t.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[t.jsxRuntimeExports.jsx(r.Placeholder,{style:{display:c?"none":"flex"},onClick:()=>{var e;(e=E.current)==null||e.open()},children:"Pick an icon..."}),t.jsxRuntimeExports.jsx(r.IconSelect,{ref:E,value:[c||"question_mark"],widthExpand:!0,style:{position:c?"relative":"absolute",visibility:c?"visible":"hidden"},onChange:e=>s&&s(["icon"],[e[0]])}),c&&t.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{s&&s(["icon"],[void 0])}})]})]},"icon"),t.jsxRuntimeExports.jsxs(r.Row,{children:[t.jsxRuntimeExports.jsx(r.Label,{children:"Color"}),t.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[t.jsxRuntimeExports.jsxs(r.ColorPicker,{className:n?"active":"",style:{backgroundColor:n||void 0},onClick:()=>{var e;return(e=d.current)==null?void 0:e.click()},children:[n?"":"Pick a color...",t.jsxRuntimeExports.jsx("input",{type:"color",ref:d,value:n||"#000000",onChange:e=>s&&s(["color"],[e==null?void 0:e.target.value.toString()])})]}),n&&t.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{s&&s(["color"],[void 0])}})]})]},"color"),(j||p)&&t.jsxRuntimeExports.jsxs(r.Row,{className:"footer",children:[j&&t.jsxRuntimeExports.jsx(r.ActionWrapper,{children:t.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:f,children:"Remove"})}),p&&t.jsxRuntimeExports.jsx(r.ActionWrapper,{children:t.jsxRuntimeExports.jsx(r.Button,{icon:"content_copy",variant:"text",onClick:v,children:"Duplicate"})})]})]})};module.exports=y;
|
|
2
|
+
//# sourceMappingURL=EnumEditorItem.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnumEditorItem.cjs.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\n\ninterface EnumEditorItemProps {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody className={isExpanded ? 'expanded' : 'collapsed'}>\n <Styled.Row key=\"label\">\n <Styled.Label>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\">\n <Styled.Label>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\">\n <Styled.Label>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n }}\n onChange={(value) => {\n return onChange && onChange(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\">\n <Styled.Label>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n onChange={(event) =>\n onChange && onChange(['color'], [event?.target.value.toString()])\n }\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row className=\"footer\">\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","_a","Styled.EnumItemBody","jsxs","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":"uJAmBMA,EAAiB,CAAC,CACtB,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,iBAAAC,EAAmB,GACnB,oBAAAC,EAAsB,GACtB,UAAAC,EAAY,GACZ,WAAAC,EAAa,EACf,IAA2B,OACzB,KAAM,CAAE,MAAAC,EAAO,MAAAC,EAAO,KAAAC,EAAM,MAAAC,EAAO,eAAAC,GAAmBZ,EAChDa,EAAWC,SAAyB,IAAI,EACxCC,EAAWD,SAAyB,IAAI,EACxCE,EAAiBF,SAAyB,IAAI,EAC9CG,EAAgBH,SAAoB,IAAI,EAE9CI,OAAAA,EAAAA,UAAU,IAAM,QACVZ,GAAaN,EAAK,mBACpBmB,EAAAN,EAAS,UAAT,MAAAM,EAAkB,SAEnB,EAAA,CAACb,EAAWN,EAAK,cAAc,CAAC,EAGnCkB,EAAAA,UAAU,IAAM,CACVX,GAAc,CAACD,GAAa,CAACN,EAAK,gBAEpC,WAAW,IAAA,OAAM,OAAAmB,EAAAN,EAAS,UAAT,YAAAM,EAAkB,SAAS,GAAG,GAEhD,CAACZ,EAAYD,EAAWN,EAAK,cAAc,CAAC,2BAG5CoB,EAAAA,aAAA,CAAoB,UAAWb,EAAa,WAAa,YACxD,SAAA,CAACc,yBAAAC,EAAAA,IAAA,CACC,SAAA,CAACC,EAAAA,kBAAAA,IAAAC,EAAA,MAAA,CAAa,SAAK,OAAA,CAAA,EACnBD,EAAA,kBAAA,IAACE,EAAO,UAAP,CACC,IAAKZ,EACL,MAAOL,EACP,UAAWF,GAAaM,EACxB,SAAWc,GAAU,CACnB,GAAI,CAACd,EACI,OAAAX,GAAYA,EAAS,CAAC,OAAO,EAAG,CAACyB,EAAM,OAAO,KAAK,CAAC,EAEzDX,EAAS,UACXA,EAAS,QAAQ,MAAQY,EAAU,UAAAD,EAAM,OAAO,KAAK,GAEvDzB,GACEA,EAAS,CAAC,QAAS,OAAO,EAAG,CAACyB,EAAM,OAAO,MAAOC,EAAAA,UAAUD,EAAM,OAAO,KAAK,CAAC,CAAC,CACpF,EACA,YAAY,aAAA,CAAA,CACd,CAAA,EAjBc,OAkBhB,EAEAL,yBAACC,EAAAA,IAAA,CACC,SAAA,CAACC,EAAAA,kBAAAA,IAAAC,EAAA,MAAA,CAAa,SAAK,OAAA,CAAA,EACnBD,EAAA,kBAAA,IAACE,EAAO,UAAP,CACC,IAAKV,EACL,QAAOI,EAAAJ,EAAS,UAAT,YAAAI,EAAkB,QAASV,EAClC,SAAWiB,GAAUzB,GAAYA,EAAS,CAAC,OAAO,EAAG,CAACyB,EAAM,OAAO,KAAK,CAAC,EACzE,YAAY,aAAA,CAAA,CACd,CAAA,EAPc,OAQhB,EAEAL,yBAACC,EAAAA,IAAA,CACC,SAAA,CAACC,EAAAA,kBAAAA,IAAAC,EAAA,MAAA,CAAa,SAAI,MAAA,CAAA,EAElBH,EAAA,kBAAA,KAACO,EAAA,mBAAA,CAA0B,MAAO,CAAE,SAAU,UAC5C,EAAA,SAAA,CAAAL,EAAA,kBAAA,IAACM,EAAO,YAAP,CACC,MAAO,CAAE,QAASnB,EAAO,OAAS,MAAO,EACzC,QAAS,IAAM,QACbS,EAAAF,EAAc,UAAd,MAAAE,EAAuB,MACzB,EACD,SAAA,iBAAA,CAED,EAEAI,EAAA,kBAAA,IAACO,EAAO,WAAP,CACC,IAAKb,EACL,MAAO,CAACP,GAAQ,eAAe,EAC/B,YAAW,GACX,MAAO,CACL,SAAUA,EAAO,WAAa,WAC9B,WAAYA,EAAO,UAAY,QACjC,EACA,SAAWD,GACFR,GAAYA,EAAS,CAAC,MAAM,EAAG,CAACQ,EAAM,CAAC,CAAC,CAAC,CAClD,CACF,EACCC,GACCa,EAAA,kBAAA,IAACQ,EAAO,OAAP,CACC,KAAK,QACL,QAAQ,OACR,QAAS,IAAM,CACb9B,GAAYA,EAAS,CAAC,MAAM,EAAG,CAAC,MAAS,CAAC,CAAA,CAC5C,CAAA,CACF,CAEJ,CAAA,CAAA,CAAA,EAlCc,MAmChB,EAEAoB,yBAACC,EAAAA,IAAA,CACC,SAAA,CAACC,EAAAA,kBAAAA,IAAAC,EAAA,MAAA,CAAa,SAAK,OAAA,CAAA,EAEnBH,EAAA,kBAAA,KAACO,EAAA,mBAAA,CAA0B,MAAO,CAAE,SAAU,UAC5C,EAAA,SAAA,CAAAP,EAAA,kBAAA,KAACW,EAAO,YAAP,CACC,UAAWrB,EAAQ,SAAW,GAC9B,MAAO,CAAE,gBAAiBA,GAAS,MAAU,EAC7C,QAAS,IAAM,OAAA,OAAAQ,EAAAH,EAAe,UAAf,YAAAG,EAAwB,SAEtC,SAAA,CAACR,EAA4B,GAApB,kBACVY,EAAA,kBAAA,IAAC,QAAA,CACC,KAAK,QACL,IAAKP,EACL,MAAOL,GAAS,UAChB,SAAWe,GACTzB,GAAYA,EAAS,CAAC,OAAO,EAAG,CAACyB,GAAA,YAAAA,EAAO,OAAO,MAAM,UAAU,CAAC,CAAA,CAAA,CAEpE,CAAA,CACF,EACCf,GACCY,EAAA,kBAAA,IAACQ,EAAO,OAAP,CACC,KAAK,QACL,QAAQ,OACR,QAAS,IAAM,CACb9B,GAAYA,EAAS,CAAC,OAAO,EAAG,CAAC,MAAS,CAAC,CAAA,CAC7C,CAAA,CACF,CAEJ,CAAA,CAAA,CAAA,EA5Bc,OA6BhB,GAEEG,GAAoBC,IACpBgB,EAAA,kBAAA,KAACC,EAAA,IAAA,CAAW,UAAU,SACnB,SAAA,CAAAlB,GACEmB,EAAA,kBAAA,IAAAU,gBAAA,CACC,iCAACF,EAAO,OAAP,CAAc,KAAK,QAAQ,QAAQ,OAAO,QAAS7B,EAAU,iBAE9D,CAAA,EACF,EAEDG,GACEkB,EAAA,kBAAA,IAAAU,EAAA,cAAA,CACC,iCAACF,EAAAA,OAAA,CAAc,KAAK,eAAe,QAAQ,OAAO,QAAS5B,EAAa,qBAExE,CACF,CAAA,CAAA,CAEJ,CAAA,CAAA,EAEJ,CAEJ"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { j as l } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
+
import { useRef as n, useEffect as h } from "react";
|
|
3
|
+
import { kebabCase as y } from "lodash";
|
|
4
|
+
import { EnumItemBody as S, Row as o, Label as u, InputText as N, PlaceholderWrapper as R, Placeholder as L, IconSelect as T, Button as d, ColorPicker as W, ActionWrapper as A } from "./EnumEditor.styled.es.js";
|
|
5
|
+
const z = ({
|
|
6
|
+
item: t,
|
|
7
|
+
onChange: r,
|
|
8
|
+
onRemove: E,
|
|
9
|
+
onDuplicate: P,
|
|
10
|
+
showRemoveButton: f = !0,
|
|
11
|
+
showDuplicateButton: v = !0,
|
|
12
|
+
autoFocus: i = !1,
|
|
13
|
+
isExpanded: x = !0
|
|
14
|
+
}) => {
|
|
15
|
+
var m;
|
|
16
|
+
const { label: w, value: I, icon: c, color: s, isNewAttribute: p } = t, j = n(null), a = n(null), b = n(null), k = n(null);
|
|
17
|
+
return h(() => {
|
|
18
|
+
var e;
|
|
19
|
+
(i || t.isNewAttribute) && ((e = j.current) == null || e.select());
|
|
20
|
+
}, [i, t.isNewAttribute]), h(() => {
|
|
21
|
+
x && !i && !t.isNewAttribute && setTimeout(() => {
|
|
22
|
+
var e;
|
|
23
|
+
return (e = j.current) == null ? void 0 : e.focus();
|
|
24
|
+
}, 250);
|
|
25
|
+
}, [x, i, t.isNewAttribute]), /* @__PURE__ */ l.jsxs(S, { className: x ? "expanded" : "collapsed", children: [
|
|
26
|
+
/* @__PURE__ */ l.jsxs(o, { children: [
|
|
27
|
+
/* @__PURE__ */ l.jsx(u, { children: "Label" }),
|
|
28
|
+
/* @__PURE__ */ l.jsx(
|
|
29
|
+
N,
|
|
30
|
+
{
|
|
31
|
+
ref: j,
|
|
32
|
+
value: w,
|
|
33
|
+
autoFocus: i || p,
|
|
34
|
+
onChange: (e) => {
|
|
35
|
+
if (!p)
|
|
36
|
+
return r && r(["label"], [e.target.value]);
|
|
37
|
+
a.current && (a.current.value = y(e.target.value)), r && r(["label", "value"], [e.target.value, y(e.target.value)]);
|
|
38
|
+
},
|
|
39
|
+
placeholder: "Enter label"
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
] }, "label"),
|
|
43
|
+
/* @__PURE__ */ l.jsxs(o, { children: [
|
|
44
|
+
/* @__PURE__ */ l.jsx(u, { children: "Value" }),
|
|
45
|
+
/* @__PURE__ */ l.jsx(
|
|
46
|
+
N,
|
|
47
|
+
{
|
|
48
|
+
ref: a,
|
|
49
|
+
value: ((m = a.current) == null ? void 0 : m.value) || I,
|
|
50
|
+
onChange: (e) => r && r(["value"], [e.target.value]),
|
|
51
|
+
placeholder: "Enter value"
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
] }, "value"),
|
|
55
|
+
/* @__PURE__ */ l.jsxs(o, { children: [
|
|
56
|
+
/* @__PURE__ */ l.jsx(u, { children: "Icon" }),
|
|
57
|
+
/* @__PURE__ */ l.jsxs(R, { style: { position: "relative" }, children: [
|
|
58
|
+
/* @__PURE__ */ l.jsx(
|
|
59
|
+
L,
|
|
60
|
+
{
|
|
61
|
+
style: { display: c ? "none" : "flex" },
|
|
62
|
+
onClick: () => {
|
|
63
|
+
var e;
|
|
64
|
+
(e = k.current) == null || e.open();
|
|
65
|
+
},
|
|
66
|
+
children: "Pick an icon..."
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ l.jsx(
|
|
70
|
+
T,
|
|
71
|
+
{
|
|
72
|
+
ref: k,
|
|
73
|
+
value: [c || "question_mark"],
|
|
74
|
+
widthExpand: !0,
|
|
75
|
+
style: {
|
|
76
|
+
position: c ? "relative" : "absolute",
|
|
77
|
+
visibility: c ? "visible" : "hidden"
|
|
78
|
+
},
|
|
79
|
+
onChange: (e) => r && r(["icon"], [e[0]])
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
c && /* @__PURE__ */ l.jsx(
|
|
83
|
+
d,
|
|
84
|
+
{
|
|
85
|
+
icon: "close",
|
|
86
|
+
variant: "text",
|
|
87
|
+
onClick: () => {
|
|
88
|
+
r && r(["icon"], [void 0]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
] })
|
|
93
|
+
] }, "icon"),
|
|
94
|
+
/* @__PURE__ */ l.jsxs(o, { children: [
|
|
95
|
+
/* @__PURE__ */ l.jsx(u, { children: "Color" }),
|
|
96
|
+
/* @__PURE__ */ l.jsxs(R, { style: { position: "relative" }, children: [
|
|
97
|
+
/* @__PURE__ */ l.jsxs(
|
|
98
|
+
W,
|
|
99
|
+
{
|
|
100
|
+
className: s ? "active" : "",
|
|
101
|
+
style: { backgroundColor: s || void 0 },
|
|
102
|
+
onClick: () => {
|
|
103
|
+
var e;
|
|
104
|
+
return (e = b.current) == null ? void 0 : e.click();
|
|
105
|
+
},
|
|
106
|
+
children: [
|
|
107
|
+
s ? "" : "Pick a color...",
|
|
108
|
+
/* @__PURE__ */ l.jsx(
|
|
109
|
+
"input",
|
|
110
|
+
{
|
|
111
|
+
type: "color",
|
|
112
|
+
ref: b,
|
|
113
|
+
value: s || "#000000",
|
|
114
|
+
onChange: (e) => r && r(["color"], [e == null ? void 0 : e.target.value.toString()])
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
),
|
|
120
|
+
s && /* @__PURE__ */ l.jsx(
|
|
121
|
+
d,
|
|
122
|
+
{
|
|
123
|
+
icon: "close",
|
|
124
|
+
variant: "text",
|
|
125
|
+
onClick: () => {
|
|
126
|
+
r && r(["color"], [void 0]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] })
|
|
131
|
+
] }, "color"),
|
|
132
|
+
(f || v) && /* @__PURE__ */ l.jsxs(o, { className: "footer", children: [
|
|
133
|
+
f && /* @__PURE__ */ l.jsx(A, { children: /* @__PURE__ */ l.jsx(d, { icon: "close", variant: "text", onClick: E, children: "Remove" }) }),
|
|
134
|
+
v && /* @__PURE__ */ l.jsx(A, { children: /* @__PURE__ */ l.jsx(d, { icon: "content_copy", variant: "text", onClick: P, children: "Duplicate" }) })
|
|
135
|
+
] })
|
|
136
|
+
] });
|
|
137
|
+
};
|
|
138
|
+
export {
|
|
139
|
+
z as default
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=EnumEditorItem.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnumEditorItem.es.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\n\ninterface EnumEditorItemProps {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody className={isExpanded ? 'expanded' : 'collapsed'}>\n <Styled.Row key=\"label\">\n <Styled.Label>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\">\n <Styled.Label>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\">\n <Styled.Label>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n }}\n onChange={(value) => {\n return onChange && onChange(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\">\n <Styled.Label>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n onChange={(event) =>\n onChange && onChange(['color'], [event?.target.value.toString()])\n }\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row className=\"footer\">\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","_a","Styled.EnumItemBody","jsxs","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("../../../../_virtual/jsx-runtime.cjs.js"),O=require("lodash"),o=require("react");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");const y=require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");const Q=require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");const j=require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");const k=o.createContext(void 0),R=({children:q})=>{var m,h;const[n,S]=o.useState(!1),{data:r}=j.useGetCurrentUserQuery(),{data:u}=Q.useGetSiteInfoQuery({full:!0},{skip:!(r!=null&&r.name)}),{data:d}=y.useGetYnputCloudInfoQuery(void 0,{skip:!(r!=null&&r.name)}),{data:a,isLoading:p}=y.useGetFeedbackVerificationQuery(void 0,{skip:!(r!=null&&r.name)||!d}),C=()=>{if(!n){const e=document.createElement("script");e.src="https://do.featurebase.app/js/sdk.js",e.id="featurebase-sdk",e.async=!0,document.body.appendChild(e),S(!0)}},E=()=>{const e=window;typeof e.Featurebase!="function"&&(e.Featurebase=function(){(e.Featurebase.q=e.Featurebase.q||[]).push(arguments)})},z=((m=u==null?void 0:u.version)==null?void 0:m.split("+")[0])||"unknown",M=((h=u==null?void 0:u.version)==null?void 0:h.split("+")[1])||"unknown",P=()=>{if(!(r!=null&&r.name)||!a)return;const e=O.cloneDeep(a),t=s=>{Object.keys(s).forEach(c=>{s[c]&&typeof s[c]=="object"?t(s[c]):(s[c]===void 0||s[c]===null)&&delete s[c]})};t(e);const i={...e,customFields:{origin:window.location.origin,serverVersion:z,frontendVersion:M,instanceId:d==null?void 0:d.instanceId}};console.log(i),window.Featurebase("identify",i,s=>{s?console.error(s):console.log("Featurebase identify completed")})},[l,H]=o.useState(!1),[v,x]=o.useState(0),V=()=>{const e=window;typeof e.Featurebase=="function"&&(console.log("Initializing Featurebase messenger widget"),e.Featurebase("boot",{appId:"67b76a31b8a7a2f3181da4ba",email:a==null?void 0:a.email,theme:"dark",userId:a==null?void 0:a.userId,userHash:a==null?void 0:a.userHash},t=>{t?console.error(t):(console.log("Featurebase messenger completed"),H(!0),e.Featurebase("onUnreadCountChange",function(i){x(i)}))}))},L=()=>{var i,g;const e=[];if((i=r==null?void 0:r.data)!=null&&i.isAdmin){const s=["Server","Addon","Pipeline"];e.push(...s)}else u!=null&&u.disableChangelog||e.push("Highlights");const t=window;return typeof t.Featurebase=="function"&&t.Featurebase("init_changelog_widget",{organization:"ayon",dropdown:{enabled:!0},popup:{enabled:!0,usersName:(g=r==null?void 0:r.attrib)==null?void 0:g.fullName,autoOpenForNewUpdates:!0},category:e,theme:"dark"}),!1},D=()=>{const e=window;return typeof e.Featurebase=="function"&&e.Featurebase("initialize_feedback_widget",{organization:"ayon",theme:"dark",metadata:{}},t=>{t&&console.error("Error initializing feedback widget:",t)}),!1},U=()=>{const e=window;return typeof e.Featurebase=="function"&&e.Featurebase("initialize_portal_widget",{organization:"ayon",fullScreen:!0,initialPage:"MainView"},t=>t?(console.error("Error initializing portal widget:",t),!1):!0),!1};o.useEffect(()=>{r!=null&&r.name&&u&&(n||(C(),E(),L(),D(),U()))},[r==null?void 0:r.name,n,u]);const[w,W]=o.useState(!1);o.useEffect(()=>{!(r!=null&&r.name)||!d||!a||!n||w||(P(),W(!0))},[r==null?void 0:r.name,d==null?void 0:d.instanceId,a==null?void 0:a.userHash,n,window.location.pathname,w]),o.useEffect(()=>{p||!n||V()},[a,p,n]);const _=()=>{window.postMessage({target:"FeaturebaseWidget",data:{action:"openFeedbackWidget"}})},I=(e="MainView",t)=>{window.postMessage({target:"FeaturebaseWidget",data:{action:"changePage",payload:e,openWidget:!0,...t&&{articleId:t}}})},[f,b]=o.useState(!1),F=document.getElementById("fb-messenger-root"),N=e=>F instanceof HTMLElement&&(F.style.display=e?"block":"none");o.useEffect(()=>{!n||!l||N(f)},[n,l,f]),o.useEffect(()=>{if(!n||!l)return;const e=window;typeof e.Featurebase=="function"&&e.Featurebase("onHide",function(){b(!1)})},[n,l]);const A=(e="Home",t)=>{const i=window;if(typeof i.Featurebase!="function"){window.alert("Featurebase SDK is not loaded yet. Please try again later."),console.warn("Featurebase SDK is not loaded yet.");return}if(f){i.Featurebase("hide"),b(!1);return}switch(b(!0),e){case"Home":i.Featurebase("show");break;case"Messages":i.Featurebase("show","messages");break;case"Changelog":i.Featurebase("show","changelog");break;case"Help":i.Featurebase("show","help");break;case"ShowArticle":t?i.Featurebase("showArticle",t):i.Featurebase("show","help");break;case"NewMessage":i.Featurebase("showNewMessage",t);break;default:i.Featurebase("show");break}};return G.jsxRuntimeExports.jsx(k.Provider,{value:{openSupport:A,openFeedback:_,openPortal:I,messengerLoaded:l,unreadCount:v,messengerVisibility:f,setMessengerVisibility:b,loaded:n},children:q})},K=()=>{const q=o.useContext(k);if(!q)throw new Error("useFeedback must be used within a FeedbackProvider");return q};exports.FeedbackProvider=R;exports.useFeedback=K;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("../../../../_virtual/jsx-runtime.cjs.js"),O=require("lodash"),o=require("react");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");const y=require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/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/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");const Q=require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");const j=require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");const k=o.createContext(void 0),R=({children:q})=>{var m,h;const[n,S]=o.useState(!1),{data:r}=j.useGetCurrentUserQuery(),{data:u}=Q.useGetSiteInfoQuery({full:!0},{skip:!(r!=null&&r.name)}),{data:d}=y.useGetYnputCloudInfoQuery(void 0,{skip:!(r!=null&&r.name)}),{data:a,isLoading:p}=y.useGetFeedbackVerificationQuery(void 0,{skip:!(r!=null&&r.name)||!d}),C=()=>{if(!n){const e=document.createElement("script");e.src="https://do.featurebase.app/js/sdk.js",e.id="featurebase-sdk",e.async=!0,document.body.appendChild(e),S(!0)}},E=()=>{const e=window;typeof e.Featurebase!="function"&&(e.Featurebase=function(){(e.Featurebase.q=e.Featurebase.q||[]).push(arguments)})},z=((m=u==null?void 0:u.version)==null?void 0:m.split("+")[0])||"unknown",M=((h=u==null?void 0:u.version)==null?void 0:h.split("+")[1])||"unknown",P=()=>{if(!(r!=null&&r.name)||!a)return;const e=O.cloneDeep(a),t=s=>{Object.keys(s).forEach(c=>{s[c]&&typeof s[c]=="object"?t(s[c]):(s[c]===void 0||s[c]===null)&&delete s[c]})};t(e);const i={...e,customFields:{origin:window.location.origin,serverVersion:z,frontendVersion:M,instanceId:d==null?void 0:d.instanceId}};console.log(i),window.Featurebase("identify",i,s=>{s?console.error(s):console.log("Featurebase identify completed")})},[l,H]=o.useState(!1),[v,x]=o.useState(0),V=()=>{const e=window;typeof e.Featurebase=="function"&&(console.log("Initializing Featurebase messenger widget"),e.Featurebase("boot",{appId:"67b76a31b8a7a2f3181da4ba",email:a==null?void 0:a.email,theme:"dark",userId:a==null?void 0:a.userId,userHash:a==null?void 0:a.userHash},t=>{t?console.error(t):(console.log("Featurebase messenger completed"),H(!0),e.Featurebase("onUnreadCountChange",function(i){x(i)}))}))},L=()=>{var i,g;const e=[];if((i=r==null?void 0:r.data)!=null&&i.isAdmin){const s=["Server","Addon","Pipeline"];e.push(...s)}else u!=null&&u.disableChangelog||e.push("Highlights");const t=window;return typeof t.Featurebase=="function"&&t.Featurebase("init_changelog_widget",{organization:"ayon",dropdown:{enabled:!0},popup:{enabled:!0,usersName:(g=r==null?void 0:r.attrib)==null?void 0:g.fullName,autoOpenForNewUpdates:!0},category:e,theme:"dark"}),!1},D=()=>{const e=window;return typeof e.Featurebase=="function"&&e.Featurebase("initialize_feedback_widget",{organization:"ayon",theme:"dark",metadata:{}},t=>{t&&console.error("Error initializing feedback widget:",t)}),!1},U=()=>{const e=window;return typeof e.Featurebase=="function"&&e.Featurebase("initialize_portal_widget",{organization:"ayon",fullScreen:!0,initialPage:"MainView"},t=>t?(console.error("Error initializing portal widget:",t),!1):!0),!1};o.useEffect(()=>{r!=null&&r.name&&u&&(n||(C(),E(),L(),D(),U()))},[r==null?void 0:r.name,n,u]);const[w,W]=o.useState(!1);o.useEffect(()=>{!(r!=null&&r.name)||!d||!a||!n||w||(P(),W(!0))},[r==null?void 0:r.name,d==null?void 0:d.instanceId,a==null?void 0:a.userHash,n,window.location.pathname,w]),o.useEffect(()=>{p||!n||V()},[a,p,n]);const _=()=>{window.postMessage({target:"FeaturebaseWidget",data:{action:"openFeedbackWidget"}})},I=(e="MainView",t)=>{window.postMessage({target:"FeaturebaseWidget",data:{action:"changePage",payload:e,openWidget:!0,...t&&{articleId:t}}})},[f,b]=o.useState(!1),F=document.getElementById("fb-messenger-root"),N=e=>F instanceof HTMLElement&&(F.style.display=e?"block":"none");o.useEffect(()=>{!n||!l||N(f)},[n,l,f]),o.useEffect(()=>{if(!n||!l)return;const e=window;typeof e.Featurebase=="function"&&e.Featurebase("onHide",function(){b(!1)})},[n,l]);const A=(e="Home",t)=>{const i=window;if(typeof i.Featurebase!="function"){window.alert("Featurebase SDK is not loaded yet. Please try again later."),console.warn("Featurebase SDK is not loaded yet.");return}if(f){i.Featurebase("hide"),b(!1);return}switch(b(!0),e){case"Home":i.Featurebase("show");break;case"Messages":i.Featurebase("show","messages");break;case"Changelog":i.Featurebase("show","changelog");break;case"Help":i.Featurebase("show","help");break;case"ShowArticle":t?i.Featurebase("showArticle",t):i.Featurebase("show","help");break;case"NewMessage":i.Featurebase("showNewMessage",t);break;default:i.Featurebase("show");break}};return G.jsxRuntimeExports.jsx(k.Provider,{value:{openSupport:A,openFeedback:_,openPortal:I,messengerLoaded:l,unreadCount:v,messengerVisibility:f,setMessengerVisibility:b,loaded:n},children:q})},K=()=>{const q=o.useContext(k);if(!q)throw new Error("useFeedback must be used within a FeedbackProvider");return q};exports.FeedbackProvider=R;exports.useFeedback=K;
|
|
2
2
|
//# sourceMappingURL=FeedbackContext.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackContext.cjs.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name || !connect,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !connect || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","user","useGetCurrentUserQuery","siteInfo","useGetSiteInfoQuery","connect","useGetYnputCloudInfoQuery","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","verificationData","cloneDeep","cleanObject","obj","key","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeedbackContext.cjs.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name || !connect,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !connect || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","user","useGetCurrentUserQuery","siteInfo","useGetSiteInfoQuery","connect","useGetYnputCloudInfoQuery","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","verificationData","cloneDeep","cleanObject","obj","key","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|
|
@@ -57,6 +57,7 @@ import "../../api/queries/entityLists/getLists.es.js";
|
|
|
57
57
|
import "../../api/queries/entityLists/updateLists.es.js";
|
|
58
58
|
import "../../api/queries/entityLists/getListsAttributes.es.js";
|
|
59
59
|
import "../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
60
|
+
import "../../api/queries/entityLists/listFolders.es.js";
|
|
60
61
|
import "../../api/queries/folders/getFolders.es.js";
|
|
61
62
|
import "../../api/queries/grouping/getGrouping.es.js";
|
|
62
63
|
import "../../api/queries/links/updateLinks.es.js";
|
|
@@ -79,7 +80,7 @@ import "../../api/queries/versions/updateVersions.es.js";
|
|
|
79
80
|
import "../../api/queries/views/getViews.es.js";
|
|
80
81
|
import "../../api/queries/views/updateViews.es.js";
|
|
81
82
|
import "../../api/queries/watchers/getWatchers.es.js";
|
|
82
|
-
const C = j(void 0),
|
|
83
|
+
const C = j(void 0), zt = ({ children: l }) => {
|
|
83
84
|
var y, k;
|
|
84
85
|
const [a, z] = c(!1), { data: t } = T(), { data: s } = R({ full: !0 }, { skip: !(t != null && t.name) }), { data: p } = K(void 0, { skip: !(t != null && t.name) }), { data: r, isLoading: w } = B(
|
|
85
86
|
void 0,
|
|
@@ -274,14 +275,14 @@ const C = j(void 0), Ct = ({ children: l }) => {
|
|
|
274
275
|
children: l
|
|
275
276
|
}
|
|
276
277
|
);
|
|
277
|
-
},
|
|
278
|
+
}, Mt = () => {
|
|
278
279
|
const l = q(C);
|
|
279
280
|
if (!l)
|
|
280
281
|
throw new Error("useFeedback must be used within a FeedbackProvider");
|
|
281
282
|
return l;
|
|
282
283
|
};
|
|
283
284
|
export {
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
zt as FeedbackProvider,
|
|
286
|
+
Mt as useFeedback
|
|
286
287
|
};
|
|
287
288
|
//# sourceMappingURL=FeedbackContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackContext.es.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name || !connect,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !connect || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","user","useGetCurrentUserQuery","siteInfo","useGetSiteInfoQuery","connect","useGetYnputCloudInfoQuery","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","verificationData","cloneDeep","cleanObject","obj","key","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeedbackContext.es.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name || !connect,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !connect || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","user","useGetCurrentUserQuery","siteInfo","useGetSiteInfoQuery","connect","useGetYnputCloudInfoQuery","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","verificationData","cloneDeep","cleanObject","obj","key","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|