/* global $ _*/ // eslint-disable-next-line no-unused-vars var newLabel = { title: "label", icon: "label.png", cache: { indent: [] }, design: function () { return $(""); }, applying: function () { return this.design(); }, view: function () { return this.design(); }, getValue: function () { return this.options.value; }, className: { container: "formbuilder-control-label", vertical: "formbuilder-control-label-vertical", space: "formbuilder-control-label-space" }, options: { label: "", value: "中文标签\nEnglish", className: "" }, property: { height: { hidden: false }, value: { text: "value", type: "textarea", after: ["font-size", "text-align", "text-vertical-align", "width", "height", "line-height", "indent"], update: function (value, position, options) { var items = value.split("\n"), html = [], textV = options["word-vertical"], self = this; this.cache.indent = []; _.each(items, function (item) { var trimString, tempString, signString = "[--]", splitArray, leftTrim, rightTrim; if (textV) { item = _.map(item.split(""), function (char) { return char + "
"; }); item = item.join(""); } //计算缩进量 trimString = $.trim(item); tempString = item.replace(trimString, signString); splitArray = tempString.split(signString); leftTrim = splitArray[0] ? splitArray[0].length : 0; rightTrim = splitArray[1] ? splitArray[1].length : 0; self.cache.indent.push({ left: leftTrim, right: rightTrim }); item = tempString.replace(/ /g, "") .replace(signString, trimString); html.push("

" + item + "

"); }); this.elem.html(html.join("")); textV ? this.elem.addClass(this.className.vertical) : this.elem.removeClass(this.className.vertical); } }, "text-vertical-align": { text: "text-vertical-align", type: "buttons", order: 2004, updateInLoad: true, source: [ { name: "top", text: "vertical-align-top", image: "text-align-top.png", selected: true }, { name: "middle", text: "vertical-align-middle", image: "text-align-middle.png", selected: false }, { name: "bottom", text: "vertical-align-bottom", image: "text-align-bottom.png", selected: false } ], update: function (value) { this.container.find("p").css("vertical-align", value); } }, "word-vertical": { text: "word-vertical", type: "bool", after: ["value"], updateInLoad: false, source: { text: "word-vertical", image: "word-vertical.png" }, update: function (value, position, options) { } }, "font-size": { text: "font-size", order: 2001, type: "combox", after: "vertical-align", updateInLoad: true, source: $.formbuilder["FONT-SIZE"], conver: function (value) { value = value || ""; return value; }, update: function (value) { this.elem.find("p").css("font-size", value + "px"); } }, "line-height": { text: "line-height", type: "text", updateInLoad: true, order: 2006, update: function (value, position, options) { if (value) { this.elem.find("p").css("line-height", value + "px"); } } }, "indent": { text: "indent", type: "text", updateInLoad: true, order: 2007, conver: function (value) { if (isNaN(value) === false) { return Number(value); } return value; }, update: function (value, position, options) { if (!value) { return; } var self = this, $space = this.elem.find("." + this.className.space), $p = this.elem.find("p"); $p.css({ "text-align": "left", "padding-left": "0" }); $space.css({ "margin-left": 0, "text-align": "left" }); if (_.isNumber(value)) { $space.css("margin-left", value + "px"); } else if (value === "auto") { this.container.width("100%"); this.elem.width("100%"); //强制调整容器宽度为100% this.options.width = "100%"; $p.each(function (i) { var indent; indent = self.cache.indent[i]; if (indent) { if (indent.left > 0 && indent.right === 0) { $(this).css("text-align", "right"); } else if (indent.left > 0 && indent.right > 0) { $(this).css("padding-left", Math.floor(indent.left / (indent.left + indent.right) * 100) + "%"); } } }); } } } } };