PageSourceSearch

https://www.lifesdriverslicense.com/scripts/modal.js

js lifesdriverslicense.com collected 2026-10-02 15:29:39 UTC 6,930 bytes, 243 lines download raw bytes

vendor: 6,930 bytes, lines 1-243
1/* ========================================================================
2 * Bootstrap: modal.js v3.1.1
3 * http://getbootstrap.com/javascript/#modals
4 * ========================================================================
5 * Copyright 2011-2014 Twitter, Inc.
6 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 * ======================================================================== */
8
9
10+function ($) {
11  'use strict';
12
13  // MODAL CLASS DEFINITION
14  // ======================
15
16  var Modal = function (element, options) {
17    this.options   = options
18    this.$element  = $(element)
19    this.$backdrop =
20    this.isShown   = null
21
22    if (this.options.remote) {
23      this.$element
24        .find('.modal-content')
25        .load(this.options.remote, $.proxy(function () {
26          this.$element.trigger('loaded.bs.modal')
27        }, this))
28    }
29  }
30
31  Modal.DEFAULTS = {
32    backdrop: true,
33    keyboard: true,
34    show: true
35  }
36
37  Modal.prototype.toggle = function (_relatedTarget) {
38    return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
39  }
40
41  Modal.prototype.show = function (_relatedTarget) {
42    var that = this
43    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
44
45    this.$element.trigger(e)
46
47    if (this.isShown || e.isDefaultPrevented()) return
48
49    this.isShown = true
50
51    this.escape()
52
53    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
54
55    this.backdrop(function () {
56      var transition = $.support.transition && that.$element.hasClass('fade')
57
58      if (!that.$element.parent().length) {
59        that.$element.appendTo(document.body) // don't move modals dom position
60      }
61
62      that.$element
63        .show()
64        .scrollTop(0)
65
66      if (transition) {
67        that.$element[0].offsetWidth // force reflow
68      }
69
70      that.$element
71        .addClass('in')
72        .attr('aria-hidden', false)
73
74      that.enforceFocus()
75
76      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
77
78      transition ?
79        that.$element.find('.modal-dialog') // wait for modal to slide in
80          .one($.support.transition.end, function () {
81            that.$element.focus().trigger(e)
82          })
83          .emulateTransitionEnd(300) :
84        that.$element.focus().trigger(e)
85    })
86  }
87
88  Modal.prototype.hide = function (e) {
89    if (e) e.preventDefault()
90
91    e = $.Event('hide.bs.modal')
92
93    this.$element.trigger(e)
94
95    if (!this.isShown || e.isDefaultPrevented()) return
96
97    this.isShown = false
98
99    this.escape()
100
101    $(document).off('focusin.bs.modal')
102
103    this.$element
104      .removeClass('in')
105      .attr('aria-hidden', true)
106      .off('click.dismiss.bs.modal')
107
108    $.support.transition && this.$element.hasClass('fade') ?
109      this.$element
110        .one($.support.transition.end, $.proxy(this.hideModal, this))
111        .emulateTransitionEnd(300) :
112      this.hideModal()
113  }
114
115  Modal.prototype.enforceFocus = function () {
116    $(document)
117      .off('focusin.bs.modal') // guard against infinite focus loop
118      .on('focusin.bs.modal', $.proxy(function (e) {
119        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
120          this.$element.focus()
121        }
122      }, this))
123  }
124
125  Modal.prototype.escape = function () {
126    if (this.isShown && this.options.keyboard) {
127      this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
128        e.which == 27 && this.hide()
129      }, this))
130    } else if (!this.isShown) {
131      this.$element.off('keyup.dismiss.bs.modal')
132    }
133  }
134
135  Modal.prototype.hideModal = function () {
136    var that = this
137    this.$element.hide()
138    this.backdrop(function () {
139      that.removeBackdrop()
140      that.$element.trigger('hidden.bs.modal')
141    })
142  }
143
144  Modal.prototype.removeBackdrop = function () {
145    this.$backdrop && this.$backdrop.remove()
146    this.$backdrop = null
147  }
148
149  Modal.prototype.backdrop = function (callback) {
150    var animate = this.$element.hasClass('fade') ? 'fade' : ''
151
152    if (this.isShown && this.options.backdrop) {
153      var doAnimate = $.support.transition && animate
154
155      this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
156        .appendTo(document.body)
157
158      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
159        if (e.target !== e.currentTarget) return
160        this.options.backdrop == 'static'
161          ? this.$element[0].focus.call(this.$element[0])
162          : this.hide.call(this)
163      }, this))
164
165      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
166
167      this.$backdrop.addClass('in')
168
169      if (!callback) return
170
171      doAnimate ?
172        this.$backdrop
173          .one($.support.transition.end, callback)
174          .emulateTransitionEnd(150) :
175        callback()
176
177    } else if (!this.isShown && this.$backdrop) {
178      this.$backdrop.removeClass('in')
179
180      $.support.transition && this.$element.hasClass('fade') ?
181        this.$backdrop
182          .one($.support.transition.end, callback)
183          .emulateTransitionEnd(150) :
184        callback()
185
186    } else if (callback) {
187      callback()
188    }
189  }
190
191
192  // MODAL PLUGIN DEFINITION
193  // =======================
194
195  var old = $.fn.modal
196
197  $.fn.modal = function (option, _relatedTarget) {
198    return this.each(function () {
199      var $this   = $(this)
200      var data    = $this.data('bs.modal')
201      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
202
203      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
204      if (typeof option == 'string') data[option](_relatedTarget)
205      else if (options.show) data.show(_relatedTarget)
206    })
207  }
208
209  $.fn.modal.Constructor = Modal
210
211
212  // MODAL NO CONFLICT
213  // =================
214
215  $.fn.modal.noConflict = function () {
216    $.fn.modal = old
217    return this
218  }
219
220
221  // MODAL DATA-API
222  // ==============
223
224  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
225    var $this   = $(this)
226    var href    = $this.attr('href')
227    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
228    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
229
230    if ($this.is('a')) e.preventDefault()
231
232    $target
233      .modal(option, this)
234      .one('hide', function () {
235        $this.is(':visible') && $this.focus()
236      })
237  })
238
239  $(document)
240    .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
241    .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
242
243}(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.