@sealcode/sealgen 0.8.0 → 0.8.2

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 (73) hide show
  1. package/@types/forms/controls/autocomplete.d.ts +20 -0
  2. package/@types/forms/controls/checkbox-group.d.ts +21 -0
  3. package/@types/forms/controls/checkbox.d.ts +8 -1
  4. package/@types/forms/controls/collapsible-checkbox-group.d.ts +12 -0
  5. package/@types/forms/controls/collapsible-field-group.d.ts +21 -0
  6. package/@types/forms/controls/controls.d.ts +4 -0
  7. package/@types/forms/controls/field-group.d.ts +12 -4
  8. package/@types/forms/controls/simple-input.d.ts +9 -2
  9. package/@types/forms/controls/tickable.d.ts +9 -12
  10. package/@types/forms/fields/enum-multiple.d.ts +18 -0
  11. package/@types/forms/fields/existing-sealious-value.d.ts +6 -0
  12. package/@types/forms/fields/field.d.ts +8 -4
  13. package/@types/forms/fields/proxy-field.d.ts +13 -0
  14. package/@types/page/list.d.ts +3 -3
  15. package/@types/utils/input-wrapper.d.ts +2 -1
  16. package/lib/forms/controls/autocomplete.js +27 -0
  17. package/lib/forms/controls/autocomplete.js.map +1 -0
  18. package/lib/forms/controls/checkbox-group.js +27 -0
  19. package/lib/forms/controls/checkbox-group.js.map +1 -0
  20. package/lib/forms/controls/checkbox.js +12 -1
  21. package/lib/forms/controls/checkbox.js.map +1 -1
  22. package/lib/forms/controls/collapsible-checkbox-group.js +17 -0
  23. package/lib/forms/controls/collapsible-checkbox-group.js.map +1 -0
  24. package/lib/forms/controls/collapsible-field-group.js +82 -0
  25. package/lib/forms/controls/collapsible-field-group.js.map +1 -0
  26. package/lib/forms/controls/controls.js +4 -0
  27. package/lib/forms/controls/controls.js.map +1 -1
  28. package/lib/forms/controls/field-group.js +39 -8
  29. package/lib/forms/controls/field-group.js.map +1 -1
  30. package/lib/forms/controls/simple-input.js +64 -29
  31. package/lib/forms/controls/simple-input.js.map +1 -1
  32. package/lib/forms/controls/tickable.js +4 -2
  33. package/lib/forms/controls/tickable.js.map +1 -1
  34. package/lib/forms/fields/boolean.js +7 -0
  35. package/lib/forms/fields/boolean.js.map +1 -1
  36. package/lib/forms/fields/enum-multiple.js +45 -0
  37. package/lib/forms/fields/enum-multiple.js.map +1 -0
  38. package/lib/forms/fields/existing-sealious-value.js +20 -0
  39. package/lib/forms/fields/existing-sealious-value.js.map +1 -0
  40. package/lib/forms/fields/field.js +7 -0
  41. package/lib/forms/fields/field.js.map +1 -1
  42. package/lib/forms/fields/pick-from-list.js +1 -1
  43. package/lib/forms/fields/pick-from-list.js.map +1 -1
  44. package/lib/forms/fields/proxy-field.js +24 -0
  45. package/lib/forms/fields/proxy-field.js.map +1 -0
  46. package/lib/mount.js +1 -0
  47. package/lib/mount.js.map +1 -1
  48. package/lib/page/list.js +9 -6
  49. package/lib/page/list.js.map +1 -1
  50. package/lib/sanitize.js +1 -1
  51. package/lib/sanitize.js.map +1 -1
  52. package/lib/utils/input-wrapper.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/forms/controls/autocomplete.ts +46 -0
  55. package/src/forms/controls/checkbox-group.ts +81 -0
  56. package/src/forms/controls/checkbox.ts +16 -1
  57. package/src/forms/controls/collapsible-checkbox-group.ts +31 -0
  58. package/src/forms/controls/collapsible-field-group.ts +96 -0
  59. package/src/forms/controls/controls.ts +4 -0
  60. package/src/forms/controls/field-group.ts +60 -9
  61. package/src/forms/controls/simple-input.ts +90 -42
  62. package/src/forms/controls/tickable.ts +14 -10
  63. package/src/forms/fields/boolean.ts +6 -0
  64. package/src/forms/fields/enum-multiple.ts +58 -0
  65. package/src/forms/fields/existing-sealious-value.ts +22 -0
  66. package/src/forms/fields/field.ts +14 -2
  67. package/src/forms/fields/pick-from-list.ts +1 -1
  68. package/src/forms/fields/proxy-field.ts +24 -0
  69. package/src/forms/forms.scss +11 -0
  70. package/src/mount.ts +1 -0
  71. package/src/page/list.ts +12 -10
  72. package/src/sanitize.ts +1 -1
  73. package/src/utils/input-wrapper.ts +5 -2
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SimpleInput = void 0;
4
+ const tempstream_1 = require("tempstream");
4
5
  const sanitize_1 = require("../../sanitize");
