@saltcorn/markup 0.6.2-beta.3 → 0.6.3-beta.0
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 +170 -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 +100 -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 +17 -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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category saltcorn-markup
|
|
3
|
+
* @module builder
|
|
4
|
+
*/
|
|
5
|
+
declare const _default: ({ options, context, action, stepName, layout, mode, version_tag, }: any, csrfToken: any) => string;
|
|
6
|
+
export = /**
|
|
7
|
+
* @param {object} opts
|
|
8
|
+
* @param {object} opts.options
|
|
9
|
+
* @param {object} opts.context
|
|
10
|
+
* @param {object} opts.action
|
|
11
|
+
* @param {string} opts.stepName
|
|
12
|
+
* @param {object} opts.layout
|
|
13
|
+
* @param {string} [opts.mode = "show"]
|
|
14
|
+
* @param {object} opts
|
|
15
|
+
* @param {object} csrfToken
|
|
16
|
+
* @returns {div}
|
|
17
|
+
*/ _default;
|
|
18
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;6FAyDE,GAAG,aACK,GAAG,KACb,MAAM;AAvBT,SAAS;;;;;;;;;;;GAWN,UA8DC"}
|
package/dist/builder.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @category saltcorn-markup
|
|
4
|
+
* @module builder
|
|
5
|
+
*/
|
|
6
|
+
const tags = require("./tags");
|
|
7
|
+
const { p, div, i, label, text, button, a, h4, span, script, style, input, link, form, } = tags;
|
|
8
|
+
/**
|
|
9
|
+
* @param {object} rec
|
|
10
|
+
* @param {object} csrf
|
|
11
|
+
* @returns {object}
|
|
12
|
+
*/
|
|
13
|
+
const addCsrf = (rec, csrf) => {
|
|
14
|
+
rec.csrfToken = csrf;
|
|
15
|
+
return rec;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @param {object} x
|
|
19
|
+
* @returns {string}
|
|
20
|
+
*/
|
|
21
|
+
const encode = (x) => encodeURIComponent(JSON.stringify(x));
|
|
22
|
+
module.exports = ({ options, context, action, stepName, layout, mode = "show", version_tag, }, csrfToken) => div(script({
|
|
23
|
+
src: version_tag
|
|
24
|
+
? `/static_assets/${version_tag}/builder_bundle.js`
|
|
25
|
+
: "/builder_bundle.js",
|
|
26
|
+
}), script({
|
|
27
|
+
src: version_tag
|
|
28
|
+
? `/static_assets/${version_tag}/ckeditor/ckeditor.js`
|
|
29
|
+
: "/ckeditor/ckeditor.js",
|
|
30
|
+
}), link({
|
|
31
|
+
rel: "stylesheet",
|
|
32
|
+
type: "text/css",
|
|
33
|
+
media: "screen",
|
|
34
|
+
href: version_tag
|
|
35
|
+
? `/static_assets/${version_tag}/fonticonpicker.react.css`
|
|
36
|
+
: "/fonticonpicker.react.css",
|
|
37
|
+
}), link({
|
|
38
|
+
rel: "stylesheet",
|
|
39
|
+
type: "text/css",
|
|
40
|
+
media: "screen",
|
|
41
|
+
href: version_tag
|
|
42
|
+
? `/static_assets/${version_tag}/saltcorn-builder.css`
|
|
43
|
+
: "/saltcorn-builder.css",
|
|
44
|
+
}), div({ id: "saltcorn-builder" }), form({ action, method: "post", id: "scbuildform" }, input({
|
|
45
|
+
type: "hidden",
|
|
46
|
+
name: "contextEnc",
|
|
47
|
+
value: encodeURIComponent(JSON.stringify(context)),
|
|
48
|
+
}), input({ type: "hidden", name: "stepName", value: stepName }), input({ type: "hidden", name: "columns", value: "" }), input({ type: "hidden", name: "layout", value: "" }), input({ type: "hidden", name: "_csrf", value: csrfToken })), script(`builder.renderBuilder(
|
|
49
|
+
"saltcorn-builder",
|
|
50
|
+
"${encode(addCsrf(options, csrfToken))}",
|
|
51
|
+
"${encode(layout || {})}",
|
|
52
|
+
${JSON.stringify(mode)}
|
|
53
|
+
);
|
|
54
|
+
document.addEventListener('DOMContentLoaded',
|
|
55
|
+
function(){window.onerror=globalErrorCatcher},false);
|
|
56
|
+
;`));
|
|
57
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../builder.ts"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,+BAAgC;AAChC,MAAM,EACJ,CAAC,EACD,GAAG,EACH,CAAC,EACD,KAAK,EACL,IAAI,EACJ,MAAM,EACN,CAAC,EACD,EAAE,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,GACL,GAAG,IAAI,CAAC;AAET;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAO,EAAE;IAC3C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,CAAM,EAAU,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzE,iBAYA,CACE,EACE,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,MAAM,EACb,WAAW,GACP,EACN,SAAc,EACN,EAAE,CACV,GAAG,CACD,MAAM,CAAC;IACL,GAAG,EAAE,WAAW;QACd,CAAC,CAAC,kBAAkB,WAAW,oBAAoB;QACnD,CAAC,CAAC,oBAAoB;CACzB,CAAC,EACF,MAAM,CAAC;IACL,GAAG,EAAE,WAAW;QACd,CAAC,CAAC,kBAAkB,WAAW,uBAAuB;QACtD,CAAC,CAAC,uBAAuB;CAC5B,CAAC,EACF,IAAI,CAAC;IACH,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,WAAW;QACf,CAAC,CAAC,kBAAkB,WAAW,2BAA2B;QAC1D,CAAC,CAAC,2BAA2B;CAChC,CAAC,EACF,IAAI,CAAC;IACH,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,WAAW;QACf,CAAC,CAAC,kBAAkB,WAAW,uBAAuB;QACtD,CAAC,CAAC,uBAAuB;CAC5B,CAAC,EACF,GAAG,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAC/B,IAAI,CACF,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,EAC7C,KAAK,CAAC;IACJ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;CACnD,CAAC,EACF,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAC5D,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACrD,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACpD,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAC3D,EACD,MAAM,CAAC;;SAEF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACnC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;MAItB,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emergency_layout.d.ts","sourceRoot":"","sources":["../emergency_layout.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @category saltcorn-markup
|
|
4
|
+
* @module emergency_layout
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tags = require("./tags");
|
|
8
|
+
const { ul, li, a, span, hr, div, text, i, h6, h1, p, header, img, footer } = tags;
|
|
9
|
+
const renderLayout = require("./layout");
|
|
10
|
+
const { renderForm, link } = require(".");
|
|
11
|
+
const layoutUtils = require("./layout_utils");
|
|
12
|
+
const { navbar, alert } = layoutUtils;
|
|
13
|
+
/**
|
|
14
|
+
* @param {string} title
|
|
15
|
+
* @param {string|object} body
|
|
16
|
+
* @param {object[]} alerts
|
|
17
|
+
* @returns {string}
|
|
18
|
+
*/
|
|
19
|
+
const renderBody = (title, body, alerts) => renderLayout({
|
|
20
|
+
blockDispatch: {},
|
|
21
|
+
layout: typeof body === "string" ? { type: "card", title, contents: body } : body,
|
|
22
|
+
alerts,
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* @param {object} opts
|
|
26
|
+
* @param {string} opts.title
|
|
27
|
+
* @param {object} opts.menu
|
|
28
|
+
* @param {object} opts.brand
|
|
29
|
+
* @param {object[]} opts.alerts
|
|
30
|
+
* @param {string} opts.currentUrl
|
|
31
|
+
* @param {string|object} opts.body
|
|
32
|
+
* @param {object[]} opts.headers
|
|
33
|
+
* @returns {string}
|
|
34
|
+
*/
|
|
35
|
+
const wrap = ({ title, menu, brand, alerts, currentUrl, body, headers, }) => navbar(brand, menu, currentUrl) + renderBody(title, body, alerts);
|
|
36
|
+
const EmergencyLayoutExports = wrap;
|
|
37
|
+
exports = EmergencyLayoutExports;
|
|
38
|
+
//# sourceMappingURL=emergency_layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emergency_layout.js","sourceRoot":"","sources":["../emergency_layout.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,+BAAgC;AAChC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GACzE,IAAI,CAAC;AACP,yCAA0C;AAC1C,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1C,8CAA+C;AAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,IAAkB,EAAE,MAAa,EAAU,EAAE,CAC9E,YAAY,CAAC;IACX,aAAa,EAAE,EAAE;IACjB,MAAM,EACJ,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;IAC3E,MAAM;CACP,CAAC,CAAC;AAgBL;;;;;;;;;;GAUG;AACH,MAAM,IAAI,GAAG,CAAC,EACZ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,IAAI,EACJ,OAAO,GACI,EAAU,EAAE,CACvB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEpE,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,OAAO,GAAG,sBAAsB,CAAC"}
|
package/dist/form.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category saltcorn-markup
|
|
3
|
+
* @module form
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @param {string|object} form
|
|
7
|
+
* @param {string|false} csrfToken0
|
|
8
|
+
* @returns {string}
|
|
9
|
+
*/
|
|
10
|
+
declare const renderForm: (form: any, csrfToken0: string | boolean) => string;
|
|
11
|
+
export = renderForm;
|
|
12
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../form.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4bH;;;;GAIG;AACH,QAAA,MAAM,UAAU,SAAU,GAAG,cAAc,MAAM,GAAG,OAAO,KAAG,MA0C7D,CAAC;AA6HF,SAAS,UAAU,CAAC"}
|
package/dist/form.js
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @category saltcorn-markup
|
|
4
|
+
* @module form
|
|
5
|
+
*/
|
|
6
|
+
const tags = require("./tags");
|
|
7
|
+
const { p, div, i, label, text, text_attr, button, a, h5, span } = tags;
|
|
8
|
+
const renderLayout = require("./layout");
|
|
9
|
+
const helpers = require("./helpers");
|
|
10
|
+
const { isdef, select_options, search_bar } = helpers;
|
|
11
|
+
/**
|
|
12
|
+
* @param {string} s
|
|
13
|
+
* @returns {string}
|
|
14
|
+
*/
|
|
15
|
+
const rmInitialDot = (s) => s && s[0] === "." ? s.replace(".", "") : s;
|
|
16
|
+
/**
|
|
17
|
+
* @param {object} sIf
|
|
18
|
+
* @returns {string}
|
|
19
|
+
*/
|
|
20
|
+
const mkShowIf = (sIf) => Object.entries(sIf)
|
|
21
|
+
.map(([target, value]) => typeof value === "boolean"
|
|
22
|
+
? `e.closest('.form-namespace').find('[data-fieldname=${rmInitialDot(target)}]').prop('checked')===${JSON.stringify(value)}`
|
|
23
|
+
: Array.isArray(value)
|
|
24
|
+
? `[${value
|
|
25
|
+
.map((v) => `'${v}'`)
|
|
26
|
+
.join()}].includes(e.closest('.form-namespace').find('[data-fieldname=${rmInitialDot(target)}]').val())`
|
|
27
|
+
: `e.closest('.form-namespace').find('[data-fieldname=${rmInitialDot(target)}]').val()==='${value}'`)
|
|
28
|
+
.join(" && ");
|
|
29
|
+
/**
|
|
30
|
+
* @param {string} formStyle
|
|
31
|
+
* @returns {boolean}
|
|
32
|
+
*/
|
|
33
|
+
const isHoriz = (formStyle) => formStyle === "horiz";
|
|
34
|
+
/**
|
|
35
|
+
* @param {object} hdr
|
|
36
|
+
* @param {object} inner
|
|
37
|
+
* @param {string} [error = ""]
|
|
38
|
+
* @param {string} fStyle
|
|
39
|
+
* @param {number} labelCols
|
|
40
|
+
* @returns {string}
|
|
41
|
+
*/
|
|
42
|
+
const formRowWrap = (hdr, inner, error = "", fStyle, labelCols) => div({
|
|
43
|
+
class: ["form-group", isHoriz(fStyle) && "row"],
|
|
44
|
+
...(hdr.showIf && {
|
|
45
|
+
"data-show-if": mkShowIf(hdr.showIf),
|
|
46
|
+
}),
|
|
47
|
+
}, hdr.input_type === "section_header"
|
|
48
|
+
? div({ class: `col-sm-12` }, h5(text(hdr.label)), hdr.sublabel && p(i(hdr.sublabel)))
|
|
49
|
+
: [
|
|
50
|
+
div({ class: isHoriz(fStyle) && `col-sm-${labelCols}` }, label({
|
|
51
|
+
for: `input${text_attr(hdr.form_name)}`,
|
|
52
|
+
}, text(hdr.label))),
|
|
53
|
+
div({ class: isHoriz(fStyle) && `col-sm-${12 - labelCols}` }, inner, text(error), hdr.sublabel && i(text(hdr.sublabel))),
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* @param {object} v
|
|
57
|
+
* @param {object[]} errors
|
|
58
|
+
* @param {string} [nameAdd = ""]
|
|
59
|
+
* @returns {function}
|
|
60
|
+
*/
|
|
61
|
+
const innerField = (v, errors, nameAdd = "") => (hdr) => {
|
|
62
|
+
const name = hdr.form_name + nameAdd;
|
|
63
|
+
const validClass = errors[name] ? "is-invalid" : "";
|
|
64
|
+
const maybe_disabled = hdr.disabled ? " disabled" : "";
|
|
65
|
+
switch (hdr.input_type) {
|
|
66
|
+
case "fromtype":
|
|
67
|
+
return displayEdit(hdr, name, v && isdef(v[hdr.form_name]) ? v[hdr.form_name] : hdr.default, validClass);
|
|
68
|
+
case "hidden":
|
|
69
|
+
return `<input type="hidden" class="form-control ${validClass} ${hdr.class || ""}" name="${text_attr(name)}" ${v ? `value="${text_attr(v[hdr.form_name])}"` : ""}>`;
|
|
70
|
+
case "select":
|
|
71
|
+
const opts = select_options(v, hdr);
|
|
72
|
+
return `<select class="form-control ${validClass} ${hdr.class || ""}"${maybe_disabled} data-fieldname="${text_attr(hdr.form_name)}" name="${text_attr(name)}" id="input${text_attr(name)}"${hdr.attributes && hdr.attributes.explainers
|
|
73
|
+
? ` data-explainers="${encodeURIComponent(JSON.stringify(hdr.attributes.explainers))}"`
|
|
74
|
+
: ""}>${opts}</select>`;
|
|
75
|
+
case "textarea":
|
|
76
|
+
return `<textarea class="form-control ${validClass} ${hdr.class || ""}"${maybe_disabled} data-fieldname="${text_attr(hdr.form_name)}" name="${text_attr(name)}" id="input${text_attr(name)}">${text(v[hdr.form_name] || "")}</textarea>`;
|
|
77
|
+
case "code":
|
|
78
|
+
return `<textarea mode="${(hdr.attributes || {}).mode || ""}" class="to-code form-control ${validClass} ${hdr.class || ""}"${maybe_disabled} data-fieldname="${text_attr(hdr.form_name)}" name="${text_attr(name)}" id="input${text_attr(name)}">${v[hdr.form_name] || ""}</textarea>`;
|
|
79
|
+
case "file":
|
|
80
|
+
if (hdr.attributes && hdr.attributes.select_file_where) {
|
|
81
|
+
hdr.input_type = "select";
|
|
82
|
+
return innerField(v, errors, nameAdd)(hdr);
|
|
83
|
+
}
|
|
84
|
+
else
|
|
85
|
+
return `${v[hdr.form_name] ? text(v[hdr.form_name]) : ""}<input type="file" class="form-control-file ${validClass} ${hdr.class || ""}"${maybe_disabled} name="${text_attr(name)}" id="input${text_attr(name)}">`;
|
|
86
|
+
case "search":
|
|
87
|
+
return search_bar(name, v && v[hdr.form_name]);
|
|
88
|
+
case "section_header":
|
|
89
|
+
return "";
|
|
90
|
+
case "custom_html":
|
|
91
|
+
return hdr.attributes.html;
|
|
92
|
+
default:
|
|
93
|
+
const the_input = `<input type="${hdr.input_type}" class="form-control ${validClass} ${hdr.class || ""}"${maybe_disabled} data-fieldname="${text_attr(hdr.form_name)}" name="${name}" id="input${text_attr(name)}"${v && isdef(v[hdr.form_name])
|
|
94
|
+
? ` value="${text_attr(v[hdr.form_name])}"`
|
|
95
|
+
: ""}>`;
|
|
96
|
+
const inner = hdr.postText
|
|
97
|
+
? div({ class: "input-group" }, the_input, div({ class: "input-group-append" }, span({ class: "input-group-text", id: "basic-addon2" }, hdr.postText)))
|
|
98
|
+
: the_input;
|
|
99
|
+
return inner;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* @param {object[]} v
|
|
104
|
+
* @param {object[]} errors
|
|
105
|
+
* @param {string} formStyle
|
|
106
|
+
* @param {object[]} labelCols
|
|
107
|
+
* @returns {function}
|
|
108
|
+
*/
|
|
109
|
+
const mkFormRow = (v, errors, formStyle, labelCols) => (hdr) => hdr.isRepeat
|
|
110
|
+
? mkFormRowForRepeat(v, errors, formStyle, labelCols, hdr)
|
|
111
|
+
: mkFormRowForField(v, errors, formStyle, labelCols)(hdr);
|
|
112
|
+
/**
|
|
113
|
+
* @param {object[]} v
|
|
114
|
+
* @param {object[]} errors
|
|
115
|
+
* @param {string} formStyle
|
|
116
|
+
* @param {object[]} labelCols
|
|
117
|
+
* @param {object} hdr
|
|
118
|
+
* @returns {div}
|
|
119
|
+
*/
|
|
120
|
+
const mkFormRowForRepeat = (v, errors, formStyle, labelCols, hdr) => {
|
|
121
|
+
const adder = a({
|
|
122
|
+
class: "btn btn-sm btn-outline-primary mb-3",
|
|
123
|
+
href: `javascript:add_repeater('${hdr.form_name}')`,
|
|
124
|
+
title: "Add",
|
|
125
|
+
}, i({ class: "fas fa-plus" }));
|
|
126
|
+
const icons = div({ class: "float-right" }, span({ onclick: "rep_up(this)" }, i({ class: "fa fa-arrow-up pull-right" })), " ", span({ onclick: "rep_del(this)" }, i({ class: "fa fa-times pull-right" })), " ", span({ onclick: "rep_down(this)" }, i({ class: "fa fa-arrow-down pull-right" })));
|
|
127
|
+
if (Array.isArray(v[hdr.form_name]) && v[hdr.form_name].length > 0) {
|
|
128
|
+
return (div({ class: `repeats-${hdr.form_name}` }, v[hdr.form_name].map((vi, ix) => {
|
|
129
|
+
return div({ class: `form-repeat form-namespace repeat-${hdr.form_name}` }, icons, hdr.fields.map((f) => {
|
|
130
|
+
return mkFormRowForField(vi, errors, formStyle, labelCols, "_" + ix)(f);
|
|
131
|
+
}));
|
|
132
|
+
})) + adder);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
return (div({ class: `repeats-${hdr.form_name}` }, div({ class: `form-repeat form-namespace repeat-${hdr.form_name}` }, icons, hdr.fields.map((f) => {
|
|
136
|
+
return mkFormRowForField(v, errors, formStyle, labelCols, "_0")(f);
|
|
137
|
+
}))) + adder);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* @param {object} hdr
|
|
142
|
+
* @param {string} name
|
|
143
|
+
* @param {object} v
|
|
144
|
+
* @param {string} extracls
|
|
145
|
+
* @returns {*}
|
|
146
|
+
*/
|
|
147
|
+
const displayEdit = (hdr, name, v, extracls) => {
|
|
148
|
+
let fieldview;
|
|
149
|
+
const attributes = hdr.attributes;
|
|
150
|
+
if (hdr.disabled)
|
|
151
|
+
attributes.disabled = true;
|
|
152
|
+
if (hdr.fieldviewObj) {
|
|
153
|
+
fieldview = hdr.fieldviewObj;
|
|
154
|
+
}
|
|
155
|
+
else if (hdr.fieldview && hdr.type && hdr.type.fieldviews[hdr.fieldview])
|
|
156
|
+
fieldview = hdr.type.fieldviews[hdr.fieldview];
|
|
157
|
+
else if (hdr.type && hdr.type.fieldviews) {
|
|
158
|
+
const found = Object.entries(hdr.type.fieldviews).find(([nm, fv]) => fv.isEdit);
|
|
159
|
+
if (found) {
|
|
160
|
+
fieldview = found[1];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (!fieldview) {
|
|
164
|
+
if (!hdr.type)
|
|
165
|
+
throw new Error(`Unknown type ${hdr.typename} in field ${name}`);
|
|
166
|
+
else
|
|
167
|
+
throw new Error(`Cannot find fieldview for field ${name}`);
|
|
168
|
+
}
|
|
169
|
+
if (fieldview.isEdit)
|
|
170
|
+
return fieldview.run(name, v, attributes, extracls + " " + hdr.class, hdr.required, hdr);
|
|
171
|
+
else
|
|
172
|
+
return fieldview.run(v, undefined, attributes);
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* @param {object[]} v
|
|
176
|
+
* @param {object[]} errors
|
|
177
|
+
* @param {string} formStyle
|
|
178
|
+
* @param {number} labelCols
|
|
179
|
+
* @param {string} [nameAdd = ""]
|
|
180
|
+
* @returns {function}
|
|
181
|
+
*/
|
|
182
|
+
const mkFormRowForField = (v, errors, formStyle, labelCols, nameAdd = "") => (hdr) => {
|
|
183
|
+
const name = hdr.form_name + nameAdd;
|
|
184
|
+
const errorFeedback = errors[name]
|
|
185
|
+
? `<div class="invalid-feedback">${text(errors[name])}</div>`
|
|
186
|
+
: "";
|
|
187
|
+
if (hdr.input_type === "hidden") {
|
|
188
|
+
return innerField(v, errors, nameAdd)(hdr);
|
|
189
|
+
}
|
|
190
|
+
else
|
|
191
|
+
return formRowWrap(hdr, innerField(v, errors, nameAdd)(hdr), errorFeedback, formStyle, labelCols);
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* @param {object} form
|
|
195
|
+
* @returns {string}
|
|
196
|
+
*/
|
|
197
|
+
const renderFormLayout = (form) => {
|
|
198
|
+
const blockDispatch = {
|
|
199
|
+
field(segment) {
|
|
200
|
+
const field = form.fields.find((f) => f.name === segment.field_name);
|
|
201
|
+
if (field && field.input_type !== "hidden") {
|
|
202
|
+
if (field.sourceURL)
|
|
203
|
+
return div({ "data-source-url": field.sourceURL });
|
|
204
|
+
const errorFeedback = form.errors[field.name]
|
|
205
|
+
? `<div class="invalid-feedback">${text(form.errors[field.name])}</div>`
|
|
206
|
+
: "";
|
|
207
|
+
field.attributes = { ...field.attributes, ...segment.configuration };
|
|
208
|
+
return innerField(form.values, form.errors)(field) + errorFeedback;
|
|
209
|
+
}
|
|
210
|
+
else
|
|
211
|
+
return "";
|
|
212
|
+
},
|
|
213
|
+
action({ action_name, action_label, action_url, confirm, action_style, action_size, action_icon, configuration, action_bgcol, action_bordercol, action_textcol, }) {
|
|
214
|
+
let style = action_style === "btn-custom-color"
|
|
215
|
+
? `background-color: ${action_bgcol || "#000000"};border-color: ${action_bordercol || "#000000"}; color: ${action_textcol || "#000000"}`
|
|
216
|
+
: null;
|
|
217
|
+
if (action_name && action_name.startsWith("Login with ")) {
|
|
218
|
+
const method_label = action_name.replace("Login with ", "");
|
|
219
|
+
return a({
|
|
220
|
+
href: `/auth/login-with/${method_label}`,
|
|
221
|
+
//TODO get url through form.req to reduce coupling
|
|
222
|
+
class: [
|
|
223
|
+
action_style !== "btn-link" &&
|
|
224
|
+
`btn ${action_style || "btn-primary"} ${action_size || ""}`,
|
|
225
|
+
],
|
|
226
|
+
style,
|
|
227
|
+
}, action_icon ? i({ class: action_icon }) + " " : false, action_label || action_name);
|
|
228
|
+
}
|
|
229
|
+
const mkBtn = (onclick_or_type) => `<button ${onclick_or_type} class="${action_style === "btn-link"
|
|
230
|
+
? ""
|
|
231
|
+
: `btn ${action_style || "btn-primary"} ${action_size || ""}`}"${style ? ` style="${style}"` : ""}>${action_icon ? `<i class="${action_icon}"></i> ` : ""}${text(action_label || form.submitLabel || action_name || "Save")}</button>`;
|
|
232
|
+
if (action_name === "Delete") {
|
|
233
|
+
if (action_url) {
|
|
234
|
+
const dest = (configuration && configuration.after_delete_url) || "/";
|
|
235
|
+
return mkBtn(`onClick="ajax_post('${action_url}', {success:()=>window.location.href='${dest}'})" type="button"`);
|
|
236
|
+
}
|
|
237
|
+
else
|
|
238
|
+
return "";
|
|
239
|
+
}
|
|
240
|
+
const submitAttr = form.xhrSubmit
|
|
241
|
+
? 'onClick="ajaxSubmitForm(this)" type="button"'
|
|
242
|
+
: 'type="submit"';
|
|
243
|
+
return mkBtn(submitAttr);
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
return renderLayout({ blockDispatch, layout: form.layout });
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* @param {string|object} form
|
|
250
|
+
* @param {string|false} csrfToken0
|
|
251
|
+
* @returns {string}
|
|
252
|
+
*/
|
|
253
|
+
const renderForm = (form, csrfToken0) => {
|
|
254
|
+
const csrfToken = csrfToken0 === false || csrfToken0 === ""
|
|
255
|
+
? csrfToken0
|
|
256
|
+
: csrfToken0 || (form.req && form.req.csrfToken && form.req.csrfToken());
|
|
257
|
+
if (typeof form === "string")
|
|
258
|
+
return form;
|
|
259
|
+
if (form.isStateForm) {
|
|
260
|
+
form.class += " px-4 py-3";
|
|
261
|
+
form.formStyle = "vert";
|
|
262
|
+
var collapsedSummary = "";
|
|
263
|
+
Object.entries(form.values).forEach(([k, v]) => {
|
|
264
|
+
if (typeof v === "undefined")
|
|
265
|
+
return;
|
|
266
|
+
if (k[0] !== "_")
|
|
267
|
+
collapsedSummary += ` ${text(k)}:${text_attr(v)} `;
|
|
268
|
+
if (k === "_fts")
|
|
269
|
+
collapsedSummary += ` ${text_attr(v)} `;
|
|
270
|
+
});
|
|
271
|
+
return div({ class: "dropdown" }, button({
|
|
272
|
+
class: "btn btn-secondary dropdown-toggle",
|
|
273
|
+
type: "button",
|
|
274
|
+
id: "dropdownMenuButton",
|
|
275
|
+
"data-toggle": "dropdown",
|
|
276
|
+
"aria-haspopup": "true",
|
|
277
|
+
"aria-expanded": "false",
|
|
278
|
+
}, collapsedSummary ||
|
|
279
|
+
(form.__ ? form.__("Search filter") : "Search filter")), div({
|
|
280
|
+
class: "dropdown-menu search-form",
|
|
281
|
+
"aria-labelledby": "dropdownMenuButton",
|
|
282
|
+
}, mkForm(form, csrfToken, form.errors)));
|
|
283
|
+
}
|
|
284
|
+
else if (form.layout)
|
|
285
|
+
return mkFormWithLayout(form, csrfToken);
|
|
286
|
+
else
|
|
287
|
+
return mkForm(form, csrfToken, form.errors);
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* @param {object} form
|
|
291
|
+
* @param {string} csrfToken
|
|
292
|
+
* @returns {string}
|
|
293
|
+
*/
|
|
294
|
+
const mkFormWithLayout = (form, csrfToken) => {
|
|
295
|
+
const hasFile = form.fields.some((f) => f.input_type === "file");
|
|
296
|
+
const csrfField = `<input type="hidden" name="_csrf" value="${csrfToken}">`;
|
|
297
|
+
const top = `<form action="${form.action}"${form.onChange ? ` onchange="${form.onChange}"` : ""} class="form-namespace ${form.class || ""}" method="${form.methodGET ? "get" : "post"}"${hasFile ? ' encType="multipart/form-data"' : ""}>`;
|
|
298
|
+
const blurbp = form.blurb
|
|
299
|
+
? Array.isArray(form.blurb)
|
|
300
|
+
? form.blurb.join("")
|
|
301
|
+
: p(text(form.blurb))
|
|
302
|
+
: "";
|
|
303
|
+
const hiddens = form.fields
|
|
304
|
+
.filter((f) => f.input_type === "hidden")
|
|
305
|
+
.map((f) => innerField(form.values, form.errors)(f))
|
|
306
|
+
.join("");
|
|
307
|
+
const fullFormError = form.errors._form
|
|
308
|
+
? `<div class="form-group row">
|
|
309
|
+
<div class="col-sm-12">
|
|
310
|
+
<p class="text-danger">${form.errors._form}
|
|
311
|
+
</p>
|
|
312
|
+
</div>
|
|
313
|
+
</div>`
|
|
314
|
+
: "";
|
|
315
|
+
return (blurbp +
|
|
316
|
+
top +
|
|
317
|
+
csrfField +
|
|
318
|
+
hiddens +
|
|
319
|
+
renderFormLayout(form) +
|
|
320
|
+
fullFormError +
|
|
321
|
+
"</form>");
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* @param {object[]} additionalButtons
|
|
325
|
+
* @returns {string}
|
|
326
|
+
*/
|
|
327
|
+
const displayAdditionalButtons = (additionalButtons) => additionalButtons
|
|
328
|
+
.map((btn) => `<button type="button" id="${btn.id}" class="${btn.class}"${btn.onclick ? ` onclick="${btn.onclick}"` : ""}>${btn.label}</button> `)
|
|
329
|
+
.join("");
|
|
330
|
+
/**
|
|
331
|
+
* @param {object} form
|
|
332
|
+
* @param {string} csrfToken
|
|
333
|
+
* @param {object} [errors = {}]
|
|
334
|
+
* @returns {string}
|
|
335
|
+
*/
|
|
336
|
+
const mkForm = (form, csrfToken, errors = {}) => {
|
|
337
|
+
const hasFile = form.fields.some((f) => f.input_type === "file");
|
|
338
|
+
const csrfField = csrfToken === false
|
|
339
|
+
? ""
|
|
340
|
+
: `<input type="hidden" name="_csrf" value="${csrfToken}">`;
|
|
341
|
+
const top = `<form ${form.id ? `id="${form.id}" ` : ""}action="${form.action}" ${form.onChange ? ` onchange="${form.onChange}"` : ""}class="form-namespace ${form.isStateForm ? "stateForm" : ""} ${form.class || ""}" method="${form.methodGET ? "get" : "post"}"${hasFile ? ' encType="multipart/form-data"' : ""}>`;
|
|
342
|
+
//console.log(form.fields);
|
|
343
|
+
const flds = form.fields
|
|
344
|
+
.map(mkFormRow(form.values, errors, form.formStyle, typeof form.labelCols === "undefined" ? 2 : form.labelCols))
|
|
345
|
+
.join("");
|
|
346
|
+
const blurbp = form.blurb
|
|
347
|
+
? Array.isArray(form.blurb)
|
|
348
|
+
? form.blurb.join("")
|
|
349
|
+
: p(text(form.blurb))
|
|
350
|
+
: "";
|
|
351
|
+
const fullFormError = errors._form
|
|
352
|
+
? `<div class="form-group row">
|
|
353
|
+
<div class="col-sm-12">
|
|
354
|
+
<p class="text-danger">${errors._form}
|
|
355
|
+
</p>
|
|
356
|
+
</div>
|
|
357
|
+
</div>`
|
|
358
|
+
: "";
|
|
359
|
+
const bot = `<div class="form-group row">
|
|
360
|
+
<div class="col-sm-12">
|
|
361
|
+
${form.additionalButtons
|
|
362
|
+
? displayAdditionalButtons(form.additionalButtons)
|
|
363
|
+
: ""}
|
|
364
|
+
${form.noSubmitButton
|
|
365
|
+
? ""
|
|
366
|
+
: `<button type="submit" class="btn ${form.submitButtonClass || "btn-primary"}">${text(form.submitLabel || "Save")}</button>`}
|
|
367
|
+
</div>
|
|
368
|
+
</div>`;
|
|
369
|
+
return blurbp + top + csrfField + flds + fullFormError + bot + "</form>";
|
|
370
|
+
};
|
|
371
|
+
module.exports = renderForm;
|
|
372
|
+
//# sourceMappingURL=form.js.map
|
package/dist/form.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../form.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category saltcorn-markup
|
|
3
|
+
* @module helpers
|
|
4
|
+
*/
|
|
5
|
+
declare namespace HelpersExports {
|
|
6
|
+
type RadioGroupOpts = {
|
|
7
|
+
name: string;
|
|
8
|
+
options: any;
|
|
9
|
+
value: string;
|
|
10
|
+
inline: any;
|
|
11
|
+
form_name: string;
|
|
12
|
+
onChange: any;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
declare type RadioGroupOpts = HelpersExports.RadioGroupOpts;
|
|
17
|
+
declare namespace HelpersExports {
|
|
18
|
+
type CheckBoxGroupOpts = {
|
|
19
|
+
name: string;
|
|
20
|
+
options: any;
|
|
21
|
+
value: string;
|
|
22
|
+
inline: boolean;
|
|
23
|
+
form_name: string;
|
|
24
|
+
onChange: any;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
declare type CheckBoxGroupOpts = HelpersExports.CheckBoxGroupOpts;
|
|
29
|
+
declare namespace HelpersExports {
|
|
30
|
+
type PaginationOpts = {
|
|
31
|
+
current_page: number;
|
|
32
|
+
pages: number;
|
|
33
|
+
get_page_link: (index: number) => string;
|
|
34
|
+
trailing_ellipsis?: boolean;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
declare type PaginationOpts = HelpersExports.PaginationOpts;
|
|
38
|
+
declare namespace HelpersExports {
|
|
39
|
+
type SearchBarOpts = {
|
|
40
|
+
placeHolder?: string;
|
|
41
|
+
has_dropdown: boolean;
|
|
42
|
+
contents: string;
|
|
43
|
+
badges?: string[];
|
|
44
|
+
stateField: string;
|
|
45
|
+
onClick: any;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
declare type SearchBarOpts = HelpersExports.SearchBarOpts;
|
|
49
|
+
declare const HelpersExports: {
|
|
50
|
+
isdef: (x: any) => boolean;
|
|
51
|
+
select_options: (v: string | any, hdr: any, force_required?: boolean | undefined, neutral_label?: string) => string;
|
|
52
|
+
search_bar: (name: string, v: any, { placeHolder, has_dropdown, contents, badges, stateField, onClick, }?: SearchBarOpts | any) => string;
|
|
53
|
+
pagination: ({ current_page, pages, get_page_link, trailing_ellipsis, }: PaginationOpts) => string;
|
|
54
|
+
radio_group: ({ name, options, value, inline, form_name, onChange, ...rest }: RadioGroupOpts) => string;
|
|
55
|
+
checkbox_group: ({ name, options, value, inline, form_name, onChange, ...rest }: CheckBoxGroupOpts) => string;
|
|
56
|
+
};
|
|
57
|
+
export = HelpersExports;
|
|
58
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmDH,kBAAU,cAAc,CAAC;IACvB,KAAY,cAAc,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,GAAG,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,GAAG,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,GAAG,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AACD,aAAK,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;AAkDpD,kBAAU,cAAc,CAAC;IACvB,KAAY,iBAAiB,GAAG;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,GAAG,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,GAAG,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AACD,aAAK,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC;AAyC1D,kBAAU,cAAc,CAAC;IACvB,KAAY,cAAc,GAAG;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QACzC,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AACD,aAAK,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;AAoDpD,kBAAU,cAAc,CAAC;IACvB,KAAY,aAAa,GAAG;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC;KACd,CAAC;CACH;AACD,aAAK,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;AA+ElD,QAAA,MAAM,cAAc;eA/SF,GAAG,KAAG,OAAO;wBAU1B,MAAM,GAAG,GAAG,OACV,GAAG,wDAEO,MAAM,KACpB,MAAM;uBA2ND,MAAM,KACT,GAAG,0EAQH,aAAa,GAAG,GAAG,KACrB,MAAM;6EAlEN,cAAc,KAAG,MAAM;kFAxGvB,cAAc,KAAG,MAAM;qFAkDvB,iBAAiB,KAAG,MAAM;CA2L5B,CAAC;AACF,SAAS,cAAc,CAAC"}
|