UNPKG

@jswf/core

Version:

JavaScript Window Framework

142 lines 6.21 kB
"use strict"; 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