@solidxai/core-ui 0.1.9-beta.17 → 0.1.9-beta.18

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.
Files changed (107) hide show
  1. package/dist/components/auth/SolidLogin.js +2 -2
  2. package/dist/components/auth/SolidLogin.js.map +1 -1
  3. package/dist/components/auth/SolidLogin.tsx +2 -2
  4. package/dist/components/auth/SolidRegister.js +1 -1
  5. package/dist/components/auth/SolidRegister.js.map +1 -1
  6. package/dist/components/auth/SolidRegister.tsx +1 -1
  7. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  8. package/dist/components/common/SettingsComponent.js +3 -0
  9. package/dist/components/common/SettingsComponent.js.map +1 -1
  10. package/dist/components/common/SettingsComponent.tsx +3 -0
  11. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  12. package/dist/components/common/SocialMediaLogin.js +1 -1
  13. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  14. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  15. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  16. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  17. package/dist/components/common/SolidFaviconProvider.js +102 -0
  18. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  19. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  20. package/dist/components/core/card/SolidCardView.js +1 -1
  21. package/dist/components/core/card/SolidCardView.js.map +1 -1
  22. package/dist/components/core/card/SolidCardView.tsx +1 -1
  23. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  24. package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
  25. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  26. package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
  27. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  28. package/dist/components/core/common/FilterComponent.js +4 -2
  29. package/dist/components/core/common/FilterComponent.js.map +1 -1
  30. package/dist/components/core/common/FilterComponent.tsx +5 -2
  31. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  32. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  33. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  34. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  35. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  36. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  37. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  38. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  39. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  40. package/dist/components/core/form/SolidFormView.js +1 -1
  41. package/dist/components/core/form/SolidFormView.js.map +1 -1
  42. package/dist/components/core/form/SolidFormView.tsx +1 -1
  43. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  44. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  45. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  46. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  47. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  48. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  49. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  50. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  51. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  52. package/dist/components/core/list/SolidListView.js +28 -19
  53. package/dist/components/core/list/SolidListView.js.map +1 -1
  54. package/dist/components/core/list/SolidListView.tsx +25 -15
  55. package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
  56. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  57. package/dist/components/core/list/SolidListViewColumn.js +27 -0
  58. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  59. package/dist/components/core/list/SolidListViewColumn.tsx +13 -0
  60. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  61. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  62. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  63. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  64. package/dist/components/core/list/SolidListViewHeaderButton.js +6 -3
  65. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  66. package/dist/components/core/list/SolidListViewHeaderButton.tsx +10 -7
  67. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  68. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +16 -7
  69. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  70. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +17 -6
  71. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  72. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  73. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  74. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  75. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  76. package/dist/components/layout/AdminTopHeader.js +1 -1
  77. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  78. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  79. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  80. package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
  81. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  82. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
  83. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  84. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  85. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  86. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  87. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  88. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  89. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  90. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  91. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  92. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  93. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  94. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  95. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  96. package/dist/helpers/buttonPresentation.d.ts +24 -0
  97. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  98. package/dist/helpers/buttonPresentation.js +28 -0
  99. package/dist/helpers/buttonPresentation.js.map +1 -0
  100. package/dist/helpers/buttonPresentation.ts +53 -0
  101. package/dist/index.d.ts +1 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +1 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.ts +1 -0
  106. package/dist/resources/shadcn-base.css +24 -4
  107. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.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 qs from \"qs\";\nimport { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage } from \"../list/SolidListView\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const 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\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(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?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\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 return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\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 entityApi = createSolidEntityApi(params.modelName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const nextRows = Number(event.target.value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\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\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setSolidCardViewMetaData(solidCardViewMetaDataResponse);\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n useEffect(() => {\n const fetchCards = async () => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters,\n };\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n fetchCards();\n }, [queryDataLoaded, first, rows, toPopulate, toPopulateMedia, filters, solidCardViewMetaDataResponse]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n setQueryDataLoaded((current) => !current);\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = loading || !queryDataLoaded ? \"Loading...\" : null;\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-card-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-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 <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p>\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\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 {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <select\n value={rows}\n onChange={handleRowsChange}\n className=\"solid-paginator-select\"\n >\n {rowsOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\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 Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.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 qs from \"qs\";\nimport { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage } from \"../list/SolidListView\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const 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\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(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?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\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 return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\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 entityApi = createSolidEntityApi(params.modelName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const nextRows = Number(event.target.value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\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\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setSolidCardViewMetaData(solidCardViewMetaDataResponse);\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n useEffect(() => {\n const fetchCards = async () => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters,\n };\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n fetchCards();\n }, [queryDataLoaded, first, rows, toPopulate, toPopulateMedia, filters, solidCardViewMetaDataResponse]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n setQueryDataLoaded((current) => !current);\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = loading || !queryDataLoaded ? \"Loading...\" : null;\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 way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-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 <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p>\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\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 {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <select\n value={rows}\n onChange={handleRowsChange}\n className=\"solid-paginator-select\"\n >\n {rowsOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\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 Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
