json-renderers 1.18.8 → 1.19.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-renderers",
3
- "version": "1.18.8",
3
+ "version": "1.19.1",
4
4
  "description": "Browser DOM component renderer built on top of json-renderers-build and @keshavsoft/json-to-tag",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./v18/index.js";
2
- export { default } from "./v18/index.js";
1
+ export * from "./v19/index.js";
2
+ export { default } from "./v19/index.js";
@@ -0,0 +1,28 @@
1
+ import jsonRenderBuild from "json-renderers-build";
2
+
3
+ // --- Story of Spec Build ---
4
+ const startFunc = ({
5
+ inColumns,
6
+ inType = "table",
7
+ inData,
8
+ inShowLog = false,
9
+ inOptions
10
+ } = {}) => {
11
+ const localData = inData ?? [];
12
+ const localColumns = inColumns;
13
+ const localType = inType;
14
+ const localShowLog = inShowLog;
15
+ const localOptions = inOptions;
16
+
17
+ const specAsJsonToDom = jsonRenderBuild({
18
+ type: localType,
19
+ data: localData,
20
+ columns: localColumns,
21
+ showLog: localShowLog,
22
+ options: localOptions
23
+ });
24
+
25
+ return specAsJsonToDom;
26
+ };
27
+
28
+ export default startFunc;
@@ -0,0 +1,35 @@
1
+ import registerGlobal from "./registerGlobal.js";
2
+
3
+ import guardFunc from "json-renderers-guard";
4
+
5
+ import buildSpec from "./buildSpec/index.js";
6
+ import renderToDom from "./renderToDom/index.js";
7
+
8
+ // Main orchestrator: coordinates validation, spec building, and DOM rendering
9
+ const render = (config = {}) => {
10
+ guardFunc(config);
11
+ const showLog = config?.showLog;
12
+ const localOptions = config?.options;
13
+
14
+ if (showLog) console.log("first : ", config?.options, config?.columns, config?.data, config?.appendPosition);
15
+
16
+ const spec = buildSpec({
17
+ inColumns: config.columns,
18
+ inData: config.data,
19
+ inType: config.type,
20
+ inShowLog: config.showLog,
21
+ inOptions: localOptions
22
+ });
23
+
24
+ return renderToDom({
25
+ inSpec: spec,
26
+ inTargetHtmlId: config.targetHtmlId,
27
+ inAppendPosition: config.appendPosition,
28
+ inShowLog: config.showLog
29
+ });
30
+ };
31
+
32
+ registerGlobal(render);
33
+
34
+ export { render };
35
+ export default render;
@@ -1,5 +1,5 @@
1
1
  export const meta = {
2
- version: "v16.0.0",
2
+ version: "v19.0.0",
3
3
  description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
4
4
  };
5
5
 
