slackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangouts
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
4.0 KiB
109 lines
4.0 KiB
/** |
|
* Produces a standalone `<label />` element which can be inserted into a form and be associated with a field |
|
* in that form using the {@link #forId} property. |
|
* |
|
* **NOTE:** in most cases it will be more appropriate to use the {@link Ext.form.Labelable#fieldLabel fieldLabel} |
|
* and associated config properties ({@link Ext.form.Labelable#labelAlign}, {@link Ext.form.Labelable#labelWidth}, |
|
* etc.) in field components themselves, as that allows labels to be uniformly sized throughout the form. |
|
* Ext.form.Label should only be used when your layout can not be achieved with the standard |
|
* {@link Ext.form.Labelable field layout}. |
|
* |
|
* You will likely be associating the label with a field component that extends {@link Ext.form.field.Base}, so |
|
* you should make sure the {@link #forId} is set to the same value as the {@link Ext.form.field.Base#inputId inputId} |
|
* of that field. |
|
* |
|
* The label's text can be set using either the {@link #text} or {@link #html} configuration properties; the |
|
* difference between the two is that the former will automatically escape HTML characters when rendering, while |
|
* the latter will not. |
|
* |
|
* # Example |
|
* |
|
* This example creates a Label after its associated Text field, an arrangement that cannot currently |
|
* be achieved using the standard Field layout's labelAlign. |
|
* |
|
* @example |
|
* Ext.create('Ext.form.Panel', { |
|
* title: 'Field with Label', |
|
* width: 400, |
|
* bodyPadding: 10, |
|
* renderTo: Ext.getBody(), |
|
* layout: { |
|
* type: 'hbox', |
|
* align: 'middle' |
|
* }, |
|
* items: [{ |
|
* xtype: 'textfield', |
|
* hideLabel: true, |
|
* flex: 1 |
|
* }, { |
|
* xtype: 'label', |
|
* forId: 'myFieldId', |
|
* text: 'My Awesome Field', |
|
* margin: '0 0 0 10' |
|
* }] |
|
* }); |
|
*/ |
|
Ext.define('Ext.form.Label', { |
|
extend:'Ext.Component', |
|
alias: 'widget.label', |
|
requires: ['Ext.util.Format'], |
|
|
|
autoEl: 'label', |
|
|
|
/** |
|
* @cfg {String} [text=''] |
|
* The plain text to display within the label. If you need to include HTML |
|
* tags within the label's innerHTML, use the {@link #html} config instead. |
|
*/ |
|
/** |
|
* @cfg {String} forId |
|
* The id of the input element to which this label will be bound via the standard HTML 'for' |
|
* attribute. If not specified, the attribute will not be added to the label. In most cases you will be |
|
* associating the label with a {@link Ext.form.field.Base} component, so you should make sure this matches |
|
* the {@link Ext.form.field.Base#inputId inputId} of that field. |
|
*/ |
|
/** |
|
* @cfg {String} [html=''] |
|
* An HTML fragment that will be used as the label's innerHTML. |
|
* Note that if {@link #text} is specified it will take precedence and this value will be ignored. |
|
*/ |
|
|
|
maskOnDisable: false, |
|
|
|
getElConfig: function(){ |
|
var me = this; |
|
|
|
me.html = me.text ? Ext.util.Format.htmlEncode(me.text) : (me.html || ''); |
|
return Ext.apply(me.callParent(), { |
|
htmlFor: me.forId || '' |
|
}); |
|
}, |
|
|
|
/** |
|
* Updates the label's innerHTML with the specified string. |
|
* @param {String} text The new label text |
|
* @param {Boolean} [encode=true] False to skip HTML-encoding the text when rendering it |
|
* to the label. This might be useful if you want to include tags in the label's innerHTML rather |
|
* than rendering them as string literals per the default logic. |
|
* @return {Ext.form.Label} this |
|
*/ |
|
setText : function(text, encode){ |
|
var me = this; |
|
|
|
encode = encode !== false; |
|
if(encode) { |
|
me.text = text; |
|
delete me.html; |
|
} else { |
|
me.html = text; |
|
delete me.text; |
|
} |
|
|
|
if(me.rendered){ |
|
me.el.dom.innerHTML = encode !== false ? Ext.util.Format.htmlEncode(text) : text; |
|
me.updateLayout(); |
|
} |
|
return me; |
|
} |
|
}); |
|
|
|
|