5
6
  const input_wrapper_1 = require("../../utils/input-wrapper");
6
7
  const controls_1 = require("./controls");
@@ -10,41 +11,75 @@ class SimpleInput extends controls_1.FormFieldControl {
10
11
  this.field = field;
11
12
  this.options = options;
12
13
  }
13
- async render(ctx, data, _, field_prefix, form_id) {
14
- const id = this.options.id || this.field.name;
15
- const label = this.options.label != undefined
14
+ getType() {
15
+ return this.options.type || "text";
16
+ }
17
+ getLabel() {
18
+ return this.options.label != undefined
16
19
  ? this.options.label
17
20
  : this.field.name;
18
- const type = this.options.type || "text";
19
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
20
- const { parsed, raw, valid, message } = await this.field.getValue(ctx, data);
21
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
22
- const placeholder = this.options.placeholder || type;
21
+ }
22
+ getID() {
23
+ return this.options.id || this.field.name;
24
+ }
25
+ getPlaceholder() {
26
+ return this.options.placeholder || this.getType();
27
+ }
28
+ async getInputAttributes(ctx, data, field_prefix, form_id) {
23
29
  const readonly = this.options.readonly || false;
24
30
  const required = this.field.required;
25
- return /* HTML */ input_wrapper_1.inputWrapper([id, type, input_wrapper_1.getRequiredClass(required)], `
26
- <label for="${id}">${label}</label>
27
- <input
28
- id="${id}"
29
- type="${type}"
30
- name="${field_prefix}${this.field.name}"
31
- value="${sanitize_1.attribute(!valid && raw
32
- ? raw.toString()
33
- : parsed !== undefined && parsed !== null
34
- ? // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
35
- parsed?.toString() || ""
36
- : "")}"
37
- ${form_id ? `form="${form_id}"` : ""}
38
- placeholder="${placeholder}"
39
- ${readonly ? "readonly" : ""}
40
- ${required ? "required" : ""}
41
- ${!this.options.autocomplete ? `autocomplete="off"` : ""}
42
- ${this.options.step ? `step="${this.options.step}"` : ""}
43
- />
44
- ${~valid && !this.options.hide_errors
31
+ const { parsed, raw, valid } = await this.field.getValue(ctx, data);
32
+ return Object.fromEntries([
33
+ ["id", this.getID()],
34
+ ["type", this.getType()],
35
+ ["name", `${field_prefix}${this.field.name}`],
36
+ [
37
+ "value",
38
+ !valid && raw
39
+ ? raw.toString()
40
+ : parsed !== undefined && parsed !== null
41
+ ? parsed?.toString() || ""
42
+ : "",
43
+ ],
44
+ ...(form_id ? [["form", form_id]] : []),
45
+ ["placeholder", this.getPlaceholder()],
46
+ ...(readonly ? [["readonly", true]] : []),
47
+ ...(required ? [["required", true]] : []),
48
+ ...(!this.options.autocomplete ? [["autocomplete", "off"]] : []),
49
+ ...(this.options.step ? [["step", this.options.step]] : []),
50
+ ]);
51
+ }
52
+ renderAttributes(attrs) {
53
+ return Object.entries(attrs)
54
+ .map(([key, value]) => {
55
+ if (value === true) {
56
+ return key;
57
+ }
58
+ else {
59
+ return `${key}="${sanitize_1.attribute(value)}"`;
60
+ }
61
+ })
62
+ .join(" ");
63
+ }
64
+ async postInput(ctx) {
65
+ return "";
66
+ }
67
+ async render(ctx, data, _messages, field_prefix, form_id) {
68
+ const id = this.getID();
69
+ const label = this.getLabel();
70
+ const type = this.getType();
71
+ const { parsed, raw, valid, message } = await this.field.getValue(ctx, data);
72
+ const placeholder = this.getPlaceholder();
73
+ return input_wrapper_1.inputWrapper([id, type, input_wrapper_1.getRequiredClass(this.field.required)], tempstream_1.tempstream /* HTML */ `
74
+ <label for="${id}">${label}</label>
75
+ <input
76
+ ${this.renderAttributes(await this.getInputAttributes(ctx, data, field_prefix, form_id))}
77
+ />
78
+ ${this.postInput(ctx)}
79
+ ${~valid && !this.options.hide_errors
45
80
  ? `<div class="input__error">${message}</div>`
46
81
  : ""}
47
- `);
82
+ `);
48
83
  }
49
84
  }
50
85
  exports.SimpleInput = SimpleInput;
