@solidstarters/solid-core-ui 1.0.2 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/SolidForgotPassword.d.ts +3 -0
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -0
- package/dist/components/auth/SolidForgotPassword.js +108 -0
- package/dist/components/auth/SolidForgotPassword.js.map +1 -0
- package/dist/components/auth/SolidLogin.d.ts +3 -0
- package/dist/components/auth/SolidLogin.d.ts.map +1 -0
- package/dist/components/auth/SolidLogin.js +115 -0
- package/dist/components/auth/SolidLogin.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +108 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidRegister.d.ts +3 -0
- package/dist/components/auth/SolidRegister.d.ts.map +1 -0
- package/dist/components/auth/SolidRegister.js +166 -0
- package/dist/components/auth/SolidRegister.js.map +1 -0
- package/dist/components/auth/SolidResetPassword.d.ts +3 -0
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -0
- package/dist/components/auth/SolidResetPassword.js +119 -0
- package/dist/components/auth/SolidResetPassword.js.map +1 -0
- package/dist/components/core/common/FilterComponent.d.ts +33 -1
- package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
- package/dist/components/core/common/FilterComponent.js +26 -25
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidConfigureLayoutElement.js +3 -3
- package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +1 -1
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +14 -9
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidLayoutViews.d.ts +19 -0
- package/dist/components/core/common/SolidLayoutViews.d.ts.map +1 -0
- package/dist/components/core/common/SolidLayoutViews.js +14 -0
- package/dist/components/core/common/SolidLayoutViews.js.map +1 -0
- package/dist/components/core/common/SolidListViewOptions.d.ts +2 -0
- package/dist/components/core/common/SolidListViewOptions.d.ts.map +1 -0
- package/dist/components/core/common/SolidListViewOptions.js +11 -0
- package/dist/components/core/common/SolidListViewOptions.js.map +1 -0
- package/dist/components/core/filter/SolidManyToOneFilterElement.js +1 -1
- package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/filter/columns/SolidBigintField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidBigintField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidBigintField.js +8 -0
- package/dist/components/core/filter/columns/SolidBigintField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidBooleanField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidBooleanField.js +27 -0
- package/dist/components/core/filter/columns/SolidBooleanField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidComputedField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidComputedField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidComputedField.js +22 -0
- package/dist/components/core/filter/columns/SolidComputedField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidDateField.d.ts +9 -0
- package/dist/components/core/filter/columns/SolidDateField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidDateField.js +35 -0
- package/dist/components/core/filter/columns/SolidDateField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidDatetimeField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidDatetimeField.js +24 -0
- package/dist/components/core/filter/columns/SolidDatetimeField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidDecimalField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidDecimalField.js +8 -0
- package/dist/components/core/filter/columns/SolidDecimalField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidExternalIdField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidExternalIdField.js +25 -0
- package/dist/components/core/filter/columns/SolidExternalIdField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidFloatField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidFloatField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidFloatField.js +8 -0
- package/dist/components/core/filter/columns/SolidFloatField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidIdField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidIdField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidIdField.js +25 -0
- package/dist/components/core/filter/columns/SolidIdField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidIntField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidIntField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidIntField.js +34 -0
- package/dist/components/core/filter/columns/SolidIntField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidLongTextField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidLongTextField.js +8 -0
- package/dist/components/core/filter/columns/SolidLongTextField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js +35 -0
- package/dist/components/core/filter/columns/SolidMediaMultipleField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidMediaSingleField.js +35 -0
- package/dist/components/core/filter/columns/SolidMediaSingleField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidRelationField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidRelationField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidRelationField.js +12 -0
- package/dist/components/core/filter/columns/SolidRelationField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidRichTextField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidRichTextField.js +8 -0
- package/dist/components/core/filter/columns/SolidRichTextField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js +25 -0
- package/dist/components/core/filter/columns/SolidSelectionDynamicField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js +26 -0
- package/dist/components/core/filter/columns/SolidSelectionStaticField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidShortTextField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidShortTextField.js +33 -0
- package/dist/components/core/filter/columns/SolidShortTextField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidTimeField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidTimeField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidTimeField.js +24 -0
- package/dist/components/core/filter/columns/SolidTimeField.js.map +1 -0
- package/dist/components/core/filter/columns/SolidUuidField.d.ts +4 -0
- package/dist/components/core/filter/columns/SolidUuidField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/SolidUuidField.js +25 -0
- package/dist/components/core/filter/columns/SolidUuidField.js.map +1 -0
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts +4 -0
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts.map +1 -0
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js +54 -0
- package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js.map +1 -0
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +11 -11
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +113 -202
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +312 -62
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidManyToOneFilterElement.js +2 -3
- package/dist/components/core/list/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js +3 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +3 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +5 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidTimeColumn.js +3 -1
- package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidUuidColumn.js +3 -1
- package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
- package/dist/components/layout/AppConfig.d.ts +4 -0
- package/dist/components/layout/AppConfig.d.ts.map +1 -0
- package/dist/components/layout/AppConfig.js +57 -0
- package/dist/components/layout/AppConfig.js.map +1 -0
- package/dist/components/layout/AppSidebar.d.ts +3 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -0
- package/dist/components/layout/AppSidebar.js +75 -0
- package/dist/components/layout/AppSidebar.js.map +1 -0
- package/dist/components/layout/CustomPagination.d.ts +0 -6
- package/dist/components/layout/CustomPagination.d.ts.map +1 -1
- package/dist/components/layout/CustomPagination.js +48 -27
- package/dist/components/layout/CustomPagination.js.map +1 -1
- package/dist/components/layout/FilterMenu.d.ts.map +1 -1
- package/dist/components/layout/FilterMenu.js +1 -2
- package/dist/components/layout/FilterMenu.js.map +1 -1
- package/dist/components/layout/Layout.d.ts +3 -0
- package/dist/components/layout/Layout.d.ts.map +1 -0
- package/dist/components/layout/Layout.js +114 -0
- package/dist/components/layout/Layout.js.map +1 -0
- package/dist/components/layout/context/layoutcontext.d.ts +5 -0
- package/dist/components/layout/context/layoutcontext.d.ts.map +1 -0
- package/dist/components/layout/context/layoutcontext.js +56 -0
- package/dist/components/layout/context/layoutcontext.js.map +1 -0
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +5 -5
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +37 -5
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/modelsComponents/filterIcon.d.ts.map +1 -1
- package/dist/components/modelsComponents/filterIcon.js.map +1 -1
- package/dist/components/tables/ListViewTable.d.ts.map +1 -1
- package/dist/components/tables/ListViewTable.js +2 -1
- package/dist/components/tables/ListViewTable.js.map +1 -1
- package/dist/helpers/helpers.d.ts +1 -1
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/index.d.ts +20 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -32
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/components/auth/SolidForgotPassword.tsx +124 -0
- package/src/components/auth/SolidLogin.tsx +156 -0
- package/src/components/auth/SolidOTPVerify.tsx +127 -0
- package/src/components/auth/SolidRegister.tsx +221 -0
- package/src/components/auth/SolidResetPassword.tsx +160 -0
- package/src/components/core/common/FilterComponent.tsx +45 -40
- package/src/components/core/common/SolidConfigureLayoutElement.tsx +11 -10
- package/src/components/core/common/SolidCreateButton.tsx +1 -1
- package/src/components/core/common/SolidGlobalSearchElement.tsx +33 -13
- package/src/components/core/common/SolidLayoutViews.tsx +87 -0
- package/src/components/core/common/SolidListViewOptions.tsx +31 -0
- package/src/components/core/filter/SolidManyToOneFilterElement.tsx +1 -1
- package/src/components/core/kanban/KanbanBoard.tsx +7 -4
- package/src/components/core/kanban/SolidKanbanView.tsx +110 -248
- package/src/components/core/list/SolidListView.tsx +421 -96
- package/src/components/core/list/SolidManyToOneFilterElement.tsx +3 -3
- package/src/components/core/list/columns/SolidBooleanColumn.tsx +1 -1
- package/src/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -1
- package/src/components/core/list/columns/SolidShortTextColumn.tsx +8 -3
- package/src/components/core/list/columns/SolidTimeColumn.tsx +1 -1
- package/src/components/core/list/columns/SolidUuidColumn.tsx +1 -1
- package/src/components/layout/AppConfig.tsx +103 -0
- package/src/components/layout/AppSidebar.tsx +170 -0
- package/src/components/layout/CustomPagination.tsx +55 -55
- package/src/components/layout/FilterMenu.tsx +1 -2
- package/src/components/layout/Layout.tsx +136 -0
- package/src/components/layout/context/layoutcontext.tsx +52 -0
- package/src/components/layout/navbar-two-menu.tsx +12 -9
- package/src/components/layout/user-profile-menu.tsx +74 -189
- package/src/components/modelsComponents/filterIcon.tsx +0 -1
- package/src/components/tables/ListViewTable.tsx +4 -3
- package/src/index.ts +158 -144
- package/src/types/index.d.ts +26 -0
- package/src/types/layout.d.ts +94 -0
- package/src/types/next-auth.d.ts +0 -0
- package/dist/components/core/kanban/SolidKanbanFilter.d.ts +0 -2
- package/dist/components/core/kanban/SolidKanbanFilter.d.ts.map +0 -1
- package/dist/components/core/kanban/SolidKanbanViewSearchColumn.d.ts +0 -10
- package/dist/components/core/kanban/SolidKanbanViewSearchColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +0 -2
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +0 -1
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +0 -2
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +0 -1
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +0 -2
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +0 -1
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +0 -12
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidBigintColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidBigintColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidBooleanColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidBooleanColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidComputedColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidComputedColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidDateColumn.d.ts +0 -9
- package/dist/components/core/kanban/columns/SolidDateColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidDatetimeColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidDatetimeColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidDecimalColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidDecimalColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidExternalIdColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidExternalIdColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidFloatColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidFloatColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidIdColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidIdColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidIntColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidIntColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidLongTextColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidLongTextColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidMediaMultipleColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidMediaMultipleColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidMediaSingleColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidMediaSingleColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidRelationColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidRelationColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidRichTextColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidRichTextColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidSelectionDynamicColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidSelectionDynamicColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidSelectionStaticColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidSelectionStaticColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidShortTextColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidShortTextColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidTimeColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidTimeColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/SolidUuidColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/SolidUuidColumn.d.ts.map +0 -1
- package/dist/components/core/kanban/columns/relations/SolidRelationManyToOneColumn.d.ts +0 -4
- package/dist/components/core/kanban/columns/relations/SolidRelationManyToOneColumn.d.ts.map +0 -1
- package/src/components/common/FilterComponent.tsx +0 -428
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Button } from 'primereact/button';
|
|
3
|
+
import { OverlayPanel } from 'primereact/overlaypanel';
|
|
4
|
+
import { RadioButton } from 'primereact/radiobutton';
|
|
5
|
+
import { useRef } from 'react';
|
|
6
|
+
interface Props {
|
|
7
|
+
sizeOptions: { label: string; value: string, image: string }[];
|
|
8
|
+
setSize: (value: string) => void;
|
|
9
|
+
size: string;
|
|
10
|
+
viewModes: { label: string; value: string, image: string }[];
|
|
11
|
+
setView: (value: string) => void;
|
|
12
|
+
view: string;
|
|
13
|
+
}
|
|
14
|
+
export const SolidLayoutViews = ({ sizeOptions, setSize, size, viewModes, setView, view }: Props) => {
|
|
15
|
+
const op = useRef(null);
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<div className="position-relative">
|
|
19
|
+
<Button
|
|
20
|
+
type="button"
|
|
21
|
+
size='small'
|
|
22
|
+
severity='secondary'
|
|
23
|
+
icon={
|
|
24
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none">
|
|
25
|
+
<path d="M14.9016 13.1969L10.8031 9.09845L14.9016 5L19 9.09845L14.9016 13.1969ZM5 11.7461V5.94301H10.8031V11.7461H5ZM12.2539 19V13.1969H18.057V19H12.2539ZM5 19V13.1969H10.8031V19H5ZM6.45078 10.2953H9.35233V7.39378H6.45078V10.2953ZM14.9197 11.1658L16.9689 9.11658L14.9197 7.06736L12.8705 9.11658L14.9197 11.1658ZM13.7047 17.5492H16.6062V14.6477H13.7047V17.5492ZM6.45078 17.5492H9.35233V14.6477H6.45078V17.5492Z" fill="#4B4D52" />
|
|
26
|
+
</svg>
|
|
27
|
+
}
|
|
28
|
+
className='custom-icon-button'
|
|
29
|
+
outlined
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
onClick={(e) => op.current.toggle(e)}
|
|
32
|
+
/>
|
|
33
|
+
<OverlayPanel ref={op} className='solid-header-dropdown-panel'>
|
|
34
|
+
<div className='secondary-border-bottom p-1'>
|
|
35
|
+
<p className='px-3 pt-2'>Density</p>
|
|
36
|
+
<div className="flex flex-column gap-1">
|
|
37
|
+
{sizeOptions.map((option) => (
|
|
38
|
+
<div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>
|
|
39
|
+
<RadioButton
|
|
40
|
+
inputId={option.value}
|
|
41
|
+
name="sizes"
|
|
42
|
+
value={option.value}
|
|
43
|
+
onChange={(e) => setSize(e.value)}
|
|
44
|
+
checked={option.value === size}
|
|
45
|
+
/>
|
|
46
|
+
<label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
|
|
47
|
+
{option.label}
|
|
48
|
+
<img
|
|
49
|
+
src={option.image}
|
|
50
|
+
alt={option.value}
|
|
51
|
+
className='img-fluid position-relative'
|
|
52
|
+
style={{ width: '2.75rem' }}
|
|
53
|
+
/>
|
|
54
|
+
</label>
|
|
55
|
+
</div>
|
|
56
|
+
))}
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div className='p-1'>
|
|
60
|
+
<p className='px-3 pt-2'>View Mode</p>
|
|
61
|
+
<div className="flex flex-column gap-1">
|
|
62
|
+
{viewModes.map((option) => (
|
|
63
|
+
<div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>
|
|
64
|
+
<RadioButton
|
|
65
|
+
inputId={option.value}
|
|
66
|
+
name="views"
|
|
67
|
+
value={option.value}
|
|
68
|
+
onChange={(e) => setView(e.value)}
|
|
69
|
+
checked={option.value === view}
|
|
70
|
+
/>
|
|
71
|
+
<label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
|
|
72
|
+
{option.label}
|
|
73
|
+
<img
|
|
74
|
+
src={option.image}
|
|
75
|
+
alt={option.value}
|
|
76
|
+
className='img-fluid position-relative'
|
|
77
|
+
style={{ width: '2.75rem' }}
|
|
78
|
+
/>
|
|
79
|
+
</label>
|
|
80
|
+
</div>
|
|
81
|
+
))}
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</OverlayPanel>
|
|
85
|
+
</div>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Dialog } from "primereact/dialog";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export const SolidListViewOptions = ({ }: any) => {
|
|
7
|
+
|
|
8
|
+
const [visible, setVisible] = useState<boolean>(false);
|
|
9
|
+
|
|
10
|
+
const [componentsToRender, setComponentsToRender] = useState(["Header", "NonExistentComponent"]);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div className="card flex justify-content-center">
|
|
14
|
+
<i className="pi pi-cog" onClick={() => setVisible(true)}></i>
|
|
15
|
+
|
|
16
|
+
<Dialog header="Header" visible={visible} style={{ width: '50vw' }} onHide={() => { if (!visible) return; setVisible(false); }}>
|
|
17
|
+
<p className="m-0">
|
|
18
|
+
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
19
|
+
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
20
|
+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
|
21
|
+
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
22
|
+
</p>
|
|
23
|
+
<div>
|
|
24
|
+
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</Dialog>
|
|
28
|
+
</div>
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
'use client'
|
|
2
|
+
'use client'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import React, { useState, useEffect } from "react";
|
|
5
|
+
import { DragDropContext, DropResult } from "@hello-pangea/dnd";
|
|
6
|
+
import axios from "axios";
|
|
6
7
|
import KanbanColumn from "./KanbanColumn";
|
|
7
8
|
|
|
8
9
|
// Define types for groupData and Grouped Data
|
|
@@ -23,7 +24,7 @@ interface ApiResponse {
|
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
export const KanbanBoard = ({ kanbanViewData, solidViewMetaData, setKanbanViewData, handleLoadMore, onDragEnd }: any) => {
|
|
27
|
+
export const KanbanBoard = ({ kanbanViewData, solidViewMetaData, setKanbanViewData, handleLoadMore, onDragEnd,handleSwimLinPagination }: any) => {
|
|
27
28
|
const [loading, setLoading] = useState<boolean>(true);
|
|
28
29
|
// State to manage the folded status of each column
|
|
29
30
|
const [foldedStates, setFoldedStates] = useState<Record<string, boolean>>({});
|
|
@@ -108,6 +109,8 @@ export const KanbanBoard = ({ kanbanViewData, solidViewMetaData, setKanbanViewDa
|
|
|
108
109
|
/>
|
|
109
110
|
);
|
|
110
111
|
})}
|
|
112
|
+
<div className="kanban-load-more-folded">
|
|
113
|
+
<a className="kaban-load-more" onClick={handleSwimLinPagination}>load More</a></div>
|
|
111
114
|
</div>
|
|
112
115
|
</DragDropContext>
|
|
113
116
|
);
|
|
@@ -8,15 +8,12 @@ import Link from "next/link";
|
|
|
8
8
|
import { FilterMatchMode } from "primereact/api";
|
|
9
9
|
import { Button } from "primereact/button";
|
|
10
10
|
import {
|
|
11
|
-
DataTableFilterMeta
|
|
12
|
-
DataTableStateEvent
|
|
11
|
+
DataTableFilterMeta
|
|
13
12
|
} from "primereact/datatable";
|
|
14
13
|
import { Dialog } from "primereact/dialog";
|
|
15
14
|
import qs from "qs";
|
|
16
15
|
import { useEffect, useState } from "react";
|
|
17
|
-
import { SolidConfigureLayoutElement } from "../common/SolidConfigureLayoutElement";
|
|
18
16
|
import { SolidCreateButton } from "../common/SolidCreateButton";
|
|
19
|
-
import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
|
|
20
17
|
import KanbanBoard from "./KanbanBoard";
|
|
21
18
|
|
|
22
19
|
type SolidKanbanViewParams = {
|
|
@@ -79,13 +76,13 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
79
76
|
const kanbanViewMetaDataQs = qs.stringify({ ...params, viewType: 'kanban' }, {
|
|
80
77
|
encodeValuesOnly: true,
|
|
81
78
|
});
|
|
82
|
-
const [kanbanViewMetaData, setKanbanViewMetaData] = useState({});
|
|
79
|
+
const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});
|
|
80
|
+
|
|
83
81
|
const {
|
|
84
82
|
data: solidKanbanViewMetaData,
|
|
85
83
|
error: solidKanbanViewMetaDataError,
|
|
86
84
|
isLoading: solidKanbanViewMetaDataIsLoading,
|
|
87
|
-
isError: solidKanbanViewMetaDataIsError
|
|
88
|
-
refetch
|
|
85
|
+
isError: solidKanbanViewMetaDataIsError
|
|
89
86
|
} = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);
|
|
90
87
|
|
|
91
88
|
|
|
@@ -97,46 +94,58 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
97
94
|
|
|
98
95
|
const initialFilters: any = {};
|
|
99
96
|
const toPopulate: string[] = [];
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
97
|
+
function extractFields(node: any, result: any = []) {
|
|
98
|
+
if (node.type === "field") {
|
|
99
|
+
result.push(node);
|
|
100
|
+
}
|
|
101
|
+
if (node.children) {
|
|
102
|
+
node.children.forEach((child: any) => extractFields(child, result));
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const data = { /* Your JSON object here */ };
|
|
108
|
+
const layoutFields = extractFields(solidView.layout);
|
|
109
|
+
|
|
110
|
+
for (let i = 0; i < layoutFields.length; i++) {
|
|
111
|
+
const column = layoutFields[i];
|
|
112
|
+
const fieldMetadata = solidFieldsMetadata[column.attrs.name];
|
|
113
|
+
|
|
114
|
+
// Form the initial filters after iterating over the columns and field metadata.
|
|
115
|
+
if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata.type)) {
|
|
116
|
+
// initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }
|
|
117
|
+
initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }
|
|
118
|
+
}
|
|
119
|
+
else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata.type)) {
|
|
120
|
+
// initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }
|
|
121
|
+
initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }
|
|
122
|
+
}
|
|
123
|
+
else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata.type)) {
|
|
124
|
+
initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }
|
|
128
|
+
initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (column.attrs.name === 'id') {
|
|
132
|
+
initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Form the "toPopulate" array.
|
|
136
|
+
if (fieldMetadata.type === 'relation' && fieldMetadata.relationType === 'many-to-one') {
|
|
137
|
+
toPopulate.push(fieldMetadata.name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
130
140
|
setFilters(initialFilters);
|
|
131
|
-
setRows(
|
|
141
|
+
setRows(kanbanViewMetaData?.data?.solidView?.layout?.attrs?.defaultPageSize ? kanbanViewMetaData?.data?.solidView?.layout?.attrs.defaultPageSize : 25)
|
|
132
142
|
setToPopulate(toPopulate);
|
|
133
143
|
}
|
|
134
144
|
|
|
135
145
|
useEffect(() => {
|
|
136
|
-
|
|
146
|
+
|
|
137
147
|
if (solidKanbanViewMetaData) {
|
|
138
148
|
setKanbanViewMetaData(solidKanbanViewMetaData);
|
|
139
|
-
|
|
140
149
|
initialFilterMethod()
|
|
141
150
|
}
|
|
142
151
|
}, [solidKanbanViewMetaData]);
|
|
@@ -150,13 +159,16 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
150
159
|
const [filterValues, setFilterValues] = useState([{ field: '', operator: '', value: '' }]);
|
|
151
160
|
const [first, setFirst] = useState(0);
|
|
152
161
|
const [rows, setRows] = useState(25);
|
|
153
|
-
const [sortField, setSortField] = useState("");
|
|
154
|
-
const [sortOrder, setSortOrder] = useState(0);
|
|
155
162
|
const [selectedRecords, setSelectedRecords] = useState<any[]>([]);
|
|
156
163
|
const [loading, setLoading] = useState<boolean>(true);
|
|
157
164
|
const [isDialogVisible, setDialogVisible] = useState(false);
|
|
158
165
|
const [createButtonUrl, setCreateButtonUrl] = useState<string>();
|
|
159
166
|
const [editButtonUrl, setEditButtonUrl] = useState<string>();
|
|
167
|
+
const [columnsCount, setColumnsCount] = useState(5);
|
|
168
|
+
const [swimLaneCurrentPageNumber, setSwimLaneCurrentPageNumber] = useState(1);
|
|
169
|
+
|
|
170
|
+
console.log("kanbanViewData", kanbanViewData);
|
|
171
|
+
|
|
160
172
|
|
|
161
173
|
// Get the kanban view data.
|
|
162
174
|
// const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();
|
|
@@ -183,22 +195,6 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
183
195
|
}
|
|
184
196
|
}, [solidEntityKanbanViewData]);
|
|
185
197
|
|
|
186
|
-
|
|
187
|
-
useEffect(() => {
|
|
188
|
-
if (solidKanbanViewMetaData) {
|
|
189
|
-
const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : "form/new";
|
|
190
|
-
const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : "form";
|
|
191
|
-
if (createActionUrl) {
|
|
192
|
-
setCreateButtonUrl(createActionUrl)
|
|
193
|
-
}
|
|
194
|
-
if (editActionUrl) {
|
|
195
|
-
setEditButtonUrl(editActionUrl)
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}, [solidKanbanViewMetaData])
|
|
199
|
-
console.log("solidKanbanViewMetaData", solidKanbanViewMetaData);
|
|
200
|
-
|
|
201
|
-
|
|
202
198
|
// Delete mutation
|
|
203
199
|
const [
|
|
204
200
|
deleteManySolidEntities,
|
|
@@ -213,10 +209,28 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
213
209
|
|
|
214
210
|
|
|
215
211
|
|
|
212
|
+
|
|
213
|
+
|
|
216
214
|
// Fetch data after toPopulate has been populated...
|
|
217
215
|
useEffect(() => {
|
|
216
|
+
|
|
217
|
+
if (solidKanbanViewMetaData) {
|
|
218
|
+
const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : "form/new";
|
|
219
|
+
const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : "form";
|
|
220
|
+
if (solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.pageSize) {
|
|
221
|
+
setColumnsCount(solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize)
|
|
222
|
+
}
|
|
223
|
+
if (createActionUrl) {
|
|
224
|
+
setCreateButtonUrl(createActionUrl)
|
|
225
|
+
}
|
|
226
|
+
if (editActionUrl) {
|
|
227
|
+
setEditButtonUrl(editActionUrl)
|
|
228
|
+
}
|
|
229
|
+
}
|
|
218
230
|
if (solidKanbanViewMetaData) {
|
|
219
231
|
const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
|
|
232
|
+
const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
|
|
233
|
+
|
|
220
234
|
if (toPopulate) {
|
|
221
235
|
const queryData = {
|
|
222
236
|
offset: 0,
|
|
@@ -226,7 +240,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
226
240
|
populate: toPopulate,
|
|
227
241
|
populateGroup: true,
|
|
228
242
|
groupFilter: {
|
|
229
|
-
limit:
|
|
243
|
+
limit: rows,
|
|
230
244
|
offset: 0
|
|
231
245
|
}
|
|
232
246
|
// sort: [`id:desc`],
|
|
@@ -243,182 +257,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
243
257
|
|
|
244
258
|
}, [isDeleteSolidEntitiesSucess, toPopulate, solidKanbanViewMetaData]);
|
|
245
259
|
|
|
246
|
-
// Handle pagination event.
|
|
247
|
-
const onPageChange = (event: any) => {
|
|
248
|
-
setFirst(event.first);
|
|
249
|
-
setRows(event.rows);
|
|
250
|
-
setQueryString(event.first, event.rows, sortField, sortOrder, filters);
|
|
251
|
-
};
|
|
252
260
|
|
|
253
|
-
// Handle sort event.
|
|
254
|
-
const onSort = (event: DataTableStateEvent) => {
|
|
255
|
-
const { sortField, sortOrder } = event;
|
|
256
|
-
const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
|
|
257
|
-
setSortField(sortField);
|
|
258
|
-
setSortOrder(validSortOrder);
|
|
259
|
-
setFirst(0);
|
|
260
|
-
setQueryString(
|
|
261
|
-
0,
|
|
262
|
-
rows,
|
|
263
|
-
sortField,
|
|
264
|
-
sortOrder === 1 || sortOrder === -1 ? sortOrder : 0,
|
|
265
|
-
filters
|
|
266
|
-
);
|
|
267
|
-
};
|
|
268
|
-
|
|
269
|
-
// handle change in the records which are currently selected...
|
|
270
|
-
const onSelectionChange = (event: any) => {
|
|
271
|
-
const value = event.value;
|
|
272
|
-
setSelectedRecords(value);
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
const identifySolidOperatorAndValue = (primeReactMatchMode: FilterMatchMode, value: any): { operator: string, value: string | string[] | any[] } => {
|
|
276
|
-
// @ts-ignore
|
|
277
|
-
if (primeReactMatchMode.label && primeReactMatchMode.label === 'Not In') {
|
|
278
|
-
primeReactMatchMode = FilterMatchMode.NOT_IN;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// Default value, this might not be useful as the solid server might not support these match modes.
|
|
282
|
-
let solidOperator = '';
|
|
283
|
-
let solidValue = value[0];
|
|
284
|
-
|
|
285
|
-
switch (primeReactMatchMode) {
|
|
286
|
-
case FilterMatchMode.STARTS_WITH:
|
|
287
|
-
solidOperator = "$startsWithi";
|
|
288
|
-
break;
|
|
289
|
-
case FilterMatchMode.CONTAINS:
|
|
290
|
-
solidOperator = "$containsi";
|
|
291
|
-
break;
|
|
292
|
-
case FilterMatchMode.NOT_CONTAINS:
|
|
293
|
-
solidOperator = "$notContains";
|
|
294
|
-
break;
|
|
295
|
-
case FilterMatchMode.ENDS_WITH:
|
|
296
|
-
solidOperator = "$endsWith";
|
|
297
|
-
break;
|
|
298
|
-
case FilterMatchMode.EQUALS:
|
|
299
|
-
solidOperator = "$eqi";
|
|
300
|
-
solidValue = value;
|
|
301
|
-
break;
|
|
302
|
-
case FilterMatchMode.NOT_EQUALS:
|
|
303
|
-
solidOperator = "$nei";
|
|
304
|
-
solidValue = value;
|
|
305
|
-
break;
|
|
306
|
-
case FilterMatchMode.IN:
|
|
307
|
-
solidOperator = "$in";
|
|
308
|
-
solidValue = value;
|
|
309
|
-
break;
|
|
310
|
-
case FilterMatchMode.NOT_IN:
|
|
311
|
-
solidOperator = "$notIn";
|
|
312
|
-
solidValue = value;
|
|
313
|
-
break;
|
|
314
|
-
case FilterMatchMode.LESS_THAN:
|
|
315
|
-
solidOperator = "$lt";
|
|
316
|
-
break;
|
|
317
|
-
case FilterMatchMode.LESS_THAN_OR_EQUAL_TO:
|
|
318
|
-
solidOperator = "$lte";
|
|
319
|
-
break;
|
|
320
|
-
case FilterMatchMode.GREATER_THAN:
|
|
321
|
-
solidOperator = "$gt";
|
|
322
|
-
break;
|
|
323
|
-
case FilterMatchMode.GREATER_THAN_OR_EQUAL_TO:
|
|
324
|
-
solidOperator = "$gte";
|
|
325
|
-
break;
|
|
326
|
-
case FilterMatchMode.BETWEEN:
|
|
327
|
-
solidOperator = "$between";
|
|
328
|
-
solidValue = value;
|
|
329
|
-
break;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
return { operator: solidOperator, value: solidValue };
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
// Common utility function that gets called on filter, sort & pagination events.
|
|
337
|
-
// This function creates the query string as per the solid backend API specification
|
|
338
|
-
const setQueryString = async (
|
|
339
|
-
offset?: number,
|
|
340
|
-
limit?: number,
|
|
341
|
-
sortField?: string,
|
|
342
|
-
sortOrder?: number,
|
|
343
|
-
filterQuery?: any
|
|
344
|
-
) => {
|
|
345
|
-
|
|
346
|
-
const formattedFilters: any = {};
|
|
347
|
-
const solidFieldsMetadata = solidKanbanViewMetaData.data.solidFieldsMetadata;
|
|
348
|
-
|
|
349
|
-
filterQuery.forEach((fieldData: any) => {
|
|
350
|
-
|
|
351
|
-
const filterFieldMeta = solidFieldsMetadata[fieldData.field];
|
|
352
|
-
|
|
353
|
-
// Some filters will not have constraints
|
|
354
|
-
if (!fieldData.constraints) {
|
|
355
|
-
if (fieldData.value != null) {
|
|
356
|
-
const { operator, value } = identifySolidOperatorAndValue(fieldData.operator, fieldData.value);
|
|
357
|
-
|
|
358
|
-
// Massage the filter value for relation many-to-one before sending to the server.
|
|
359
|
-
if (filterFieldMeta.type === 'relation' && filterFieldMeta.relationType === 'many-to-one') {
|
|
360
|
-
// @ts-ignore
|
|
361
|
-
const manyToOneIds = value.map(i => i.value);
|
|
362
|
-
formattedFilters[fieldData.field] = { [operator]: manyToOneIds };
|
|
363
|
-
}
|
|
364
|
-
// Massage the filter value for selectionStatic before sending to the server.
|
|
365
|
-
else if (['selectionStatic', 'selectionDynamic'].includes(filterFieldMeta.type)) {
|
|
366
|
-
// @ts-ignore
|
|
367
|
-
const values = value.map(i => i.value);
|
|
368
|
-
formattedFilters[fieldData.field] = { [operator]: values };
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
formattedFilters[fieldData.field] = { [operator]: value };
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
// TODO: Incase we start supporting multiple constraints in the future then we need to implement an else block here.
|
|
376
|
-
else { }
|
|
377
|
-
|
|
378
|
-
});
|
|
379
261
|
|
|
380
|
-
const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
|
|
381
|
-
const queryData: any = {
|
|
382
|
-
offset: offset ?? first,
|
|
383
|
-
limit: limit ?? rows,
|
|
384
|
-
populate: toPopulate,
|
|
385
|
-
fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
|
|
386
|
-
groupBy: groupByFieldName,
|
|
387
|
-
populateGroup: true,
|
|
388
|
-
filters: formattedFilters,
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
// if (sortField) {
|
|
392
|
-
// const sortFieldMetadata = solidFieldsMetadata[sortField];
|
|
393
|
-
// if (sortFieldMetadata.type === 'relation' && sortFieldMetadata.relationType === 'many-to-one') {
|
|
394
|
-
// sortField = `${sortField}.${sortFieldMetadata.relationModel.userKeyField.name}`;
|
|
395
|
-
// }
|
|
396
|
-
// queryData.sort = [
|
|
397
|
-
// `${sortField}:${sortOrder == 0 ? null : sortOrder == 1 ? "asc" : "desc"}`,
|
|
398
|
-
// ];
|
|
399
|
-
// }
|
|
400
|
-
// else {
|
|
401
|
-
// queryData.sort = [`id:desc`];
|
|
402
|
-
// }
|
|
403
|
-
|
|
404
|
-
const queryString = qs.stringify(queryData, {
|
|
405
|
-
encodeValuesOnly: true,
|
|
406
|
-
});
|
|
407
|
-
|
|
408
|
-
triggerGetSolidEntities(queryString);
|
|
409
|
-
};
|
|
410
|
-
|
|
411
|
-
// handle filter...
|
|
412
|
-
const onFilter = (e: any) => {
|
|
413
|
-
setFilters(e.filters);
|
|
414
|
-
setQueryString(
|
|
415
|
-
0,
|
|
416
|
-
rows,
|
|
417
|
-
sortField,
|
|
418
|
-
sortOrder === 1 || sortOrder === -1 ? sortOrder : 0,
|
|
419
|
-
e.filters
|
|
420
|
-
);
|
|
421
|
-
};
|
|
422
262
|
|
|
423
263
|
// clear Filter
|
|
424
264
|
const clearFilter = () => {
|
|
@@ -587,18 +427,40 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
587
427
|
);
|
|
588
428
|
};
|
|
589
429
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
430
|
+
|
|
431
|
+
const handleSwimLinPagination = async () => {
|
|
432
|
+
|
|
433
|
+
if (solidKanbanViewMetaData) {
|
|
434
|
+
const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
|
|
435
|
+
const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
|
|
436
|
+
const queryData = {
|
|
437
|
+
offset: swimLaneCurrentPageNumber * 2,
|
|
438
|
+
limit: 2,
|
|
439
|
+
fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
|
|
440
|
+
groupBy: groupByFieldName,
|
|
441
|
+
populate: toPopulate,
|
|
442
|
+
populateGroup: true,
|
|
443
|
+
groupFilter: {
|
|
444
|
+
limit: rows,
|
|
445
|
+
offset: 0
|
|
446
|
+
}
|
|
447
|
+
// sort: [`id:desc`],
|
|
448
|
+
};
|
|
449
|
+
// fields=status&groupBy=status&fields=count(status)&populateGroup=true
|
|
450
|
+
const queryString = qs.stringify(queryData, {
|
|
451
|
+
encodeValuesOnly: true
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
const data: any = await triggerGetSolidEntities(queryString);
|
|
455
|
+
console.log("data", data);
|
|
456
|
+
if (data && data?.data?.groupRecords.length > 0) {
|
|
457
|
+
const updatedData = [...kanbanViewData, ...data.data.groupRecords];
|
|
458
|
+
setKanbanViewData(updatedData);
|
|
459
|
+
}
|
|
460
|
+
setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)
|
|
461
|
+
}
|
|
599
462
|
}
|
|
600
463
|
|
|
601
|
-
|
|
602
464
|
|
|
603
465
|
return (
|
|
604
466
|
<>
|
|
@@ -629,17 +491,17 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
629
491
|
/>
|
|
630
492
|
}
|
|
631
493
|
|
|
632
|
-
{solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
|
|
633
|
-
<SolidGlobalSearchElement solidKanbanViewMetaData={solidKanbanViewMetaData} applyFilter={applyFilter} filterValues={filterValues} setFilterValues={setFilterValues}></SolidGlobalSearchElement>
|
|
634
|
-
}
|
|
494
|
+
{/* {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
|
|
495
|
+
// <SolidGlobalSearchElement solidKanbanViewMetaData={solidKanbanViewMetaData} applyFilter={applyFilter} filterValues={filterValues} setFilterValues={setFilterValues}></SolidGlobalSearchElement>
|
|
496
|
+
} */}
|
|
635
497
|
</div>
|
|
636
498
|
|
|
637
|
-
<SolidConfigureLayoutElement></SolidConfigureLayoutElement>
|
|
499
|
+
{/* <SolidConfigureLayoutElement></SolidConfigureLayoutElement> */}
|
|
638
500
|
|
|
639
501
|
</div>
|
|
640
502
|
<style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>
|
|
641
503
|
{solidKanbanViewMetaData && kanbanViewData &&
|
|
642
|
-
<KanbanBoard kanbanViewData={kanbanViewData} solidViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd}></KanbanBoard>
|
|
504
|
+
<KanbanBoard kanbanViewData={kanbanViewData} solidViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLinPagination={handleSwimLinPagination}></KanbanBoard>
|
|
643
505
|
}
|
|
644
506
|
|
|
645
507
|
<Dialog
|