@sealcode/sealgen 0.8.26 → 0.8.28
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/number.d.ts +0 -3
- package/@types/forms/controls/simple-input.d.ts +2 -1
- package/lib/forms/controls/number.js +0 -5
- package/lib/forms/controls/number.js.map +1 -1
- package/lib/forms/controls/simple-input.js +4 -2
- package/lib/forms/controls/simple-input.js.map +1 -1
- package/lib/forms/fields/boolean.js +3 -0
- package/lib/forms/fields/boolean.js.map +1 -1
- package/package.json +1 -1
- package/src/forms/controls/number.ts +1 -8
- package/src/forms/controls/simple-input.ts +5 -2
- package/src/forms/fields/boolean.ts +2 -0
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { Context } from "koa";
|
|
2
|
-
import { FlatTemplatable } from "tempstream";
|
|
3
2
|
import { NumberField } from "../fields/field";
|
|
4
3
|
import { FormDataValue } from "../form";
|
|
5
4
|
import { SimpleInput, SimpleInputOptions } from "./simple-input";
|
|
6
5
|
export declare type NumberOptions = SimpleInputOptions & Partial<{
|
|
7
6
|
step: number;
|
|
8
|
-
suffix: string;
|
|
9
7
|
}>;
|
|
10
8
|
export declare class Number extends SimpleInput<number | null> {
|
|
11
9
|
field: NumberField;
|
|
12
10
|
options: NumberOptions;
|
|
13
11
|
constructor(field: NumberField, options: NumberOptions);
|
|
14
12
|
getType(): string;
|
|
15
|
-
postInput(_: Context): Promise<FlatTemplatable>;
|
|
16
13
|
getInputAttributes(ctx: Context, data: Record<string, FormDataValue>, field_prefix: string, form_id: string): Promise<Record<string, string | boolean>>;
|
|
17
14
|
}
|
|
@@ -13,6 +13,7 @@ export declare type SimpleInputOptions = {
|
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
readonly?: boolean;
|
|
15
15
|
step?: number;
|
|
16
|
+
suffix?: string;
|
|
16
17
|
};
|
|
17
18
|
export declare class SimpleInput<ParsedValue, Options extends SimpleInputOptions = SimpleInputOptions> extends FormFieldControl {
|
|
18
19
|
field: FormField<boolean, ParsedValue>;
|
|
@@ -24,7 +25,7 @@ export declare class SimpleInput<ParsedValue, Options extends SimpleInputOptions
|
|
|
24
25
|
getID(): string;
|
|
25
26
|
getPlaceholder(): string;
|
|
26
27
|
getInputAttributes(ctx: Context, data: Record<string, FormDataValue>, field_prefix: string, form_id: string): Promise<Record<string, string | boolean>>;
|
|
27
|
-
postInput(
|
|
28
|
+
postInput(_: Context): Promise<FlatTemplatable>;
|
|
28
29
|
renderInput(ctx: Context, attributes_str: string, data: Record<string, FormDataValue>): Promise<FlatTemplatable>;
|
|
29
30
|
render<Fields extends Record<string, FormField>>(ctx: Context, data: Record<string, FormDataValue>, _messages: FormMessage[], field_prefix: string, form_id: string, show_errors: boolean): Promise<FlatTemplatable>;
|
|
30
31
|
}
|
|
@@ -9,11 +9,6 @@ class Number extends simple_input_1.SimpleInput {
|
|
|
9
9
|
getType() {
|
|
10
10
|
return "number";
|
|
11
11
|
}
|
|
12
|
-
async postInput(_) {
|
|
13
|
-
return this.options.suffix
|
|
14
|
-
? /* HTML */ `<span class="suffix">${this.options.suffix}</span>`
|
|
15
|
-
: "";
|
|
16
|
-
}
|
|
17
12
|
async getInputAttributes(ctx, data, field_prefix, form_id) {
|
|
18
13
|
const original = await super.getInputAttributes(ctx, data, field_prefix, form_id);
|
|
19
14
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/forms/controls/number.ts"],"names":[],"mappings":";;;AAIA,iDAAiE;
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/forms/controls/number.ts"],"names":[],"mappings":";;;AAIA,iDAAiE;AAIjE,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,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;AApCD,wBAoCC"}
|
|
@@ -54,8 +54,10 @@ class SimpleInput extends controls_1.FormFieldControl {
|
|
|
54
54
|
...(this.options.step ? [["step", this.options.step]] : []),
|
|
55
55
|
]);
|
|
56
56
|
}
|
|
57
|
-
async postInput(
|
|
58
|
-
return
|
|
57
|
+
async postInput(_) {
|
|
58
|
+
return this.options.suffix
|
|
59
|
+
? /* HTML */ `<span class="suffix">${this.options.suffix}</span>`
|
|
60
|
+
: "";
|
|
59
61
|
}
|
|
60
62
|
async renderInput(ctx, attributes_str, data) {
|
|
61
63
|
return `<input ${attributes_str} />`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6DAA2E;AAC3E,qEAAiE;AAGjE,yCAA8C;
|
|
1
|
+
{"version":3,"file":"simple-input.js","sourceRoot":"","sources":["../../../src/forms/controls/simple-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,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;
|
|
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,IAAI,KAAK,KAAK,IAAI,EAAE;YAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D;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;AAtDD,0BAsDC"}
|
package/package.json
CHANGED
|
@@ -4,8 +4,7 @@ import { FormField, NumberField } from "../fields/field";
|
|
|
4
4
|
import { FormDataValue } from "../form";
|
|
5
5
|
import { SimpleInput, SimpleInputOptions } from "./simple-input";
|
|
6
6
|
|
|
7
|
-
export type NumberOptions = SimpleInputOptions &
|
|
8
|
-
Partial<{ step: number; suffix: string }>;
|
|
7
|
+
export type NumberOptions = SimpleInputOptions & Partial<{ step: number }>;
|
|
9
8
|
|
|
10
9
|
export class Number extends SimpleInput<number | null> {
|
|
11
10
|
field: NumberField;
|
|
@@ -18,12 +17,6 @@ export class Number extends SimpleInput<number | null> {
|
|
|
18
17
|
return "number";
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
async postInput(_: Context): Promise<FlatTemplatable> {
|
|
22
|
-
return this.options.suffix
|
|
23
|
-
? /* HTML */ `<span class="suffix">${this.options.suffix}</span>`
|
|
24
|
-
: "";
|
|
25
|
-
}
|
|
26
|
-
|
|
27
20
|
async getInputAttributes(
|
|
28
21
|
ctx: Context,
|
|
29
22
|
data: Record<string, FormDataValue>,
|
|
@@ -29,6 +29,7 @@ export type SimpleInputOptions = {
|
|
|
29
29
|
placeholder?: string;
|
|
30
30
|
readonly?: boolean;
|
|
31
31
|
step?: number;
|
|
32
|
+
suffix?: string;
|
|
32
33
|
};
|
|
33
34
|
|
|
34
35
|
export class SimpleInput<
|
|
@@ -101,8 +102,10 @@ export class SimpleInput<
|
|
|
101
102
|
]);
|
|
102
103
|
}
|
|
103
104
|
|
|
104
|
-
async postInput(
|
|
105
|
-
return
|
|
105
|
+
async postInput(_: Context): Promise<FlatTemplatable> {
|
|
106
|
+
return this.options.suffix
|
|
107
|
+
? /* HTML */ `<span class="suffix">${this.options.suffix}</span>`
|
|
108
|
+
: "";
|
|
106
109
|
}
|
|
107
110
|
|
|
108
111
|
async renderInput(
|