tailwind-header-dom 3.4.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/LICENSE +21 -0
- package/README.md +61 -0
- package/bin/cli.js +12 -0
- package/bin/core/getLatestVersion.js +13 -0
- package/bin/core/loadRunner.js +9 -0
- package/bin/header/v2/commands/header/steps/announce.js +3 -0
- package/bin/header/v2/commands/header/steps/checks.js +21 -0
- package/bin/header/v2/commands/header/steps/createProject.js +7 -0
- package/bin/header/v2/commands/header/steps/getLatestVersion.js +25 -0
- package/bin/header/v2/commands/header/steps/locateDestination.js +5 -0
- package/bin/header/v2/commands/header/steps/locateSource copy.js +32 -0
- package/bin/header/v2/commands/header/steps/locateSource.js +19 -0
- package/bin/header/v2/commands/header/steps/resolveFolderName.js +15 -0
- package/bin/header/v2/commands/header/template/v2/BuildMenuItem/buildMenuItem.js +49 -0
- package/bin/header/v2/commands/header/template/v2/BuildMenuItem/callKSTable.js +7 -0
- package/bin/header/v2/commands/header/template/v2/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/header/v2/commands/header/template/v2/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/header/v2/commands/header/template/v2/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/header/v2/commands/header/template/v2/BuildNav/buildBrand.js +14 -0
- package/bin/header/v2/commands/header/template/v2/BuildNav/buildHamburger.js +20 -0
- package/bin/header/v2/commands/header/template/v2/BuildNav/buildMenu.js +14 -0
- package/bin/header/v2/commands/header/template/v2/BuildNav/buildNav.js +31 -0
- package/bin/header/v2/commands/header/template/v2/BuildNav/buildWrapper.js +29 -0
- package/bin/header/v2/commands/header/template/v2/buildNav.js +29 -0
- package/bin/header/v2/commands/header/template/v2/createAnchor.js +15 -0
- package/bin/header/v2/commands/header/template/v2/createIcon.js +19 -0
- package/bin/header/v2/commands/header/template/v2/createLabel.js +9 -0
- package/bin/header/v2/commands/header/template/v2/createLi.js +5 -0
- package/bin/header/v2/commands/header/template/v2/initHeader.js +49 -0
- package/bin/header/v2/commands/header/template/v3/BuildMenuItem/buildMenuItem.js +49 -0
- package/bin/header/v2/commands/header/template/v3/BuildMenuItem/callKSTable.js +7 -0
- package/bin/header/v2/commands/header/template/v3/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/header/v2/commands/header/template/v3/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/header/v2/commands/header/template/v3/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/header/v2/commands/header/template/v3/BuildNav/buildBrand.js +14 -0
- package/bin/header/v2/commands/header/template/v3/BuildNav/buildHamburger.js +20 -0
- package/bin/header/v2/commands/header/template/v3/BuildNav/buildMenu.js +14 -0
- package/bin/header/v2/commands/header/template/v3/BuildNav/buildNav.js +31 -0
- package/bin/header/v2/commands/header/template/v3/BuildNav/buildWrapper.js +29 -0
- package/bin/header/v2/commands/header/template/v3/buildNav.js +29 -0
- package/bin/header/v2/commands/header/template/v3/createAnchor.js +15 -0
- package/bin/header/v2/commands/header/template/v3/createIcon.js +19 -0
- package/bin/header/v2/commands/header/template/v3/createLabel.js +9 -0
- package/bin/header/v2/commands/header/template/v3/createLi.js +5 -0
- package/bin/header/v2/commands/header/template/v3/initHeader.js +49 -0
- package/bin/header/v2/commands/header.js +74 -0
- package/bin/header/v2/core/parseInput.js +9 -0
- package/bin/header/v2/core/resolveCommand.js +16 -0
- package/bin/header/v2/core/showUsage.js +49 -0
- package/bin/header/v2/start.js +24 -0
- package/bin/header/v3/commands/header/steps/announce.js +3 -0
- package/bin/header/v3/commands/header/steps/checks.js +21 -0
- package/bin/header/v3/commands/header/steps/createProject.js +7 -0
- package/bin/header/v3/commands/header/steps/getLatestVersion.js +25 -0
- package/bin/header/v3/commands/header/steps/locateDestination.js +5 -0
- package/bin/header/v3/commands/header/steps/locateSource copy.js +32 -0
- package/bin/header/v3/commands/header/steps/locateSource.js +19 -0
- package/bin/header/v3/commands/header/steps/resolveFolderName.js +15 -0
- package/bin/header/v3/commands/header/template/v2/BuildMenuItem/buildMenuItem.js +49 -0
- package/bin/header/v3/commands/header/template/v2/BuildMenuItem/callKSTable.js +7 -0
- package/bin/header/v3/commands/header/template/v2/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/header/v3/commands/header/template/v2/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/header/v3/commands/header/template/v2/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/header/v3/commands/header/template/v2/BuildNav/buildBrand.js +14 -0
- package/bin/header/v3/commands/header/template/v2/BuildNav/buildHamburger.js +20 -0
- package/bin/header/v3/commands/header/template/v2/BuildNav/buildMenu.js +14 -0
- package/bin/header/v3/commands/header/template/v2/BuildNav/buildNav.js +31 -0
- package/bin/header/v3/commands/header/template/v2/BuildNav/buildWrapper.js +29 -0
- package/bin/header/v3/commands/header/template/v2/buildNav.js +29 -0
- package/bin/header/v3/commands/header/template/v2/createAnchor.js +15 -0
- package/bin/header/v3/commands/header/template/v2/createIcon.js +19 -0
- package/bin/header/v3/commands/header/template/v2/createLabel.js +9 -0
- package/bin/header/v3/commands/header/template/v2/createLi.js +5 -0
- package/bin/header/v3/commands/header/template/v2/initHeader.js +49 -0
- package/bin/header/v3/commands/header/template/v3/BuildMenuItem/buildMenuItem.js +49 -0
- package/bin/header/v3/commands/header/template/v3/BuildMenuItem/callKSTable.js +7 -0
- package/bin/header/v3/commands/header/template/v3/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/header/v3/commands/header/template/v3/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/header/v3/commands/header/template/v3/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/header/v3/commands/header/template/v3/BuildNav/buildBrand.js +14 -0
- package/bin/header/v3/commands/header/template/v3/BuildNav/buildHamburger.js +20 -0
- package/bin/header/v3/commands/header/template/v3/BuildNav/buildMenu.js +14 -0
- package/bin/header/v3/commands/header/template/v3/BuildNav/buildNav.js +31 -0
- package/bin/header/v3/commands/header/template/v3/BuildNav/buildWrapper.js +29 -0
- package/bin/header/v3/commands/header/template/v3/buildNav.js +29 -0
- package/bin/header/v3/commands/header/template/v3/createAnchor.js +15 -0
- package/bin/header/v3/commands/header/template/v3/createIcon.js +19 -0
- package/bin/header/v3/commands/header/template/v3/createLabel.js +9 -0
- package/bin/header/v3/commands/header/template/v3/createLi.js +5 -0
- package/bin/header/v3/commands/header/template/v3/initHeader.js +49 -0
- package/bin/header/v3/commands/header/template/v4/BuildMenuItem/buildMenuItem.js +47 -0
- package/bin/header/v3/commands/header/template/v4/BuildMenuItem/callKSTable.js +7 -0
- package/bin/header/v3/commands/header/template/v4/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/header/v3/commands/header/template/v4/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/header/v3/commands/header/template/v4/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/header/v3/commands/header/template/v4/BuildNav/buildBrand.js +14 -0
- package/bin/header/v3/commands/header/template/v4/BuildNav/buildHamburger.js +20 -0
- package/bin/header/v3/commands/header/template/v4/BuildNav/buildMenu.js +14 -0
- package/bin/header/v3/commands/header/template/v4/BuildNav/buildNav.js +31 -0
- package/bin/header/v3/commands/header/template/v4/BuildNav/buildWrapper.js +29 -0
- package/bin/header/v3/commands/header/template/v4/buildNav.js +29 -0
- package/bin/header/v3/commands/header/template/v4/createAnchor.js +15 -0
- package/bin/header/v3/commands/header/template/v4/createIcon.js +19 -0
- package/bin/header/v3/commands/header/template/v4/createLabel.js +9 -0
- package/bin/header/v3/commands/header/template/v4/createLi.js +5 -0
- package/bin/header/v3/commands/header/template/v4/icons.js +20 -0
- package/bin/header/v3/commands/header/template/v4/initHeader.js +50 -0
- package/bin/header/v3/commands/header/template/v4/svg/icons.json +6 -0
- package/bin/header/v3/commands/header/template/v4/svg/search.svg +3 -0
- package/bin/header/v3/commands/header/template/v4/svg/show.svg +3 -0
- package/bin/header/v3/commands/header.js +74 -0
- package/bin/header/v3/core/parseInput.js +9 -0
- package/bin/header/v3/core/resolveCommand.js +16 -0
- package/bin/header/v3/core/showUsage.js +49 -0
- package/bin/header/v3/start.js +24 -0
- package/bin/v5/commands/header/steps/announce.js +3 -0
- package/bin/v5/commands/header/steps/checks.js +21 -0
- package/bin/v5/commands/header/steps/createProject.js +7 -0
- package/bin/v5/commands/header/steps/getLatestVersion.js +25 -0
- package/bin/v5/commands/header/steps/locateDestination.js +5 -0
- package/bin/v5/commands/header/steps/locateSource copy.js +32 -0
- package/bin/v5/commands/header/steps/locateSource.js +19 -0
- package/bin/v5/commands/header/steps/resolveFolderName.js +15 -0
- package/bin/v5/commands/header/template/v4/BuildMenuItem/buildMenuItem.js +49 -0
- package/bin/v5/commands/header/template/v4/BuildMenuItem/callKSTable.js +7 -0
- package/bin/v5/commands/header/template/v4/BuildMenuItem/getDefaultKSTableConfig.js +80 -0
- package/bin/v5/commands/header/template/v4/BuildMenuItem/getKSTableConfig.js +17 -0
- package/bin/v5/commands/header/template/v4/BuildMenuItem/orchestrateMenuClick.js +34 -0
- package/bin/v5/commands/header/template/v4/BuildNav/buildBrand.js +14 -0
- package/bin/v5/commands/header/template/v4/BuildNav/buildHamburger.js +20 -0
- package/bin/v5/commands/header/template/v4/BuildNav/buildMenu.js +14 -0
- package/bin/v5/commands/header/template/v4/BuildNav/buildNav.js +31 -0
- package/bin/v5/commands/header/template/v4/BuildNav/buildWrapper.js +29 -0
- package/bin/v5/commands/header/template/v4/buildNav.js +29 -0
- package/bin/v5/commands/header/template/v4/createAnchor.js +15 -0
- package/bin/v5/commands/header/template/v4/createIcon.js +19 -0
- package/bin/v5/commands/header/template/v4/createLabel.js +9 -0
- package/bin/v5/commands/header/template/v4/createLi.js +5 -0
- package/bin/v5/commands/header/template/v4/initHeader.js +49 -0
- package/bin/v5/commands/header.js +74 -0
- package/bin/v5/core/parseInput.js +9 -0
- package/bin/v5/core/resolveCommand.js +16 -0
- package/bin/v5/core/showUsage.js +46 -0
- package/bin/v5/core/showUsageV1.js +49 -0
- package/bin/v5/start.js +24 -0
- package/index.js +8 -0
- package/package.json +43 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const getDefaultKSTableConfig = () => {
|
|
2
|
+
return {
|
|
3
|
+
containerId: 'kSTableContainer',
|
|
4
|
+
|
|
5
|
+
tableName: "",
|
|
6
|
+
|
|
7
|
+
mode: "create",
|
|
8
|
+
|
|
9
|
+
layout: {
|
|
10
|
+
verticalPosition: "top",
|
|
11
|
+
type: "table",
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
endPoints: {
|
|
15
|
+
create: "",
|
|
16
|
+
update: "",
|
|
17
|
+
delete: "",
|
|
18
|
+
read: "",
|
|
19
|
+
find: ""
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
options: {
|
|
23
|
+
firstRow: {
|
|
24
|
+
showSearch: true
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
vertical: {
|
|
28
|
+
showVertical: true,
|
|
29
|
+
isDisabled: false,
|
|
30
|
+
showSaveButton: true
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
dataList: {
|
|
34
|
+
show: true,
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
table: {
|
|
38
|
+
isDisabled: false,
|
|
39
|
+
showTable: true,
|
|
40
|
+
showRowOptions: false,
|
|
41
|
+
showSerial: true,
|
|
42
|
+
showFooter: false,
|
|
43
|
+
|
|
44
|
+
footer: {
|
|
45
|
+
showDataList: true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
focus: {
|
|
50
|
+
priority: ["vertical", "footer", "search"]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
columnsConfig: [],
|
|
55
|
+
|
|
56
|
+
uiClasses: {
|
|
57
|
+
form: {
|
|
58
|
+
formClass: 'grid grid-cols-3 gap-x-8 gap-y-4 p-6 verticalForm',
|
|
59
|
+
buttonClass: 'mt-2 px-4 py-1 bg-green-500 text-white',
|
|
60
|
+
rowClass: 'flex items-center space-x-4',
|
|
61
|
+
labelClass: 'w-24 text-sm font-medium',
|
|
62
|
+
inputClass: 'flex-1 border rounded px-3 py-2'
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
callbacks: {
|
|
67
|
+
table: {
|
|
68
|
+
onDelete: async ({ toDeletePk }) => {
|
|
69
|
+
const fromDelete = await startFetchAsGet({
|
|
70
|
+
inQuery: {
|
|
71
|
+
ParentPk: toDeletePk
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
return await fromDelete;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getDefaultKSTableConfig } from "./getDefaultKSTableConfig.js";
|
|
2
|
+
|
|
3
|
+
export const getKSTableConfig = async ({ tableName }) => {
|
|
4
|
+
const config = getDefaultKSTableConfig();
|
|
5
|
+
|
|
6
|
+
const fromPromise = await fetch("/columns.json");
|
|
7
|
+
// debugger;
|
|
8
|
+
const columnsConfig = await fromPromise.json();
|
|
9
|
+
|
|
10
|
+
config.columnsConfig = columnsConfig[tableName].columnsConfig;
|
|
11
|
+
|
|
12
|
+
config.tableName = tableName;
|
|
13
|
+
|
|
14
|
+
config.endPoints.read = `/Api/V1/${tableName}/ShowAll`;
|
|
15
|
+
|
|
16
|
+
return config;
|
|
17
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getKSTableConfig } from "./getKSTableConfig.js";
|
|
2
|
+
import { callKSTable } from "./callKSTable.js";
|
|
3
|
+
|
|
4
|
+
export const orchestrateMenuClick1 = async (event) => {
|
|
5
|
+
event.preventDefault();
|
|
6
|
+
|
|
7
|
+
const currentTarget = event.currentTarget;
|
|
8
|
+
// debugger;
|
|
9
|
+
const config = await getKSTableConfig({
|
|
10
|
+
tableName: currentTarget.dataset.tableName
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
await callKSTable(config);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const orchestrateMenuClick =
|
|
17
|
+
({ onClick }) =>
|
|
18
|
+
async (event) => {
|
|
19
|
+
// debugger;
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
|
|
22
|
+
const currentTarget = event.currentTarget;
|
|
23
|
+
// debugger;
|
|
24
|
+
const config = await getKSTableConfig({
|
|
25
|
+
tableName: currentTarget.dataset.tableName
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const fromCallKSTable = await callKSTable(config);
|
|
29
|
+
console.log("fromCallKSTable : ", fromCallKSTable);
|
|
30
|
+
|
|
31
|
+
if (onClick) {
|
|
32
|
+
await onClick(event);
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// /header/v1/buildBrand.js
|
|
2
|
+
|
|
3
|
+
export const buildBrand = ({ inHeading = "KeshavSoft", inHtmlId = "titlehtmlId" }) => {
|
|
4
|
+
|
|
5
|
+
const div = document.createElement("div");
|
|
6
|
+
|
|
7
|
+
div.className = "text-xl font-semibold";
|
|
8
|
+
|
|
9
|
+
div.innerText = inHeading;
|
|
10
|
+
|
|
11
|
+
div.id = inHtmlId;
|
|
12
|
+
|
|
13
|
+
return div;
|
|
14
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// /header/v1/buildHamburger.js
|
|
2
|
+
|
|
3
|
+
export const buildHamburger = () => {
|
|
4
|
+
|
|
5
|
+
const button = document.createElement("button");
|
|
6
|
+
|
|
7
|
+
button.className = "text-xl px-4 py-1 md:hidden";
|
|
8
|
+
|
|
9
|
+
button.innerText = "☰";
|
|
10
|
+
|
|
11
|
+
button.addEventListener("click", () => {
|
|
12
|
+
|
|
13
|
+
document
|
|
14
|
+
.getElementById("menu")
|
|
15
|
+
.classList.toggle("hidden");
|
|
16
|
+
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
return button;
|
|
20
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// /header/v1/buildMenu.js
|
|
2
|
+
|
|
3
|
+
export const buildMenu = () => {
|
|
4
|
+
|
|
5
|
+
const ul = document.createElement("ul");
|
|
6
|
+
|
|
7
|
+
ul.id = "menu";
|
|
8
|
+
|
|
9
|
+
ul.className = `w-full hidden flex flex-col space-y-2 mt-4
|
|
10
|
+
md:flex md:flex-row md:space-y-0 md:gap-4
|
|
11
|
+
md:mt-0 md:w-auto md:flex-wrap`;
|
|
12
|
+
|
|
13
|
+
return ul;
|
|
14
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// /header/v2/buildNav.js
|
|
2
|
+
|
|
3
|
+
import { buildBrand } from "./buildBrand.js";
|
|
4
|
+
import { buildHamburger } from "./buildHamburger.js";
|
|
5
|
+
import { buildMenu } from "./buildMenu.js";
|
|
6
|
+
import { buildWrapper } from "./buildWrapper.js";
|
|
7
|
+
|
|
8
|
+
export const buildNav = (inTitle = {}) => {
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
nav,
|
|
12
|
+
innerDiv
|
|
13
|
+
} = buildWrapper();
|
|
14
|
+
|
|
15
|
+
innerDiv.appendChild(
|
|
16
|
+
buildBrand({
|
|
17
|
+
inHeading: inTitle.text,
|
|
18
|
+
inHtmlId: inTitle.htmlId
|
|
19
|
+
})
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
innerDiv.appendChild(
|
|
23
|
+
buildHamburger()
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
innerDiv.appendChild(
|
|
27
|
+
buildMenu()
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
return nav;
|
|
31
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// /header/v1/buildWrapper.js
|
|
2
|
+
|
|
3
|
+
export const buildWrapper = () => {
|
|
4
|
+
|
|
5
|
+
const nav = document.createElement("nav");
|
|
6
|
+
|
|
7
|
+
nav.className = "bg-gray-800 text-white";
|
|
8
|
+
|
|
9
|
+
const outerDiv = document.createElement("div");
|
|
10
|
+
|
|
11
|
+
outerDiv.className = `mx-auto px-3 py-3
|
|
12
|
+
max-w-3xl
|
|
13
|
+
lg:max-w-5xl
|
|
14
|
+
xl:max-w-full xl:px-10`;
|
|
15
|
+
|
|
16
|
+
const innerDiv = document.createElement("div");
|
|
17
|
+
|
|
18
|
+
innerDiv.className =
|
|
19
|
+
"flex flex-wrap items-center justify-between";
|
|
20
|
+
|
|
21
|
+
outerDiv.appendChild(innerDiv);
|
|
22
|
+
|
|
23
|
+
nav.appendChild(outerDiv);
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
nav,
|
|
27
|
+
innerDiv
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// /header/v1/buildWrapper.js
|
|
2
|
+
|
|
3
|
+
export const buildWrapper = () => {
|
|
4
|
+
|
|
5
|
+
const nav = document.createElement("nav");
|
|
6
|
+
|
|
7
|
+
nav.className = "bg-gray-800 text-white";
|
|
8
|
+
|
|
9
|
+
const outerDiv = document.createElement("div");
|
|
10
|
+
|
|
11
|
+
outerDiv.className = `mx-auto px-3 py-3
|
|
12
|
+
max-w-3xl
|
|
13
|
+
lg:max-w-5xl
|
|
14
|
+
xl:max-w-full xl:px-10`;
|
|
15
|
+
|
|
16
|
+
const innerDiv = document.createElement("div");
|
|
17
|
+
|
|
18
|
+
innerDiv.className =
|
|
19
|
+
"flex flex-wrap items-center justify-between";
|
|
20
|
+
|
|
21
|
+
outerDiv.appendChild(innerDiv);
|
|
22
|
+
|
|
23
|
+
nav.appendChild(outerDiv);
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
nav,
|
|
27
|
+
innerDiv
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const createAnchor = ({
|
|
2
|
+
inHtmlId = "", inHref = "#", cls = "", inTableName = ""
|
|
3
|
+
}) => {
|
|
4
|
+
const a = document.createElement("a");
|
|
5
|
+
|
|
6
|
+
a.id = inHtmlId;
|
|
7
|
+
a.href = inHref;
|
|
8
|
+
a.className = cls;
|
|
9
|
+
|
|
10
|
+
if (inTableName) {
|
|
11
|
+
a.dataset.tableName = inTableName
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
return a;
|
|
15
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const createIcon = ({
|
|
2
|
+
inIconPaths = [],
|
|
3
|
+
inClassName = ""
|
|
4
|
+
}) => {
|
|
5
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
6
|
+
|
|
7
|
+
svg.setAttribute("class", inClassName);
|
|
8
|
+
svg.setAttribute("fill", "none");
|
|
9
|
+
svg.setAttribute("stroke", "currentColor");
|
|
10
|
+
svg.setAttribute("viewBox", "0 0 24 24");
|
|
11
|
+
|
|
12
|
+
inIconPaths.forEach(d => {
|
|
13
|
+
const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
14
|
+
path.setAttribute("d", d);
|
|
15
|
+
svg.appendChild(path);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return svg;
|
|
19
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { buildMenuItem } from "./BuildMenuItem/buildMenuItem.js";
|
|
2
|
+
import { buildNav } from "./BuildNav/buildNav.js";
|
|
3
|
+
|
|
4
|
+
const initHeader = (config = {}) => {
|
|
5
|
+
|
|
6
|
+
const header = document.getElementById("header");
|
|
7
|
+
|
|
8
|
+
if (!header) return;
|
|
9
|
+
|
|
10
|
+
header.appendChild(
|
|
11
|
+
buildNav(config.title)
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
const menu = document.getElementById("menu");
|
|
15
|
+
|
|
16
|
+
(config.items || []).forEach(item => {
|
|
17
|
+
|
|
18
|
+
const classes = {
|
|
19
|
+
liClass: "md:text-center",
|
|
20
|
+
|
|
21
|
+
aClass: `${item?.uiClasses?.aClass} flex justify-between items-center
|
|
22
|
+
bg-gray-700 px-4 py-2 rounded-md
|
|
23
|
+
hover:bg-gray-600
|
|
24
|
+
active:bg-gray-500 active:scale-95
|
|
25
|
+
transition-all duration-150
|
|
26
|
+
md:flex-col md:justify-center md:items-center
|
|
27
|
+
lg:bg-transparent lg:px-2 lg:py-1`,
|
|
28
|
+
|
|
29
|
+
spanClass: `ml-3 text-right w-full text-base
|
|
30
|
+
md:w-auto md:text-center md:ml-0 lg:text-lg`,
|
|
31
|
+
|
|
32
|
+
svgClass: "text-gray-300 w-6 h-6 lg:w-7 lg:h-7"
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const li = buildMenuItem({
|
|
36
|
+
inTextToShow: item.text,
|
|
37
|
+
inHtmlId: item.id,
|
|
38
|
+
inIconPaths: item.icon,
|
|
39
|
+
inHref: item.href,
|
|
40
|
+
onClick: item.onClick,
|
|
41
|
+
inTableName: item.tableName,
|
|
42
|
+
inClasses: classes
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
menu.appendChild(li);
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default initHeader;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createLi } from "../createLi.js";
|
|
2
|
+
import { createAnchor } from "../createAnchor.js";
|
|
3
|
+
import { createLabel } from "../createLabel.js";
|
|
4
|
+
import { createIcon } from "../createIcon.js";
|
|
5
|
+
import { orchestrateMenuClick } from "./orchestrateMenuClick.js";
|
|
6
|
+
|
|
7
|
+
export const buildMenuItem = ({
|
|
8
|
+
inTextToShow,
|
|
9
|
+
inHtmlId,
|
|
10
|
+
inIconPaths,
|
|
11
|
+
inHref,
|
|
12
|
+
onClick,
|
|
13
|
+
inTableName,
|
|
14
|
+
inClasses,
|
|
15
|
+
inSvgName
|
|
16
|
+
}) => {
|
|
17
|
+
const li = createLi(inClasses.liClass);
|
|
18
|
+
|
|
19
|
+
const a = createAnchor({
|
|
20
|
+
inHtmlId,
|
|
21
|
+
inHref,
|
|
22
|
+
cls: inClasses?.aClass,
|
|
23
|
+
inTableName
|
|
24
|
+
});
|
|
25
|
+
// debugger;
|
|
26
|
+
const span = createLabel({
|
|
27
|
+
inTextToShow: inTextToShow,
|
|
28
|
+
inClassName: inClasses.spanClass
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const svg = createIcon({ inSvgName });
|
|
32
|
+
|
|
33
|
+
if (onClick) {
|
|
34
|
+
a.addEventListener(
|
|
35
|
+
"click",
|
|
36
|
+
orchestrateMenuClick({
|
|
37
|
+
onClick
|
|
38
|
+
})
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
a.append(svg, span);
|
|
43
|
+
|
|
44
|
+
li.appendChild(a);
|
|
45
|
+
|
|
46
|
+
return li;
|
|
47
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const getDefaultKSTableConfig = () => {
|
|
2
|
+
return {
|
|
3
|
+
containerId: 'kSTableContainer',
|
|
4
|
+
|
|
5
|
+
tableName: "",
|
|
6
|
+
|
|
7
|
+
mode: "create",
|
|
8
|
+
|
|
9
|
+
layout: {
|
|
10
|
+
verticalPosition: "top",
|
|
11
|
+
type: "table",
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
endPoints: {
|
|
15
|
+
create: "",
|
|
16
|
+
update: "",
|
|
17
|
+
delete: "",
|
|
18
|
+
read: "",
|
|
19
|
+
find: ""
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
options: {
|
|
23
|
+
firstRow: {
|
|
24
|
+
showSearch: true
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
vertical: {
|
|
28
|
+
showVertical: true,
|
|
29
|
+
isDisabled: false,
|
|
30
|
+
showSaveButton: true
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
dataList: {
|
|
34
|
+
show: true,
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
table: {
|
|
38
|
+
isDisabled: false,
|
|
39
|
+
showTable: true,
|
|
40
|
+
showRowOptions: false,
|
|
41
|
+
showSerial: true,
|
|
42
|
+
showFooter: false,
|
|
43
|
+
|
|
44
|
+
footer: {
|
|
45
|
+
showDataList: true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
focus: {
|
|
50
|
+
priority: ["vertical", "footer", "search"]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
columnsConfig: [],
|
|
55
|
+
|
|
56
|
+
uiClasses: {
|
|
57
|
+
form: {
|
|
58
|
+
formClass: 'grid grid-cols-3 gap-x-8 gap-y-4 p-6 verticalForm',
|
|
59
|
+
buttonClass: 'mt-2 px-4 py-1 bg-green-500 text-white',
|
|
60
|
+
rowClass: 'flex items-center space-x-4',
|
|
61
|
+
labelClass: 'w-24 text-sm font-medium',
|
|
62
|
+
inputClass: 'flex-1 border rounded px-3 py-2'
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
callbacks: {
|
|
67
|
+
table: {
|
|
68
|
+
onDelete: async ({ toDeletePk }) => {
|
|
69
|
+
const fromDelete = await startFetchAsGet({
|
|
70
|
+
inQuery: {
|
|
71
|
+
ParentPk: toDeletePk
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
return await fromDelete;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getDefaultKSTableConfig } from "./getDefaultKSTableConfig.js";
|
|
2
|
+
|
|
3
|
+
export const getKSTableConfig = async ({ tableName }) => {
|
|
4
|
+
const config = getDefaultKSTableConfig();
|
|
5
|
+
|
|
6
|
+
const fromPromise = await fetch("/columns.json");
|
|
7
|
+
// debugger;
|
|
8
|
+
const columnsConfig = await fromPromise.json();
|
|
9
|
+
|
|
10
|
+
config.columnsConfig = columnsConfig[tableName].columnsConfig;
|
|
11
|
+
|
|
12
|
+
config.tableName = tableName;
|
|
13
|
+
|
|
14
|
+
config.endPoints.read = `/Api/V1/${tableName}/ShowAll`;
|
|
15
|
+
|
|
16
|
+
return config;
|
|
17
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getKSTableConfig } from "./getKSTableConfig.js";
|
|
2
|
+
import { callKSTable } from "./callKSTable.js";
|
|
3
|
+
|
|
4
|
+
export const orchestrateMenuClick1 = async (event) => {
|
|
5
|
+
event.preventDefault();
|
|
6
|
+
|
|
7
|
+
const currentTarget = event.currentTarget;
|
|
8
|
+
// debugger;
|
|
9
|
+
const config = await getKSTableConfig({
|
|
10
|
+
tableName: currentTarget.dataset.tableName
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
await callKSTable(config);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const orchestrateMenuClick =
|
|
17
|
+
({ onClick }) =>
|
|
18
|
+
async (event) => {
|
|
19
|
+
// debugger;
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
|
|
22
|
+
const currentTarget = event.currentTarget;
|
|
23
|
+
// debugger;
|
|
24
|
+
const config = await getKSTableConfig({
|
|
25
|
+
tableName: currentTarget.dataset.tableName
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const fromCallKSTable = await callKSTable(config);
|
|
29
|
+
console.log("fromCallKSTable : ", fromCallKSTable);
|
|
30
|
+
|
|
31
|
+
if (onClick) {
|
|
32
|
+
await onClick(event);
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// /header/v1/buildBrand.js
|
|
2
|
+
|
|
3
|
+
export const buildBrand = ({ inHeading = "KeshavSoft", inHtmlId = "titlehtmlId" }) => {
|
|
4
|
+
|
|
5
|
+
const div = document.createElement("div");
|
|
6
|
+
|
|
7
|
+
div.className = "text-xl font-semibold";
|
|
8
|
+
|
|
9
|
+
div.innerText = inHeading;
|
|
10
|
+
|
|
11
|
+
div.id = inHtmlId;
|
|
12
|
+
|
|
13
|
+
return div;
|
|
14
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// /header/v1/buildHamburger.js
|
|
2
|
+
|
|
3
|
+
export const buildHamburger = () => {
|
|
4
|
+
|
|
5
|
+
const button = document.createElement("button");
|
|
6
|
+
|
|
7
|
+
button.className = "text-xl px-4 py-1 md:hidden";
|
|
8
|
+
|
|
9
|
+
button.innerText = "☰";
|
|
10
|
+
|
|
11
|
+
button.addEventListener("click", () => {
|
|
12
|
+
|
|
13
|
+
document
|
|
14
|
+
.getElementById("menu")
|
|
15
|
+
.classList.toggle("hidden");
|
|
16
|
+
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
return button;
|
|
20
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// /header/v1/buildMenu.js
|
|
2
|
+
|
|
3
|
+
export const buildMenu = () => {
|
|
4
|
+
|
|
5
|
+
const ul = document.createElement("ul");
|
|
6
|
+
|
|
7
|
+
ul.id = "menu";
|
|
8
|
+
|
|
9
|
+
ul.className = `w-full hidden flex flex-col space-y-2 mt-4
|
|
10
|
+
md:flex md:flex-row md:space-y-0 md:gap-4
|
|
11
|
+
md:mt-0 md:w-auto md:flex-wrap`;
|
|
12
|
+
|
|
13
|
+
return ul;
|
|
14
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// /header/v2/buildNav.js
|
|
2
|
+
|
|
3
|
+
import { buildBrand } from "./buildBrand.js";
|
|
4
|
+
import { buildHamburger } from "./buildHamburger.js";
|
|
5
|
+
import { buildMenu } from "./buildMenu.js";
|
|
6
|
+
import { buildWrapper } from "./buildWrapper.js";
|
|
7
|
+
|
|
8
|
+
export const buildNav = (inTitle = {}) => {
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
nav,
|
|
12
|
+
innerDiv
|
|
13
|
+
} = buildWrapper();
|
|
14
|
+
|
|
15
|
+
innerDiv.appendChild(
|
|
16
|
+
buildBrand({
|
|
17
|
+
inHeading: inTitle.text,
|
|
18
|
+
inHtmlId: inTitle.htmlId
|
|
19
|
+
})
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
innerDiv.appendChild(
|
|
23
|
+
buildHamburger()
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
innerDiv.appendChild(
|
|
27
|
+
buildMenu()
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
return nav;
|
|
31
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// /header/v1/buildWrapper.js
|
|
2
|
+
|
|
3
|
+
export const buildWrapper = () => {
|
|
4
|
+
|
|
5
|
+
const nav = document.createElement("nav");
|
|
6
|
+
|
|
7
|
+
nav.className = "bg-gray-800 text-white";
|
|
8
|
+
|
|
9
|
+
const outerDiv = document.createElement("div");
|
|
10
|
+
|
|
11
|
+
outerDiv.className = `mx-auto px-3 py-3
|
|
12
|
+
max-w-3xl
|
|
13
|
+
lg:max-w-5xl
|
|
14
|
+
xl:max-w-full xl:px-10`;
|
|
15
|
+
|
|
16
|
+
const innerDiv = document.createElement("div");
|
|
17
|
+
|
|
18
|
+
innerDiv.className =
|
|
19
|
+
"flex flex-wrap items-center justify-between";
|
|
20
|
+
|
|
21
|
+
outerDiv.appendChild(innerDiv);
|
|
22
|
+
|
|
23
|
+
nav.appendChild(outerDiv);
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
nav,
|
|
27
|
+
innerDiv
|
|
28
|
+
};
|
|
29
|
+
};
|