@saltcorn/markup 0.6.2-beta.4 → 0.6.2-beta.5
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/dist/builder.d.ts +18 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +57 -0
- package/dist/builder.js.map +1 -0
- package/dist/emergency_layout.d.ts +6 -0
- package/dist/emergency_layout.d.ts.map +1 -0
- package/dist/emergency_layout.js +38 -0
- package/dist/emergency_layout.js.map +1 -0
- package/dist/form.d.ts +12 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +372 -0
- package/dist/form.js.map +1 -0
- package/dist/helpers.d.ts +58 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +169 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/layout.d.ts +22 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +338 -0
- package/dist/layout.js.map +1 -0
- package/dist/layout_utils.d.ts +21 -0
- package/dist/layout_utils.d.ts.map +1 -0
- package/dist/layout_utils.js +272 -0
- package/dist/layout_utils.js.map +1 -0
- package/dist/mktag.d.ts +12 -0
- package/dist/mktag.d.ts.map +1 -0
- package/dist/mktag.js +102 -0
- package/dist/mktag.js.map +1 -0
- package/dist/table.d.ts +22 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +51 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.d.ts +7 -0
- package/dist/tabs.d.ts.map +1 -0
- package/dist/tabs.js +34 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tags.d.ts +16 -0
- package/dist/tags.d.ts.map +1 -0
- package/dist/tags.js +71 -0
- package/dist/tags.js.map +1 -0
- package/dist/tsconfig.ref.tsbuildinfo +1 -0
- package/package.json +25 -6
- package/builder.js +0 -106
- package/emergency_layout.js +0 -54
- package/form.js +0 -603
- package/form.test.js +0 -98
- package/helpers.js +0 -268
- package/index.js +0 -226
- package/layout.js +0 -595
- package/layout.test.js +0 -39
- package/layout_utils.js +0 -430
- package/markup.test.js +0 -104
- package/mktag.js +0 -105
- package/table.js +0 -115
- package/tabs.js +0 -54
- package/tags.js +0 -56
package/table.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category saltcorn-markup
|
|
3
|
-
* @module table
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const { contract, is } = require("contractis");
|
|
7
|
-
|
|
8
|
-
const {
|
|
9
|
-
a,
|
|
10
|
-
td,
|
|
11
|
-
tr,
|
|
12
|
-
th,
|
|
13
|
-
text,
|
|
14
|
-
div,
|
|
15
|
-
table,
|
|
16
|
-
thead,
|
|
17
|
-
tbody,
|
|
18
|
-
ul,
|
|
19
|
-
li,
|
|
20
|
-
span,
|
|
21
|
-
} = require("./tags");
|
|
22
|
-
const { pagination } = require("./helpers");
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @param {object} hdr
|
|
26
|
-
* @returns {th}
|
|
27
|
-
*/
|
|
28
|
-
const headerCell = (hdr) =>
|
|
29
|
-
th(
|
|
30
|
-
(hdr.align || hdr.width) && {
|
|
31
|
-
style:
|
|
32
|
-
(hdr.align ? `text-align: ` + hdr.align : "") +
|
|
33
|
-
(hdr.width ? `width: ` + hdr.width : ""),
|
|
34
|
-
},
|
|
35
|
-
hdr.sortlink ? a({ href: hdr.sortlink }, hdr.label) : hdr.label
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* @function
|
|
40
|
-
* @param {object[]} hdrs
|
|
41
|
-
* @param {object[]} vs
|
|
42
|
-
* @param {object} [opts]
|
|
43
|
-
* @returns {string}
|
|
44
|
-
*/
|
|
45
|
-
const mkTable = contract(
|
|
46
|
-
is.fun(
|
|
47
|
-
[
|
|
48
|
-
is.array(is.obj({ label: is.str, key: is.or(is.str, is.fun()) })),
|
|
49
|
-
is.array(is.obj()),
|
|
50
|
-
is.maybe(
|
|
51
|
-
is.obj({
|
|
52
|
-
pagination: is.maybe(
|
|
53
|
-
is.obj({
|
|
54
|
-
current_page: is.posint,
|
|
55
|
-
pages: is.posint,
|
|
56
|
-
get_page_link: is.fun(),
|
|
57
|
-
})
|
|
58
|
-
),
|
|
59
|
-
noHeader: is.maybe(is.bool),
|
|
60
|
-
hover: is.maybe(is.bool),
|
|
61
|
-
})
|
|
62
|
-
),
|
|
63
|
-
],
|
|
64
|
-
is.str
|
|
65
|
-
),
|
|
66
|
-
(hdrs, vs, opts = {}) =>
|
|
67
|
-
div(
|
|
68
|
-
{ class: "table-responsive" },
|
|
69
|
-
table(
|
|
70
|
-
{
|
|
71
|
-
class: [
|
|
72
|
-
"table table-sm",
|
|
73
|
-
opts.class,
|
|
74
|
-
hdrs.some((h) => h.width) && "table-layout-fixed",
|
|
75
|
-
(opts.onRowSelect || (opts.hover && vs && vs.length > 1)) &&
|
|
76
|
-
"table-hover",
|
|
77
|
-
],
|
|
78
|
-
style: opts.style,
|
|
79
|
-
},
|
|
80
|
-
!opts.noHeader && thead(tr(hdrs.map((hdr) => headerCell(hdr)))),
|
|
81
|
-
tbody(
|
|
82
|
-
(vs || []).map((v) =>
|
|
83
|
-
tr(
|
|
84
|
-
mkClickHandler(opts, v),
|
|
85
|
-
hdrs.map((hdr) =>
|
|
86
|
-
td(
|
|
87
|
-
!!hdr.align && { style: "text-align:" + hdr.align },
|
|
88
|
-
typeof hdr.key === "string" ? text(v[hdr.key]) : hdr.key(v)
|
|
89
|
-
)
|
|
90
|
-
)
|
|
91
|
-
)
|
|
92
|
-
)
|
|
93
|
-
)
|
|
94
|
-
),
|
|
95
|
-
opts.pagination && pagination(opts.pagination)
|
|
96
|
-
)
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* @param {object} opts
|
|
101
|
-
* @param {object} v
|
|
102
|
-
* @returns {object}
|
|
103
|
-
*/
|
|
104
|
-
const mkClickHandler = (opts, v) => {
|
|
105
|
-
var attrs = {};
|
|
106
|
-
if (opts.onRowSelect)
|
|
107
|
-
attrs.onclick =
|
|
108
|
-
typeof opts.onRowSelect === "function"
|
|
109
|
-
? opts.onRowSelect(v)
|
|
110
|
-
: opts.onRowSelect;
|
|
111
|
-
if (opts.selectedId && v.id && +v.id === +opts.selectedId)
|
|
112
|
-
attrs.class = "table-active";
|
|
113
|
-
return attrs;
|
|
114
|
-
};
|
|
115
|
-
module.exports = mkTable;
|
package/tabs.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category saltcorn-markup
|
|
3
|
-
* @module tabs
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const { a, text, div, ul, li } = require("./tags");
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @param {string} str
|
|
10
|
-
* @returns {string}
|
|
11
|
-
*/
|
|
12
|
-
const mkId = (str) => text(str.split(" ").join("_"));
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @param {object} obj
|
|
16
|
-
* @returns {object}
|
|
17
|
-
*/
|
|
18
|
-
const tabs = (obj) => {
|
|
19
|
-
const entries = Array.isArray(obj) ? obj : Object.entries(obj);
|
|
20
|
-
const lis = entries.map((e, ix) =>
|
|
21
|
-
li(
|
|
22
|
-
{ class: "nav-item" },
|
|
23
|
-
a(
|
|
24
|
-
{
|
|
25
|
-
class: ["nav-link", ix == 0 && "active"],
|
|
26
|
-
"data-toggle": "tab",
|
|
27
|
-
href: `#${mkId(e[0])}`,
|
|
28
|
-
id: `${mkId(e[0])}-tab`,
|
|
29
|
-
role: "tab",
|
|
30
|
-
"aria-controls": "home",
|
|
31
|
-
"aria-selected": "true",
|
|
32
|
-
},
|
|
33
|
-
text(e[0])
|
|
34
|
-
)
|
|
35
|
-
)
|
|
36
|
-
);
|
|
37
|
-
const divs = entries.map((e, ix) =>
|
|
38
|
-
div(
|
|
39
|
-
{
|
|
40
|
-
class: ["tab-pane fade", ix == 0 && "show active"],
|
|
41
|
-
id: `${mkId(e[0])}`,
|
|
42
|
-
role: "tabpanel",
|
|
43
|
-
"aria-labelledby": `${mkId(e[0])}-tab`,
|
|
44
|
-
},
|
|
45
|
-
e[1]
|
|
46
|
-
)
|
|
47
|
-
);
|
|
48
|
-
return (
|
|
49
|
-
ul({ class: "nav nav-tabs", role: "tablist" }, lis) +
|
|
50
|
-
div({ class: "tab-content" }, divs)
|
|
51
|
-
);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
module.exports = tabs;
|
package/tags.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category saltcorn-markup
|
|
3
|
-
* @module tags
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const xss = require("xss");
|
|
7
|
-
const escape = require("escape-html");
|
|
8
|
-
const htmlTags = require("html-tags");
|
|
9
|
-
const voidHtmlTags = new Set(require("html-tags/void"));
|
|
10
|
-
const mkTag = require("./mktag");
|
|
11
|
-
|
|
12
|
-
//https://stackoverflow.com/a/59220393
|
|
13
|
-
/**
|
|
14
|
-
* @param {string} js
|
|
15
|
-
* @returns {string}
|
|
16
|
-
*/
|
|
17
|
-
const domReady = (js) =>
|
|
18
|
-
`(function(f){if (document.readyState === "complete") f(); else document.addEventListener('DOMContentLoaded',f,false)})(function(){${js}});`;
|
|
19
|
-
|
|
20
|
-
xss.whiteList.kbd = [];
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @param {string|number} t
|
|
24
|
-
* @returns {string}
|
|
25
|
-
*/
|
|
26
|
-
const text = (t) => (t === 0 ? "0" : xss(t));
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @param {string|number} t
|
|
30
|
-
* @returns {string}
|
|
31
|
-
*/
|
|
32
|
-
const text_attr = (t) => (t === 0 ? "0" : escape(t));
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @return {string[]}
|
|
36
|
-
*/
|
|
37
|
-
const allTags = Object.fromEntries(
|
|
38
|
-
htmlTags.map((tag) => [tag, mkTag(tag, voidHtmlTags.has(tag))])
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
module.exports = {
|
|
42
|
-
...allTags,
|
|
43
|
-
/**
|
|
44
|
-
* @param {string} tagName
|
|
45
|
-
* @param {...*} rest
|
|
46
|
-
* @returns {string}
|
|
47
|
-
*/
|
|
48
|
-
genericElement: (tagName, ...rest) => mkTag(tagName, false)(...rest),
|
|
49
|
-
domReady,
|
|
50
|
-
text,
|
|
51
|
-
text_attr,
|
|
52
|
-
/** @type {string} */
|
|
53
|
-
nbsp: " ",
|
|
54
|
-
/** @type {module:mktag} */
|
|
55
|
-
mkTag,
|
|
56
|
-
};
|