@solidxai/core-ui 0.1.8-beta.1 → 0.1.8-beta.15
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.js +1 -1
- package/dist/components/Svg/FileSvg.js.map +1 -1
- package/dist/components/Svg/FileSvg.tsx +1 -1
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +94 -38
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +49 -39
- package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
- package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
- package/dist/components/auth/AuthSettingsContext.js +49 -0
- package/dist/components/auth/AuthSettingsContext.js.map +1 -0
- package/dist/components/auth/AuthSettingsContext.tsx +19 -0
- package/dist/components/auth/AuthTabs.d.ts.map +1 -1
- package/dist/components/auth/AuthTabs.js +9 -9
- package/dist/components/auth/AuthTabs.js.map +1 -1
- package/dist/components/auth/AuthTabs.tsx +14 -15
- package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +3 -7
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +3 -7
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +4 -7
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -5
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +4 -7
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -5
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +5 -8
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +5 -6
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +9 -12
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +21 -11
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +2 -6
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +2 -6
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +48 -51
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +8 -25
- package/dist/components/common/SolidAdmin.js +1 -1
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +1 -1
- package/dist/components/common/SolidFormStepper.js +1 -1
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +1 -1
- package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
- package/dist/components/common/SolidThemeProvider.js +5 -21
- package/dist/components/common/SolidThemeProvider.js.map +1 -1
- package/dist/components/common/SolidThemeProvider.tsx +6 -24
- package/dist/components/common/solidModuleHome.module.css +1 -2
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +1 -1
- package/dist/components/core/chatter/chatter.module.css +7 -7
- package/dist/components/core/common/PDFViewer.js +1 -1
- package/dist/components/core/common/PDFViewer.js.map +1 -1
- package/dist/components/core/common/PDFViewer.tsx +2 -2
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +3 -4
- package/dist/components/core/common/SolidGlobalSearchElement.js +3 -3
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +3 -3
- package/dist/components/core/common/dndCompat.d.ts +8 -0
- package/dist/components/core/common/dndCompat.d.ts.map +1 -0
- package/dist/components/core/common/dndCompat.js +5 -0
- package/dist/components/core/common/dndCompat.js.map +1 -0
- package/dist/components/core/common/dndCompat.ts +9 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +2 -2
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +2 -2
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +2 -2
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +2 -2
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +1 -1
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +1 -1
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +1 -1
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +1 -1
- package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts +7 -0
- package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js +75 -0
- package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +45 -0
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +4 -0
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +12 -0
- package/dist/components/core/form/SolidFormView.js +42 -41
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +16 -16
- package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.js +8 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.tsx +8 -2
- package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js +5 -4
- package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
- package/dist/components/core/form/fields/SolidEmailField.tsx +17 -15
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +5 -4
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +23 -17
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +11 -6
- package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +29 -24
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +13 -8
- 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/SolidShortTextField.tsx +7 -1
- package/dist/components/core/form/fields/SolidTimeField.js +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
- package/dist/components/core/form/fields/solidFields.module.css +0 -3
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +1 -1
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +2 -2
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +4 -3
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +3 -3
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +42 -45
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +17 -26
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +4 -3
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +13 -12
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +6 -4
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +5 -12
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +29 -49
- package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
- package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
- package/dist/components/core/module/CreateModule.js +1 -1
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.module.css +3 -3
- package/dist/components/core/tree/SolidTreeView.js +1 -1
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +283 -9
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +35 -28
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +64 -62
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +4 -4
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +17 -10
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +2 -19
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +24 -43
- package/dist/components/core/users/CreateUser.css +114 -0
- package/dist/components/core/users/CreateUser.d.ts +1 -0
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +4 -3
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +32 -26
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +25 -1
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +38 -1
- package/dist/components/layout/context/layoutcontext.js +2 -2
- package/dist/components/layout/context/layoutcontext.js.map +1 -1
- package/dist/components/layout/context/layoutcontext.tsx +2 -2
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
- package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts +6 -1
- package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidConfirmDialog.js +3 -3
- package/dist/components/shad-cn-ui/SolidConfirmDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidConfirmDialog.tsx +15 -3
- package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.js +12 -2
- package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.tsx +13 -2
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +5 -2
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +51 -25
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +2 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +5 -0
- package/dist/resources/globals.css +104 -84
- package/dist/resources/images/Background.svg +5 -1
- package/dist/resources/images/Navigation/SolidSettinsIcon.svg +7 -1
- package/dist/resources/images/errors/error.svg +14 -10
- package/dist/resources/shadcn-base.css +120 -354
- package/dist/resources/themes/solid-dark-purple/theme.css +26 -36
- package/dist/resources/themes/solid-light-purple/theme.css +129 -129
- package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -1
- package/dist/routes/SolidLayoutRegistry.js +3 -1
- package/dist/routes/SolidLayoutRegistry.js.map +1 -1
- package/dist/routes/SolidLayoutRegistry.tsx +3 -1
- package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
- package/dist/routes/guards/AuthGuard.js +4 -1
- package/dist/routes/guards/AuthGuard.js.map +1 -1
- package/dist/routes/guards/AuthGuard.tsx +6 -1
- package/dist/types/solid-core.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidKanbanView.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { DropResult } from \"@hello-pangea/dnd\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport KanbanBoard from \"./KanbanBoard\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidKanbanViewConfigure } from \"./SolidKanbanViewConfigure\";\nimport { KanbanUserViewLayout } from \"./KanbanUserViewLayout\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setFilterObjectToLocalStorage, getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\n\ntype SolidKanbanViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\n\nexport const SolidKanbanView = (params: SolidKanbanViewParams) => {\n\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch()\n\n const solidGlobalSearchElementRef = useRef();\n const router = useRouter();\n const searchParams = useSearchParams();\n // TODO: The initial filter state will be created based on the fields which are present on this kanban view. \n const [filters, setFilters] = useState<any>();\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n const [showArchived, setShowArchived] = useState(false);\n const sizeOptions = [\n { label: 'Compact', value: 'small', image: CompactImage },\n { label: 'Cozy', value: 'normal', image: CozyImage },\n { label: 'Comfortable', value: 'large', image: ComfortableImage }\n ]\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n const [groupByFieldName, setGroupByFieldName] = useState<string>(\"\");\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [filterQueryString, setFilterQueryString] = useState<any>();\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const pushFiltersToRouter = (filterQueryString: any) => {\n // @ts-ignore\n router.push(`?${filterQueryString}`, undefined, { shallow: true });\n };\n\n useEffect(() => {\n if (filterQueryString) {\n pushFiltersToRouter(filterQueryString);\n }\n }, [filterQueryString]);\n\n\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useDeleteMultipleSolidEntitiesMutation,\n useLazyGetSolidEntitiesQuery,\n usePatchUpdateSolidEntityMutation\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n // Get the kanban view layout & metadata first. \n const kanbanViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"kanban\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});\n\n const {\n data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);\n\n\n\n const initialFilterMethod = () => {\n\n const solidView = solidKanbanViewMetaData.data.solidView;\n const solidFieldsMetadata = solidKanbanViewMetaData.data.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n function findCardNode(nodes: any[] = []): any {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n }\n function extractFields(nodes: any, result: any = []) {\n if (!nodes) return result;\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (nodes.children) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n }\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView.layout;\n const layoutFields = extractFields(fieldSource);\n\n for (let i = 0; i < layoutFields.length; i++) {\n const column = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (fieldMetadata) {\n\n // Form the initial filters after iterating over the columns and field metadata. \n if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata.type)) {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }\n }\n\n if (column.attrs.name === 'id') {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n\n // Form the \"toPopulate\" array. \n if (fieldMetadata.type === 'relation') {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n\n // setFilters(initialFilters);\n const recordsInSwimlane = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane : 10;\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n // setRecordsInSwimlane(recordsInSwimlane);\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n return { recordsInSwimlane, toPopulate, toPopulateMedia }\n }\n\n\n // Initial Filter data \n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n setKanbanViewMetaData(solidKanbanViewMetaData);\n setViewModes(solidKanbanViewMetaData?.data?.viewModes);\n setGroupByFieldName(solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy || \"\");\n }\n }, [solidKanbanViewMetaData]);\n\n // All kanban view state.\n const [kanbanViewData, setKanbanViewData] = useState<any>([]);\n const [kanbanLoadMoreData, setKanbanLoadMoreData] = useState<any>({});\n const [recordsInSwimlane, setRecordsInSwimlane] = useState(10);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n const [columnsCount, setColumnsCount] = useState(5);\n const [swimLaneCurrentPageNumber, setSwimLaneCurrentPageNumber] = useState(1);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [maxSwimLanesCount, setMaxSwimLanesCount] = useState<number>(0);\n const pathname = usePathname();\n // @ts-ignore\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n // Get the kanban view data.\n // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();\n const [triggerGetSolidEntities, { data: solidEntityKanbanViewData }] = useLazyGetSolidEntitiesQuery();\n\n // Delete mutation \n const [\n deleteManySolidEntities,\n {\n isLoading: isDeleteSolidEntitiesLoading,\n isSuccess: isDeleteSolidEntitiesSucess,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n const [\n patchKanbanView,\n {\n isLoading: isPatchKanbanViewLoading,\n },\n ] = usePatchUpdateSolidEntityMutation();\n\n // After data is fetched populate the kanban view state so as to be able to render the data. \n useEffect(() => {\n if (solidEntityKanbanViewData) {\n // Merge groupRecords by groupName: update existing, add new\n setMaxSwimLanesCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);\n const groupRecords = solidEntityKanbanViewData?.groupRecords || [];\n const groupMap = new Map((kanbanViewData || []).map((g: any) => [g.groupName, g]));\n groupRecords.forEach((newGroup: any) => {\n groupMap.set(newGroup.groupName, newGroup);\n });\n const latestKanbanGroupData = Array.from(groupMap.values());\n setKanbanViewData(latestKanbanGroupData);\n const loadmoredata = Object.entries(latestKanbanGroupData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n\n setKanbanLoadMoreData(loadmoredata)\n setLoading(false);\n }\n }, [solidEntityKanbanViewData]);\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const kanbanViewLayoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs;\n const createActionUrl = kanbanViewLayoutAttrs?.createAction && kanbanViewLayoutAttrs?.createAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = kanbanViewLayoutAttrs?.editAction && kanbanViewLayoutAttrs?.editAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (kanbanViewLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: kanbanViewLayoutAttrs.createAction.name,\n actionType: kanbanViewLayoutAttrs.createAction.type,\n actionContext: kanbanViewLayoutAttrs.createAction.context,\n });\n }\n if (kanbanViewLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: kanbanViewLayoutAttrs.editAction.name,\n actionType: kanbanViewLayoutAttrs.editAction.type,\n actionContext: kanbanViewLayoutAttrs.editAction.context,\n });\n }\n\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n if (groupByFieldName) {\n\n const queryObject = getFilterObjectFromLocalStorage();\n let queryString = \"\";\n if (queryObject) {\n const filters = {\n $and: []\n }\n if (queryObject.custom_filter_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.custom_filter_predicate);\n }\n if (queryObject.search_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.search_predicate);\n }\n // if (queryObject.saved_filter_predicate) {\n // filters.$and.push(queryObject.saved_filter_predicate);\n // }\n // if (queryObject.predefined_search_predicate) {\n // filters.$and.push(queryObject.predefined_search_predicate);\n // }\n\n const queryData = {\n offset: 0,\n limit: Number(queryObject.limit) + Number(queryObject.offset),\n // fields: queryObject.fields || [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: queryObject.groupBy || groupByFieldName,\n // @ts-ignore\n populateMedia: queryObject.populateMedia || toPopulateMedia,\n populateGroup: queryObject.populateGroup || true,\n groupFilter: {\n limit: Number(queryObject.groupFilter.limit) + Number(queryObject.groupFilter.offset) || kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane,\n offset: 0,\n filters: filters,\n // @ts-ignore\n populate: queryObject.groupFilter.populate || toPopulate,\n // @ts-ignore\n populateMedia: queryObject.groupFilter.populateMedia || toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n\n\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setRecordsInSwimlane(recordsInSwimlane);\n // setFilters(filters);\n setQueryDataLoaded(true);\n\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n } else {\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane || 10,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n setRecordsInSwimlane(recordsInSwimlane);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n setQueryDataLoaded(true)\n }\n\n // triggerGetSolidEntities(queryString);\n setSelectedRecords([]);\n }\n }\n }, [isDeleteSolidEntitiesSucess, groupByFieldName, solidKanbanViewMetaData]);\n\n // clickable link allowing one to open the detail / form view.\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList);\n setDialogVisible(false);\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n }\n\n\n // Individual Swimlane Load More\n const handleLoadMore = async (groupByField: string) => {\n const { offset, limit } = kanbanLoadMoreData[groupByField];\n kanbanLoadMoreData[groupByField].offset = offset + limit;\n try {\n const queryData = {\n offset: offset + limit,\n limit: limit,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n filters: {\n [groupByFieldName]: {\n $in: [groupByField],\n },\n ...filters\n }\n }\n\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n // router.push(`?${queryString}`);\n const data: any = await triggerGetSolidEntities(queryString);\n const newRecords = data.data.records;\n const mergeData = (\n kanbanViewData: any[],\n newRecords: any[],\n groupByField: string\n ) => {\n // Find the group matching the specified groupByField\n const originalData = structuredClone(kanbanViewData);\n const targetGroup = originalData.find(\n (group: any) => group.groupName === groupByField\n );\n if (targetGroup) {\n const { groupData } = targetGroup;\n\n if (targetGroup.groupData) {\n // Extract existing records\n const existingRecords = targetGroup.groupData.records;\n const updatedRecords = [...existingRecords, ...newRecords];\n targetGroup.groupData.records = updatedRecords\n\n\n // Update the meta data (you can adjust this logic as needed)\n groupData.meta.prevPage = groupData.meta.currentPage\n groupData.meta.currentPage = groupData.meta.currentPage + 1\n groupData.meta.nextPage = groupData.meta.currentPage + 1\n }\n }\n return originalData;\n };\n\n\n const updatedData = mergeData(kanbanViewData, newRecords, groupByField);\n setKanbanViewData(updatedData);\n const loadmoredata = Object.entries(updatedData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n setKanbanLoadMoreData(loadmoredata)\n\n } catch (error) {\n console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error);\n }\n };\n\n\n // Handle drag-and-drop functionality\n // @ts-ignore\n const onDragEnd = async (result: DropResult): void => {\n const { source, destination } = result;\n if (!destination) return;\n\n const sourceGroupName = source.droppableId;\n const destinationGroupName = destination.droppableId;\n\n // Find the source and destination groups\n const sourceGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === sourceGroupName);\n const destinationGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === destinationGroupName);\n\n if (sourceGroupIndex === -1 || destinationGroupIndex === -1) return;\n\n // If dragging within the same group\n if (sourceGroupName === destinationGroupName) {\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n const updatedRecords = [...group.groupData.records];\n const [movedItem] = updatedRecords.splice(source.index, 1); // Remove the item\n updatedRecords.splice(destination.index, 0, movedItem); // Insert at the new position\n\n return {\n ...group,\n groupData: {\n ...group.groupData,\n records: updatedRecords,\n },\n };\n }\n return group;\n })\n );\n return;\n }\n\n // Deep clone the source and destination groups\n const sourceGroup = JSON.parse(JSON.stringify(kanbanViewData[sourceGroupIndex]));\n const destinationGroup = JSON.parse(JSON.stringify(kanbanViewData[destinationGroupIndex]));\n\n // Clone the records for immutability\n const sourceRecords = [...sourceGroup.groupData.records];\n const destinationRecords = [...destinationGroup.groupData.records];\n\n // Remove the item from the source\n const [movedItem] = sourceRecords.splice(source.index, 1);\n\n // Create a mutable copy of the moved item\n const updatedItem = { ...movedItem, status: destinationGroupName };\n\n // Add the updated item to the destination\n destinationRecords.splice(destination.index, 0, updatedItem);\n\n // Update the group data\n sourceGroup.groupData.records = sourceRecords;\n destinationGroup.groupData.records = destinationRecords;\n\n // Update the kanbanViewData state\n const oldkanbanViewData = structuredClone(kanbanViewData);\n try {\n const formData = new FormData();\n formData.append(groupByFieldName, destinationGroupName);\n // Update the kanbanViewData state\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n return sourceGroup;\n }\n if (group.groupName === destinationGroupName) {\n return destinationGroup;\n }\n return group;\n })\n );\n const kanbanUpdateResponse = await patchKanbanView({ id: +movedItem.id, data: formData }).unwrap();\n\n if (kanbanUpdateResponse?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.IS_SUCCESS, detail: ERROR_MESSAGES.KANBAN_UPDATED }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DUPLICATE_KEY, detail: kanbanUpdateResponse?.error }));\n // Update the kanbanViewData state\n setKanbanViewData(oldkanbanViewData);\n }\n } catch (error: any) {\n // 6. Handle 500 or network errors\n console.error(ERROR_MESSAGES.API_ERROR, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n setKanbanViewData(oldkanbanViewData);\n }\n };\n\n\n // Handle SwimLane Pagination\n const handleSwimLanePagination = async () => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const queryData = {\n offset: swimLaneCurrentPageNumber * swimlanesCount,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populate: toPopulate,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n\n }\n // sort: [`id:desc`],\n };\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n const data: any = await triggerGetSolidEntities(queryString);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...kanbanViewData, ...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)\n }\n }\n\n\n // Handle the custom filter and Search Filter\n const handleApplyCustomFilter = async (filterPredicates: any, persistFilter: boolean = false) => {\n\n if (solidKanbanViewMetaData) {\n const queryfilter = {\n $and: [\n ]\n }\n\n if (filterPredicates.custom_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n const customFilter = filterPredicates;\n const updatedFilter = { ...(filters || {}), ...(queryfilter || {}) };\n\n // Then update state\n setFilters(updatedFilter);\n\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n // const { toPopulate, toPopulateMedia } = initialFilterMethod();\n\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: updatedFilter,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // s_filter and c_filter format that needs to be passed to the router\n // only present if handleCustomFilter is applied\n if (customFilter) {\n const urlData = structuredClone(queryData);\n // @ts-ignore\n delete urlData.filters;\n // urlData.s_filter = customFilter.s_filter || {};\n // urlData.c_filter = customFilter.c_filter || {};\n // @ts-ignore\n urlData.custom_filter_predicate = customFilter.custom_filter_predicate || {};\n // @ts-ignore\n urlData.search_predicate = customFilter.search_predicate || {};\n // @ts-ignore\n setFilterObjectToLocalStorage(urlData);\n }\n\n\n const data: any = await triggerGetSolidEntities(queryString);\n\n // Update the kanban view data with the new data based on filter\n setSwimLaneCurrentPageNumber(1);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSelectedRecords([]);\n\n\n }\n\n }\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : \"form\";\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName\n const headerRequestStatusLabel =\n isDeleteSolidEntitiesLoading\n ? \"Deleting...\"\n : isPatchKanbanViewLoading\n ? \"Updating...\"\n : loading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex flex-column flex-grow-1\">\n <div className=\"solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full solid-list-toolbar-row\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n }\n\n <p className=\"m-0 view-title solid-text-wrapper\">{kanbanViewTitle}</p>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n }\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&\n <SolidCreateButton createButtonUrl={createButtonUrl} createActionQueryParams={createActionQueryParams} responsiveIconOnly={true} />\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.delete !== false && selectedRecords.length > 0 && <SolidButton\n type=\"button\"\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => setDialogVisible(true)}\n >\n Delete\n </SolidButton>}\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => {\n window.location.reload()\n }}\n aria-label=\"Refresh board\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n <SolidKanbanViewConfigure\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={() => window.location.reload()}\n />\n </div>\n </div>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true && showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n )}\n </div>\n\n <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>\n {solidKanbanViewMetaData && kanbanViewData &&\n <KanbanBoard groupByFieldName={groupByFieldName} kanbanViewData={kanbanViewData} maxSwimLanesCount={maxSwimLanesCount} solidKanbanViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLanePagination={handleSwimLanePagination} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editBaseUrl}></KanbanBoard>\n }\n </div>\n </div>\n\n <SolidDialog\n open={isDialogVisible}\n onOpenChange={(open) => {\n if (!open) {\n onDeleteClose();\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Confirm Delete</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to delete the selected records?</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions\">\n <SolidButton variant=\"destructive\" size=\"sm\" autoFocus onClick={deleteBulk}>\n Delete\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={onDeleteClose}>\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Kanban Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <KanbanUserViewLayout solidKanbanViewMetaData={solidKanbanViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SolidKanbanView.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { DropResult } from \"@hello-pangea/dnd\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport KanbanBoard from \"./KanbanBoard\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidKanbanViewConfigure } from \"./SolidKanbanViewConfigure\";\nimport { KanbanUserViewLayout } from \"./KanbanUserViewLayout\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setFilterObjectToLocalStorage, getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\n\ntype SolidKanbanViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\n\nexport const SolidKanbanView = (params: SolidKanbanViewParams) => {\n\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch()\n\n const solidGlobalSearchElementRef = useRef();\n const router = useRouter();\n const searchParams = useSearchParams();\n // TODO: The initial filter state will be created based on the fields which are present on this kanban view. \n const [filters, setFilters] = useState<any>();\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n const [showArchived, setShowArchived] = useState(false);\n const sizeOptions = [\n { label: 'Compact', value: 'small', image: CompactImage },\n { label: 'Cozy', value: 'normal', image: CozyImage },\n { label: 'Comfortable', value: 'large', image: ComfortableImage }\n ]\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n const [groupByFieldName, setGroupByFieldName] = useState<string>(\"\");\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [filterQueryString, setFilterQueryString] = useState<any>();\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const pushFiltersToRouter = (filterQueryString: any) => {\n // @ts-ignore\n router.push(`?${filterQueryString}`, undefined, { shallow: true });\n };\n\n useEffect(() => {\n if (filterQueryString) {\n pushFiltersToRouter(filterQueryString);\n }\n }, [filterQueryString]);\n\n\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useDeleteMultipleSolidEntitiesMutation,\n useLazyGetSolidEntitiesQuery,\n usePatchUpdateSolidEntityMutation\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n // Get the kanban view layout & metadata first. \n const kanbanViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"kanban\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});\n\n const {\n data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);\n\n\n\n const initialFilterMethod = () => {\n\n const solidView = solidKanbanViewMetaData.data.solidView;\n const solidFieldsMetadata = solidKanbanViewMetaData.data.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n function findCardNode(nodes: any[] = []): any {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n }\n function extractFields(nodes: any, result: any = []) {\n if (!nodes) return result;\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (nodes.children) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n }\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView.layout;\n const layoutFields = extractFields(fieldSource);\n\n for (let i = 0; i < layoutFields.length; i++) {\n const column = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (fieldMetadata) {\n\n // Form the initial filters after iterating over the columns and field metadata. \n if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata.type)) {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }\n }\n\n if (column.attrs.name === 'id') {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n\n // Form the \"toPopulate\" array. \n if (fieldMetadata.type === 'relation') {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n\n // setFilters(initialFilters);\n const recordsInSwimlane = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane : 10;\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n // setRecordsInSwimlane(recordsInSwimlane);\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n return { recordsInSwimlane, toPopulate, toPopulateMedia }\n }\n\n\n // Initial Filter data \n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n setKanbanViewMetaData(solidKanbanViewMetaData);\n setViewModes(solidKanbanViewMetaData?.data?.viewModes);\n setGroupByFieldName(solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy || \"\");\n }\n }, [solidKanbanViewMetaData]);\n\n // All kanban view state.\n const [kanbanViewData, setKanbanViewData] = useState<any>([]);\n const [kanbanLoadMoreData, setKanbanLoadMoreData] = useState<any>({});\n const [recordsInSwimlane, setRecordsInSwimlane] = useState(10);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n const [columnsCount, setColumnsCount] = useState(5);\n const [swimLaneCurrentPageNumber, setSwimLaneCurrentPageNumber] = useState(1);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [maxSwimLanesCount, setMaxSwimLanesCount] = useState<number>(0);\n const pathname = usePathname();\n // @ts-ignore\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n // Get the kanban view data.\n // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();\n const [triggerGetSolidEntities, { data: solidEntityKanbanViewData }] = useLazyGetSolidEntitiesQuery();\n\n // Delete mutation \n const [\n deleteManySolidEntities,\n {\n isLoading: isDeleteSolidEntitiesLoading,\n isSuccess: isDeleteSolidEntitiesSucess,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n const [\n patchKanbanView,\n {\n isLoading: isPatchKanbanViewLoading,\n },\n ] = usePatchUpdateSolidEntityMutation();\n\n // After data is fetched populate the kanban view state so as to be able to render the data. \n useEffect(() => {\n if (solidEntityKanbanViewData) {\n // Merge groupRecords by groupName: update existing, add new\n setMaxSwimLanesCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);\n const groupRecords = solidEntityKanbanViewData?.groupRecords || [];\n const groupMap = new Map((kanbanViewData || []).map((g: any) => [g.groupName, g]));\n groupRecords.forEach((newGroup: any) => {\n groupMap.set(newGroup.groupName, newGroup);\n });\n const latestKanbanGroupData = Array.from(groupMap.values());\n setKanbanViewData(latestKanbanGroupData);\n const loadmoredata = Object.entries(latestKanbanGroupData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n\n setKanbanLoadMoreData(loadmoredata)\n setLoading(false);\n }\n }, [solidEntityKanbanViewData]);\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const kanbanViewLayoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs;\n const createActionUrl = kanbanViewLayoutAttrs?.createAction && kanbanViewLayoutAttrs?.createAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = kanbanViewLayoutAttrs?.editAction && kanbanViewLayoutAttrs?.editAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (kanbanViewLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: kanbanViewLayoutAttrs.createAction.name,\n actionType: kanbanViewLayoutAttrs.createAction.type,\n actionContext: kanbanViewLayoutAttrs.createAction.context,\n });\n }\n if (kanbanViewLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: kanbanViewLayoutAttrs.editAction.name,\n actionType: kanbanViewLayoutAttrs.editAction.type,\n actionContext: kanbanViewLayoutAttrs.editAction.context,\n });\n }\n\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n if (groupByFieldName) {\n\n const queryObject = getFilterObjectFromLocalStorage();\n let queryString = \"\";\n if (queryObject) {\n const filters = {\n $and: []\n }\n if (queryObject.custom_filter_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.custom_filter_predicate);\n }\n if (queryObject.search_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.search_predicate);\n }\n // if (queryObject.saved_filter_predicate) {\n // filters.$and.push(queryObject.saved_filter_predicate);\n // }\n // if (queryObject.predefined_search_predicate) {\n // filters.$and.push(queryObject.predefined_search_predicate);\n // }\n\n const queryData = {\n offset: 0,\n limit: Number(queryObject.limit) + Number(queryObject.offset),\n // fields: queryObject.fields || [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: queryObject.groupBy || groupByFieldName,\n // @ts-ignore\n populateMedia: queryObject.populateMedia || toPopulateMedia,\n populateGroup: queryObject.populateGroup || true,\n groupFilter: {\n limit: Number(queryObject.groupFilter.limit) + Number(queryObject.groupFilter.offset) || kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane,\n offset: 0,\n filters: filters,\n // @ts-ignore\n populate: queryObject.groupFilter.populate || toPopulate,\n // @ts-ignore\n populateMedia: queryObject.groupFilter.populateMedia || toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n\n\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setRecordsInSwimlane(recordsInSwimlane);\n // setFilters(filters);\n setQueryDataLoaded(true);\n\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n } else {\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane || 10,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n setRecordsInSwimlane(recordsInSwimlane);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n setQueryDataLoaded(true)\n }\n\n // triggerGetSolidEntities(queryString);\n setSelectedRecords([]);\n }\n }\n }, [isDeleteSolidEntitiesSucess, groupByFieldName, solidKanbanViewMetaData]);\n\n // clickable link allowing one to open the detail / form view.\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList);\n setDialogVisible(false);\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n }\n\n\n // Individual Swimlane Load More\n const handleLoadMore = async (groupByField: string) => {\n const { offset, limit } = kanbanLoadMoreData[groupByField];\n kanbanLoadMoreData[groupByField].offset = offset + limit;\n try {\n const queryData = {\n offset: offset + limit,\n limit: limit,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n filters: {\n [groupByFieldName]: {\n $in: [groupByField],\n },\n ...filters\n }\n }\n\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n // router.push(`?${queryString}`);\n const data: any = await triggerGetSolidEntities(queryString);\n const newRecords = data.data.records;\n const mergeData = (\n kanbanViewData: any[],\n newRecords: any[],\n groupByField: string\n ) => {\n // Find the group matching the specified groupByField\n const originalData = structuredClone(kanbanViewData);\n const targetGroup = originalData.find(\n (group: any) => group.groupName === groupByField\n );\n if (targetGroup) {\n const { groupData } = targetGroup;\n\n if (targetGroup.groupData) {\n // Extract existing records\n const existingRecords = targetGroup.groupData.records;\n const updatedRecords = [...existingRecords, ...newRecords];\n targetGroup.groupData.records = updatedRecords\n\n\n // Update the meta data (you can adjust this logic as needed)\n groupData.meta.prevPage = groupData.meta.currentPage\n groupData.meta.currentPage = groupData.meta.currentPage + 1\n groupData.meta.nextPage = groupData.meta.currentPage + 1\n }\n }\n return originalData;\n };\n\n\n const updatedData = mergeData(kanbanViewData, newRecords, groupByField);\n setKanbanViewData(updatedData);\n const loadmoredata = Object.entries(updatedData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n setKanbanLoadMoreData(loadmoredata)\n\n } catch (error) {\n console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error);\n }\n };\n\n\n // Handle drag-and-drop functionality\n // @ts-ignore\n const onDragEnd = async (result: DropResult): void => {\n const { source, destination } = result;\n if (!destination) return;\n\n const sourceGroupName = source.droppableId;\n const destinationGroupName = destination.droppableId;\n\n // Find the source and destination groups\n const sourceGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === sourceGroupName);\n const destinationGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === destinationGroupName);\n\n if (sourceGroupIndex === -1 || destinationGroupIndex === -1) return;\n\n // If dragging within the same group\n if (sourceGroupName === destinationGroupName) {\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n const updatedRecords = [...group.groupData.records];\n const [movedItem] = updatedRecords.splice(source.index, 1); // Remove the item\n updatedRecords.splice(destination.index, 0, movedItem); // Insert at the new position\n\n return {\n ...group,\n groupData: {\n ...group.groupData,\n records: updatedRecords,\n },\n };\n }\n return group;\n })\n );\n return;\n }\n\n // Deep clone the source and destination groups\n const sourceGroup = JSON.parse(JSON.stringify(kanbanViewData[sourceGroupIndex]));\n const destinationGroup = JSON.parse(JSON.stringify(kanbanViewData[destinationGroupIndex]));\n\n // Clone the records for immutability\n const sourceRecords = [...sourceGroup.groupData.records];\n const destinationRecords = [...destinationGroup.groupData.records];\n\n // Remove the item from the source\n const [movedItem] = sourceRecords.splice(source.index, 1);\n\n // Create a mutable copy of the moved item\n const updatedItem = { ...movedItem, status: destinationGroupName };\n\n // Add the updated item to the destination\n destinationRecords.splice(destination.index, 0, updatedItem);\n\n // Update the group data\n sourceGroup.groupData.records = sourceRecords;\n destinationGroup.groupData.records = destinationRecords;\n\n // Update the kanbanViewData state\n const oldkanbanViewData = structuredClone(kanbanViewData);\n try {\n const formData = new FormData();\n formData.append(groupByFieldName, destinationGroupName);\n // Update the kanbanViewData state\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n return sourceGroup;\n }\n if (group.groupName === destinationGroupName) {\n return destinationGroup;\n }\n return group;\n })\n );\n const kanbanUpdateResponse = await patchKanbanView({ id: +movedItem.id, data: formData }).unwrap();\n\n if (kanbanUpdateResponse?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.IS_SUCCESS, detail: ERROR_MESSAGES.KANBAN_UPDATED }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DUPLICATE_KEY, detail: kanbanUpdateResponse?.error }));\n // Update the kanbanViewData state\n setKanbanViewData(oldkanbanViewData);\n }\n } catch (error: any) {\n // 6. Handle 500 or network errors\n console.error(ERROR_MESSAGES.API_ERROR, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n setKanbanViewData(oldkanbanViewData);\n }\n };\n\n\n // Handle SwimLane Pagination\n const handleSwimLanePagination = async () => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const queryData = {\n offset: swimLaneCurrentPageNumber * swimlanesCount,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populate: toPopulate,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n\n }\n // sort: [`id:desc`],\n };\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n const data: any = await triggerGetSolidEntities(queryString);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...kanbanViewData, ...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)\n }\n }\n\n\n // Handle the custom filter and Search Filter\n const handleApplyCustomFilter = async (filterPredicates: any, persistFilter: boolean = false) => {\n\n if (solidKanbanViewMetaData) {\n const queryfilter = {\n $and: [\n ]\n }\n\n if (filterPredicates.custom_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n const customFilter = filterPredicates;\n const updatedFilter = { ...(filters || {}), ...(queryfilter || {}) };\n\n // Then update state\n setFilters(updatedFilter);\n\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n // const { toPopulate, toPopulateMedia } = initialFilterMethod();\n\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: updatedFilter,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // s_filter and c_filter format that needs to be passed to the router\n // only present if handleCustomFilter is applied\n if (customFilter) {\n const urlData = structuredClone(queryData);\n // @ts-ignore\n delete urlData.filters;\n // urlData.s_filter = customFilter.s_filter || {};\n // urlData.c_filter = customFilter.c_filter || {};\n // @ts-ignore\n urlData.custom_filter_predicate = customFilter.custom_filter_predicate || {};\n // @ts-ignore\n urlData.search_predicate = customFilter.search_predicate || {};\n // @ts-ignore\n setFilterObjectToLocalStorage(urlData);\n }\n\n\n const data: any = await triggerGetSolidEntities(queryString);\n\n // Update the kanban view data with the new data based on filter\n setSwimLaneCurrentPageNumber(1);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSelectedRecords([]);\n\n\n }\n\n }\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : \"form\";\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName\n const entityDisplayName =\n solidKanbanViewMetaData?.data?.solidView?.model?.displayName || params.modelName;\n const headerRequestStatusLabel =\n isDeleteSolidEntitiesLoading\n ? \"Deleting...\"\n : isPatchKanbanViewLoading\n ? \"Updating...\"\n : loading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex flex-column flex-grow-1\">\n <div className=\"solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n }\n\n <p className=\"m-0 view-title solid-text-wrapper\">{kanbanViewTitle}</p>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n }\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&\n <SolidCreateButton createButtonUrl={createButtonUrl} createActionQueryParams={createActionQueryParams} responsiveIconOnly={true} />\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.delete !== false && selectedRecords.length > 0 && <SolidButton\n type=\"button\"\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => setDialogVisible(true)}\n >\n Delete\n </SolidButton>}\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => {\n window.location.reload()\n }}\n aria-label=\"Refresh board\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n <SolidKanbanViewConfigure\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={() => window.location.reload()}\n />\n </div>\n </div>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true && showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n )}\n </div>\n\n <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>\n {solidKanbanViewMetaData && kanbanViewData &&\n <KanbanBoard groupByFieldName={groupByFieldName} kanbanViewData={kanbanViewData} maxSwimLanesCount={maxSwimLanesCount} solidKanbanViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLanePagination={handleSwimLanePagination} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editBaseUrl}></KanbanBoard>\n }\n </div>\n </div>\n\n <SolidConfirmDialog\n open={isDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={deleteBulk}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete the selected ${entityDisplayName} records?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Kanban Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <KanbanUserViewLayout solidKanbanViewMetaData={solidKanbanViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
|
|
@@ -28,10 +28,10 @@ import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
|
28
28
|
import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus";
|
|
29
29
|
import {
|
|
30
30
|
SolidButton,
|
|
31
|
+
SolidConfirmDialog,
|
|
31
32
|
SolidDialog,
|
|
32
33
|
SolidDialogBody,
|
|
33
34
|
SolidDialogClose,
|
|
34
|
-
SolidDialogFooter,
|
|
35
35
|
SolidDialogHeader,
|
|
36
36
|
SolidDialogSeparator,
|
|
37
37
|
SolidDialogTitle,
|
|
@@ -780,6 +780,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
780
780
|
}, [solidKanbanViewMetaData])
|
|
781
781
|
|
|
782
782
|
const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName
|
|
783
|
+
const entityDisplayName =
|
|
784
|
+
solidKanbanViewMetaData?.data?.solidView?.model?.displayName || params.modelName;
|
|
783
785
|
const headerRequestStatusLabel =
|
|
784
786
|
isDeleteSolidEntitiesLoading
|
|
785
787
|
? "Deleting..."
|
|
@@ -803,7 +805,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
803
805
|
<div className="solid-list-content h-full flex flex-column flex-grow-1">
|
|
804
806
|
<div className="solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0">
|
|
805
807
|
<div className="page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row">
|
|
806
|
-
<div className="flex justify-content-between w-full
|
|
808
|
+
<div className="flex justify-content-between w-full">
|
|
807
809
|
<div className="flex gap-3 align-items-center w-full solid-list-toolbar-left">
|
|
808
810
|
{params.embeded !== true &&
|
|
809
811
|
<div className="apps-icon block md:hidden cursor-pointer" onClick={toggleBothSidebars}>
|
|
@@ -884,32 +886,21 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
884
886
|
</div>
|
|
885
887
|
</div>
|
|
886
888
|
|
|
887
|
-
<
|
|
889
|
+
<SolidConfirmDialog
|
|
888
890
|
open={isDialogVisible}
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
onDeleteClose();
|
|
892
|
-
}
|
|
893
|
-
}}
|
|
891
|
+
onCancel={onDeleteClose}
|
|
892
|
+
onConfirm={deleteBulk}
|
|
894
893
|
className="solid-shadcn-confirm-dialog solid-delete-confirm-dialog"
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
<
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
<SolidButton variant="destructive" size="sm" autoFocus onClick={deleteBulk}>
|
|
906
|
-
Delete
|
|
907
|
-
</SolidButton>
|
|
908
|
-
<SolidButton variant="outline" size="sm" onClick={onDeleteClose}>
|
|
909
|
-
Cancel
|
|
910
|
-
</SolidButton>
|
|
911
|
-
</SolidDialogFooter>
|
|
912
|
-
</SolidDialog>
|
|
894
|
+
headerClassName="solid-shadcn-dialog-head"
|
|
895
|
+
bodyClassName="solid-shadcn-dialog-body"
|
|
896
|
+
footerClassName="solid-shadcn-dialog-actions"
|
|
897
|
+
separatorClassName="solid-shadcn-dialog-sep"
|
|
898
|
+
showSeparator
|
|
899
|
+
title={`Delete ${entityDisplayName}`}
|
|
900
|
+
message={<p className="solid-shadcn-dialog-text">{`Are you sure you want to delete the selected ${entityDisplayName} records?`}</p>}
|
|
901
|
+
confirmLabel="Delete"
|
|
902
|
+
cancelLabel="Cancel"
|
|
903
|
+
/>
|
|
913
904
|
{openLightbox && (
|
|
914
905
|
<SolidLightbox
|
|
915
906
|
open={openLightbox}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,uBAAuB,kCAAmC,GAAG,wDAuMzE,CAAA"}
|
|
@@ -59,10 +59,11 @@ import { useFormik } from 'formik';
|
|
|
59
59
|
import { useState } from 'react';
|
|
60
60
|
import { useDispatch } from 'react-redux';
|
|
61
61
|
import { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';
|
|
62
|
-
import { DragDropContext
|
|
62
|
+
import { DragDropContext } from '@hello-pangea/dnd';
|
|
63
63
|
import styles from './SolidListColumnSelector.module.css';
|
|
64
64
|
import { ERROR_MESSAGES } from '../../../../constants/error-messages';
|
|
65
65
|
import { showToast } from '../../../../redux/features/toastSlice';
|
|
66
|
+
import { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';
|
|
66
67
|
export var SolidListColumnSelector = function (_a) {
|
|
67
68
|
var _b, _c;
|
|
68
69
|
var listViewMetaData = _a.listViewMetaData, onClose = _a.onClose;
|
|
@@ -190,12 +191,12 @@ export var SolidListColumnSelector = function (_a) {
|
|
|
190
191
|
reordered.splice(result.destination.index, 0, moved);
|
|
191
192
|
setFields(reordered);
|
|
192
193
|
};
|
|
193
|
-
return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(
|
|
194
|
+
return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(CompatibleDroppable, { droppableId: "columns", children: function (provided) { return (_jsxs("div", __assign({}, provided.droppableProps, { ref: provided.innerRef, className: "flex flex-column cogwheel-column-filter px-0 ".concat(isDragging ? styles.SolidColumnDragContextActive : ''), style: { maxHeight: 400, overflowY: 'auto' }, children: [fields.map(function (column, index) { return (_jsx(CompatibleDraggable, { draggableId: column.key, index: index, children: function (provided, snapshot) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps, { className: "flex align-items-center justify-content-between gap-3 px-2 py-2 ".concat(snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''), style: __assign({}, provided.draggableProps.style), children: [_jsxs("label", { htmlFor: column.key, className: 'solid-column-selector-item-main', children: [_jsx("input", { id: column.key, type: "checkbox", name: "selectedColumns", className: "solid-column-selector-checkbox", checked: formik.values.selectedColumns.some(function (item) { return item.key === column.key; }), onChange: function () {
|
|
194
195
|
var isChecked = formik.values.selectedColumns.some(function (item) { return item.key === column.key; });
|
|
195
196
|
formik.setFieldValue("selectedColumns", isChecked
|
|
196
197
|
? formik.values.selectedColumns.filter(function (item) { return item.key !== column.key; })
|
|
197
198
|
: __spreadArray(__spreadArray([], formik.values.selectedColumns, true), [column], false));
|
|
198
|
-
} }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), provided.placeholder] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
|
|
199
|
+
} }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), asCompatibleReactNode(provided.placeholder)] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
|
|
199
200
|
};
|
|
200
201
|
var DragActive = function (_a) {
|
|
201
202
|
var active = _a.active;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, Droppable, Draggable, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n \n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType ===\"selectionStatic\" || fieldType ===\"selectionDynamic\";\n \n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n \n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <Droppable droppableId=\"columns\">\n {(provided): React.ReactElement => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <Draggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): React.ReactElement => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n\n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType === \"selectionStatic\" || fieldType === \"selectionDynamic\";\n\n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n\n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <CompatibleDroppable droppableId=\"columns\">\n {(provided): any => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <CompatibleDraggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): any => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </CompatibleDraggable>\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n </div>\n )}\n </CompatibleDroppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
|