@@ -347,7 +347,7 @@ export const SolidCardView = (params: SolidCardViewParams) => {
347
347
 
348
348
  return (
349
349
  <div className="page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden">
350
- <div className="solid-list-content h-full flex flex-column flex-grow-1">
350
+ <div className="solid-list-content h-full flex way to flex-grow-1">
351
351
  <div className="solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0">
352
352
  <div className="page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row">
353
353
  <div className="flex justify-content-between w-full">
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CA2K/H,CAAA"}
1
+ {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CA6K/H,CAAA"}
@@ -99,6 +99,7 @@ export var SolidMessageComposer = function (_a) {
99
99
  _a.sent();
100
100
  setMessage('');
101
101
  setSelectedFiles([]);
102
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
102
103
  return [3 /*break*/, 4];
103
104
  case 3:
104
105
  error_1 = _a.sent();
@@ -120,7 +121,7 @@ export var SolidMessageComposer = function (_a) {
120
121
  ? "".concat((size / (1024 * 1024)).toFixed(1), " MB")
121
122
  : "".concat((size / 1024).toFixed(1), " KB");
122
123
  };
123
- return (_jsxs("form", { className: styles.chatterMessageComposer, onSubmit: handleSubmit, children: [_jsxs("div", { className: "".concat(styles.solidMessageWrapper, " flex flex-column gap-2 w-full"), children: [_jsx("div", { className: 'flex align-items-center justify-content-between', children: _jsx("p", { className: 'form-field-label m-0', children: type === 'email' ? 'Email Message' : 'Internal Note' }) }), _jsx(SolidTextarea, { value: message, onChange: function (e) { return setMessage(e.target.value); }, placeholder: type === 'email' ? 'Send a message to followers' : 'Log an internal note.', className: "w-full p-2", rows: 4 }), _jsxs("div", { className: 'flex align-items-center justify-content-between flex-wrap gap-2', children: [_jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx("input", { type: "file", ref: fileInputRef, onChange: handleFileSelect, multiple: true, style: { display: 'none' } }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", leftIcon: _jsx(Paperclip, { size: 14 }), onClick: function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, "aria-label": "Attach files", title: "Attach files" }), _jsx("span", { className: 'text-xs text-color-secondary', children: "Attach file" })] }), _jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx(SolidButton, { type: 'submit', size: 'sm', className: 'gap-2 solid-purple-button', variant: 'primary', loading: isLoading, children: type === 'email' ? 'Send' : 'Log' }), _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'ghost', onClick: function () {
124
+ return (_jsxs("form", { className: styles.chatterMessageComposer, onSubmit: handleSubmit, children: [_jsxs("div", { className: "".concat(styles.solidMessageWrapper, " flex flex-column gap-2 w-full"), children: [_jsx("div", { className: 'flex align-items-center justify-content-between', children: _jsx("p", { className: 'form-field-label m-0', children: type === 'email' ? 'Email Message' : 'Internal Note' }) }), _jsx(SolidTextarea, { value: message, onChange: function (e) { return setMessage(e.target.value); }, placeholder: type === 'email' ? 'Send a message to followers' : 'Log an internal note.', className: "w-full p-2", rows: 4 }), _jsxs("div", { className: 'flex align-items-center justify-content-between flex-wrap gap-2', children: [_jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx("input", { type: "file", ref: fileInputRef, onChange: handleFileSelect, multiple: true, style: { display: 'none' } }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", leftIcon: _jsx(Paperclip, { size: 14 }), onClick: function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, "aria-label": "Attach files", title: "Attach files" }), _jsx("span", { className: 'text-xs text-color-secondary', children: "Attach file" })] }), _jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx(SolidButton, { type: 'submit', size: 'sm', className: 'gap-2 solid-purple-button', variant: 'primary', loading: isLoading, disabled: !message.trim() && selectedFiles.length === 0, children: type === 'email' ? 'Send' : 'Log' }), _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'ghost', onClick: function () {
124
125
  setMessage('');
125
126
  setSelectedFiles([]);
126
127
  onCancel === null || onCancel === void 0 ? void 0 : onCancel();
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './chatter.module.css'\nimport { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { useSession } from '../../../hooks/useSession'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();\n\n const tempEmails = [\n \"johndoe@gmal.com\",\n \"tempmail@gmail.com\",\n \"example@mail.com\"\n ]\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageType', \"custom\");\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n formData.append('userId', user?.id || 1);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file, index) => {\n formData.append(`messageAttachments`, file);\n });\n\n await createChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='flex align-items-center gap-1 text-sm mb-2'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-primary ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-column gap-2 w-full`}>\n <div className='flex align-items-center justify-content-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex align-items-center justify-content-between flex-wrap gap-2'>\n <div className='flex align-items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex align-items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './chatter.module.css'\nimport { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { useSession } from '../../../hooks/useSession'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();\n\n const tempEmails = [\n \"johndoe@gmal.com\",\n \"tempmail@gmail.com\",\n \"example@mail.com\"\n ]\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageType', \"custom\");\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n formData.append('userId', user?.id || 1);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file, index) => {\n formData.append(`messageAttachments`, file);\n });\n\n await createChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='flex align-items-center gap-1 text-sm mb-2'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-primary ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-column gap-2 w-full`}>\n <div className='flex align-items-center justify-content-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex align-items-center justify-content-between flex-wrap gap-2'>\n <div className='flex align-items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex align-items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n disabled={!message.trim() && selectedFiles.length === 0}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
@@ -60,6 +60,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
60
60
  await createChatterMessage(formData).unwrap();
61
61
  setMessage('');
62
62
  setSelectedFiles([]);
63
+ onCancel?.();
63
64
  } catch (error) {
64
65
  console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);
65
66
  }
@@ -142,6 +143,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
142
143
  className='gap-2 solid-purple-button'
143
144
  variant='primary'
144
145
  loading={isLoading}
146
+ disabled={!message.trim() && selectedFiles.length === 0}
145
147
  >
146
148
  {type === 'email' ? 'Send' : 'Log'}
147
149
  </SolidButton>
@@ -1 +1 @@
1
- {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAmKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAsKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -89,7 +89,7 @@ var FilterRuleComponent = function (_a) {
89
89
  });
90
90
  setFilteredFields(filtered);
91
91
  };
92
- return (_jsxs("div", { className: 'solid-filter-rule-row', children: [_jsxs("div", { className: 'solid-filter-rule-main', children: [_jsx("div", { className: 'solid-filter-rule-field', children: _jsx("div", { className: 'solid-filter-control-wrap', children: _jsx(SolidAutocomplete, { value: fieldName.name, suggestions: filteredFields, completeMethod: searchFields, field: "name", dropdown: true, forceSelection // only values from list
92
+ return (_jsxs("div", { className: 'solid-filter-rule-row', children: [_jsxs("div", { className: 'solid-filter-rule-main', children: [_jsx("div", { className: 'solid-filter-rule-field', children: _jsx("div", { className: 'solid-filter-control-wrap', children: _jsx(SolidAutocomplete, { value: fieldName.name, suggestions: filteredFields, completeMethod: searchFields, field: "name", dropdown: true, portal: true, forceSelection // only values from list
93
93
  : true, placeholder: "Select Field", className: "w-full solid-filter-auto-complete-field solid-filter-compact-control", onChange: function (e) {
94
94
  setFieldName({ name: e.value }); // e.value will be an object or null
95
95
  if (e.value && typeof e.value === "object" && e.value.value) {
@@ -97,10 +97,12 @@ var FilterRuleComponent = function (_a) {
97
97
  }
98
98
  else {
99
99
  onChange(rule.id, 'fieldName', '');
100
+ onChange(rule.id, 'matchMode', null);
101
+ onChange(rule.id, 'value', '');
100
102
  }
101
103
  } }) }) }), _jsx("div", { className: 'solid-filter-rule-value', children: _jsx("div", { className: 'solid-filter-control-wrap', children: rule.fieldName ?
102
104
  _jsx(SolidFilterFields, { viewData: viewData, fieldMetadata: viewData.data.solidFieldsMetadata[rule.fieldName], onChange: onChange, index: rule.id, rule: rule })
103
- : _jsxs("div", { className: 'solid-filter-empty-pair', children: [_jsx(SolidInput, { disabled: true, value: rule.value || '', placeholder: "Operator", className: 'w-full solid-filter-compact-control' }), _jsx(SolidInput, { disabled: true, value: rule.value || '', placeholder: "Value", className: 'w-full solid-filter-compact-control' })] }) }) })] }), _jsxs("div", { className: 'solid-filter-rule-actions', children: [_jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddRule(rule.parentRule); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(Plus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddGroup(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(FolderPlus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onDelete(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn is-danger', children: _jsx(Trash2, { size: 14 }) })] }), rule.children && rule.children.map(function (nestedRule) { return (_jsx("div", { className: 'nested-custom-filter', children: nestedRule.type === FilterRuleType.RULE
105
+ : _jsxs("div", { className: 'solid-filter-empty-pair', children: [_jsx(SolidInput, { disabled: true, value: "", placeholder: "Operator", className: 'w-full solid-filter-compact-control' }), _jsx(SolidInput, { disabled: true, value: "", placeholder: "Value", className: 'w-full solid-filter-compact-control' })] }) }) })] }), _jsxs("div", { className: 'solid-filter-rule-actions', children: [_jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddRule(rule.parentRule); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(Plus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddGroup(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(FolderPlus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onDelete(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn is-danger', children: _jsx(Trash2, { size: 14 }) })] }), rule.children && rule.children.map(function (nestedRule) { return (_jsx("div", { className: 'nested-custom-filter', children: nestedRule.type === FilterRuleType.RULE
104
106
  ? _jsx(FilterRuleComponent, { viewData: viewData, fields: fields, rule: nestedRule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, nestedRule.id)
105
107
  : _jsx(FilterGroupComponent, { viewData: viewData, fields: fields, group: nestedRule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, nestedRule.id) }, nestedRule.id)); })] }));
106
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterComponent.js","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAA6B,MAAM,2BAA2B,CAAC;AAEvF,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,2BAAS,CAAA;AACX,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAkBD,4BAA4B;AAC5B,sCAAsC;AACtC,mCAAmC;AACnC,0CAA0C;AAC1C,uCAAuC;AACvC,KAAK;AAEL,IAAM,eAAe,GAAG;IACtB,8DAA8D;IAC9D,2FAA2F;IAC3F,qEAAqE;IACrE,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IACvQ,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IACxQ,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC3Q,KAAK,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC1Q,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC5Q,SAAS,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC3N,QAAQ,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1N,QAAQ,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1N,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;IAC1Q,QAAQ,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7D,gBAAgB,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC9D,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;CAEnD,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,GAAG,EAAE,GAAG;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC,CAAA;AAED,2CAA2C;AAC3C,IAAM,mBAAmB,GAAG,UAAC,EAA4E;IACvG,+JAA+J;IAC/J,wGAAwG;QAF3E,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA;IAI/F,IAAA,KAA4B,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAA7D,SAAS,QAAA,EAAE,YAAY,QAAsC,CAAC;IAC/D,IAAA,KAA4B,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAA7D,SAAS,QAAA,EAAE,YAAY,QAAsC,CAAC;IAE/D,IAAA,KAAsC,QAAQ,CAAQ,EAAE,CAAC,EAAxD,cAAc,QAAA,EAAE,iBAAiB,QAAuB,CAAC;IAEhE,IAAM,YAAY,GAAG,UAAC,KAAU;QAC9B,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,IAAM,QAAQ,GAAG,CAAC,KAAK;YACrB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,IAAS;gBACxB,OAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAzC,CAAyC,CAC1C,CAAC;QACJ,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,wBAAwB,aACrC,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,iBAAiB,IAChB,KAAK,EAAE,SAAS,CAAC,IAAI,EACrB,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,YAAY,EAC5B,KAAK,EAAC,MAAM,EACZ,QAAQ,QACR,cAAc,CAAC,wBAAwB;wCACvC,WAAW,EAAC,cAAc,EAC1B,SAAS,EAAC,sEAAsE,EAChF,QAAQ,EAAE,UAAC,CAAC;oCACV,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,oCAAoC;oCACrE,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;wCAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;qCACvE;yCAAM;wCACL,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;qCACpC;gCACH,CAAC,GACD,GACE,GACF,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,2BAA2B,YACvC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACf,KAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAsB;gCAC7K,CAAC,CAAC,eAAK,SAAS,EAAC,yBAAyB,aACxC,KAAC,UAAU,IACT,QAAQ,QACR,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EACvB,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,qCAAqC,GAC/C,EACF,KAAC,UAAU,IACT,QAAQ,QACR,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EACvB,WAAW,EAAC,OAAO,EACnB,SAAS,EAAC,qCAAqC,GAC/C,IACE,GAEJ,GACF,IACF,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAA1B,CAA0B,EAAE,SAAS,EAAC,sDAAsD,YAChJ,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACN,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAnB,CAAmB,EAAE,SAAS,EAAC,sDAAsD,YACzI,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACZ,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAjB,CAAiB,EAAE,SAAS,EAAC,gEAAgE,YACjJ,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACV,EAEL,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,CAChD,cAAK,SAAS,EAAC,sBAAsB,YAClC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;oBACtC,CAAC,CAAC,KAAC,mBAAmB,IAAqB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA3K,UAAU,CAAC,EAAE,CAAkK;oBAC3M,CAAC,CAAC,KAAC,oBAAoB,IAAqB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA5K,UAAU,CAAC,EAAE,CAAmK,IAHtK,UAAU,CAAC,EAAE,CAKlD,CACP,EAPiD,CAOjD,CAAC,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,8CAA8C;AAC9C,IAAM,oBAAoB,GAAG,UAAC,EAA6E;QAA3E,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA;IACvG,OAAO,CACL,eAAK,SAAS,EAAC,kDAAkD,aAC/D,cAAK,SAAS,EAAC,kCAAkC,YAC/C,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE;wBACzC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE;qBAC5C,EACD,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,oCAAoC,EAC9C,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,EAAhD,CAAgD,GACrE,GACE,EACL,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CAC5C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;gBAC/B,CAAC,CAAC,KAAC,mBAAmB,IAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA/J,IAAI,CAAC,EAAE,CAA4J;gBAC/L,CAAC,CAAC,KAAC,oBAAoB,IAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAAhK,IAAI,CAAC,EAAE,CAA6J,CACpM,EAJ6C,CAI7C,CAAC,EAED,KAAK,KAAK,CAAC;gBACV,MAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAnB,CAAmB,EAAE,SAAS,EAAC,0CAA0C,aAC7H,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,qBAEN,IAEZ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,wBAAwB;AACxB,IAAM,eAAe,GAAG,UAAC,EAAoF;IAC3G,uCAAuC;IACvC,MAAM;IACN,aAAa;IACb,uCAAuC;IACvC,wCAAwC;IACxC,wBAAwB;IACxB,kBAAkB;IAClB,UAAU;IACV,iDAAiD;IACjD,qCAAqC;IACrC,2BAA2B;IAC3B,2BAA2B;IAC3B,uBAAuB;IACvB,yBAAyB;IACzB,uBAAuB;IACvB,UAAU;IACV,QAAQ;IACR,MAAM;IACN,KAAK;QAnBoB,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,WAAW,iBAAA,EAAE,cAAc,oBAAA,EAAE,oBAAoB,0BAAA,EAAE,WAAW,iBAAA;IAqBzG,8EAA8E;IACxE,IAAA,KAAkC,QAAQ,CAAS,EAAE,CAAC,EAArD,YAAY,QAAA,EAAE,eAAe,QAAwB,CAAC;IAE7D,IAAM,QAAQ,GAAG,UAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;QACzC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;YACnB,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACxB,6BACK,IAAI,KACP,QAAQ,kCAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAE,QAAQ,aAC7C;aACH;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACxB,6BACK,IAAI,KACP,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IACrD;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,EAAE,EAAE,GAAG,EAAE,KAAK;QAClC,IAAM,qBAAqB,GAAG,UAAC,KAAK;YAClC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;;gBACnB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAClB,6BAAY,IAAI,gBAAG,GAAG,IAAG,KAAK,OAAG;iBAClC;qBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACxB,6BACK,IAAI,KACP,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAC9C;iBACH;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,qBAAqB,CAAC,IAAI,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,aAAa;QAClC,IAAM,OAAO,GAAe;YAC1B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAtC,CAAsC,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,YAAY;QAClC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAM,QAAQ,GAAe;YAC3B,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,GAAG;YACjC,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,EAAE;iBACb;gBACD;oBACE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAtC,CAAsC,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,qCAAqC;IACrC,+CAA+C;IAC/C,gEAAgE;IAChE,6BAA6B;IAC7B,mBAAmB;IACnB,qBAAqB;IACrB,2DAA2D;IAC3D,aAAa;IACb,UAAU;IACV,qBAAqB;IACrB,UAAU;IACV,OAAO;IACP,yDAAyD;IACzD,KAAK;IAGL,IAAM,iBAAiB,GAAG,UAAC,IAAI;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;aAC1B,GAAG,CAAC,iBAAiB,CAAC,CAAC,+BAA+B;aACtD,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,EAAd,CAAc,CAAC,CAAC,CAAC,qBAAqB;QAEzD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAGF,IAAM,gBAAgB,GAAG,UAAC,EAAE;QAC1B,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAChF,OAAM;SACP;QACD,IAAM,iBAAiB,GAAG,UAAC,KAAK,EAAE,EAAE,EAAE,MAAc;YAAd,uBAAA,EAAA,cAAc;YAClD,IAAM,UAAU,GAAG,KAAK;iBACrB,GAAG,CAAC,UAAA,IAAI;gBACP,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAClB,OAAO,IAAI,CAAC,CAAC,yBAAyB;iBACvC;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAE7D,6EAA6E;oBAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5D,6BAAY,IAAI,KAAE,QAAQ,EAAE,EAAE,IAAG;qBAClC;oBAED,6BAAY,IAAI,KAAE,QAAQ,EAAE,eAAe,IAAG;iBAC/C;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,IAAI,EAAb,CAAa,CAAC,CAAC,CAAC,qBAAqB;YAEvD,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC;QAEF,cAAc,CAAC,UAAA,SAAS,IAAI,OAAA,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA9D,CAA8D,CAAC,CAAC;IAC9F,CAAC,CAAC;IAMF,mCAAmC;IACnC,yFAAyF;IACzF,sCAAsC;IACtC,KAAK;IAKL,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAClC,WAAW,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CACvB,KAAC,oBAAoB,IAEnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,CAAC,IARH,IAAI,CAAC,EAAE,CASZ,CACH,EAZwB,CAYxB,CAAC,EACF,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,oBAAoB,CAAC,WAAW,CAAC,EAAjC,CAAiC,EAAE,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,yBAAyB,sBAAoB,EAChK,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,yBAAyB,uBAAqB,IAIjI,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["// @ts-nocheck\nimport React, { useState } from 'react';\nimport { SolidFilterFields } from '../filter/SolidFilterFields';\nimport { FolderPlus, Plus, Trash2 } from 'lucide-react';\nimport { SolidButton } from '../../shad-cn-ui/SolidButton';\nimport { SolidAutocomplete } from '../../shad-cn-ui/SolidAutocomplete';\nimport { SolidInput } from '../../shad-cn-ui/SolidInput';\nimport { SolidSelect } from '../../shad-cn-ui/SolidSelect';\nimport { FilterMatchMode, type FilterMatchModeValue } from '../filter/filterMatchMode';\n\nexport enum FilterRuleType {\n RULE = 'rule',\n RULE_GROUP = 'rule_group'\n}\n\nexport enum FilterOperator {\n AND = 'and',\n OR = 'or'\n}\n\nexport interface FilterRule {\n id: number;\n type: FilterRuleType;\n matchOperator?: FilterOperator;\n fieldName?: string | null;\n matchMode?: FilterMatchModeValue | null;\n value?: any;\n parentRule: number | null;\n children?: FilterRule[];\n}\n\nexport interface Field {\n name: string;\n type: 'string' | 'number' | 'date';\n}\n\n// const fields: Field[] = [\n// { name: 'name', type: 'string' },\n// { name: 'dob', type: 'date' },\n// { name: 'lastName', type: 'string' },\n// { name: 'amount', type: 'number' }\n// ];\n\nconst operatorOptions = {\n // string: [FilterMatchMode.CONTAINS, FilterMatchMode.EQUALS],\n // date: [FilterMatchMode.EQUALS, FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n // number: [FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n id: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n int: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n bigint: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n float: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n decimal: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n shortText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n longText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n richText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n boolean: [FilterMatchMode.EQUALS],\n date: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN,],\n datetime: [FilterMatchMode.EQUALS],\n time: [FilterMatchMode.EQUALS],\n relation: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n mediaSingle: [],\n mediaMultiple: [],\n selectionStatic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n selectionDynamic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n computed: [],\n externalId: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n uuid: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n\n};\n\nconst getRandomInt = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\n// Component to render a single filter rule\nconst FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n // const applicableOperators = rule.fieldName ? operatorOptions[fields.find(f => f.name === rule.fieldName)?.value.type].map(e => { return { name: e } }) : [];\n // const applicableInputField = rule.fieldName ? fields.find(f => f.name === rule.fieldName)?.type : \"\";\n\n const [fieldName, setFieldName] = useState({ name: rule.fieldName });\n const [matchMode, setMatchMode] = useState({ name: rule.matchMode });\n\n const [filteredFields, setFilteredFields] = useState<any[]>([]);\n\n const searchFields = (event: any) => {\n const query = event.query.toLowerCase();\n const filtered = !query\n ? fields\n : fields.filter((item: any) =>\n item.name.toLowerCase().startsWith(query)\n );\n setFilteredFields(filtered);\n };\n return (\n <div className='solid-filter-rule-row'>\n <div className='solid-filter-rule-main'>\n <div className='solid-filter-rule-field'>\n <div className='solid-filter-control-wrap'>\n <SolidAutocomplete\n value={fieldName.name}\n suggestions={filteredFields}\n completeMethod={searchFields}\n field=\"name\"\n dropdown\n forceSelection // only values from list\n placeholder=\"Select Field\"\n className=\"w-full solid-filter-auto-complete-field solid-filter-compact-control\"\n onChange={(e) => {\n setFieldName({ name: e.value }); // e.value will be an object or null\n if (e.value && typeof e.value === \"object\" && e.value.value) {\n onChange(rule.id, 'fieldName', e.value.value); // send value to parent\n } else {\n onChange(rule.id, 'fieldName', '');\n }\n }}\n />\n </div>\n </div>\n <div className='solid-filter-rule-value'>\n <div className='solid-filter-control-wrap'>\n {rule.fieldName ?\n <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>\n : <div className='solid-filter-empty-pair'>\n <SolidInput\n disabled\n value={rule.value || ''}\n placeholder=\"Operator\"\n className='w-full solid-filter-compact-control'\n />\n <SolidInput\n disabled\n value={rule.value || ''}\n placeholder=\"Value\"\n className='w-full solid-filter-compact-control'\n />\n </div>\n }\n </div>\n </div>\n </div>\n <div className='solid-filter-rule-actions'>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <Plus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <FolderPlus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn is-danger'>\n <Trash2 size={14} />\n </SolidButton>\n </div>\n\n {rule.children && rule.children.map(nestedRule => (\n <div className='nested-custom-filter' key={nestedRule.id}>\n {nestedRule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={nestedRule.id} viewData={viewData} fields={fields} rule={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={nestedRule.id} viewData={viewData} fields={fields} group={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n }\n </div>\n ))}\n </div>\n );\n};\n\n// Component to render a group of filter rules\nconst FilterGroupComponent = ({ viewData, fields, group, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n return (\n <div className='primary-filter-fieldset solid-filter-group-shell'>\n <div className=\"solid-filter-group-operator-wrap\">\n <SolidSelect\n value={group.matchOperator}\n options={[\n { label: \"OR\", value: FilterOperator.OR },\n { label: \"AND\", value: FilterOperator.AND },\n ]}\n placeholder=\"Operator\"\n className=\"solid-filter-group-operator-select\"\n onChange={(event) => onChange(group.id, 'matchOperator', event.value)}\n />\n </div>\n {group.children && group.children.map(rule => (\n rule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={rule.id} viewData={viewData} fields={fields} rule={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={rule.id} viewData={viewData} fields={fields} group={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n ))}\n {/* Add Condition Button to add parent rule */}\n {level === 0 &&\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(group.id)} className='px-0 mt-2 solid-filter-add-condition-btn'>\n <Plus size={14} />\n Add Condition\n </SolidButton>\n }\n </div>\n );\n};\n\n// Main Filter component\nconst FilterComponent = ({ viewData, fields, filterRules, setFilterRules, transformFilterRules, closeDialog }) => {\n // const initialState: FilterRule[] = [\n // {\n // id: 1,\n // type: FilterRuleType.RULE_GROUP,\n // matchOperator: FilterOperator.OR,\n // parentRule: null,\n // children: [\n // {\n // id: Date.now() + getRandomInt(1, 500),\n // type: FilterRuleType.RULE,\n // fieldName: null,\n // matchMode: null,\n // value: null,\n // parentRule: 1,\n // children: []\n // }\n // ]\n // }\n // ];\n\n // const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [printedState, setPrintedState] = useState<string>('');\n\n const addChild = (rules, parentId, newChild) => {\n return rules.map(rule => {\n if (rule.id === parentId) {\n return {\n ...rule,\n children: [...(rule.children || []), newChild]\n };\n } else if (rule.children) {\n return {\n ...rule,\n children: addChild(rule.children, parentId, newChild)\n };\n }\n return rule;\n });\n };\n\n const handleChange = (id, key, value) => {\n const updateRuleRecursively = (rules) => {\n return rules.map(rule => {\n if (rule.id === id) {\n return { ...rule, [key]: value };\n } else if (rule.children) {\n return {\n ...rule,\n children: updateRuleRecursively(rule.children)\n };\n }\n return rule;\n });\n };\n setFilterRules(prev => updateRuleRecursively(prev));\n };\n\n const handleAddRule = (parentGroupId) => {\n const newRule: FilterRule = {\n id: Date.now(),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: parentGroupId,\n children: []\n };\n setFilterRules(prev => addChild(prev, parentGroupId, newRule));\n };\n\n const handleAddGroup = (parentRuleId) => {\n const newGroupId = Date.now();\n const newGroup: FilterRule = {\n id: newGroupId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule: parentRuleId,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n }\n ]\n };\n setFilterRules(prev => addChild(prev, parentRuleId, newGroup));\n };\n\n // const handleDeleteRule = (id) => {\n // const deleteRecursively = (rules, id) => {\n // return rules.filter(rule => rule.id !== id).map(rule => {\n // if (rule.children) {\n // return {\n // ...rule,\n // children: deleteRecursively(rule.children, id)\n // };\n // }\n // return rule;\n // });\n // };\n // setFilterRules(prev => deleteRecursively(prev, id));\n // };\n\n\n const removeEmptyGroups = (rule) => {\n if (rule.type === \"rule_group\" && rule.children.length === 0) {\n return null;\n }\n\n rule.children = rule.children\n .map(removeEmptyGroups) // Recursively process children\n .filter(child => child !== null); // Remove null values\n\n return rule;\n };\n\n\n const handleDeleteRule = (id) => {\n if (filterRules[0].children.length === 1 && filterRules[0].children[0].id === id) {\n return\n }\n const deleteRecursively = (rules, id, isRoot = false) => {\n const mappedData = rules\n .map(rule => {\n if (rule.id === id) {\n return null; // Remove the target rule\n }\n\n if (rule.children) {\n const updatedChildren = deleteRecursively(rule.children, id);\n\n // If this rule had children and now has none, keep it but set children to []\n if (rule.children.length > 0 && updatedChildren.length === 0) {\n return { ...rule, children: [] };\n }\n\n return { ...rule, children: updatedChildren };\n }\n\n return rule;\n })\n .filter(rule => rule !== null); // Remove null values\n\n return mappedData\n };\n\n setFilterRules(prevRules => [removeEmptyGroups(deleteRecursively(prevRules, id, true)[0])]);\n };\n\n\n\n\n\n // const handlePrintState = () => {\n // // setPrintedState(JSON.stringify(filterRules, null, 2)); // Pretty format the state\n // transformFilterRules(filterRules)\n // };\n\n\n\n\n return (\n <div className='solid-filter-builder'>\n {filterRules.map(rule => (\n <FilterGroupComponent\n key={rule.id}\n viewData={viewData}\n fields={fields}\n group={rule}\n onChange={handleChange}\n onAddRule={handleAddRule}\n onAddGroup={handleAddGroup}\n onDelete={handleDeleteRule}\n level={0} // Top-level group\n />\n ))}\n <div className='solid-filter-builder-actions'>\n <SolidButton variant=\"primary\" size=\"sm\" onClick={() => transformFilterRules(filterRules)} type=\"submit\" className=\"solid-filter-submit-btn\">Apply</SolidButton>\n <SolidButton type='button' variant=\"outline\" size='sm' onClick={closeDialog} className=\"solid-filter-cancel-btn\">Cancel</SolidButton>\n {/* \n <br></br>\n <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} /> */}\n </div>\n </div>\n );\n};\n\nexport default FilterComponent;\n"]}
1
+ {"version":3,"file":"FilterComponent.js","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React, { useState } from 'react';\nimport { SolidFilterFields } from '../filter/SolidFilterFields';\nimport { FolderPlus, Plus, Trash2 } from 'lucide-react';\nimport { SolidButton } from '../../shad-cn-ui/SolidButton';\nimport { SolidAutocomplete } from '../../shad-cn-ui/SolidAutocomplete';\nimport { SolidInput } from '../../shad-cn-ui/SolidInput';\nimport { SolidSelect } from '../../shad-cn-ui/SolidSelect';\nimport { FilterMatchMode, type FilterMatchModeValue } from '../filter/filterMatchMode';\n\nexport enum FilterRuleType {\n RULE = 'rule',\n RULE_GROUP = 'rule_group'\n}\n\nexport enum FilterOperator {\n AND = 'and',\n OR = 'or'\n}\n\nexport interface FilterRule {\n id: number;\n type: FilterRuleType;\n matchOperator?: FilterOperator;\n fieldName?: string | null;\n matchMode?: FilterMatchModeValue | null;\n value?: any;\n parentRule: number | null;\n children?: FilterRule[];\n}\n\nexport interface Field {\n name: string;\n type: 'string' | 'number' | 'date';\n}\n\n// const fields: Field[] = [\n// { name: 'name', type: 'string' },\n// { name: 'dob', type: 'date' },\n// { name: 'lastName', type: 'string' },\n// { name: 'amount', type: 'number' }\n// ];\n\nconst operatorOptions = {\n // string: [FilterMatchMode.CONTAINS, FilterMatchMode.EQUALS],\n // date: [FilterMatchMode.EQUALS, FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n // number: [FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n id: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n int: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n bigint: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n float: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n decimal: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n shortText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n longText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n richText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n boolean: [FilterMatchMode.EQUALS],\n date: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN,],\n datetime: [FilterMatchMode.EQUALS],\n time: [FilterMatchMode.EQUALS],\n relation: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n mediaSingle: [],\n mediaMultiple: [],\n selectionStatic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n selectionDynamic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n computed: [],\n externalId: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n uuid: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n\n};\n\nconst getRandomInt = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\n// Component to render a single filter rule\nconst FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n // const applicableOperators = rule.fieldName ? operatorOptions[fields.find(f => f.name === rule.fieldName)?.value.type].map(e => { return { name: e } }) : [];\n // const applicableInputField = rule.fieldName ? fields.find(f => f.name === rule.fieldName)?.type : \"\";\n\n const [fieldName, setFieldName] = useState({ name: rule.fieldName });\n const [matchMode, setMatchMode] = useState({ name: rule.matchMode });\n\n const [filteredFields, setFilteredFields] = useState<any[]>([]);\n\n const searchFields = (event: any) => {\n const query = event.query.toLowerCase();\n const filtered = !query\n ? fields\n : fields.filter((item: any) =>\n item.name.toLowerCase().startsWith(query)\n );\n setFilteredFields(filtered);\n };\n return (\n <div className='solid-filter-rule-row'>\n <div className='solid-filter-rule-main'>\n <div className='solid-filter-rule-field'>\n <div className='solid-filter-control-wrap'>\n <SolidAutocomplete\n value={fieldName.name}\n suggestions={filteredFields}\n completeMethod={searchFields}\n field=\"name\"\n dropdown\n portal\n forceSelection // only values from list\n placeholder=\"Select Field\"\n className=\"w-full solid-filter-auto-complete-field solid-filter-compact-control\"\n onChange={(e) => {\n setFieldName({ name: e.value }); // e.value will be an object or null\n if (e.value && typeof e.value === \"object\" && e.value.value) {\n onChange(rule.id, 'fieldName', e.value.value); // send value to parent\n } else {\n onChange(rule.id, 'fieldName', '');\n onChange(rule.id, 'matchMode', null);\n onChange(rule.id, 'value', '');\n }\n }}\n />\n </div>\n </div>\n <div className='solid-filter-rule-value'>\n <div className='solid-filter-control-wrap'>\n {rule.fieldName ?\n <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>\n : <div className='solid-filter-empty-pair'>\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Operator\"\n className='w-full solid-filter-compact-control'\n />\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Value\"\n className='w-full solid-filter-compact-control'\n />\n </div>\n }\n </div>\n </div>\n </div>\n <div className='solid-filter-rule-actions'>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <Plus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <FolderPlus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn is-danger'>\n <Trash2 size={14} />\n </SolidButton>\n </div>\n\n {rule.children && rule.children.map(nestedRule => (\n <div className='nested-custom-filter' key={nestedRule.id}>\n {nestedRule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={nestedRule.id} viewData={viewData} fields={fields} rule={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={nestedRule.id} viewData={viewData} fields={fields} group={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n }\n </div>\n ))}\n </div>\n );\n};\n\n// Component to render a group of filter rules\nconst FilterGroupComponent = ({ viewData, fields, group, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n return (\n <div className='primary-filter-fieldset solid-filter-group-shell'>\n <div className=\"solid-filter-group-operator-wrap\">\n <SolidSelect\n value={group.matchOperator}\n options={[\n { label: \"OR\", value: FilterOperator.OR },\n { label: \"AND\", value: FilterOperator.AND },\n ]}\n placeholder=\"Operator\"\n className=\"solid-filter-group-operator-select\"\n onChange={(event) => onChange(group.id, 'matchOperator', event.value)}\n />\n </div>\n {group.children && group.children.map(rule => (\n rule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={rule.id} viewData={viewData} fields={fields} rule={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={rule.id} viewData={viewData} fields={fields} group={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n ))}\n {/* Add Condition Button to add parent rule */}\n {level === 0 &&\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(group.id)} className='px-0 mt-2 solid-filter-add-condition-btn'>\n <Plus size={14} />\n Add Condition\n </SolidButton>\n }\n </div>\n );\n};\n\n// Main Filter component\nconst FilterComponent = ({ viewData, fields, filterRules, setFilterRules, transformFilterRules, closeDialog }) => {\n // const initialState: FilterRule[] = [\n // {\n // id: 1,\n // type: FilterRuleType.RULE_GROUP,\n // matchOperator: FilterOperator.OR,\n // parentRule: null,\n // children: [\n // {\n // id: Date.now() + getRandomInt(1, 500),\n // type: FilterRuleType.RULE,\n // fieldName: null,\n // matchMode: null,\n // value: null,\n // parentRule: 1,\n // children: []\n // }\n // ]\n // }\n // ];\n\n // const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [printedState, setPrintedState] = useState<string>('');\n\n const addChild = (rules, parentId, newChild) => {\n return rules.map(rule => {\n if (rule.id === parentId) {\n return {\n ...rule,\n children: [...(rule.children || []), newChild]\n };\n } else if (rule.children) {\n return {\n ...rule,\n children: addChild(rule.children, parentId, newChild)\n };\n }\n return rule;\n });\n };\n\n const handleChange = (id, key, value) => {\n const updateRuleRecursively = (rules) => {\n return rules.map(rule => {\n if (rule.id === id) {\n return { ...rule, [key]: value };\n } else if (rule.children) {\n return {\n ...rule,\n children: updateRuleRecursively(rule.children)\n };\n }\n return rule;\n });\n };\n setFilterRules(prev => updateRuleRecursively(prev));\n };\n\n const handleAddRule = (parentGroupId) => {\n const newRule: FilterRule = {\n id: Date.now(),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: parentGroupId,\n children: []\n };\n setFilterRules(prev => addChild(prev, parentGroupId, newRule));\n };\n\n const handleAddGroup = (parentRuleId) => {\n const newGroupId = Date.now();\n const newGroup: FilterRule = {\n id: newGroupId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule: parentRuleId,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n }\n ]\n };\n setFilterRules(prev => addChild(prev, parentRuleId, newGroup));\n };\n\n // const handleDeleteRule = (id) => {\n // const deleteRecursively = (rules, id) => {\n // return rules.filter(rule => rule.id !== id).map(rule => {\n // if (rule.children) {\n // return {\n // ...rule,\n // children: deleteRecursively(rule.children, id)\n // };\n // }\n // return rule;\n // });\n // };\n // setFilterRules(prev => deleteRecursively(prev, id));\n // };\n\n\n const removeEmptyGroups = (rule) => {\n if (rule.type === \"rule_group\" && rule.children.length === 0) {\n return null;\n }\n\n rule.children = rule.children\n .map(removeEmptyGroups) // Recursively process children\n .filter(child => child !== null); // Remove null values\n\n return rule;\n };\n\n\n const handleDeleteRule = (id) => {\n if (filterRules[0].children.length === 1 && filterRules[0].children[0].id === id) {\n return\n }\n const deleteRecursively = (rules, id, isRoot = false) => {\n const mappedData = rules\n .map(rule => {\n if (rule.id === id) {\n return null; // Remove the target rule\n }\n\n if (rule.children) {\n const updatedChildren = deleteRecursively(rule.children, id);\n\n // If this rule had children and now has none, keep it but set children to []\n if (rule.children.length > 0 && updatedChildren.length === 0) {\n return { ...rule, children: [] };\n }\n\n return { ...rule, children: updatedChildren };\n }\n\n return rule;\n })\n .filter(rule => rule !== null); // Remove null values\n\n return mappedData\n };\n\n setFilterRules(prevRules => [removeEmptyGroups(deleteRecursively(prevRules, id, true)[0])]);\n };\n\n\n\n\n\n // const handlePrintState = () => {\n // // setPrintedState(JSON.stringify(filterRules, null, 2)); // Pretty format the state\n // transformFilterRules(filterRules)\n // };\n\n\n\n\n return (\n <div className='solid-filter-builder'>\n {filterRules.map(rule => (\n <FilterGroupComponent\n key={rule.id}\n viewData={viewData}\n fields={fields}\n group={rule}\n onChange={handleChange}\n onAddRule={handleAddRule}\n onAddGroup={handleAddGroup}\n onDelete={handleDeleteRule}\n level={0} // Top-level group\n />\n ))}\n <div className='solid-filter-builder-actions'>\n <SolidButton variant=\"primary\" size=\"sm\" onClick={() => transformFilterRules(filterRules)} type=\"submit\" className=\"solid-filter-submit-btn\">Apply</SolidButton>\n <SolidButton type='button' variant=\"outline\" size='sm' onClick={closeDialog} className=\"solid-filter-cancel-btn\">Cancel</SolidButton>\n {/* \n <br></br>\n <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} /> */}\n </div>\n </div>\n );\n};\n\nexport default FilterComponent;\n"]}
@@ -102,6 +102,7 @@ const FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAd
102
102
  completeMethod={searchFields}
103
103
  field="name"
104
104
  dropdown
105
+ portal
105
106
  forceSelection // only values from list
106
107
  placeholder="Select Field"
107
108
  className="w-full solid-filter-auto-complete-field solid-filter-compact-control"
@@ -111,6 +112,8 @@ const FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAd
111
112
  onChange(rule.id, 'fieldName', e.value.value); // send value to parent
112
113
  } else {
113
114
  onChange(rule.id, 'fieldName', '');
115
+ onChange(rule.id, 'matchMode', null);
116
+ onChange(rule.id, 'value', '');
114
117
  }
115
118
  }}
116
119
  />
@@ -123,13 +126,13 @@ const FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAd
123
126
  : <div className='solid-filter-empty-pair'>
124
127
  <SolidInput
125
128
  disabled
126
- value={rule.value || ''}
129
+ value=""
127
130
  placeholder="Operator"
128
131
  className='w-full solid-filter-compact-control'
129
132
  />
130
133
  <SolidInput
131
134
  disabled
132
- value={rule.value || ''}
135
+ value=""
133
136
  placeholder="Value"
134
137
  className='w-full solid-filter-compact-control'
135
138
  />
@@ -321,7 +321,7 @@
321
321
  align-items: center;
322
322
  justify-content: center;
323
323
  gap: 10px;
324
- cursor: pointer;
324
+ cursor: default;
325
325
  transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
326
326
  }
327
327
 
@@ -1 +1 @@
1
- {"version":3,"file":"SolidImportDropzone.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,mBAAmB,yDAA0D,GAAG,4CA6H5F,CAAA"}
1
+ {"version":3,"file":"SolidImportDropzone.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,mBAAmB,yDAA0D,GAAG,4CA+H5F,CAAA"}
@@ -108,6 +108,8 @@ export var SolidImportDropzone = function (_a) {
108
108
  'text/csv': ['.csv']
109
109
  },
110
110
  multiple: false,
111
+ noClick: true,
112
+ noKeyboard: true,
111
113
  }), getRootProps = _d.getRootProps, getInputProps = _d.getInputProps, open = _d.open;
112
114
  var rootProps = getRootProps({ className: 'solid-import-dropzone-shell' });
113
115
  var removeFile = function () {