@sealcode/sealgen 0.2.2 → 0.4.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/@types/forms/controls/checkboxed-list-input.d.ts +5 -6
- package/@types/forms/controls/dropdown.d.ts +5 -6
- package/@types/forms/controls/editable-collection-subset.d.ts +6 -6
- package/@types/forms/controls/form-control.d.ts +3 -4
- package/@types/forms/controls/form-field-control.d.ts +9 -8
- package/@types/forms/controls/frame.d.ts +2 -2
- package/@types/forms/controls/simple-input.d.ts +5 -5
- package/@types/forms/field.d.ts +47 -16
- package/@types/forms/fields/checkboxed-list.d.ts +16 -0
- package/@types/forms/fields/collection-field.d.ts +11 -0
- package/@types/forms/fields/field.d.ts +38 -0
- package/@types/forms/fields/number.d.ts +13 -0
- package/@types/forms/fields/pick-from-list.d.ts +16 -0
- package/@types/forms/fields/simple-form-field.d.ts +7 -0
- package/@types/forms/form-fields-list.d.ts +1 -1
- package/@types/forms/form.d.ts +23 -28
- package/@types/forms/simple-form-field.d.ts +6 -0
- package/@types/forms/validator.d.ts +0 -3
- package/@types/index.d.ts +6 -4
- package/@types/make-hidden-inputs.d.ts +4 -0
- package/@types/page/list.d.ts +23 -42
- package/@types/page/mountable.d.ts +36 -0
- package/@types/page/page.d.ts +9 -16
- package/@types/page/props-parser.d.ts +5 -10
- package/@types/templates/page.d.ts +1 -1
- package/lib/build.js +11 -3
- package/lib/build.js.map +1 -1
- package/lib/forms/controls/checkboxed-list-input.js +10 -17
- package/lib/forms/controls/checkboxed-list-input.js.map +1 -1
- package/lib/forms/controls/dropdown.js +16 -20
- package/lib/forms/controls/dropdown.js.map +1 -1
- package/lib/forms/controls/editable-collection-subset.js +33 -35
- package/lib/forms/controls/editable-collection-subset.js.map +1 -1
- package/lib/forms/controls/form-control.js.map +1 -1
- package/lib/forms/controls/form-field-control.js +2 -11
- package/lib/forms/controls/form-field-control.js.map +1 -1
- package/lib/forms/controls/simple-input.js +16 -22
- package/lib/forms/controls/simple-input.js.map +1 -1
- package/lib/forms/field.js +96 -20
- package/lib/forms/field.js.map +1 -1
- package/lib/forms/fields/checkboxed-list.js +43 -0
- package/lib/forms/fields/checkboxed-list.js.map +1 -0
- package/lib/forms/fields/collection-field.js +28 -0
- package/lib/forms/fields/collection-field.js.map +1 -0
- package/lib/forms/fields/field.js +66 -0
- package/lib/forms/fields/field.js.map +1 -0
- package/lib/forms/fields/number.js +45 -0
- package/lib/forms/fields/number.js.map +1 -0
- package/lib/forms/fields/pick-from-list.js +34 -0
- package/lib/forms/fields/pick-from-list.js.map +1 -0
- package/lib/forms/fields/simple-form-field.js +18 -0
- package/lib/forms/fields/simple-form-field.js.map +1 -0
- package/lib/forms/form.js +47 -96
- package/lib/forms/form.js.map +1 -1
- package/lib/forms/simple-form-field.js +18 -0
- package/lib/forms/simple-form-field.js.map +1 -0
- package/lib/forms/validator.js +0 -10
- package/lib/forms/validator.js.map +1 -1
- package/lib/generate-routes.js +11 -3
- package/lib/generate-routes.js.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.js.map +1 -1
- package/lib/make-hidden-inputs.js +17 -0
- package/lib/make-hidden-inputs.js.map +1 -0
- package/lib/page/list.js +64 -79
- package/lib/page/list.js.map +1 -1
- package/lib/page/mountable.js +56 -0
- package/lib/page/mountable.js.map +1 -0
- package/lib/page/page.js +11 -1
- package/lib/page/page.js.map +1 -1
- package/lib/page/props-parser.js +4 -47
- package/lib/page/props-parser.js.map +1 -1
- package/lib/templates/form.js +38 -18
- package/lib/templates/form.js.map +1 -1
- package/lib/templates/list.js +30 -20
- package/lib/templates/list.js.map +1 -1
- package/lib/templates/page.js +5 -4
- package/lib/templates/page.js.map +1 -1
- package/lib/utils/escape-url-params.js +1 -0
- package/lib/utils/escape-url-params.js.map +1 -1
- package/package.json +3 -3
- package/src/build.ts +13 -3
- package/src/forms/controls/checkboxed-list-input.ts +12 -23
- package/src/forms/controls/dropdown.ts +27 -32
- package/src/forms/controls/editable-collection-subset.ts +57 -54
- package/src/forms/controls/form-control.ts +5 -6
- package/src/forms/controls/form-field-control.ts +13 -29
- package/src/forms/controls/frame.ts +2 -2
- package/src/forms/controls/simple-input.ts +26 -23
- package/src/forms/fields/checkboxed-list.ts +61 -0
- package/src/forms/fields/collection-field.ts +54 -0
- package/src/forms/fields/field.ts +106 -0
- package/src/forms/fields/number.ts +53 -0
- package/src/forms/fields/pick-from-list.ts +49 -0
- package/src/forms/fields/simple-form-field.ts +20 -0
- package/src/forms/form.ts +94 -162
- package/src/generate-routes.ts +11 -7
- package/src/index.ts +6 -4
- package/src/make-hidden-inputs.ts +22 -0
- package/src/page/list.ts +113 -126
- package/src/page/mountable.ts +105 -0
- package/src/page/page.ts +20 -11
- package/src/page/props-parser.ts +9 -67
- package/src/templates/form.ts +38 -18
- package/src/templates/list.ts +30 -20
- package/src/templates/page.ts +6 -6
- package/src/utils/escape-url-params.ts +1 -0
- package/.log/ti-101379.log +0 -524
- package/.log/ti-131883.log +0 -505
- package/.log/ti-13490.log +0 -652
- package/.log/ti-138140.log +0 -505
- package/.log/ti-138288.log +0 -526
- package/.log/ti-292609.log +0 -508
- package/.log/ti-304933.log +0 -524
- package/.log/ti-312312.log +0 -508
- package/.log/ti-314240.log +0 -1617
- package/.log/ti-46589.log +0 -675
- package/.log/ti-62627.log +0 -508
- package/.log/ti-64785.log +0 -508
- package/.log/ti-65911.log +0 -533
- package/.log/ti-69885.log +0 -548
- package/.log/ti-72106.log +0 -551
- package/.log/ti-74858.log +0 -508
- package/.log/tsserver.log +0 -1651
- package/src/forms/controls.ts +0 -0
- package/src/forms/field.ts +0 -119
- package/src/forms/form-fields-list.ts +0 -7
- package/src/forms/validator.ts +0 -10
package/src/templates/list.ts
CHANGED
|
@@ -27,38 +27,48 @@ import { tempstream } from "tempstream";
|
|
|
27
27
|
import { ${uppercase_collection} } from "${rel(
|
|
28
28
|
"src/back/collections/collections"
|
|
29
29
|
)}";
|
|
30
|
-
import html from "
|
|
31
|
-
import {
|
|
32
|
-
BaseListPageDefaultProps,
|
|
33
|
-
BaseListPageProps,
|
|
34
|
-
BaseListPagePropsShape,
|
|
35
|
-
SealiousItemListPage,
|
|
36
|
-
} from "${rel("src/back/page/list.ts")}";
|
|
37
|
-
import { AllQueryParams } from "${rel("src/back/page/props-parser.ts")}";
|
|
30
|
+
import html from "../../html";
|
|
31
|
+
import { SealiousItemListPage, BaseListPageFields } from "@sealcode/sealgen";
|
|
38
32
|
|
|
39
33
|
export const actionName = "${action_name}";
|
|
40
34
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
const filterFields = {};
|
|
36
|
+
|
|
37
|
+
export default new (class ${action_name}Page extends SealiousItemListPage<
|
|
38
|
+
typeof ${uppercase_collection},
|
|
39
|
+
typeof BaseListPageFields
|
|
40
|
+
> {
|
|
41
|
+
fields = BaseListPageFields;
|
|
42
|
+
|
|
43
|
+
filterFields = filterFields;
|
|
44
|
+
filterControls = [];
|
|
46
45
|
|
|
47
46
|
async render(ctx: BaseContext) {
|
|
48
47
|
return html(
|
|
49
48
|
ctx,
|
|
50
|
-
|
|
49
|
+
"${uppercase_collection}",
|
|
51
50
|
tempstream/* HTML */ \`<div>
|
|
52
|
-
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
<h2>${uppercase_collection} List</h2>
|
|
52
|
+
<table>
|
|
53
|
+
<thead>
|
|
54
|
+
<th>id</th>
|
|
55
|
+
\${Object.keys(${uppercase_collection}.fields).map(
|
|
56
|
+
(fieldname) => \`<th>\${fieldname}</th>\`
|
|
57
|
+
)}
|
|
58
|
+
</thead>
|
|
59
|
+
<tbody>
|
|
60
|
+
\${super.render(ctx)}
|
|
61
|
+
</tbody>
|
|
62
|
+
</table>
|
|
56
63
|
</div>\`
|
|
57
64
|
);
|
|
58
65
|
}
|
|
59
66
|
|
|
60
|
-
|
|
61
|
-
return tempstream\`<
|
|
67
|
+
async renderItem(_: BaseContext, item: CollectionItem<typeof ${uppercase_collection}>) {
|
|
68
|
+
return tempstream\`<tr><td>\${item.id}</td>\${Object.keys(${uppercase_collection}.fields).map(
|
|
69
|
+
(fieldname: keyof typeof ${uppercase_collection}["fields"]) =>
|
|
70
|
+
tempstream\`<td>\${item.get(fieldname)}</td>\`
|
|
71
|
+
)}</tr>\`;
|
|
62
72
|
}
|
|
63
73
|
})(${uppercase_collection});
|
|
64
74
|
`;
|
package/src/templates/page.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { curryImportPath } from "../utils/import-path";
|
|
3
2
|
export async function pageTemplate(
|
|
4
3
|
action_name: string,
|
|
5
|
-
|
|
4
|
+
newfilefullpath: string
|
|
6
5
|
): Promise<string> {
|
|
6
|
+
const rel = curryImportPath(newfilefullpath);
|
|
7
7
|
return `import { BaseContext } from "koa";
|
|
8
8
|
import { tempstream } from "tempstream";
|
|
9
|
-
import { Page } from "
|
|
9
|
+
import { Page } from "@sealcode/sealgen";
|
|
10
|
+
import html from "${rel("src/back/html")}";
|
|
10
11
|
|
|
11
12
|
export const actionName = "${action_name}";
|
|
12
13
|
|
|
13
14
|
export default new (class ${action_name}Page extends Page {
|
|
14
|
-
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
16
|
async canAccess(_: BaseContext) {
|
|
17
17
|
return { canAccess: true, message: "" };
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
async render(ctx: BaseContext) {
|
|
21
|
-
return tempstream/* HTML */ \`<div></div
|
|
21
|
+
return html(ctx, "${action_name}", tempstream/* HTML */ \`<div></div>\`);
|
|
22
22
|
}
|
|
23
23
|
})();
|
|
24
24
|
`;
|