@aigne/afs-ui 1.11.0-beta.12
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/LICENSE.md +26 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
- package/dist/aup-protocol.cjs +235 -0
- package/dist/aup-protocol.d.cts +78 -0
- package/dist/aup-protocol.d.cts.map +1 -0
- package/dist/aup-protocol.d.mts +78 -0
- package/dist/aup-protocol.d.mts.map +1 -0
- package/dist/aup-protocol.mjs +235 -0
- package/dist/aup-protocol.mjs.map +1 -0
- package/dist/aup-registry.cjs +2489 -0
- package/dist/aup-registry.mjs +2487 -0
- package/dist/aup-registry.mjs.map +1 -0
- package/dist/aup-spec.cjs +1467 -0
- package/dist/aup-spec.mjs +1466 -0
- package/dist/aup-spec.mjs.map +1 -0
- package/dist/aup-types.cjs +165 -0
- package/dist/aup-types.d.cts +157 -0
- package/dist/aup-types.d.cts.map +1 -0
- package/dist/aup-types.d.mts +157 -0
- package/dist/aup-types.d.mts.map +1 -0
- package/dist/aup-types.mjs +157 -0
- package/dist/aup-types.mjs.map +1 -0
- package/dist/backend.cjs +14 -0
- package/dist/backend.d.cts +104 -0
- package/dist/backend.d.cts.map +1 -0
- package/dist/backend.d.mts +104 -0
- package/dist/backend.d.mts.map +1 -0
- package/dist/backend.mjs +13 -0
- package/dist/backend.mjs.map +1 -0
- package/dist/degradation.cjs +85 -0
- package/dist/degradation.d.cts +17 -0
- package/dist/degradation.d.cts.map +1 -0
- package/dist/degradation.d.mts +17 -0
- package/dist/degradation.d.mts.map +1 -0
- package/dist/degradation.mjs +84 -0
- package/dist/degradation.mjs.map +1 -0
- package/dist/index.cjs +36 -0
- package/dist/index.d.cts +12 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.mjs +13 -0
- package/dist/runtime.cjs +117 -0
- package/dist/runtime.d.cts +59 -0
- package/dist/runtime.d.cts.map +1 -0
- package/dist/runtime.d.mts +59 -0
- package/dist/runtime.d.mts.map +1 -0
- package/dist/runtime.mjs +118 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/session.cjs +159 -0
- package/dist/session.d.cts +80 -0
- package/dist/session.d.cts.map +1 -0
- package/dist/session.d.mts +80 -0
- package/dist/session.d.mts.map +1 -0
- package/dist/session.mjs +159 -0
- package/dist/session.mjs.map +1 -0
- package/dist/snapshot.cjs +162 -0
- package/dist/snapshot.mjs +163 -0
- package/dist/snapshot.mjs.map +1 -0
- package/dist/term-page.cjs +264 -0
- package/dist/term-page.mjs +264 -0
- package/dist/term-page.mjs.map +1 -0
- package/dist/term.cjs +295 -0
- package/dist/term.d.cts +84 -0
- package/dist/term.d.cts.map +1 -0
- package/dist/term.d.mts +84 -0
- package/dist/term.d.mts.map +1 -0
- package/dist/term.mjs +296 -0
- package/dist/term.mjs.map +1 -0
- package/dist/tty.cjs +136 -0
- package/dist/tty.d.cts +53 -0
- package/dist/tty.d.cts.map +1 -0
- package/dist/tty.d.mts +53 -0
- package/dist/tty.d.mts.map +1 -0
- package/dist/tty.mjs +135 -0
- package/dist/tty.mjs.map +1 -0
- package/dist/ui-provider.cjs +4615 -0
- package/dist/ui-provider.d.cts +307 -0
- package/dist/ui-provider.d.cts.map +1 -0
- package/dist/ui-provider.d.mts +307 -0
- package/dist/ui-provider.d.mts.map +1 -0
- package/dist/ui-provider.mjs +4616 -0
- package/dist/ui-provider.mjs.map +1 -0
- package/dist/web-page/core.cjs +1388 -0
- package/dist/web-page/core.mjs +1387 -0
- package/dist/web-page/core.mjs.map +1 -0
- package/dist/web-page/css.cjs +1699 -0
- package/dist/web-page/css.mjs +1698 -0
- package/dist/web-page/css.mjs.map +1 -0
- package/dist/web-page/icons.cjs +248 -0
- package/dist/web-page/icons.mjs +248 -0
- package/dist/web-page/icons.mjs.map +1 -0
- package/dist/web-page/overlay-themes.cjs +514 -0
- package/dist/web-page/overlay-themes.mjs +513 -0
- package/dist/web-page/overlay-themes.mjs.map +1 -0
- package/dist/web-page/renderers/action.cjs +72 -0
- package/dist/web-page/renderers/action.mjs +72 -0
- package/dist/web-page/renderers/action.mjs.map +1 -0
- package/dist/web-page/renderers/broadcast.cjs +160 -0
- package/dist/web-page/renderers/broadcast.mjs +160 -0
- package/dist/web-page/renderers/broadcast.mjs.map +1 -0
- package/dist/web-page/renderers/calendar.cjs +137 -0
- package/dist/web-page/renderers/calendar.mjs +137 -0
- package/dist/web-page/renderers/calendar.mjs.map +1 -0
- package/dist/web-page/renderers/canvas.cjs +173 -0
- package/dist/web-page/renderers/canvas.mjs +173 -0
- package/dist/web-page/renderers/canvas.mjs.map +1 -0
- package/dist/web-page/renderers/cdn-loader.cjs +25 -0
- package/dist/web-page/renderers/cdn-loader.mjs +25 -0
- package/dist/web-page/renderers/cdn-loader.mjs.map +1 -0
- package/dist/web-page/renderers/chart.cjs +101 -0
- package/dist/web-page/renderers/chart.mjs +101 -0
- package/dist/web-page/renderers/chart.mjs.map +1 -0
- package/dist/web-page/renderers/deck.cjs +390 -0
- package/dist/web-page/renderers/deck.mjs +390 -0
- package/dist/web-page/renderers/deck.mjs.map +1 -0
- package/dist/web-page/renderers/device.cjs +1015 -0
- package/dist/web-page/renderers/device.mjs +1015 -0
- package/dist/web-page/renderers/device.mjs.map +1 -0
- package/dist/web-page/renderers/editor.cjs +127 -0
- package/dist/web-page/renderers/editor.mjs +127 -0
- package/dist/web-page/renderers/editor.mjs.map +1 -0
- package/dist/web-page/renderers/finance-chart.cjs +178 -0
- package/dist/web-page/renderers/finance-chart.mjs +178 -0
- package/dist/web-page/renderers/finance-chart.mjs.map +1 -0
- package/dist/web-page/renderers/frame.cjs +274 -0
- package/dist/web-page/renderers/frame.mjs +274 -0
- package/dist/web-page/renderers/frame.mjs.map +1 -0
- package/dist/web-page/renderers/globe.cjs +119 -0
- package/dist/web-page/renderers/globe.mjs +119 -0
- package/dist/web-page/renderers/globe.mjs.map +1 -0
- package/dist/web-page/renderers/input.cjs +137 -0
- package/dist/web-page/renderers/input.mjs +137 -0
- package/dist/web-page/renderers/input.mjs.map +1 -0
- package/dist/web-page/renderers/list.cjs +1243 -0
- package/dist/web-page/renderers/list.mjs +1243 -0
- package/dist/web-page/renderers/list.mjs.map +1 -0
- package/dist/web-page/renderers/map.cjs +126 -0
- package/dist/web-page/renderers/map.mjs +126 -0
- package/dist/web-page/renderers/map.mjs.map +1 -0
- package/dist/web-page/renderers/media.cjs +106 -0
- package/dist/web-page/renderers/media.mjs +106 -0
- package/dist/web-page/renderers/media.mjs.map +1 -0
- package/dist/web-page/renderers/moonphase.cjs +105 -0
- package/dist/web-page/renderers/moonphase.mjs +105 -0
- package/dist/web-page/renderers/moonphase.mjs.map +1 -0
- package/dist/web-page/renderers/natal-chart.cjs +222 -0
- package/dist/web-page/renderers/natal-chart.mjs +222 -0
- package/dist/web-page/renderers/natal-chart.mjs.map +1 -0
- package/dist/web-page/renderers/overlay.cjs +531 -0
- package/dist/web-page/renderers/overlay.mjs +531 -0
- package/dist/web-page/renderers/overlay.mjs.map +1 -0
- package/dist/web-page/renderers/table.cjs +74 -0
- package/dist/web-page/renderers/table.mjs +74 -0
- package/dist/web-page/renderers/table.mjs.map +1 -0
- package/dist/web-page/renderers/terminal.cjs +30 -0
- package/dist/web-page/renderers/terminal.mjs +30 -0
- package/dist/web-page/renderers/terminal.mjs.map +1 -0
- package/dist/web-page/renderers/text.cjs +109 -0
- package/dist/web-page/renderers/text.mjs +109 -0
- package/dist/web-page/renderers/text.mjs.map +1 -0
- package/dist/web-page/renderers/ticker.cjs +133 -0
- package/dist/web-page/renderers/ticker.mjs +133 -0
- package/dist/web-page/renderers/ticker.mjs.map +1 -0
- package/dist/web-page/renderers/time.cjs +69 -0
- package/dist/web-page/renderers/time.mjs +69 -0
- package/dist/web-page/renderers/time.mjs.map +1 -0
- package/dist/web-page/renderers/unknown.cjs +20 -0
- package/dist/web-page/renderers/unknown.mjs +20 -0
- package/dist/web-page/renderers/unknown.mjs.map +1 -0
- package/dist/web-page/renderers/view.cjs +161 -0
- package/dist/web-page/renderers/view.mjs +161 -0
- package/dist/web-page/renderers/view.mjs.map +1 -0
- package/dist/web-page/renderers/wm.cjs +669 -0
- package/dist/web-page/renderers/wm.mjs +669 -0
- package/dist/web-page/renderers/wm.mjs.map +1 -0
- package/dist/web-page/skeleton.cjs +103 -0
- package/dist/web-page/skeleton.mjs +103 -0
- package/dist/web-page/skeleton.mjs.map +1 -0
- package/dist/web-page.cjs +114 -0
- package/dist/web-page.d.cts +19 -0
- package/dist/web-page.d.cts.map +1 -0
- package/dist/web-page.d.mts +19 -0
- package/dist/web-page.d.mts.map +1 -0
- package/dist/web-page.mjs +115 -0
- package/dist/web-page.mjs.map +1 -0
- package/dist/web.cjs +827 -0
- package/dist/web.d.cts +144 -0
- package/dist/web.d.cts.map +1 -0
- package/dist/web.d.mts +144 -0
- package/dist/web.d.mts.map +1 -0
- package/dist/web.mjs +828 -0
- package/dist/web.mjs.map +1 -0
- package/dist/wm-state.cjs +172 -0
- package/dist/wm-state.mjs +171 -0
- package/dist/wm-state.mjs.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/web-page/renderers/input.ts
|
|
3
|
+
const INPUT_JS = `
|
|
4
|
+
function renderAupInput(node) {
|
|
5
|
+
var el = document.createElement("div");
|
|
6
|
+
el.className = "aup-input";
|
|
7
|
+
var p = node.props || {};
|
|
8
|
+
var s = node.state || {};
|
|
9
|
+
var inputType = p.type || p.variant || "text";
|
|
10
|
+
|
|
11
|
+
// Label
|
|
12
|
+
if (p.label) {
|
|
13
|
+
var lbl = document.createElement("label");
|
|
14
|
+
lbl.textContent = _escapeHtml(String(p.label));
|
|
15
|
+
el.appendChild(lbl);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (inputType === "select") {
|
|
19
|
+
var sel = document.createElement("select");
|
|
20
|
+
var opts = Array.isArray(p.options) ? p.options : [];
|
|
21
|
+
for (var i = 0; i < opts.length; i++) {
|
|
22
|
+
var opt = document.createElement("option");
|
|
23
|
+
var optItem = opts[i];
|
|
24
|
+
// Support both string options and {label, value} objects
|
|
25
|
+
var optVal = typeof optItem === "object" && optItem !== null ? (optItem.value || optItem.label || "") : String(optItem);
|
|
26
|
+
var optLabel = typeof optItem === "object" && optItem !== null ? (optItem.label || optItem.value || "") : String(optItem);
|
|
27
|
+
opt.value = String(optVal);
|
|
28
|
+
opt.textContent = _escapeHtml(String(optLabel));
|
|
29
|
+
if (String(p.value) === String(optVal) || String(s.value) === String(optVal)) opt.selected = true;
|
|
30
|
+
sel.appendChild(opt);
|
|
31
|
+
}
|
|
32
|
+
sel.onchange = function() {
|
|
33
|
+
if (node.events && node.events.change) {
|
|
34
|
+
_fireAupEvent(node.id, "change", { value: sel.value });
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
el.appendChild(sel);
|
|
38
|
+
} else if (inputType === "toggle") {
|
|
39
|
+
var toggleRow = document.createElement("div");
|
|
40
|
+
toggleRow.className = "aup-toggle";
|
|
41
|
+
var track = document.createElement("div");
|
|
42
|
+
track.className = "aup-toggle-track" + (s.value ? " on" : "");
|
|
43
|
+
var thumb = document.createElement("div");
|
|
44
|
+
thumb.className = "aup-toggle-thumb";
|
|
45
|
+
track.appendChild(thumb);
|
|
46
|
+
toggleRow.appendChild(track);
|
|
47
|
+
toggleRow.onclick = function() {
|
|
48
|
+
track.classList.toggle("on");
|
|
49
|
+
if (node.events && node.events.change) {
|
|
50
|
+
_fireAupEvent(node.id, "change", {});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
el.appendChild(toggleRow);
|
|
54
|
+
} else if (inputType === "checkbox") {
|
|
55
|
+
var cbRow = document.createElement("div");
|
|
56
|
+
cbRow.className = "aup-checkbox-row";
|
|
57
|
+
var cb = document.createElement("input");
|
|
58
|
+
cb.type = "checkbox";
|
|
59
|
+
cb.checked = !!s.value;
|
|
60
|
+
cb.onchange = function() {
|
|
61
|
+
if (node.events && node.events.change) {
|
|
62
|
+
_fireAupEvent(node.id, "change", {});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
cbRow.appendChild(cb);
|
|
66
|
+
if (p.label) {
|
|
67
|
+
var cbLbl = document.createElement("span");
|
|
68
|
+
cbLbl.textContent = _escapeHtml(String(p.label));
|
|
69
|
+
cbRow.appendChild(cbLbl);
|
|
70
|
+
}
|
|
71
|
+
el.appendChild(cbRow);
|
|
72
|
+
} else if (inputType === "slider") {
|
|
73
|
+
var slider = document.createElement("input");
|
|
74
|
+
slider.type = "range";
|
|
75
|
+
if (p.min !== undefined) slider.min = String(p.min);
|
|
76
|
+
if (p.max !== undefined) slider.max = String(p.max);
|
|
77
|
+
if (p.step !== undefined) slider.step = String(p.step);
|
|
78
|
+
if (s.value !== undefined) slider.value = String(s.value);
|
|
79
|
+
slider.oninput = function() {
|
|
80
|
+
if (node.events && node.events.change) {
|
|
81
|
+
_fireAupEvent(node.id, "change", {});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
el.appendChild(slider);
|
|
85
|
+
} else if (inputType === "progress") {
|
|
86
|
+
var row = document.createElement("div");
|
|
87
|
+
row.className = "aup-progress-row";
|
|
88
|
+
var bar = document.createElement("div");
|
|
89
|
+
bar.className = "aup-progress";
|
|
90
|
+
var fill = document.createElement("div");
|
|
91
|
+
fill.className = "aup-progress-fill";
|
|
92
|
+
var pct = Math.max(0, Math.min(100, parseFloat(s.value) || 0));
|
|
93
|
+
fill.style.width = pct + "%";
|
|
94
|
+
if (p.intent) fill.setAttribute("data-intent", p.intent);
|
|
95
|
+
bar.appendChild(fill);
|
|
96
|
+
row.appendChild(bar);
|
|
97
|
+
if (p.showValue !== false) {
|
|
98
|
+
var lbl = document.createElement("span");
|
|
99
|
+
lbl.className = "aup-progress-label";
|
|
100
|
+
lbl.textContent = Math.round(pct) + "%";
|
|
101
|
+
row.appendChild(lbl);
|
|
102
|
+
}
|
|
103
|
+
el.appendChild(row);
|
|
104
|
+
} else if (inputType === "textarea") {
|
|
105
|
+
var ta = document.createElement("textarea");
|
|
106
|
+
ta.rows = p.rows || 3;
|
|
107
|
+
if (p.placeholder) ta.placeholder = String(p.placeholder);
|
|
108
|
+
if (s.value !== undefined) ta.value = String(s.value);
|
|
109
|
+
ta.oninput = function() {
|
|
110
|
+
if (node.events && node.events.change) {
|
|
111
|
+
_fireAupEvent(node.id, "change", {});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
el.appendChild(ta);
|
|
115
|
+
} else {
|
|
116
|
+
// text, password, date, etc.
|
|
117
|
+
var inp = document.createElement("input");
|
|
118
|
+
inp.type = inputType === "password" ? "password" : "text";
|
|
119
|
+
if (p.placeholder) inp.placeholder = String(p.placeholder);
|
|
120
|
+
if (s.value !== undefined) inp.value = String(s.value);
|
|
121
|
+
if (p.min !== undefined) inp.min = String(p.min);
|
|
122
|
+
if (p.max !== undefined) inp.max = String(p.max);
|
|
123
|
+
if (inputType === "date") inp.type = "date";
|
|
124
|
+
inp.oninput = function() {
|
|
125
|
+
if (node.events && node.events.change) {
|
|
126
|
+
_fireAupEvent(node.id, "change", {});
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
el.appendChild(inp);
|
|
130
|
+
}
|
|
131
|
+
return el;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
`;
|
|
135
|
+
|
|
136
|
+
//#endregion
|
|
137
|
+
exports.INPUT_JS = INPUT_JS;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
//#region src/web-page/renderers/input.ts
|
|
2
|
+
const INPUT_JS = `
|
|
3
|
+
function renderAupInput(node) {
|
|
4
|
+
var el = document.createElement("div");
|
|
5
|
+
el.className = "aup-input";
|
|
6
|
+
var p = node.props || {};
|
|
7
|
+
var s = node.state || {};
|
|
8
|
+
var inputType = p.type || p.variant || "text";
|
|
9
|
+
|
|
10
|
+
// Label
|
|
11
|
+
if (p.label) {
|
|
12
|
+
var lbl = document.createElement("label");
|
|
13
|
+
lbl.textContent = _escapeHtml(String(p.label));
|
|
14
|
+
el.appendChild(lbl);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (inputType === "select") {
|
|
18
|
+
var sel = document.createElement("select");
|
|
19
|
+
var opts = Array.isArray(p.options) ? p.options : [];
|
|
20
|
+
for (var i = 0; i < opts.length; i++) {
|
|
21
|
+
var opt = document.createElement("option");
|
|
22
|
+
var optItem = opts[i];
|
|
23
|
+
// Support both string options and {label, value} objects
|
|
24
|
+
var optVal = typeof optItem === "object" && optItem !== null ? (optItem.value || optItem.label || "") : String(optItem);
|
|
25
|
+
var optLabel = typeof optItem === "object" && optItem !== null ? (optItem.label || optItem.value || "") : String(optItem);
|
|
26
|
+
opt.value = String(optVal);
|
|
27
|
+
opt.textContent = _escapeHtml(String(optLabel));
|
|
28
|
+
if (String(p.value) === String(optVal) || String(s.value) === String(optVal)) opt.selected = true;
|
|
29
|
+
sel.appendChild(opt);
|
|
30
|
+
}
|
|
31
|
+
sel.onchange = function() {
|
|
32
|
+
if (node.events && node.events.change) {
|
|
33
|
+
_fireAupEvent(node.id, "change", { value: sel.value });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
el.appendChild(sel);
|
|
37
|
+
} else if (inputType === "toggle") {
|
|
38
|
+
var toggleRow = document.createElement("div");
|
|
39
|
+
toggleRow.className = "aup-toggle";
|
|
40
|
+
var track = document.createElement("div");
|
|
41
|
+
track.className = "aup-toggle-track" + (s.value ? " on" : "");
|
|
42
|
+
var thumb = document.createElement("div");
|
|
43
|
+
thumb.className = "aup-toggle-thumb";
|
|
44
|
+
track.appendChild(thumb);
|
|
45
|
+
toggleRow.appendChild(track);
|
|
46
|
+
toggleRow.onclick = function() {
|
|
47
|
+
track.classList.toggle("on");
|
|
48
|
+
if (node.events && node.events.change) {
|
|
49
|
+
_fireAupEvent(node.id, "change", {});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
el.appendChild(toggleRow);
|
|
53
|
+
} else if (inputType === "checkbox") {
|
|
54
|
+
var cbRow = document.createElement("div");
|
|
55
|
+
cbRow.className = "aup-checkbox-row";
|
|
56
|
+
var cb = document.createElement("input");
|
|
57
|
+
cb.type = "checkbox";
|
|
58
|
+
cb.checked = !!s.value;
|
|
59
|
+
cb.onchange = function() {
|
|
60
|
+
if (node.events && node.events.change) {
|
|
61
|
+
_fireAupEvent(node.id, "change", {});
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
cbRow.appendChild(cb);
|
|
65
|
+
if (p.label) {
|
|
66
|
+
var cbLbl = document.createElement("span");
|
|
67
|
+
cbLbl.textContent = _escapeHtml(String(p.label));
|
|
68
|
+
cbRow.appendChild(cbLbl);
|
|
69
|
+
}
|
|
70
|
+
el.appendChild(cbRow);
|
|
71
|
+
} else if (inputType === "slider") {
|
|
72
|
+
var slider = document.createElement("input");
|
|
73
|
+
slider.type = "range";
|
|
74
|
+
if (p.min !== undefined) slider.min = String(p.min);
|
|
75
|
+
if (p.max !== undefined) slider.max = String(p.max);
|
|
76
|
+
if (p.step !== undefined) slider.step = String(p.step);
|
|
77
|
+
if (s.value !== undefined) slider.value = String(s.value);
|
|
78
|
+
slider.oninput = function() {
|
|
79
|
+
if (node.events && node.events.change) {
|
|
80
|
+
_fireAupEvent(node.id, "change", {});
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
el.appendChild(slider);
|
|
84
|
+
} else if (inputType === "progress") {
|
|
85
|
+
var row = document.createElement("div");
|
|
86
|
+
row.className = "aup-progress-row";
|
|
87
|
+
var bar = document.createElement("div");
|
|
88
|
+
bar.className = "aup-progress";
|
|
89
|
+
var fill = document.createElement("div");
|
|
90
|
+
fill.className = "aup-progress-fill";
|
|
91
|
+
var pct = Math.max(0, Math.min(100, parseFloat(s.value) || 0));
|
|
92
|
+
fill.style.width = pct + "%";
|
|
93
|
+
if (p.intent) fill.setAttribute("data-intent", p.intent);
|
|
94
|
+
bar.appendChild(fill);
|
|
95
|
+
row.appendChild(bar);
|
|
96
|
+
if (p.showValue !== false) {
|
|
97
|
+
var lbl = document.createElement("span");
|
|
98
|
+
lbl.className = "aup-progress-label";
|
|
99
|
+
lbl.textContent = Math.round(pct) + "%";
|
|
100
|
+
row.appendChild(lbl);
|
|
101
|
+
}
|
|
102
|
+
el.appendChild(row);
|
|
103
|
+
} else if (inputType === "textarea") {
|
|
104
|
+
var ta = document.createElement("textarea");
|
|
105
|
+
ta.rows = p.rows || 3;
|
|
106
|
+
if (p.placeholder) ta.placeholder = String(p.placeholder);
|
|
107
|
+
if (s.value !== undefined) ta.value = String(s.value);
|
|
108
|
+
ta.oninput = function() {
|
|
109
|
+
if (node.events && node.events.change) {
|
|
110
|
+
_fireAupEvent(node.id, "change", {});
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
el.appendChild(ta);
|
|
114
|
+
} else {
|
|
115
|
+
// text, password, date, etc.
|
|
116
|
+
var inp = document.createElement("input");
|
|
117
|
+
inp.type = inputType === "password" ? "password" : "text";
|
|
118
|
+
if (p.placeholder) inp.placeholder = String(p.placeholder);
|
|
119
|
+
if (s.value !== undefined) inp.value = String(s.value);
|
|
120
|
+
if (p.min !== undefined) inp.min = String(p.min);
|
|
121
|
+
if (p.max !== undefined) inp.max = String(p.max);
|
|
122
|
+
if (inputType === "date") inp.type = "date";
|
|
123
|
+
inp.oninput = function() {
|
|
124
|
+
if (node.events && node.events.change) {
|
|
125
|
+
_fireAupEvent(node.id, "change", {});
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
el.appendChild(inp);
|
|
129
|
+
}
|
|
130
|
+
return el;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
`;
|
|
134
|
+
|
|
135
|
+
//#endregion
|
|
136
|
+
export { INPUT_JS };
|
|
137
|
+
//# sourceMappingURL=input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.mjs","names":[],"sources":["../../../src/web-page/renderers/input.ts"],"sourcesContent":["export const INPUT_JS = `\n function renderAupInput(node) {\n var el = document.createElement(\"div\");\n el.className = \"aup-input\";\n var p = node.props || {};\n var s = node.state || {};\n var inputType = p.type || p.variant || \"text\";\n\n // Label\n if (p.label) {\n var lbl = document.createElement(\"label\");\n lbl.textContent = _escapeHtml(String(p.label));\n el.appendChild(lbl);\n }\n\n if (inputType === \"select\") {\n var sel = document.createElement(\"select\");\n var opts = Array.isArray(p.options) ? p.options : [];\n for (var i = 0; i < opts.length; i++) {\n var opt = document.createElement(\"option\");\n var optItem = opts[i];\n // Support both string options and {label, value} objects\n var optVal = typeof optItem === \"object\" && optItem !== null ? (optItem.value || optItem.label || \"\") : String(optItem);\n var optLabel = typeof optItem === \"object\" && optItem !== null ? (optItem.label || optItem.value || \"\") : String(optItem);\n opt.value = String(optVal);\n opt.textContent = _escapeHtml(String(optLabel));\n if (String(p.value) === String(optVal) || String(s.value) === String(optVal)) opt.selected = true;\n sel.appendChild(opt);\n }\n sel.onchange = function() {\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", { value: sel.value });\n }\n };\n el.appendChild(sel);\n } else if (inputType === \"toggle\") {\n var toggleRow = document.createElement(\"div\");\n toggleRow.className = \"aup-toggle\";\n var track = document.createElement(\"div\");\n track.className = \"aup-toggle-track\" + (s.value ? \" on\" : \"\");\n var thumb = document.createElement(\"div\");\n thumb.className = \"aup-toggle-thumb\";\n track.appendChild(thumb);\n toggleRow.appendChild(track);\n toggleRow.onclick = function() {\n track.classList.toggle(\"on\");\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", {});\n }\n };\n el.appendChild(toggleRow);\n } else if (inputType === \"checkbox\") {\n var cbRow = document.createElement(\"div\");\n cbRow.className = \"aup-checkbox-row\";\n var cb = document.createElement(\"input\");\n cb.type = \"checkbox\";\n cb.checked = !!s.value;\n cb.onchange = function() {\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", {});\n }\n };\n cbRow.appendChild(cb);\n if (p.label) {\n var cbLbl = document.createElement(\"span\");\n cbLbl.textContent = _escapeHtml(String(p.label));\n cbRow.appendChild(cbLbl);\n }\n el.appendChild(cbRow);\n } else if (inputType === \"slider\") {\n var slider = document.createElement(\"input\");\n slider.type = \"range\";\n if (p.min !== undefined) slider.min = String(p.min);\n if (p.max !== undefined) slider.max = String(p.max);\n if (p.step !== undefined) slider.step = String(p.step);\n if (s.value !== undefined) slider.value = String(s.value);\n slider.oninput = function() {\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", {});\n }\n };\n el.appendChild(slider);\n } else if (inputType === \"progress\") {\n var row = document.createElement(\"div\");\n row.className = \"aup-progress-row\";\n var bar = document.createElement(\"div\");\n bar.className = \"aup-progress\";\n var fill = document.createElement(\"div\");\n fill.className = \"aup-progress-fill\";\n var pct = Math.max(0, Math.min(100, parseFloat(s.value) || 0));\n fill.style.width = pct + \"%\";\n if (p.intent) fill.setAttribute(\"data-intent\", p.intent);\n bar.appendChild(fill);\n row.appendChild(bar);\n if (p.showValue !== false) {\n var lbl = document.createElement(\"span\");\n lbl.className = \"aup-progress-label\";\n lbl.textContent = Math.round(pct) + \"%\";\n row.appendChild(lbl);\n }\n el.appendChild(row);\n } else if (inputType === \"textarea\") {\n var ta = document.createElement(\"textarea\");\n ta.rows = p.rows || 3;\n if (p.placeholder) ta.placeholder = String(p.placeholder);\n if (s.value !== undefined) ta.value = String(s.value);\n ta.oninput = function() {\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", {});\n }\n };\n el.appendChild(ta);\n } else {\n // text, password, date, etc.\n var inp = document.createElement(\"input\");\n inp.type = inputType === \"password\" ? \"password\" : \"text\";\n if (p.placeholder) inp.placeholder = String(p.placeholder);\n if (s.value !== undefined) inp.value = String(s.value);\n if (p.min !== undefined) inp.min = String(p.min);\n if (p.max !== undefined) inp.max = String(p.max);\n if (inputType === \"date\") inp.type = \"date\";\n inp.oninput = function() {\n if (node.events && node.events.change) {\n _fireAupEvent(node.id, \"change\", {});\n }\n };\n el.appendChild(inp);\n }\n return el;\n }\n\n`;\n"],"mappings":";AAAA,MAAa,WAAW"}
|