json-renderers 1.14.1 → 1.17.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 (53) hide show
  1. package/README.md +6 -1
  2. package/docs/aboutSelect.html +964 -0
  3. package/docs/aboutTable.html +12 -0
  4. package/docs/dist/min.js +1577 -1063
  5. package/docs/dist/v14/min.js +1063 -1063
  6. package/docs/dist/v15/min.js +1510 -0
  7. package/docs/dist/v16/min.js +1576 -0
  8. package/docs/dist/v17/min.js +1577 -0
  9. package/docs/index.html +283 -79
  10. package/docs/select.html +33 -11
  11. package/docs/table/cdn.html +634 -0
  12. package/docs/table/index.html +607 -0
  13. package/docs/table/windowKs.html +332 -0
  14. package/docs/table/windowKsV1.html +647 -0
  15. package/docs/table.html +34 -11
  16. package/package.json +2 -2
  17. package/src/index.js +2 -2
  18. package/src/v15/guard.js +35 -0
  19. package/src/{v13 → v15}/index.js +11 -22
  20. package/src/{v11 → v15}/meta.js +1 -1
  21. package/src/v16/buildSpec/index.js +40 -0
  22. package/src/v16/guard.js +38 -0
  23. package/src/v16/index.js +106 -0
  24. package/src/{v13 → v16}/meta.js +1 -1
  25. package/src/v16/registerGlobal.js +27 -0
  26. package/src/v17/buildSpec/index.js +25 -0
  27. package/src/v17/getSpec.js +12 -0
  28. package/src/v17/guard.js +41 -0
  29. package/src/v17/index.js +29 -0
  30. package/src/{v12 → v17}/meta.js +1 -1
  31. package/src/v17/registerGlobal.js +28 -0
  32. package/src/v17/renderToDom/index.js +47 -0
  33. package/src/v17/spec.json +9 -0
  34. package/src/v17/validateConfig.js +37 -0
  35. package/src/v11/dataLists/fragments.json +0 -1
  36. package/src/v11/dataLists/index.js +0 -32
  37. package/src/v11/dataLists/skeleton.json +0 -38
  38. package/src/v11/index.js +0 -62
  39. package/src/v11/select/fragments.json +0 -1
  40. package/src/v11/select/index.js +0 -34
  41. package/src/v11/select/skeleton.json +0 -23
  42. package/src/v11/table/index.js +0 -35
  43. package/src/v11/table/skeleton.json +0 -47
  44. package/src/v12/index.js +0 -62
  45. package/src/v12/registerGlobal.js +0 -14
  46. package/src/v12/table/index.js +0 -35
  47. package/src/v12/table/skeleton.json +0 -47
  48. package/src/v13/registerGlobal.js +0 -14
  49. /package/src/{v13 → v15}/buildSpec/index.js +0 -0
  50. /package/src/{v11 → v15}/common/deriveColumnsFromData.js +0 -0
  51. /package/src/{v11 → v15}/registerGlobal.js +0 -0
  52. /package/src/{v12 → v16}/common/deriveColumnsFromData.js +0 -0
  53. /package/src/{v13 → v17}/common/deriveColumnsFromData.js +0 -0
