@sealcode/sealgen 0.2.1 → 0.3.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 (146) 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 +15 -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/page.d.ts +1 -1
  26. package/@types/utils/natural-numbers.d.ts +1 -0
  27. package/@types/utils/sleep.d.ts +1 -0
  28. package/@types/utils/url-with-new-params.d.ts +2 -0
  29. package/@types/utils/utils.d.ts +9 -0
  30. package/@types/utils/walk.d.ts +1 -1
  31. package/lib/build.js +116 -0
  32. package/lib/build.js.map +1 -0
  33. package/lib/cli.js +30 -0
  34. package/lib/cli.js.map +1 -0
  35. package/lib/find-scss-includes.js +2 -1
  36. package/lib/find-scss-includes.js.map +1 -1
  37. package/lib/forms/controls/checkboxed-list-input.js +43 -0
  38. package/lib/forms/controls/checkboxed-list-input.js.map +1 -0
  39. package/lib/forms/controls/controls.js +22 -0
  40. package/lib/forms/controls/controls.js.map +1 -0
  41. package/lib/forms/controls/dropdown.js +40 -0
  42. package/lib/forms/controls/dropdown.js.map +1 -0
  43. package/lib/forms/controls/editable-collection-subset.js +73 -0
  44. package/lib/forms/controls/editable-collection-subset.js.map +1 -0
  45. package/lib/forms/controls/form-control.js +7 -0
  46. package/lib/forms/controls/form-control.js.map +1 -0
  47. package/lib/forms/controls/form-field-control.js +22 -0
  48. package/lib/forms/controls/form-field-control.js.map +1 -0
  49. package/lib/forms/controls/form-header.js +18 -0
  50. package/lib/forms/controls/form-header.js.map +1 -0
  51. package/lib/forms/controls/form-paragraph.js +16 -0
  52. package/lib/forms/controls/form-paragraph.js.map +1 -0
  53. package/lib/forms/controls/frame.js +29 -0
  54. package/lib/forms/controls/frame.js.map +1 -0
  55. package/lib/forms/controls/simple-input.js +50 -0
  56. package/lib/forms/controls/simple-input.js.map +1 -0
  57. package/lib/forms/controls.js +1 -0
  58. package/lib/forms/controls.js.map +1 -0
  59. package/lib/forms/field.js +80 -0
  60. package/lib/forms/field.js.map +1 -0
  61. package/lib/forms/form-fields-list.js +10 -0
  62. package/lib/forms/form-fields-list.js.map +1 -0
  63. package/lib/forms/form.js +162 -0
  64. package/lib/forms/form.js.map +1 -0
  65. package/lib/forms/validator.js +11 -0
  66. package/lib/forms/validator.js.map +1 -0
  67. package/lib/generate-routes.js +11 -4
  68. package/lib/generate-routes.js.map +1 -1
  69. package/lib/index.js +18 -25
  70. package/lib/index.js.map +1 -1
  71. package/lib/page/access-control.js +20 -0
  72. package/lib/page/access-control.js.map +1 -0
  73. package/lib/page/list.js +148 -0
  74. package/lib/page/list.js.map +1 -0
  75. package/lib/page/page.js +20 -0
  76. package/lib/page/page.js.map +1 -0
  77. package/lib/page/props-parser.js +74 -0
  78. package/lib/page/props-parser.js.map +1 -0
  79. package/lib/run.js +1 -0
  80. package/lib/run.js.map +1 -0
  81. package/lib/templates/form.js +10 -5
  82. package/lib/templates/form.js.map +1 -1
  83. package/lib/templates/list.js +3 -3
  84. package/lib/templates/list.js.map +1 -1
  85. package/lib/templates/page.js +5 -4
  86. package/lib/templates/page.js.map +1 -1
  87. package/lib/utils/escape-url-params.js +1 -0
  88. package/lib/utils/escape-url-params.js.map +1 -1
  89. package/lib/utils/list-collections.js +1 -1
  90. package/lib/utils/list-collections.js.map +1 -1
  91. package/lib/utils/natural-numbers.js +10 -0
  92. package/lib/utils/natural-numbers.js.map +1 -0
  93. package/lib/utils/sleep.js +8 -0
  94. package/lib/utils/sleep.js.map +1 -0
  95. package/lib/utils/url-with-new-params.js +12 -0
  96. package/lib/utils/url-with-new-params.js.map +1 -0
  97. package/lib/utils/utils.js +19 -0
  98. package/lib/utils/utils.js.map +1 -0
  99. package/lib/utils/walk.js +4 -4
  100. package/lib/utils/walk.js.map +1 -1
  101. package/package.json +17 -4
  102. package/src/build.ts +92 -0
  103. package/src/cli.ts +34 -0
  104. package/src/find-scss-includes.ts +3 -2
  105. package/src/forms/controls/checkboxed-list-input.ts +50 -0
  106. package/src/forms/controls/controls.ts +9 -0
  107. package/src/forms/controls/dropdown.ts +57 -0
  108. package/src/forms/controls/editable-collection-subset.ts +91 -0
  109. package/src/forms/controls/form-control.ts +13 -0
  110. package/src/forms/controls/form-field-control.ts +39 -0
  111. package/src/forms/controls/form-header.ts +16 -0
  112. package/src/forms/controls/form-paragraph.ts +11 -0
  113. package/src/forms/controls/frame.ts +26 -0
  114. package/src/forms/controls/simple-input.ts +73 -0
  115. package/src/forms/controls.ts +0 -0
  116. package/src/forms/field.ts +119 -0
  117. package/src/forms/form-fields-list.ts +7 -0
  118. package/src/forms/form.ts +242 -0
  119. package/src/forms/forms.scss +18 -0
  120. package/src/forms/validator.ts +10 -0
  121. package/src/generate-routes.ts +12 -9
  122. package/src/index.ts +15 -28
  123. package/src/page/access-control.ts +18 -0
  124. package/src/page/list.ts +214 -0
  125. package/src/page/page.ts +31 -0
  126. package/src/page/props-parser.ts +99 -0
  127. package/src/run.ts +0 -0
  128. package/src/templates/form.ts +10 -5
  129. package/src/templates/list.ts +3 -3
  130. package/src/templates/page.ts +6 -6
  131. package/src/utils/escape-url-params.ts +1 -0
  132. package/src/utils/list-collections.ts +2 -2
  133. package/src/utils/natural-numbers.ts +5 -0
  134. package/src/utils/sleep.ts +3 -0
  135. package/src/utils/url-with-new-params.ts +9 -0
  136. package/src/utils/utils.ts +10 -0
  137. package/src/utils/walk.ts +2 -2
  138. package/tsconfig.json +5 -2
  139. package/.log/ti-101379.log +0 -524
  140. package/.log/ti-131883.log +0 -505
  141. package/.log/ti-13490.log +0 -652
  142. package/.log/ti-138140.log +0 -505
  143. package/.log/ti-138288.log +0 -526
  144. package/.log/ti-46589.log +0 -675
  145. package/.log/tsserver.log +0 -1666
  146. package/src/tsconfig.json +0 -18
