@solidstarters/solid-core-ui 1.1.17 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Svg/FileSvg.d.ts +4 -0
- package/dist/components/Svg/FileSvg.d.ts.map +1 -0
- package/dist/components/Svg/FileSvg.js +15 -0
- package/dist/components/Svg/FileSvg.js.map +1 -0
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +6 -6
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +1 -1
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.d.ts +6 -1
- package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +8 -2
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/FileReaderExt.d.ts.map +1 -1
- package/dist/components/common/FileReaderExt.js +2 -1
- package/dist/components/common/FileReaderExt.js.map +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js +3 -1
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.js +28 -6
- package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +6 -6
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/form/SolidFormView.js +3 -5
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +9 -7
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +7 -5
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.js +7 -5
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +9 -7
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +9 -7
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.js +6 -4
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.js +8 -6
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +61 -57
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +74 -91
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +9 -7
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +10 -8
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +10 -8
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +7 -5
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +15 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +66 -7
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -10
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +42 -34
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +9 -2
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/model/CreateModel.js +3 -4
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +54 -1
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +118 -51
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/module/CreateModule.js +5 -5
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/users/CreateUser.js +1 -2
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/layout/AppConfig.js +1 -1
- package/dist/components/layout/navbar-two-menu.js +1 -1
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +1 -1
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/helpers/downloadMediaFile.d.ts +2 -0
- package/dist/helpers/downloadMediaFile.d.ts.map +1 -0
- package/dist/helpers/downloadMediaFile.js +66 -0
- package/dist/helpers/downloadMediaFile.js.map +1 -0
- package/dist/helpers/getAcceptedFileTypes.d.ts +4 -0
- package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -0
- package/dist/helpers/getAcceptedFileTypes.js +20 -0
- package/dist/helpers/getAcceptedFileTypes.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/nextAuth/authProviders.d.ts.map +1 -1
- package/dist/nextAuth/authProviders.js +15 -10
- package/dist/nextAuth/authProviders.js.map +1 -1
- package/dist/redux/api/modelApi.d.ts +2 -1
- package/dist/redux/api/modelApi.d.ts.map +1 -1
- package/dist/redux/api/modelApi.js +9 -2
- package/dist/redux/api/modelApi.js.map +1 -1
- package/dist/stylesheets/globals.css +2476 -0
- package/dist/stylesheets/styles/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/styles/layout/_config.scss +54 -0
- package/dist/stylesheets/styles/layout/_content.scss +77 -0
- package/dist/stylesheets/styles/layout/_footer.scss +8 -0
- package/dist/stylesheets/styles/layout/_main.scss +47 -0
- package/dist/stylesheets/styles/layout/_menu.scss +185 -0
- package/dist/stylesheets/styles/layout/_mixins.scss +13 -0
- package/dist/stylesheets/styles/layout/_responsive.scss +99 -0
- package/dist/stylesheets/styles/layout/_topbar.scss +149 -0
- package/dist/stylesheets/styles/layout/_typography.scss +63 -0
- package/dist/stylesheets/styles/layout/_utils.scss +27 -0
- package/dist/stylesheets/styles/layout/_variables.scss +3 -0
- package/dist/stylesheets/styles/layout/layout.scss +11 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Black.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Light.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
- package/dist/stylesheets/themes/solid-dark-purple/theme.css +9051 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Black.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Light.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
- package/dist/stylesheets/themes/solid-light-purple/theme.css +9077 -0
- package/package.json +1 -1
- package/src/components/Svg/FileSvg.tsx +18 -0
- package/src/components/auth/AuthLayout.tsx +7 -5
- package/src/components/auth/SolidForgotPassword.tsx +1 -1
- package/src/components/auth/SolidInitialLoginOtp.tsx +1 -1
- package/src/components/auth/SolidInitiateRegisterOtp.tsx +1 -1
- package/src/components/auth/SolidResetPassword.tsx +1 -1
- package/src/components/common/DropzonePlaceholder.tsx +22 -9
- package/src/components/common/FileReaderExt.tsx +5 -3
- package/src/components/common/SingleSelectAutoCompleteField.tsx +3 -1
- package/src/components/core/common/SolidConfigureLayoutElement.tsx +72 -31
- package/src/components/core/common/SolidGlobalSearchElement.tsx +7 -6
- package/src/components/core/form/SolidFormView.tsx +4 -4
- package/src/components/core/form/fields/SolidBooleanField.tsx +6 -3
- package/src/components/core/form/fields/SolidDateField.tsx +6 -3
- package/src/components/core/form/fields/SolidDateTimeField.tsx +6 -3
- package/src/components/core/form/fields/SolidDecimalField.tsx +6 -3
- package/src/components/core/form/fields/SolidIntegerField.tsx +6 -3
- package/src/components/core/form/fields/SolidJsonField.tsx +6 -3
- package/src/components/core/form/fields/SolidLongTextField.tsx +6 -3
- package/src/components/core/form/fields/SolidMediaMultipleField.tsx +122 -98
- package/src/components/core/form/fields/SolidMediaSingleField.tsx +115 -126
- package/src/components/core/form/fields/SolidRichTextField.tsx +7 -3
- package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -3
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +6 -3
- package/src/components/core/form/fields/SolidShortTextField.tsx +8 -4
- package/src/components/core/form/fields/SolidTimeField.tsx +7 -4
- package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -25
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +92 -2
- package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +5 -1
- package/src/components/core/list/SolidListView.tsx +12 -3
- package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +18 -0
- package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -0
- package/src/components/core/model/CreateModel.tsx +4 -4
- package/src/components/core/model/FieldMetaData.tsx +25 -1
- package/src/components/core/model/FieldMetaDataForm.tsx +108 -18
- package/src/components/core/module/CreateModule.tsx +5 -5
- package/src/components/core/users/CreateUser.tsx +2 -2
- package/src/components/layout/AppConfig.tsx +1 -1
- package/src/components/layout/navbar-two-menu.tsx +1 -1
- package/src/components/layout/user-profile-menu.tsx +7 -8
- package/src/helpers/downloadMediaFile.tsx +19 -0
- package/src/helpers/getAcceptedFileTypes.tsx +22 -0
- package/src/nextAuth/authProviders.tsx +3 -2
- package/src/redux/api/modelApi.ts +9 -2
- package/dist/components/common/FilterComponent.d.ts +0 -3
- package/dist/components/common/FilterComponent.d.ts.map +0 -1
- package/dist/components/common/FilterComponent.js +0 -214
- package/dist/components/common/FilterComponent.js.map +0 -1
- package/dist/components/core/filter/columns/SolidBigintField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidBigintField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidBigintField.js +0 -8
- package/dist/components/core/filter/columns/SolidBigintField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidBooleanField.js +0 -27
- package/dist/components/core/filter/columns/SolidBooleanField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidComputedField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidComputedField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidComputedField.js +0 -22
- package/dist/components/core/filter/columns/SolidComputedField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDateField.d.ts +0 -9
- package/dist/components/core/filter/columns/SolidDateField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDateField.js +0 -35
- package/dist/components/core/filter/columns/SolidDateField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDatetimeField.js +0 -24
- package/dist/components/core/filter/columns/SolidDatetimeField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidDecimalField.js +0 -8
- package/dist/components/core/filter/columns/SolidDecimalField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidExternalIdField.js +0 -25
- package/dist/components/core/filter/columns/SolidExternalIdField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidFloatField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidFloatField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidFloatField.js +0 -8
- package/dist/components/core/filter/columns/SolidFloatField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidIdField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidIdField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidIdField.js +0 -25
- package/dist/components/core/filter/columns/SolidIdField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidIntField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidIntField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidIntField.js +0 -34
- package/dist/components/core/filter/columns/SolidIntField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidLongTextField.js +0 -8
- package/dist/components/core/filter/columns/SolidLongTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js +0 -35
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidMediaSingleField.js +0 -35
- package/dist/components/core/filter/columns/SolidMediaSingleField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidRelationField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidRelationField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidRelationField.js +0 -12
- package/dist/components/core/filter/columns/SolidRelationField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidRichTextField.js +0 -8
- package/dist/components/core/filter/columns/SolidRichTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js +0 -25
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js +0 -26
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidShortTextField.js +0 -33
- package/dist/components/core/filter/columns/SolidShortTextField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidTimeField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidTimeField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidTimeField.js +0 -24
- package/dist/components/core/filter/columns/SolidTimeField.js.map +0 -1
- package/dist/components/core/filter/columns/SolidUuidField.d.ts +0 -4
- package/dist/components/core/filter/columns/SolidUuidField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/SolidUuidField.js +0 -25
- package/dist/components/core/filter/columns/SolidUuidField.js.map +0 -1
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts +0 -4
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts.map +0 -1
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js +0 -54
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js.map +0 -1
|
@@ -11,6 +11,10 @@ import { Schema } from "yup";
|
|
|
11
11
|
import { FormikObject, ISolidField, SolidFieldProps } from "./ISolidField";
|
|
12
12
|
import { FileReaderExt } from "@/components/common/FileReaderExt";
|
|
13
13
|
import { ProgressBar } from "primereact/progressbar";
|
|
14
|
+
import Link from "next/link";
|
|
15
|
+
import getAcceptedFileTypes from "@/helpers/getAcceptedFileTypes";
|
|
16
|
+
import { downloadMediaFile } from "@/helpers/downloadMediaFile";
|
|
17
|
+
|
|
14
18
|
export class SolidMediaSingleField implements ISolidField {
|
|
15
19
|
|
|
16
20
|
private fieldContext: SolidFieldProps;
|
|
@@ -78,15 +82,15 @@ export class SolidMediaSingleField implements ISolidField {
|
|
|
78
82
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
79
83
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
80
84
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
85
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
81
86
|
|
|
82
87
|
const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
|
|
83
88
|
const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();
|
|
84
|
-
const [imagesPreview, setImagesPreview] = useState<string | ArrayBuffer | null>(null);
|
|
85
|
-
const [uploadProgress, setUploadProgress] = useState<number>(0);
|
|
86
89
|
const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);
|
|
87
|
-
const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);
|
|
88
|
-
const [uploadedSize, setUploadedSize] = useState<string>("0 MB");
|
|
90
|
+
const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string } | null>(null);
|
|
89
91
|
const [totalSize, setTotalSize] = useState<string>("0 KB");
|
|
92
|
+
const [isReplaceImageDialogVisible, setReplaceImageDialogVisible] = useState(false);
|
|
93
|
+
const [newFileToUpload, setNewFileToUpload] = useState<any>(null);
|
|
90
94
|
|
|
91
95
|
const formatFileSize = (size: number) => {
|
|
92
96
|
return size >= 1024 * 1024
|
|
@@ -94,151 +98,121 @@ export class SolidMediaSingleField implements ISolidField {
|
|
|
94
98
|
: `${(size / 1024).toFixed(1)} KB`;
|
|
95
99
|
};
|
|
96
100
|
|
|
97
|
-
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
98
|
-
const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
|
|
99
|
-
|
|
100
|
-
const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;
|
|
101
|
-
const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;
|
|
102
|
-
|
|
103
101
|
const [
|
|
104
102
|
deleteMedia,
|
|
105
103
|
{ isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },
|
|
106
104
|
] = useDeleteMediaMutation();
|
|
107
105
|
|
|
108
|
-
const handleDelete = () => {
|
|
109
|
-
imageToBeDeletedData.e.stopPropagation();
|
|
110
|
-
if (imageToBeDeletedData.imagesPreview.id) {
|
|
111
|
-
deleteMedia(imageToBeDeletedData.imagesPreview.id);
|
|
112
|
-
}
|
|
113
|
-
formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
|
|
114
|
-
setDeleteImageDialogVisible(false);
|
|
115
|
-
};
|
|
116
106
|
const handleCancelUpload = (e: React.MouseEvent) => {
|
|
117
107
|
e.stopPropagation();
|
|
118
108
|
if (imageToBeDeletedData) {
|
|
119
109
|
deleteMedia(imageToBeDeletedData);
|
|
120
110
|
}
|
|
121
111
|
e.stopPropagation();
|
|
122
|
-
setUploadProgress(0);
|
|
123
112
|
setUploadCompleted(false);
|
|
124
113
|
setFileDetails(null);
|
|
125
114
|
formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
|
|
126
115
|
setDeleteImageDialogVisible(false);
|
|
127
116
|
};
|
|
128
117
|
|
|
129
|
-
const handleDropImage = (acceptedFiles:
|
|
130
|
-
// const file = acceptedFiles[0];
|
|
131
|
-
// if (file) {
|
|
132
|
-
// formik.setFieldValue(fieldLayoutInfo.attrs.name, file);
|
|
133
|
-
// } else {
|
|
134
|
-
// console.error("No file was accepted");
|
|
135
|
-
// }
|
|
118
|
+
const handleDropImage = (acceptedFiles: any[]) => {
|
|
136
119
|
const file = acceptedFiles[0];
|
|
137
120
|
if (!file) return;
|
|
121
|
+
if (fileDetails) {
|
|
122
|
+
// If a file is already uploaded, show the confirmation dialog
|
|
123
|
+
setNewFileToUpload(file);
|
|
124
|
+
setReplaceImageDialogVisible(true);
|
|
125
|
+
} else {
|
|
126
|
+
// If no file is present, proceed with upload
|
|
127
|
+
uploadFile(file);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
138
130
|
|
|
131
|
+
const uploadFile = (file: any) => {
|
|
139
132
|
setUploadCompleted(false);
|
|
140
|
-
setUploadProgress(0);
|
|
141
133
|
setTotalSize(formatFileSize(file.size));
|
|
142
|
-
|
|
143
|
-
setFileDetails({ name: file.name, type: file.type });
|
|
134
|
+
setFileDetails({ name: file.name, type: file.type, fileUrl: file.fileUrl });
|
|
144
135
|
|
|
145
136
|
const reader = new FileReader();
|
|
146
|
-
|
|
147
|
-
reader.onloadstart = () => {
|
|
148
|
-
setUploadProgress(0);
|
|
149
|
-
setUploadedSize("0 KB");
|
|
150
|
-
};
|
|
151
|
-
reader.onprogress = (event) => {
|
|
152
|
-
if (event.loaded && event.total) {
|
|
153
|
-
const percent = Math.round((event.loaded / event.total) * 100);
|
|
154
|
-
setUploadProgress(percent);
|
|
155
|
-
setUploadedSize(formatFileSize(event.loaded));
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
|
|
159
137
|
reader.onloadend = () => {
|
|
160
|
-
setUploadProgress(100);
|
|
161
138
|
setUploadCompleted(true);
|
|
162
|
-
setUploadedSize(totalSize); // Set uploaded size to total size after completion
|
|
163
139
|
};
|
|
164
|
-
|
|
165
140
|
reader.readAsDataURL(file);
|
|
166
141
|
formik.setFieldValue(fieldLayoutInfo.attrs.name, file);
|
|
167
142
|
};
|
|
143
|
+
const handleReplaceFile = () => {
|
|
144
|
+
// Delete the existing file first
|
|
145
|
+
if (imageToBeDeletedData) {
|
|
146
|
+
deleteMedia(imageToBeDeletedData);
|
|
147
|
+
}
|
|
168
148
|
|
|
169
|
-
|
|
170
|
-
|
|
149
|
+
setUploadCompleted(false);
|
|
150
|
+
setFileDetails(null);
|
|
151
|
+
formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
|
|
171
152
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
// }
|
|
181
|
-
// }, [formik.values, fieldLayoutInfo.attrs.name]);
|
|
153
|
+
// Proceed with uploading new file
|
|
154
|
+
if (newFileToUpload) {
|
|
155
|
+
uploadFile(newFileToUpload);
|
|
156
|
+
setNewFileToUpload(null);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
setReplaceImageDialogVisible(false);
|
|
160
|
+
};
|
|
182
161
|
useEffect(() => {
|
|
183
162
|
const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
|
|
184
163
|
|
|
185
164
|
if (fieldValue && typeof fieldValue === "object") {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
165
|
+
let fileUrl = "";
|
|
166
|
+
let fileName = "Unknown File";
|
|
167
|
+
|
|
168
|
+
if (fieldValue instanceof File) {
|
|
169
|
+
// Handle new file upload
|
|
170
|
+
fileUrl = fieldValue.name;
|
|
171
|
+
fileName = fileUrl;
|
|
172
|
+
} else if (fieldValue._full_url) {
|
|
173
|
+
// Handle updated file from backend
|
|
174
|
+
fileUrl = fieldValue._full_url;
|
|
175
|
+
fileName = fieldValue.relativeUri?.split("/").pop() || "Unknown File";
|
|
197
176
|
}
|
|
177
|
+
|
|
178
|
+
setFileDetails({ name: fileName, type: "Uploaded File", fileUrl });
|
|
179
|
+
|
|
180
|
+
// Set upload progress
|
|
181
|
+
setUploadCompleted(true);
|
|
182
|
+
setImageToBeDeletedData(fieldValue.id);
|
|
183
|
+
formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
|
|
198
184
|
}
|
|
199
185
|
}, [formik.values, fieldLayoutInfo.attrs.name]);
|
|
200
186
|
|
|
201
|
-
|
|
202
187
|
const {
|
|
203
188
|
getRootProps: getRootProps,
|
|
204
189
|
getInputProps: getInputProps,
|
|
205
190
|
isDragActive: isDragActive,
|
|
206
191
|
} = useDropzone({
|
|
207
192
|
onDrop: handleDropImage,
|
|
208
|
-
accept:
|
|
209
|
-
|
|
210
|
-
"image/png": [],
|
|
211
|
-
},
|
|
212
|
-
maxSize: 2 * 1024 * 1024, // 2MB
|
|
193
|
+
accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
|
|
194
|
+
maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
|
|
213
195
|
});
|
|
214
196
|
|
|
215
197
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
216
198
|
|
|
217
|
-
const imageFormatHandler = (preview: any) => {
|
|
218
|
-
if (typeof preview === 'string') {
|
|
219
|
-
return preview; // Existing URLs
|
|
220
|
-
}
|
|
221
|
-
if (preview instanceof File) {
|
|
222
|
-
return URL.createObjectURL(preview); // Generate preview URL for File
|
|
223
|
-
}
|
|
224
|
-
if (typeof preview === 'object') {
|
|
225
|
-
return preview._full_url
|
|
226
|
-
}
|
|
227
|
-
return ""; // Fallback for invalid cases
|
|
228
|
-
}
|
|
229
|
-
|
|
230
199
|
return (
|
|
231
200
|
<div className={className}>
|
|
232
201
|
<div className="flex flex-column gap-2 mt-4">
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
202
|
+
{showFieldLabel != false &&
|
|
203
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
204
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
205
|
+
</label>
|
|
206
|
+
}
|
|
236
207
|
<div
|
|
237
208
|
{...getRootProps()}
|
|
238
209
|
className="solid-dropzone-wrapper"
|
|
239
210
|
>
|
|
240
211
|
<input {...getInputProps()} />
|
|
241
|
-
<DropzonePlaceholder
|
|
212
|
+
<DropzonePlaceholder
|
|
213
|
+
mediaTypes={fieldMetadata.mediaTypes}
|
|
214
|
+
mediaMaxSizeKb={fieldMetadata.mediaMaxSizeKb}
|
|
215
|
+
/>
|
|
242
216
|
</div>
|
|
243
217
|
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
|
|
244
218
|
<Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
|
|
@@ -248,46 +222,47 @@ export class SolidMediaSingleField implements ISolidField {
|
|
|
248
222
|
<div className="flex align-items-center gap-2">
|
|
249
223
|
<FileReaderExt fileDetails={fileDetails} />
|
|
250
224
|
<div className="w-full flex flex-column gap-1">
|
|
251
|
-
<div className="flex align-items-
|
|
252
|
-
<
|
|
253
|
-
<div className="
|
|
254
|
-
<
|
|
255
|
-
<
|
|
256
|
-
|
|
225
|
+
<div className="flex align-items-start justify-content-between">
|
|
226
|
+
<Link className="font-bold w-9" href={process.env.NEXT_PUBLIC_BACKEND_API_URL + `/${fileDetails?.fileUrl}`} target="_blank">{fileDetails.name}</Link>
|
|
227
|
+
<div className="flex align-items-center gap-2">
|
|
228
|
+
<div>
|
|
229
|
+
<Button
|
|
230
|
+
text
|
|
231
|
+
icon={"pi pi-download"}
|
|
232
|
+
size="small"
|
|
233
|
+
severity="secondary"
|
|
234
|
+
// className="p-2"
|
|
235
|
+
style={{
|
|
236
|
+
height: 16,
|
|
237
|
+
width: 16
|
|
238
|
+
}}
|
|
239
|
+
onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}
|
|
240
|
+
/>
|
|
241
|
+
</div>
|
|
242
|
+
<div>
|
|
243
|
+
<Button
|
|
244
|
+
text
|
|
245
|
+
icon={"pi pi-times"}
|
|
246
|
+
size="small"
|
|
247
|
+
severity="secondary"
|
|
248
|
+
// className="p-2"
|
|
249
|
+
style={{
|
|
250
|
+
height: 16,
|
|
251
|
+
width: 16
|
|
252
|
+
}}
|
|
253
|
+
onClick={() => setDeleteImageDialogVisible(true)}
|
|
254
|
+
/>
|
|
255
|
+
</div>
|
|
257
256
|
</div>
|
|
258
257
|
</div>
|
|
259
258
|
{
|
|
260
|
-
uploadCompleted
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
265
|
-
</svg>
|
|
266
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
267
|
-
<mask id="mask0_2480_8635" style={{ maskType: 'alpha' }} maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
|
|
268
|
-
<rect width="20" height="20" fill="#D9D9D9" />
|
|
269
|
-
</mask>
|
|
270
|
-
<g mask="url(#mask0_2480_8635)">
|
|
271
|
-
<path d="M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 6.295 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z" fill="#722ED1" />
|
|
272
|
-
</g>
|
|
273
|
-
</svg>
|
|
274
|
-
Completed
|
|
275
|
-
</div>
|
|
276
|
-
:
|
|
277
|
-
<div className="flex align-items-center gap-2 text-sm">
|
|
278
|
-
{uploadedSize} of {totalSize}
|
|
279
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
280
|
-
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
281
|
-
</svg>
|
|
282
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
283
|
-
<path d="M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z" fill="black" />
|
|
284
|
-
</svg>
|
|
285
|
-
Uploading ${uploadProgress}% Completed
|
|
286
|
-
</div>
|
|
259
|
+
uploadCompleted &&
|
|
260
|
+
<div className="flex align-items-center gap-2 text-sm">
|
|
261
|
+
{totalSize}
|
|
262
|
+
</div>
|
|
287
263
|
}
|
|
288
264
|
</div>
|
|
289
265
|
</div>
|
|
290
|
-
<ProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className="mt-2" />
|
|
291
266
|
</div>
|
|
292
267
|
)}
|
|
293
268
|
</div>
|
|
@@ -303,7 +278,21 @@ export class SolidMediaSingleField implements ISolidField {
|
|
|
303
278
|
)}
|
|
304
279
|
onHide={() => setDeleteImageDialogVisible(false)}
|
|
305
280
|
>
|
|
306
|
-
<p>Are you sure you want to delete
|
|
281
|
+
<p>Are you sure you want to delete media?</p>
|
|
282
|
+
</Dialog>
|
|
283
|
+
<Dialog
|
|
284
|
+
visible={isReplaceImageDialogVisible}
|
|
285
|
+
header="Replace Image"
|
|
286
|
+
modal
|
|
287
|
+
footer={() => (
|
|
288
|
+
<div className="flex justify-content-center">
|
|
289
|
+
<Button label="Yes, Replace" icon="pi pi-check" className='small-button' severity="danger" onClick={handleReplaceFile} />
|
|
290
|
+
<Button label="Cancel" icon="pi pi-times" className='small-button' onClick={() => setReplaceImageDialogVisible(false)} />
|
|
291
|
+
</div>
|
|
292
|
+
)}
|
|
293
|
+
onHide={() => setReplaceImageDialogVisible(false)}
|
|
294
|
+
>
|
|
295
|
+
<p>An media is already uploaded. Do you want to delete it and upload a new one?</p>
|
|
307
296
|
</Dialog>
|
|
308
297
|
</div>
|
|
309
298
|
);
|
|
@@ -61,6 +61,8 @@ export class SolidRichTextField implements ISolidField {
|
|
|
61
61
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
62
62
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
63
63
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
64
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
65
|
+
|
|
64
66
|
const [text, setText] = useState();
|
|
65
67
|
|
|
66
68
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
@@ -74,9 +76,11 @@ export class SolidRichTextField implements ISolidField {
|
|
|
74
76
|
return (
|
|
75
77
|
<div className={className}>
|
|
76
78
|
<div className="flex flex-column gap-2 mt-4">
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
{showFieldLabel != false &&
|
|
80
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
81
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
82
|
+
</label>
|
|
83
|
+
}
|
|
80
84
|
<Editor
|
|
81
85
|
readOnly={formReadonly || fieldReadonly}
|
|
82
86
|
disabled={formDisabled || fieldDisabled}
|
|
@@ -55,6 +55,7 @@ export class SolidSelectionDynamicField implements ISolidField {
|
|
|
55
55
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
56
56
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
57
57
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
58
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
58
59
|
|
|
59
60
|
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
60
61
|
const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
|
|
@@ -94,9 +95,11 @@ export class SolidSelectionDynamicField implements ISolidField {
|
|
|
94
95
|
return (
|
|
95
96
|
<div className={className}>
|
|
96
97
|
<div className="flex flex-column gap-2 mt-4">
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
{showFieldLabel != false &&
|
|
99
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
100
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
101
|
+
</label>
|
|
102
|
+
}
|
|
100
103
|
<AutoComplete
|
|
101
104
|
readOnly={formReadonly || fieldReadonly}
|
|
102
105
|
disabled={formDisabled || fieldDisabled}
|
|
@@ -76,6 +76,7 @@ export class SolidSelectionStaticField implements ISolidField {
|
|
|
76
76
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
77
77
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
78
78
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
79
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
79
80
|
|
|
80
81
|
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
81
82
|
const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
|
|
@@ -99,9 +100,11 @@ export class SolidSelectionStaticField implements ISolidField {
|
|
|
99
100
|
return (
|
|
100
101
|
<div className={className}>
|
|
101
102
|
<div className="flex flex-column gap-2 mt-4">
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
{showFieldLabel != false &&
|
|
104
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
105
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
106
|
+
</label>
|
|
107
|
+
}
|
|
105
108
|
<AutoComplete
|
|
106
109
|
readOnly={formReadonly || fieldReadonly}
|
|
107
110
|
disabled={formDisabled || fieldDisabled}
|
|
@@ -68,6 +68,8 @@ export class SolidShortTextField implements ISolidField {
|
|
|
68
68
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
69
69
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
70
70
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
71
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
72
|
+
|
|
71
73
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
72
74
|
|
|
73
75
|
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
@@ -79,11 +81,13 @@ export class SolidShortTextField implements ISolidField {
|
|
|
79
81
|
return (
|
|
80
82
|
<div className={className}>
|
|
81
83
|
<div className="flex flex-column gap-2 mt-4">
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
{showFieldLabel != false &&
|
|
85
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
86
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
84
87
|
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
{/* {fieldDescription && <span className="form_field_help_text">`(${fieldDescription})` </span>} */}
|
|
89
|
+
</label>
|
|
90
|
+
}
|
|
87
91
|
<InputText
|
|
88
92
|
readOnly={formReadonly || fieldReadonly}
|
|
89
93
|
disabled={formDisabled || fieldDisabled}
|
|
@@ -51,7 +51,8 @@ export class SolidTimeField implements ISolidField {
|
|
|
51
51
|
const calendarRef = useRef<any>(null); // Reference for the Calendar component
|
|
52
52
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
53
53
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
54
|
-
|
|
54
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
55
|
+
|
|
55
56
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
56
57
|
|
|
57
58
|
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
@@ -60,10 +61,12 @@ export class SolidTimeField implements ISolidField {
|
|
|
60
61
|
return (
|
|
61
62
|
<div className={className}>
|
|
62
63
|
<div className="flex flex-column gap-2 mt-4">
|
|
63
|
-
|
|
64
|
+
{showFieldLabel != false &&
|
|
65
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
68
|
+
</label>
|
|
69
|
+
}
|
|
67
70
|
<Calendar
|
|
68
71
|
disabled={formDisabled || fieldDisabled}
|
|
69
72
|
ref={calendarRef} // Attach ref to Calendar
|
|
@@ -136,6 +136,7 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
136
136
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
137
137
|
const className = fieldLayoutInfo.attrs?.className || 'field col-12';
|
|
138
138
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
139
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
139
140
|
|
|
140
141
|
// auto complete specific code.
|
|
141
142
|
const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
|
|
@@ -235,9 +236,11 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
235
236
|
return (
|
|
236
237
|
<div className={className}>
|
|
237
238
|
<div className="flex align-items-center gap-3">
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
{showFieldLabel != false &&
|
|
240
|
+
<label className="form-field-label">
|
|
241
|
+
{capitalize(fieldLayoutInfo.attrs.name)}
|
|
242
|
+
</label>
|
|
243
|
+
}
|
|
241
244
|
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
242
245
|
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
243
246
|
}
|
|
@@ -291,6 +294,7 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
291
294
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
292
295
|
const className = fieldLayoutInfo.attrs?.className || 'field col-12';
|
|
293
296
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
297
|
+
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
294
298
|
|
|
295
299
|
// auto complete specific code.
|
|
296
300
|
const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
|
|
@@ -358,29 +362,29 @@ export class SolidRelationManyToManyField implements ISolidField {
|
|
|
358
362
|
|
|
359
363
|
return (
|
|
360
364
|
<div className={className}>
|
|
361
|
-
|
|
362
|
-
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">
|
|
363
|
-
|
|
365
|
+
{showFieldLabel != false &&
|
|
366
|
+
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">
|
|
367
|
+
{fieldLabel}
|
|
364
368
|
</label>
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
369
|
+
}
|
|
370
|
+
<div className="flex align-items-center gap-3">
|
|
371
|
+
<AutoComplete
|
|
372
|
+
readOnly={readOnly}
|
|
373
|
+
disabled={disabled}
|
|
374
|
+
multiple
|
|
375
|
+
{...formik.getFieldProps(fieldLayoutInfo.attrs.name)}
|
|
376
|
+
id={fieldLayoutInfo.attrs.name}
|
|
377
|
+
field="label"
|
|
378
|
+
value={formik.values[fieldLayoutInfo.attrs.name] || ''}
|
|
379
|
+
dropdown
|
|
380
|
+
suggestions={autoCompleteItems}
|
|
381
|
+
completeMethod={autoCompleteSearch}
|
|
382
|
+
onChange={formik.handleChange}
|
|
383
|
+
className="solid-standard-autocomplete w-full"
|
|
384
|
+
/>
|
|
385
|
+
{fieldLayoutInfo.attrs.inlineCreate === "true" &&
|
|
386
|
+
this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
|
|
387
|
+
}
|
|
384
388
|
</div>
|
|
385
389
|
</div>
|
|
386
390
|
);
|