@sealcode/sealgen 0.8.16 → 0.8.17
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/multiple-files.d.ts +2 -1
- package/@types/forms/controls/multiple-photos.d.ts +1 -1
- package/lib/forms/controls/multiple-files.js +6 -3
- package/lib/forms/controls/multiple-files.js.map +1 -1
- package/lib/forms/controls/multiple-photos.js.map +1 -1
- package/package.json +1 -1
- package/src/forms/controls/multiple-files.ts +18 -8
- package/src/forms/controls/multiple-photos.ts +1 -1
- package/src/forms/forms.scss +9 -0
|
@@ -10,11 +10,12 @@ import { FormFieldControl } from "./form-field-control";
|
|
|
10
10
|
export declare type MultipleFilesOptions = {
|
|
11
11
|
label?: string;
|
|
12
12
|
uploadLabel?: string;
|
|
13
|
+
getAdditionalFields: (ctx: Context, file: SealiousFile) => Promise<Record<string, unknown>>;
|
|
13
14
|
};
|
|
14
15
|
export declare class MultipleFiles extends FormFieldControl {
|
|
15
16
|
field: MultipleFilesField;
|
|
16
17
|
options: MultipleFilesOptions;
|
|
17
|
-
constructor(field: MultipleFilesField, options?: MultipleFilesOptions);
|
|
18
|
+
constructor(field: MultipleFilesField, options?: Partial<MultipleFilesOptions>);
|
|
18
19
|
getClassModifiers(): string[];
|
|
19
20
|
mount(router: Router): void;
|
|
20
21
|
deleteFileAssociation(ctx: Context, file_item_id: string): Promise<void>;
|
|
@@ -6,7 +6,7 @@ import KoaResponsiveImageRouter from "koa-responsive-image-router";
|
|
|
6
6
|
export declare class MultiplePhotos extends MultipleFiles {
|
|
7
7
|
field: MultipleFilesField;
|
|
8
8
|
imageRouter: KoaResponsiveImageRouter;
|
|
9
|
-
constructor(field: MultipleFilesField, imageRouter: KoaResponsiveImageRouter, options?: MultipleFilesOptions);
|
|
9
|
+
constructor(field: MultipleFilesField, imageRouter: KoaResponsiveImageRouter, options?: Partial<MultipleFilesOptions>);
|
|
10
10
|
getClassModifiers(): string[];
|
|
11
11
|
getInputAttributes(): {
|
|
12
12
|
accept: string;
|
|
@@ -11,7 +11,7 @@ class MultipleFiles extends form_field_control_1.FormFieldControl {
|
|
|
11
11
|
constructor(field, options) {
|
|
12
12
|
super([field]);
|
|
13
13
|
this.field = field;
|
|
14
|
-
this.options =
|
|
14
|
+
this.options = { getAdditionalFields: async () => ({}), ...options };
|
|
15
15
|
}
|
|
16
16
|
getClassModifiers() {
|
|
17
17
|
return [];
|
|
@@ -46,6 +46,7 @@ class MultipleFiles extends form_field_control_1.FormFieldControl {
|
|
|
46
46
|
throw new Error("No file field in referencing collection");
|
|
47
47
|
}
|
|
48
48
|
const body = {
|
|
49
|
+
...(await this.options.getAdditionalFields(ctx, file)),
|
|
49
50
|
[this.field.collection_field.referencing_field]: await this.field.getItemId(ctx),
|
|
50
51
|
[file_field.name]: file,
|
|
51
52
|
};
|
|
@@ -93,7 +94,7 @@ class MultipleFiles extends form_field_control_1.FormFieldControl {
|
|
|
93
94
|
return file.filename || "no filename";
|
|
94
95
|
}
|
|
95
96
|
async renderFileItem(fileItem, file) {
|
|
96
|
-
return /* HTML */ `<li class="file-list-item">
|
|
97
|
+
return tempstream_1.tempstream /* HTML */ `<li class="file-list-item">
|
|
97
98
|
<a
|
|
98
99
|
class="file-list-item__preview"
|
|
99
100
|
href="${file.getURL()}"
|
|
@@ -132,7 +133,9 @@ class MultipleFiles extends form_field_control_1.FormFieldControl {
|
|
|
132
133
|
return { type: "file", name: "files", multiple: true };
|
|
133
134
|
}
|
|
134
135
|
async renderFrameContent(ctx) {
|
|
135
|
-
const files = (await Promise.all((await this.getFileItems(ctx))
|
|
136
|
+
const files = (await Promise.all((await this.getFileItems(ctx))
|
|
137
|
+
.filter((item) => item) // filter out undefineds
|
|
138
|
+
.map(async (item) => [
|
|
136
139
|
item,
|
|
137
140
|
await this.extractFileFromItem(item),
|
|
138
141
|
]))).filter(([_, f]) => f !== null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiple-files.js","sourceRoot":"","sources":["../../../src/forms/controls/multiple-files.ts"],"names":[],"mappings":";;;AACA,uCAKkB;AAElB,6DAAyD;AACzD,2CAAyD;AAGzD,6DAAwD;AACxD,2DAAyD;AACzD,qEAAiE;
|
|
1
|
+
{"version":3,"file":"multiple-files.js","sourceRoot":"","sources":["../../../src/forms/controls/multiple-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiple-photos.js","sourceRoot":"","sources":["../../../src/forms/controls/multiple-photos.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,qDAAuE;AAIvE,MAAa,cAAe,SAAQ,8BAAa;IAChD,YACQ,KAAyB,EACzB,WAAqC,EAC5C,
|
|
1
|
+
{"version":3,"file":"multiple-photos.js","sourceRoot":"","sources":["../../../src/forms/controls/multiple-photos.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,qDAAuE;AAIvE,MAAa,cAAe,SAAQ,8BAAa;IAChD,YACQ,KAAyB,EACzB,WAAqC,EAC5C,OAAuC;QAEvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAJf,UAAK,GAAL,KAAK,CAAoB;QACzB,gBAAW,GAAX,WAAW,CAA0B;IAI7C,CAAC;IAED,iBAAiB;QAChB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;QACjB,OAAO,EAAE,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,QAAwB,EACxB,IAAkB;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,cAAc,CAAC;SACtB;QACD,OAAO,uBAAU,CAAA,UAAU,CAAC;cAChB,IAAI,CAAC,MAAM,EAAE;MACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxB,IAAI;YACJ,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,UAAU,EAAE,OAAO;SACnB,CAAC;;6BAEuB,IAAI,CAAC,QAAQ,IAAI,aAAa;KACtD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAClC,CAAC;IACR,CAAC;CACD;AArCD,wCAqCC"}
|
package/package.json
CHANGED
|
@@ -14,16 +14,23 @@ import { FormFieldControl } from "./form-field-control";
|
|
|
14
14
|
import { is, predicates } from "@sealcode/ts-predicates";
|
|
15
15
|
import { renderAttributes } from "../../utils/render-attributes";
|
|
16
16
|
|
|
17
|
-
export type MultipleFilesOptions = {
|
|
17
|
+
export type MultipleFilesOptions = {
|
|
18
|
+
label?: string;
|
|
19
|
+
uploadLabel?: string;
|
|
20
|
+
getAdditionalFields: (
|
|
21
|
+
ctx: Context,
|
|
22
|
+
file: SealiousFile
|
|
23
|
+
) => Promise<Record<string, unknown>>;
|
|
24
|
+
};
|
|
18
25
|
|
|
19
26
|
export class MultipleFiles extends FormFieldControl {
|
|
20
27
|
public options: MultipleFilesOptions;
|
|
21
28
|
constructor(
|
|
22
29
|
public field: MultipleFilesField,
|
|
23
|
-
options?: MultipleFilesOptions
|
|
30
|
+
options?: Partial<MultipleFilesOptions>
|
|
24
31
|
) {
|
|
25
32
|
super([field]);
|
|
26
|
-
this.options =
|
|
33
|
+
this.options = { getAdditionalFields: async () => ({}), ...options };
|
|
27
34
|
}
|
|
28
35
|
|
|
29
36
|
getClassModifiers(): string[] {
|
|
@@ -85,6 +92,7 @@ export class MultipleFiles extends FormFieldControl {
|
|
|
85
92
|
throw new Error("No file field in referencing collection");
|
|
86
93
|
}
|
|
87
94
|
const body = {
|
|
95
|
+
...(await this.options.getAdditionalFields(ctx, file)),
|
|
88
96
|
[this.field.collection_field.referencing_field]:
|
|
89
97
|
await this.field.getItemId(ctx),
|
|
90
98
|
[file_field.name]: file,
|
|
@@ -167,7 +175,7 @@ export class MultipleFiles extends FormFieldControl {
|
|
|
167
175
|
fileItem: CollectionItem,
|
|
168
176
|
file: SealiousFile
|
|
169
177
|
): Promise<FlatTemplatable> {
|
|
170
|
-
return /* HTML */ `<li class="file-list-item">
|
|
178
|
+
return tempstream/* HTML */ `<li class="file-list-item">
|
|
171
179
|
<a
|
|
172
180
|
class="file-list-item__preview"
|
|
173
181
|
href="${file.getURL()}"
|
|
@@ -216,10 +224,12 @@ export class MultipleFiles extends FormFieldControl {
|
|
|
216
224
|
await Promise.all(
|
|
217
225
|
(
|
|
218
226
|
await this.getFileItems(ctx)
|
|
219
|
-
)
|
|
220
|
-
item
|
|
221
|
-
|
|
222
|
-
|
|
227
|
+
)
|
|
228
|
+
.filter((item) => item) // filter out undefineds
|
|
229
|
+
.map(async (item) => [
|
|
230
|
+
item,
|
|
231
|
+
await this.extractFileFromItem(item),
|
|
232
|
+
])
|
|
223
233
|
)
|
|
224
234
|
).filter(([_, f]) => f !== null) as [CollectionItem, SealiousFile][];
|
|
225
235
|
|
|
@@ -8,7 +8,7 @@ export class MultiplePhotos extends MultipleFiles {
|
|
|
8
8
|
constructor(
|
|
9
9
|
public field: MultipleFilesField,
|
|
10
10
|
public imageRouter: KoaResponsiveImageRouter,
|
|
11
|
-
options?: MultipleFilesOptions
|
|
11
|
+
options?: Partial<MultipleFilesOptions>
|
|
12
12
|
) {
|
|
13
13
|
super(field, options);
|
|
14
14
|
}
|