@@ -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":""}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberField = exports.ChekboxedListField = exports.PickFromListField = exports.FormField = void 0;
4
+ const ts_predicates_1 = require("@sealcode/ts-predicates");
5
+ class FormField {
6
+ constructor(name, required = false, validator = async () => ({
7
+ valid: true,
8
+ message: "",
9
+ })) {
10
+ this.name = name;
11
+ this.required = required;
12
+ this.validator = validator;
13
+ }
14
+ async _validate(ctx, value) {
15
+ if (this.required && (value == "" || value == null || value == undefined)) {
16
+ return { valid: false, message: "This field is required" };
17
+ }
18
+ return this.validator(ctx, value, this);
19
+ }
20
+ getEmptyValue() {
21
+ return "";
22
+ }
23
+ }
24
+ exports.FormField = FormField;
25
+ class PickFromListField extends FormField {
26
+ constructor(name, required = false, generateOptions, customValidation = (ctx, value, instance) => instance.valueInList(ctx, value)) {
27
+ super(name, required, (ctx, value) => this.customValidation(ctx, value, this));
28
+ this.name = name;
29
+ this.required = required;
30
+ this.generateOptions = generateOptions;
31
+ this.customValidation = customValidation;
32
+ }
33
+ async valueInList(ctx, value) {
34
+ const options = await this.generateOptions(ctx);
35
+ if (!ts_predicates_1.is(value, ts_predicates_1.predicates.string)) {
36
+ return { valid: false, message: "not a string" };
37
+ }
38
+ if (!Object.keys(options).includes(value)) {
39
+ return { valid: false, message: `"${value}" is not one of the options` };
40
+ }
41
+ return { valid: true, message: "" };
42
+ }
43
+ }
44
+ exports.PickFromListField = PickFromListField;
45
+ class ChekboxedListField extends FormField {
46
+ constructor(name, required = false, generateOptions, isVisible = () => Promise.resolve(true)) {
47
+ super(name, required, (ctx, value) => this.isValueValid(ctx, value));
48
+ this.name = name;
49
+ this.required = required;
50
+ this.generateOptions = generateOptions;
51
+ this.isVisible = isVisible;
52
+ }
53
+ async isValueValid(_, value) {
54
+ if (ts_predicates_1.is(value, ts_predicates_1.predicates.string)) {
55
+ return { valid: false, message: "you need an array" };
56
+ }
57
+ if (ts_predicates_1.is(value, ts_predicates_1.predicates.null)) {
58
+ return { valid: false, message: "you need an array" };
59
+ }
60
+ return { valid: true, message: "" };
61
+ }
62
+ }
63
+ exports.ChekboxedListField = ChekboxedListField;
64
+ class NumberField extends FormField {
65
+ constructor(field_name, required) {
66
+ super(field_name, required, (_, value) => this.isValueValid(_, value));
67
+ }
68
+ async isValueValid(_, value) {
69
+ if ((ts_predicates_1.is(value, ts_predicates_1.predicates.string) &&
70
+ !isNaN(parseFloat(value)) &&
71
+ parseFloat(value).toString() == value.trim()) ||
72
+ ts_predicates_1.is(value, ts_predicates_1.predicates.number) ||
73
+ ((ts_predicates_1.is(value, ts_predicates_1.predicates.undefined) || value == "") && !this.required)) {
74
+ return { valid: true, message: "" };
75
+ }
76
+ return { valid: false, message: "Proszę wprowadzić liczbę" };
77
+ }
78
+ }
79
+ exports.NumberField = NumberField;
80
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/forms/field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormFieldsList = void 0;
4
+ class FormFieldsList {
5
+ static getField(fields, name) {
6
+ return fields.find((f) => f.name == name);
7
+ }
8
+ }
9
+ exports.FormFieldsList = FormFieldsList;
10
+ //# sourceMappingURL=form-fields-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-fields-list.js","sourceRoot":"","sources":["../../src/forms/form-fields-list.ts"],"names":[],"mappings":";;;AAEA,MAAa,cAAc;IAC1B,MAAM,CAAC,QAAQ,CAAC,MAAmB,EAAE,IAAY;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IAC3C,CAAC;CACD;AAJD,wCAIC"}