@sealcode/sealgen 0.1.8 → 0.3.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.
Files changed (154) hide show
  1. package/.eslintrc.js +1 -0
  2. package/@types/build.d.ts +1 -0
  3. package/@types/cli.d.ts +2 -0
  4. package/@types/forms/controls/checkboxed-list-input.d.ts +16 -0
  5. package/@types/forms/controls/controls.d.ts +9 -0
  6. package/@types/forms/controls/dropdown.d.ts +20 -0
  7. package/@types/forms/controls/editable-collection-subset.d.ts +21 -0
  8. package/@types/forms/controls/form-control.d.ts +8 -0
  9. package/@types/forms/controls/form-field-control.d.ts +13 -0
  10. package/@types/forms/controls/form-header.d.ts +9 -0
  11. package/@types/forms/controls/form-paragraph.d.ts +7 -0
  12. package/@types/forms/controls/frame.d.ts +17 -0
  13. package/@types/forms/controls/simple-input.d.ts +28 -0
  14. package/@types/forms/controls.d.ts +0 -0
  15. package/@types/forms/field.d.ts +42 -0
  16. package/@types/forms/form-fields-list.d.ts +4 -0
  17. package/@types/forms/form.d.ts +42 -0
  18. package/@types/forms/validator.d.ts +3 -0
  19. package/@types/index.d.ts +14 -2
  20. package/@types/page/access-control.d.ts +6 -0
  21. package/@types/page/list.d.ts +59 -0
  22. package/@types/page/page.d.ts +26 -0
  23. package/@types/page/props-parser.d.ts +20 -0
  24. package/@types/run.d.ts +0 -0
  25. package/@types/templates/form.d.ts +1 -1
  26. package/@types/templates/list.d.ts +1 -0
  27. package/@types/templates/page.d.ts +1 -1
  28. package/@types/utils/list-collections.d.ts +1 -0
  29. package/@types/utils/natural-numbers.d.ts +1 -0
  30. package/@types/utils/sleep.d.ts +1 -0
  31. package/@types/utils/url-with-new-params.d.ts +2 -0
  32. package/@types/utils/utils.d.ts +9 -0
  33. package/@types/utils/walk.d.ts +1 -1
  34. package/lib/add-collection.js +13 -24
  35. package/lib/add-collection.js.map +1 -1
  36. package/lib/add-route.js +25 -32
  37. package/lib/add-route.js.map +1 -1
  38. package/lib/build.js +108 -0
  39. package/lib/build.js.map +1 -0
  40. package/lib/cli.js +30 -0
  41. package/lib/cli.js.map +1 -0
  42. package/lib/find-scss-includes.js +10 -20
  43. package/lib/find-scss-includes.js.map +1 -1
  44. package/lib/forms/controls/checkboxed-list-input.js +43 -0
  45. package/lib/forms/controls/checkboxed-list-input.js.map +1 -0
  46. package/lib/forms/controls/controls.js +22 -0
  47. package/lib/forms/controls/controls.js.map +1 -0
  48. package/lib/forms/controls/dropdown.js +40 -0
  49. package/lib/forms/controls/dropdown.js.map +1 -0
  50. package/lib/forms/controls/editable-collection-subset.js +73 -0
  51. package/lib/forms/controls/editable-collection-subset.js.map +1 -0
  52. package/lib/forms/controls/form-control.js +7 -0
  53. package/lib/forms/controls/form-control.js.map +1 -0
  54. package/lib/forms/controls/form-field-control.js +22 -0
  55. package/lib/forms/controls/form-field-control.js.map +1 -0
  56. package/lib/forms/controls/form-header.js +18 -0
  57. package/lib/forms/controls/form-header.js.map +1 -0
  58. package/lib/forms/controls/form-paragraph.js +16 -0
  59. package/lib/forms/controls/form-paragraph.js.map +1 -0
  60. package/lib/forms/controls/frame.js +29 -0
  61. package/lib/forms/controls/frame.js.map +1 -0
  62. package/lib/forms/controls/simple-input.js +50 -0
  63. package/lib/forms/controls/simple-input.js.map +1 -0
  64. package/lib/forms/controls.js +1 -0
  65. package/lib/forms/controls.js.map +1 -0
  66. package/lib/forms/field.js +80 -0
  67. package/lib/forms/field.js.map +1 -0
  68. package/lib/forms/form-fields-list.js +10 -0
  69. package/lib/forms/form-fields-list.js.map +1 -0
  70. package/lib/forms/form.js +162 -0
  71. package/lib/forms/form.js.map +1 -0
  72. package/lib/forms/validator.js +11 -0
  73. package/lib/forms/validator.js.map +1 -0
  74. package/lib/generate-collections.js +30 -43
  75. package/lib/generate-collections.js.map +1 -1
  76. package/lib/generate-routes.js +29 -42
  77. package/lib/generate-routes.js.map +1 -1
  78. package/lib/index.js +16 -37
  79. package/lib/index.js.map +1 -1
  80. package/lib/page/access-control.js +20 -0
  81. package/lib/page/access-control.js.map +1 -0
  82. package/lib/page/list.js +148 -0
  83. package/lib/page/list.js.map +1 -0
  84. package/lib/page/page.js +20 -0
  85. package/lib/page/page.js.map +1 -0
  86. package/lib/page/props-parser.js +74 -0
  87. package/lib/page/props-parser.js.map +1 -0
  88. package/lib/run.js +1 -0
  89. package/lib/run.js.map +1 -0
  90. package/lib/templates/form.js +2 -2
  91. package/lib/templates/form.js.map +1 -1
  92. package/lib/templates/list.js +61 -0
  93. package/lib/templates/list.js.map +1 -0
  94. package/lib/templates/page.js +3 -1
  95. package/lib/templates/page.js.map +1 -1
  96. package/lib/utils/exec.js +16 -27
  97. package/lib/utils/exec.js.map +1 -1
  98. package/lib/utils/list-collections.js +20 -0
  99. package/lib/utils/list-collections.js.map +1 -0
  100. package/lib/utils/natural-numbers.js +10 -0
  101. package/lib/utils/natural-numbers.js.map +1 -0
  102. package/lib/utils/question.js +15 -26
  103. package/lib/utils/question.js.map +1 -1
  104. package/lib/utils/sleep.js +8 -0
  105. package/lib/utils/sleep.js.map +1 -0
  106. package/lib/utils/url-with-new-params.js +12 -0
  107. package/lib/utils/url-with-new-params.js.map +1 -0
  108. package/lib/utils/utils.js +19 -0
  109. package/lib/utils/utils.js.map +1 -0
  110. package/lib/utils/walk.js +16 -27
  111. package/lib/utils/walk.js.map +1 -1
  112. package/package.json +19 -4
  113. package/src/add-route.ts +13 -8
  114. package/src/build.ts +82 -0
  115. package/src/cli.ts +34 -0
  116. package/src/find-scss-includes.ts +3 -2
  117. package/src/forms/controls/checkboxed-list-input.ts +50 -0
  118. package/src/forms/controls/controls.ts +9 -0
  119. package/src/forms/controls/dropdown.ts +57 -0
  120. package/src/forms/controls/editable-collection-subset.ts +91 -0
  121. package/src/forms/controls/form-control.ts +13 -0
  122. package/src/forms/controls/form-field-control.ts +39 -0
  123. package/src/forms/controls/form-header.ts +16 -0
  124. package/src/forms/controls/form-paragraph.ts +11 -0
  125. package/src/forms/controls/frame.ts +26 -0
  126. package/src/forms/controls/simple-input.ts +73 -0
  127. package/src/forms/controls.ts +0 -0
  128. package/src/forms/field.ts +119 -0
  129. package/src/forms/form-fields-list.ts +7 -0
  130. package/src/forms/form.ts +242 -0
  131. package/src/forms/forms.scss +18 -0
  132. package/src/forms/validator.ts +10 -0
  133. package/src/generate-routes.ts +8 -3
  134. package/src/index.ts +14 -28
  135. package/src/page/access-control.ts +18 -0
  136. package/src/page/list.ts +214 -0
  137. package/src/page/page.ts +31 -0
  138. package/src/page/props-parser.ts +99 -0
  139. package/src/run.ts +0 -0
  140. package/src/templates/form.ts +5 -2
  141. package/src/templates/list.ts +65 -0
  142. package/src/templates/page.ts +4 -2
  143. package/src/utils/list-collections.ts +16 -0
  144. package/src/utils/natural-numbers.ts +5 -0
  145. package/src/utils/sleep.ts +3 -0
  146. package/src/utils/url-with-new-params.ts +9 -0
  147. package/src/utils/utils.ts +10 -0
  148. package/src/utils/walk.ts +2 -2
  149. package/tsconfig.json +23 -25
  150. package/.log/ti-101379.log +0 -505
  151. package/.log/ti-13490.log +0 -652
  152. package/.log/ti-46589.log +0 -675
  153. package/.log/tsserver.log +0 -146
  154. package/src/tsconfig.json +0 -18
