use static method
void
use()
Register to use Collapse component.
Implementation
static void use() {
if (_registered) return;
_registered = true;
$document().on('click.bs.collapse.data-api', (QueryEvent e) {
Element elem = e.currentTarget as Element;
var targetStr = elem.attributes['data-target'];
if (targetStr == null) {
e.preventDefault();
final href = elem.attributes['href'];
if (href != null)
targetStr = href.replaceAll(RegExp(r'.*(?=#[^\s]+$)'), ''); //strip for ie7
}
final $target = $(targetStr),
target = $target[0],
collapse = $target.data.get(_name) as Collapse?,
parent = elem.attributes['data-parent'],
$parent = $(parent);
if (collapse == null || !collapse.transitioning) {
if (parent != null) {
final collapses = $parent.find(
'[data-toggle=collapse][data-parent="$parent"]');
for (final e in collapses) {
if (e == elem) continue;
e.classes.add('collapsed');
}
}
elem.classes.toggle('collapsed', target.classes.contains('in'));
}
if (collapse != null) {
collapse.toggle();
} else {
final parentAtr = elem.attributes['data-parent'],
toggleAtr = elem.attributes['data-toggle'];
Collapse(target, toggle: toggleAtr != null ? true: null, parent: parentAtr);
}
}, selector: '[data-toggle=collapse]');
}