@@ -1 +1 @@
1
- {"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;AAE9C,MAAa,WAAY,SAAQ,2BAAgB;IAChD,YACQ,KAAgB,EAChB,UAuBH,EAAE;QAEN,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QA1BR,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAuBR;IAGP,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,CAAY,EACZ,YAAoB,EACpB,OAAe;QAEf,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9C,MAAM,KAAK,GACV,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACzC,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAChE,GAAG,EACH,IAAI,CACJ,CAAC;QACF,yEAAyE;QACzE,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,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,OAAO,UAAU,CAAC,4BAAY,CAC7B,CAAC,EAAE,EAAE,IAAI,EAAE,gCAAgB,CAAC,QAAQ,CAAC,CAAC,EACtC;iBACc,EAAE,KAAK,KAAK;;UAEnB,EAAE;YACA,IAAI;YACJ,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;aAC7B,oBAAS,CACjB,CAAC,KAAK,IAAI,GAAG;YACZ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChB,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;gBACzC,CAAC,CAAC,iLAAiL;oBAC/K,MAAc,EAAE,QAAQ,EAAa,IAAI,EAAE;gBAC/C,CAAC,CAAC,EAAE,CACL;MACC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;mBACrB,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;;KAGxD,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YAClC,CAAC,CAAC,6BAA6B,OAAO,QAAQ;YAC9C,CAAC,CAAC,EACJ;CACF,CACE,CAAC;IACH,CAAC;CACD;AArFD,kCAqFC"}
1
+ {"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":"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"}
@@ -32,13 +32,15 @@ class Tickable extends controls_1.FormFieldControl {
32
32
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
33
33
  const readonly = this.options.readonly || false;
34
34
  const required = this.field.required;
35
+ const value = this.getValueAttribute(ctx, data, parsed);
35
36
  return input_wrapper_1.inputWrapper(this.getWrapperClasses(ctx, data, parsed),
36
37
  /* HTML */ `
37
38
  <input
38
39
  id="${id}"
39
40
  type="${this.type}"
40
- name="${field_prefix}${this.field.name}"
41
- value="${sanitize_1.attribute(this.getValueAttribute(ctx, data, parsed))}"
41
+ name="${field_prefix}${this.options.name ||
42
+ this.field.name}"
43
+ ${value ? `value="${sanitize_1.attribute(value)}"` : ""}
42
44
  ${form_id ? `form="${form_id}"` : ""}
43
45
  ${this.isChecked(ctx, data, parsed) ? "checked" : ""}
44
46
  ${readonly ? "readonly" : ""}
@@ -1 +1 @@
1
- {"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;AAE9C,MAAsB,QAA4B,SAAQ,2BAAgB;IACzE,YACQ,KAA4B,EAC5B,UAKH,EAAE;QAEN,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QARR,UAAK,GAAL,KAAK,CAAuB;QAC5B,YAAO,GAAP,OAAO,CAKR;IAGP,CAAC;IAgBD,WAAW;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAChB,GAAY,EACZ,IAAmC,EACnC,KAAQ;QAER,OAAO;YACN,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;YACtC,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,CAAY,EACZ,YAAoB,EACpB,OAAe;QAEf,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,KAAK,GACV,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACpB,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,OAAO,4BAAY,CAClB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;QAEzC,UAAU,CAAC;;WAEH,EAAE;aACA,IAAI,CAAC,IAAI;aACT,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;cAC7B,oBAAS,CACjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CACzC;OACC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;OAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;OAClD,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;OAC1B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;8EAC6C,IAAI;aAC3E,KAAK;aACL,IAAI;;;;kBAIO,EAAE,KAAK,KAAK;;;;;;;;;;;;;MAaxB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YACpC,CAAC,CAAC,6BAA6B,OAAO,QAAQ;YAC9C,CAAC,CAAC,EAAE;IACL,CACD,CAAC;IACH,CAAC;CACD;AAvGD,4BAuGC"}
1
+ {"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;AAU9C,MAAsB,QAA4B,SAAQ,2BAAgB;IACzE,YACQ,KAA4B,EAC5B,UAA2B,EAAE;QAEpC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAAuB;QAC5B,YAAO,GAAP,OAAO,CAAsB;IAGrC,CAAC;IAgBD,WAAW;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAChB,GAAY,EACZ,IAAmC,EACnC,KAAQ;QAER,OAAO;YACN,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;YACtC,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,CAAY,EACZ,YAAoB,EACpB,OAAe;QAEf,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,KAAK,GACV,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACpB,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,4BAAY,CAClB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;QAEzC,UAAU,CAAC;;WAEH,EAAE;aACA,IAAI,CAAC,IAAI;aACT,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI;OACb,KAAK,CAAC,CAAC,CAAC,UAAU,oBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;OAC1C,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;OAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;OAClD,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;OAC1B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;8EAC6C,IAAI;aAC3E,KAAK;aACL,IAAI;;;;kBAIO,EAAE,KAAK,KAAK;;;;;;;;;;;;;MAaxB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YACpC,CAAC,CAAC,6BAA6B,OAAO,QAAQ;YAC9C,CAAC,CAAC,EAAE;IACL,CACD,CAAC;IACH,CAAC;CACD;AAnGD,4BAmGC"}
@@ -29,6 +29,13 @@ class Boolean extends field_1.FormField {
29
29
  error: null,
30
30
  };
31
31
  }
32
+ else if (ts_predicates_1.is(value, ts_predicates_1.predicates.undefined)) {
33
+ return {
34
+ parsable: true,
35
+ parsed_value: false,
36
+ error: null,
37
+ };
38
+ }
32
39
  else {
33
40
  return {
34
41
  parsable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/forms/fields/boolean.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1C,MAAa,OAAkC,SAAQ,iBAGtD;IAEA,YAAY,QAAkB,EAAS,gBAAwB,EAAE;QAChE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADsB,kBAAa,GAAb,aAAa,CAAa;QADjE,cAAS,GAAG,0BAAU,CAAC,OAAO,CAAC;IAG/B,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SACrD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D;aAAM,IACN,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpC;YACD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,wBAAwB;aAC/B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AA9CD,0BA8CC"}
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/forms/fields/boolean.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1C,MAAa,OAAkC,SAAQ,iBAGtD;IAEA,YAAY,QAAkB,EAAS,gBAAwB,EAAE;QAChE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADsB,kBAAa,GAAb,aAAa,CAAa;QADjE,cAAS,GAAG,0BAAU,CAAC,OAAO,CAAC;IAG/B,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SACrD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D;aAAM,IACN,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpC;YACD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,EAAE;YAC3C,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,wBAAwB;aAC/B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AApDD,0BAoDC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnumMultipleField = void 0;
4
+ const ts_predicates_1 = require("@sealcode/ts-predicates");
5
+ const field_1 = require("./field");
6
+ class EnumMultipleField extends field_1.FormField {
7
+ constructor(required, options, error_message = (options) => options.join(", ")) {
8
+ super(required);
9
+ this.options = options;
10
+ this.error_message = error_message;
11
+ this.predicate = ts_predicates_1.predicates.enum(this.options);
12
+ }
13
+ async isValueValid(_, values) {
14
+ for (const value of values) {
15
+ if (!ts_predicates_1.is(value, ts_predicates_1.predicates.string)) {
16
+ return { valid: false, message: "expected a string" };
17
+ }
18
+ if (!this.options.includes(value)) {
19
+ return { valid: false, message: "invalid value" };
20
+ }
21
+ }
22
+ return { valid: true, message: "" };
23
+ }
24
+ async parse(_, value) {
25
+ if (ts_predicates_1.is(value, ts_predicates_1.predicates.array(ts_predicates_1.predicates.string))) {
26
+ return {
27
+ parsable: true,
28
+ parsed_value: value,
29
+ error: null,
30
+ };
31
+ }
32
+ else {
33
+ return {
34
+ parsable: false,
35
+ parsed_value: null,
36
+ error: "Please enter a string",
37
+ };
38
+ }
39
+ }
40
+ getEmptyValue() {
41
+ return [];
42
+ }
43
+ }
44
+ exports.EnumMultipleField = EnumMultipleField;
45
+ //# sourceMappingURL=enum-multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-multiple.js","sourceRoot":"","sources":["../../../src/forms/fields/enum-multiple.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAa,iBAGX,SAAQ,iBAA6B;IACtC,YACC,QAAkB,EACX,OAAgB,EAChB,gBAA8C,CAAC,OAAO,EAAE,EAAE,CAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CACD;QAKpB,cAAS,GAAG,0BAAU,CAAC,IAAI,CAAU,IAAI,CAAC,OAAO,CAAC,CAAC;IAFnD,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,MAAgB;QAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;gBAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;aACtD;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;aAClD;SACD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YACnD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,uBAAuB;aAC9B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AApDD,8CAoDC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExistingSealiousValue = void 0;
4
+ const pick_from_list_1 = require("./pick-from-list");
5
+ class ExistingSealiousValue extends pick_from_list_1.PickFromListField {
6
+ constructor(required, field) {
7
+ super(required, async (ctx) => {
8
+ const { items } = await field.collection.list(ctx.$context).fetch();
9
+ return Object.fromEntries(items.map((item) => {
10
+ const value = item.get(field.name);
11
+ return [value, value];
12
+ }));
13
+ });
14
+ }
15
+ getEmptyValue() {
16
+ return "";
17
+ }
18
+ }
19
+ exports.ExistingSealiousValue = ExistingSealiousValue;
20
+ //# sourceMappingURL=existing-sealious-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"existing-sealious-value.js","sourceRoot":"","sources":["../../../src/forms/fields/existing-sealious-value.ts"],"names":[],"mappings":";;;AACA,qDAAqD;AAErD,MAAa,qBAEX,SAAQ,kCAA2B;IACpC,YAAY,QAAkB,EAAE,KAAY;QAC3C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,WAAW,CACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAlBD,sDAkBC"}
@@ -21,6 +21,7 @@ class FormField {
21
21
  constructor(required) {
22
22
  this.required = required;
23
23
  this.predicate = ts_predicates_1.predicates.unknown;
24
+ this.mapToFilter = (value) => value;
24
25
  }
25
26
  init(fieldname) {
26
27
  this.name = fieldname;
@@ -66,6 +67,10 @@ class FormField {
66
67
  raw: all_form_values[this.name],
67
68
  };
68
69
  }
70
+ setMapToFilter(fn) {
71
+ this.mapToFilter = fn;
72
+ return this;
73
+ }
69
74
  }
70
75
  exports.FormField = FormField;
71
76
  __exportStar(require("./simple-form-field"), exports);
@@ -77,4 +82,6 @@ __exportStar(require("./regexp"), exports);
77
82
  __exportStar(require("./email"), exports);
78
83
  __exportStar(require("./enum"), exports);
79
84
  __exportStar(require("./boolean"), exports);
85
+ __exportStar(require("./enum-multiple"), exports);
86
+ __exportStar(require("./existing-sealious-value"), exports);
80
87
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/forms/fields/field.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2DAAgE;AAEhE,qDAA0C;AA4B1C,SAAgB,aAAa,CAC5B,GAAW;IAEX,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CACxC,CAAC;AAC5B,CAAC;AAND,sCAMC;AAUD,MAAsB,SAAS;IAK9B,YAA4B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAC9C,cAAS,GAAc,0BAAU,CAAC,OAAO,CAAC;IADO,CAAC;IAGlD,IAAI,CAAC,SAAiB;QACrB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CACrB,GAAY,EACZ,KAAkB;QAElB,IACC,IAAI,CAAC,QAAQ;YACb,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EACtD;YACD,OAAO;gBACN,KAAK,EAAE,KAAK;gBAEZ,OAAO,EAAE,aAAC,CACT,GAAG,EACH,mBAAmB,EACnB,EAAE,EACF,wBAAwB,CACxB;aACD,CAAC;SACF;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,GAAY,EACZ,KAAkB;QAElB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAOD,KAAK,CAAC,QAAQ,CACb,GAAY,EACZ,eAA8C;QAO9C,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,gCAAgC;YAChC,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,EAAE;gBACX,GAAG,EAAE,EAAE;aACP,CAAC;SACF;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,EAAE,WAAW,GAClB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,GAAG;gBACH,OAAO,EAAE,WAAW,IAAI,OAAO;aAC/B,CAAC;SACF;QACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAC9C,GAAG,EACH,YAA2B,CAC3B,CAAC;QACF,OAAO;YACN,MAAM,EAAE,YAA2B;YACnC,KAAK;YACL,OAAO;YACP,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CAAC;IACH,CAAC;CACD;AA3FD,8BA2FC;AAED,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,2CAAyB;AACzB,mDAAiC;AACjC,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/forms/fields/field.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2DAAgE;AAEhE,qDAA0C;AA4B1C,SAAgB,aAAa,CAC5B,GAAW;IAEX,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CACxC,CAAC;AAC5B,CAAC;AAND,sCAMC;AAcD,MAAsB,SAAS;IAK9B,YAA4B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAC9C,cAAS,GAAc,0BAAU,CAAC,OAAO,CAAC;QAC1C,gBAAW,GAAqC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;IAFhB,CAAC;IAIlD,IAAI,CAAC,SAAiB;QACrB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CACrB,GAAY,EACZ,KAAkB;QAElB,IACC,IAAI,CAAC,QAAQ;YACb,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EACtD;YACD,OAAO;gBACN,KAAK,EAAE,KAAK;gBAEZ,OAAO,EAAE,aAAC,CACT,GAAG,EACH,mBAAmB,EACnB,EAAE,EACF,wBAAwB,CACxB;aACD,CAAC;SACF;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,GAAY,EACZ,KAAkB;QAElB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAOD,KAAK,CAAC,QAAQ,CACb,GAAY,EACZ,eAA8C;QAO9C,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,gCAAgC;YAChC,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,EAAE;gBACX,GAAG,EAAE,EAAE;aACP,CAAC;SACF;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,EAAE,WAAW,GAClB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,GAAG;gBACH,OAAO,EAAE,WAAW,IAAI,OAAO;aAC/B,CAAC;SACF;QACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAC9C,GAAG,EACH,YAA2B,CAC3B,CAAC;QACF,OAAO;YACN,MAAM,EAAE,YAA2B;YACnC,KAAK;YACL,OAAO;YACP,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CAAC;IACH,CAAC;IAED,cAAc,CAAC,EAAoC;QAClD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAjGD,8BAiGC;AAED,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,2CAAyB;AACzB,mDAAiC;AACjC,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,kDAAgC;AAChC,4DAA0C"}
@@ -19,7 +19,7 @@ class PickFromListField extends simple_form_field_1.SimpleFormField {
19
19
  if (!ts_predicates_1.is(value, ts_predicates_1.predicates.string)) {
20
20
  return { valid: false, message: "not a string" };
21
21
  }
22
- if (!Object.keys(options).includes(value)) {
22
+ if (this.required && !Object.keys(options).includes(value)) {
23
23
  return {
24
24
  valid: false,
25
25
  message: `"${value}" is not one of the options`,
@@ -1 +1 @@
1
- {"version":3,"file":"pick-from-list.js","sourceRoot":"","sources":["../../../src/forms/fields/pick-from-list.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,2DAAsD;AAEtD,MAAa,iBAEX,SAAQ,mCAAyB;IAClC,YACQ,QAAkB,EAClB,eAEuD,EACvD,mBAIqC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CACpE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;QAEjC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAXT,aAAQ,GAAR,QAAQ,CAAU;QAClB,oBAAe,GAAf,eAAe,CAEwC;QACvD,qBAAgB,GAAhB,gBAAgB,CAKU;QAKlC,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAF9B,CAAC;IAIM,YAAY,CAClB,GAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,KAAc;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;SACjD;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI,KAAK,6BAA6B;aAC/C,CAAC;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AA/CD,8CA+CC"}
1
+ {"version":3,"file":"pick-from-list.js","sourceRoot":"","sources":["../../../src/forms/fields/pick-from-list.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,2DAAsD;AAEtD,MAAa,iBAEX,SAAQ,mCAAyB;IAClC,YACQ,QAAkB,EAClB,eAEuD,EACvD,mBAIqC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CACpE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;QAEjC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAXT,aAAQ,GAAR,QAAQ,CAAU;QAClB,oBAAe,GAAf,eAAe,CAEwC;QACvD,qBAAgB,GAAhB,gBAAgB,CAKU;QAKlC,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAF9B,CAAC;IAIM,YAAY,CAClB,GAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,KAAc;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3D,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI,KAAK,6BAA6B;aAC/C,CAAC;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AA/CD,8CA+CC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProxyFormField = void 0;
4
+ const field_1 = require("./field");
5
+ class ProxyFormField extends field_1.FormField {
6
+ constructor(required, name, empty_value, parsed_value) {
7
+ super(required);
8
+ this.name = name;
9
+ this.empty_value = empty_value;
10
+ this.parsed_value = parsed_value;
11
+ }
12
+ getEmptyValue() {
13
+ return this.empty_value;
14
+ }
15
+ async parse() {
16
+ return {
17
+ parsable: true,
18
+ error: null,
19
+ parsed_value: this.parsed_value,
20
+ };
21
+ }
22
+ }
23
+ exports.ProxyFormField = ProxyFormField;
24
+ //# sourceMappingURL=proxy-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-field.js","sourceRoot":"","sources":["../../../src/forms/fields/proxy-field.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,MAAa,cAAkB,SAAQ,iBAAqB;IAC3D,YACC,QAAiB,EACV,IAAY,EACZ,WAAc,EACd,YAAe;QAEtB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAG;QACd,iBAAY,GAAZ,YAAY,CAAG;IAGvB,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACV,OAAc;YACb,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;CACD;AArBD,wCAqBC"}
package/lib/mount.js CHANGED
@@ -26,6 +26,7 @@ function mount(router, url, mountable) {
26
26
  ctx.set("content-type", "text/html;charset=utf-8");
27
27
  const access_result = await mountable.canAccess(ctx);
28
28
  if (!access_result.canAccess) {
29
+ ctx.status = 403;
29
30
  ctx.body = access_result.message || "no access";
30
31
  return;
31
32
  }
package/lib/mount.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAGvC,KAAK,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAc;IAC5D,MAAM,IAAI,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE;QAChC,mEAAmE;QACnE,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;KAC1B;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,KAAK,CAAC,MAAc,EAAE,GAAW,EAAE,SAAoB;IACtE,MAAM,CAAC,GAAG,CACT,GAAG,EACH,sBAAW,CAAC,cAAc,EAAE,EAC5B,sBAAW,CAAC,SAAS,EAAE,EACvB,iBAAiB,CACjB,CAAC;IACF,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9B;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACnC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC;YAChD,OAAO;SACP;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AA9BD,sBA8BC"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAGvC,KAAK,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAc;IAC5D,MAAM,IAAI,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE;QAChC,mEAAmE;QACnE,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;KAC1B;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,KAAK,CAAC,MAAc,EAAE,GAAW,EAAE,SAAoB;IACtE,MAAM,CAAC,GAAG,CACT,GAAG,EACH,sBAAW,CAAC,cAAc,EAAE,EAC5B,sBAAW,CAAC,SAAS,EAAE,EACvB,iBAAiB,CACjB,CAAC;IACF,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9B;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACnC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC;YAChD,OAAO;SACP;QACD,MAAM,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AA/BD,sBA+BC"}
package/lib/page/list.js CHANGED
@@ -27,11 +27,13 @@ class ListPage extends page_1.Page {
27
27
  renderListContainer(_, content) {
28
28
  return tempstream_1.tempstream `<div>${content}</div>`;
29
29
  }
30
- async renderItems(ctx, values = this.extractRawValues(ctx)) {
30
+ async renderItems(ctx, values = this.extractRawValues(ctx), items) {
31
31
  const { parsed: page } = await this.fields.page.getValue(ctx, values);
32
32
  const { parsed: itemsPerPage } = await this.fields.itemsPerPage.getValue(ctx, values);
33
33
  const items_promise = this.getItems(ctx, page, itemsPerPage, values);
34
- return tempstream_1.tempstream `${items_promise.then((items) => items.map((item) => this.renderItem(ctx, item)))}`;
34
+ return tempstream_1.tempstream `${(items
35
+ ? Promise.resolve(items)
36
+ : items_promise).then((items) => items.map((item) => this.renderItem(ctx, item)))}`;
35
37
  }
36
38
  async render(ctx) {
37
39
  const values = this.extractRawValues(ctx);
@@ -85,7 +87,7 @@ ${this.renderListContainer(ctx, this.renderItems(ctx, values))}`;
85
87
  for (const [fieldname, field] of Object.entries(this.filterFields)) {
86
88
  // eslint-disable-next-line no-await-in-loop
87
89
  const { parsed } = await field.getValue(ctx, raw_values);
88
- filter[fieldname] = parsed;
90
+ filter[fieldname] = field.mapToFilter(parsed);
89
91
  }
90
92
  return filter;
91
93
  }
@@ -96,9 +98,10 @@ ${this.renderListContainer(ctx, this.renderItems(ctx, values))}`;
96
98
  "page",
97
99
  ...Object.values(this.filterFields).map((f) => f.name),
98
100
  ])}
99
- ${this.filterControls.map((control) =>
100
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
101
- control.render(ctx, values, [], "", ""))}
101
+ ${this.filterControls.map((control) => {
102
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
103
+ return control.render(ctx, values, [], "", "");
104
+ })}
102
105
  </form>`;
103
106
  }
