@sealcode/sealgen 0.8.17 → 0.8.19
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/textarea.d.ts +3 -0
- package/lib/forms/controls/derived.js +11 -9
- package/lib/forms/controls/derived.js.map +1 -1
- package/lib/forms/controls/textarea.js +13 -0
- package/lib/forms/controls/textarea.js.map +1 -1
- package/package.json +1 -1
- package/src/forms/controls/derived.ts +13 -11
- package/src/forms/controls/textarea.ts +27 -0
|
@@ -9,13 +9,16 @@ export declare class Textarea<Required extends boolean> extends SimpleInput<stri
|
|
|
9
9
|
rows?: number;
|
|
10
10
|
cols?: number;
|
|
11
11
|
description?: string;
|
|
12
|
+
autogrow?: boolean;
|
|
12
13
|
};
|
|
13
14
|
constructor(field: FormField<boolean, string | null>, options?: SimpleInputOptions & {
|
|
14
15
|
label?: string;
|
|
15
16
|
rows?: number;
|
|
16
17
|
cols?: number;
|
|
17
18
|
description?: string;
|
|
19
|
+
autogrow?: boolean;
|
|
18
20
|
});
|
|
19
21
|
renderDescription(): string;
|
|
22
|
+
getInputAttributes(ctx: Context, data: Record<string, FormDataValue>, field_prefix: string, form_id: string): Promise<Record<string, string | boolean>>;
|
|
20
23
|
renderInput(ctx: Context, attributes: string, data: Record<string, FormDataValue>): Promise<string>;
|
|
21
24
|
}
|
|
@@ -17,15 +17,17 @@ class Derived extends form_control_1.FormControl {
|
|
|
17
17
|
return tempstream_1.tempstream /* HTML */ `<div>
|
|
18
18
|
<script>
|
|
19
19
|
(function () {
|
|
20
|
-
const consts = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
const consts = ${"{" +
|
|
21
|
+
Object.entries(this.consts || {})
|
|
22
|
+
.map(([key, value]) => {
|
|
23
|
+
return `"${key}": ${typeof value === "object"
|
|
24
|
+
? JSON.stringify(value)
|
|
25
|
+
: typeof value == "string"
|
|
26
|
+
? '"' + value.toString() + '"'
|
|
27
|
+
: value.toString()}`;
|
|
28
|
+
})
|
|
29
|
+
.join(",") +
|
|
30
|
+
"}"};
|
|
29
31
|
const form_container =
|
|
30
32
|
document.currentScript.closest(".form-container");
|
|
31
33
|
const render = ${this._render.toString()};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived.js","sourceRoot":"","sources":["../../../src/forms/controls/derived.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,2CAAyD;AAEzD,iDAA6C;AAE7C,MAAa,OAEX,SAAQ,0BAAW;IAGpB,YACQ,MAAmB,EACnB,OAGI,EACJ,MAAc;QAErB,KAAK,EAAE,CAAC;QAPD,WAAM,GAAN,MAAM,CAAa;QACnB,YAAO,GAAP,OAAO,CAGH;QACJ,WAAM,GAAN,MAAM,CAAQ;QARtB,SAAI,GAAU,YAAY,CAAC;IAW3B,CAAC;IAED,MAAM;QACL,MAAM,EAAE,GAAG,GAAG,GAAG,mBAAU,EAAE,CAAC,CAAC,qEAAqE;QACpG,OAAO,uBAAU,CAAA,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"derived.js","sourceRoot":"","sources":["../../../src/forms/controls/derived.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,2CAAyD;AAEzD,iDAA6C;AAE7C,MAAa,OAEX,SAAQ,0BAAW;IAGpB,YACQ,MAAmB,EACnB,OAGI,EACJ,MAAc;QAErB,KAAK,EAAE,CAAC;QAPD,WAAM,GAAN,MAAM,CAAa;QACnB,YAAO,GAAP,OAAO,CAGH;QACJ,WAAM,GAAN,MAAM,CAAQ;QARtB,SAAI,GAAU,YAAY,CAAC;IAW3B,CAAC;IAED,MAAM;QACL,MAAM,EAAE,GAAG,GAAG,GAAG,mBAAU,EAAE,CAAC,CAAC,qEAAqE;QACpG,OAAO,uBAAU,CAAA,UAAU,CAAC;;;sBAGR,GAAG;YACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrB,OAAO,IAAI,GAAG,MACb,OAAO,KAAK,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBACvB,CAAC,CAAC,OAAO,KAAK,IAAI,QAAQ;wBAC1B,CAAC,CAAC,GAAG,GAAI,KAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG;wBAC1C,CAAC,CAAE,KAAgB,CAAC,QAAQ,EAC9B,EAAE,CAAC;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;YACX,GAAG;;;sBAGc,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;;;SAGpC,IAAI,CAAC,SAAS,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;;;;;;;;;;;;;;;;;oCAkB4B,EAAE;;;;;OAK/B,IAAI,CAAC,SAAS,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;;mCAG6B,EAAE;;;;;;cAMvB,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;SACzC,CAAC;IACT,CAAC;CACD;AA9ED,0BA8EC"}
|
|
@@ -15,6 +15,19 @@ class Textarea extends simple_input_1.SimpleInput {
|
|
|
15
15
|
</div>`
|
|
16
16
|
: "";
|
|
17
17
|
}
|
|
18
|
+
async getInputAttributes(ctx, data, field_prefix, form_id) {
|
|
19
|
+
const original = (await super.getInputAttributes(ctx, data, field_prefix, form_id));
|
|
20
|
+
let onkeydown = original.onkeydown || "";
|
|
21
|
+
if (this.options.autogrow) {
|
|
22
|
+
onkeydown += `;this.style.height = '5px';this.style.height = Math.max((this.scrollHeight)+32, ${((this.options.rows || 2) + 1) * 16} )+'px';`;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
...original,
|
|
26
|
+
rows: this.options.rows ? this.options.rows.toString() : false,
|
|
27
|
+
cols: this.options.cols ? this.options.cols.toString() : false,
|
|
28
|
+
onkeydown,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
18
31
|
async renderInput(ctx, attributes, data) {
|
|
19
32
|
const { parsed: value } = await this.field.getValue(ctx, data);
|
|
20
33
|
return /* HTML */ `<textarea ${attributes}>${value}</textarea>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAOA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,KAAwC,EACxC,
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAOA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,KAAwC,EACxC,UAMH,EAAE;QAEN,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QATf,UAAK,GAAL,KAAK,CAAmC;QACxC,YAAO,GAAP,OAAO,CAMR;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,kBAAkB,CACvB,GAAY,EACZ,IAAmC,EACnC,YAAoB,EACpB,OAAe;QAEf,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,kBAAkB,CAC/C,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,CACP,CAAqC,CAAC;QACvC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1B,SAAS,IAAI,mFACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAClC,UAAU,CAAC;SACX;QACD,OAAO;YACN,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;YAC9D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;YAC9D,SAAS;SACT,CAAC;IACH,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;AA1DD,4BA0DC"}
|
package/package.json
CHANGED
|
@@ -24,17 +24,19 @@ export class Derived<
|
|
|
24
24
|
return tempstream/* HTML */ `<div>
|
|
25
25
|
<script>
|
|
26
26
|
(function () {
|
|
27
|
-
const consts = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
const consts = ${"{" +
|
|
28
|
+
Object.entries(this.consts || {})
|
|
29
|
+
.map(([key, value]) => {
|
|
30
|
+
return `"${key}": ${
|
|
31
|
+
typeof value === "object"
|
|
32
|
+
? JSON.stringify(value)
|
|
33
|
+
: typeof value == "string"
|
|
34
|
+
? '"' + (value as string).toString() + '"'
|
|
35
|
+
: (value as string).toString()
|
|
36
|
+
}`;
|
|
37
|
+
})
|
|
38
|
+
.join(",") +
|
|
39
|
+
"}"};
|
|
38
40
|
const form_container =
|
|
39
41
|
document.currentScript.closest(".form-container");
|
|
40
42
|
const render = ${this._render.toString()};
|
|
@@ -17,6 +17,7 @@ export class Textarea<Required extends boolean> extends SimpleInput<
|
|
|
17
17
|
rows?: number;
|
|
18
18
|
cols?: number;
|
|
19
19
|
description?: string;
|
|
20
|
+
autogrow?: boolean;
|
|
20
21
|
} = {}
|
|
21
22
|
) {
|
|
22
23
|
super(field, options);
|
|
@@ -30,6 +31,32 @@ export class Textarea<Required extends boolean> extends SimpleInput<
|
|
|
30
31
|
: "";
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
async getInputAttributes(
|
|
35
|
+
ctx: Context,
|
|
36
|
+
data: Record<string, FormDataValue>,
|
|
37
|
+
field_prefix: string,
|
|
38
|
+
form_id: string
|
|
39
|
+
): Promise<Record<string, string | boolean>> {
|
|
40
|
+
const original = (await super.getInputAttributes(
|
|
41
|
+
ctx,
|
|
42
|
+
data,
|
|
43
|
+
field_prefix,
|
|
44
|
+
form_id
|
|
45
|
+
)) as Record<string, string | boolean>;
|
|
46
|
+
let onkeydown = original.onkeydown || "";
|
|
47
|
+
if (this.options.autogrow) {
|
|
48
|
+
onkeydown += `;this.style.height = '5px';this.style.height = Math.max((this.scrollHeight)+32, ${
|
|
49
|
+
((this.options.rows || 2) + 1) * 16
|
|
50
|
+
} )+'px';`;
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
...original,
|
|
54
|
+
rows: this.options.rows ? this.options.rows.toString() : false,
|
|
55
|
+
cols: this.options.cols ? this.options.cols.toString() : false,
|
|
56
|
+
onkeydown,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
33
60
|
async renderInput(
|
|
34
61
|
ctx: Context,
|
|
35
62
|
attributes: string,
|