@sealcode/sealgen 0.8.18 → 0.8.20
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/textarea.js +13 -0
- package/lib/forms/controls/textarea.js.map +1 -1
- package/lib/forms/controls/tickable.js +1 -1
- package/lib/forms/controls/tickable.js.map +1 -1
- package/package.json +1 -1
- package/src/forms/controls/textarea.ts +27 -0
- package/src/forms/controls/tickable.ts +1 -1
|
@@ -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
|
}
|
|
@@ -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"}
|
|
@@ -47,7 +47,7 @@ class Tickable extends controls_1.FormFieldControl {
|
|
|
47
47
|
${this.isChecked(ctx, data, parsed) ? "checked" : ""}
|
|
48
48
|
${readonly ? "readonly" : ""}
|
|
49
49
|
${required ? "required" : ""}
|
|
50
|
-
onchange="this.closest('form').querySelectorAll('.form-input__wrapper--${this
|
|
50
|
+
onchange="this.closest('.form-container').querySelectorAll('.form-input__wrapper--${this
|
|
51
51
|
.field
|
|
52
52
|
.name}').forEach(e=>e.setAttribute('data-checked','false'));
|
|
53
53
|
this.closest('.form-input__wrapper').setAttribute('data-checked',this.checked);"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;AAU9C,MAAsB,QAA4B,SAAQ,2BAAgB;IACzE,YACQ,KAA4B,EAC5B,UAA2B,EAAE;QAEpC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAAuB;QAC5B,YAAO,GAAP,OAAO,CAAsB;IAGrC,CAAC;IAgBD,WAAW,CACV,GAAY,EACZ,IAAmC,EACnC,KAAQ;QAER,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,CACN,IAAI,CAAC,OAAO,CAAC,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD,CAAC;IACH,CAAC;IAED,iBAAiB,CAChB,GAAY,EACZ,IAAmC,EACnC,KAAQ;QAER,OAAO;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;YAClC,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;YACtC,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,CAAY,EACZ,YAAoB,EACpB,OAAe,EACf,iBAA0B;QAE1B,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,KAAK,GACV,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAEpB,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,OAAO,4BAAY,CAClB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;QAEzC,UAAU,CAAC;;WAEH,EAAE;aACA,IAAI,CAAC,IAAI;aACT,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI;OACb,KAAK,CAAC,CAAC,CAAC,UAAU,oBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;OAC1C,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;OAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;OAClD,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;OAC1B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;yFACwD,IAAI;aACtF,KAAK;aACL,IAAI;;;;kBAIO,EAAE,KAAK,KAAK;;;;;;;;;;;;;MAaxB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,iBAAiB;YACzD,CAAC,CAAC,6BAA6B,OAAO,QAAQ;YAC9C,CAAC,CAAC,EAAE;IACL,CACD,CAAC;IACH,CAAC;CACD;AA5GD,4BA4GC"}
|
package/package.json
CHANGED
|
@@ -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,
|
|
@@ -97,7 +97,7 @@ export abstract class Tickable<T extends unknown> extends FormFieldControl {
|
|
|
97
97
|
${this.isChecked(ctx, data, parsed) ? "checked" : ""}
|
|
98
98
|
${readonly ? "readonly" : ""}
|
|
99
99
|
${required ? "required" : ""}
|
|
100
|
-
onchange="this.closest('form').querySelectorAll('.form-input__wrapper--${this
|
|
100
|
+
onchange="this.closest('.form-container').querySelectorAll('.form-input__wrapper--${this
|
|
101
101
|
.field
|
|
102
102
|
.name}').forEach(e=>e.setAttribute('data-checked','false'));
|
|
103
103
|
this.closest('.form-input__wrapper').setAttribute('data-checked',this.checked);"
|