json-crud-ui-comp-table 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bin/v3/commands/TableComp/template/v3/Index/Configs/Create/config.json +65 -0
  2. package/bin/v3/commands/TableComp/template/v3/Index/Configs/ShowAll/config.json +60 -0
  3. package/bin/v3/commands/TableComp/template/v3/Index/Configs/WithSearch/config.json +69 -0
  4. package/bin/v3/commands/TableComp/template/v3/Index/Configs/WithSerial/config.json +69 -0
  5. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/BuildTable/callKSSubTable.js +13 -0
  6. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/BuildTable/callKSTable.js +11 -0
  7. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/BuildTable/formSearchParamsFunc.js +8 -0
  8. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/BuildTable/getKSTableConfig.js +27 -0
  9. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/BuildTable/index.js +34 -0
  10. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/AfterFetch/entryFile.js +7 -0
  11. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/AfterFetch/status200.js +7 -0
  12. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/AfterFetch/status401.js +23 -0
  13. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/AfterFetch/status409.js +9 -0
  14. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/AfterFetch/url.json +4 -0
  15. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/fetchFuncs.js +12 -0
  16. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/getUrl.json +3 -0
  17. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/FetchAsGet/start.js +13 -0
  18. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/clickFunc.js +46 -0
  19. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/AddItemHtmlId/start.js +11 -0
  20. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/ShowAllHtmlId/BuildTable/callKSTable.js +5 -0
  21. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/ShowAllHtmlId/BuildTable/getKSTableConfig.js +7 -0
  22. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/ShowAllHtmlId/BuildTable/index.js +10 -0
  23. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/ShowAllHtmlId/clickFunc.js +24 -0
  24. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/ShowAllHtmlId/start.js +11 -0
  25. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSearchHtmlId/BuildTable/callKSTable.js +5 -0
  26. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSearchHtmlId/BuildTable/getKSTableConfig.js +7 -0
  27. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSearchHtmlId/BuildTable/index.js +10 -0
  28. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSearchHtmlId/clickFunc.js +24 -0
  29. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSearchHtmlId/start.js +11 -0
  30. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSerialHtmlId/BuildTable/callKSTable.js +5 -0
  31. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSerialHtmlId/BuildTable/getKSTableConfig.js +18 -0
  32. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSerialHtmlId/BuildTable/index.js +10 -0
  33. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSerialHtmlId/clickFunc.js +24 -0
  34. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/WithSerialHtmlId/start.js +11 -0
  35. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/loginButtonId/clickFunc.js +47 -0
  36. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/loginButtonId/start.js +11 -0
  37. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/loginHeaderHtmlId/clickFunc.js +21 -0
  38. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/loginHeaderHtmlId/start.js +11 -0
  39. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/AddListeners/start.js +15 -0
  40. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/CommonFuncs/afterHeadSave.js +33 -0
  41. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/CommonFuncs/onSuccess.js +13 -0
  42. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/buildHeader.js +12 -0
  43. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/runAfterDomLoad.js +12 -0
  44. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/DomContentLoaded/start.js +7 -0
  45. package/bin/v3/commands/TableComp/template/v3/Index/FormLoad/start.js +5 -0
  46. package/bin/v3/commands/TableComp/template/v3/Index/headers.json +51 -0
  47. package/bin/v3/commands/TableComp/template/v3/Index/start.js +7 -0
  48. package/bin/v3/commands/TableComp/template/v3/index.html +132 -0
  49. package/bin/v3/commands/TableComp/template/v3/script.js +276 -0
  50. package/bin/v3/commands/TableComp/template/v3/tailwind-3.css +1 -0
  51. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ const onReadFail = (inResponseStatus) => {
2
+ console.log("onReadFail", inResponseStatus);
3
+ const loginModal =
4
+ document.getElementById("loginModal");
5
+
6
+ loginModal.classList.remove("hidden");
7
+ };
8
+
9
+ export const getKSTableConfig = async () => {
10
+
11
+ const config = await fetch("./Index/Configs/WithSerial/config.json");
12
+ // debugger;
13
+ const configJson = await config.json();
14
+
15
+ configJson.callbacks.table.onReadFail = onReadFail;
16
+
17
+ return configJson;
18
+ };
@@ -0,0 +1,10 @@
1
+ import { getKSTableConfig } from "./getKSTableConfig.js";
2
+ import { callKSTable } from "./callKSTable.js";
3
+
4
+ const startFunc = async () => {
5
+ const config = await getKSTableConfig();
6
+
7
+ await callKSTable(config);
8
+ };
9
+
10
+ export default startFunc;
@@ -0,0 +1,24 @@
1
+ import buildTable from "./BuildTable/index.js";
2
+
3
+ const clickFuncToRun = ({ inCurrentTarget }) => {
4
+ // console.log("inCurrentTarget : ", inCurrentTarget);
5
+ applyActive({ inCurrentTarget });
6
+ // inCurrentTarget.classList.add("active");
7
+
8
+ buildTable().then();
9
+ };
10
+
11
+ const applyActive = ({ inCurrentTarget }) => {
12
+ const localCurrentTarget = inCurrentTarget;
13
+
14
+ const menu = localCurrentTarget.closest("#menu");
15
+
16
+ menu.querySelectorAll("li a.active")
17
+ .forEach(a => a.classList.remove("active"));
18
+
19
+ localCurrentTarget.classList.add("active");
20
+
21
+ localCurrentTarget.classList.add("active");
22
+ };
23
+
24
+ export { clickFuncToRun };
@@ -0,0 +1,11 @@
1
+ import { clickFuncToRun } from "./clickFunc.js";
2
+
3
+ const funcToRun = () => {
4
+ const htmlElement = document.getElementById('WithSerialHtmlId');
5
+ // debugger;
6
+ htmlElement.addEventListener("click", (event) =>
7
+ clickFuncToRun({ inCurrentTarget: event.currentTarget })
8
+ );
9
+ };
10
+
11
+ export default funcToRun;
@@ -0,0 +1,47 @@
1
+ const clickFuncToRun = async () => {
2
+ const UserName =
3
+ document.getElementById("Username").value;
4
+
5
+ const Password =
6
+ document.getElementById("Password").value;
7
+
8
+ const response = await fetch("/Secured/V1/GenerateToken/ToCookie", {
9
+ method: "POST",
10
+ headers: {
11
+ "Content-Type": "application/json"
12
+ },
13
+ body: JSON.stringify({
14
+ UserName,
15
+ Password
16
+ })
17
+ });
18
+
19
+ if (response.status === 200) {
20
+ document
21
+ .getElementById("loginError")
22
+ .classList.add("hidden");
23
+
24
+ document
25
+ .getElementById("loginModalContent")
26
+ .classList.remove("border-2", "border-red-500");
27
+
28
+ const loginModal =
29
+ document.getElementById("loginModal");
30
+
31
+ loginModal.classList.add("hidden");
32
+ } else {
33
+ document
34
+ .getElementById("loginError")
35
+ .textContent = "Invalid username or password";
36
+
37
+ document
38
+ .getElementById("loginError")
39
+ .classList.remove("hidden");
40
+
41
+ document
42
+ .getElementById("loginModalContent")
43
+ .classList.add("border-2", "border-red-500");
44
+ };
45
+ };
46
+
47
+ export { clickFuncToRun };
@@ -0,0 +1,11 @@
1
+ import { clickFuncToRun } from "./clickFunc.js";
2
+
3
+ const funcToRun = () => {
4
+ const htmlElement = document.getElementById('loginButtonId');
5
+ // debugger;
6
+ htmlElement.addEventListener("click", (event) =>
7
+ clickFuncToRun({ inCurrentTarget: event.currentTarget })
8
+ );
9
+ };
10
+
11
+ export default funcToRun;
@@ -0,0 +1,21 @@
1
+ const clickFuncToRun = ({ inCurrentTarget }) => {
2
+ const loginModal =
3
+ document.getElementById("loginModal");
4
+
5
+ loginModal.classList.remove("hidden");
6
+ };
7
+
8
+ const applyActive = ({ inCurrentTarget }) => {
9
+ const localCurrentTarget = inCurrentTarget;
10
+
11
+ const menu = localCurrentTarget.closest("#menu");
12
+
13
+ menu.querySelectorAll("li a.active")
14
+ .forEach(a => a.classList.remove("active"));
15
+
16
+ localCurrentTarget.classList.add("active");
17
+
18
+ localCurrentTarget.classList.add("active");
19
+ };
20
+
21
+ export { clickFuncToRun };
@@ -0,0 +1,11 @@
1
+ import { clickFuncToRun } from "./clickFunc.js";
2
+
3
+ const funcToRun = () => {
4
+ const htmlElement = document.getElementById('loginHeaderHtmlId');
5
+ // debugger;
6
+ htmlElement.addEventListener("click", (event) =>
7
+ clickFuncToRun({ inCurrentTarget: event.currentTarget })
8
+ );
9
+ };
10
+
11
+ export default funcToRun;
@@ -0,0 +1,15 @@
1
+ import showAllHtmlId from "./ShowAllHtmlId/start.js";
2
+ import withSerialHtmlId from "./WithSerialHtmlId/start.js";
3
+ import withSearchHtmlId from "./WithSearchHtmlId/start.js";
4
+ import loginHeaderHtmlId from "./loginHeaderHtmlId/start.js";
5
+ import loginButtonId from "./loginButtonId/start.js";
6
+
7
+ const hookAllListeners = () => {
8
+ showAllHtmlId();
9
+ withSerialHtmlId();
10
+ withSearchHtmlId();
11
+ loginHeaderHtmlId();
12
+ loginButtonId();
13
+ };
14
+
15
+ export { hookAllListeners };
@@ -0,0 +1,33 @@
1
+ import onSuccessFunc from "./onSuccess.js";
2
+
3
+ const afterHeadSave = async (inPk) => {
4
+ const config = await fetch("Index/Configs/AddItem/config.json");
5
+ const configJson = await config.json();
6
+
7
+ configJson.endPoints.findFromParams = configJson.endPoints.findFromParams.replace("{pk}", inPk);
8
+ configJson.callbacks.vertical.onSuccess = onSuccessFunc;
9
+
10
+ if (window.KSTable) {
11
+ console.log("table loaded from cdn");
12
+
13
+ await window.KSTable.initCreate(configJson);
14
+ };
15
+
16
+ const configForSubTable = await fetch("Index/Configs/AddItem/configForSubTable.json");
17
+ const configForSubTableJson = await configForSubTable.json();
18
+
19
+ const findColumn = configForSubTableJson.columnsConfig.find(element => {
20
+ return element.columnName === "ParentPk";
21
+ });
22
+
23
+ findColumn.defaultValue = inPk.toString();
24
+ configForSubTableJson.endPoints.read += inPk.toString();
25
+
26
+ if (window.KSTable) {
27
+ console.log("table loaded from cdn");
28
+
29
+ await window.KSTable.initTableWithFooter(configForSubTableJson);
30
+ };
31
+ };
32
+
33
+ export default afterHeadSave;
@@ -0,0 +1,13 @@
1
+ import afterHeadSave from "./afterHeadSave.js";
2
+
3
+ const onSuccessFunc = async (res) => {
4
+ const fromReponse = await res.json();
5
+ // console.log("fromReponse : ", fromReponse);
6
+
7
+ document.getElementById("htmlId").innerHTML = fromReponse.pk;
8
+
9
+ // window.location.href = `../WithSubTable/index.html?pk=${fromReponse.pk}`;
10
+ await afterHeadSave(fromReponse.pk);
11
+ };
12
+
13
+ export default onSuccessFunc;
@@ -0,0 +1,12 @@
1
+ // import headerBuild from "/header/v3/initHeader.js";
2
+
3
+ const buildHeader = async () => {
4
+ const fromFetch = await fetch("./Index/headers.json");
5
+ const headerConfig = await fromFetch.json();
6
+ // debugger;
7
+ await window.KSHeader(headerConfig);
8
+
9
+ // await headerBuild(headerConfig);
10
+ };
11
+
12
+ export { buildHeader };
@@ -0,0 +1,12 @@
1
+ import { buildHeader } from "./buildHeader.js";
2
+ import { hookAllListeners } from "./AddListeners/start.js";
3
+
4
+ const runAfterDomLoad = () => {
5
+ import("../../../script.js").then(fromPromise => {
6
+ buildHeader().then(fromPromise => {
7
+ hookAllListeners();
8
+ });
9
+ });
10
+ };
11
+
12
+ export { runAfterDomLoad };
@@ -0,0 +1,7 @@
1
+ import { runAfterDomLoad } from "./runAfterDomLoad.js";
2
+
3
+ export function startDomContentLoaded() {
4
+ document.addEventListener("DOMContentLoaded", () => {
5
+ runAfterDomLoad();
6
+ });
7
+ };
@@ -0,0 +1,5 @@
1
+ import { startDomContentLoaded } from "./DomContentLoaded/start.js";
2
+
3
+ export function startFormLoad() {
4
+ startDomContentLoaded();
5
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "uiClasses": {
3
+ "ulClass1": "[&_svg]:size-6"
4
+ },
5
+ "title": {
6
+ "text": "Items",
7
+ "htmlId": "htmlId"
8
+ },
9
+ "items": [
10
+ {
11
+ "text": "ShowAll",
12
+ "id": "ShowAllHtmlId",
13
+ "icon": [],
14
+ "uiClasses": {
15
+ "aClass": "",
16
+ "svgDivClass": "size-10"
17
+ },
18
+ "svgName": "home"
19
+ },
20
+ {
21
+ "text": "WithSerial",
22
+ "id": "WithSerialHtmlId",
23
+ "icon": [],
24
+ "uiClasses": {
25
+ "aClass": "",
26
+ "svgDivClass": "size-10"
27
+ },
28
+ "svgName": "serial"
29
+ },
30
+ {
31
+ "text": "WithSearch",
32
+ "id": "WithSearchHtmlId",
33
+ "icon": [],
34
+ "uiClasses": {
35
+ "aClass": "",
36
+ "svgDivClass": "size-10"
37
+ },
38
+ "svgName": "search"
39
+ },
40
+ {
41
+ "text": "Login",
42
+ "id": "loginHeaderHtmlId",
43
+ "icon": [],
44
+ "uiClasses": {
45
+ "aClass": "",
46
+ "svgDivClass": "size-8"
47
+ },
48
+ "svgName": "home"
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,7 @@
1
+ import { startFormLoad } from "./FormLoad/start.js";
2
+
3
+ function startApp() {
4
+ startFormLoad();
5
+ };
6
+
7
+ startApp();
@@ -0,0 +1,132 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>KeshavSoft8</title>
8
+
9
+ <!-- Tailwind CDN -->
10
+ <script src="https://cdn.tailwindcss.com"></script>
11
+
12
+ <!-- <link rel="stylesheet" href="./tailwind-3.css"> -->
13
+
14
+ <!-- Heroicons (SVG inline, no extra CDN needed) -->
15
+
16
+ <style>
17
+ tfoot tr {
18
+ background-color: #fff8dc;
19
+ }
20
+
21
+ tfoot tr:has(input:focus) {
22
+ background-color: #ffe082;
23
+ }
24
+
25
+ input:focus {
26
+ outline: none;
27
+ border: 2px solid #2563eb;
28
+ box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.3);
29
+ }
30
+
31
+ mark {
32
+ background-color: yellow;
33
+ color: black;
34
+ }
35
+
36
+ .active svg {
37
+ stroke: #3b82f6;
38
+ /* Example color */
39
+ }
40
+
41
+ .active span {
42
+ color: #3b82f6;
43
+ /* Example color */
44
+ }
45
+
46
+ .danger svg {
47
+ stroke: #c41d14;
48
+ /* Example color */
49
+ }
50
+
51
+ .danger span {
52
+ color: #c41d14;
53
+ /* Example color */
54
+ }
55
+ </style>
56
+ </head>
57
+
58
+ <body class="bg-gray-100 flex flex-col min-h-screen">
59
+ <main class="flex-grow">
60
+ <!-- NAVBAR -->
61
+
62
+ <div id="header"></div>
63
+
64
+ <!-- body -->
65
+ <section class="mx-auto px-3 py-6
66
+ max-w-3xl
67
+ lg:max-w-5xl
68
+ xl:max-w-6xl">
69
+
70
+ <!-- Table container -->
71
+
72
+ <div id="kSTableContainer">
73
+ </div>
74
+
75
+ <div id="kSSubTableContainer">
76
+ </div>
77
+ </section>
78
+
79
+
80
+ </main>
81
+ <footer class="bg-gray-200 text-gray-700 text-center py-4">
82
+ <div class="max-w-6xl mx-auto px-4">
83
+ © 2026 KeshavSoft • Contact
84
+ </div>
85
+ </footer>
86
+
87
+ <!-- Login Modal -->
88
+
89
+ <!-- Modal -->
90
+ <div id="loginModal" class="hidden fixed inset-0 z-50 bg-black/40 flex items-center justify-center">
91
+
92
+ <div id="loginModalContent" class="bg-white rounded-lg shadow-lg w-full max-w-sm p-6">
93
+
94
+ <h2 class="text-xl font-semibold mb-4">
95
+ Login
96
+ </h2>
97
+
98
+ <input type="text" placeholder="Username" id="Username" class="w-full border rounded px-3 py-2 mb-3">
99
+
100
+ <input type="password" placeholder="Password" id="Password" class="w-full border rounded px-3 py-2 mb-2">
101
+
102
+ <p id="loginError" class="hidden text-red-600 text-sm mb-3">
103
+ </p>
104
+
105
+ <button class="w-full bg-blue-600 text-white py-2 rounded" id="loginButtonId">
106
+ Login
107
+ </button>
108
+
109
+ </div>
110
+
111
+ </div>
112
+
113
+ <script type="module" src="./Index/start.js"></script>
114
+
115
+ <script>
116
+ const loginModal =
117
+ document.getElementById("loginModal");
118
+
119
+ const showLoginModal = () => {
120
+ loginModal.classList.remove("hidden");
121
+ };
122
+
123
+ loginModal.addEventListener("click", (event) => {
124
+ if (event.target === loginModal) {
125
+ loginModal.classList.add("hidden");
126
+ };
127
+ });
128
+ </script>
129
+
130
+ </body>
131
+
132
+ </html>