123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- /* ========================================================
- * bootstrap-tab.js v2.0.4
- * http://twitter.github.com/bootstrap/javascript.html#tabs
- * ========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ======================================================== */
- define([
- "jquery"
- ], function(jQuery){
- !function ($) {
- "use strict"; // jshint ;_;
- /* TAB CLASS DEFINITION
- * ==================== */
- var Tab = function ( element ) {
- this.element = $(element)
- };
- Tab.prototype = {
- constructor: Tab
- , show: function () {
- var $this = this.element
- , $ul = $this.closest('ul:not(.dropdown-menu)')
- , selector = $this.attr('data-target')
- , previous
- , $target
- , e;
- if (!selector) {
- selector = $this.attr('href');
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7
- }
- if ( $this.parent('li').hasClass('active') ) return;
- previous = $ul.find('.active a').last()[0];
- e = $.Event('show', {
- relatedTarget: previous
- });
- $this.trigger(e);
- if (e.isDefaultPrevented()) return;
- $target = $(selector);
- this.activate($this.parent('li'), $ul);
- this.activate($target, $target.parent(), function () {
- $this.trigger({
- type: 'shown'
- , relatedTarget: previous
- })
- })
- }
- , activate: function ( element, container, callback) {
- var $active = container.find('> .active')
- , transition = callback
- && $.support.transition
- && $active.hasClass('fade');
- function next() {
- $active
- .removeClass('active')
- .find('> .dropdown-menu > .active')
- .removeClass('active');
- element.addClass('active');
- if (transition) {
- element[0].offsetWidth; // reflow for transition
- element.addClass('in');
- } else {
- element.removeClass('fade')
- }
- if ( element.parent('.dropdown-menu') ) {
- element.closest('li.dropdown').addClass('active')
- }
- callback && callback()
- }
- transition ?
- $active.one($.support.transition.end, next) :
- next();
- $active.removeClass('in')
- }
- };
- /* TAB PLUGIN DEFINITION
- * ===================== */
- $.fn.tab = function ( option ) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('tab');
- if (!data) $this.data('tab', (data = new Tab(this)));
- if (typeof option == 'string') data[option]()
- })
- };
- $.fn.tab.Constructor = Tab;
- /* TAB DATA-API
- * ============ */
- $(function () {
- $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
- e.preventDefault();
- $(this).tab('show')
- })
- })
- }(jQuery);
- /* =============================================================
- * bootstrap-collapse.js v2.0.4
- * http://twitter.github.com/bootstrap/javascript.html#collapse
- * =============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
- !function ($) {
- "use strict"; // jshint ;_;
- /* COLLAPSE PUBLIC CLASS DEFINITION
- * ================================ */
- var Collapse = function (element, options) {
- this.$element = $(element);
- this.options = $.extend({}, $.fn.collapse.defaults, options);
- if (this.options.parent) {
- this.$parent = $(this.options.parent)
- }
- this.options.toggle && this.toggle()
- };
- Collapse.prototype = {
- constructor: Collapse
- , dimension: function () {
- var hasWidth = this.$element.hasClass('width');
- return hasWidth ? 'width' : 'height'
- }
- , show: function () {
- var dimension
- , scroll
- , actives
- , hasData;
- if (this.transitioning) return;
- dimension = this.dimension();
- scroll = $.camelCase(['scroll', dimension].join('-'));
- actives = this.$parent && this.$parent.find('> .accordion-group > .in');
- if (actives && actives.length) {
- hasData = actives.data('collapse');
- if (hasData && hasData.transitioning) return;
- actives.collapse('hide');
- hasData || actives.data('collapse', null)
- }
- this.$element[dimension](0);
- this.transition('addClass', $.Event('show'), 'shown');
- this.$element[dimension](this.$element[0][scroll]);
- }
- , hide: function () {
- var dimension;
- if (this.transitioning) return;
- dimension = this.dimension();
- this.reset(this.$element[dimension]());
- this.transition('removeClass', $.Event('hide'), 'hidden');
- this.$element[dimension](0)
- }
- , reset: function (size) {
- var dimension = this.dimension();
- this.$element
- .removeClass('collapse')
- [dimension](size || 'auto')
- [0].offsetWidth;
- this.$element[size !== null ? 'addClass' : 'removeClass']('collapse');
- return this
- }
- , transition: function (method, startEvent, completeEvent) {
- var that = this
- , complete = function () {
- if (startEvent.type == 'show') that.reset();
- that.transitioning = 0;
- that.$element.trigger(completeEvent)
- };
- this.$element.trigger(startEvent);
- if (startEvent.isDefaultPrevented()) return;
- this.transitioning = 1;
- this.$element[method]('in');
- $.support.transition && this.$element.hasClass('collapse') ?
- this.$element.one($.support.transition.end, complete) :
- complete()
- }
- , toggle: function () {
- this[this.$element.hasClass('in') ? 'hide' : 'show']();
- }
- };
- /* COLLAPSIBLE PLUGIN DEFINITION
- * ============================== */
- $.fn.collapse = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('collapse')
- , options = typeof option == 'object' && option;
- if (!data) $this.data('collapse', (data = new Collapse(this, options)));
- if (typeof option == 'string') data[option]()
- })
- };
- $.fn.collapse.defaults = {
- toggle: true
- };
- $.fn.collapse.Constructor = Collapse;
- /* COLLAPSIBLE DATA-API
- * ==================== */
- $(function () {
- $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
- var $this = $(this), href
- , target = $this.attr('data-target')
- || e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
- , option = $(target).data('collapse') ? 'toggle' : $this.data();
- $(target).collapse(option);
- $(this).toggleClass('active');
- })
- })
- }(jQuery);
- });
|