package/lib/build.js ADDED
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.buildProject = void 0;
26
+ const esbuild_1 = require("esbuild");
27
+ const esbuild_sass_plugin_1 = require("esbuild-sass-plugin");
28
+ const chokidar = __importStar(require("chokidar"));
29
+ const tiny_glob_1 = __importDefault(require("tiny-glob"));
30
+ const find_scss_includes_1 = require("./find-scss-includes");
31
+ const sleep_1 = require("./utils/sleep");
32
+ async function build_ts() {
33
+ const entryPoints = await tiny_glob_1.default("./src/back/**/*.ts");
34
+ await esbuild_1.build({
35
+ entryPoints,
36
+ sourcemap: true,
37
+ outdir: "./dist/back",
38
+ logLevel: "info",
39
+ platform: "node",
40
+ target: "node16",
41
+ format: "cjs",
42
+ });
43
+ }
44
+ async function complex_build(watch) {
45
+ let scss_build = null;
46
+ if (watch) {
47
+ const scss_watcher = chokidar.watch("src", { ignoreInitial: true });
48
+ scss_watcher.on("all", async (_, path) => {
49
+ if (!scss_build)
50
+ return;
51
+ if (path.endsWith(".scss") && !path.endsWith("/includes.scss")) {
52
+ // refresh the list of all scss files in includes.scss
53
+ await find_scss_includes_1.generateScssIncludes();
54
+ try {
55
+ await scss_build?.rebuild?.();
56
+ console.log(`Built main.scss [on ${path}]`);
57
+ }
58
+ catch (e) {
59
+ console.error(e);
60
+ await sleep_1.sleep(200);
61
+ scss_build
62
+ ?.rebuild?.()
63
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
64
+ .catch((e) => console.error(e?.message));
65
+ }
66
+ }
67
+ if (path.endsWith(".ts")) {
68
+ await build_ts();
69
+ console.log(`Finished TS biuld [on ${path}]`);
70
+ }
71
+ });
72
+ }
73
+ try {
74
+ scss_build = await esbuild_1.build({
75
+ entryPoints: ["./src/main.scss"],
76
+ sourcemap: true,
77
+ outfile: "./public/dist/style.css",
78
+ logLevel: "info",
79
+ incremental: watch,
80
+ plugins: [esbuild_sass_plugin_1.sassPlugin()],
81
+ });
82
+ await build_ts();
83
+ watch && scss_build?.rebuild?.();
84
+ }
85
+ catch (e) {
86
+ console.error(e);
87
+ }
88
+ }
89
+ async function buildProject(...args) {
90
+ const watch = args.includes("--watch");
91
+ await esbuild_1.build({
92
+ entryPoints: ["./src/front/index.ts"],
93
+ sourcemap: true,
94
+ outfile: "./public/dist/bundle.js",
95
+ logLevel: "info",
96
+ bundle: true,
97
+ watch,
98
+ });
99
+ try {
100
+ await complex_build(watch);
101
+ }
102
+ catch (e) {
103
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
104
+ console.error(e.message);
105
+ }
106
+ }
107
+ exports.buildProject = buildProject;
108
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
package/lib/cli.js ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const add_collection_1 = require("./add-collection");
5
+ const add_route_1 = require("./add-route");
6
+ const build_1 = require("./build");
7
+ const find_scss_includes_1 = require("./find-scss-includes");
8
+ const generate_collections_1 = require("./generate-collections");
9
+ const generate_routes_1 = require("./generate-routes");
10
+ const actions = {
11
+ "add-collection": add_collection_1.addCollection,
12
+ "add-route": add_route_1.addRoute,
13
+ "generate-collections": generate_collections_1.generateCollections,
14
+ "generate-routes": generate_routes_1.generateRoutes,
15
+ "generate-scss-includes": find_scss_includes_1.generateScssIncludes,
16
+ build: build_1.buildProject,
17
+ default: async function () {
18
+ console.log("Usage: `sealscript <action>`");
19
+ console.log(`Available actions: ${Object.keys(actions)
20
+ .filter((e) => e != "default")
21
+ .join(", ")}`);
22
+ },
23
+ };
24
+ void (async function () {
25
+ const action = process.argv.at(2);
26
+ actions;
27
+ const fn = actions[action || "default"] || actions.default;
28
+ await fn(...process.argv.slice(3));
29
+ })();
30
+ //# sourceMappingURL=cli.js.map
package/lib/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AACjD,2CAAuC;AACvC,mCAAuC;AACvC,6DAA4D;AAC5D,iEAA6D;AAC7D,uDAAmD;AAEnD,MAAM,OAAO,GAGT;IACH,gBAAgB,EAAE,8BAAa;IAC/B,WAAW,EAAE,oBAAQ;IACrB,sBAAsB,EAAE,0CAAmB;IAC3C,iBAAiB,EAAE,gCAAc;IACjC,wBAAwB,EAAE,yCAAoB;IAC9C,KAAK,EAAE,oBAAY;IACnB,OAAO,EAAE,KAAK;QACb,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CACV,sBAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CACd,CAAC;IACH,CAAC;CACD,CAAC;AAEF,KAAK,CAAC,KAAK;IACV,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC;IACR,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;IAC3D,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,EAAE,CAAC"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -18,20 +9,19 @@ const locreq_1 = __importDefault(require("locreq"));
18
9
  const path_1 = require("path");
