aboutsummaryrefslogtreecommitdiff
path: root/_www/functions.js
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-09-19 01:42:06 +0700
committerShulhan <ms@kilabit.info>2021-09-19 01:42:06 +0700
commit29c3898ec03adaf7f6e1dd80f82d02b032f3979b (patch)
treea3daf2eb6a79e1dd0c3de84970f013b01ba948e2 /_www/functions.js
parent8fa18a28d3f378dba8b5fddf19021c9849b7de7e (diff)
downloadgorankusu-29c3898ec03adaf7f6e1dd80f82d02b032f3979b.tar.xz
all: add option to set description (Hint) on any inputs element
This changes refactor the KeyValue from map[string]string into map[string]FormInput, where FormInput is a struct with Label, Hint, Kind, Value, Max, and Min. With the available of Hint field, the web user interface can render it as description of input. This changes also make all input hint to be displayed on the first render.
Diffstat (limited to '_www/functions.js')
-rw-r--r--_www/functions.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/_www/functions.js b/_www/functions.js
new file mode 100644
index 0000000..8f12007
--- /dev/null
+++ b/_www/functions.js
@@ -0,0 +1,44 @@
+import { WuiInputNumber } from "./wui/input/number.js";
+import { WuiInputString } from "./wui/input/string.js";
+import { CLASS_INPUT, CLASS_INPUT_LABEL, FormInputKindNumber, FormInputKindString } from "./interface.js";
+export function GenerateFormInput(parent, fi) {
+ switch (fi.kind) {
+ case FormInputKindNumber:
+ let wui_input_number_opts = {
+ label: fi.label,
+ hint: fi.hint,
+ value: +fi.value,
+ class_input: CLASS_INPUT,
+ class_label: CLASS_INPUT_LABEL,
+ is_hint_toggled: true,
+ onChangeHandler: (new_value) => {
+ fi.value = "" + new_value;
+ },
+ };
+ if (fi.max) {
+ wui_input_number_opts.max = fi.max;
+ }
+ if (fi.min) {
+ wui_input_number_opts.min = fi.min;
+ }
+ let wui_input_number = new WuiInputNumber(wui_input_number_opts);
+ parent.appendChild(wui_input_number.el);
+ break;
+ case FormInputKindString:
+ let wui_input_string_opts = {
+ label: fi.label,
+ hint: fi.hint,
+ value: fi.value,
+ class_input: CLASS_INPUT,
+ class_label: CLASS_INPUT_LABEL,
+ is_hint_toggled: true,
+ onChangeHandler: (new_value) => {
+ fi.value = new_value;
+ },
+ };
+ let wui_input_string = new WuiInputString(wui_input_string_opts);
+ parent.appendChild(wui_input_string.el);
+ break;
+ }
+}
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXNCLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBc0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFhLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFcEgsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQW1CLEVBQUUsRUFBYTtJQUNuRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDaEIsS0FBSyxtQkFBbUI7WUFDdkIsSUFBSSxxQkFBcUIsR0FBdUI7Z0JBQy9DLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUs7Z0JBQ2hCLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixlQUFlLEVBQUUsSUFBSTtnQkFDckIsZUFBZSxFQUFFLENBQUMsU0FBaUIsRUFBRSxFQUFFO29CQUN0QyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUE7Z0JBQzFCLENBQUM7YUFDRCxDQUFBO1lBQ0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUNYLHFCQUFxQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFBO2FBQ2xDO1lBQ0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUNYLHFCQUFxQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFBO2FBQ2xDO1lBQ0QsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdkMsTUFBSztRQUVOLEtBQUssbUJBQW1CO1lBQ3ZCLElBQUkscUJBQXFCLEdBQXVCO2dCQUMvQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJO2dCQUNiLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixXQUFXLEVBQUUsV0FBVztnQkFDeEIsV0FBVyxFQUFFLGlCQUFpQjtnQkFDOUIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLGVBQWUsRUFBRSxDQUFDLFNBQWlCLEVBQUUsRUFBRTtvQkFDdEMsRUFBRSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUE7Z0JBQ3JCLENBQUM7YUFDRCxDQUFBO1lBQ0QsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdkMsTUFBSztLQUNOO0FBQ0YsQ0FBQyJ9 \ No newline at end of file