UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

96 lines (95 loc) 3.04 kB
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); require("./kendo.core-kmRaf_Lg.js"); require("./kendo.floatinglabel.js"); //#region ../src/kendo.label.js const __meta__ = { id: "label", name: "Label", category: "framework", description: "Abstraction of label rendering for inputs", depends: ["core", "floatinglabel"], hidden: true }; const kendo = window.kendo; const $ = kendo.jQuery; const Widget = kendo.ui.Widget; const isFunction = kendo.isFunction; const LABELCLASSES = "k-label k-input-label"; const FLOATINGLABELCLASS = "k-floating-label"; var Label = Widget.extend({ options: { name: "Label", widget: null }, init: function(element, options) { var that = this; element = element || $("<label></label>"); Widget.fn.init.call(that, element, options); options = $.extend(true, {}, options); that.widget = options.widget; if (options.floating) that._floatingLabel(); that._label(); Widget.fn.endInit.call(that); }, destroy: function() { if (this.floatingLabel) this.floatingLabel.destroy(); Widget.fn.destroy.call(this); }, _unwrapFloating: function() { var that = this; if (that.floatingLabel) { that.floatingLabel.destroy(); that.widget.wrapper.unwrap(that._floatingLabelContainer); } }, setOptions: function(options) { var that = this; var removeFloating = false; if (typeof options === "string" || $.isPlainObject(options) && options.floating === false) removeFloating = true; options = $.isPlainObject(options) ? options : { content: options }; Widget.fn.setOptions.call(that, options); if (removeFloating && that.floatingLabel) { that._unwrapFloating(); that.floatingLabel.destroy(); delete that.floatingLabel; } else if (options.floating === true && !that.floatingLabel) { that.element.remove(); that._floatingLabel(); } that._label(); }, _label: function() { var that = this; var element = that.widget.element; var options = that.options; var id = element.attr("id"); var labelText = options.content; var floating = options.floating || false; if (isFunction(labelText)) labelText = labelText.call(that); if (!labelText) labelText = ""; if (!id) { id = options.name + "_" + kendo.guid(); element.attr("id", id); } that.element.addClass(floating ? FLOATINGLABELCLASS : LABELCLASSES).attr("for", id).text(labelText)[floating ? "insertAfter" : "insertBefore"](that.options.beforeElm || that.widget.wrapper); if (that.floatingLabel) that.floatingLabel.refresh(); }, _floatingLabel: function() { var that = this; var options = $.extend({}, that.options); var floating; delete options.name; floating = options.floating || false; if (floating) { that._floatingLabelContainer = that.widget.wrapper.wrap("<span></span>").parent(); that.floatingLabel = new kendo.ui.FloatingLabel(that._floatingLabelContainer, $.extend({}, options)); } } }); kendo.ui.plugin(Label); //#endregion exports.__meta__ = __meta__; exports.default = kendo;