react-ink-scripter 0.0.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.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # react-ink-scripter
@@ -0,0 +1,38 @@
1
+ /// <reference types="react" />
2
+ export type ContentTitleItem = {
3
+ type: "title";
4
+ value: string;
5
+ };
6
+ export type ContentFieldItem = {
7
+ type: "field";
8
+ label: string;
9
+ value: string;
10
+ span?: number;
11
+ };
12
+ export type ContentTextItem = {
13
+ type: "text";
14
+ value: string;
15
+ span?: number;
16
+ };
17
+ export type ContentContainerItem = {
18
+ type: "grid" | "footer";
19
+ content: (ContentFieldItem | ContentTextItem)[];
20
+ };
21
+ export type ContentTableCellItem = {
22
+ header?: boolean;
23
+ span?: number;
24
+ offset?: number;
25
+ value: string;
26
+ } | string;
27
+ export type ContentTableItem = {
28
+ type: "table";
29
+ head?: ContentTableCellItem[];
30
+ body?: ContentTableCellItem[][];
31
+ foot?: ContentTableCellItem[];
32
+ };
33
+ export type ContentType = (ContentTitleItem | ContentContainerItem | ContentTableItem | ContentTextItem | ContentFieldItem)[];
34
+ export type ReactInkScripterProps = {
35
+ value?: ContentType;
36
+ };
37
+ export declare const ReactInkScripter: ({ value }: ReactInkScripterProps) => JSX.Element;
38
+ export default ReactInkScripter;
@@ -0,0 +1,171 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var clsx = require('clsx');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var Title = function Title(_ref) {
8
+ var value = _ref.value;
9
+ return jsxRuntime.jsx("div", {
10
+ children: value
11
+ });
12
+ };
13
+ var Container = function Container(_ref2) {
14
+ var _ref2$content = _ref2.content,
15
+ content = _ref2$content === void 0 ? [] : _ref2$content,
16
+ className = _ref2.className;
17
+ return jsxRuntime.jsx("div", {
18
+ className: clsx("ink-scripter-container", className),
19
+ children: content.map(function (item, idx) {
20
+ switch (item.type) {
21
+ case "field":
22
+ return jsxRuntime.jsx(Field, _extends({}, item), idx);
23
+ case "text":
24
+ return jsxRuntime.jsx(Text, _extends({}, item), idx);
25
+ }
26
+ })
27
+ });
28
+ };
29
+ var Grid = function Grid(props) {
30
+ return jsxRuntime.jsx(Container, _extends({}, props));
31
+ };
32
+ var Footer = function Footer(props) {
33
+ return jsxRuntime.jsx(Container, _extends({}, props, {
34
+ className: "ink-scripter-footer"
35
+ }));
36
+ };
37
+ var TableCell = function TableCell(_ref3) {
38
+ var item = _ref3.item;
39
+ if (typeof item === "string") {
40
+ return jsxRuntime.jsx("td", {
41
+ children: item
42
+ });
43
+ }
44
+ var header = item.header;
45
+ item.span;
46
+ item.offset;
47
+ var value = item.value;
48
+ if (header) {
49
+ return jsxRuntime.jsx("th", {
50
+ children: value
51
+ });
52
+ }
53
+ return jsxRuntime.jsx("td", {
54
+ children: value
55
+ });
56
+ };
57
+ var TableRow = function TableRow(_ref4) {
58
+ var cells = _ref4.cells;
59
+ if (!cells.length) {
60
+ return null;
61
+ }
62
+ return jsxRuntime.jsx("tr", {
63
+ children: cells.map(function (v, idx) {
64
+ return jsxRuntime.jsx(TableCell, {
65
+ item: v
66
+ }, idx);
67
+ })
68
+ });
69
+ };
70
+ var TableHead = function TableHead(props) {
71
+ var cells = props.cells;
72
+ if (!cells || !cells.length) {
73
+ return null;
74
+ }
75
+ return jsxRuntime.jsx("thead", {
76
+ children: cells.map(function (v, idx) {
77
+ return jsxRuntime.jsx(TableCell, {
78
+ item: v
79
+ }, idx);
80
+ })
81
+ });
82
+ };
83
+ var TableFoot = function TableFoot(props) {
84
+ var cells = props.cells;
85
+ if (!cells || !cells.length) {
86
+ return null;
87
+ }
88
+ return jsxRuntime.jsx("tfoot", {
89
+ children: cells.map(function (v, idx) {
90
+ return jsxRuntime.jsx(TableCell, {
91
+ item: v
92
+ }, idx);
93
+ })
94
+ });
95
+ };
96
+ var TableBody = function TableBody(props) {
97
+ var rows = props.rows;
98
+ if (!rows || !rows.length) {
99
+ return null;
100
+ }
101
+ return jsxRuntime.jsx("tbody", {
102
+ children: rows.map(function (v, idx) {
103
+ return jsxRuntime.jsx(TableRow, {
104
+ cells: v
105
+ }, idx);
106
+ })
107
+ });
108
+ };
109
+ var Table = function Table(props) {
110
+ var head = props.head,
111
+ body = props.body,
112
+ foot = props.foot;
113
+ if (!(head !== null && head !== void 0 && head.length) && !(body !== null && body !== void 0 && body.length) && !(foot !== null && foot !== void 0 && foot.length)) {
114
+ return null;
115
+ }
116
+ return jsxRuntime.jsxs("table", {
117
+ className: "ink-scripter-table",
118
+ children: [jsxRuntime.jsx(TableHead, {
119
+ cells: head
120
+ }), jsxRuntime.jsx(TableBody, {
121
+ rows: body
122
+ }), jsxRuntime.jsx(TableFoot, {
123
+ cells: foot
124
+ })]
125
+ });
126
+ };
127
+ var Text = function Text(_ref5) {
128
+ var value = _ref5.value;
129
+ _ref5.span;
130
+ return jsxRuntime.jsx("div", {
131
+ className: "ink-scripter-text",
132
+ children: value
133
+ });
134
+ };
135
+ var Field = function Field(_ref6) {
136
+ var value = _ref6.value,
137
+ label = _ref6.label;
138
+ return jsxRuntime.jsxs("div", {
139
+ className: "ink-scripter-filed",
140
+ children: [jsxRuntime.jsxs("label", {
141
+ children: [label, ":"]
142
+ }), jsxRuntime.jsx("span", {
143
+ children: value
144
+ })]
145
+ });
146
+ };
147
+ var ReactInkScripter = function ReactInkScripter(_ref7) {
148
+ var _ref7$value = _ref7.value,
149
+ value = _ref7$value === void 0 ? [] : _ref7$value;
150
+ return jsxRuntime.jsx("div", {
151
+ className: "ink-scripter-root",
152
+ children: value.map(function (item, index) {
153
+ switch (item.type) {
154
+ case "title":
155
+ return jsxRuntime.jsx(Title, _extends({}, item), index);
156
+ case "footer":
157
+ return jsxRuntime.jsx(Footer, _extends({}, item), index);
158
+ case "grid":
159
+ return jsxRuntime.jsx(Grid, _extends({}, item), index);
160
+ case "table":
161
+ return jsxRuntime.jsx(Table, _extends({}, item), index);
162
+ case "text":
163
+ return jsxRuntime.jsx(Text, _extends({}, item), index);
164
+ case "field":
165
+ return jsxRuntime.jsx(Field, _extends({}, item), index);
166
+ }
167
+ })
168
+ });
169
+ };
170
+
171
+ exports.ReactInkScripter = ReactInkScripter;
@@ -0,0 +1 @@
1
+ export * from "./ReactInkScripter";
package/dist/index.js ADDED
@@ -0,0 +1,92 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import clsx from 'clsx';
3
+
4
+ const Title = ({ value }) => {
5
+ return jsx("div", { children: value });
6
+ };
7
+ const Container = ({ content = [], className, }) => {
8
+ return (jsx("div", { className: clsx("ink-scripter-container", className), children: content.map((item, idx) => {
9
+ switch (item.type) {
10
+ case "field":
11
+ return jsx(Field, { ...item }, idx);
12
+ case "text":
13
+ return jsx(Text, { ...item }, idx);
14
+ }
15
+ }) }));
16
+ };
17
+ const Grid = (props) => {
18
+ return jsx(Container, { ...props });
19
+ };
20
+ const Footer = (props) => {
21
+ return jsx(Container, { ...props, className: "ink-scripter-footer" });
22
+ };
23
+ const TableCell = ({ item }) => {
24
+ if (typeof item === "string") {
25
+ return jsx("td", { children: item });
26
+ }
27
+ const { header, span, offset, value } = item;
28
+ if (header) {
29
+ return jsx("th", { children: value });
30
+ }
31
+ return jsx("td", { children: value });
32
+ };
33
+ const TableRow = ({ cells }) => {
34
+ if (!cells.length) {
35
+ return null;
36
+ }
37
+ return (jsx("tr", { children: cells.map((v, idx) => (jsx(TableCell, { item: v }, idx))) }));
38
+ };
39
+ const TableHead = (props) => {
40
+ const { cells } = props;
41
+ if (!cells || !cells.length) {
42
+ return null;
43
+ }
44
+ return (jsx("thead", { children: cells.map((v, idx) => (jsx(TableCell, { item: v }, idx))) }));
45
+ };
46
+ const TableFoot = (props) => {
47
+ const { cells } = props;
48
+ if (!cells || !cells.length) {
49
+ return null;
50
+ }
51
+ return (jsx("tfoot", { children: cells.map((v, idx) => (jsx(TableCell, { item: v }, idx))) }));
52
+ };
53
+ const TableBody = (props) => {
54
+ const { rows } = props;
55
+ if (!rows || !rows.length) {
56
+ return null;
57
+ }
58
+ return (jsx("tbody", { children: rows.map((v, idx) => (jsx(TableRow, { cells: v }, idx))) }));
59
+ };
60
+ const Table = (props) => {
61
+ const { head, body, foot } = props;
62
+ if (!head?.length && !body?.length && !foot?.length) {
63
+ return null;
64
+ }
65
+ return (jsxs("table", { className: "ink-scripter-table", children: [jsx(TableHead, { cells: head }), jsx(TableBody, { rows: body }), jsx(TableFoot, { cells: foot })] }));
66
+ };
67
+ const Text = ({ value, span }) => {
68
+ return jsx("div", { className: "ink-scripter-text", children: value });
69
+ };
70
+ const Field = ({ value, label }) => {
71
+ return (jsxs("div", { className: "ink-scripter-filed", children: [jsxs("label", { children: [label, ":"] }), jsx("span", { children: value })] }));
72
+ };
73
+ const ReactInkScripter = ({ value = [] }) => {
74
+ return (jsx("div", { className: "ink-scripter-root", children: value.map((item, index) => {
75
+ switch (item.type) {
76
+ case "title":
77
+ return jsx(Title, { ...item }, index);
78
+ case "footer":
79
+ return jsx(Footer, { ...item }, index);
80
+ case "grid":
81
+ return jsx(Grid, { ...item }, index);
82
+ case "table":
83
+ return jsx(Table, { ...item }, index);
84
+ case "text":
85
+ return jsx(Text, { ...item }, index);
86
+ case "field":
87
+ return jsx(Field, { ...item }, index);
88
+ }
89
+ }) }));
90
+ };
91
+
92
+ export { ReactInkScripter };
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "react-ink-scripter",
3
+ "version": "0.0.3",
4
+ "description": "a react component for generate page to print",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/lawrsp/react-ink-scripter.git"
11
+ },
12
+ "keywords": [
13
+ "react",
14
+ "component",
15
+ "printer"
16
+ ],
17
+ "author": "lawrsp",
18
+ "license": "MIT",
19
+ "bugs": {
20
+ "url": "https://github.com/lawrsp/react-ink-scripter/issues"
21
+ },
22
+ "homepage": "https://github.com/lawrsp/react-ink-scripter#readme",
23
+ "dependencies": {
24
+ "@babel/runtime": "^7.21.0",
25
+ "clsx": "^1.2.1",
26
+ "react": "^18.2.0",
27
+ "react-dom": "^18.2.0"
28
+ },
29
+ "peerDependencies": {
30
+ "@types/react": "^17.0.0 || ^18.0.0",
31
+ "@types/react-dom": "^17.0.0 || ^18.0.0",
32
+ "react": "^17.0.0 || ^18.0.0",
33
+ "react-dom": "^17.0.0 || ^18.0.0"
34
+ },
35
+ "peerDependenciesMeta": {
36
+ "@types/react": {
37
+ "optional": true
38
+ },
39
+ "@types/react-dom": {
40
+ "optional": true
41
+ }
42
+ },
43
+ "sideEffects": false,
44
+ "files": [
45
+ "dist"
46
+ ]
47
+ }