@solidstarters/solid-core-ui 1.1.44 → 1.1.45
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/common/SolidModuleHome.d.ts +1 -5
- package/dist/components/common/SolidModuleHome.d.ts.map +1 -1
- package/dist/components/common/SolidModuleHome.js +2 -8
- package/dist/components/common/SolidModuleHome.js.map +1 -1
- package/dist/components/common/SolidThemeProvider.d.ts +2 -0
- package/dist/components/common/SolidThemeProvider.d.ts.map +1 -0
- package/dist/components/common/SolidThemeProvider.js +38 -0
- package/dist/components/common/SolidThemeProvider.js.map +1 -0
- 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/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +33 -7
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +4 -3
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +34 -33
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +39 -15
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +17 -7
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +8 -8
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +20 -19
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/resources/globals.css +71 -22
- package/package.json +1 -1
- package/publish.js +3 -0
- package/src/components/common/SolidModuleHome.tsx +52 -59
- package/src/components/common/SolidThemeProvider.tsx +44 -0
- package/src/components/core/kanban/KanbanBoard.tsx +36 -34
- package/src/components/core/kanban/KanbanCard.tsx +37 -24
- package/src/components/core/kanban/KanbanColumn.tsx +10 -5
- package/src/components/core/kanban/SolidKanbanView.tsx +30 -42
- package/src/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +106 -38
- package/src/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +61 -16
- package/src/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +1 -1
- package/src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +14 -13
- package/src/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +1 -1
- package/src/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +43 -33
- package/src/resources/globals.css +71 -22
|
@@ -1529,21 +1529,14 @@ li.header-li-px {
|
|
|
1529
1529
|
font-size: 0.8rem;
|
|
1530
1530
|
}
|
|
1531
1531
|
|
|
1532
|
-
.kanban-options-panel .p-overlaypanel-content {
|
|
1533
|
-
padding: 0 !important;
|
|
1534
|
-
}
|
|
1535
|
-
|
|
1536
|
-
.kanban-options-panel .p-overlaypanel-content span {
|
|
1537
|
-
padding: 0 !important;
|
|
1538
|
-
font-size: 1rem;
|
|
1539
|
-
}
|
|
1540
|
-
|
|
1541
1532
|
.kanban-column {
|
|
1542
1533
|
flex: 1;
|
|
1543
|
-
|
|
1544
|
-
|
|
1534
|
+
min-width: 270px;
|
|
1535
|
+
width: 100%;
|
|
1536
|
+
max-width: 270px;
|
|
1537
|
+
/* background: #f0f0f5;
|
|
1545
1538
|
border: 8px;
|
|
1546
|
-
padding: 0.2rem;
|
|
1539
|
+
padding: 0.2rem; */
|
|
1547
1540
|
}
|
|
1548
1541
|
|
|
1549
1542
|
.kanban-card {
|
|
@@ -1565,19 +1558,15 @@ li.header-li-px {
|
|
|
1565
1558
|
color: #4b4d52;
|
|
1566
1559
|
}
|
|
1567
1560
|
|
|
1568
|
-
.kanban-group-heading {
|
|
1569
|
-
font-size: 1rem;
|
|
1570
|
-
font-weight: 600;
|
|
1571
|
-
letter-spacing: 2px;
|
|
1572
|
-
}
|
|
1573
|
-
|
|
1574
1561
|
.kanban-column-folded {
|
|
1575
1562
|
flex-grow: 0;
|
|
1576
|
-
background: #
|
|
1563
|
+
background: #F4F4F4;
|
|
1577
1564
|
border: 8px;
|
|
1578
1565
|
padding: 5px;
|
|
1579
1566
|
height: 100%;
|
|
1580
|
-
|
|
1567
|
+
min-width:fit-content;
|
|
1568
|
+
width: 100%;
|
|
1569
|
+
max-width:fit-content;
|
|
1581
1570
|
}
|
|
1582
1571
|
|
|
1583
1572
|
.kaban-heading-area {
|
|
@@ -2902,6 +2891,66 @@ li.header-li-px {
|
|
|
2902
2891
|
max-width: calc(20% - 10px);
|
|
2903
2892
|
}
|
|
2904
2893
|
|
|
2905
|
-
.
|
|
2906
|
-
|
|
2894
|
+
.solid-kanban-card {
|
|
2895
|
+
box-shadow: none;
|
|
2896
|
+
border-radius: 0.5rem;
|
|
2897
|
+
border: 1px solid rgba(216, 226, 234, 0.60);
|
|
2898
|
+
background: #FFF;
|
|
2899
|
+
padding: 9px;
|
|
2900
|
+
}
|
|
2901
|
+
|
|
2902
|
+
.kanban-group-heading {
|
|
2903
|
+
font-weight: 600;
|
|
2904
|
+
display: flex;
|
|
2905
|
+
align-items: center;
|
|
2906
|
+
gap: 10px;
|
|
2907
|
+
}
|
|
2908
|
+
|
|
2909
|
+
.kanban-count-badge {
|
|
2910
|
+
display: flex;
|
|
2911
|
+
width: 1.5rem;
|
|
2912
|
+
height: 1.5rem;
|
|
2913
|
+
padding: 0.125rem;
|
|
2914
|
+
justify-content: center;
|
|
2915
|
+
align-items: center;
|
|
2916
|
+
flex-shrink: 0;
|
|
2917
|
+
border-radius: 6.25rem;
|
|
2918
|
+
background: #F6FAFF;
|
|
2919
|
+
font-size: 0.75rem;
|
|
2920
|
+
font-weight: 600;
|
|
2921
|
+
color: var(--primary-color);
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
.kanban-image-preview {
|
|
2925
|
+
/* width: 100px; */
|
|
2926
|
+
/* width: 240px;
|
|
2927
|
+
height: 120px;
|
|
2928
|
+
flex-shrink: 0; */
|
|
2929
|
+
width: 100%;
|
|
2930
|
+
border-radius: 8px;
|
|
2931
|
+
max-height: 120px;
|
|
2932
|
+
}
|
|
2933
|
+
|
|
2934
|
+
.solid-kanban-board-wrapper {
|
|
2935
|
+
border-top: 1px solid #CED0D6;
|
|
2936
|
+
overflow: hidden;
|
|
2937
|
+
height: calc(100vh - 64px) !important;
|
|
2938
|
+
}
|
|
2939
|
+
|
|
2940
|
+
.solid-kanban-board-scroll-context {
|
|
2941
|
+
overflow: auto;
|
|
2942
|
+
height: 100%;
|
|
2943
|
+
}
|
|
2944
|
+
|
|
2945
|
+
.kanban-column-cogwheel.p-button.p-button-icon-only.p-button-rounded {
|
|
2946
|
+
height: 2rem;
|
|
2947
|
+
width: 2rem;
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
.kanban-column-cogwheel.p-button.p-button-secondary.p-button-text:not(:disabled):active {
|
|
2951
|
+
background: transparent;
|
|
2952
|
+
}
|
|
2953
|
+
|
|
2954
|
+
.kanban-column-cogwheel.p-button.p-button-secondary.p-button-text:not(:disabled):hover {
|
|
2955
|
+
background: transparent;
|
|
2907
2956
|
}
|
package/package.json
CHANGED
package/publish.js
CHANGED
|
@@ -6,6 +6,9 @@ try {
|
|
|
6
6
|
console.log(`🔄 Updating package version (${versionType})...`);
|
|
7
7
|
execSync(`npm version ${versionType}`, { stdio: "inherit" });
|
|
8
8
|
|
|
9
|
+
console.log("📦 Pushing to git ...");
|
|
10
|
+
execSync("git push", { stdio: "inherit" });
|
|
11
|
+
|
|
9
12
|
console.log("📦 Publishing package...");
|
|
10
13
|
execSync("npm publish", { stdio: "inherit" });
|
|
11
14
|
|
|
@@ -1,65 +1,58 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
moduleName: string;
|
|
5
|
-
}
|
|
6
|
-
export const SolidModuleHome = (params: SolidModuleParams) => {
|
|
7
|
-
const formatName = (moduleName: string) => {
|
|
8
|
-
return moduleName
|
|
9
|
-
.split('-')
|
|
10
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize each word
|
|
11
|
-
.join(' ');
|
|
12
|
-
};
|
|
2
|
+
|
|
3
|
+
export const SolidModuleHome = () => {
|
|
13
4
|
return (
|
|
14
|
-
<div className="
|
|
15
|
-
<div className="
|
|
16
|
-
<div className="
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<div className="text-700 mb-6">Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna.</div>
|
|
21
|
-
<div className="grid">
|
|
22
|
-
<div className="col-12 md:col-4 mb-4 px-5">
|
|
23
|
-
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
24
|
-
<i className="pi pi-desktop text-4xl text-blue-500"></i>
|
|
25
|
-
</span>
|
|
26
|
-
<div className="text-900 text-xl mb-3 font-medium">Built for Developers</div>
|
|
27
|
-
<span className="text-700 line-height-3">Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</span>
|
|
28
|
-
</div>
|
|
29
|
-
<div className="col-12 md:col-4 mb-4 px-5">
|
|
30
|
-
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
31
|
-
<i className="pi pi-lock text-4xl text-blue-500"></i>
|
|
32
|
-
</span>
|
|
33
|
-
<div className="text-900 text-xl mb-3 font-medium">End-to-End Encryption</div>
|
|
34
|
-
<span className="text-700 line-height-3">Risus nec feugiat in fermentum posuere urna nec. Posuere sollicitudin aliquam ultrices sagittis.</span>
|
|
35
|
-
</div>
|
|
36
|
-
<div className="col-12 md:col-4 mb-4 px-5">
|
|
37
|
-
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
38
|
-
<i className="pi pi-check-circle text-4xl text-blue-500"></i>
|
|
39
|
-
</span>
|
|
40
|
-
<div className="text-900 text-xl mb-3 font-medium">Easy to Use</div>
|
|
41
|
-
<span className="text-700 line-height-3">Ornare suspendisse sed nisi lacus sed viverra tellus. Neque volutpat ac tincidunt vitae semper.</span>
|
|
42
|
-
</div>
|
|
43
|
-
<div className="col-12 md:col-4 mb-4 px-5">
|
|
44
|
-
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
45
|
-
<i className="pi pi-globe text-4xl text-blue-500"></i>
|
|
46
|
-
</span>
|
|
47
|
-
<div className="text-900 text-xl mb-3 font-medium">Fast & Global Support</div>
|
|
48
|
-
<span className="text-700 line-height-3">Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum tellus.</span>
|
|
49
|
-
</div>
|
|
50
|
-
<div className="col-12 md:col-4 mb-4 px-5">
|
|
51
|
-
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
52
|
-
<i className="pi pi-github text-4xl text-blue-500"></i>
|
|
53
|
-
</span>
|
|
54
|
-
<div className="text-900 text-xl mb-3 font-medium">Open Source</div>
|
|
55
|
-
<span className="text-700 line-height-3">Nec tincidunt praesent semper feugiat. Sed adipiscing diam donec adipiscing tristique risus nec feugiat. </span>
|
|
5
|
+
<div className="h-screen surface-0 text-center p-5">
|
|
6
|
+
<div className="row">
|
|
7
|
+
<div className="col-11 mx-auto">
|
|
8
|
+
<div className="mb-3 font-bold text-3xl">
|
|
9
|
+
<span className="text-900">One Product, </span>
|
|
10
|
+
<span className="text-primary">Many Solutions</span>
|
|
56
11
|
</div>
|
|
57
|
-
<div className="
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
12
|
+
<div className="text-700 mb-6">Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna.</div>
|
|
13
|
+
<div className="grid">
|
|
14
|
+
<div className="col-12 md:col-4 mb-4 px-5">
|
|
15
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
16
|
+
<i className="pi pi-desktop text-4xl text-primary"></i>
|
|
17
|
+
</span>
|
|
18
|
+
<div className="text-900 text-xl mb-3 font-medium">Built for Developers</div>
|
|
19
|
+
<span className="text-700 line-height-3">Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</span>
|
|
20
|
+
</div>
|
|
21
|
+
<div className="col-12 md:col-4 mb-4 px-5">
|
|
22
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
23
|
+
<i className="pi pi-lock text-4xl text-primary"></i>
|
|
24
|
+
</span>
|
|
25
|
+
<div className="text-900 text-xl mb-3 font-medium">End-to-End Encryption</div>
|
|
26
|
+
<span className="text-700 line-height-3">Risus nec feugiat in fermentum posuere urna nec. Posuere sollicitudin aliquam ultrices sagittis.</span>
|
|
27
|
+
</div>
|
|
28
|
+
<div className="col-12 md:col-4 mb-4 px-5">
|
|
29
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
30
|
+
<i className="pi pi-check-circle text-4xl text-primary"></i>
|
|
31
|
+
</span>
|
|
32
|
+
<div className="text-900 text-xl mb-3 font-medium">Easy to Use</div>
|
|
33
|
+
<span className="text-700 line-height-3">Ornare suspendisse sed nisi lacus sed viverra tellus. Neque volutpat ac tincidunt vitae semper.</span>
|
|
34
|
+
</div>
|
|
35
|
+
<div className="col-12 md:col-4 mb-4 px-5">
|
|
36
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
37
|
+
<i className="pi pi-globe text-4xl text-primary"></i>
|
|
38
|
+
</span>
|
|
39
|
+
<div className="text-900 text-xl mb-3 font-medium">Fast & Global Support</div>
|
|
40
|
+
<span className="text-700 line-height-3">Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum tellus.</span>
|
|
41
|
+
</div>
|
|
42
|
+
<div className="col-12 md:col-4 mb-4 px-5">
|
|
43
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
44
|
+
<i className="pi pi-github text-4xl text-primary"></i>
|
|
45
|
+
</span>
|
|
46
|
+
<div className="text-900 text-xl mb-3 font-medium">Open Source</div>
|
|
47
|
+
<span className="text-700 line-height-3">Nec tincidunt praesent semper feugiat. Sed adipiscing diam donec adipiscing tristique risus nec feugiat. </span>
|
|
48
|
+
</div>
|
|
49
|
+
<div className="col-12 md:col-4 md:mb-4 mb-0 px-3">
|
|
50
|
+
<span className="p-3 shadow-2 mb-3 inline-block" style={{ borderRadius: '10px' }}>
|
|
51
|
+
<i className="pi pi-shield text-4xl text-primary"></i>
|
|
52
|
+
</span>
|
|
53
|
+
<div className="text-900 text-xl mb-3 font-medium">Trusted Securitty</div>
|
|
54
|
+
<span className="text-700 line-height-3">Mattis rhoncus urna neque viverra justo nec ultrices. Id cursus metus aliquam eleifend.</span>
|
|
55
|
+
</div>
|
|
63
56
|
</div>
|
|
64
57
|
</div>
|
|
65
58
|
</div>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { usePathname } from "next/navigation";
|
|
5
|
+
import { useLazyGetAuthSettingsQuery } from "@/redux/api/solidSettingsApi";
|
|
6
|
+
|
|
7
|
+
export const SolidThemeProvider = () => {
|
|
8
|
+
const pathname = usePathname();
|
|
9
|
+
const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery()
|
|
10
|
+
const [theme, setTheme] = useState("solid-light-purple");
|
|
11
|
+
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (pathname.includes("/auth")) {
|
|
14
|
+
trigger("");
|
|
15
|
+
}
|
|
16
|
+
}, [pathname, trigger]);
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (pathname.includes("/auth") && solidSettingsData?.data?.authPagesTheme) {
|
|
20
|
+
const selectedTheme =
|
|
21
|
+
solidSettingsData.data.authPagesTheme === "dark" ? "solid-dark-purple" : "solid-light-purple";
|
|
22
|
+
setTheme(selectedTheme);
|
|
23
|
+
} else {
|
|
24
|
+
setTheme("solid-light-purple");
|
|
25
|
+
}
|
|
26
|
+
}, [pathname, solidSettingsData]);
|
|
27
|
+
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
// Find or create <link> element
|
|
30
|
+
let themeLink = document.getElementById("theme-css") as HTMLLinkElement;
|
|
31
|
+
|
|
32
|
+
// if (!themeLink) {
|
|
33
|
+
// themeLink = document.createElement("link");
|
|
34
|
+
// themeLink.id = "theme-css";
|
|
35
|
+
// themeLink.rel = "stylesheet";
|
|
36
|
+
// document.head.appendChild(themeLink);
|
|
37
|
+
// }
|
|
38
|
+
|
|
39
|
+
// Update theme link dynamically
|
|
40
|
+
themeLink.href = `/themes/${theme}/theme.css`;
|
|
41
|
+
}, [theme]);
|
|
42
|
+
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
@@ -24,7 +24,7 @@ interface ApiResponse {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
export const KanbanBoard = ({ groupedView, kanbanViewData, solidKanbanViewMetaData, setKanbanViewData, handleLoadMore, onDragEnd, handleSwimLinPagination
|
|
27
|
+
export const KanbanBoard = ({ groupedView, kanbanViewData, solidKanbanViewMetaData, setKanbanViewData, handleLoadMore, onDragEnd, handleSwimLinPagination, setLightboxUrls, setOpenLightbox }: any) => {
|
|
28
28
|
const [loading, setLoading] = useState<boolean>(true);
|
|
29
29
|
// State to manage the folded status of each column
|
|
30
30
|
const [foldedStates, setFoldedStates] = useState<Record<string, boolean>>({});
|
|
@@ -70,9 +70,10 @@ export const KanbanBoard = ({ groupedView, kanbanViewData, solidKanbanViewMetaDa
|
|
|
70
70
|
// Render the Kanban board
|
|
71
71
|
return (
|
|
72
72
|
//@ts-ignore
|
|
73
|
-
<
|
|
74
|
-
<
|
|
75
|
-
|
|
73
|
+
<div className="solid-kanban-board-wrapper">
|
|
74
|
+
<DragDropContext onDragEnd={onDragEnd}>
|
|
75
|
+
<div className="flex gap-4 px-5 py-4 solid-kanban-board-scroll-context">
|
|
76
|
+
{/* {Object.entries(kanbanViewData).map(([groupVal, data]) => {
|
|
76
77
|
const group = {
|
|
77
78
|
label: groupVal,
|
|
78
79
|
count: data.count,
|
|
@@ -90,36 +91,37 @@ export const KanbanBoard = ({ groupedView, kanbanViewData, solidKanbanViewMetaDa
|
|
|
90
91
|
/>
|
|
91
92
|
);
|
|
92
93
|
})} */}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
94
|
+
{kanbanViewData.map((data) => {
|
|
95
|
+
const group = {
|
|
96
|
+
label: data.groupName,
|
|
97
|
+
count: data.groupData.meta.totalRecords,
|
|
98
|
+
limit: data.groupData.meta.perPage,
|
|
99
|
+
currentPage: data.groupData.meta.currentPage,
|
|
100
|
+
folded: foldedStates[data.groupName] || false,
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<KanbanColumn
|
|
105
|
+
key={data.groupName}
|
|
106
|
+
groupedView={groupedView}
|
|
107
|
+
groupByField={data.groupName}
|
|
108
|
+
group={group}
|
|
109
|
+
solidKanbanViewMetaData={solidKanbanViewMetaData}
|
|
110
|
+
groupData={data.groupData.records}
|
|
111
|
+
toggleFold={toggleFold}
|
|
112
|
+
handleLoadMore={handleLoadMore}
|
|
113
|
+
setLightboxUrls={setLightboxUrls}
|
|
114
|
+
setOpenLightbox={setOpenLightbox}
|
|
115
|
+
/>
|
|
116
|
+
);
|
|
117
|
+
})}
|
|
118
|
+
{groupedView !== false &&
|
|
119
|
+
<div className="kanban-load-more-folded">
|
|
120
|
+
<a className="kaban-load-more" onClick={handleSwimLinPagination}>load More</a></div>
|
|
121
|
+
}
|
|
122
|
+
</div>
|
|
123
|
+
</DragDropContext>
|
|
124
|
+
</div>
|
|
123
125
|
);
|
|
124
126
|
}
|
|
125
127
|
|
|
@@ -49,41 +49,53 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
|
|
|
49
49
|
const SolidRow = ({ children, attrs }: any) => {
|
|
50
50
|
const className = attrs.className;
|
|
51
51
|
return (
|
|
52
|
-
<div className={`row ${className}`}>
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
// <div className={`row ${className}`}>
|
|
53
|
+
// <div className="s_group">
|
|
54
|
+
// <div>
|
|
55
|
+
// {attrs.label && <p className="s_group_heading">{attrs.label}</p>}
|
|
56
|
+
// <div className="grid">{children}</div>
|
|
57
|
+
// </div>
|
|
58
|
+
// </div>
|
|
59
|
+
// </div>
|
|
60
|
+
<>
|
|
61
|
+
{attrs.label && <p className="">{attrs.label}</p>}
|
|
62
|
+
<div className={`row ${className}`}>
|
|
63
|
+
{children}
|
|
58
64
|
</div>
|
|
59
|
-
|
|
65
|
+
</>
|
|
60
66
|
);
|
|
61
67
|
};
|
|
62
68
|
const SolidColumn = ({ children, attrs }: any) => {
|
|
63
69
|
const className = attrs.className;
|
|
64
70
|
return (
|
|
71
|
+
// <div className={`${className}`}>
|
|
72
|
+
// <div className="s_group">
|
|
73
|
+
// <div>
|
|
74
|
+
// {attrs.label && <p className="s_group_heading">{attrs.label}</p>}
|
|
75
|
+
// <div className="grid">{children}</div>
|
|
76
|
+
// </div>
|
|
77
|
+
// </div>
|
|
78
|
+
// </div>
|
|
65
79
|
<div className={`${className}`}>
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
{attrs.label && <p className="s_group_heading">{attrs.label}</p>}
|
|
69
|
-
<div className="grid">{children}</div>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
80
|
+
{attrs.label && <p className="">{attrs.label}</p>}
|
|
81
|
+
{children}
|
|
73
82
|
</div>
|
|
74
83
|
);
|
|
75
84
|
};
|
|
76
85
|
const SolidImage = ({ children, attrs }: any) => {
|
|
77
86
|
const className = attrs.className;
|
|
78
87
|
return (
|
|
88
|
+
// <div className={`${className}`}>
|
|
89
|
+
// <div className="s_group">
|
|
90
|
+
// <div>
|
|
91
|
+
// {attrs.label && <p className="s_group_heading">{attrs.label}</p>}
|
|
92
|
+
// <div className="grid">{children}</div>
|
|
93
|
+
// </div>
|
|
94
|
+
// </div>
|
|
95
|
+
// </div>
|
|
79
96
|
<div className={`${className}`}>
|
|
80
|
-
<
|
|
81
|
-
|
|
82
|
-
{attrs.label && <p className="s_group_heading">{attrs.label}</p>}
|
|
83
|
-
<div className="grid">{children}</div>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
97
|
+
{attrs.label && <p className="">{attrs.label}</p>}
|
|
98
|
+
{children}
|
|
87
99
|
</div>
|
|
88
100
|
);
|
|
89
101
|
};
|
|
@@ -157,17 +169,18 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
|
|
|
157
169
|
ref={provided.innerRef}
|
|
158
170
|
{...provided.draggableProps}
|
|
159
171
|
{...provided.dragHandleProps}
|
|
160
|
-
style={{
|
|
172
|
+
style={{ marginTop: "1rem", ...provided.draggableProps.style }}
|
|
161
173
|
className="kanban-card-container"
|
|
162
174
|
>
|
|
163
175
|
{/* <p className="kanban-card-heading">{data.title}</p> */}
|
|
164
176
|
{/* <p className="kanban-card-content">{data.content}</p> */}
|
|
165
|
-
<
|
|
177
|
+
<div
|
|
166
178
|
style={{
|
|
167
179
|
opacity: snapshot.isDragging ? 0.9 : 1,
|
|
168
180
|
transform: snapshot.isDragging ? "rotate(-2deg)" : "",
|
|
169
181
|
}}
|
|
170
182
|
elevation={snapshot.isDragging ? 3 : 1}
|
|
183
|
+
className="solid-kanban-card"
|
|
171
184
|
>
|
|
172
185
|
{renderFormDynamically(solidKanbanViewMetaData)}
|
|
173
186
|
|
|
@@ -177,7 +190,7 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
|
|
|
177
190
|
))
|
|
178
191
|
} */}
|
|
179
192
|
{/* <p className="kanban-card-content">{data.content}</p> */}
|
|
180
|
-
</
|
|
193
|
+
</div>
|
|
181
194
|
</div>
|
|
182
195
|
)}
|
|
183
196
|
</Draggable>
|
|
@@ -49,20 +49,25 @@ const KanbanColumn = ({ groupedView, groupByField, solidKanbanViewMetaData, grou
|
|
|
49
49
|
<i className="pi pi-sort-up-fill"></i>
|
|
50
50
|
<i className="pi pi-sort-down-fill"></i>
|
|
51
51
|
</div>
|
|
52
|
-
<p className="kanban-group-heading">{`${group.label}`}<span className="count">{group.count}</span></p>
|
|
52
|
+
<p className="kanban-group-heading">{`${group.label}`}<span className="kanban-count-badge">{group.count}</span></p>
|
|
53
53
|
</div>
|
|
54
54
|
</a>
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
{!group.folded &&
|
|
58
58
|
<div className="flex align-items-center">
|
|
59
|
-
<p className="kanban-group-heading">{`${group.label}`}<span className="count">{group.count}</span></p>
|
|
59
|
+
<p className="kanban-group-heading">{`${group.label}`}<span className="kanban-count-badge">{group.count}</span></p>
|
|
60
60
|
</div>
|
|
61
61
|
}
|
|
62
62
|
{!group.folded &&
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
<Button
|
|
64
|
+
onClick={(e: any) => op?.current?.toggle(e)}
|
|
65
|
+
icon='pi pi-cog'
|
|
66
|
+
text
|
|
67
|
+
className="p-0 kanban-column-cogwheel"
|
|
68
|
+
rounded
|
|
69
|
+
severity="secondary"
|
|
70
|
+
/>
|
|
66
71
|
}
|
|
67
72
|
<OverlayPanel ref={op} className="kanban-options-panel">
|
|
68
73
|
|
|
@@ -165,7 +165,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
165
165
|
if (fieldMetadata.type === 'relation' && fieldMetadata.relationType === 'many-to-one') {
|
|
166
166
|
toPopulate.push(fieldMetadata.name);
|
|
167
167
|
}
|
|
168
|
-
if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.
|
|
168
|
+
if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {
|
|
169
169
|
toPopulateMedia.push(fieldMetadata.name);
|
|
170
170
|
}
|
|
171
171
|
}
|
|
@@ -267,7 +267,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
|
|
270
|
-
if (groupByFieldName &&(
|
|
270
|
+
if (groupByFieldName && (toPopulate || toPopulateMedia)) {
|
|
271
271
|
|
|
272
272
|
const queryData = {
|
|
273
273
|
offset: 0,
|
|
@@ -294,7 +294,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
294
294
|
setSelectedRecords([]);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
|
-
}, [isDeleteSolidEntitiesSucess, toPopulate, groupByFieldName,solidKanbanViewMetaData]);
|
|
297
|
+
}, [isDeleteSolidEntitiesSucess, toPopulate, groupByFieldName, solidKanbanViewMetaData]);
|
|
298
298
|
|
|
299
299
|
|
|
300
300
|
|
|
@@ -393,7 +393,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
393
393
|
const queryData = {
|
|
394
394
|
offset: offset + limit,
|
|
395
395
|
limit: limit,
|
|
396
|
-
populate:toPopulate,
|
|
396
|
+
populate: toPopulate,
|
|
397
397
|
populateMedia: toPopulateMedia,
|
|
398
398
|
populateGroup: true,
|
|
399
399
|
filters: {
|
|
@@ -628,13 +628,20 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
628
628
|
// }
|
|
629
629
|
}
|
|
630
630
|
|
|
631
|
-
|
|
631
|
+
const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName
|
|
632
632
|
|
|
633
633
|
return (
|
|
634
|
-
|
|
635
|
-
<div className="
|
|
636
|
-
<div className="flex gap-3
|
|
634
|
+
<div className="page-parent-wrapper">
|
|
635
|
+
<div className="page-header">
|
|
636
|
+
<div className="flex gap-3 align-items-center">
|
|
637
|
+
<p className="m-0 view-title">{kanbanViewTitle}</p>
|
|
638
|
+
{solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
|
|
639
|
+
// <SolidGlobalSearchElement viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
|
|
640
|
+
<SolidGlobalSearchElement ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
|
|
637
641
|
|
|
642
|
+
}
|
|
643
|
+
</div>
|
|
644
|
+
<div className="flex align-items-center gap-3">
|
|
638
645
|
{actionsAllowed.includes(`${createPermission(params.modelName)}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&
|
|
639
646
|
<SolidCreateButton url={createButtonUrl} />
|
|
640
647
|
}
|
|
@@ -647,40 +654,21 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
647
654
|
className="small-button"
|
|
648
655
|
severity="danger"
|
|
649
656
|
/>}
|
|
650
|
-
{/*
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
<SolidGlobalSearchElement ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
|
|
665
|
-
|
|
666
|
-
}
|
|
657
|
+
{/* <SolidListViewConfigure
|
|
658
|
+
setShowArchived={setShowArchived}
|
|
659
|
+
showArchived={showArchived}
|
|
660
|
+
viewData={solidKanbanViewMetaData}
|
|
661
|
+
sizeOptions={sizeOptions}
|
|
662
|
+
setSize={setSize}
|
|
663
|
+
size={size}
|
|
664
|
+
viewModes={viewModes}
|
|
665
|
+
params={params}
|
|
666
|
+
actionsAllowed={actionsAllowed}
|
|
667
|
+
selectedRecords={selectedRecords}
|
|
668
|
+
setDialogVisible={setDialogVisible}
|
|
669
|
+
></SolidListViewConfigure> */}
|
|
670
|
+
{/* <SolidConfigureLayoutElement></SolidConfigureLayoutElement> */}
|
|
667
671
|
</div>
|
|
668
|
-
|
|
669
|
-
{/* <SolidListViewConfigure
|
|
670
|
-
setShowArchived={setShowArchived}
|
|
671
|
-
showArchived={showArchived}
|
|
672
|
-
viewData={solidKanbanViewMetaData}
|
|
673
|
-
sizeOptions={sizeOptions}
|
|
674
|
-
setSize={setSize}
|
|
675
|
-
size={size}
|
|
676
|
-
viewModes={viewModes}
|
|
677
|
-
params={params}
|
|
678
|
-
actionsAllowed={actionsAllowed}
|
|
679
|
-
selectedRecords={selectedRecords}
|
|
680
|
-
setDialogVisible={setDialogVisible}
|
|
681
|
-
></SolidListViewConfigure> */}
|
|
682
|
-
{/* <SolidConfigureLayoutElement></SolidConfigureLayoutElement> */}
|
|
683
|
-
|
|
684
672
|
</div>
|
|
685
673
|
<style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>
|
|
686
674
|
{solidKanbanViewMetaData && kanbanViewData &&
|
|
@@ -709,7 +697,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
|
|
|
709
697
|
slides={lightboxUrls}
|
|
710
698
|
/>
|
|
711
699
|
}
|
|
712
|
-
|
|
700
|
+
</div>
|
|
713
701
|
);
|
|
714
702
|
};
|
|
715
703
|
|