@@ -0,0 +1,37 @@
1
+ import guardFunc from "./guard.js";
2
+
3
+ // Validates the configuration object against schema constraints
4
+ const validateConfig = ({
5
+ type = "table",
6
+ targetHtmlId,
7
+ data,
8
+ columns,
9
+ classToApply = "",
10
+ appendPosition = "replace",
11
+ showLog = false
12
+ } = {}) => {
13
+ const localType = type;
14
+ const localTargetHtmlId = targetHtmlId;
15
+ const localData = data;
16
+ const localColumns = columns;
17
+ const localClassToApply = classToApply;
18
+ const localAppendPosition = appendPosition;
19
+ const localShowLog = showLog;
20
+
21
+ const config = {
22
+ type: localType,
23
+ targetHtmlId: localTargetHtmlId,
24
+ data: localData,
25
+ columns: localColumns,
26
+ classToApply: localClassToApply,
27
+ appendPosition: localAppendPosition,
28
+ showLog: localShowLog
29
+ };
30
+
31
+ guardFunc({ inConfig: config });
32
+
33
+ return config;
34
+ };
35
+
36
+ export { validateConfig };
37
+ export default validateConfig;
@@ -1 +0,0 @@
1
- {}
@@ -1,32 +0,0 @@
1
- // import jsonToSpec from "../../../node_modules/json-to-spec/index.js";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
- import jsonTraversal from "../../../node_modules/json-traversal/index.js";
4
-
5
- import skeletonJson from "./skeleton.json" with { type: "json" };
6
-
7
- const startFunc = ({ targetHtmlId, inData, inSkeletonType = "default" } = {}) => {
8
-
9
- // const specAsJsonToDom = jsonToSpec({
10
- // specJson: skeletonJson[inSkeletonType],
11
- // dataJson: inData
12
- // });
13
- const skeletonNeeded = skeletonJson[inSkeletonType];
14
-
15
- const specAsJsonToDom = jsonTraversal.transform(inData, skeletonNeeded);
16
-
17
-
18
- const container = document.getElementById(targetHtmlId);
19
-
20
- if (container) container.innerHTML = "";
21
-
22
- const createdElement = jsonToTag(specAsJsonToDom);
23
-
24
- if (Array.isArray(createdElement)) {
25
- // container.appendChild(createdElement)
26
- createdElement.forEach(element => container.append(element));
27
- } else {
28
- container.append(createdElement);
29
- };
30
- };
31
-
32
- export default startFunc;
@@ -1,38 +0,0 @@
1
- {
2
- "old": {
3
- "tagName": "datalist",
4
- "attributes": {
5
- "id": "LedgerName"
6
- },
7
- "jsonToSpec": {
8
- "operation": "loopArray",
9
- "source": "LedgerName",
10
- "template": {
11
- "tagName": "option",
12
- "attributes": {
13
- "value": "${}"
14
- },
15
- "textContent": "${}"
16
- }
17
- },
18
- "children": []
19
- },
20
- "default": {
21
- "mapping": {
22
- "tagName": "$datalist",
23
- "attributes": {
24
- "id": "$LedgerName"
25
- },
26
- "children": {
27
- "list": "LedgerName",
28
- "item": {
29
- "tagName": "$option",
30
- "attributes": {
31
- "value": ""
32
- },
33
- "textContent": ""
34
- }
35
- }
36
- }
37
- }
38
- }
package/src/v11/index.js DELETED
@@ -1,62 +0,0 @@
1
- import registerGlobal from "./registerGlobal.js";
2
-
3
- import renderTable from "./table/index.js";
4
-
5
- const RENDERER_MAP = {
6
- table: renderTable
7
- };
8
-
9
- const render = ({
10
- type = "table",
11
- targetHtmlId,
12
- data,
13
- classToApply,
14
- inTargetHtmlId,
15
- inData,
16
- columns,
17
- inColumns,
18
- colGroup,
19
- inColGroup,
20
- footerData,
21
- inFooterData,
22
- config,
23
- inConfig,
24
- variant,
25
- skeletonType,
26
- inSkeletonType,
27
- showLog = false,
28
- inShowLog
29
- } = {}) => {
30
- const rawType = type;
31
- const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
32
- const renderer = RENDERER_MAP[resolvedType];
33
-
34
- if (!renderer) {
35
- console.error(
36
- `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
37
- );
38
- return null;
39
- }
40
-
41
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
42
- const localData = inData ?? data;
43
- const localColumns = inColumns ?? columns;
44
- const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
45
- const localShowLog = inShowLog ?? showLog ?? false;
46
-
47
- // Default to table renderer
48
- return renderer({
49
- targetHtmlId: localTargetHtmlId,
50
- inColumns: localColumns,
51
- inData: localData,
52
- inColGroup: inColGroup ?? colGroup,
53
- inFooterData: inFooterData ?? footerData ?? [],
54
- inConfig: inConfig ?? config ?? {},
55
- inSkeletonType: localSkeletonType,
56
- inShowLog: localShowLog
57
- });
58
- };
59
-
60
- registerGlobal(render);
61
-
62
- export default render;
@@ -1 +0,0 @@
1
- {}
@@ -1,34 +0,0 @@
1
- import jsonTraversal from "../../../node_modules/json-traversal/index.js";
2
-
3
- // import jsonToSpec from "../../../node_modules/json-to-spec/index.js";
4
- // import jsonToTag from "@keshavsoft/json-to-tag";
5
- import jsonToTag from "@keshavsoft/json-to-tag";
6
-
7
- import skeletonJson from "./skeleton.json" with { type: "json" };
8
-
9
- const startFunc = ({ targetHtmlId, inData,
10
- inSkeletonType = "default", inClassToApply } = {}) => {
11
-
12
- console.log("aaaaaaaaaa");
13
-
14
- const skeletonNeeded = skeletonJson[inSkeletonType];
15
- skeletonNeeded.mapping.attributes.class = `$${inClassToApply}`;
16
- // skeletonNeeded.mapping.attributes.class = inClassToApply;
17
- debugger;
18
-
19
- const specAsJsonToDom = jsonTraversal.transform(inData, skeletonNeeded);
20
-
21
- const container = document.getElementById(targetHtmlId);
22
- if (container) container.innerHTML = "";
23
-
24
- const createdElement = jsonToTag(specAsJsonToDom);
25
-
26
- if (Array.isArray(createdElement)) {
27
- // container.appendChild(createdElement)
28
- createdElement.forEach(element => container.append(element));
29
- } else {
30
- container.append(createdElement);
31
- };
32
- };
33
-
34
- export default startFunc;
@@ -1,23 +0,0 @@
1
- {
2
- "default": {
3
- "mapping": {
4
- "tagName": "$select",
5
- "attributes": {
6
- "id": "$LedgerName",
7
- "class": "$keshav"
8
- },
9
- "children": [
10
- {
11
- "list": "LedgerName",
12
- "item": {
13
- "tagName": "$option",
14
- "attributes": {
15
- "value": ""
16
- },
17
- "textContent": ""
18
- }
19
- }
20
- ]
21
- }
22
- }
23
- }
@@ -1,35 +0,0 @@
1
- import jsonToSpec from "json-to-spec";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
-
4
- import skeletonJson from './skeleton.json' with { type: 'json' };
5
-
6
- // --- Story of Table Render ---
7
- const startFunc = ({
8
- targetHtmlId,
9
- inTargetHtmlId,
10
- inColumns,
11
- inData,
12
- } = {}) => {
13
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
14
- const localData = inData ?? [];
15
- const localColumns = inColumns;
16
-
17
- let specAsJsonToDom = jsonToSpec(skeletonJson.default, {
18
- columns: localColumns, data: localData
19
- });
20
-
21
- // console.log("specAsJsonToDom : ", specAsJsonToDom);
22
-
23
- if (!("tagName" in specAsJsonToDom)) {
24
- specAsJsonToDom = specAsJsonToDom.children;
25
- };
26
-
27
- const container = document.getElementById(localTargetHtmlId);
28
-
29
- if (container) container.innerHTML = "";
30
-
31
- const content = jsonToTag(specAsJsonToDom);
32
- container.append(content);
33
- };
34
-
35
- export default startFunc;
@@ -1,47 +0,0 @@
1
- {
2
- "default": {
3
- "tagName": "table",
4
- "attributes": {
5
- "class": "table table-hover table-striped mb-0"
6
- },
7
- "children": [
8
- {
9
- "tagName": "thead",
10
- "children": [
11
- {
12
- "tagName": "tr",
13
- "jsonToSpec": {
14
- "operation": "loopCollection",
15
- "source": "columns",
16
- "template": {
17
- "tagName": "th",
18
- "textContent": "${title}"
19
- }
20
- },
21
- "children": []
22
- }
23
- ]
24
- },
25
- {
26
- "tagName": "tbody",
27
- "jsonToSpec": {
28
- "operation": "loopCollection",
29
- "source": "data",
30
- "template": {
31
- "tagName": "tr",
32
- "jsonToSpec": {
33
- "operation": "loopObject",
34
- "source": "data",
35
- "template": {
36
- "tagName": "td",
37
- "textContent": "${value}"
38
- }
39
- },
40
- "children": []
41
- }
42
- },
43
- "children": []
44
- }
45
- ]
46
- }
47
- }
package/src/v12/index.js DELETED
@@ -1,62 +0,0 @@
1
- import registerGlobal from "./registerGlobal.js";
2
-
3
- import renderTable from "./table/index.js";
4
-
5
- const RENDERER_MAP = {
6
- table: renderTable
7
- };
8
-
9
- const render = ({
10
- type = "table",
11
- targetHtmlId,
12
- data,
13
- classToApply,
14
- inTargetHtmlId,
15
- inData,
16
- columns,
17
- inColumns,
18
- colGroup,
19
- inColGroup,
20
- footerData,
21
- inFooterData,
22
- config,
23
- inConfig,
24
- variant,
25
- skeletonType,
26
- inSkeletonType,
27
- showLog = false,
28
- inShowLog
29
- } = {}) => {
30
- const rawType = type;
31
- const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
32
- const renderer = RENDERER_MAP[resolvedType];
33
-
34
- if (!renderer) {
35
- console.error(
36
- `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
37
- );
38
- return null;
39
- }
40
-
41
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
42
- const localData = inData ?? data;
43
- const localColumns = inColumns ?? columns;
44
- const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
45
- const localShowLog = inShowLog ?? showLog ?? false;
46
-
47
- // Default to table renderer
48
- return renderer({
49
- targetHtmlId: localTargetHtmlId,
50
- inColumns: localColumns,
51
- inData: localData,
52
- inColGroup: inColGroup ?? colGroup,
53
- inFooterData: inFooterData ?? footerData ?? [],
54
- inConfig: inConfig ?? config ?? {},
55
- inSkeletonType: localSkeletonType,
56
- inShowLog: localShowLog
57
- });
58
- };
59
-
60
- registerGlobal(render);
61
-
62
- export default render;
@@ -1,14 +0,0 @@
1
- import meta from "./meta.js";
2
-
3
- export const registerGlobal = (inFuncDefinition) => {
4
- if (typeof globalThis === "undefined" || !inFuncDefinition) return;
5
-
6
- globalThis.ks ??= {};
7
-
8
- globalThis.ks.jsonRenderers ??= {
9
- meta,
10
- renderToDom: inFuncDefinition
11
- };
12
- };
13
-
14
- export default registerGlobal;
@@ -1,35 +0,0 @@
1
- import jsonToSpec from "json-to-spec";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
-
4
- import skeletonJson from './skeleton.json' with { type: 'json' };
5
-
6
- // --- Story of Table Render ---
7
- const startFunc = ({
8
- targetHtmlId,
9
- inTargetHtmlId,
10
- inColumns,
11
- inData,
12
- } = {}) => {
13
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
14
- const localData = inData ?? [];
15
- const localColumns = inColumns;
16
-
17
- let specAsJsonToDom = jsonToSpec(skeletonJson.default, {
18
- columns: localColumns, data: localData
19
- });
20
-
21
- // console.log("specAsJsonToDom : ", specAsJsonToDom);
22
-
23
- if (!("tagName" in specAsJsonToDom)) {
24
- specAsJsonToDom = specAsJsonToDom.children;
25
- };
26
-
27
- const container = document.getElementById(localTargetHtmlId);
28
-
29
- if (container) container.innerHTML = "";
30
-
31
- const content = jsonToTag(specAsJsonToDom);
32
- container.append(content);
33
- };
34
-
35
- export default startFunc;
@@ -1,47 +0,0 @@
1
- {
2
- "default": {
3
- "tagName": "table",
4
- "attributes": {
5
- "class": "table table-hover table-striped mb-0"
6
- },
7
- "children": [
8
- {
9
- "tagName": "thead",
10
- "children": [
11
- {
12
- "tagName": "tr",
13
- "jsonToSpec": {
14
- "operation": "loopCollection",
15
- "source": "columns",
16
- "template": {
17
- "tagName": "th",
18
- "textContent": "${title}"
19
- }
20
- },
21
- "children": []
22
- }
23
- ]
24
- },
25
- {
26
- "tagName": "tbody",
27
- "jsonToSpec": {
28
- "operation": "loopCollection",
29
- "source": "data",
30
- "template": {
31
- "tagName": "tr",
32
- "jsonToSpec": {
33
- "operation": "loopObject",
34
- "source": "data",
35
- "template": {
36
- "tagName": "td",
37
- "textContent": "${value}"
38
- }
39
- },
40
- "children": []
41
- }
42
- },
43
- "children": []
44
- }
45
- ]
46
- }
47
- }
@@ -1,14 +0,0 @@
1
- import meta from "./meta.js";
2
-
3
- export const registerGlobal = (inFuncDefinition) => {
4
- if (typeof globalThis === "undefined" || !inFuncDefinition) return;
5
-
6
- globalThis.ks ??= {};
7
-
8
- globalThis.ks.jsonRenderers ??= {
9
- meta,
10
- renderToDom: inFuncDefinition
11
- };
12
- };
13
-
14
- export default registerGlobal;
File without changes
File without changes