json-renderers 1.9.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/README.md +128 -0
- package/docs/dist/v4/min.js +791 -0
- package/docs/dist/v5/min.js +800 -0
- package/docs/dist/v6/min.js +854 -0
- package/docs/dist/v8/min.js +1787 -0
- package/docs/dist/v9/min.js +1032 -0
- package/package.json +36 -0
- package/src/index.js +2 -0
- package/src/v5/dataLists/fragments.json +1 -0
- package/src/v5/dataLists/index.js +26 -0
- package/src/v5/dataLists/skeleton.json +20 -0
- package/src/v5/form/attachFormClickEventListener.js +27 -0
- package/src/v5/form/clickFunc/extractFormData.js +27 -0
- package/src/v5/form/clickFunc/handleNew.js +24 -0
- package/src/v5/form/clickFunc/handleSave.js +33 -0
- package/src/v5/form/clickFunc/index.js +32 -0
- package/src/v5/form/index.js +87 -0
- package/src/v5/form/structure.json +410 -0
- package/src/v5/index.js +150 -0
- package/src/v5/meta.js +6 -0
- package/src/v5/navTabs/fragments.json +59 -0
- package/src/v5/navTabs/index.js +82 -0
- package/src/v5/navTabs/skeleton.json +18 -0
- package/src/v5/registerGlobal.js +14 -0
- package/src/v5/select/fragments.json +1 -0
- package/src/v5/select/index.js +31 -0
- package/src/v5/select/skeleton.json +21 -0
- package/src/v5/table/attachTableClickEventListener.js +22 -0
- package/src/v5/table/buildTableDataAsJson.js +19 -0
- package/src/v5/table/buildTableDomElement.js +21 -0
- package/src/v5/table/buildTableStructureSpec.js +28 -0
- package/src/v5/table/clickFunc/v3/createTable.js +16 -0
- package/src/v5/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +23 -0
- package/src/v5/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +21 -0
- package/src/v5/table/clickFunc/v3/getContainer/index.js +39 -0
- package/src/v5/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +14 -0
- package/src/v5/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +12 -0
- package/src/v5/table/clickFunc/v3/index.js +21 -0
- package/src/v5/table/fragments.json +112 -0
- package/src/v5/table/index.js +72 -0
- package/src/v5/table/resolveTargetContainer.js +9 -0
- package/src/v5/table/skeleton.json +371 -0
- package/src/v6/dataLists/fragments.json +1 -0
- package/src/v6/dataLists/index.js +32 -0
- package/src/v6/dataLists/skeleton.json +38 -0
- package/src/v6/form/attachFormClickEventListener.js +27 -0
- package/src/v6/form/clickFunc/extractFormData.js +27 -0
- package/src/v6/form/clickFunc/handleNew.js +24 -0
- package/src/v6/form/clickFunc/handleSave.js +33 -0
- package/src/v6/form/clickFunc/index.js +32 -0
- package/src/v6/form/index.js +87 -0
- package/src/v6/form/structure.json +410 -0
- package/src/v6/index.js +150 -0
- package/src/v6/meta.js +6 -0
- package/src/v6/navTabs/fragments.json +59 -0
- package/src/v6/navTabs/index.js +82 -0
- package/src/v6/navTabs/skeleton.json +18 -0
- package/src/v6/registerGlobal.js +14 -0
- package/src/v6/select/fragments.json +1 -0
- package/src/v6/select/index.js +34 -0
- package/src/v6/select/skeleton.json +23 -0
- package/src/v6/table/attachTableClickEventListener.js +22 -0
- package/src/v6/table/buildTableDataAsJson.js +19 -0
- package/src/v6/table/buildTableDomElement.js +21 -0
- package/src/v6/table/buildTableStructureSpec.js +28 -0
- package/src/v6/table/clickFunc/v3/createTable.js +16 -0
- package/src/v6/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +23 -0
- package/src/v6/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +21 -0
- package/src/v6/table/clickFunc/v3/getContainer/index.js +39 -0
- package/src/v6/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +14 -0
- package/src/v6/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +12 -0
- package/src/v6/table/clickFunc/v3/index.js +21 -0
- package/src/v6/table/fragments.json +112 -0
- package/src/v6/table/index.js +72 -0
- package/src/v6/table/resolveTargetContainer.js +9 -0
- package/src/v6/table/skeleton.json +371 -0
- package/src/v7/common/deriveColumnsFromData.js +20 -0
- package/src/v7/dataLists/fragments.json +1 -0
- package/src/v7/dataLists/index.js +32 -0
- package/src/v7/dataLists/skeleton.json +38 -0
- package/src/v7/form/attachFormClickEventListener.js +27 -0
- package/src/v7/form/clickFunc/extractFormData.js +27 -0
- package/src/v7/form/clickFunc/handleNew.js +24 -0
- package/src/v7/form/clickFunc/handleSave.js +33 -0
- package/src/v7/form/clickFunc/index.js +32 -0
- package/src/v7/form/index.js +87 -0
- package/src/v7/form/structure.json +410 -0
- package/src/v7/index.js +141 -0
- package/src/v7/meta.js +6 -0
- package/src/v7/navTabs/fragments.json +59 -0
- package/src/v7/navTabs/index.js +82 -0
- package/src/v7/navTabs/skeleton.json +18 -0
- package/src/v7/registerGlobal.js +14 -0
- package/src/v7/select/fragments.json +1 -0
- package/src/v7/select/index.js +34 -0
- package/src/v7/select/skeleton.json +23 -0
- package/src/v7/table/attachTableClickEventListener.js +28 -0
- package/src/v7/table/buildTableDataAsJson.js +25 -0
- package/src/v7/table/buildTableDomElement.js +25 -0
- package/src/v7/table/buildTableStructureSpec.js +33 -0
- package/src/v7/table/clickFunc/v3/createTable.js +20 -0
- package/src/v7/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +27 -0
- package/src/v7/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +24 -0
- package/src/v7/table/clickFunc/v3/getContainer/index.js +44 -0
- package/src/v7/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +17 -0
- package/src/v7/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +15 -0
- package/src/v7/table/clickFunc/v3/index.js +35 -0
- package/src/v7/table/fragments.json +112 -0
- package/src/v7/table/index.js +82 -0
- package/src/v7/table/resolveTargetContainer.js +11 -0
- package/src/v7/table/skeleton.json +371 -0
- package/src/v8/common/deriveColumnsFromData.js +20 -0
- package/src/v8/dataLists/fragments.json +1 -0
- package/src/v8/dataLists/index.js +32 -0
- package/src/v8/dataLists/skeleton.json +38 -0
- package/src/v8/form/attachFormClickEventListener.js +27 -0
- package/src/v8/form/clickFunc/extractFormData.js +27 -0
- package/src/v8/form/clickFunc/handleNew.js +24 -0
- package/src/v8/form/clickFunc/handleSave.js +33 -0
- package/src/v8/form/clickFunc/index.js +32 -0
- package/src/v8/form/index.js +87 -0
- package/src/v8/form/structure.json +410 -0
- package/src/v8/index.js +141 -0
- package/src/v8/meta.js +6 -0
- package/src/v8/navTabs/fragments.json +59 -0
- package/src/v8/navTabs/index.js +82 -0
- package/src/v8/navTabs/skeleton.json +18 -0
- package/src/v8/registerGlobal.js +14 -0
- package/src/v8/select/fragments.json +1 -0
- package/src/v8/select/index.js +34 -0
- package/src/v8/select/skeleton.json +23 -0
- package/src/v8/table/attachTableClickEventListener.js +28 -0
- package/src/v8/table/buildTableDataAsJson.js +25 -0
- package/src/v8/table/buildTableDomElement.js +25 -0
- package/src/v8/table/buildTableStructureSpec.js +33 -0
- package/src/v8/table/clickFunc/v3/createTable.js +20 -0
- package/src/v8/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +27 -0
- package/src/v8/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +24 -0
- package/src/v8/table/clickFunc/v3/getContainer/index.js +44 -0
- package/src/v8/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +17 -0
- package/src/v8/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +15 -0
- package/src/v8/table/clickFunc/v3/index.js +35 -0
- package/src/v8/table/fragments.json +112 -0
- package/src/v8/table/index.js +82 -0
- package/src/v8/table/resolveTargetContainer.js +11 -0
- package/src/v8/table/skeleton.json +371 -0
- package/src/v9/common/deriveColumnsFromData.js +20 -0
- package/src/v9/dataLists/fragments.json +1 -0
- package/src/v9/dataLists/index.js +32 -0
- package/src/v9/dataLists/skeleton.json +38 -0
- package/src/v9/form/attachFormClickEventListener.js +27 -0
- package/src/v9/form/clickFunc/extractFormData.js +27 -0
- package/src/v9/form/clickFunc/handleNew.js +24 -0
- package/src/v9/form/clickFunc/handleSave.js +33 -0
- package/src/v9/form/clickFunc/index.js +32 -0
- package/src/v9/form/index.js +87 -0
- package/src/v9/form/structure.json +410 -0
- package/src/v9/index.js +141 -0
- package/src/v9/meta.js +6 -0
- package/src/v9/navTabs/fragments.json +59 -0
- package/src/v9/navTabs/index.js +82 -0
- package/src/v9/navTabs/skeleton.json +18 -0
- package/src/v9/registerGlobal.js +14 -0
- package/src/v9/select/fragments.json +1 -0
- package/src/v9/select/index.js +34 -0
- package/src/v9/select/skeleton.json +23 -0
- package/src/v9/table/index.js +35 -0
- package/src/v9/table/skeleton.json +47 -0
package/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# JSON Renderers
|
|
2
|
+
|
|
3
|
+
A lightweight JavaScript library for rendering browser UI from JSON-driven specs. It turns structured data into DOM elements using JSON-based schema definitions and is designed for quick UI generation without hand-writing repetitive HTML.
|
|
4
|
+
|
|
5
|
+
This repo is centered around a small dispatcher that chooses a renderer by `type` and then uses the matching spec-to-DOM pipeline.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- Config-driven rendering using JSON specs
|
|
10
|
+
- Built on top of `json-to-spec` and `@keshavsoft/json-to-tag`
|
|
11
|
+
- Supports renderers such as:
|
|
12
|
+
- `datalist`
|
|
13
|
+
- `select`
|
|
14
|
+
- Legacy renderer layers for table/navTabs/form patterns are present in older source folders
|
|
15
|
+
- Simple browser-based demos and sample apps included in the repo
|
|
16
|
+
|
|
17
|
+
## Project structure
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
json-renderers/
|
|
21
|
+
├── src/ # main public entry and renderer implementations
|
|
22
|
+
│ ├── index.js # package entry point
|
|
23
|
+
│ └── v4/ # current renderer implementation set
|
|
24
|
+
├── samples/ # runnable browser examples
|
|
25
|
+
├── examples/ # additional demo usage
|
|
26
|
+
├── docs/ # docs/static assets
|
|
27
|
+
├── json-to-spec/ # bundled spec engine / related tooling
|
|
28
|
+
├── package.json # package metadata and scripts
|
|
29
|
+
├── vite.config.js # Vite config for local dev/build
|
|
30
|
+
├── LICENSE # package license (if present in your checkout)
|
|
31
|
+
└── README.md # project documentation
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
Install from npm:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install json-renderers
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
For local development in this repo:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
### Basic select renderer
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
import render from "json-renderers";
|
|
54
|
+
|
|
55
|
+
const data = {
|
|
56
|
+
LedgerName: [
|
|
57
|
+
"Apex Industries",
|
|
58
|
+
"Blue Valley Foods",
|
|
59
|
+
"Crown Logistics"
|
|
60
|
+
]
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
render({
|
|
64
|
+
type: "select",
|
|
65
|
+
data,
|
|
66
|
+
targetHtmlId: "dom-render-container"
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Basic datalist renderer
|
|
71
|
+
|
|
72
|
+
```js
|
|
73
|
+
import render from "json-renderers";
|
|
74
|
+
|
|
75
|
+
const data = {
|
|
76
|
+
LedgerName: [
|
|
77
|
+
"Apex Industries",
|
|
78
|
+
"Blue Valley Foods",
|
|
79
|
+
"Crown Logistics"
|
|
80
|
+
]
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
render({
|
|
84
|
+
type: "datalist",
|
|
85
|
+
data,
|
|
86
|
+
targetHtmlId: "dom-render-container"
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The renderer resolves the type, looks up the matching implementation, and appends the resulting DOM into the target element.
|
|
91
|
+
|
|
92
|
+
## Running examples locally
|
|
93
|
+
|
|
94
|
+
Start the Vite dev server:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm run dev
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Build the package for production:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npm run build
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Example apps included
|
|
107
|
+
|
|
108
|
+
The repo includes example and sample pages under:
|
|
109
|
+
|
|
110
|
+
- `samples/`
|
|
111
|
+
- `examples/`
|
|
112
|
+
- `docs/`
|
|
113
|
+
|
|
114
|
+
These demonstrate how to use the renderers in the browser with JSON input.
|
|
115
|
+
|
|
116
|
+
## Notes
|
|
117
|
+
|
|
118
|
+
- The public package entry is `src/index.js`.
|
|
119
|
+
- The main dispatcher currently registers `datalist` and `select` renderers in the `v4` renderer layer.
|
|
120
|
+
- Older versions under `src/v1` through `src/v3` and related folders hint at a broader evolution of table, nav-tab, and form renderers.
|
|
121
|
+
|
|
122
|
+
## License
|
|
123
|
+
|
|
124
|
+
This project is licensed under the MIT License.
|
|
125
|
+
|
|
126
|
+
## Maintainer
|
|
127
|
+
|
|
128
|
+
KeshavSoft
|