104
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/page/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/page/list.ts"],"names":[],"mappings":"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"}
package/lib/sanitize.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.attribute = void 0;
4
4
  function attribute(raw) {
5
- return raw
5
+ return (raw || "")
6
6
  .replaceAll("<", "&lt;")
7
7
  .replace('"', "&quot;")
8
8
  .replaceAll("'", "&#39;");
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,GAAW;IACpC,OAAO,GAAG;SACR,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;SACtB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AALD,8BAKC"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,GAAW;IACpC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;SAChB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;SACtB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AALD,8BAKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"input-wrapper.js","sourceRoot":"","sources":["../../src/utils/input-wrapper.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,SAAgB,gBAAgB,CAAC,UAAmB;IACnD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AAFD,4CAEC;AAED,SAAS,kBAAkB,CAAC,SAAmB;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAAC,SAAmB,EAAE,KAAa;IAC9D,OAAO,uBAAU,CAAA,UAAU,CAAC;0CACa,kBAAkB,CAAC,SAAS,CAAC;;IAEnE,KAAK;QACD,CAAC;AACT,CAAC;AAND,oCAMC"}
1
+ {"version":3,"file":"input-wrapper.js","sourceRoot":"","sources":["../../src/utils/input-wrapper.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAEzD,SAAgB,gBAAgB,CAAC,UAAmB;IACnD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AAFD,4CAEC;AAED,SAAS,kBAAkB,CAAC,SAAmB;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAC3B,SAAmB,EACnB,KAAsB;IAEtB,OAAO,uBAAU,CAAA,UAAU,CAAC;0CACa,kBAAkB,CAAC,SAAS,CAAC;;IAEnE,KAAK;QACD,CAAC;AACT,CAAC;AATD,oCASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealcode/sealgen",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Module to automate adding routes and collections to a sealious application",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -52,6 +52,6 @@
52
52
  "peerDependencies": {
53
53
  "@koa/router": "^10.1.1",
54
54
  "koa": "^2.13.0",
55
- "sealious": "^0.17.0"
55
+ "sealious": "^0.17.7"
56
56
  }
57
57
  }
@@ -0,0 +1,46 @@
1
+ import { Context } from "koa";
2
+ import { FlatTemplatable } from "tempstream";
3
+ import { attribute } from "../../sanitize";
4
+ import { getRequiredClass, inputWrapper } from "../../utils/input-wrapper";
5
+ import { PickFromListField } from "../fields/pick-from-list";
6
+ import { FormDataValue } from "../form";
7
+ import { FormFieldControl } from "./form-field-control";
8
+ import { SimpleInput } from "./simple-input";
9
+
10
+ export class Autocomplete extends SimpleInput {
11
+ constructor(
12
+ public field: PickFromListField<boolean>,
13
+ public options: { id?: string; label?: string }
14
+ ) {
15
+ super(field);
16
+ }
17
+
18
+ getListID(): string {
19
+ return this.getID() + "_list";
20
+ }
21
+
22
+ async getInputAttributes(
23
+ ctx: Context,
24
+ data: Record<string, FormDataValue>,
25
+ field_prefix: string,
26
+ form_id: string
27
+ ) {
28
+ return {
29
+ ...(await super.getInputAttributes(
30
+ ctx,
31
+ data,
32
+ field_prefix,
33
+ form_id
34
+ )),
35
+ list: this.getListID(),
36
+ };
37
+ }
38
+
39
+ async postInput(ctx: Context) {
40
+ return /* HTML */ `<datalist id="${this.getListID()}">
41
+ ${Object.entries(await this.field.generateOptions(ctx)).map(
42
+ ([key, value]) => /* HTML */ `<option>${key}</option>`
43
+ )}
44
+ </datalist>`;
45
+ }
46
+ }
@@ -0,0 +1,81 @@
1
+ import { Context } from "koa";
2
+ import { FlatTemplatable } from "tempstream";
3
+ import { EnumMultipleField, FormField } from "../fields/field";
4
+ import { ProxyFormField } from "../fields/proxy-field";
5
+ import { FormDataValue, FormMessage } from "../form";
6
+ import { CheckboxWithValue } from "./checkbox";
7
+ import { FieldGroup, FormFieldControl } from "./controls";
8
+
9
+ export type DefaultCheckboxOptions = {
10
+ id?: string;
11
+ label?: string;
12
+ hide_errors?: boolean;
13
+ readonly?: boolean;
14
+ name?: string;
15
+ checkboxNameToLabel?: (name: string) => string;
16
+ };
17
+
18
+ export class CheckboxGroup<
19
+ Options extends DefaultCheckboxOptions = DefaultCheckboxOptions
20
+ > extends FormFieldControl {
21
+ constructor(
22
+ public field: EnumMultipleField<readonly string[], boolean>,
23
+ public options: Options = {} as Options
24
+ ) {
25
+ super([field]);
26
+ }
27
+
28
+ wrapGroup(
29
+ ctx: Context,
30
+ data: Record<string, FormDataValue>,
31
+ messages: FormMessage[],
32
+ field_prefix: string,
33
+ form_id: string,
34
+ checkboxes: CheckboxWithValue[]
35
+ ): Promise<FlatTemplatable> {
36
+ return new FieldGroup(checkboxes, { label: this.options.label }).render(
37
+ ctx,
38
+ data,
39
+ messages,
40
+ field_prefix,
41
+ form_id
42
+ );
43
+ }
44
+
45
+ async render<Fields extends Record<string, FormField>>(
46
+ ctx: Context,
47
+ data: Record<string, FormDataValue>,
48
+ messages: FormMessage[],
49
+ field_prefix: string,
50
+ form_id: string
51
+ ): Promise<FlatTemplatable> {
52
+ const { parsed: values } = await this.field.getValue(ctx, data);
53
+ const checkboxes = this.field.options.map(
54
+ (option) =>
55
+ new CheckboxWithValue(
56
+ new ProxyFormField(
57
+ false,
58
+ this.field.name + "[]",
59
+ false,
60
+ values.includes(option)
61
+ ),
62
+ {
63
+ id: this.field.name + "__" + option,
64
+ label: (
65
+ this.options.checkboxNameToLabel ||
66
+ ((s: string) => s)
67
+ )(option),
68
+ },
69
+ option
70
+ )
71
+ );
72
+ return this.wrapGroup(
73
+ ctx,
74
+ data,
75
+ messages,
76
+ field_prefix,
77
+ form_id,
78
+ checkboxes
79
+ );
80
+ }
81
+ }
@@ -1,6 +1,7 @@
1
1
  import { Context } from "koa";
2
2
  import { FormDataValue } from "../form";
3
- import { Tickable } from "./tickable";
3
+ import { Tickable, TickableOptions } from "./tickable";
4
+ import { FormField } from "../fields/field";
4
5
 
5
6
  export class Checkbox extends Tickable<boolean> {
6
7
  type = <const>"checkbox";
@@ -17,3 +18,17 @@ export class Checkbox extends Tickable<boolean> {
17
18
  return "";
18
19
  }
19
20
  }
21
+
22
+ export class CheckboxWithValue extends Checkbox {
23
+ constructor(
24
+ public field: FormField<boolean, boolean>,
25
+ options: TickableOptions,
26
+ public value: string
27
+ ) {
28
+ super(field, options);
29
+ }
30
+
31
+ getValueAttribute(): string {
32
+ return this.value;
33
+ }
34
+ }