@solidstarters/solid-core-ui 1.1.18 → 1.1.20
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 +9 -7
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js +3 -1
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +3 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +4 -2
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +4 -2
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +3 -1
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -1
- package/dist/components/auth/SolidOTPVerify.js +3 -1
- package/dist/components/auth/SolidOTPVerify.js.map +1 -1
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +3 -1
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +4 -2
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/common/CancelButton.js +2 -2
- package/dist/components/common/CancelButton.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/SolidBreadcrumb.d.ts +11 -0
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -0
- package/dist/components/common/SolidBreadcrumb.js +22 -0
- package/dist/components/common/SolidBreadcrumb.js.map +1 -0
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.js +38 -10
- 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 +3 -3
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.js +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +33 -40
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/fields/ISolidField.d.ts +1 -0
- package/dist/components/core/form/fields/ISolidField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +10 -2
- 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 +10 -2
- 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 +3 -2
- 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 +3 -2
- 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 +69 -66
- 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 +75 -93
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +9 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +7 -8
- 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 +10 -8
- 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 +54 -48
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidManyToOneFilterElement.js +1 -1
- package/dist/components/core/list/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -8
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +1 -1
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +65 -68
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +6 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +13 -7
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +10 -4
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/layout/AppConfig.js +1 -1
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +34 -5
- package/dist/components/layout/AppSidebar.js.map +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 +3 -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/helpers/permissions.d.ts +1 -0
- package/dist/helpers/permissions.d.ts.map +1 -1
- package/dist/helpers/permissions.js +3 -0
- package/dist/helpers/permissions.js.map +1 -1
- 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/authApi.d.ts.map +1 -1
- package/dist/redux/api/authApi.js +1 -1
- package/dist/redux/api/authApi.js.map +1 -1
- package/dist/redux/api/solidViewApi.d.ts +1 -1
- package/dist/redux/api/solidViewApi.d.ts.map +1 -1
- package/dist/redux/api/solidViewApi.js +1 -1
- package/dist/redux/api/solidViewApi.js.map +1 -1
- package/dist/resources/globals.css +2551 -0
- package/dist/resources/images/AvatarDemo.png +0 -0
- package/dist/resources/images/Footerbg.png +0 -0
- package/dist/resources/images/LoginBanner.png +0 -0
- package/dist/resources/images/Navigation/Level.svg +5 -0
- package/dist/resources/images/Navigation/Presure.svg +7 -0
- package/dist/resources/images/Navigation/Temperature.svg +13 -0
- package/dist/resources/images/Navigation/settings.png +0 -0
- package/dist/resources/images/Profile/Avatar.png +0 -0
- package/dist/resources/images/SS-Logo.png +0 -0
- package/dist/resources/images/activity.svg +3 -0
- package/dist/resources/images/app-builder.png +0 -0
- package/dist/resources/images/auth/solid-left-layout-bg.png +0 -0
- package/dist/resources/images/auth/solid-login-light.png +0 -0
- package/dist/resources/images/auth/solid-right-layout-bg.png +0 -0
- package/dist/resources/images/clog-wheel.png +0 -0
- package/dist/resources/images/dark-mode.png +0 -0
- package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
- package/dist/resources/images/dashboard/image 5.svg +9 -0
- package/dist/resources/images/eye-icon.png +0 -0
- package/dist/resources/images/fb.svg +3 -0
- package/dist/resources/images/fileReader/image-jpg.png +0 -0
- package/dist/resources/images/filter-icon.png +0 -0
- package/dist/resources/images/form/user.png +0 -0
- package/dist/resources/images/iam.png +0 -0
- package/dist/resources/images/icons/icon-activity.svg +3 -0
- package/dist/resources/images/icons/icon-calender.svg +3 -0
- package/dist/resources/images/icons/icon-graph.svg +3 -0
- package/dist/resources/images/icons/icon-kanban.svg +3 -0
- package/dist/resources/images/icons/icon-list.svg +3 -0
- package/dist/resources/images/icons/icon-users.svg +3 -0
- package/dist/resources/images/icons/jump-to-icon.png +0 -0
- package/dist/resources/images/insta.svg +3 -0
- package/dist/resources/images/layout/images/comfortable.png +0 -0
- package/dist/resources/images/layout/images/compact.png +0 -0
- package/dist/resources/images/layout/images/cozy.png +0 -0
- package/dist/resources/images/layout/images/kanban.png +0 -0
- package/dist/resources/images/li.svg +3 -0
- package/dist/resources/images/loginhero.png +0 -0
- package/dist/resources/images/logo.png +0 -0
- package/dist/resources/images/mail-icon.png +0 -0
- package/dist/resources/images/menu/app-builder.svg +19 -0
- package/dist/resources/images/menu/iam.svg +14 -0
- package/dist/resources/images/menu/logicloop-black.svg +28 -0
- package/dist/resources/images/menu/logicloop-blue.svg +32 -0
- package/dist/resources/images/menu/logicloop-white.svg +32 -0
- package/dist/resources/images/menu/queues.svg +14 -0
- package/dist/resources/images/menu/radix.svg +9 -0
- package/dist/resources/images/menu/rl-lead-middleware.svg +19 -0
- package/dist/resources/images/menu/solid-address-master.svg +10 -0
- package/dist/resources/images/menu/srmd-tracker-black.svg +16 -0
- package/dist/resources/images/menu/srmd-tracker-original.svg +32 -0
- package/dist/resources/images/menu/srmd-tracker-white.svg +17 -0
- package/dist/resources/images/menu/srmd-tracker.svg +16 -0
- package/dist/resources/images/menu-icon.png +0 -0
- package/dist/resources/images/menu-toggle.png +0 -0
- package/dist/resources/images/password-icon.png +0 -0
- package/dist/resources/images/profile.png +0 -0
- package/dist/resources/images/radix-logo-white.png +0 -0
- package/dist/resources/images/radix-logo.png +0 -0
- package/dist/resources/images/search-icon.png +0 -0
- package/dist/resources/images/signupBanner.png +0 -0
- package/dist/resources/images/tw.svg +3 -0
- package/dist/resources/images/user-icon.png +0 -0
- package/dist/resources/stylesheets/_config.scss +54 -0
- package/dist/resources/stylesheets/_content.scss +91 -0
- package/dist/resources/stylesheets/_footer.scss +8 -0
- package/dist/resources/stylesheets/_main.scss +47 -0
- package/dist/resources/stylesheets/_menu.scss +185 -0
- package/dist/resources/stylesheets/_mixins.scss +13 -0
- package/dist/resources/stylesheets/_responsive.scss +99 -0
- package/dist/resources/stylesheets/_topbar.scss +149 -0
- package/dist/resources/stylesheets/_typography.scss +63 -0
- package/dist/resources/stylesheets/_utils.scss +27 -0
- package/dist/resources/stylesheets/_variables.scss +3 -0
- package/dist/resources/stylesheets/layout.scss +11 -0
- 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 +6 -3
- package/src/components/Svg/FileSvg.tsx +18 -0
- package/src/components/auth/AuthLayout.tsx +13 -8
- package/src/components/auth/ForgotPasswordThankYou.tsx +6 -3
- package/src/components/auth/SolidForgotPassword.tsx +7 -4
- package/src/components/auth/SolidInitialLoginOtp.tsx +7 -4
- package/src/components/auth/SolidInitiateRegisterOtp.tsx +7 -4
- package/src/components/auth/SolidLogin.tsx +6 -3
- package/src/components/auth/SolidOTPVerify.tsx +6 -3
- package/src/components/auth/SolidRegister.tsx +6 -4
- package/src/components/auth/SolidResetPassword.tsx +7 -4
- package/src/components/common/CancelButton.tsx +2 -2
- package/src/components/common/DropzonePlaceholder.tsx +22 -9
- package/src/components/common/FileReaderExt.tsx +5 -3
- package/src/components/common/SolidBreadcrumb.tsx +27 -0
- package/src/components/core/common/SolidConfigureLayoutElement.tsx +102 -42
- package/src/components/core/common/SolidGlobalSearchElement.tsx +4 -3
- package/src/components/core/filter/SolidManyToOneFilterElement.tsx +1 -1
- package/src/components/core/form/SolidFormView.tsx +67 -69
- package/src/components/core/form/fields/ISolidField.tsx +2 -1
- package/src/components/core/form/fields/SolidBooleanField.tsx +3 -2
- package/src/components/core/form/fields/SolidDateField.tsx +3 -2
- package/src/components/core/form/fields/SolidDateTimeField.tsx +3 -2
- package/src/components/core/form/fields/SolidDecimalField.tsx +10 -2
- package/src/components/core/form/fields/SolidIntegerField.tsx +10 -2
- package/src/components/core/form/fields/SolidJsonField.tsx +3 -2
- package/src/components/core/form/fields/SolidLongTextField.tsx +3 -2
- package/src/components/core/form/fields/SolidMediaMultipleField.tsx +119 -97
- package/src/components/core/form/fields/SolidMediaSingleField.tsx +112 -125
- package/src/components/core/form/fields/SolidRichTextField.tsx +3 -2
- package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +3 -2
- package/src/components/core/form/fields/SolidSelectionStaticField.tsx +3 -2
- package/src/components/core/form/fields/SolidShortTextField.tsx +3 -2
- package/src/components/core/form/fields/SolidTimeField.tsx +3 -2
- package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +14 -7
- package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +7 -7
- package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +11 -7
- package/src/components/core/list/SolidListView.tsx +36 -55
- package/src/components/core/list/SolidManyToOneFilterElement.tsx +1 -1
- package/src/components/core/model/CreateModel.tsx +36 -27
- package/src/components/core/model/FieldMetaData.tsx +24 -24
- package/src/components/core/model/FieldMetaDataForm.tsx +45 -60
- package/src/components/core/model/ModelMetaData.tsx +7 -1
- package/src/components/core/module/CreateModule.tsx +24 -19
- package/src/components/core/users/CreateUser.tsx +15 -5
- package/src/components/layout/AppConfig.tsx +1 -1
- package/src/components/layout/AppSidebar.tsx +58 -23
- package/src/components/layout/navbar-two-menu.tsx +1 -1
- package/src/components/layout/user-profile-menu.tsx +18 -16
- package/src/declarations.d.ts +19 -0
- package/src/helpers/downloadMediaFile.tsx +19 -0
- package/src/helpers/getAcceptedFileTypes.tsx +22 -0
- package/src/helpers/permissions.ts +3 -0
- package/src/nextAuth/authProviders.tsx +3 -2
- package/src/redux/api/authApi.ts +2 -1
- package/src/redux/api/solidViewApi.ts +1 -0
- package/src/resources/globals.css +2551 -0
- package/src/resources/images/AvatarDemo.png +0 -0
- package/src/resources/images/Footerbg.png +0 -0
- package/src/resources/images/LoginBanner.png +0 -0
- package/src/resources/images/Navigation/Level.svg +5 -0
- package/src/resources/images/Navigation/Presure.svg +7 -0
- package/src/resources/images/Navigation/Temperature.svg +13 -0
- package/src/resources/images/Navigation/settings.png +0 -0
- package/src/resources/images/Profile/Avatar.png +0 -0
- package/src/resources/images/SS-Logo.png +0 -0
- package/src/resources/images/activity.svg +3 -0
- package/src/resources/images/app-builder.png +0 -0
- package/src/resources/images/auth/solid-left-layout-bg.png +0 -0
- package/src/resources/images/auth/solid-login-light.png +0 -0
- package/src/resources/images/auth/solid-right-layout-bg.png +0 -0
- package/src/resources/images/clog-wheel.png +0 -0
- package/src/resources/images/dark-mode.png +0 -0
- package/src/resources/images/dashboard/Ellipse 1.svg +10 -0
- package/src/resources/images/dashboard/Rectangle 17.svg +10 -0
- package/src/resources/images/dashboard/Rectangle 25.svg +11 -0
- package/src/resources/images/dashboard/image 5.svg +9 -0
- package/src/resources/images/eye-icon.png +0 -0
- package/src/resources/images/fb.svg +3 -0
- package/src/resources/images/fileReader/image-jpg.png +0 -0
- package/src/resources/images/filter-icon.png +0 -0
- package/src/resources/images/form/user.png +0 -0
- package/src/resources/images/iam.png +0 -0
- package/src/resources/images/icons/icon-activity.svg +3 -0
- package/src/resources/images/icons/icon-calender.svg +3 -0
- package/src/resources/images/icons/icon-graph.svg +3 -0
- package/src/resources/images/icons/icon-kanban.svg +3 -0
- package/src/resources/images/icons/icon-list.svg +3 -0
- package/src/resources/images/icons/icon-users.svg +3 -0
- package/src/resources/images/icons/jump-to-icon.png +0 -0
- package/src/resources/images/insta.svg +3 -0
- package/src/resources/images/layout/images/comfortable.png +0 -0
- package/src/resources/images/layout/images/compact.png +0 -0
- package/src/resources/images/layout/images/cozy.png +0 -0
- package/src/resources/images/layout/images/kanban.png +0 -0
- package/src/resources/images/li.svg +3 -0
- package/src/resources/images/loginhero.png +0 -0
- package/src/resources/images/logo.png +0 -0
- package/src/resources/images/mail-icon.png +0 -0
- package/src/resources/images/menu/app-builder.svg +19 -0
- package/src/resources/images/menu/iam.svg +14 -0
- package/src/resources/images/menu/logicloop-black.svg +28 -0
- package/src/resources/images/menu/logicloop-blue.svg +32 -0
- package/src/resources/images/menu/logicloop-white.svg +32 -0
- package/src/resources/images/menu/queues.svg +14 -0
- package/src/resources/images/menu/radix.svg +9 -0
- package/src/resources/images/menu/rl-lead-middleware.svg +19 -0
- package/src/resources/images/menu/solid-address-master.svg +10 -0
- package/src/resources/images/menu/srmd-tracker-black.svg +16 -0
- package/src/resources/images/menu/srmd-tracker-original.svg +32 -0
- package/src/resources/images/menu/srmd-tracker-white.svg +17 -0
- package/src/resources/images/menu/srmd-tracker.svg +16 -0
- package/src/resources/images/menu-icon.png +0 -0
- package/src/resources/images/menu-toggle.png +0 -0
- package/src/resources/images/password-icon.png +0 -0
- package/src/resources/images/profile.png +0 -0
- package/src/resources/images/radix-logo-white.png +0 -0
- package/src/resources/images/radix-logo.png +0 -0
- package/src/resources/images/search-icon.png +0 -0
- package/src/resources/images/signupBanner.png +0 -0
- package/src/resources/images/tw.svg +3 -0
- package/src/resources/images/user-icon.png +0 -0
- package/src/resources/stylesheets/_config.scss +54 -0
- package/src/resources/stylesheets/_content.scss +91 -0
- package/src/resources/stylesheets/_footer.scss +8 -0
- package/src/resources/stylesheets/_main.scss +47 -0
- package/src/resources/stylesheets/_menu.scss +185 -0
- package/src/resources/stylesheets/_mixins.scss +13 -0
- package/src/resources/stylesheets/_responsive.scss +99 -0
- package/src/resources/stylesheets/_topbar.scss +149 -0
- package/src/resources/stylesheets/_typography.scss +63 -0
- package/src/resources/stylesheets/_utils.scss +27 -0
- package/src/resources/stylesheets/_variables.scss +3 -0
- package/src/resources/stylesheets/layout.scss +11 -0
- 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
|
@@ -52,6 +52,7 @@ export class SolidDateTimeField implements ISolidField {
|
|
|
52
52
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
53
53
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
54
54
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
55
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
55
56
|
|
|
56
57
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
57
58
|
|
|
@@ -63,11 +64,11 @@ export class SolidDateTimeField implements ISolidField {
|
|
|
63
64
|
<div className="flex flex-column gap-2 mt-4">
|
|
64
65
|
{showFieldLabel != false &&
|
|
65
66
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
66
|
-
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
67
|
+
{/* {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
|
|
67
68
|
</label>
|
|
68
69
|
}
|
|
69
70
|
<Calendar
|
|
70
|
-
disabled={formDisabled || fieldDisabled}
|
|
71
|
+
disabled={formDisabled || fieldDisabled || readOnlyPermission}
|
|
71
72
|
ref={calendarRef} // Attach ref to Calendar
|
|
72
73
|
id={fieldLayoutInfo.attrs.name}
|
|
73
74
|
aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
|
|
@@ -41,6 +41,13 @@ export class SolidDecimalField implements ISolidField {
|
|
|
41
41
|
schema = schema.required(`${fieldLabel} is required.`);
|
|
42
42
|
} else {
|
|
43
43
|
schema = schema.nullable(); // Allow null when not required
|
|
44
|
+
}
|
|
45
|
+
// 2. length (min/max)
|
|
46
|
+
if (fieldMetadata.min && fieldMetadata.min > 0) {
|
|
47
|
+
schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);
|
|
48
|
+
}
|
|
49
|
+
if (fieldMetadata.max && fieldMetadata.max > 0) {
|
|
50
|
+
schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);
|
|
44
51
|
}
|
|
45
52
|
return schema;
|
|
46
53
|
}
|
|
@@ -53,6 +60,7 @@ export class SolidDecimalField implements ISolidField {
|
|
|
53
60
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
54
61
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
55
62
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
63
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
56
64
|
|
|
57
65
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
58
66
|
|
|
@@ -67,11 +75,11 @@ export class SolidDecimalField implements ISolidField {
|
|
|
67
75
|
<div className="flex flex-column gap-2 mt-4">
|
|
68
76
|
{showFieldLabel != false &&
|
|
69
77
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
70
|
-
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
78
|
+
{/* {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
|
|
71
79
|
</label>
|
|
72
80
|
}
|
|
73
81
|
<InputNumber
|
|
74
|
-
readOnly={formReadonly || fieldReadonly}
|
|
82
|
+
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
75
83
|
disabled={formDisabled || fieldDisabled}
|
|
76
84
|
id={fieldLayoutInfo.attrs.name}
|
|
77
85
|
minFractionDigits={2}
|
|
@@ -43,6 +43,13 @@ export class SolidIntegerField implements ISolidField {
|
|
|
43
43
|
} else {
|
|
44
44
|
schema = schema.nullable(); // Allow null when not required
|
|
45
45
|
}
|
|
46
|
+
// 2. length (min/max)
|
|
47
|
+
if (fieldMetadata.min && fieldMetadata.min > 0) {
|
|
48
|
+
schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);
|
|
49
|
+
}
|
|
50
|
+
if (fieldMetadata.max && fieldMetadata.max > 0) {
|
|
51
|
+
schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);
|
|
52
|
+
}
|
|
46
53
|
return schema;
|
|
47
54
|
}
|
|
48
55
|
|
|
@@ -54,6 +61,7 @@ export class SolidIntegerField implements ISolidField {
|
|
|
54
61
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
55
62
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
56
63
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
64
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
57
65
|
|
|
58
66
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
59
67
|
|
|
@@ -68,11 +76,11 @@ export class SolidIntegerField implements ISolidField {
|
|
|
68
76
|
<div className="flex flex-column gap-2 mt-4">
|
|
69
77
|
{showFieldLabel != false &&
|
|
70
78
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
71
|
-
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
79
|
+
{/* {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
|
|
72
80
|
</label>
|
|
73
81
|
}
|
|
74
82
|
<InputNumber
|
|
75
|
-
readOnly={formReadonly || fieldReadonly}
|
|
83
|
+
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
76
84
|
disabled={formDisabled || fieldDisabled}
|
|
77
85
|
id={fieldLayoutInfo.attrs.name}
|
|
78
86
|
aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
|
|
@@ -48,6 +48,7 @@ export class SolidJsonField implements ISolidField {
|
|
|
48
48
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
49
49
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
50
50
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
51
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
51
52
|
|
|
52
53
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
53
54
|
|
|
@@ -60,7 +61,7 @@ export class SolidJsonField implements ISolidField {
|
|
|
60
61
|
{showFieldLabel != false &&
|
|
61
62
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
62
63
|
|
|
63
|
-
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
64
|
+
{/* {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
|
|
64
65
|
</label>
|
|
65
66
|
}
|
|
66
67
|
<CodeEditor
|
|
@@ -68,7 +69,7 @@ export class SolidJsonField implements ISolidField {
|
|
|
68
69
|
field={fieldLayoutInfo.attrs.name}
|
|
69
70
|
height={fieldLayoutInfo.attrs?.height}
|
|
70
71
|
fontSize={fieldLayoutInfo.attrs?.fontSize}
|
|
71
|
-
readOnly={formReadonly || fieldReadonly}
|
|
72
|
+
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
72
73
|
>
|
|
73
74
|
</CodeEditor>
|
|
74
75
|
</div>
|
|
@@ -66,6 +66,7 @@ export class SolidLongTextField implements ISolidField {
|
|
|
66
66
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
67
67
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
68
68
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
69
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
69
70
|
|
|
70
71
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
71
72
|
|
|
@@ -80,11 +81,11 @@ export class SolidLongTextField implements ISolidField {
|
|
|
80
81
|
<div className="flex flex-column gap-2 mt-4">
|
|
81
82
|
{showFieldLabel != false &&
|
|
82
83
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
83
|
-
{fieldDescription && <span>({fieldDescription}) </span>}
|
|
84
|
+
{/* {fieldDescription && <span>({fieldDescription}) </span>} */}
|
|
84
85
|
</label>
|
|
85
86
|
}
|
|
86
87
|
<InputTextarea
|
|
87
|
-
readOnly={formReadonly || fieldReadonly}
|
|
88
|
+
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
88
89
|
disabled={formDisabled || fieldDisabled}
|
|
89
90
|
id={fieldLayoutInfo.attrs.name}
|
|
90
91
|
aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
|
|
@@ -12,6 +12,9 @@ import { Schema } from "yup";
|
|
|
12
12
|
import { FormikObject, ISolidField, SolidFieldProps } from "./ISolidField";
|
|
13
13
|
import { FileReaderExt } from "@/components/common/FileReaderExt";
|
|
14
14
|
import { ProgressBar } from "primereact/progressbar";
|
|
15
|
+
import getAcceptedFileTypes from "@/helpers/getAcceptedFileTypes";
|
|
16
|
+
import Link from "next/link";
|
|
17
|
+
import { downloadMediaFile } from "@/helpers/downloadMediaFile";
|
|
15
18
|
export class SolidMediaMultipleField implements ISolidField {
|
|
16
19
|
|
|
17
20
|
private fieldContext: SolidFieldProps;
|
|
@@ -94,17 +97,17 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
94
97
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
95
98
|
const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
|
|
96
99
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
100
|
+
const readOnlyPermission = this.fieldContext.readOnly;
|
|
97
101
|
|
|
98
|
-
const [imagesPreview, setImagesPreview] = useState<Array<string | ArrayBuffer>>([]);
|
|
99
102
|
const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
|
|
100
103
|
const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();
|
|
101
|
-
const [uploadProgress, setUploadProgress] = useState<Record<string, number>>({});
|
|
102
104
|
const [uploadCompleted, setUploadCompleted] = useState<Record<string, boolean>>({});
|
|
103
|
-
const [fileDetails, setFileDetails] = useState<{ name: string; type: string; size: number, id: number }[]>([]);
|
|
105
|
+
const [fileDetails, setFileDetails] = useState<{ name: string; type: string; size: number, id: number, fileUrl: string }[]>([]);
|
|
104
106
|
const [uploadedSize, setUploadedSize] = useState<Record<string, string>>({});
|
|
105
107
|
const [totalSize, setTotalSize] = useState<Record<string, string>>({});
|
|
106
108
|
const [selectedFileId, setSelectedFileId] = useState<string | null>(null);
|
|
107
109
|
|
|
110
|
+
|
|
108
111
|
const formatFileSize = (size: number) => {
|
|
109
112
|
return size >= 1024 * 1024
|
|
110
113
|
? `${(size / (1024 * 1024)).toFixed(1)} MB`
|
|
@@ -119,32 +122,29 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
119
122
|
const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
|
|
120
123
|
if (Array.isArray(fieldValue) && fieldValue.length > 0) {
|
|
121
124
|
const urls: string[] = [];
|
|
122
|
-
const details: { name: string; type: string; size: number, id: any }[] = [];
|
|
123
|
-
const progress: Record<string, number> = {};
|
|
125
|
+
const details: { name: string; type: string; size: number, id: any, fileUrl: string }[] = [];
|
|
124
126
|
const completed: Record<string, boolean> = {};
|
|
125
127
|
|
|
126
128
|
fieldValue.forEach((file: File | any) => {
|
|
127
129
|
if (file instanceof File) {
|
|
128
130
|
// New file (from local upload)
|
|
129
131
|
urls.push(URL.createObjectURL(file));
|
|
130
|
-
details.push({ name: file.name, type: file.type, size: file.size, id: `${file.name}-${file.size}`, });
|
|
132
|
+
details.push({ name: file.name, type: file.type, size: file.size, id: `${file.name}-${file.size}`, fileUrl: "" });
|
|
131
133
|
} else if (typeof file === "object" && file._full_url) {
|
|
132
134
|
urls.push(file._full_url);
|
|
133
135
|
details.push({
|
|
134
136
|
name: file.relativeUri || "Unknown", // Use relativeUri or fallback
|
|
135
137
|
type: file.mediaStorageProviderMetadata?.type || "Unknown", // Extract type if available
|
|
136
138
|
size: 0, // API doesn't provide size, set 0 or fetch from metadata if available
|
|
137
|
-
id: file.id
|
|
139
|
+
id: file.id,
|
|
140
|
+
fileUrl: file._full_url
|
|
138
141
|
});
|
|
139
142
|
}
|
|
140
143
|
});
|
|
141
144
|
details.forEach(file => {
|
|
142
|
-
progress[`${file.name}-${file.size}`] = 100;
|
|
143
145
|
completed[`${file.name}-${file.size}`] = true;
|
|
144
146
|
});
|
|
145
|
-
setUploadProgress(progress);
|
|
146
147
|
setUploadCompleted(completed);
|
|
147
|
-
setImagesPreview(urls);
|
|
148
148
|
setFileDetails(details);
|
|
149
149
|
}
|
|
150
150
|
}, [formik.values, fieldLayoutInfo.attrs.name]);
|
|
@@ -153,7 +153,6 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
153
153
|
if (!acceptedFiles.length) return;
|
|
154
154
|
|
|
155
155
|
const newFileDetails = [...fileDetails];
|
|
156
|
-
const newUploadProgress = { ...uploadProgress };
|
|
157
156
|
const newUploadedSize = { ...uploadedSize };
|
|
158
157
|
const newTotalSize = { ...totalSize };
|
|
159
158
|
const newUploadCompleted = { ...uploadCompleted };
|
|
@@ -161,8 +160,7 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
161
160
|
acceptedFiles.forEach((file) => {
|
|
162
161
|
const fileId = `${file.name}-${file.size}`; // Unique identifier for tracking each file
|
|
163
162
|
|
|
164
|
-
newFileDetails.push({ name: file.name, type: file.type, size: file.size, id: file.id });
|
|
165
|
-
newUploadProgress[fileId] = 0;
|
|
163
|
+
newFileDetails.push({ name: file.name, type: file.type, size: file.size, id: file.id, fileUrl: file._full_url });
|
|
166
164
|
newUploadedSize[fileId] = "0 KB";
|
|
167
165
|
newTotalSize[fileId] = formatFileSize(file.size);
|
|
168
166
|
newUploadCompleted[fileId] = false;
|
|
@@ -170,20 +168,16 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
170
168
|
const reader = new FileReader();
|
|
171
169
|
|
|
172
170
|
reader.onloadstart = () => {
|
|
173
|
-
setUploadProgress((prev) => ({ ...prev, [fileId]: 0 }));
|
|
174
171
|
setUploadedSize((prev) => ({ ...prev, [fileId]: "0 KB" }));
|
|
175
172
|
};
|
|
176
173
|
|
|
177
174
|
reader.onprogress = (event) => {
|
|
178
175
|
if (event.loaded && event.total) {
|
|
179
|
-
const percent = Math.round((event.loaded / event.total) * 100);
|
|
180
|
-
setUploadProgress((prev) => ({ ...prev, [fileId]: percent }));
|
|
181
176
|
setUploadedSize((prev) => ({ ...prev, [fileId]: formatFileSize(event.loaded) }));
|
|
182
177
|
}
|
|
183
178
|
};
|
|
184
179
|
|
|
185
180
|
reader.onloadend = () => {
|
|
186
|
-
setUploadProgress((prev) => ({ ...prev, [fileId]: 100 }));
|
|
187
181
|
setUploadCompleted((prev) => ({ ...prev, [fileId]: true }));
|
|
188
182
|
setUploadedSize((prev) => ({ ...prev, [fileId]: newTotalSize[fileId] }));
|
|
189
183
|
};
|
|
@@ -192,7 +186,6 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
192
186
|
});
|
|
193
187
|
|
|
194
188
|
setFileDetails(newFileDetails);
|
|
195
|
-
setUploadProgress(newUploadProgress);
|
|
196
189
|
setUploadedSize(newUploadedSize);
|
|
197
190
|
setTotalSize(newTotalSize);
|
|
198
191
|
setUploadCompleted(newUploadCompleted);
|
|
@@ -203,11 +196,6 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
203
196
|
|
|
204
197
|
const handleCancelUpload = (fileId: string) => {
|
|
205
198
|
setFileDetails((prev) => prev.filter((file) => fileId !== `${file.name}-${file.size}`));
|
|
206
|
-
setUploadProgress((prev) => {
|
|
207
|
-
const newProgress = { ...prev };
|
|
208
|
-
delete newProgress[fileId];
|
|
209
|
-
return newProgress;
|
|
210
|
-
});
|
|
211
199
|
setUploadCompleted((prev) => {
|
|
212
200
|
const newCompleted = { ...prev };
|
|
213
201
|
delete newCompleted[fileId];
|
|
@@ -234,51 +222,68 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
234
222
|
|
|
235
223
|
const deleteFile = () => {
|
|
236
224
|
if (selectedFileId && imageToBeDeletedData) {
|
|
237
|
-
|
|
238
|
-
|
|
225
|
+
// Remove file from UI before making API call
|
|
226
|
+
setFileDetails((prev) => prev.filter((file) => `${file.name}-${file.size}` !== selectedFileId));
|
|
227
|
+
|
|
228
|
+
deleteMedia(imageToBeDeletedData)
|
|
229
|
+
.unwrap()
|
|
230
|
+
.then(() => {
|
|
231
|
+
// Ensure UI state updates only after successful deletion
|
|
232
|
+
setUploadCompleted((prev) => {
|
|
233
|
+
const newCompleted = { ...prev };
|
|
234
|
+
delete newCompleted[selectedFileId];
|
|
235
|
+
return newCompleted;
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
setUploadedSize((prev) => {
|
|
239
|
+
const newSize = { ...prev };
|
|
240
|
+
delete newSize[selectedFileId];
|
|
241
|
+
return newSize;
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
setTotalSize((prev) => {
|
|
245
|
+
const newSize = { ...prev };
|
|
246
|
+
delete newSize[selectedFileId];
|
|
247
|
+
return newSize;
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// Update form state
|
|
251
|
+
formik.setFieldValue(
|
|
252
|
+
fieldLayoutInfo.attrs.name,
|
|
253
|
+
fileDetails.filter((file) => `${file.name}-${file.size}` !== selectedFileId)
|
|
254
|
+
);
|
|
255
|
+
})
|
|
256
|
+
.catch((error) => {
|
|
257
|
+
console.error("Error deleting file:", error);
|
|
258
|
+
});
|
|
259
|
+
|
|
239
260
|
setDeleteImageDialogVisible(false);
|
|
240
|
-
setShowAllFiles(false)
|
|
261
|
+
setShowAllFiles(false);
|
|
241
262
|
setSelectedFileId(null);
|
|
242
263
|
}
|
|
243
264
|
};
|
|
244
265
|
|
|
266
|
+
|
|
245
267
|
const {
|
|
246
268
|
getRootProps,
|
|
247
269
|
getInputProps,
|
|
248
270
|
isDragActive,
|
|
249
271
|
} = useDropzone({
|
|
250
272
|
onDrop: handleDropImages,
|
|
251
|
-
accept:
|
|
252
|
-
|
|
253
|
-
"image/png": [],
|
|
254
|
-
},
|
|
255
|
-
maxSize: 2 * 1024 * 1024, // 2MB
|
|
273
|
+
accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
|
|
274
|
+
maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
|
|
256
275
|
});
|
|
257
276
|
|
|
258
277
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
259
278
|
|
|
260
|
-
|
|
261
|
-
const imageFormatHandler = (preview: any) => {
|
|
262
|
-
if (typeof preview === 'string') {
|
|
263
|
-
return preview; // Existing URLs
|
|
264
|
-
}
|
|
265
|
-
if (preview instanceof File) {
|
|
266
|
-
return URL.createObjectURL(preview); // Generate preview URL for File
|
|
267
|
-
}
|
|
268
|
-
if (typeof preview === "object") {
|
|
269
|
-
return preview._full_url
|
|
270
|
-
}
|
|
271
|
-
return ""; // Fallback for invalid cases
|
|
272
|
-
}
|
|
273
|
-
|
|
274
279
|
const [isShowAllFiles, setShowAllFiles] = useState(false);
|
|
275
280
|
return (
|
|
276
|
-
<div className={className}>
|
|
281
|
+
<div className={className} style={readOnlyPermission === true ? { filter: 'opacity(50%)', pointerEvents: 'none' } : {}}>
|
|
277
282
|
<div className="flex flex-column gap-2 mt-4">
|
|
278
283
|
{showFieldLabel != false &&
|
|
279
284
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
280
285
|
|
|
281
|
-
{fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
|
|
286
|
+
{/* {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
|
|
282
287
|
</label>
|
|
283
288
|
}
|
|
284
289
|
<div
|
|
@@ -286,7 +291,10 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
286
291
|
className="solid-dropzone-wrapper"
|
|
287
292
|
>
|
|
288
293
|
<input {...getInputProps()} />
|
|
289
|
-
<DropzonePlaceholder
|
|
294
|
+
<DropzonePlaceholder
|
|
295
|
+
mediaTypes={fieldMetadata.mediaTypes}
|
|
296
|
+
mediaMaxSizeKb={fieldMetadata.mediaMaxSizeKb}
|
|
297
|
+
/>
|
|
290
298
|
</div>
|
|
291
299
|
</div>
|
|
292
300
|
{fileDetails.length > 0 &&
|
|
@@ -295,17 +303,39 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
295
303
|
<FileReaderExt fileDetails={fileDetails[0]} />
|
|
296
304
|
<div className="w-full flex flex-column gap-1">
|
|
297
305
|
<div className="flex align-items-center justify-content-between">
|
|
298
|
-
<
|
|
299
|
-
<div
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
+
<Link className="font-normal w-11" href={process.env.NEXT_PUBLIC_BACKEND_API_URL + `/${fileDetails[0]?.fileUrl}`} target="_blank">{fileDetails[0].name}</Link>
|
|
307
|
+
<div className="flex align-items-center gap-2">
|
|
308
|
+
<div>
|
|
309
|
+
<Button
|
|
310
|
+
type="button"
|
|
311
|
+
text
|
|
312
|
+
icon={"pi pi-download"}
|
|
313
|
+
size="small"
|
|
314
|
+
style={{
|
|
315
|
+
height: 16,
|
|
316
|
+
width: 16
|
|
317
|
+
}}
|
|
318
|
+
onClick={() => downloadMediaFile(fileDetails[0]?.fileUrl, fileDetails[0]?.name)}
|
|
319
|
+
/>
|
|
320
|
+
</div>
|
|
321
|
+
<div>
|
|
322
|
+
<Button
|
|
323
|
+
type="button"
|
|
324
|
+
text
|
|
325
|
+
icon={"pi pi-times"}
|
|
326
|
+
size="small"
|
|
327
|
+
severity="secondary"
|
|
328
|
+
// className="p-2"
|
|
329
|
+
style={{
|
|
330
|
+
height: 16,
|
|
331
|
+
width: 16
|
|
332
|
+
}}
|
|
333
|
+
onClick={() => confirmDeleteFile(`${fileDetails[0].name}-${fileDetails[0].size}`, fileDetails[0].id)}
|
|
334
|
+
/>
|
|
335
|
+
</div>
|
|
306
336
|
</div>
|
|
307
337
|
</div>
|
|
308
|
-
{uploadCompleted[`${fileDetails[0].name}-${fileDetails[0].size}`]
|
|
338
|
+
{uploadCompleted[`${fileDetails[0].name}-${fileDetails[0].size}`] && (
|
|
309
339
|
<div className="flex align-items-center gap-2 text-sm">
|
|
310
340
|
{totalSize[`${fileDetails[0].name}-${fileDetails[0].size}`]} of {totalSize[`${fileDetails[0].name}-${fileDetails[0].size}`]}
|
|
311
341
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
@@ -313,26 +343,13 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
313
343
|
</svg>
|
|
314
344
|
Completed
|
|
315
345
|
</div>
|
|
316
|
-
) : (
|
|
317
|
-
<div className="flex align-items-center gap-2 text-sm">
|
|
318
|
-
{uploadedSize[`${fileDetails[0].name}-${fileDetails[0].size}`]} of {totalSize[`${fileDetails[0].name}-${fileDetails[0].size}`]}
|
|
319
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
320
|
-
<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" />
|
|
321
|
-
</svg>
|
|
322
|
-
Uploading {uploadProgress[`${fileDetails[0].name}-${fileDetails[0].size}`]}% Completed
|
|
323
|
-
</div>
|
|
324
346
|
)}
|
|
325
347
|
</div>
|
|
326
348
|
</div>
|
|
327
|
-
<ProgressBar
|
|
328
|
-
value={uploadProgress[`${fileDetails[0].name}-${fileDetails[0].size}`]}
|
|
329
|
-
showValue={false}
|
|
330
|
-
style={{ height: 4 }}
|
|
331
|
-
className="mt-2"
|
|
332
|
-
/>
|
|
333
349
|
</div>
|
|
334
350
|
}
|
|
335
351
|
|
|
352
|
+
|
|
336
353
|
{fileDetails.length > 1 &&
|
|
337
354
|
<div className="flex align-items-center">
|
|
338
355
|
<p className="m-0">
|
|
@@ -360,17 +377,39 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
360
377
|
<FileReaderExt fileDetails={file} />
|
|
361
378
|
<div className="w-full flex flex-column gap-1">
|
|
362
379
|
<div className="flex align-items-center justify-content-between">
|
|
363
|
-
<
|
|
364
|
-
<div
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
380
|
+
<Link className="font-normal w-11" href={process.env.NEXT_PUBLIC_BACKEND_API_URL + `/${file?.fileUrl}`} target="_blank">{file.name}</Link>
|
|
381
|
+
<div className="flex align-items-center gap-2">
|
|
382
|
+
<div>
|
|
383
|
+
<Button
|
|
384
|
+
type="button"
|
|
385
|
+
text
|
|
386
|
+
icon={"pi pi-download"}
|
|
387
|
+
size="small"
|
|
388
|
+
style={{
|
|
389
|
+
height: 16,
|
|
390
|
+
width: 16
|
|
391
|
+
}}
|
|
392
|
+
onClick={() => downloadMediaFile(file?.fileUrl, file?.name)}
|
|
393
|
+
/>
|
|
394
|
+
</div>
|
|
395
|
+
<div>
|
|
396
|
+
<Button
|
|
397
|
+
type="button"
|
|
398
|
+
text
|
|
399
|
+
icon={"pi pi-times"}
|
|
400
|
+
size="small"
|
|
401
|
+
severity="secondary"
|
|
402
|
+
// className="p-2"
|
|
403
|
+
style={{
|
|
404
|
+
height: 16,
|
|
405
|
+
width: 16
|
|
406
|
+
}}
|
|
407
|
+
onClick={() => confirmDeleteFile(fileId, file?.id)}
|
|
408
|
+
/>
|
|
409
|
+
</div>
|
|
371
410
|
</div>
|
|
372
411
|
</div>
|
|
373
|
-
{uploadCompleted[fileId]
|
|
412
|
+
{uploadCompleted[fileId] && (
|
|
374
413
|
<div className="flex align-items-center gap-2 text-sm">
|
|
375
414
|
{totalSize[fileId]} of {totalSize[fileId]}
|
|
376
415
|
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
@@ -381,26 +420,9 @@ export class SolidMediaMultipleField implements ISolidField {
|
|
|
381
420
|
</svg>
|
|
382
421
|
Completed
|
|
383
422
|
</div>
|
|
384
|
-
) : (
|
|
385
|
-
<div className="flex align-items-center gap-2 text-sm">
|
|
386
|
-
{uploadedSize[fileId]} of {totalSize[fileId]}
|
|
387
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
|
|
388
|
-
<circle cx="2" cy="2" r="2" fill="#C1C1C1" />
|
|
389
|
-
</svg>
|
|
390
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
391
|
-
<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" />
|
|
392
|
-
</svg>
|
|
393
|
-
Uploading {uploadProgress[fileId]}% Completed
|
|
394
|
-
</div>
|
|
395
423
|
)}
|
|
396
424
|
</div>
|
|
397
425
|
</div>
|
|
398
|
-
<ProgressBar
|
|
399
|
-
value={uploadProgress[fileId]}
|
|
400
|
-
showValue={false}
|
|
401
|
-
style={{ height: 4 }}
|
|
402
|
-
className="mt-2"
|
|
403
|
-
/>
|
|
404
426
|
</div>
|
|
405
427
|
);
|
|
406
428
|
})
|