@jswf/core
Version:
JavaScript Window Framework
142 lines • 6.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ColorPickerView_1 = require("../ColorPickerView");
var Libs_1 = require("../Libs");
var PanelControl = /** @class */ (function () {
function PanelControl() {
}
PanelControl.setControlValue = function (target, name, value) {
var node = target.querySelector("[name=\"" + name + "\"]");
if (!node)
return;
if (node instanceof HTMLInputElement)
if (node.type === "checkbox")
node.checked = !!value;
node.value = value.toString();
};
PanelControl.getControlValue = function (target, name) {
var node = target.querySelector("[name=\"" + name + "\"]");
if (!node)
return null;
if (node instanceof HTMLInputElement)
if (node.type === "checkbox")
return node.checked;
return node.value;
};
PanelControl.createControl = function (target, param) {
switch (param.type) {
default: {
var button_1 = document.createElement("button");
button_1.name = param.name || "";
button_1.innerText = param.label;
button_1.addEventListener("click", function () {
if (param.event)
param.event(button_1);
});
target.appendChild(button_1);
break;
}
case "text": {
var area = document.createElement("label");
area.dataset.editControl = "";
target.appendChild(area);
var text = document.createTextNode(param.label);
area.appendChild(text);
break;
}
case "check":
{
var area = document.createElement("label");
area.dataset.editControl = "";
target.appendChild(area);
var text = document.createTextNode(param.label);
area.appendChild(text);
var check = document.createElement("input");
check.name = param.name || "";
check.type = "checkbox";
if (param.value)
check.checked = !!param.value;
area.appendChild(check);
}
break;
case "color":
{
var button = document.createElement("button");
button.name = param.name || "";
button.innerText = param.label;
target.appendChild(button);
var colorArea_1 = document.createElement("div");
colorArea_1.style.margin = "0.2em";
colorArea_1.style.width = "1.5em";
colorArea_1.style.height = "1.5em";
colorArea_1.style.userSelect = "false";
colorArea_1.style.border = "solid 1px";
target.appendChild(colorArea_1);
var value_1 = param.value;
if (!value_1)
value_1 = { r: 255, g: 255, b: 255 };
var setColor_1 = function (color) {
colorArea_1.style.background = Libs_1.sprintf("rgb(%d,%d,%d)", color.r, color.g, color.b);
};
button.addEventListener("click", function () {
var colorPicker = new ColorPickerView_1.ColorPickerWindow();
colorPicker.setPos();
colorPicker.addEventListener("color", function (color) {
setColor_1(color);
value_1 = color;
});
});
colorArea_1.addEventListener("click", function (e) {
if (param.event)
param.event(colorArea_1, value_1);
e.preventDefault();
});
setColor_1(value_1);
}
break;
case "input": {
var area = document.createElement("label");
area.dataset.editControl = "";
target.appendChild(area);
var text = document.createTextNode(param.label);
area.appendChild(text);
var input_1 = document.createElement("input");
input_1.name = param.name || "";
if (typeof param.value === "string")
input_1.value = param.value;
if (param.size)
input_1.size = param.size;
area.appendChild(input_1);
input_1.addEventListener("click", function () {
if (param.event)
param.event(input_1);
});
break;
}
case "select": {
var select_1 = document.createElement("select");
select_1.name = param.name || "";
//area.dataset.editControl = "";
target.appendChild(select_1);
var options = param.option;
if (options) {
for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
var o = options_1[_i];
var option = document.createElement("option");
option.label = o.label;
option.innerText = o.value || o.label;
select_1.appendChild(option);
}
}
select_1.addEventListener("change", function () {
if (param.event)
param.event(select_1);
});
break;
}
}
};
return PanelControl;
}());
exports.PanelControl = PanelControl;
//# sourceMappingURL=PanelControl.js.map