19
10
  const walk_1 = require("./utils/walk");
20
11
  const target_locreq = locreq_1.default(process.cwd());
21
- function generateScssIncludes() {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const files = yield Promise.all((yield walk_1.walk(target_locreq.resolve("src/")))
24
- .filter((f) => f.endsWith(".scss") &&
25
- !f.endsWith("/main.scss") &&
26
- !f.endsWith("/includes.scss"))
27
- .map((fullpath) => path_1.relative(target_locreq.resolve("src/"), fullpath)));
28
- yield fs_1.promises.writeFile(target_locreq.resolve("src/includes.scss"), `// DO NOT EDIT! This file is generated automaticaly with npx sealgen generate-scss-includes
12
+ async function generateScssIncludes() {
13
+ const files = await Promise.all((await walk_1.walkDir(target_locreq.resolve("src/")))
14
+ .filter((f) => f.endsWith(".scss") &&
15
+ !f.endsWith("/main.scss") &&
16
+ !f.endsWith("/includes.scss"))
17
+ .map((fullpath) => path_1.relative(target_locreq.resolve("src/"), fullpath)));
18
+ await fs_1.promises.writeFile(target_locreq.resolve("src/includes.scss"), `// DO NOT EDIT! This file is generated automaticaly with npx sealgen generate-scss-includes
29
19
 
20
+ @import "../node_modules/@sealcode/sealgen/src/forms/forms.scss";
30
21
  ${files.map((path) => `@import "${path}";`).join("\n")}
31
22
  `);
32
- // eslint-disable-next-line no-console
33
- console.log("Successfuly generated new src/includes.scss file");
34
- });
23
+ // eslint-disable-next-line no-console
24
+ console.log("Successfuly generated new src/includes.scss file");
35
25
  }
36
26
  exports.generateScssIncludes = generateScssIncludes;
37
27
  //# sourceMappingURL=find-scss-includes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-scss-includes.js","sourceRoot":"","sources":["../src/find-scss-includes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2BAAoC;AACpC,oDAA6B;AAC7B,+BAAgC;AAChC,uCAAoC;AAEpC,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE7C,SAAsB,oBAAoB;;QACzC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,CAAC,MAAM,WAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aACzC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC9B;aACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjB,eAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CACjD,CACF,CAAC;QAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAC1C;;EAEA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACrD,CACC,CAAC;QACF,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IACjE,CAAC;CAAA;AAvBD,oDAuBC"}
1
+ {"version":3,"file":"find-scss-includes.js","sourceRoot":"","sources":["../src/find-scss-includes.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,oDAA6B;AAC7B,+BAAgC;AAChC,uCAAuC;AAEvC,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEtC,KAAK,UAAU,oBAAoB;IACzC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,CAAC,MAAM,cAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC5C,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC9B;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjB,eAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CACjD,CACF,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CACjB,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAC1C;;;EAGA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACrD,CACC,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AACjE,CAAC;AAxBD,oDAwBC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckboxedListInput = void 0;
4
+ const ts_predicates_1 = require("@sealcode/ts-predicates");
5
+ const tempstream_1 = require("tempstream");
6
+ const form_fields_list_1 = require("../form-fields-list");
7
+ const controls_1 = require("./controls");
8
+ class CheckboxedListInput extends controls_1.FormFieldControl {
9
+ constructor(fieldname, options = { label: fieldname }) {
10
+ super([fieldname]);
11
+ this.fieldname = fieldname;
12
+ this.options = options;
13
+ }
14
+ isValidFieldName(form) {
15
+ return form.fields.some((f) => f.name == this.fieldname);
16
+ }
17
+ async _render(ctx, fields, data) {
18
+ // safe to disable this as isValidFieldName takes care of checking if the field is of this type
19
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
20
+ const field = form_fields_list_1.FormFieldsList.getField(fields, this.fieldname);
21
+ const pickedValues = data.values[field.name] || "";
22
+ if (!ts_predicates_1.is(pickedValues, ts_predicates_1.predicates.array(ts_predicates_1.predicates.string))) {
23
+ throw new Error("picked values is not an array of strings");
24
+ }
25
+ const [options, isVisible] = await Promise.all([
26
+ field.generateOptions(ctx),
27
+ field.isVisible(ctx),
28
+ ]);
29
+ return tempstream_1.tempstream /* HTML */ `${isVisible
30
+ ? Object.entries(options).map(([value, text]) => /* HTML */ `<div>
31
+ <input
32
+ type="checkbox"
33
+ id="${field.name}.${value}"
34
+ name="${field.name}.${value}"
35
+ ${pickedValues.includes(value) ? "checked" : ""}
36
+ />
37
+ <label for="${field.name}.${value}">${text}</label>
38
+ </div>`)
39
+ : ""}`;
40
+ }
41
+ }
42
+ exports.CheckboxedListInput = CheckboxedListInput;
43
+ //# sourceMappingURL=checkboxed-list-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkboxed-list-input.js","sourceRoot":"","sources":["../../../src/forms/controls/checkboxed-list-input.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAEzD,2CAAwC;AAGxC,0DAAqD;AACrD,yCAA8C;AAE9C,MAAa,mBAAoB,SAAQ,2BAAgB;IACxD,YACQ,SAAiB,EACjB,UAA6B,EAAE,KAAK,EAAE,SAAS,EAAE;QAExD,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAHZ,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAA0C;IAGzD,CAAC;IAED,gBAAgB,CAAC,IAAU;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAgB,EAAE,MAAmB,EAAE,IAAc;QAClE,+FAA+F;QAC/F,yEAAyE;QACzE,MAAM,KAAK,GAAG,iCAAc,CAAC,QAAQ,CACpC,MAAM,EACN,IAAI,CAAC,SAAS,CACQ,CAAC;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,kBAAE,CAAC,YAAY,EAAE,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC5D;QACD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC;YAC1B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;SACpB,CAAC,CAAC;QACH,OAAO,uBAAU,CAAA,UAAU,CAAC,GAAG,SAAS;YACvC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAC3B,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;;;aAGtB,KAAK,CAAC,IAAI,IAAI,KAAK;eACjB,KAAK,CAAC,IAAI,IAAI,KAAK;SACzB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;oBAElC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI;YACpC,CACN;YACH,CAAC,CAAC,EAAE,EAAE,CAAC;IACT,CAAC;CACD;AAzCD,kDAyCC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormParagraph = exports.FormHeader = exports.SimpleInput = exports.Dropdown = exports.CheckboxedListInput = exports.Frame = exports.EditableCollectionSubset = exports.FormFieldControl = exports.FormControl = void 0;
4
+ var form_control_1 = require("./form-control");
5
+ Object.defineProperty(exports, "FormControl", { enumerable: true, get: function () { return form_control_1.FormControl; } });
6
+ var form_field_control_1 = require("./form-field-control");
7
+ Object.defineProperty(exports, "FormFieldControl", { enumerable: true, get: function () { return form_field_control_1.FormFieldControl; } });
8
+ var editable_collection_subset_1 = require("./editable-collection-subset");
9
+ Object.defineProperty(exports, "EditableCollectionSubset", { enumerable: true, get: function () { return editable_collection_subset_1.EditableCollectionSubset; } });
10
+ var frame_1 = require("./frame");
11
+ Object.defineProperty(exports, "Frame", { enumerable: true, get: function () { return frame_1.Frame; } });
12
+ var checkboxed_list_input_1 = require("./checkboxed-list-input");
13
+ Object.defineProperty(exports, "CheckboxedListInput", { enumerable: true, get: function () { return checkboxed_list_input_1.CheckboxedListInput; } });
14
+ var dropdown_1 = require("./dropdown");
15
+ Object.defineProperty(exports, "Dropdown", { enumerable: true, get: function () { return dropdown_1.Dropdown; } });
16
+ var simple_input_1 = require("./simple-input");
17
+ Object.defineProperty(exports, "SimpleInput", { enumerable: true, get: function () { return simple_input_1.SimpleInput; } });
18
+ var form_header_1 = require("./form-header");
19
+ Object.defineProperty(exports, "FormHeader", { enumerable: true, get: function () { return form_header_1.FormHeader; } });
20
+ var form_paragraph_1 = require("./form-paragraph");
21
+ Object.defineProperty(exports, "FormParagraph", { enumerable: true, get: function () { return form_paragraph_1.FormParagraph; } });
22
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/forms/controls/controls.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA;AACjC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Dropdown = void 0;
4
+ const tempstream_1 = require("tempstream");
5
+ const field_1 = require("../field");
6
+ const form_fields_list_1 = require("../form-fields-list");
7
+ const controls_1 = require("./controls");
8
+ class Dropdown extends controls_1.FormFieldControl {
9
+ constructor(fieldname, options = {
10
+ label: fieldname,
11
+ autosubmit: false,
12
+ autocomplete: true,
13
+ }) {
14
+ super([fieldname]);
15
+ this.fieldname = fieldname;
16
+ this.options = options;
17
+ }
18
+ areFieldNamesValid(fields) {
19
+ return (super.areFieldNamesValid(fields) &&
20
+ form_fields_list_1.FormFieldsList.getField(fields, this.fieldname) instanceof field_1.PickFromListField);
21
+ }
22
+ _render(ctx, fields, data) {
23
+ // safe to disable this as isValidFieldName takes care of checking if the field is of this type
24
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
25
+ const field = form_fields_list_1.FormFieldsList.getField(fields, this.fieldname);
26
+ const picked_value = data.values[field.name] || "";
27
+ const id = field.name;
28
+ return tempstream_1.tempstream /* HTML */ `<label for="${id}">${this.options.label}</label
29
+ ><select
30
+ name="${this.fieldnames}"
31
+ id="${id}"
32
+ ${this.options.autosubmit ? `onchange='this.form.submit()'` : ""}
33
+ ${!this.options.autocomplete ? `autocomplete="off"` : ""}
34
+ >
35
+ ${Promise.resolve(field.generateOptions(ctx)).then((options) => Object.entries(options).map(([value, text]) => `<option value="${value}" ${(value || "") == picked_value ? "selected" : ""}>${text}</option>`))}
36
+ </select>`;
37
+ }
38
+ }
39
+ exports.Dropdown = Dropdown;
40
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/forms/controls/dropdown.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,oCAAwD;AAExD,0DAAqD;AACrD,yCAA8C;AAE9C,MAAa,QAAS,SAAQ,2BAAgB;IAC7C,YACQ,SAAiB,EACjB,UAIH;QACH,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KAClB;QAED,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAXZ,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAQb;IAGF,CAAC;IAED,kBAAkB,CAAC,MAAmB;QACrC,OAAO,CACN,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAChC,iCAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,yBAAiB,CAC5E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAgB,EAAE,MAAmB,EAAE,IAAc;QAC5D,+FAA+F;QAC/F,yEAAyE;QACzE,MAAM,KAAK,GAAG,iCAAc,CAAC,QAAQ,CACpC,MAAM,EACN,IAAI,CAAC,SAAS,CACO,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;QACtB,OAAO,uBAAU,CAAA,UAAU,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;;YAE1D,IAAI,CAAC,UAAU;UACjB,EAAE;MACN,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE;MAC9D,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;;MAEtD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAC1B,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CACjB,kBAAkB,KAAK,KACtB,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC9C,IAAI,IAAI,WAAW,CACpB,CACD;aACQ,CAAC;IACb,CAAC;CACD;AAjDD,4BAiDC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EditableCollectionSubset = void 0;
4
+ const tempstream_1 = require("tempstream");
5
+ const form_fields_list_1 = require("../form-fields-list");
6
+ const controls_1 = require("./controls");
7
+ /**
8
+ * This control has own forms in it so if you want to use it you
9
+ * probably shouldn't use `await super.render(ctx, data, path)` in
10
+ * render method of you from implementation and you should write
11
+ * your own implementation of this method. See forms that uses
12
+ * this control for reference.
13
+ */
14
+ class EditableCollectionSubset extends controls_1.FormFieldControl {
15
+ constructor(fieldname, actionname, listLabel, selectLabel) {
16
+ super([fieldname]);
17
+ this.fieldname = fieldname;
18
+ this.actionname = actionname;
19
+ this.listLabel = listLabel;
20
+ this.selectLabel = selectLabel;
21
+ this.role = "input";
22
+ }
23
+ _render(ctx, fields, data) {
24
+ // safe to disable this as isValidFieldName takes care of checking if the field is of this type
25
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
26
+ const field = form_fields_list_1.FormFieldsList.getField(fields, this.fieldname);
27
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
28
+ const values = data.values[this.fieldname];
29
+ return tempstream_1.tempstream /* HTML */ `<div>
30
+ <ul>
31
+ ${Promise.resolve(field.generateOptions(ctx)).then((options) => Object.entries(options)
32
+ .filter(([value]) => values.includes(value))
33
+ .map(([value, text]) => /* HTML */ `
34
+ <li>
35
+ <form method="POST" action="${ctx.path}">
36
+ <span>${text}</span>
37
+ <input
38
+ type="hidden"
39
+ name="${this.fieldname}"
40
+ value="${value}"
41
+ />
42
+ <input
43
+ type="hidden"
44
+ name="${this.actionname}"
45
+ value="list"
46
+ />
47
+ <input
48
+ type="submit"
49
+ ${this.listLabel
50
+ ? `value="${this.listLabel}"`
51
+ : ""}
52
+ />
53
+ </form>
54
+ </li>
55
+ `))}
56
+ </ul>
57
+ <form method="POST" action="${ctx.path}">
58
+ <select name="${this.fieldname}">
59
+ ${Promise.resolve(field.generateOptions(ctx)).then((options) => Object.entries(options)
60
+ .filter(([value]) => !values.includes(value))
61
+ .map(([value, text]) => `<option value="${value}">${text}</option>`))}
62
+ </select>
63
+ <input type="hidden" name="${this.actionname}" value="select" />
64
+ <input
65
+ type="submit"
66
+ ${this.selectLabel ? `value="${this.selectLabel}"` : ""}
67
+ />
68
+ </form>
69
+ </div>`;
70
+ }
71
+ }
72
+ exports.EditableCollectionSubset = EditableCollectionSubset;
73
+ //# sourceMappingURL=editable-collection-subset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editable-collection-subset.js","sourceRoot":"","sources":["../../../src/forms/controls/editable-collection-subset.ts"],"names":[],"mappings":";;;AACA,2CAAqD;AAGrD,0DAAqD;AACrD,yCAA8C;AAE9C;;;;;;GAMG;AACH,MAAa,wBAAyB,SAAQ,2BAAgB;IAC7D,YACQ,SAAiB,EACjB,UAAkB,EAClB,SAAkB,EAClB,WAAoB;QAE3B,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QALZ,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAS;QAClB,gBAAW,GAAX,WAAW,CAAS;QAsE5B,SAAI,GAAU,OAAO,CAAC;IAnEtB,CAAC;IAED,OAAO,CACN,GAAgB,EAChB,MAAmB,EACnB,IAAsB;QAEtB,+FAA+F;QAC/F,yEAAyE;QACzE,MAAM,KAAK,GAAG,iCAAc,CAAC,QAAQ,CACpC,MAAM,EACN,IAAI,CAAC,SAAS,CACO,CAAC;QACvB,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAa,CAAC;QAEvD,OAAO,uBAAU,CAAA,UAAU,CAAC;;MAExB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC3C,GAAG,CACH,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;;uCAEE,GAAG,CAAC,IAAI;kBAC7B,IAAI;;;mBAGH,IAAI,CAAC,SAAS;oBACb,KAAK;;;;mBAIN,IAAI,CAAC,UAAU;;;;;aAKrB,IAAI,CAAC,SAAS;YACf,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,GAAG;YAC7B,CAAC,CAAC,EAAE;;;;QAIR,CACD,CACF;;iCAE4B,GAAG,CAAC,IAAI;oBACrB,IAAI,CAAC,SAAS;OAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC5C,GAAG,CACH,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CACjB,kBAAkB,KAAK,KAAK,IAAI,WAAW,CAC5C,CACF;;iCAE2B,IAAI,CAAC,UAAU;;;OAGzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE;;;SAGnD,CAAC;IACT,CAAC;CAED;AA5ED,4DA4EC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormControl = void 0;
4
+ class FormControl {
5
+ }
6
+ exports.FormControl = FormControl;
7
+ //# sourceMappingURL=form-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-control.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;CAOhC;AAPD,kCAOC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormFieldControl = void 0;
4
+ const form_control_1 = require("./form-control");
5
+ class FormFieldControl extends form_control_1.FormControl {
6
+ constructor(fieldnames) {
7
+ super();
8
+ this.fieldnames = fieldnames;
9
+ this.role = "input";
10
+ }
11
+ areFieldNamesValid(fields) {
12
+ return this.fieldnames.every((fieldname) => fields.some((f) => f.name == fieldname));
13
+ }
14
+ render(ctx, fields, data) {
15
+ if (!this.areFieldNamesValid(fields)) {
16
+ throw new Error(`Invalid field names given to form control: "${this.fieldnames.join(", ")}". Allowed fields are: ${fields.map((f) => f.name).join(", ")}`);
17
+ }
18
+ return this._render(ctx, fields, data);
19
+ }
20
+ }
21
+ exports.FormFieldControl = FormFieldControl;
22
+ //# sourceMappingURL=form-field-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-field-control.ts"],"names":[],"mappings":";;;AAIA,iDAA6C;AAE7C,MAAsB,gBAAiB,SAAQ,0BAAW;IAEzD,YAAmB,UAAoB;QACtC,KAAK,EAAE,CAAC;QADU,eAAU,GAAV,UAAU,CAAU;QADvC,SAAI,GAAU,OAAO,CAAC;IAGtB,CAAC;IAED,kBAAkB,CAAC,MAAmB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CACvC,CAAC;IACH,CAAC;IAQD,MAAM,CACL,GAAgB,EAChB,MAAmB,EACnB,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CACd,+CAA+C,IAAI,CAAC,UAAU,CAAC,IAAI,CAClE,IAAI,CACJ,0BAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;SACF;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;CACD;AAhCD,4CAgCC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormHeader = void 0;
4
+ const controls_1 = require("./controls");
5
+ class FormHeader extends controls_1.FormControl {
6
+ constructor(text, isVisible = async () => true) {
7
+ super();
8
+ this.text = text;
9
+ this.isVisible = isVisible;
10
+ this.role = "decoration";
11
+ }
12
+ async render(ctx) {
13
+ const isVsbl = await this.isVisible(ctx);
14
+ return isVsbl ? `<h2>${this.text}</h2>` : "";
15
+ }
16
+ }
17
+ exports.FormHeader = FormHeader;
18
+ //# sourceMappingURL=form-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-header.js","sourceRoot":"","sources":["../../../src/forms/controls/form-header.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AAEzC,MAAa,UAAW,SAAQ,sBAAW;IAE1C,YACQ,IAAY,EACZ,YAAoD,KAAK,IAAI,EAAE,CAAC,IAAI;QAE3E,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAA2D;QAH5E,SAAI,GAAU,YAAY,CAAC;IAM3B,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAgB;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;CACD;AAZD,gCAYC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormParagraph = void 0;
4
+ const controls_1 = require("./controls");
5
+ class FormParagraph extends controls_1.FormControl {
6
+ constructor(text) {
7
+ super();
8
+ this.text = text;
9
+ this.role = "decoration";
10
+ }
11
+ render() {
12
+ return `<p>${this.text}</p>`;
13
+ }
14
+ }
15
+ exports.FormParagraph = FormParagraph;
16
+ //# sourceMappingURL=form-paragraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-paragraph.js","sourceRoot":"","sources":["../../../src/forms/controls/form-paragraph.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAEzC,MAAa,aAAc,SAAQ,sBAAW;IAE7C,YAAmB,IAAY;QAC9B,KAAK,EAAE,CAAC;QADU,SAAI,GAAJ,IAAI,CAAQ;QAD/B,SAAI,GAAU,YAAY,CAAC;IAG3B,CAAC;IACD,MAAM;QACL,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IAC9B,CAAC;CACD;AARD,sCAQC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Frame = void 0;
4
+ const controls_1 = require("./controls");
5
+ /**
6
+ * This class will render `turbo-frame` tag so that u can
7
+ * embed other route inside your form. This will require
8
+ * to add value to `data: FormData` (inside your master form
9
+ * render function) with key `Frame.FRAME_PATH_KEY`. Value
10
+ * needs to be url to route that you want to embed. If you
11
+ * this value wont be provided frame will redner empty string.
12
+ * See `src/back/routes/profile/[id].form.ts` for an example.
13
+ */
14
+ class Frame extends controls_1.FormControl {
15
+ constructor(src) {
16
+ super();
17
+ this.src = src;
18
+ this.role = "decoration";
19
+ }
20
+ render() {
21
+ return /* HTML */ `<turbo-frame
22
+ id="contrahents"
23
+ loading="lazy"
24
+ src="${this.src}"
25
+ ></turbo-frame>`;
26
+ }
27
+ }
28
+ exports.Frame = Frame;
29
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../../src/forms/controls/frame.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AAEzC;;;;;;;;GAQG;AACH,MAAa,KAAM,SAAQ,sBAAW;IACrC,YAAmB,GAAW;QAC7B,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAQ;QAW9B,SAAI,GAAU,YAAY,CAAC;IAT3B,CAAC;IAED,MAAM;QACL,OAAO,UAAU,CAAC;;;UAGV,IAAI,CAAC,GAAG;kBACA,CAAC;IAClB,CAAC;CAED;AAbD,sBAaC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleInput = void 0;
4
+ const form_fields_list_1 = require("../form-fields-list");
5
+ const controls_1 = require("./controls");
6
+ class SimpleInput extends controls_1.FormFieldControl {
7
+ constructor(fieldname, options = {}) {
8
+ super([fieldname]);
9
+ this.fieldname = fieldname;
10
+ this.options = options;
11
+ }
12
+ _render(_, fields, data) {
13
+ const field = form_fields_list_1.FormFieldsList.getField(fields, this.fieldname);
14
+ if (!field) {
15
+ throw new Error("wrong field name");
16
+ }
17
+ const id = this.options.id || field.name;
18
+ const label = this.options.label || field.name;
19
+ const type = this.options.type || "text";
20
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
21
+ const value = data.values[field.name];
22
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
23
+ const raw_value = data.raw_values[field.name];
24
+ const placeholder = this.options.placeholder || type;
25
+ const readonly = this.options.readonly || false;
26
+ const required = field.required;
27
+ const error = data.errors[field.name];
28
+ return /* HTML */ `<div class="input">
29
+ <label for="${id}">${label}</label>
30
+ <input
31
+ id="${id}"
32
+ type="${type}"
33
+ name="${field.name}"
34
+ value="${value === undefined
35
+ ? raw_value == undefined
36
+ ? ""
37
+ : raw_value
38
+ : value}"
39
+ placeholder="${placeholder}"
40
+ ${readonly ? "readonly" : ""}
41
+ ${required ? "required" : ""}
42
+ ${!this.options.autocomplete ? `autocomplete="off"` : ""}
43
+ ${this.options.step ? `step="${this.options.step}"` : ""}
44
+ />
45
+ ${error ? `<div class="input__error">${error}</div>` : ""}
46
+ </div>`;
47
+ }
48
+ }
49
+ exports.SimpleInput = SimpleInput;
50
+ //# sourceMappingURL=simple-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":";;;AAGA,0DAAqD;AACrD,yCAA8C;AAE9C,MAAa,WAAY,SAAQ,2BAAgB;IAChD,YACQ,SAAiB,EACjB,UAsBH,EAAE;QAEN,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAzBZ,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAsBR;IAGP,CAAC;IAED,OAAO,CAAC,CAAc,EAAE,MAAmB,EAAE,IAAc;QAC1D,MAAM,KAAK,GAAG,iCAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACpC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACzC,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;QAChD,yEAAyE;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC;iBACH,EAAE,KAAK,KAAK;;UAEnB,EAAE;YACA,IAAI;YACJ,KAAK,CAAC,IAAI;aACT,KAAK,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS,IAAI,SAAS;gBACvB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,SAAS;YACZ,CAAC,CAAC,KAAK;mBACO,WAAW;MACxB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;MAC1B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;MAC1B,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;MACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;;KAEvD,KAAK,CAAC,CAAC,CAAC,6BAA6B,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;SACnD,CAAC;IACT,CAAC;CACD;AAlED,kCAkEC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/forms/controls.ts"],"names":[],"mappings":""}