@solidxai/core-ui 0.1.9-beta.20 → 0.1.9-beta.21
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/README.md +1 -1
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +23 -19
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +62 -52
- package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
- package/dist/components/auth/SolidChangeForcePassword.js +2 -2
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +3 -3
- package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
- package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
- package/dist/components/auth/SolidLogin.js +4 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -11
- package/dist/components/auth/SolidRegister.js +6 -6
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +14 -14
- package/dist/components/auth/SolidResetPassword.js +2 -2
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +8 -8
- package/dist/components/common/BackButton.js +1 -1
- package/dist/components/common/BackButton.js.map +1 -1
- package/dist/components/common/BackButton.tsx +1 -1
- package/dist/components/common/CancelButton.js +2 -2
- package/dist/components/common/CancelButton.js.map +1 -1
- package/dist/components/common/CancelButton.tsx +3 -3
- package/dist/components/common/GeneralSettings.js +18 -18
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +136 -136
- package/dist/components/common/SolidExport.d.ts +1 -1
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +10 -3
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +10 -2
- package/dist/components/common/SolidFormHeader.js +1 -1
- package/dist/components/common/SolidFormHeader.js.map +1 -1
- package/dist/components/common/SolidFormHeader.tsx +1 -1
- package/dist/components/common/SolidModuleHome.js +2 -2
- package/dist/components/common/SolidModuleHome.js.map +1 -1
- package/dist/components/common/SolidModuleHome.tsx +7 -7
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +5 -5
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +5 -1
- package/dist/components/core/chatter/SolidChatter.js +5 -5
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +8 -8
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -6
- package/dist/components/core/chatter/SolidChatterMessageBox.js +4 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +12 -12
- package/dist/components/core/chatter/SolidMessageComposer.js +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +7 -7
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +16 -1
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +18 -1
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +60 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -2
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +46 -36
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +77 -40
- package/dist/components/core/common/SolidLayoutViews.js +2 -2
- package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
- package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
- package/dist/components/core/common/SolidListViewOptions.js +1 -1
- package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
- package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
- package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
- package/dist/components/core/common/SolidSearchBox.js +1 -1
- package/dist/components/core/common/SolidSearchBox.js.map +1 -1
- package/dist/components/core/common/SolidSearchBox.tsx +1 -1
- package/dist/components/core/common/SolidXAiIframe.js +1 -1
- package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
- package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +4 -4
- package/dist/components/core/field/FieldListViewData.js +2 -2
- package/dist/components/core/field/FieldListViewData.js.map +1 -1
- package/dist/components/core/field/FieldListViewData.tsx +5 -5
- package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
- package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -12
- package/dist/components/core/filter/fields/SolidDateField.js +2 -2
- package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.tsx +2 -2
- package/dist/components/core/filter/fields/SolidIntField.js +2 -2
- package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
- package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
- package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.tsx +4 -4
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -3
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -3
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -3
- package/dist/components/core/form/SolidFormActionHeader.js +8 -8
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
- package/dist/components/core/form/SolidFormFieldRender.js +1 -1
- package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
- package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +12 -5
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +14 -5
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +200 -65
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +188 -41
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +5 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +5 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +5 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +5 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
- package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
- package/dist/components/core/form/fields/SolidComputedField.js +1 -1
- package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
- package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +2 -2
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
- package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
- package/dist/components/core/form/fields/SolidLongTextField.js +6 -6
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -12
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
- package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
- package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +7 -11
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +18 -63
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +63 -164
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -36
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +10 -10
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +20 -25
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +15 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +27 -4
- package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +4 -4
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +44 -39
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +5 -1
- package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
- package/dist/components/core/list/SolidDataTable.js +1 -1
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +14 -6
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +21 -13
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +5 -1
- package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js +5 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.tsx +5 -1
- package/dist/components/core/list/SolidListingHeader.js +1 -1
- package/dist/components/core/list/SolidListingHeader.js.map +1 -1
- package/dist/components/core/list/SolidListingHeader.tsx +4 -4
- package/dist/components/core/list/SolidTableRowCell.js +1 -1
- package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
- package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +5 -5
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +8 -8
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -3
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
- package/dist/components/core/locales/SolidLocale.js +3 -3
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +7 -7
- package/dist/components/core/locales/solid-locale.css +5 -4
- package/dist/components/core/model/FieldMetaData.js +2 -2
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +2 -2
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +50 -50
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +74 -229
- package/dist/components/core/model/ModelListViewData.js +4 -4
- package/dist/components/core/model/ModelListViewData.js.map +1 -1
- package/dist/components/core/model/ModelListViewData.tsx +7 -7
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +2 -2
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +3 -58
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +3 -17
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +18 -32
- package/dist/components/core/module/ModuleListViewData.js +5 -5
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +8 -8
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
- package/dist/components/core/tree/SolidTreeTable.js +1 -1
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +3 -3
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +14 -10
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +8 -10
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +18 -36
- package/dist/components/core/users/CreateUserRole.js +2 -2
- package/dist/components/core/users/CreateUserRole.js.map +1 -1
- package/dist/components/core/users/CreateUserRole.tsx +9 -9
- package/dist/components/core/users/UserListView.js +4 -4
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +6 -6
- package/dist/components/layout/AdminHeaderActions.d.ts +1 -0
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +1 -1
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +1 -1
- package/dist/components/layout/AdminSidebar.js +1 -1
- package/dist/components/layout/AdminSidebar.js.map +1 -1
- package/dist/components/layout/AdminSidebar.tsx +1 -1
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +21 -3
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +64 -2
- package/dist/components/layout/CustomPagination.js +0 -1
- package/dist/components/layout/CustomPagination.js.map +1 -1
- package/dist/components/layout/CustomPagination.tsx +0 -1
- package/dist/components/layout/FilterMenu.js +1 -1
- package/dist/components/layout/FilterMenu.js.map +1 -1
- package/dist/components/layout/FilterMenu.tsx +4 -4
- package/dist/components/layout/Footer.js +1 -1
- package/dist/components/layout/Footer.js.map +1 -1
- package/dist/components/layout/Footer.tsx +1 -1
- package/dist/components/layout/GlobalSearch.js +1 -1
- package/dist/components/layout/GlobalSearch.js.map +1 -1
- package/dist/components/layout/GlobalSearch.tsx +1 -1
- package/dist/components/layout/ListingHeader.js +3 -3
- package/dist/components/layout/ListingHeader.js.map +1 -1
- package/dist/components/layout/ListingHeader.tsx +4 -4
- package/dist/components/layout/Loader.js +1 -1
- package/dist/components/layout/Loader.js.map +1 -1
- package/dist/components/layout/Loader.tsx +1 -1
- package/dist/components/layout/UserSidebar.js +1 -1
- package/dist/components/layout/UserSidebar.js.map +1 -1
- package/dist/components/layout/UserSidebar.tsx +1 -1
- package/dist/components/layout/navbar-one.js +2 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +8 -8
- package/dist/components/layout/navbar-two-menu.js +2 -2
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +7 -7
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
- package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
- package/dist/constants/error-messages.d.ts +13 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +17 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +15 -0
- package/dist/resources/globals.css +32 -1
- package/dist/resources/solid-custom.css +6565 -0
- package/dist/resources/solid-primereact.css +14 -12
- package/dist/resources/solid-responsive.css +25 -2
- package/dist/resources/solid-tailwind-generated.css +1 -0
- package/dist/resources/solid-tailwind.css +3 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
- package/dist/routes/pages/auth/SsoPage.js +1 -1
- package/dist/routes/pages/auth/SsoPage.js.map +1 -1
- package/dist/routes/pages/auth/SsoPage.tsx +1 -1
- package/dist/styles.d.ts +2 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +2 -1
- package/dist/styles.js.map +1 -1
- package/dist/styles.ts +2 -1
- package/package.json +6 -3
|
@@ -233,16 +233,16 @@ export var SolidChatter = function (_a) {
|
|
|
233
233
|
setLimit(function (prevLimit) { return prevLimit + 25; });
|
|
234
234
|
};
|
|
235
235
|
var canViewMessages = actionsAllowed.includes("".concat(permissionExpression('chatterMessage', 'findMany')));
|
|
236
|
-
var renderLoadingState = function () { return (_jsxs("div", { className: 'flex flex-
|
|
236
|
+
var renderLoadingState = function () { return (_jsxs("div", { className: 'flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary', children: [_jsx(Loader2, { size: 20, className: 'animate-spin text-[var(--primary-color)]' }), _jsx("span", { className: 'text-sm', children: "Loading recent activity\u2026" })] })); };
|
|
237
237
|
var renderEmptyState = function () {
|
|
238
238
|
var isLogComposerOpen = visibleBox === 'log';
|
|
239
|
-
return (_jsx("div", { className: 'flex
|
|
239
|
+
return (_jsx("div", { className: 'flex h-full items-center justify-center', children: _jsxs("div", { className: 'flex flex-col items-center gap-2 px-3 text-center text-color-secondary', children: [_jsx("div", { className: 'rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]', children: _jsx(Inbox, { size: 20 }) }), _jsx("p", { className: 'm-0 text-base font-medium text-color', children: "No activity yet" }), _jsx("p", { className: 'm-0 text-sm', children: "Log your first internal note or send a message to get things started." }), _jsx(SolidButton, { size: 'sm', variant: 'outline', onClick: function () { return handleTabClick('log'); }, children: isLogComposerOpen ? 'Cancel' : 'Log a note' })] }) }));
|
|
240
240
|
};
|
|
241
|
-
var permissionError = function () { return (_jsx("div", { className: 'p-3', children: _jsx(SolidMessage, { severity: 'warn', text: "You do not have permission to view these messages.", className: 'justify-
|
|
242
|
-
var renderMessages = function () { return (_jsxs("div", { className: 'flex flex-
|
|
241
|
+
var permissionError = function () { return (_jsx("div", { className: 'p-3', children: _jsx(SolidMessage, { severity: 'warn', text: "You do not have permission to view these messages.", className: 'justify-start' }) })); };
|
|
242
|
+
var renderMessages = function () { return (_jsxs("div", { className: 'flex flex-col gap-4', children: [messages.map(function (message, index) {
|
|
243
243
|
var showDateDivider = index === 0 || message.date !== messages[index - 1].date;
|
|
244
244
|
return (_jsxs("div", { children: [showDateDivider && _jsx(SolidChatterDateDivider, { date: message.date }), _jsx(SolidChatterMessageBox, { messageId: message.id, user: message.user, userId: message.userId, messageType: message.messageType, message: message.message, time: message.time, auditRecord: message.auditRecord, media: message.media, messageSubType: message.messageSubType, status: message.status, modelDisplayName: message.modelDisplayName, modelUserKey: message.modelUserKey, onRefresh: fetchData })] }, message.id));
|
|
245
|
-
}), totalRecords > messages.length && (_jsx("div", { className: 'flex justify-
|
|
245
|
+
}), totalRecords > messages.length && (_jsx("div", { className: 'flex justify-center', children: _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'outline', onClick: handleLoadMore, children: "Load more" }) }))] })); };
|
|
246
246
|
return (_jsxs("div", { className: 'h-full', children: [_jsx(SolidChatterHeader, { id: id, refetch: fetchData, modelSingularName: modelSingularName, activeTab: activeTab, handleTabClick: handleTabClick, visibleBox: visibleBox, onFilterChange: handleFilterChange, onComposerCancel: function () { return setVisibleBox(null); }, title: title, modelUserKey: modelUserKey }), _jsx("div", { className: 'solid-chatter-body', style: {
|
|
247
247
|
height: isMobileViewport
|
|
248
248
|
? (visibleBox === 'email-message'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidChatter.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatter.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, useEffect } from 'react'\nimport { SolidChatterHeader } from './SolidChatterHeader'\nimport { SolidChatterDateDivider } from './SolidChatterDateDivider'\nimport { SolidChatterMessageBox } from './SolidChatterMessageBox'\nimport { useLazyGetchatterMessageQuery } from '../../../redux/api/solidChatterMessageApi'\nimport qs from \"qs\";\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { permissionExpression } from '../../../helpers/permissions'\nimport { SolidButton, SolidMessage } from '../../shad-cn-ui'\nimport { Inbox, Loader2 } from 'lucide-react'\n\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\nconst isEmptyAuditValue = (value: string | null | undefined) => {\n if (value == null) return true;\n if (typeof value !== 'string') return false;\n\n const normalizedValue = value.trim().toLowerCase();\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null';\n};\n\nexport const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, setRefreshChatterMessage, actionsAllowed = [], title, modelUserKey }: { modelSingularName: any, id: any, refreshChatterMessage: boolean, setRefreshChatterMessage: (value: boolean) => void, actionsAllowed?: string[], title?: string, modelUserKey?: string }) => {\n const [activeTab, setActiveTab] = useState<'email-message' | 'log' | null>('email-message');\n const [visibleBox, setVisibleBox] = useState<'email-message' | 'log' | null>(null);\n const [messages, setMessages] = useState<any[]>([]);\n const [limit, setLimit] = useState<number>(25);\n const [totalRecords, setTotalRecords] = useState<number>(0);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n\n const [getchatterMessage, { isLoading: isChatterLoading }] = useLazyGetchatterMessageQuery();\n\n useEffect(() => {\n const updateViewport = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewport();\n window.addEventListener('resize', updateViewport);\n return () => window.removeEventListener('resize', updateViewport);\n }, []);\n\n useEffect(() => {\n if (refreshChatterMessage) {\n if (id !== 'new') {\n fetchData();\n setRefreshChatterMessage(false);\n }\n }\n }, [refreshChatterMessage]);\n\n useEffect(() => {\n if (id !== 'new') {\n fetchData();\n }\n }, [filters, limit]);\n\n const handleTabClick = (tab: 'email-message' | 'log') => {\n setActiveTab(tab);\n setVisibleBox(prev => (prev === tab ? null : tab));\n }\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n if (date.toDateString() === today.toDateString()) {\n return 'Today';\n } else if (date.toDateString() === yesterday.toDateString()) {\n return 'Yesterday';\n } else {\n return dateString;\n }\n };\n\n const fetchData = async () => {\n try {\n const queryData: any = {\n populate: ['user', 'chatterMessageDetails'],\n limit: limit\n };\n\n if (filters.name) {\n queryData.filters = queryData.filters || {};\n queryData.filters['user'] = { fullName: { $containsi: filters.name }};\n }\n const startOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(0, 0, 0, 0);\n return x;\n };\n const endOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(23, 59, 59, 999);\n return x;\n };\n if (filters.startDate && filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = {\n $between: [startOfDay(filters.startDate).toISOString(), endOfDay(filters.endDate).toISOString()]\n };\n } else if (filters.startDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $gte: startOfDay(filters.startDate).toISOString() };\n } else if (filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $lte: endOfDay(filters.endDate).toISOString() };\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await getchatterMessage({\n entityId: id,\n entityName: modelSingularName,\n qs: queryString\n }).unwrap();\n const processedMessages = response.data.records.map((msg: any) => {\n if (msg.messageType === 'custom') {\n const displayTimeSource = msg.updatedAt || msg.createdAt;\n // Custom message\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"custom\",\n message: msg.messageBody,\n time: new Date(displayTimeSource).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n createdAt: displayTimeSource,\n date: formatDate(displayTimeSource),\n media: msg._media,\n messageSubType: msg.messageSubType,\n status: msg.status,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey\n };\n } else {\n // Audit message\n const auditRecord = msg.chatterMessageDetails?.map((detail: any) => ({\n field: detail.fieldName,\n fieldDisplayName: detail.fieldDisplayName,\n fieldType: detail.fieldType,\n previous: detail.oldValue,\n current: detail.newValue,\n previousDisplay: detail.oldValueDisplay,\n currentDisplay: detail.newValueDisplay,\n })).filter((detail: any) => {\n const previousValue = detail.previousDisplay ?? detail.previous;\n const currentValue = detail.currentDisplay ?? detail.current;\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue));\n }) || [];\n\n if (auditRecord.length === 0) {\n return null;\n }\n\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"audit\",\n time: new Date(msg.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n auditRecord: auditRecord,\n createdAt: msg.createdAt,\n date: formatDate(msg.createdAt),\n messageSubType: msg.messageSubType,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey,\n message: msg.messageBody,\n };\n }\n }).filter(Boolean);\n setMessages(processedMessages);\n setTotalRecords(response?.data?.meta?.totalRecords || 0);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n }\n\n const handleFilterChange = (newFilters: FilterState) => {\n setFilters({\n name: newFilters.name,\n startDate: newFilters.startDate,\n endDate: newFilters.endDate\n });\n setLimit(25);\n };\n\n const handleLoadMore = () => {\n setLimit(prevLimit => prevLimit + 25);\n };\n\n const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);\n\n const renderLoadingState = () => (\n <div className='flex flex-column align-items-center justify-content-center gap-2 h-full text-center text-color-secondary'>\n <Loader2 size={20} className='text-primary animate-spin' />\n <span className='text-sm'>Loading recent activity…</span>\n </div>\n );\n\n const renderEmptyState = () => {\n const isLogComposerOpen = visibleBox === 'log';\n return (\n <div className='flex align-items-center justify-content-center h-full'>\n <div className='flex flex-column align-items-center gap-2 text-center text-color-secondary px-3'>\n <div className='p-2 border-round bg-primary-reverse text-primary'>\n <Inbox size={20} />\n </div>\n <p className='m-0 text-base font-medium text-color'>No activity yet</p>\n <p className='m-0 text-sm'>Log your first internal note or send a message to get things started.</p>\n <SolidButton size='sm' variant='outline' onClick={() => handleTabClick('log')}>\n {isLogComposerOpen ? 'Cancel' : 'Log a note'}\n </SolidButton>\n </div>\n </div>\n );\n };\n\n const permissionError = () => (\n <div className='p-3'>\n <SolidMessage severity='warn' text=\"You do not have permission to view these messages.\" className='justify-content-start' />\n </div>\n );\n\n const renderMessages = () => (\n <div className='flex flex-column gap-3'>\n {messages.map((message, index) => {\n const showDateDivider = index === 0 || message.date !== messages[index - 1].date;\n return (\n <div key={message.id}>\n {showDateDivider && <SolidChatterDateDivider date={message.date} />}\n <SolidChatterMessageBox\n messageId={message.id}\n user={message.user}\n userId={message.userId}\n messageType={message.messageType}\n message={message.message}\n time={message.time}\n auditRecord={message.auditRecord}\n media={message.media}\n messageSubType={message.messageSubType}\n status={message.status}\n modelDisplayName={message.modelDisplayName}\n modelUserKey={message.modelUserKey}\n onRefresh={fetchData}\n />\n </div>\n );\n })}\n {totalRecords > messages.length && (\n <div className='flex justify-content-center'>\n <SolidButton\n type='button'\n size='sm'\n variant='outline'\n onClick={handleLoadMore}\n >\n Load more\n </SolidButton>\n </div>\n )}\n </div>\n );\n\n return (\n <div className='h-full'>\n <SolidChatterHeader\n id={id}\n refetch={fetchData}\n modelSingularName={modelSingularName}\n activeTab={activeTab}\n handleTabClick={handleTabClick}\n visibleBox={visibleBox}\n onFilterChange={handleFilterChange}\n onComposerCancel={() => setVisibleBox(null)}\n title={title}\n modelUserKey={modelUserKey}\n />\n <div className='solid-chatter-body' style={{\n height:\n isMobileViewport\n ? (visibleBox === 'email-message'\n ? 'calc(100dvh - 248px)'\n : visibleBox === 'log'\n ? 'calc(100dvh - 210px)'\n : 'calc(100dvh - 60px)')\n : (visibleBox === 'email-message'\n ? 'calc(100vh - 196px)'\n : visibleBox === 'log'\n ? 'calc(100vh - 292px)'\n : 'calc(100vh - 127px)'),\n }}>\n {isChatterLoading\n ? renderLoadingState()\n : !canViewMessages\n ? permissionError()\n : messages.length === 0\n ? renderEmptyState()\n : renderMessages()\n }\n </div>\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidChatter.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatter.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, useEffect } from 'react'\nimport { SolidChatterHeader } from './SolidChatterHeader'\nimport { SolidChatterDateDivider } from './SolidChatterDateDivider'\nimport { SolidChatterMessageBox } from './SolidChatterMessageBox'\nimport { useLazyGetchatterMessageQuery } from '../../../redux/api/solidChatterMessageApi'\nimport qs from \"qs\";\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { permissionExpression } from '../../../helpers/permissions'\nimport { SolidButton, SolidMessage } from '../../shad-cn-ui'\nimport { Inbox, Loader2 } from 'lucide-react'\n\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\nconst isEmptyAuditValue = (value: string | null | undefined) => {\n if (value == null) return true;\n if (typeof value !== 'string') return false;\n\n const normalizedValue = value.trim().toLowerCase();\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null';\n};\n\nexport const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, setRefreshChatterMessage, actionsAllowed = [], title, modelUserKey }: { modelSingularName: any, id: any, refreshChatterMessage: boolean, setRefreshChatterMessage: (value: boolean) => void, actionsAllowed?: string[], title?: string, modelUserKey?: string }) => {\n const [activeTab, setActiveTab] = useState<'email-message' | 'log' | null>('email-message');\n const [visibleBox, setVisibleBox] = useState<'email-message' | 'log' | null>(null);\n const [messages, setMessages] = useState<any[]>([]);\n const [limit, setLimit] = useState<number>(25);\n const [totalRecords, setTotalRecords] = useState<number>(0);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n\n const [getchatterMessage, { isLoading: isChatterLoading }] = useLazyGetchatterMessageQuery();\n\n useEffect(() => {\n const updateViewport = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewport();\n window.addEventListener('resize', updateViewport);\n return () => window.removeEventListener('resize', updateViewport);\n }, []);\n\n useEffect(() => {\n if (refreshChatterMessage) {\n if (id !== 'new') {\n fetchData();\n setRefreshChatterMessage(false);\n }\n }\n }, [refreshChatterMessage]);\n\n useEffect(() => {\n if (id !== 'new') {\n fetchData();\n }\n }, [filters, limit]);\n\n const handleTabClick = (tab: 'email-message' | 'log') => {\n setActiveTab(tab);\n setVisibleBox(prev => (prev === tab ? null : tab));\n }\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n if (date.toDateString() === today.toDateString()) {\n return 'Today';\n } else if (date.toDateString() === yesterday.toDateString()) {\n return 'Yesterday';\n } else {\n return dateString;\n }\n };\n\n const fetchData = async () => {\n try {\n const queryData: any = {\n populate: ['user', 'chatterMessageDetails'],\n limit: limit\n };\n\n if (filters.name) {\n queryData.filters = queryData.filters || {};\n queryData.filters['user'] = { fullName: { $containsi: filters.name }};\n }\n const startOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(0, 0, 0, 0);\n return x;\n };\n const endOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(23, 59, 59, 999);\n return x;\n };\n if (filters.startDate && filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = {\n $between: [startOfDay(filters.startDate).toISOString(), endOfDay(filters.endDate).toISOString()]\n };\n } else if (filters.startDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $gte: startOfDay(filters.startDate).toISOString() };\n } else if (filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $lte: endOfDay(filters.endDate).toISOString() };\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await getchatterMessage({\n entityId: id,\n entityName: modelSingularName,\n qs: queryString\n }).unwrap();\n const processedMessages = response.data.records.map((msg: any) => {\n if (msg.messageType === 'custom') {\n const displayTimeSource = msg.updatedAt || msg.createdAt;\n // Custom message\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"custom\",\n message: msg.messageBody,\n time: new Date(displayTimeSource).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n createdAt: displayTimeSource,\n date: formatDate(displayTimeSource),\n media: msg._media,\n messageSubType: msg.messageSubType,\n status: msg.status,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey\n };\n } else {\n // Audit message\n const auditRecord = msg.chatterMessageDetails?.map((detail: any) => ({\n field: detail.fieldName,\n fieldDisplayName: detail.fieldDisplayName,\n fieldType: detail.fieldType,\n previous: detail.oldValue,\n current: detail.newValue,\n previousDisplay: detail.oldValueDisplay,\n currentDisplay: detail.newValueDisplay,\n })).filter((detail: any) => {\n const previousValue = detail.previousDisplay ?? detail.previous;\n const currentValue = detail.currentDisplay ?? detail.current;\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue));\n }) || [];\n\n if (auditRecord.length === 0) {\n return null;\n }\n\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"audit\",\n time: new Date(msg.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n auditRecord: auditRecord,\n createdAt: msg.createdAt,\n date: formatDate(msg.createdAt),\n messageSubType: msg.messageSubType,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey,\n message: msg.messageBody,\n };\n }\n }).filter(Boolean);\n setMessages(processedMessages);\n setTotalRecords(response?.data?.meta?.totalRecords || 0);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n }\n\n const handleFilterChange = (newFilters: FilterState) => {\n setFilters({\n name: newFilters.name,\n startDate: newFilters.startDate,\n endDate: newFilters.endDate\n });\n setLimit(25);\n };\n\n const handleLoadMore = () => {\n setLimit(prevLimit => prevLimit + 25);\n };\n\n const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);\n\n const renderLoadingState = () => (\n <div className='flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary'>\n <Loader2 size={20} className='animate-spin text-[var(--primary-color)]' />\n <span className='text-sm'>Loading recent activity…</span>\n </div>\n );\n\n const renderEmptyState = () => {\n const isLogComposerOpen = visibleBox === 'log';\n return (\n <div className='flex h-full items-center justify-center'>\n <div className='flex flex-col items-center gap-2 px-3 text-center text-color-secondary'>\n <div className='rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]'>\n <Inbox size={20} />\n </div>\n <p className='m-0 text-base font-medium text-color'>No activity yet</p>\n <p className='m-0 text-sm'>Log your first internal note or send a message to get things started.</p>\n <SolidButton size='sm' variant='outline' onClick={() => handleTabClick('log')}>\n {isLogComposerOpen ? 'Cancel' : 'Log a note'}\n </SolidButton>\n </div>\n </div>\n );\n };\n\n const permissionError = () => (\n <div className='p-3'>\n <SolidMessage severity='warn' text=\"You do not have permission to view these messages.\" className='justify-start' />\n </div>\n );\n\n const renderMessages = () => (\n <div className='flex flex-col gap-4'>\n {messages.map((message, index) => {\n const showDateDivider = index === 0 || message.date !== messages[index - 1].date;\n return (\n <div key={message.id}>\n {showDateDivider && <SolidChatterDateDivider date={message.date} />}\n <SolidChatterMessageBox\n messageId={message.id}\n user={message.user}\n userId={message.userId}\n messageType={message.messageType}\n message={message.message}\n time={message.time}\n auditRecord={message.auditRecord}\n media={message.media}\n messageSubType={message.messageSubType}\n status={message.status}\n modelDisplayName={message.modelDisplayName}\n modelUserKey={message.modelUserKey}\n onRefresh={fetchData}\n />\n </div>\n );\n })}\n {totalRecords > messages.length && (\n <div className='flex justify-center'>\n <SolidButton\n type='button'\n size='sm'\n variant='outline'\n onClick={handleLoadMore}\n >\n Load more\n </SolidButton>\n </div>\n )}\n </div>\n );\n\n return (\n <div className='h-full'>\n <SolidChatterHeader\n id={id}\n refetch={fetchData}\n modelSingularName={modelSingularName}\n activeTab={activeTab}\n handleTabClick={handleTabClick}\n visibleBox={visibleBox}\n onFilterChange={handleFilterChange}\n onComposerCancel={() => setVisibleBox(null)}\n title={title}\n modelUserKey={modelUserKey}\n />\n <div className='solid-chatter-body' style={{\n height:\n isMobileViewport\n ? (visibleBox === 'email-message'\n ? 'calc(100dvh - 248px)'\n : visibleBox === 'log'\n ? 'calc(100dvh - 210px)'\n : 'calc(100dvh - 60px)')\n : (visibleBox === 'email-message'\n ? 'calc(100vh - 196px)'\n : visibleBox === 'log'\n ? 'calc(100vh - 292px)'\n : 'calc(100vh - 127px)'),\n }}>\n {isChatterLoading\n ? renderLoadingState()\n : !canViewMessages\n ? permissionError()\n : messages.length === 0\n ? renderEmptyState()\n : renderMessages()\n }\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -202,8 +202,8 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
|
|
|
202
202
|
const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);
|
|
203
203
|
|
|
204
204
|
const renderLoadingState = () => (
|
|
205
|
-
<div className='flex flex-
|
|
206
|
-
<Loader2 size={20} className='text-primary
|
|
205
|
+
<div className='flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary'>
|
|
206
|
+
<Loader2 size={20} className='animate-spin text-[var(--primary-color)]' />
|
|
207
207
|
<span className='text-sm'>Loading recent activity…</span>
|
|
208
208
|
</div>
|
|
209
209
|
);
|
|
@@ -211,9 +211,9 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
|
|
|
211
211
|
const renderEmptyState = () => {
|
|
212
212
|
const isLogComposerOpen = visibleBox === 'log';
|
|
213
213
|
return (
|
|
214
|
-
<div className='flex
|
|
215
|
-
<div className='flex flex-
|
|
216
|
-
<div className='
|
|
214
|
+
<div className='flex h-full items-center justify-center'>
|
|
215
|
+
<div className='flex flex-col items-center gap-2 px-3 text-center text-color-secondary'>
|
|
216
|
+
<div className='rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]'>
|
|
217
217
|
<Inbox size={20} />
|
|
218
218
|
</div>
|
|
219
219
|
<p className='m-0 text-base font-medium text-color'>No activity yet</p>
|
|
@@ -228,12 +228,12 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
|
|
|
228
228
|
|
|
229
229
|
const permissionError = () => (
|
|
230
230
|
<div className='p-3'>
|
|
231
|
-
<SolidMessage severity='warn' text="You do not have permission to view these messages." className='justify-
|
|
231
|
+
<SolidMessage severity='warn' text="You do not have permission to view these messages." className='justify-start' />
|
|
232
232
|
</div>
|
|
233
233
|
);
|
|
234
234
|
|
|
235
235
|
const renderMessages = () => (
|
|
236
|
-
<div className='flex flex-
|
|
236
|
+
<div className='flex flex-col gap-4'>
|
|
237
237
|
{messages.map((message, index) => {
|
|
238
238
|
const showDateDivider = index === 0 || message.date !== messages[index - 1].date;
|
|
239
239
|
return (
|
|
@@ -258,7 +258,7 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
|
|
|
258
258
|
);
|
|
259
259
|
})}
|
|
260
260
|
{totalRecords > messages.length && (
|
|
261
|
-
<div className='flex justify-
|
|
261
|
+
<div className='flex justify-center'>
|
|
262
262
|
<SolidButton
|
|
263
263
|
type='button'
|
|
264
264
|
size='sm'
|
|
@@ -38,6 +38,6 @@ export var SolidChatterAuditMessage = function (_a) {
|
|
|
38
38
|
if (visibleAuditRecord.length === 0) {
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
-
return (_jsx("div", { className: 'flex flex-
|
|
41
|
+
return (_jsx("div", { className: 'flex flex-col gap-2', children: visibleAuditRecord.map(function (item, index) { return (_jsxs("div", { className: 'flex gap-2', children: [_jsx("span", { className: 'm-0 ', children: "(" + (item.fieldDisplayName || item.field) + ")" }), _jsx("span", { className: 'm-0 font-bold', children: formatAuditValue(item.previous, item.previousDisplay, item.fieldType) }), _jsx(RightArrowSvg, {}), _jsx("span", { className: 'm-0 font-bold text-[var(--primary-color)]', children: formatAuditValue(item.current, item.currentDisplay, item.fieldType) })] }, index)); }) }));
|
|
42
42
|
};
|
|
43
43
|
//# sourceMappingURL=SolidChatterAuditMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidChatterAuditMessage.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterAuditMessage.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAErE,IAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAErD,SAAS,iBAAiB,CAAC,KAAgC;IACvD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClD,OAAO,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,MAAM,CAAA;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAiB;;IAC/C,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,QAAQ,CAAA;IAC3D,IAAM,YAAY,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAA;IAExD,OAAO,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,gBAAgB,CACrB,KAAgC,EAChC,YAAuC,EACvC,SAAkB;IAElB,+EAA+E;IAC/E,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QACzB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;KACtC;IAED,OAAO,YAAY,IAAI,KAAK,IAAI,MAAM,CAAA;AAC1C,CAAC;AAgBD,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,EAAe;QAAb,WAAW,iBAAA;IAC3F,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEvE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,IAAI,CAAA;KACd;IAED,OAAO,CACH,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"SolidChatterAuditMessage.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterAuditMessage.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAErE,IAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAErD,SAAS,iBAAiB,CAAC,KAAgC;IACvD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClD,OAAO,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,MAAM,CAAA;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAiB;;IAC/C,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,QAAQ,CAAA;IAC3D,IAAM,YAAY,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAA;IAExD,OAAO,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,gBAAgB,CACrB,KAAgC,EAChC,YAAuC,EACvC,SAAkB;IAElB,+EAA+E;IAC/E,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QACzB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;KACtC;IAED,OAAO,YAAY,IAAI,KAAK,IAAI,MAAM,CAAA;AAC1C,CAAC;AAgBD,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,EAAe;QAAb,WAAW,iBAAA;IAC3F,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEvE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,IAAI,CAAA;KACd;IAED,OAAO,CACH,cAAK,SAAS,EAAC,qBAAqB,YAC/B,kBAAkB,CAAC,GAAG,CAAC,UAAC,IAAiB,EAAE,KAAa,IAAK,OAAA,CAC1D,eAAiB,SAAS,EAAC,YAAY,aACnC,eAAM,SAAS,EAAC,MAAM,YACjB,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAC/C,EACP,eAAM,SAAS,EAAC,gBAAgB,YAC3B,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GACnE,EACP,KAAC,aAAa,KAAG,EACjB,eAAM,SAAS,EAAC,2CAA2C,YACtD,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GACjE,KAVD,KAAK,CAWT,CACT,EAb6D,CAa7D,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport React from 'react'\nimport dayjs from 'dayjs'\nimport { RightArrowSvg } from '../../../components/Svg/RightArrowSvg'\n\nconst DATE_FIELD_TYPES = ['date', 'datetime', 'time']\n\nfunction isEmptyAuditValue(value: string | null | undefined): boolean {\n if (value == null) return true\n if (typeof value !== 'string') return false\n\n const normalizedValue = value.trim().toLowerCase()\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null'\n}\n\nfunction hasMeaningfulAuditChange(item: AuditRecord): boolean {\n const previousValue = item.previousDisplay ?? item.previous\n const currentValue = item.currentDisplay ?? item.current\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue))\n}\n\nfunction formatAuditValue(\n value: string | null | undefined,\n displayValue: string | null | undefined,\n fieldType?: string\n): string {\n // fieldType may be null for older audit records — fall through to displayValue\n if (fieldType && DATE_FIELD_TYPES.includes(fieldType)) {\n if (!value) return 'None'\n const d = dayjs(value)\n if (!d.isValid()) return value\n if (fieldType === 'date') return d.format('DD-MM-YYYY')\n if (fieldType === 'time') return d.format('HH:mm')\n return d.format('DD-MM-YYYY HH:mm')\n }\n\n return displayValue || value || 'None'\n}\n\ninterface AuditRecord {\n field: string;\n fieldDisplayName: string;\n fieldType?: string;\n previous: string | null;\n current: string | null;\n previousDisplay?: string | null;\n currentDisplay?: string | null;\n}\n\ninterface SolidChatterAuditMessageProps {\n auditRecord: AuditRecord[];\n}\n\nexport const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> = ({ auditRecord }) => {\n const visibleAuditRecord = auditRecord.filter(hasMeaningfulAuditChange)\n\n if (visibleAuditRecord.length === 0) {\n return null\n }\n\n return (\n <div className='flex flex-col gap-2'>\n {visibleAuditRecord.map((item: AuditRecord, index: number) => (\n <div key={index} className='flex gap-2'>\n <span className='m-0 '>\n {\"(\" + (item.fieldDisplayName || item.field) + \")\"}\n </span>\n <span className='m-0 font-bold'>\n {formatAuditValue(item.previous, item.previousDisplay, item.fieldType)}\n </span>\n <RightArrowSvg />\n <span className='m-0 font-bold text-[var(--primary-color)]'>\n {formatAuditValue(item.current, item.currentDisplay, item.fieldType)}\n </span>\n </div>\n ))}\n </div>\n );\n};\n"]}
|
|
@@ -60,7 +60,7 @@ export const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> =
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return (
|
|
63
|
-
<div className='flex flex-
|
|
63
|
+
<div className='flex flex-col gap-2'>
|
|
64
64
|
{visibleAuditRecord.map((item: AuditRecord, index: number) => (
|
|
65
65
|
<div key={index} className='flex gap-2'>
|
|
66
66
|
<span className='m-0 '>
|
|
@@ -70,7 +70,7 @@ export const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> =
|
|
|
70
70
|
{formatAuditValue(item.previous, item.previousDisplay, item.fieldType)}
|
|
71
71
|
</span>
|
|
72
72
|
<RightArrowSvg />
|
|
73
|
-
<span className='m-0 font-bold text-primary'>
|
|
73
|
+
<span className='m-0 font-bold text-[var(--primary-color)]'>
|
|
74
74
|
{formatAuditValue(item.current, item.currentDisplay, item.fieldType)}
|
|
75
75
|
</span>
|
|
76
76
|
</div>
|
|
@@ -133,9 +133,9 @@ export var SolidChatterHeader = function (props) {
|
|
|
133
133
|
}
|
|
134
134
|
updateNameFilter(value);
|
|
135
135
|
};
|
|
136
|
-
return (_jsxs("div", { className: "".concat(styles.chatterTitle, " ").concat(title ? styles.chatterTitleWithLabel : '', " solid-list-toolbar"), children: [_jsxs("div", { className: 'flex justify-
|
|
136
|
+
return (_jsxs("div", { className: "".concat(styles.chatterTitle, " ").concat(title ? styles.chatterTitleWithLabel : '', " solid-list-toolbar"), children: [_jsxs("div", { className: 'flex justify-between items-center solid-list-toolbar-row', children: [_jsx("p", { className: "m-0 view-title solid-text-wrapper form-wrapper-title", children: title || '' }), _jsxs("div", { className: 'flex items-center solid-header-buttons-wrapper', children: [_jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Log Note", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Edit, { size: 14 }), onClick: function () { return handleTabClick('log'); } }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Filter", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Filter, { size: 14 }), onClick: handleFilterClick }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Refresh", variant: "outline", className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(RefreshCw, { size: 14 }), onClick: refetch })] })] }), visibleBox &&
|
|
137
137
|
_jsxs("div", { className: 'mt-2', children: [visibleBox === "email-message" &&
|
|
138
138
|
_jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, type: "email", onCancel: onComposerCancel, modelUserKey: modelUserKey }), visibleBox === "log" &&
|
|
139
|
-
_jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, onCancel: onComposerCancel, modelUserKey: modelUserKey })] }), _jsxs(SolidDialog, { open: showFilterDialog, onOpenChange: setShowFilterDialog, className: 'solid-filter-dialog-shell solid-chatter-filter-main', style: { width: 500 }, showHeader: false, dismissible: false, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsx("div", { children: _jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Filter Messages" }) }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("div", { className: "flex flex-
|
|
139
|
+
_jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, onCancel: onComposerCancel, modelUserKey: modelUserKey })] }), _jsxs(SolidDialog, { open: showFilterDialog, onOpenChange: setShowFilterDialog, className: 'solid-filter-dialog-shell solid-chatter-filter-main', style: { width: 500 }, showHeader: false, dismissible: false, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsx("div", { children: _jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Filter Messages" }) }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "User" }), _jsx(SolidAutocomplete, { id: "fullName", value: filters.name, suggestions: suggestions, field: "fullName", completeMethod: searchUsers, onChange: function (e) { return handleUserChange(e.value); }, placeholder: "Filter by user", className: "w-full", inputClassName: "w-full", portal: true })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("label", { htmlFor: "dateRange", className: "form-field-label", children: "Date Range" }), _jsxs("div", { className: "flex gap-2 flex-col md:flex-row", children: [_jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_a = filters.startDate) !== null && _a !== void 0 ? _a : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { startDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "Start Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) }), _jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_b = filters.endDate) !== null && _b !== void 0 ? _b : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { endDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "End Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) })] })] })] }) }), _jsxs(SolidDialogFooter, { children: [_jsx(SolidButton, { label: "Clear", size: "sm", variant: "outline", onClick: handleClearFilters }), _jsx(SolidButton, { label: "Apply", size: "sm", className: "solid-purple-button", onClick: handleApplyFilters })] })] })] }));
|
|
140
140
|
};
|
|
141
141
|
//# sourceMappingURL=SolidChatterHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidChatterHeader.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EACH,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAC,IAAI,EAAE,MAAM,cAAc,CAAA;AAoBrD,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,KAAY;;IACnC,IAAA,SAAS,GAAwH,KAAK,UAA7H,EAAE,UAAU,GAA4G,KAAK,WAAjH,EAAE,cAAc,GAA4F,KAAK,eAAjG,EAAE,iBAAiB,GAAyE,KAAK,kBAA9E,EAAE,OAAO,GAAgE,KAAK,QAArE,EAAE,EAAE,GAA4D,KAAK,GAAjE,EAAE,cAAc,GAA4C,KAAK,eAAjD,EAAE,gBAAgB,GAA0B,KAAK,iBAA/B,EAAE,KAAK,GAAmB,KAAK,MAAxB,EAAE,YAAY,GAAK,KAAK,aAAV,CAAW;IACzI,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IAC1D,IAAA,KAAwB,QAAQ,CAAc;QAChD,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;KAChB,CAAC,EAJK,OAAO,QAAA,EAAE,UAAU,QAIxB,CAAC;IACG,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IAC1D,IAAA,KAAgC,QAAQ,CAAQ,EAAE,CAAC,EAAlD,WAAW,QAAA,EAAE,cAAc,QAAuB,CAAC;IACnD,IAAA,QAAQ,GAAI,oBAAoB,EAAE,GAA1B,CAA2B;IAE1C,SAAS,CAAC;QACN,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QAC/F,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,iBAAiB,GAAG;QACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,OAAO,CAAC,CAAC;SAC3B;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,IAAM,cAAc,GAAG;YACnB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SAChB,CAAC;QACF,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,cAAc,CAAC,CAAC;SAClC;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAa;QACnC,UAAU,CAAC,UAAA,IAAI;YACX,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,OAAO,IAAI,CAAC;aACf;YACD,6BACO,IAAI,KACP,IAAI,EAAE,KAAK,IACb;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAO,KAAwB;;;;;;oBAC/C,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;;;;oBAEf,qBAAM,QAAQ,CAAC,wCAAiC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAlF,QAAQ,GAAG,SAAuE;oBACxF,cAAc,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;;;;oBAE9C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,OAAK,CAAC,CAAC;oBACnD,cAAc,CAAC,EAAE,CAAC,CAAC;;;;;SAE1B,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAU;QAChC,IAAI,CAAC,KAAK,EAAE;YACR,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO;SACV;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,gBAAgB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO;SACV;QACD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,UAAG,MAAM,CAAC,YAAY,cAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,wBAAqB,aACpG,eAAK,SAAS,EAAC,wEAAwE,aACnF,YAAG,SAAS,EAAC,sDAAsD,YAC9D,KAAK,IAAI,EAAE,GACZ,EACJ,eAAK,SAAS,EAAC,sDAAsD,aAmBjE,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,UAAU,EACrB,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACjD,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EAC5B,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,GACtC,EACF,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,QAAQ,EACnB,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACjD,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,OAAO,EAAE,iBAAiB,GAC5B,EACF,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,SAAS,EACpB,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,OAAO,EAAE,OAAO,GAClB,IACA,IACJ,EACL,UAAU;gBACP,eAAK,SAAS,EAAC,MAAM,aAChB,UAAU,KAAK,eAAe;4BAC3B,KAAC,oBAAoB,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAI,EAGlK,UAAU,KAAK,KAAK;4BACjB,KAAC,oBAAoB,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAI,IAElJ,EAEV,MAAC,WAAW,IACR,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAC,qDAAqD,EAC/D,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EACrB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,aAElB,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,wBACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,gCAAmC,GAC5F,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YACjD,eAAK,SAAS,EAAC,wBAAwB,aACnC,eAAK,SAAS,EAAC,wBAAwB,aACnC,gBAAO,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,kBAAkB,qBAAa,EACnE,KAAC,iBAAiB,IACd,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAC,UAAU,EAChB,cAAc,EAAE,WAAW,EAC3B,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAzB,CAAyB,EAC1C,WAAW,EAAC,gBAAgB,EAC5B,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,QAAQ,EACvB,MAAM,SACR,IACA,EACN,eAAK,SAAS,EAAC,wBAAwB,aACnC,gBAAO,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,kBAAkB,2BAAmB,EAC1E,eAAK,SAAS,EAAC,oCAAoC,aAC/C,cAAK,SAAS,EAAC,QAAQ,YACnB,KAAC,eAAe,IACZ,QAAQ,EAAE,MAAA,OAAO,CAAC,SAAS,mCAAI,SAAS,EACxC,QAAQ,EAAE,UAAC,IAAiB,IAAK,OAAA,UAAU,CAAC,UAAA,IAAI,IAAI,OAAA,uBAAM,IAAI,KAAE,SAAS,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,IAAG,EAAtC,CAAsC,CAAC,EAA1D,CAA0D,EAC3F,eAAe,EAAC,YAAY,EAC5B,SAAS,EAAC,QAAQ,EAClB,gBAAgB,EAAC,QAAQ,EACzB,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAC,yBAAyB,GACpC,GACA,EACN,cAAK,SAAS,EAAC,QAAQ,YACnB,KAAC,eAAe,IACZ,QAAQ,EAAE,MAAA,OAAO,CAAC,OAAO,mCAAI,SAAS,EACtC,QAAQ,EAAE,UAAC,IAAiB,IAAK,OAAA,UAAU,CAAC,UAAA,IAAI,IAAI,OAAA,uBAAM,IAAI,KAAE,OAAO,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,IAAG,EAApC,CAAoC,CAAC,EAAxD,CAAwD,EACzF,eAAe,EAAC,UAAU,EAC1B,SAAS,EAAC,QAAQ,EAClB,gBAAgB,EAAC,QAAQ,EACzB,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAC,yBAAyB,GACpC,GACA,IACJ,IACJ,IACJ,GACQ,EAClB,MAAC,iBAAiB,eACV,KAAC,WAAW,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,kBAAkB,GAC7B,EACF,KAAC,WAAW,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,kBAAkB,GAC7B,IACU,IACV,IACZ,CACT,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { useEffect, useState } from 'react'\nimport styles from './chatter.module.css'\nimport { SolidMessageComposer } from './SolidMessageComposer'\nimport { useLazyGetusersQuery } from '../../../redux/api/userApi'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidAutocomplete,\n SolidDatePicker\n} from '../../shad-cn-ui'\nimport { Filter, RefreshCw,Edit } from 'lucide-react'\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\ninterface Props {\n activeTab: any,\n handleTabClick: any,\n visibleBox: any,\n modelSingularName: any,\n refetch: any,\n id: any,\n onFilterChange?: (filters: FilterState) => void;\n onComposerCancel?: () => void;\n title?: string;\n modelUserKey?: string;\n}\n\nexport const SolidChatterHeader = (props: Props) => {\n const { activeTab, visibleBox, handleTabClick, modelSingularName, refetch, id, onFilterChange, onComposerCancel, title, modelUserKey } = props;\n const [showFilterDialog, setShowFilterDialog] = useState(false);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [hasActiveFilters, setHasActiveFilters] = useState(false);\n const [suggestions, setSuggestions] = useState<any[]>([]);\n const [getUsers] = useLazyGetusersQuery();\n\n useEffect(() => {\n const isActive = filters.name !== '' || filters.startDate !== null || filters.endDate !== null;\n setHasActiveFilters(isActive);\n }, [filters]);\n\n const handleFilterClick = () => {\n setShowFilterDialog(true);\n };\n\n const handleApplyFilters = () => {\n if (onFilterChange) {\n onFilterChange(filters);\n }\n setShowFilterDialog(false);\n };\n\n const handleClearFilters = () => {\n const clearedFilters = {\n name: '',\n startDate: null,\n endDate: null\n };\n setFilters(clearedFilters);\n if (onFilterChange) {\n onFilterChange(clearedFilters);\n }\n setShowFilterDialog(false);\n };\n\n const updateNameFilter = (value: string) => {\n setFilters(prev => {\n if (prev.name === value) {\n return prev;\n }\n return {\n ...prev,\n name: value\n };\n });\n };\n\n const searchUsers = async (event: { query: string }) => {\n updateNameFilter(event.query || '');\n try {\n const response = await getUsers(`filters[fullName][$containsi]=${event.query}`).unwrap();\n setSuggestions(response?.data?.records || []);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_USER, error);\n setSuggestions([]);\n }\n };\n\n const handleUserChange = (value: any) => {\n if (!value) {\n updateNameFilter('');\n return;\n }\n if (typeof value === 'object') {\n updateNameFilter(value.fullName || '');\n return;\n }\n updateNameFilter(value);\n };\n\n return (\n <div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>\n <div className='flex justify-content-between align-items-center solid-list-toolbar-row'>\n <p className=\"m-0 view-title solid-text-wrapper form-wrapper-title\">\n {title || ''}\n </p>\n <div className='flex align-items-center solid-header-buttons-wrapper'>\n {/* <Button\n label=\"Send Message\"\n size=\"small\"\n type=\"button\"\n onClick={() => handleTabClick('email-message')}\n {...(activeTab !== 'email-message' && {\n severity: 'secondary',\n outlined: true,\n })}\n /> */}\n {/* <SolidButton\n label=\"Log Note\"\n size=\"sm\"\n type=\"button\"\n variant=\"primary\"\n className=\"solid-purple-button\"\n onClick={() => handleTabClick('log')}\n /> */}\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Log Note\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Edit size={14} />}\n onClick={() => handleTabClick('log')}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Filter\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Filter size={14} />}\n onClick={handleFilterClick}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Refresh\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<RefreshCw size={14} />}\n onClick={refetch}\n />\n </div>\n </div>\n {visibleBox &&\n <div className='mt-2'>\n {visibleBox === \"email-message\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} type={\"email\"} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n\n {visibleBox === \"log\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n </div>\n }\n <SolidDialog\n open={showFilterDialog}\n onOpenChange={setShowFilterDialog}\n className='solid-filter-dialog-shell solid-chatter-filter-main'\n style={{ width: 500 }}\n showHeader={false}\n dismissible={false}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Filter Messages</SolidDialogTitle>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <div className=\"flex flex-column gap-3\">\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">User</label>\n <SolidAutocomplete\n id=\"fullName\"\n value={filters.name}\n suggestions={suggestions}\n field=\"fullName\"\n completeMethod={searchUsers}\n onChange={(e) => handleUserChange(e.value)}\n placeholder=\"Filter by user\"\n className=\"w-full\"\n inputClassName=\"w-full\"\n portal\n />\n </div>\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"dateRange\" className=\"form-field-label\">Date Range</label>\n <div className=\"flex gap-2 flex-column md:flex-row\">\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.startDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, startDate: date ?? null }))}\n placeholderText=\"Start Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.endDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, endDate: date ?? null }))}\n placeholderText=\"End Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n </div>\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton \n label=\"Clear\" \n size=\"sm\"\n variant=\"outline\"\n onClick={handleClearFilters}\n />\n <SolidButton \n label=\"Apply\" \n size=\"sm\"\n className=\"solid-purple-button\"\n onClick={handleApplyFilters}\n />\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidChatterHeader.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react'\nimport styles from './chatter.module.css'\nimport { SolidMessageComposer } from './SolidMessageComposer'\nimport { useLazyGetusersQuery } from '../../../redux/api/userApi'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidAutocomplete,\n SolidDatePicker\n} from '../../shad-cn-ui'\nimport { Filter, RefreshCw,Edit } from 'lucide-react'\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\ninterface Props {\n activeTab: any,\n handleTabClick: any,\n visibleBox: any,\n modelSingularName: any,\n refetch: any,\n id: any,\n onFilterChange?: (filters: FilterState) => void;\n onComposerCancel?: () => void;\n title?: string;\n modelUserKey?: string;\n}\n\nexport const SolidChatterHeader = (props: Props) => {\n const { activeTab, visibleBox, handleTabClick, modelSingularName, refetch, id, onFilterChange, onComposerCancel, title, modelUserKey } = props;\n const [showFilterDialog, setShowFilterDialog] = useState(false);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [hasActiveFilters, setHasActiveFilters] = useState(false);\n const [suggestions, setSuggestions] = useState<any[]>([]);\n const [getUsers] = useLazyGetusersQuery();\n\n useEffect(() => {\n const isActive = filters.name !== '' || filters.startDate !== null || filters.endDate !== null;\n setHasActiveFilters(isActive);\n }, [filters]);\n\n const handleFilterClick = () => {\n setShowFilterDialog(true);\n };\n\n const handleApplyFilters = () => {\n if (onFilterChange) {\n onFilterChange(filters);\n }\n setShowFilterDialog(false);\n };\n\n const handleClearFilters = () => {\n const clearedFilters = {\n name: '',\n startDate: null,\n endDate: null\n };\n setFilters(clearedFilters);\n if (onFilterChange) {\n onFilterChange(clearedFilters);\n }\n setShowFilterDialog(false);\n };\n\n const updateNameFilter = (value: string) => {\n setFilters(prev => {\n if (prev.name === value) {\n return prev;\n }\n return {\n ...prev,\n name: value\n };\n });\n };\n\n const searchUsers = async (event: { query: string }) => {\n updateNameFilter(event.query || '');\n try {\n const response = await getUsers(`filters[fullName][$containsi]=${event.query}`).unwrap();\n setSuggestions(response?.data?.records || []);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_USER, error);\n setSuggestions([]);\n }\n };\n\n const handleUserChange = (value: any) => {\n if (!value) {\n updateNameFilter('');\n return;\n }\n if (typeof value === 'object') {\n updateNameFilter(value.fullName || '');\n return;\n }\n updateNameFilter(value);\n };\n\n return (\n <div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>\n <div className='flex justify-between items-center solid-list-toolbar-row'>\n <p className=\"m-0 view-title solid-text-wrapper form-wrapper-title\">\n {title || ''}\n </p>\n <div className='flex items-center solid-header-buttons-wrapper'>\n {/* <Button\n label=\"Send Message\"\n size=\"small\"\n type=\"button\"\n onClick={() => handleTabClick('email-message')}\n {...(activeTab !== 'email-message' && {\n severity: 'secondary',\n outlined: true,\n })}\n /> */}\n {/* <SolidButton\n label=\"Log Note\"\n size=\"sm\"\n type=\"button\"\n variant=\"primary\"\n className=\"solid-purple-button\"\n onClick={() => handleTabClick('log')}\n /> */}\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Log Note\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Edit size={14} />}\n onClick={() => handleTabClick('log')}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Filter\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Filter size={14} />}\n onClick={handleFilterClick}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Refresh\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<RefreshCw size={14} />}\n onClick={refetch}\n />\n </div>\n </div>\n {visibleBox &&\n <div className='mt-2'>\n {visibleBox === \"email-message\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} type={\"email\"} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n\n {visibleBox === \"log\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n </div>\n }\n <SolidDialog\n open={showFilterDialog}\n onOpenChange={setShowFilterDialog}\n className='solid-filter-dialog-shell solid-chatter-filter-main'\n style={{ width: 500 }}\n showHeader={false}\n dismissible={false}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Filter Messages</SolidDialogTitle>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-col gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">User</label>\n <SolidAutocomplete\n id=\"fullName\"\n value={filters.name}\n suggestions={suggestions}\n field=\"fullName\"\n completeMethod={searchUsers}\n onChange={(e) => handleUserChange(e.value)}\n placeholder=\"Filter by user\"\n className=\"w-full\"\n inputClassName=\"w-full\"\n portal\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <label htmlFor=\"dateRange\" className=\"form-field-label\">Date Range</label>\n <div className=\"flex gap-2 flex-col md:flex-row\">\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.startDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, startDate: date ?? null }))}\n placeholderText=\"Start Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.endDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, endDate: date ?? null }))}\n placeholderText=\"End Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n </div>\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton \n label=\"Clear\" \n size=\"sm\"\n variant=\"outline\"\n onClick={handleClearFilters}\n />\n <SolidButton \n label=\"Apply\" \n size=\"sm\"\n className=\"solid-purple-button\"\n onClick={handleApplyFilters}\n />\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n )\n}\n"]}
|
|
@@ -113,11 +113,11 @@ export const SolidChatterHeader = (props: Props) => {
|
|
|
113
113
|
|
|
114
114
|
return (
|
|
115
115
|
<div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>
|
|
116
|
-
<div className='flex justify-
|
|
116
|
+
<div className='flex justify-between items-center solid-list-toolbar-row'>
|
|
117
117
|
<p className="m-0 view-title solid-text-wrapper form-wrapper-title">
|
|
118
118
|
{title || ''}
|
|
119
119
|
</p>
|
|
120
|
-
<div className='flex
|
|
120
|
+
<div className='flex items-center solid-header-buttons-wrapper'>
|
|
121
121
|
{/* <Button
|
|
122
122
|
label="Send Message"
|
|
123
123
|
size="small"
|
|
@@ -195,8 +195,8 @@ export const SolidChatterHeader = (props: Props) => {
|
|
|
195
195
|
</SolidDialogHeader>
|
|
196
196
|
<SolidDialogSeparator className="solid-filter-dialog-sep" />
|
|
197
197
|
<SolidDialogBody className="solid-filter-dialog-body">
|
|
198
|
-
<div className="flex flex-
|
|
199
|
-
<div className="flex flex-
|
|
198
|
+
<div className="flex flex-col gap-4">
|
|
199
|
+
<div className="flex flex-col gap-2">
|
|
200
200
|
<label htmlFor="fullName" className="form-field-label">User</label>
|
|
201
201
|
<SolidAutocomplete
|
|
202
202
|
id="fullName"
|
|
@@ -211,9 +211,9 @@ export const SolidChatterHeader = (props: Props) => {
|
|
|
211
211
|
portal
|
|
212
212
|
/>
|
|
213
213
|
</div>
|
|
214
|
-
<div className="flex flex-
|
|
214
|
+
<div className="flex flex-col gap-2">
|
|
215
215
|
<label htmlFor="dateRange" className="form-field-label">Date Range</label>
|
|
216
|
-
<div className="flex gap-2 flex-
|
|
216
|
+
<div className="flex gap-2 flex-col md:flex-row">
|
|
217
217
|
<div className="flex-1">
|
|
218
218
|
<SolidDatePicker
|
|
219
219
|
selected={filters.startDate ?? undefined}
|
|
@@ -279,9 +279,9 @@ export var SolidChatterMessageBox = function (props) {
|
|
|
279
279
|
: __spreadArray(__spreadArray([], prev, true), [attachmentId], false);
|
|
280
280
|
});
|
|
281
281
|
};
|
|
282
|
-
return (_jsxs("div", { className: styles.solidChatterMessageBox, children: [_jsx("div", { className: styles.solidChatterMessageCard, children: _jsxs("div", { className: styles.solidChatterMessageLayout, children: [_jsx("div", { className: styles.solidChatterAvatar, style: avatarStyle, children: initials || user.charAt(0).toUpperCase() }), _jsxs("div", { className: styles.solidChatterMessageContent, children: [_jsxs("div", { className: styles.solidChatterMessageHeader, children: [_jsxs("div", { className: 'flex
|
|
282
|
+
return (_jsxs("div", { className: styles.solidChatterMessageBox, children: [_jsx("div", { className: styles.solidChatterMessageCard, children: _jsxs("div", { className: styles.solidChatterMessageLayout, children: [_jsx("div", { className: styles.solidChatterAvatar, style: avatarStyle, children: initials || user.charAt(0).toUpperCase() }), _jsxs("div", { className: styles.solidChatterMessageContent, children: [_jsxs("div", { className: styles.solidChatterMessageHeader, children: [_jsxs("div", { className: 'flex items-center gap-2 flex-wrap', children: [_jsx("p", { className: styles.solidChatterUser, children: user }), _jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("span", { className: "".concat(styles.solidChatterBadge, " ").concat(messageType === 'audit' ? styles.audit : styles.custom), "aria-label": messageLabel, children: _jsx(TypeIcon, { size: 12 }) }) }), _jsx(SolidTooltipContent, { side: "right", children: messageLabel })] })] }), _jsxs("div", { className: 'flex items-center gap-2', children: [canEditNote && !isEditing && (_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Pencil, { size: 12 }), onClick: function () { return setIsEditing(true); }, "aria-label": "Edit note", title: "Edit note" })), _jsx("span", { className: styles.solidChatterTime, children: time })] })] }), modelDisplayName && (_jsxs("p", { className: "".concat(styles.solidChatterMeta, " m-0"), children: [modelDisplayName, modelUserKey && _jsxs(_Fragment, { children: [" \u00B7 ", _jsx("span", { className: 'font-medium', children: modelUserKey })] })] })), localMessage && !isEditing && (_jsx("div", { className: styles.solidMessageWrapper, children: messageType === 'audit'
|
|
283
283
|
? _jsx(SolidChatterAuditMessage, { auditRecord: auditRecord })
|
|
284
|
-
: _jsx(SolidChatterCustomMessage, { message: localMessage }) })), isEditing && (_jsxs("div", { className: 'flex flex-
|
|
284
|
+
: _jsx(SolidChatterCustomMessage, { message: localMessage }) })), isEditing && (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx(SolidTextarea, { value: editedMessage, onChange: function (e) { return setEditedMessage(e.target.value); }, rows: 4, className: "w-full py-2" }), _jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("input", { ref: fileInputRef, id: "note-edit-file-".concat(messageId), type: "file", multiple: true, onChange: handleFileSelect, style: { display: 'none' } }), selectedFiles.length > 0 && (_jsx("div", { className: 'flex flex-col gap-1', children: selectedFiles.map(function (file, index) { return (_jsxs("div", { className: 'flex items-center justify-between text-xs', children: [_jsxs("span", { children: [file.name, " (", formatFileSize(file.size), ")"] }), _jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: 'solid-icon-button', leftIcon: _jsx(X, { size: 12 }), onClick: function () { return setSelectedFiles(function (prev) { return prev.filter(function (_, i) { return i !== index; }); }); }, "aria-label": "Remove ".concat(file.name) })] }, "".concat(file.name, "-").concat(index))); }) }))] }), _jsxs("div", { className: 'flex items-center justify-between gap-2 flex-wrap', children: [_jsxs("div", { className: 'flex items-center gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Paperclip, { size: 14 }), onClick: function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, "aria-label": "Attach files", title: "Attach files" }), _jsx("span", { className: 'text-xs text-color-secondary', children: "Attach file" })] }), _jsxs("div", { className: 'flex items-center justify-end gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(X, { size: 12 }), onClick: handleCancelEdit, children: "Cancel" }), _jsx(SolidButton, { type: "button", size: "sm", variant: "primary", loading: isUpdatingNote, leftIcon: _jsx(Check, { size: 12 }), onClick: handleEditSave, disabled: !(editedMessage === null || editedMessage === void 0 ? void 0 : editedMessage.trim()) || (removedAttachmentIds.length === 0 && selectedFiles.length === 0 && editedMessage.trim() === (message !== null && message !== void 0 ? message : '').trim()), children: "Save" })] })] })] })), visibleAttachments.length > 0 && (_jsx("div", { className: styles.solidChatterAttachments, children: visibleAttachments.map(function (attachment) {
|
|
285
285
|
var isImage = attachment.mimeType.startsWith('image/');
|
|
286
286
|
return (_jsxs("div", { className: styles.solidChatterAttachment, style: { position: 'relative' }, children: [isEditing && canEditNote && (_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Trash2, { size: 12, color: "#dc2626" }), onClick: function () { return toggleRemoveAttachment(attachment.id); }, "aria-label": "Remove ".concat(attachment.originalFileName), title: "Remove ".concat(attachment.originalFileName), style: {
|
|
287
287
|
position: 'absolute',
|
|
@@ -291,7 +291,7 @@ export var SolidChatterMessageBox = function (props) {
|
|
|
291
291
|
background: '#fff',
|
|
292
292
|
border: '1px solid #fecaca',
|
|
293
293
|
borderRadius: '999px',
|
|
294
|
-
} })), isImage ? (_jsx("div", { className: 'cursor-pointer', onClick: function () { return handleImageClick(attachment._full_url); }, children: _jsx(Image, { src: encodeURI(attachment._full_url), alt: attachment.originalFileName, width: 54, height: 54, style: { objectFit: 'cover' } }) })) : (_jsxs("a", { href: encodeURI(attachment._full_url), target: "_blank", rel: "noopener noreferrer", className: 'flex
|
|
295
|
-
}) })), isTaskMessage && (_jsx("div", { className: 'flex
|
|
294
|
+
} })), isImage ? (_jsx("div", { className: 'cursor-pointer', onClick: function () { return handleImageClick(attachment._full_url); }, children: _jsx(Image, { src: encodeURI(attachment._full_url), alt: attachment.originalFileName, width: 54, height: 54, style: { objectFit: 'cover' } }) })) : (_jsxs("a", { href: encodeURI(attachment._full_url), target: "_blank", rel: "noopener noreferrer", className: 'flex items-center gap-2 text-decoration-none text-sm', children: [_jsx(SolidIcon, { name: getFileIcon(attachment.mimeType), "aria-hidden": true }), _jsx("span", { children: attachment.originalFileName })] }))] }, attachment.id));
|
|
295
|
+
}) })), isTaskMessage && (_jsx("div", { className: 'flex items-center justify-end', children: isTaskCompleted ? (_jsxs(SolidTag, { tone: "success", className: "inline-flex items-center gap-1 text-xs px-2 py-1", children: [_jsx(Check, { size: 12, "aria-hidden": true }), _jsx("span", { className: "font-medium", children: "Done" })] })) : (_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", className: "text-xs px-2 py-1", leftIcon: _jsx(Check, { size: 12 }), loading: isUpdatingTaskStatus, onClick: handleMarkTaskDone, children: _jsx("span", { className: "font-semibold", children: "Mark as done" }) })) }))] })] }) }), openLightbox && (_jsx(SolidLightbox, { open: openLightbox, slides: lightboxSlides, onClose: function () { return setOpenLightbox(false); } }))] }));
|
|
296
296
|
};
|
|
297
297
|
//# sourceMappingURL=SolidChatterMessageBox.js.map
|