@@ -0,0 +1,16 @@
1
+ import meta from "./meta.js";
2
+
3
+ export const registerGlobal = (inDefinition) => {
4
+ const localDefinition = inDefinition;
5
+
6
+ if (typeof globalThis === "undefined" || !localDefinition) return;
7
+
8
+ globalThis.ks ??= {};
9
+
10
+ globalThis.ks.jsonRenderers = {
11
+ meta,
12
+ render: localDefinition
13
+ };
14
+ };
15
+
16
+ export default registerGlobal;
@@ -0,0 +1,47 @@
1
+ import jsonToTag from "@keshavsoft/json-to-tag";
2
+
3
+ // --- Story of DOM Rendering and Mounting ---
4
+ const renderToDom = ({
5
+ inSpec,
6
+ inTargetHtmlId,
7
+ inAppendPosition,
8
+ inShowLog = false
9
+ } = {}) => {
10
+ const localSpec = inSpec;
11
+ const localTargetHtmlId = inTargetHtmlId;
12
+ const localAppendPosition = inAppendPosition;
13
+ const localShowLog = inShowLog;
14
+
15
+ const content = jsonToTag(localSpec);
16
+
17
+ if (localShowLog) console.log("renderToDom 1 (content):", content);
18
+
19
+ const container = document.getElementById(localTargetHtmlId);
20
+ if (!container) return null;
21
+
22
+ const isCollection = Array.isArray(content) ||
23
+ content instanceof NodeList ||
24
+ content instanceof HTMLCollection;
25
+
26
+ if (isCollection) {
27
+ if (localAppendPosition === "prepend") {
28
+ container.prepend(...content);
29
+ } else {
30
+ container.append(...content);
31
+ }
32
+ } else {
33
+ if (localAppendPosition === "prepend") {
34
+ container.prepend(content);
35
+ } else {
36
+ container.innerHTML = "";
37
+ container.append(content);
38
+ }
39
+ }
40
+
41
+ if (localShowLog) console.log("renderToDom 2 (mounted):", container);
42
+
43
+ return container;
44
+ };
45
+
46
+ export { renderToDom };
47
+ export default renderToDom;
@@ -1,39 +0,0 @@
1
- import jsonRenderBuild from "json-renderers-build";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
-
4
- // --- Story of Table Render ---
5
- const startFunc = ({
6
- inTargetHtmlId,
7
- inColumns, type,
8
- inData, showLog
9
- } = {}) => {
10
- // debugger
11
- const localTargetHtmlId = inTargetHtmlId;
12
- const localData = inData ?? [];
13
- const localColumns = inColumns;
14
-
15
- if (showLog) console.log("buildSpec 1 :", localTargetHtmlId, localData.localColumns);
16
-
17
- let specAsJsonToDom = jsonRenderBuild({
18
- type,
19
- targetHtmlId: localTargetHtmlId,
20
- data: localData,
21
- columns: localColumns
22
- });
23
-
24
- let jsonToSend = specAsJsonToDom;
25
-
26
-
27
- // if (!("tagName" in specAsJsonToDom) && "children" in specAsJsonToDom) {
28
- // jsonToSend = specAsJsonToDom.children;
29
- // };
30
-
31
- const content = jsonToTag(jsonToSend);
32
- console.log("buildSpec 2 :", jsonToSend, content);
33
-
34
- if (showLog) console.log("buildSpec 3 :", content);
35
-
36
- return content;
37
- };
38
-
39
- export default startFunc;
package/src/v14/index.js DELETED
@@ -1,81 +0,0 @@
1
- import registerGlobal from "./registerGlobal.js";
2
-
3
- import buildSpec from "./buildSpec/index.js";
4
-
5
- const render = ({
6
- type = "table",
7
- targetHtmlId,
8
- data,
9
- classToApply,
10
- columns,
11
- appendPosition,
12
- showLog = false
13
- } = {}) => {
14
- const rawType = type;
15
-
16
- const localTargetHtmlId = targetHtmlId;
17
- const localData = data;
18
- const localColumns = columns;
19
-
20
- if (showLog) console.log("showLog 1 :", rawType, targetHtmlId, data, classToApply, columns, appendPosition);
21
-
22
- // Default to table renderer
23
- const content = buildSpec({
24
- inTargetHtmlId: localTargetHtmlId,
25
- inColumns: localColumns, showLog,
26
- inData: localData, type: rawType
27
- });
28
- if (showLog) console.log("showLog 2 :", content);
29
-
30
- const container = document.getElementById(localTargetHtmlId);
31
-
32
- if (showLog) console.log("showLog 3 :", container);
33
-
34
- const isCollection = Array.isArray(content) ||
35
- content instanceof NodeList ||
36
- content instanceof HTMLCollection;
37
-
38
- // console.log("prepend ---------:", rawType, isCollection, container, content, localData);
39
-
40
-
41
- if (isCollection) {
42
- if (appendPosition === "prepend") {
43
- container.prepend(...content);
44
- } else {
45
- container.append(...content);
46
- };
47
- } else {
48
- if (appendPosition === "prepend") {
49
- container.prepend(content);
50
- } else {
51
- if (container) container.innerHTML = "";
52
- container.append(content);
53
- };
54
- };
55
-
56
- // if (appendPosition === "prepend") {
57
-
58
- // container.prepend(content);
59
- // } else {
60
- // if (container) container.innerHTML = "";
61
-
62
- // console.log("showLog 5 ---------:", container, content);
63
-
64
- // container.append(content);
65
-
66
- // // if (content != null && typeof content[Symbol.iterator] === "function") {
67
- // // container.append(...content);
68
- // // } else {
69
-
70
- // // container.append(content);
71
- // // };
72
- // };
73
-
74
- if (showLog) console.log("showLog 5 :", container);
75
-
76
- return container;
77
- };
78
-
79
- registerGlobal(render);
80
-
81
- export default render;
package/src/v14/meta.js DELETED
@@ -1,6 +0,0 @@
1
- export const meta = {
2
- version: "v14.0.0",
3
- description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
4
- };
5
-
6
- export default meta;
@@ -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,39 +0,0 @@
1
- import jsonRenderBuild from "json-renderers-build";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
-
4
- // --- Story of Table Render ---
5
- const startFunc = ({
6
- inTargetHtmlId,
7
- inColumns, type,
8
- inData, showLog
9
- } = {}) => {
10
- // debugger
11
- const localTargetHtmlId = inTargetHtmlId;
12
- const localData = inData ?? [];
13
- const localColumns = inColumns;
14
-
15
- if (showLog) console.log("buildSpec 1 :", localTargetHtmlId, localData.localColumns);
16
-
17
- let specAsJsonToDom = jsonRenderBuild({
18
- type,
19
- targetHtmlId: localTargetHtmlId,
20
- data: localData,
21
- columns: localColumns
22
- });
23
-
24
- let jsonToSend = specAsJsonToDom;
25
-
26
-
27
- // if (!("tagName" in specAsJsonToDom) && "children" in specAsJsonToDom) {
28
- // jsonToSend = specAsJsonToDom.children;
29
- // };
30
-
31
- const content = jsonToTag(jsonToSend);
32
- console.log("buildSpec 2 :", jsonToSend, content);
33
-
34
- if (showLog) console.log("buildSpec 3 :", content);
35
-
36
- return content;
37
- };
38
-
39
- export default startFunc;
@@ -1,20 +0,0 @@
1
- const deriveColumnsFromData = ({ inData = [] } = {}) => {
2
- const localData = inData;
3
-
4
- if (!Array.isArray(localData) || localData.length === 0) {
5
- return [];
6
- }
7
-
8
- const firstRow = localData[0];
9
- if (!firstRow || typeof firstRow !== "object") {
10
- return [];
11
- }
12
-
13
- return Object.keys(firstRow).map(key => ({
14
- key,
15
- label: key
16
- }));
17
- };
18
-
19
- export { deriveColumnsFromData };
20
- export default deriveColumnsFromData;
package/src/v15/guard.js DELETED
@@ -1,35 +0,0 @@
1
- const gaurdFunc = ({ intype, indata, intargetHtmlId, incoumns, inshowLog }) => {
2
-
3
- if (typeof intype !== "string" || intype.trim() === "") {
4
- console.error("type must be a string");
5
- throw new Error("type must be a string");
6
- }
7
-
8
- if (!Array.isArray(indata)) {
9
- console.error("data must be an Array");
10
- throw new Error("data must be an Array");
11
- };
12
- if (typeof intargetHtmlId !== "string" || !intargetHtmlId.trim()) {
13
- console.error("targetHtmlId must be a non-empty string");
14
- throw new TypeError("targetHtmlId must be a non-empty string");
15
- }
16
-
17
- if (!Array.isArray(incoumns)) {
18
- console.error("columns must be an array");
19
- throw new TypeError("columns must be an array");
20
- }
21
-
22
- if (typeof inshowLog !== "boolean") {
23
- console.error("showLog must be a boolean");
24
- throw new TypeError("showLog must be a boolean");
25
- }
26
-
27
- if (inshowLog !== true) {
28
- console.error("showLog must be true");
29
- throw new TypeError("showLog must be true");
30
- }
31
-
32
- return true;
33
- };
34
-
35
- export default gaurdFunc;
package/src/v15/index.js DELETED
@@ -1,70 +0,0 @@
1
- import registerGlobal from "./registerGlobal.js";
2
- import gaurdFunc from "./guard.js";
3
-
4
- import buildSpec from "./buildSpec/index.js";
5
-
6
- const render = ({
7
- type = "table",
8
- targetHtmlId,
9
- data,
10
- classToApply,
11
- columns,
12
- appendPosition,
13
- showLog = false
14
- } = {}) => {
15
- const rawType = type;
16
-
17
- const localTargetHtmlId = targetHtmlId;
18
- const localData = data;
19
- const localColumns = columns;
20
- const localShowLog = showLog;
21
-
22
- gaurdFunc({
23
- intype: rawType,
24
- indata: localData,
25
- intargetHtmlId: localTargetHtmlId,
26
- incoumns: localColumns,
27
- inshowLog: localShowLog
28
- });
29
-
30
- if (localShowLog);
31
-
32
- // Default to table renderer
33
- const content = buildSpec({
34
- inTargetHtmlId: localTargetHtmlId,
35
- inColumns: localColumns, showLog,
36
- inData: localData, type: rawType
37
- });
38
- if (showLog) console.log("showLog 2 :", content);
39
-
40
- const container = document.getElementById(localTargetHtmlId);
41
-
42
- if (showLog) console.log("showLog 3 :", container);
43
-
44
- const isCollection = Array.isArray(content) ||
45
- content instanceof NodeList ||
46
- content instanceof HTMLCollection;
47
-
48
- if (isCollection) {
49
- if (appendPosition === "prepend") {
50
- container.prepend(...content);
51
- } else {
52
- container.append(...content);
53
- };
54
- } else {
55
- if (appendPosition === "prepend") {
56
- container.prepend(content);
57
- } else {
58
- if (container) container.innerHTML = "";
59
- container.append(content);
60
- };
61
- };
62
-
63
- if (showLog) console.log("showLog 5 :", container);
64
-
65
- return container;
66
- };
67
-
68
- registerGlobal(render);
69
-
70
- export default render;
package/src/v15/meta.js DELETED
@@ -1,6 +0,0 @@
1
- export const meta = {
2
- version: "v15.0.0",
3
- description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
4
- };
5
-
6
- export default meta;
@@ -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,40 +0,0 @@
1
- import jsonRenderBuild from "json-renderers-build";
2
- import jsonToTag from "@keshavsoft/json-to-tag";
3
-
4
- // --- Story of Table Render ---
5
- const startFunc = ({
6
- inTargetHtmlId,
7
- inColumns,
8
- inType = "table",
9
- inData,
10
- inShowLog = false
11
- } = {}) => {
12
- const localTargetHtmlId = inTargetHtmlId;
13
- const localData = inData ?? [];
14
- const localColumns = inColumns;
15
- const localType = inType;
16
- const localShowLog = inShowLog;
17
-
18
- if (localShowLog) console.log("buildSpec 1 :", localTargetHtmlId, localData, localColumns);
19
-
20
- let specAsJsonToDom = jsonRenderBuild({
21
- type: localType,
22
- targetHtmlId: localTargetHtmlId,
23
- data: localData,
24
- columns: localColumns
25
- });
26
-
27
- let jsonToSend = specAsJsonToDom;
28
-
29
- const content = jsonToTag(jsonToSend);
30
-
31
- if (localShowLog) {
32
- console.log("buildSpec 2 :", jsonToSend, content);
33
- console.log("buildSpec 3 :", content);
34
- }
35
-
36
- return content;
37
- };
38
-
39
- export { startFunc };
40
- export default startFunc;
@@ -1,20 +0,0 @@
1
- const deriveColumnsFromData = ({ inData = [] } = {}) => {
2
- const localData = inData;
3
-
4
- if (!Array.isArray(localData) || localData.length === 0) {
5
- return [];
6
- }
7
-
8
- const firstRow = localData[0];
9
- if (!firstRow || typeof firstRow !== "object") {
10
- return [];
11
- }
12
-
13
- return Object.keys(firstRow).map(key => ({
14
- key,
15
- label: key
16
- }));
17
- };
18
-
19
- export { deriveColumnsFromData };
20
- export default deriveColumnsFromData;
package/src/v16/guard.js DELETED
@@ -1,38 +0,0 @@
1
- const guardFunc = ({ inConfig } = {}) => {
2
- const localConfig = inConfig;
3
-
4
- if (!localConfig || typeof localConfig !== "object") {
5
- console.error("Config must be an object");
6
- throw new TypeError("Config must be an object");
7
- }
8
-
9
- if (typeof localConfig?.type !== "string") {
10
- console.error("type must be string only");
11
- throw new Error("type must be string only");
12
- };
13
-
14
- if (!Array.isArray(localConfig.data)) {
15
- console.error("data must be an Array");
16
- throw new TypeError("data must be an Array");
17
- }
18
-
19
- if (typeof localConfig.targetHtmlId !== "string" || !localConfig.targetHtmlId.trim()) {
20
- console.error("targetHtmlId must be a non-empty string");
21
- throw new TypeError("targetHtmlId must be a non-empty string");
22
- }
23
-
24
- if (!Array.isArray(localConfig.columns)) {
25
- console.error("columns must be an array");
26
- throw new TypeError("columns must be an array");
27
- }
28
-
29
- if (localConfig.showLog !== undefined && typeof localConfig.showLog !== "boolean") {
30
- console.error("showLog must be a boolean");
31
- throw new TypeError("showLog must be a boolean");
32
- }
33
-
34
- return true;
35
- };
36
-
37
- export { guardFunc };
38
- export default guardFunc;