-
-
Notifications
You must be signed in to change notification settings - Fork 60
/
Copy pathcomponent.js
44 lines (39 loc) · 1.18 KB
/
component.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
COMPONENT('checkbox', function(self, config, cls) {
self.nocompile && self.nocompile();
self.validate = function(value) {
return (config.disabled || !config.required) ? true : (value === true || value === 'true' || value === 'on');
};
self.configure = function(key, value, init) {
if (init)
return;
switch (key) {
case 'label':
self.find('span').html(value);
break;
case 'required':
self.find('span').tclass(cls + '-label-required', value);
break;
case 'disabled':
self.tclass('ui-disabled', value);
break;
case 'checkicon':
self.find('i').rclass2('ti-').aclass('ti-' + value);
break;
}
};
self.make = function() {
self.aclass(cls);
self.html('<span><i class="ti ti-{2}"></i></span><label{1}>{0}</label>'.format(config.label || self.html(), config.required ? (' class="' + cls + '-label-required"') : '', config.checkicon || 'check'));
config.disabled && self.aclass('ui-disabled');
self.event('click', function() {
if (!config.disabled) {
self.dirty(false);
self.getter(!self.get());
}
});
};
self.setter = function(value) {
var is = config.reverse ? !value : !!value;
self.tclass(cls + '-checked', is);
};
});