@sealcode/sealgen 0.8.3 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/forms/controls/autocomplete.d.ts +1 -1
- package/@types/forms/controls/checkbox-group.d.ts +3 -2
- package/@types/forms/controls/collapsible-checkbox-group.d.ts +1 -1
- package/@types/forms/controls/collapsible-field-group.d.ts +1 -1
- package/@types/forms/controls/controls.d.ts +3 -0
- package/@types/forms/controls/dropdown.d.ts +6 -5
- package/@types/forms/controls/field-group.d.ts +3 -3
- package/@types/forms/controls/file.d.ts +14 -0
- package/@types/forms/controls/form-control.d.ts +4 -1
- package/@types/forms/controls/form-field-control.d.ts +1 -1
- package/@types/forms/controls/multiple-files.d.ts +31 -0
- package/@types/forms/controls/number.d.ts +17 -0
- package/@types/forms/controls/simple-input.d.ts +20 -27
- package/@types/forms/controls/textarea.d.ts +9 -7
- package/@types/forms/fields/field.d.ts +4 -1
- package/@types/forms/fields/file.d.ts +16 -0
- package/@types/forms/fields/files-multiple.d.ts +12 -0
- package/@types/forms/fields/multiple-files.d.ts +14 -0
- package/@types/forms/fields/number.d.ts +10 -1
- package/@types/forms/form.d.ts +7 -4
- package/@types/forms/multiform.d.ts +3 -3
- package/@types/page/list.d.ts +1 -1
- package/@types/page/mountable-with-fields.d.ts +3 -2
- package/@types/page/page.d.ts +1 -1
- package/@types/sanitize.d.ts +1 -1
- package/lib/forms/controls/autocomplete.js.map +1 -1
- package/lib/forms/controls/checkbox-group.js +11 -5
- package/lib/forms/controls/checkbox-group.js.map +1 -1
- package/lib/forms/controls/collapsible-checkbox-group.js +2 -2
- package/lib/forms/controls/collapsible-checkbox-group.js.map +1 -1
- package/lib/forms/controls/collapsible-field-group.js.map +1 -1
- package/lib/forms/controls/controls.js +3 -0
- package/lib/forms/controls/controls.js.map +1 -1
- package/lib/forms/controls/derived.js +12 -11
- package/lib/forms/controls/derived.js.map +1 -1
- package/lib/forms/controls/dropdown.js +25 -18
- package/lib/forms/controls/dropdown.js.map +1 -1
- package/lib/forms/controls/field-group.js +3 -3
- package/lib/forms/controls/field-group.js.map +1 -1
- package/lib/forms/controls/file.js +38 -0
- package/lib/forms/controls/file.js.map +1 -0
- package/lib/forms/controls/form-control.js +1 -0
- package/lib/forms/controls/form-control.js.map +1 -1
- package/lib/forms/controls/form-field-control.js.map +1 -1
- package/lib/forms/controls/multiple-files.js +137 -0
- package/lib/forms/controls/multiple-files.js.map +1 -0
- package/lib/forms/controls/number.js +34 -0
- package/lib/forms/controls/number.js.map +1 -0
- package/lib/forms/controls/simple-input.js +20 -10
- package/lib/forms/controls/simple-input.js.map +1 -1
- package/lib/forms/controls/textarea.js +13 -22
- package/lib/forms/controls/textarea.js.map +1 -1
- package/lib/forms/fields/enum-multiple.js +4 -1
- package/lib/forms/fields/enum-multiple.js.map +1 -1
- package/lib/forms/fields/field.js +8 -1
- package/lib/forms/fields/field.js.map +1 -1
- package/lib/forms/fields/file.js +58 -0
- package/lib/forms/fields/file.js.map +1 -0
- package/lib/forms/fields/files-multiple.js +18 -0
- package/lib/forms/fields/files-multiple.js.map +1 -0
- package/lib/forms/fields/multiple-files.js +19 -0
- package/lib/forms/fields/multiple-files.js.map +1 -0
- package/lib/forms/fields/number.js +6 -2
- package/lib/forms/fields/number.js.map +1 -1
- package/lib/forms/form.js +38 -21
- package/lib/forms/form.js.map +1 -1
- package/lib/forms/multiform.js +8 -8
- package/lib/forms/multiform.js.map +1 -1
- package/lib/page/list.js +9 -6
- package/lib/page/list.js.map +1 -1
- package/lib/page/mountable-with-fields.js +16 -3
- package/lib/page/mountable-with-fields.js.map +1 -1
- package/lib/page/page.js +1 -1
- package/lib/page/page.js.map +1 -1
- package/lib/sanitize.js +3 -0
- package/lib/sanitize.js.map +1 -1
- package/lib/tests/manual/multiform.js +13 -13
- package/lib/tests/manual/multiform.js.map +1 -1
- package/package.json +2 -2
- package/src/forms/controls/autocomplete.ts +1 -5
- package/src/forms/controls/checkbox-group.ts +17 -6
- package/src/forms/controls/collapsible-checkbox-group.ts +10 -2
- package/src/forms/controls/collapsible-field-group.ts +2 -4
- package/src/forms/controls/controls.ts +3 -0
- package/src/forms/controls/derived.ts +12 -11
- package/src/forms/controls/dropdown.ts +51 -34
- package/src/forms/controls/field-group.ts +6 -4
- package/src/forms/controls/file.ts +50 -0
- package/src/forms/controls/form-control.ts +5 -1
- package/src/forms/controls/form-field-control.ts +2 -1
- package/src/forms/controls/multiple-files.ts +213 -0
- package/src/forms/controls/number.ts +52 -0
- package/src/forms/controls/simple-input.ts +67 -37
- package/src/forms/controls/textarea.ts +25 -24
- package/src/forms/fields/enum-multiple.ts +3 -1
- package/src/forms/fields/field.ts +12 -2
- package/src/forms/fields/file.ts +86 -0
- package/src/forms/fields/multiple-files.ts +20 -0
- package/src/forms/fields/number.ts +17 -2
- package/src/forms/form.ts +84 -42
- package/src/forms/forms.scss +4 -1
- package/src/forms/multiform.ts +26 -13
- package/src/page/list.ts +10 -7
- package/src/page/mountable-with-fields.ts +26 -4
- package/src/page/page.ts +3 -1
- package/src/sanitize.ts +4 -1
- package/src/tests/manual/multiform.ts +19 -13
|
@@ -1,38 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Dropdown = void 0;
|
|
4
|
+
const tempstream_1 = require("tempstream");
|
|
4
5
|
const sanitize_1 = require("../../sanitize");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
class Dropdown extends controls_1.FormFieldControl {
|
|
6
|
+
const simple_input_1 = require("./simple-input");
|
|
7
|
+
class Dropdown extends simple_input_1.SimpleInput {
|
|
8
8
|
constructor(field, options = {
|
|
9
9
|
label: field.name,
|
|
10
10
|
autosubmit: false,
|
|
11
11
|
autocomplete: true,
|
|
12
12
|
}) {
|
|
13
|
-
super(
|
|
13
|
+
super(field);
|
|
14
14
|
this.field = field;
|
|
15
15
|
this.options = options;
|
|
16
16
|
}
|
|
17
|
-
async
|
|
17
|
+
async getInputAttributes(ctx, data, field_prefix, form_id) {
|
|
18
|
+
const original = await super.getInputAttributes(ctx, data, field_prefix, form_id);
|
|
19
|
+
return {
|
|
20
|
+
...original,
|
|
21
|
+
...Object.fromEntries([
|
|
22
|
+
...(this.options.autosubmit
|
|
23
|
+
? [
|
|
24
|
+
[
|
|
25
|
+
"onchange",
|
|
26
|
+
(original.onchange || "") +
|
|
27
|
+
";this.form.submit();",
|
|
28
|
+
],
|
|
29
|
+
]
|
|
30
|
+
: []),
|
|
31
|
+
]),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async renderInput(ctx, attributes_str, data) {
|
|
18
35
|
const { parsed: picked_value } = await this.field.getValue(ctx, data);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/* HTML */ `<label for="${name}">${this.options.label}</label
|
|
22
|
-
><select
|
|
23
|
-
name="${this.field.name}"
|
|
24
|
-
id="${name}"
|
|
25
|
-
${this.options.autosubmit
|
|
26
|
-
? `onchange='this.form.submit()'`
|
|
27
|
-
: ""}
|
|
28
|
-
${!this.options.autocomplete ? `autocomplete="off"` : ""}
|
|
29
|
-
>
|
|
30
|
-
${
|
|
36
|
+
return /* HTML */ tempstream_1.tempstream `<select ${attributes_str}>
|
|
37
|
+
${
|
|
31
38
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
32
39
|
Promise.resolve(this.field.generateOptions(ctx)).then((options) => Object.entries(options).map(([value, text]) => `<option value="${sanitize_1.attribute(value)}" ${(value || "") == picked_value
|
|
33
40
|
? "selected"
|
|
34
41
|
: ""}>${text}</option>`))}
|
|
35
|
-
|
|
42
|
+
</select>`;
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
45
|
exports.Dropdown = Dropdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/forms/controls/dropdown.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/forms/controls/dropdown.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6CAA2C;AAG3C,iDAA6C;AAE7C,MAAa,QAAS,SAAQ,0BAA0B;IACvD,YACQ,KAAiC,EACjC,UAIH;QACH,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KAClB;QAED,KAAK,CAAC,KAAK,CAAC,CAAC;QAXN,UAAK,GAAL,KAAK,CAA4B;QACjC,YAAO,GAAP,OAAO,CAQb;IAGF,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,GAAY,EACZ,IAAmC,EACnC,YAAoB,EACpB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAC9C,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,CACP,CAAC;QACF,OAAO;YACN,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,WAAW,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;oBAC1B,CAAC,CAAC;wBACA;4BACC,UAAU;4BACV,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gCACxB,sBAAsB;yBACvB;qBACA;oBACH,CAAC,CAAC,EAAE,CAAC;aACN,CAAC;SACF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,cAAsB,EACtB,IAAmC;QAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,uBAAU,CAAA,WAAW,cAAc;KAClD;QACD,4EAA4E;QAC5E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACpD,CAAC,OAAO,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAC1B,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CACjB,kBAAkB,oBAAS,CAAC,KAAK,CAAC,KACjC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,YAAY;YAC5B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EACJ,IAAI,IAAI,WAAW,CACpB,CAEJ;YACS,CAAC;IACZ,CAAC;CACD;AAnED,4BAmEC"}
|
|
@@ -27,11 +27,11 @@ class FieldGroup extends form_field_control_1.FormFieldControl {
|
|
|
27
27
|
getGroupLabelProps() {
|
|
28
28
|
return `class="field-group__label"`;
|
|
29
29
|
}
|
|
30
|
-
async render(ctx, data, messages, field_prefix, form_id) {
|
|
30
|
+
async render(ctx, data, messages, field_prefix, form_id, show_field_errors) {
|
|
31
31
|
const { label, classes } = this.options;
|
|
32
32
|
return tempstream_1.tempstream /* HTML */ `
|
|
33
33
|
<div
|
|
34
|
-
class="field-group ${classes || ""}"
|
|
34
|
+
class="field-group ${(classes || []).join(" ")}"
|
|
35
35
|
${this.options.containerID
|
|
36
36
|
? `id="${this.options.containerID}"`
|
|
37
37
|
: ""}
|
|
@@ -46,7 +46,7 @@ class FieldGroup extends form_field_control_1.FormFieldControl {
|
|
|
46
46
|
</div>
|
|
47
47
|
${this.preFields()}
|
|
48
48
|
<div class="field-group__fields">
|
|
49
|
-
${this.controls.map((control) => control.render(ctx, data, messages, field_prefix, form_id))}
|
|
49
|
+
${this.controls.map((control) => control.render(ctx, data, messages, field_prefix, form_id, show_field_errors))}
|
|
50
50
|
</div>
|
|
51
51
|
${this.postFields()}
|
|
52
52
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-group.js","sourceRoot":"","sources":["../../../src/forms/controls/field-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,UAAW,SAAQ,qCAAgB;IAC/C,YACQ,QAAuB,EACvB,UAIH,EAAE;QAEN,KAAK,CAAC,EAAE,CAAC,CAAC;QAPH,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAIR;IAGP,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,CAAC;IACX,CAAC;IAED,iBAAiB;QAChB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACT,OAAO,EAAE,CAAC;IACX,CAAC;IAED,kBAAkB;QACjB,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,QAAuB,EACvB,YAAoB,EACpB,OAAe;
|
|
1
|
+
{"version":3,"file":"field-group.js","sourceRoot":"","sources":["../../../src/forms/controls/field-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,UAAW,SAAQ,qCAAgB;IAC/C,YACQ,QAAuB,EACvB,UAIH,EAAE;QAEN,KAAK,CAAC,EAAE,CAAC,CAAC;QAPH,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAIR;IAGP,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,CAAC;IACX,CAAC;IAED,iBAAiB;QAChB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACT,OAAO,EAAE,CAAC;IACX,CAAC;IAED,kBAAkB;QACjB,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,QAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,iBAA0B;QAE1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAExC,OAAO,uBAAU,CAAA,UAAU,CAAC;;yBAEL,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;MAC5C,IAAI,CAAC,OAAO,CAAC,WAAW;YACzB,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;YACpC,CAAC,CAAC,EAAE;;MAEH,IAAI,CAAC,iBAAiB,EAAE;;OAEvB,IAAI,CAAC,QAAQ,EAAE;OACf,KAAK;YACN,CAAC,CAAC,UAAU,IAAI,CAAC,kBAAkB,EAAE,IAAI,KAAK,UAAU;YACxD,CAAC,CAAC,EAAE;OACH,IAAI,CAAC,SAAS,EAAE;;MAEjB,IAAI,CAAC,SAAS,EAAE;;OAEf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,OAAO,CAAC,MAAM,CACb,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,iBAAiB,CACjB,CACD;;MAEA,IAAI,CAAC,UAAU,EAAE;;GAEpB,CAAC;IACH,CAAC;CACD;AA9ED,gCA8EC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.File = void 0;
|
|
4
|
+
const simple_input_1 = require("./simple-input");
|
|
5
|
+
class File extends simple_input_1.SimpleInput {
|
|
6
|
+
getType() {
|
|
7
|
+
return "file";
|
|
8
|
+
}
|
|
9
|
+
async preInput(ctx, data) {
|
|
10
|
+
const { parsed } = await this.field.getValue(ctx, data);
|
|
11
|
+
return /* HTML */ ` ${parsed.old?.filename || ""}
|
|
12
|
+
<input
|
|
13
|
+
type="hidden"
|
|
14
|
+
name="${this.field.name}[old][id]"
|
|
15
|
+
value="${parsed.old?.id || ""}"
|
|
16
|
+
/>
|
|
17
|
+
<input
|
|
18
|
+
type="hidden"
|
|
19
|
+
name="${this.field.name}[old][filename]"
|
|
20
|
+
value="${parsed.old?.filename || ""}"
|
|
21
|
+
/>`;
|
|
22
|
+
}
|
|
23
|
+
async getInputAttributes(ctx, data, field_prefix, form_id) {
|
|
24
|
+
const original = await super.getInputAttributes(ctx, data, field_prefix, form_id);
|
|
25
|
+
const { parsed } = await this.field.getValue(ctx, data);
|
|
26
|
+
return {
|
|
27
|
+
...original,
|
|
28
|
+
name: this.field.name + "[new]",
|
|
29
|
+
required: original.required && !parsed.old,
|
|
30
|
+
value: false,
|
|
31
|
+
onchange: (original.onchange || "") +
|
|
32
|
+
";" +
|
|
33
|
+
"filename = this.value.split('\\\\').slice(-1)[0]; this.parentElement.style.setProperty('--filename', '\\'Wybrany plik: ' + filename + '\\'')",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.File = File;
|
|
38
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/forms/controls/file.ts"],"names":[],"mappings":";;;AAGA,iDAA6C;AAE7C,MAAa,IAAK,SAAQ,0BAA0B;IACnD,OAAO;QACN,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,IAAmC;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;;;YAGtC,IAAI,CAAC,KAAK,CAAC,IAAI;aACd,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE;;;;YAIrB,IAAI,CAAC,KAAK,CAAC,IAAI;aACd,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;MACjC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,GAAY,EACZ,IAAmC,EACnC,YAAoB,EACpB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAC9C,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,CACP,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO;YACN,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO;YAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG;YAC1C,KAAK,EAAE,KAAK;YACZ,QAAQ,EACP,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACzB,GAAG;gBACH,8IAA8I;SAC/I,CAAC;IACH,CAAC;CACD;AA5CD,oBA4CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-control.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-control.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;IAWhC,KAAK,CAAC,MAAc,IAAG,CAAC;CACxB;AAZD,kCAYC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-field-control.ts"],"names":[],"mappings":";;;AAIA,iDAA6C;AAQ7C,MAAsB,gBAAiB,SAAQ,0BAAW;IAEzD,YAAmB,MAAmB;QACrC,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAa;QADtC,SAAI,GAAU,OAAO,CAAC;IAGtB,CAAC;
|
|
1
|
+
{"version":3,"file":"form-field-control.js","sourceRoot":"","sources":["../../../src/forms/controls/form-field-control.ts"],"names":[],"mappings":";;;AAIA,iDAA6C;AAQ7C,MAAsB,gBAAiB,SAAQ,0BAAW;IAEzD,YAAmB,MAAmB;QACrC,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAa;QADtC,SAAI,GAAU,OAAO,CAAC;IAGtB,CAAC;CAUD;AAdD,4CAcC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultipleFiles = void 0;
|
|
4
|
+
const sealious_1 = require("sealious");
|
|
5
|
+
const input_wrapper_1 = require("../../utils/input-wrapper");
|
|
6
|
+
const tempstream_1 = require("tempstream");
|
|
7
|
+
const form_field_control_1 = require("./form-field-control");
|
|
8
|
+
const ts_predicates_1 = require("@sealcode/ts-predicates");
|
|
9
|
+
class MultipleFiles extends form_field_control_1.FormFieldControl {
|
|
10
|
+
constructor(field, options) {
|
|
11
|
+
super([field]);
|
|
12
|
+
this.field = field;
|
|
13
|
+
this.options = options || {};
|
|
14
|
+
}
|
|
15
|
+
mount(router) {
|
|
16
|
+
router.get(this.getFrameRelativeURL(), async (ctx) => {
|
|
17
|
+
ctx.body = this.renderFrame(ctx, await this.renderFrameContent(ctx));
|
|
18
|
+
});
|
|
19
|
+
router.post(this.getFrameRelativeURL() + "/delete/:file_item_id", async (ctx) => {
|
|
20
|
+
await this.deleteFileAssociation(ctx, ctx.params.file_item_id);
|
|
21
|
+
ctx.body = this.renderFrame(ctx, await this.renderFrameContent(ctx));
|
|
22
|
+
});
|
|
23
|
+
router.post(this.getFrameRelativeURL() + "/add", async (ctx) => {
|
|
24
|
+
const file = ctx.$body.file;
|
|
25
|
+
if (!file || !ts_predicates_1.is(file, ts_predicates_1.predicates.object)) {
|
|
26
|
+
ctx.body = "Missing file";
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await this.addFileAssociation(ctx, file);
|
|
30
|
+
ctx.body = this.renderFrame(ctx, await this.renderFrameContent(ctx));
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
async deleteFileAssociation(ctx, file_item_id) {
|
|
34
|
+
await ctx.$app.collections[this.field.collection_field.referencing_collection].removeByID(ctx.$context, file_item_id);
|
|
35
|
+
}
|
|
36
|
+
async addFileAssociation(ctx, file) {
|
|
37
|
+
const file_field = this.getFileField();
|
|
38
|
+
if (!file_field) {
|
|
39
|
+
throw new Error("No file field in referencing collection");
|
|
40
|
+
}
|
|
41
|
+
const body = {
|
|
42
|
+
[this.field.collection_field.referencing_field]: await this.field.getItemId(ctx),
|
|
43
|
+
[file_field.name]: file,
|
|
44
|
+
};
|
|
45
|
+
await ctx.$app.collections[this.field.collection_field.referencing_collection].create(ctx.$context, body);
|
|
46
|
+
}
|
|
47
|
+
getFrameRelativeURL() {
|
|
48
|
+
return `${this.field.name}_files`;
|
|
49
|
+
}
|
|
50
|
+
getFrameID() {
|
|
51
|
+
// the "A" is necessary here
|
|
52
|
+
return `A${this.field.name}__multiple-fields-control`;
|
|
53
|
+
}
|
|
54
|
+
renderFrame(ctx, content) {
|
|
55
|
+
return tempstream_1.tempstream /* HTML */ `<turbo-frame
|
|
56
|
+
${content ? "" : `src="./${this.getFrameRelativeURL()}"`}
|
|
57
|
+
id="${this.getFrameID()}"
|
|
58
|
+
target="_top"
|
|
59
|
+
>
|
|
60
|
+
${content || ""}
|
|
61
|
+
</turbo-frame>`;
|
|
62
|
+
}
|
|
63
|
+
render(ctx, _data, _messages, field_name_prefix, form_id, validate) {
|
|
64
|
+
return this.renderFrame(ctx, "");
|
|
65
|
+
}
|
|
66
|
+
getReferencingCollection() {
|
|
67
|
+
const result = this.field.collection_field.app.collections[this.field.collection_field.referencing_collection];
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
getFileField() {
|
|
71
|
+
for (const [field_name, field] of Object.entries(this.getReferencingCollection().fields)) {
|
|
72
|
+
if (field.handles_large_data) {
|
|
73
|
+
return field;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
async extractFileFromItem(item) {
|
|
79
|
+
const sealious_field = this.getFileField();
|
|
80
|
+
if (!sealious_field) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return await sealious_1.File.fromID(item.collection.app, item.get(sealious_field.name).id);
|
|
84
|
+
}
|
|
85
|
+
async renderFileItem(fileItem, file) {
|
|
86
|
+
return /* HTML */ `<li>
|
|
87
|
+
<a href="${file.getURL()}" data-turbo="false">
|
|
88
|
+
${file.filename || "no filename"}
|
|
89
|
+
</a>
|
|
90
|
+
<form
|
|
91
|
+
data-turbo-frame="${this.getFrameID()}"
|
|
92
|
+
action="${this.getFrameRelativeURL()}/delete/${fileItem.id}"
|
|
93
|
+
method="POST"
|
|
94
|
+
>
|
|
95
|
+
<input type="submit" value="X" class="file-list-action" />
|
|
96
|
+
</form>
|
|
97
|
+
</li>`;
|
|
98
|
+
}
|
|
99
|
+
async getFileItems(ctx) {
|
|
100
|
+
const item_id = await this.field.getItemId(ctx);
|
|
101
|
+
const { items: [item], } = await this.field.collection_field.collection
|
|
102
|
+
.list(ctx.$context)
|
|
103
|
+
.ids([item_id])
|
|
104
|
+
.attach({ [this.field.collection_field.name]: true })
|
|
105
|
+
.fetch();
|
|
106
|
+
return item
|
|
107
|
+
.getAttachments(this.field.collection_field.name)
|
|
108
|
+
.filter((f) => f);
|
|
109
|
+
}
|
|
110
|
+
async renderFrameContent(ctx) {
|
|
111
|
+
const files = (await Promise.all((await this.getFileItems(ctx)).map(async (item) => [
|
|
112
|
+
item,
|
|
113
|
+
await this.extractFileFromItem(item),
|
|
114
|
+
]))).filter(([_, f]) => f !== null);
|
|
115
|
+
return input_wrapper_1.inputWrapper(["multiple-files", this.field.name], tempstream_1.tempstream /* HTML */ `
|
|
116
|
+
<label>${this.options.label || this.field.name}</label>
|
|
117
|
+
<ul>
|
|
118
|
+
${files.map(([item, file]) => this.renderFileItem(item, file))}
|
|
119
|
+
</ul>
|
|
120
|
+
<form
|
|
121
|
+
action="${this.getFrameRelativeURL()}/add"
|
|
122
|
+
method="POST"
|
|
123
|
+
enctype="multipart/form-data"
|
|
124
|
+
data-turbo-frame="${this.getFrameID()}"
|
|
125
|
+
>
|
|
126
|
+
<input type="file" name="file" />
|
|
127
|
+
<input
|
|
128
|
+
type="submit"
|
|
129
|
+
value="${this.options.uploadLabel || "Upload"}"
|
|
130
|
+
class="file-list-action"
|
|
131
|
+
/>
|
|
132
|
+
</form>
|
|
133
|
+
`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.MultipleFiles = MultipleFiles;
|
|
137
|
+
//# sourceMappingURL=multiple-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiple-files.js","sourceRoot":"","sources":["../../../src/forms/controls/multiple-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Number = void 0;
|
|
4
|
+
const simple_input_1 = require("./simple-input");
|
|
5
|
+
class Number extends simple_input_1.SimpleInput {
|
|
6
|
+
constructor(field, options) {
|
|
7
|
+
super(field, options);
|
|
8
|
+
}
|
|
9
|
+
getType() {
|
|
10
|
+
return "number";
|
|
11
|
+
}
|
|
12
|
+
async postInput(_) {
|
|
13
|
+
return this.options.suffix
|
|
14
|
+
? /* HTML */ `<span class="suffix">${this.options.suffix}</span>`
|
|
15
|
+
: "";
|
|
16
|
+
}
|
|
17
|
+
async getInputAttributes(ctx, data, field_prefix, form_id) {
|
|
18
|
+
const original = await super.getInputAttributes(ctx, data, field_prefix, form_id);
|
|
19
|
+
return {
|
|
20
|
+
...original,
|
|
21
|
+
...Object.fromEntries([
|
|
22
|
+
...(this.field.options.min
|
|
23
|
+
? [["min", this.field.options.min]]
|
|
24
|
+
: []),
|
|
25
|
+
...(this.field.options.max
|
|
26
|
+
? [["max", this.field.options.max]]
|
|
27
|
+
: []),
|
|
28
|
+
...(this.options.step ? [["step", this.options.step]] : []),
|
|
29
|
+
]),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Number = Number;
|
|
34
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/forms/controls/number.ts"],"names":[],"mappings":";;;AAIA,iDAAiE;AAKjE,MAAa,MAAO,SAAQ,0BAA0B;IAGrD,YAAY,KAAkB,EAAE,OAAsB;QACrD,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACN,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAU;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,SAAS;YACjE,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,GAAY,EACZ,IAAmC,EACnC,YAAoB,EACpB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAC9C,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,CACP,CAAC;QACF,OAAO;YACN,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,WAAW,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;oBACzB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;oBACzB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;SACF,CAAC;IACH,CAAC;CACD;AA1CD,wBA0CC"}
|
|
@@ -6,10 +6,13 @@ const sanitize_1 = require("../../sanitize");
|
|
|
6
6
|
const input_wrapper_1 = require("../../utils/input-wrapper");
|
|
7
7
|
const controls_1 = require("./controls");
|
|
8
8
|
class SimpleInput extends controls_1.FormFieldControl {
|
|
9
|
-
constructor(field, options
|
|
9
|
+
constructor(field, options) {
|
|
10
10
|
super([field]);
|
|
11
11
|
this.field = field;
|
|
12
|
-
this.options = options;
|
|
12
|
+
this.options = options || {};
|
|
13
|
+
}
|
|
14
|
+
async preInput(_ctx, _data) {
|
|
15
|
+
return "";
|
|
13
16
|
}
|
|
14
17
|
getType() {
|
|
15
18
|
return this.options.type || "text";
|
|
@@ -52,8 +55,13 @@ class SimpleInput extends controls_1.FormFieldControl {
|
|
|
52
55
|
renderAttributes(attrs) {
|
|
53
56
|
return Object.entries(attrs)
|
|
54
57
|
.map(([key, value]) => {
|
|
55
|
-
if (value ===
|
|
56
|
-
|
|
58
|
+
if (typeof value === "boolean") {
|
|
59
|
+
if (value) {
|
|
60
|
+
return key;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return "";
|
|
64
|
+
}
|
|
57
65
|
}
|
|
58
66
|
else {
|
|
59
67
|
return `${key}="${sanitize_1.attribute(value)}"`;
|
|
@@ -64,19 +72,21 @@ class SimpleInput extends controls_1.FormFieldControl {
|
|
|
64
72
|
async postInput(ctx) {
|
|
65
73
|
return "";
|
|
66
74
|
}
|
|
67
|
-
async
|
|
75
|
+
async renderInput(ctx, attributes_str, data) {
|
|
76
|
+
return `<input ${attributes_str} />`;
|
|
77
|
+
}
|
|
78
|
+
async render(ctx, data, _messages, field_prefix, form_id, show_errors) {
|
|
68
79
|
const id = this.getID();
|
|
69
80
|
const label = this.getLabel();
|
|
70
81
|
const type = this.getType();
|
|
71
82
|
const { parsed, raw, valid, message } = await this.field.getValue(ctx, data);
|
|
72
83
|
const placeholder = this.getPlaceholder();
|
|
73
84
|
return input_wrapper_1.inputWrapper([id, type, input_wrapper_1.getRequiredClass(this.field.required)], tempstream_1.tempstream /* HTML */ `
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
/>
|
|
85
|
+
${label ? `<label for="${id}">${label}</label>` : ""}
|
|
86
|
+
${await this.preInput(ctx, data)}
|
|
87
|
+
${this.renderInput(ctx, this.renderAttributes(await this.getInputAttributes(ctx, data, field_prefix, form_id)), data)}
|
|
78
88
|
${this.postInput(ctx)}
|
|
79
|
-
${~valid && !this.options.hide_errors
|
|
89
|
+
${~valid && !this.options.hide_errors && show_errors
|
|
80
90
|
? `<div class="input__error">${message}</div>`
|
|
81
91
|
: ""}
|
|
82
92
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;
|
|
1
|
+
{"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Textarea = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const form_field_control_1 = require("./form-field-control");
|
|
7
|
-
class Textarea extends form_field_control_1.FormFieldControl {
|
|
4
|
+
const simple_input_1 = require("./simple-input");
|
|
5
|
+
class Textarea extends simple_input_1.SimpleInput {
|
|
8
6
|
constructor(field, options = {}) {
|
|
9
|
-
super(
|
|
7
|
+
super(field, options);
|
|
10
8
|
this.field = field;
|
|
11
9
|
this.options = options;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
name="${name}"
|
|
24
|
-
id="${name}"
|
|
25
|
-
rows="${this.options.rows || 5}"
|
|
26
|
-
cols="${this.options.cols || 33}"
|
|
27
|
-
>
|
|
28
|
-
${sanitize_1.attribute((raw || "").toString())}</textarea
|
|
29
|
-
>`);
|
|
11
|
+
renderDescription() {
|
|
12
|
+
return this.options.description
|
|
13
|
+
? /* HTML */ `<div class="form-input__description">
|
|
14
|
+
${this.options.description}
|
|
15
|
+
</div>`
|
|
16
|
+
: "";
|
|
17
|
+
}
|
|
18
|
+
async renderInput(ctx, attributes, data) {
|
|
19
|
+
const { parsed: value } = await this.field.getValue(ctx, data);
|
|
20
|
+
return /* HTML */ `<textarea ${attributes}>${value}</textarea>`;
|
|
30
21
|
}
|
|
31
22
|
}
|
|
32
23
|
exports.Textarea = Textarea;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAOA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,KAAiC,EACjC,UAKH,EAAE;QAEN,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QARf,UAAK,GAAL,KAAK,CAA4B;QACjC,YAAO,GAAP,OAAO,CAKR;IAGP,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,UAAU,CAAC;OACT,IAAI,CAAC,OAAO,CAAC,WAAW;YACnB;YACT,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,UAAkB,EAClB,IAAmC;QAEnC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC,aAAa,UAAU,IAAI,KAAK,aAAa,CAAC;IACjE,CAAC;CACD;AA/BD,4BA+BC"}
|
|
@@ -22,7 +22,10 @@ class EnumMultipleField extends field_1.FormField {
|
|
|
22
22
|
return { valid: true, message: "" };
|
|
23
23
|
}
|
|
24
24
|
async parse(_, value) {
|
|
25
|
-
if (ts_predicates_1.is(value, ts_predicates_1.predicates.
|
|
25
|
+
if (ts_predicates_1.is(value, ts_predicates_1.predicates.string)) {
|
|
26
|
+
return { parsable: true, parsed_value: [value], error: null };
|
|
27
|
+
}
|
|
28
|
+
else if (ts_predicates_1.is(value, ts_predicates_1.predicates.array(ts_predicates_1.predicates.string))) {
|
|
26
29
|
return {
|
|
27
30
|
parsable: true,
|
|
28
31
|
parsed_value: value,
|
|
@@ -1 +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;
|
|
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,MAAM,CAAC,EAAE;YACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC9D;aAAM,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAC1D,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;AAtDD,8CAsDC"}
|
|
@@ -23,7 +23,7 @@ class FormField {
|
|
|
23
23
|
this.predicate = ts_predicates_1.predicates.unknown;
|
|
24
24
|
this.mapToFilter = (value) => value;
|
|
25
25
|
}
|
|
26
|
-
init(fieldname) {
|
|
26
|
+
async init(fieldname) {
|
|
27
27
|
this.name = fieldname;
|
|
28
28
|
}
|
|
29
29
|
async _validate(ctx, value) {
|
|
@@ -71,6 +71,11 @@ class FormField {
|
|
|
71
71
|
this.mapToFilter = fn;
|
|
72
72
|
return this;
|
|
73
73
|
}
|
|
74
|
+
//return undefined here to delete a value
|
|
75
|
+
async getDatabaseValue(ctx, data) {
|
|
76
|
+
const { parsed } = await this.getValue(ctx, data);
|
|
77
|
+
return parsed;
|
|
78
|
+
}
|
|
74
79
|
}
|
|
75
80
|
exports.FormField = FormField;
|
|
76
81
|
__exportStar(require("./simple-form-field"), exports);
|
|
@@ -84,4 +89,6 @@ __exportStar(require("./enum"), exports);
|
|
|
84
89
|
__exportStar(require("./boolean"), exports);
|
|
85
90
|
__exportStar(require("./enum-multiple"), exports);
|
|
86
91
|
__exportStar(require("./existing-sealious-value"), exports);
|
|
92
|
+
__exportStar(require("./file"), exports);
|
|
93
|
+
__exportStar(require("./multiple-files"), exports);
|
|
87
94
|
//# 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;
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/forms/fields/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.File = void 0;
|
|
4
|
+
const ts_predicates_1 = require("@sealcode/ts-predicates");
|
|
5
|
+
const sealious_1 = require("sealious");
|
|
6
|
+
const field_1 = require("./field");
|
|
7
|
+
class File extends field_1.FormField {
|
|
8
|
+
async parse(ctx, raw_value) {
|
|
9
|
+
let result;
|
|
10
|
+
if (raw_value instanceof sealious_1.File ||
|
|
11
|
+
(ts_predicates_1.is(raw_value, ts_predicates_1.predicates.object) &&
|
|
12
|
+
ts_predicates_1.hasShape({
|
|
13
|
+
filename: ts_predicates_1.predicates.string,
|
|
14
|
+
id: ts_predicates_1.predicates.string,
|
|
15
|
+
}, raw_value) &&
|
|
16
|
+
raw_value.id)) {
|
|
17
|
+
const file = await sealious_1.File.fromID(ctx.$app, raw_value.id);
|
|
18
|
+
result = {
|
|
19
|
+
parsed_value: { old: file, new: null },
|
|
20
|
+
error: null,
|
|
21
|
+
parsable: true,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
else if (!ts_predicates_1.is(raw_value, ts_predicates_1.predicates.object)) {
|
|
25
|
+
result = {
|
|
26
|
+
parsed_value: null,
|
|
27
|
+
error: "Expected a field with old.id:string, old.filename:string and new?:File",
|
|
28
|
+
parsable: false,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const old_file = ts_predicates_1.hasFieldOfType(raw_value, "old", ts_predicates_1.predicates.object) &&
|
|
33
|
+
ts_predicates_1.hasShape({ id: ts_predicates_1.predicates.string, filename: ts_predicates_1.predicates.string }, raw_value.old) &&
|
|
34
|
+
raw_value.old.id
|
|
35
|
+
? await sealious_1.File.fromID(ctx.$app, raw_value.old.id)
|
|
36
|
+
: null;
|
|
37
|
+
const new_file = ts_predicates_1.hasField("new", raw_value) &&
|
|
38
|
+
raw_value.new instanceof sealious_1.File
|
|
39
|
+
? raw_value.new
|
|
40
|
+
: null;
|
|
41
|
+
result = {
|
|
42
|
+
parsable: true,
|
|
43
|
+
error: null,
|
|
44
|
+
parsed_value: { old: old_file, new: new_file },
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
async getDatabaseValue(ctx, data) {
|
|
50
|
+
const { parsed } = await this.getValue(ctx, data);
|
|
51
|
+
return parsed.new || undefined;
|
|
52
|
+
}
|
|
53
|
+
getEmptyValue() {
|
|
54
|
+
return { old: null, new: null };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.File = File;
|
|
58
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/forms/fields/file.ts"],"names":[],"mappings":";;;AAAA,2DAMiC;AAEjC,uCAAgD;AAEhD,mCAAsD;AAOtD,MAAa,IAA+B,SAAQ,iBAGnD;IACA,KAAK,CAAC,KAAK,CACV,GAAY,EACZ,SAAwB;QAExB,IAAI,MAAM,CAAC;QACX,IACC,SAAS,YAAY,eAAY;YACjC,CAAC,kBAAE,CAAC,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC;gBAChC,wBAAQ,CACP;oBACC,QAAQ,EAAE,0BAAU,CAAC,MAAM;oBAC3B,EAAE,EAAE,0BAAU,CAAC,MAAM;iBACrB,EACD,SAAS,CACT;gBACD,SAAS,CAAC,EAAE,CAAC,EACb;YACD,MAAM,IAAI,GAAG,MAAM,eAAY,CAAC,MAAM,CACrC,GAAG,CAAC,IAAI,EACR,SAAS,CAAC,EAAY,CACtB,CAAC;YACF,MAAM,GAAG;gBACR,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAY;aACtB,CAAC;SACF;aAAM,IAAI,CAAC,kBAAE,CAAC,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAC7C,MAAM,GAAG;gBACR,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,wEAAwE;gBAC/E,QAAQ,EAAE,KAAc;aACxB,CAAC;SACF;aAAM;YACN,MAAM,QAAQ,GACb,8BAAc,CAAC,SAAS,EAAE,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;gBACnD,wBAAQ,CACP,EAAE,EAAE,EAAE,0BAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,0BAAU,CAAC,MAAM,EAAE,EACtD,SAAS,CAAC,GAAG,CACb;gBACD,SAAS,CAAC,GAAG,CAAC,EAAE;gBACf,CAAC,CAAC,MAAM,eAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,QAAQ,GACb,wBAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC1B,SAAS,CAAC,GAAG,YAAY,eAAY;gBACpC,CAAC,CAAC,SAAS,CAAC,GAAG;gBACf,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,GAAG;gBACR,QAAQ,EAAE,IAAY;gBACtB,KAAK,EAAE,IAAI;gBACX,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;aAC9C,CAAC;SACF;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAY,EAAE,IAAmC;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;IAChC,CAAC;IAED,aAAa;QACZ,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;CACD;AApED,oBAoEC"}
|