| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
- // IT'S ALL JUST JUNK FOR OUR DOCS!
- // ++++++++++++++++++++++++++++++++++++++++++
- /*!
- * JavaScript for Bootstrap's docs (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under the Creative Commons Attribution 3.0 Unported License. For
- * details, see https://creativecommons.org/licenses/by/3.0/.
- */
- /* global ZeroClipboard, anchors */
- !function ($) {
- 'use strict';
- $(function () {
- // Scrollspy
- var $window = $(window)
- var $body = $(document.body)
- $body.scrollspy({
- target: '.bs-docs-sidebar'
- })
- $window.on('load', function () {
- $body.scrollspy('refresh')
- })
- // Kill links
- $('.bs-docs-container [href="#"]').click(function (e) {
- e.preventDefault()
- })
- // Sidenav affixing
- setTimeout(function () {
- var $sideBar = $('.bs-docs-sidebar')
- $sideBar.affix({
- offset: {
- top: function () {
- var offsetTop = $sideBar.offset().top
- var sideBarMargin = parseInt($sideBar.children(0).css('margin-top'), 10)
- var navOuterHeight = $('.bs-docs-nav').height()
- return (this.top = offsetTop - navOuterHeight - sideBarMargin)
- },
- bottom: function () {
- return (this.bottom = $('.bs-docs-footer').outerHeight(true))
- }
- }
- })
- }, 100)
- setTimeout(function () {
- $('.bs-top').affix()
- }, 100)
- // Theme toggler
- ;(function () {
- var $stylesheetLink = $('#bs-theme-stylesheet')
- var $themeBtn = $('.bs-docs-theme-toggle')
- var activateTheme = function () {
- $stylesheetLink.attr('href', $stylesheetLink.attr('data-href'))
- $themeBtn.text('Disable theme preview')
- localStorage.setItem('previewTheme', true)
- }
- if (localStorage.getItem('previewTheme')) {
- activateTheme()
- }
- $themeBtn.click(function () {
- var href = $stylesheetLink.attr('href')
- if (!href || href.indexOf('data') === 0) {
- activateTheme()
- } else {
- $stylesheetLink.attr('href', '')
- $themeBtn.text('Preview theme')
- localStorage.removeItem('previewTheme')
- }
- })
- })();
- // Tooltip and popover demos
- $('.tooltip-demo').tooltip({
- selector: '[data-toggle="tooltip"]',
- container: 'body'
- })
- $('.popover-demo').popover({
- selector: '[data-toggle="popover"]',
- container: 'body'
- })
- // Demos within modals
- $('.tooltip-test').tooltip()
- $('.popover-test').popover()
- // Popover demos
- $('.bs-docs-popover').popover()
- // Button state demo
- $('#loading-example-btn').on('click', function () {
- var $btn = $(this)
- $btn.button('loading')
- setTimeout(function () {
- $btn.button('reset')
- }, 3000)
- })
- // Modal relatedTarget demo
- $('#exampleModal').on('show.bs.modal', function (event) {
- var $button = $(event.relatedTarget) // Button that triggered the modal
- var recipient = $button.data('whatever') // Extract info from data-* attributes
- // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
- // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
- var $modal = $(this)
- $modal.find('.modal-title').text('New message to ' + recipient)
- $modal.find('.modal-body input').val(recipient)
- })
- // Activate animated progress bar
- $('.bs-docs-activate-animated-progressbar').on('click', function () {
- $(this).siblings('.progress').find('.progress-bar-striped').toggleClass('active')
- })
- // Config ZeroClipboard
- ZeroClipboard.config({
- moviePath: '/assets/flash/ZeroClipboard.swf',
- hoverClass: 'btn-clipboard-hover'
- })
- // Insert copy to clipboard button before .highlight
- $('.highlight').each(function () {
- var btnHtml = '<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>'
- $(this).before(btnHtml)
- })
- var zeroClipboard = new ZeroClipboard($('.btn-clipboard'))
- var $htmlBridge = $('#global-zeroclipboard-html-bridge')
- // Handlers for ZeroClipboard
- zeroClipboard.on('load', function () {
- $htmlBridge
- .data('placement', 'top')
- .attr('title', 'Copy to clipboard')
- .tooltip()
- // Copy to clipboard
- zeroClipboard.on('dataRequested', function (client) {
- var highlight = $(this).parent().nextAll('.highlight').first()
- client.setText(highlight.text())
- })
- // Notify copy success and reset tooltip title
- zeroClipboard.on('complete', function () {
- $htmlBridge
- .attr('title', 'Copied!')
- .tooltip('fixTitle')
- .tooltip('show')
- .attr('title', 'Copy to clipboard')
- .tooltip('fixTitle')
- })
- })
- // Hide copy button when no Flash is found
- // or wrong Flash version is present
- zeroClipboard.on('noflash wrongflash', function () {
- $('.zero-clipboard').remove()
- ZeroClipboard.destroy()
- })
- })
- }(jQuery)
- ;(function () {
- 'use strict';
- anchors.options.placement = 'left';
- anchors.add('.bs-docs-section > h1, .bs-docs-section > h2, .bs-docs-section > h3, .bs-docs-section > h4, .bs-docs-section > h5')
- })();
|