jekyll-theme-doc-project 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/_layouts/dexwebsite.html +177 -0
  3. data/_layouts/hippolayout.html +41 -0
  4. data/_sass/dexwebsite.scss +1944 -0
  5. data/assets/dex-website-assets/assets.yml +58 -0
  6. data/assets/dex-website-assets/bootstrap-dexwebsite.css +332 -0
  7. data/assets/dex-website-assets/bootstrap-dexwebsite.js +976 -0
  8. data/assets/dex-website-assets/bootstrap-theme-dexwebsite.css +596 -0
  9. data/assets/dex-website-assets/dexwebsite_techdocs.scss +7 -0
  10. data/assets/dex-website-assets/images/list-icon.png +0 -0
  11. data/assets/dex-website-assets/src/fonts/icomoon.woff +0 -0
  12. data/assets/dex-website-assets/src/scripts/bootstrap-collapse.js +207 -0
  13. data/assets/dex-website-assets/src/scripts/bootstrap.js +2311 -0
  14. data/assets/dex-website-assets/src/scripts/dp-navigation-popover.js +419 -0
  15. data/assets/dex-website-assets/src/scripts/hero-carousel.js +30 -0
  16. data/assets/dex-website-assets/src/scripts/hero-no-cta.js +20 -0
  17. data/assets/dex-website-assets/src/scripts/images.js +47 -0
  18. data/assets/dex-website-assets/src/scripts/in-page-carousel.js +75 -0
  19. data/assets/dex-website-assets/src/scripts/jquery-cookie.js +119 -0
  20. data/assets/dex-website-assets/src/scripts/jquery-lazyload.js +246 -0
  21. data/assets/dex-website-assets/src/scripts/jquery.js +10322 -0
  22. data/assets/dex-website-assets/src/scripts/menu.js +100 -0
  23. data/assets/dex-website-assets/src/scripts/multi-column-with-image.js +14 -0
  24. data/assets/dex-website-assets/src/scripts/nav.js +35 -0
  25. data/assets/dex-website-assets/src/scripts/owl-carousel.js +3074 -0
  26. data/assets/dex-website-assets/src/scripts/product-nav.js +112 -0
  27. data/assets/dex-website-assets/src/scripts/search.js +41 -0
  28. data/assets/dex-website-assets/src/scripts/single-field-form.js +28 -0
  29. data/assets/dex-website-assets/src/scripts/subscribe-form.js +54 -0
  30. data/assets/dex-website-assets/src/scripts/video-responsive.js +15 -0
  31. data/assets/dex-website-assets/src/styles/_base.scss +2 -0
  32. data/assets/dex-website-assets/src/styles/_mixins.scss +73 -0
  33. data/assets/dex-website-assets/src/styles/_variables.scss +45 -0
  34. data/assets/dex-website-assets/src/styles/bootstrap-collapse.css +25 -0
  35. data/assets/dex-website-assets/src/styles/bootstrap-collapse.css.map +7 -0
  36. data/assets/dex-website-assets/src/styles/bootstrap-collapse.scss +26 -0
  37. data/assets/dex-website-assets/src/styles/bootstrap-theme.css +475 -0
  38. data/assets/dex-website-assets/src/styles/bootstrap.css +6565 -0
  39. data/assets/dex-website-assets/src/styles/content-slot.css +343 -0
  40. data/assets/dex-website-assets/src/styles/content-slot.css.map +7 -0
  41. data/assets/dex-website-assets/src/styles/content-slot.scss +506 -0
  42. data/assets/dex-website-assets/src/styles/custom-controls.css +40 -0
  43. data/assets/dex-website-assets/src/styles/custom-controls.css.map +7 -0
  44. data/assets/dex-website-assets/src/styles/custom-controls.scss +48 -0
  45. data/assets/dex-website-assets/src/styles/font-icons-variables.css +3 -0
  46. data/assets/dex-website-assets/src/styles/font-icons-variables.css.map +7 -0
  47. data/assets/dex-website-assets/src/styles/font-icons-variables.scss +3 -0
  48. data/assets/dex-website-assets/src/styles/font-icons.css +28 -0
  49. data/assets/dex-website-assets/src/styles/font-icons.css.map +7 -0
  50. data/assets/dex-website-assets/src/styles/font-icons.scss +40 -0
  51. data/assets/dex-website-assets/src/styles/footer.css +98 -0
  52. data/assets/dex-website-assets/src/styles/footer.css.map +7 -0
  53. data/assets/dex-website-assets/src/styles/footer.scss +130 -0
  54. data/assets/dex-website-assets/src/styles/grid-responsive.css +50 -0
  55. data/assets/dex-website-assets/src/styles/grid-responsive.css.map +7 -0
  56. data/assets/dex-website-assets/src/styles/grid-responsive.scss +67 -0
  57. data/assets/dex-website-assets/src/styles/grid.css +821 -0
  58. data/assets/dex-website-assets/src/styles/grid.css.map +7 -0
  59. data/assets/dex-website-assets/src/styles/grid.scss +1159 -0
  60. data/assets/dex-website-assets/src/styles/header-banner-button-cta.css +79 -0
  61. data/assets/dex-website-assets/src/styles/header-banner-button-cta.css.map +7 -0
  62. data/assets/dex-website-assets/src/styles/header-banner-button-cta.scss +103 -0
  63. data/assets/dex-website-assets/src/styles/hero-carousel.css +175 -0
  64. data/assets/dex-website-assets/src/styles/hero-carousel.css.map +7 -0
  65. data/assets/dex-website-assets/src/styles/hero-carousel.scss +179 -0
  66. data/assets/dex-website-assets/src/styles/hero-no-cta.css +1106 -0
  67. data/assets/dex-website-assets/src/styles/hero-no-cta.css.map +7 -0
  68. data/assets/dex-website-assets/src/styles/hero-no-cta.scss +125 -0
  69. data/assets/dex-website-assets/src/styles/home.css +237 -0
  70. data/assets/dex-website-assets/src/styles/home.css.map +7 -0
  71. data/assets/dex-website-assets/src/styles/home.scss +299 -0
  72. data/assets/dex-website-assets/src/styles/media.css +17 -0
  73. data/assets/dex-website-assets/src/styles/media.css.map +7 -0
  74. data/assets/dex-website-assets/src/styles/media.scss +18 -0
  75. data/assets/dex-website-assets/src/styles/menu-button.css +122 -0
  76. data/assets/dex-website-assets/src/styles/menu-button.css.map +7 -0
  77. data/assets/dex-website-assets/src/styles/menu-button.scss +121 -0
  78. data/assets/dex-website-assets/src/styles/menu.css +428 -0
  79. data/assets/dex-website-assets/src/styles/menu.css.map +7 -0
  80. data/assets/dex-website-assets/src/styles/menu.scss +578 -0
  81. data/assets/dex-website-assets/src/styles/message.css +34 -0
  82. data/assets/dex-website-assets/src/styles/message.css.map +7 -0
  83. data/assets/dex-website-assets/src/styles/message.scss +38 -0
  84. data/assets/dex-website-assets/src/styles/multi-column-left-icon.css +57 -0
  85. data/assets/dex-website-assets/src/styles/multi-column-left-icon.css.map +7 -0
  86. data/assets/dex-website-assets/src/styles/multi-column-left-icon.scss +104 -0
  87. data/assets/dex-website-assets/src/styles/multi-column-with-image.css +49 -0
  88. data/assets/dex-website-assets/src/styles/multi-column-with-image.css.map +7 -0
  89. data/assets/dex-website-assets/src/styles/multi-column-with-image.scss +63 -0
  90. data/assets/dex-website-assets/src/styles/navbar.css +82 -0
  91. data/assets/dex-website-assets/src/styles/navbar.css.map +7 -0
  92. data/assets/dex-website-assets/src/styles/navbar.scss +91 -0
  93. data/assets/dex-website-assets/src/styles/navigation.css +66 -0
  94. data/assets/dex-website-assets/src/styles/navigation.scss +81 -0
  95. data/assets/dex-website-assets/src/styles/oas.css +22 -0
  96. data/assets/dex-website-assets/src/styles/oas.css.map +7 -0
  97. data/assets/dex-website-assets/src/styles/oas.scss +27 -0
  98. data/assets/dex-website-assets/src/styles/owl-carousel.css +202 -0
  99. data/assets/dex-website-assets/src/styles/owl-carousel.css.map +7 -0
  100. data/assets/dex-website-assets/src/styles/owl-carousel.scss +215 -0
  101. data/assets/dex-website-assets/src/styles/popover.css +63 -0
  102. data/assets/dex-website-assets/src/styles/popover.css.map +7 -0
  103. data/assets/dex-website-assets/src/styles/popover.scss +65 -0
  104. data/assets/dex-website-assets/src/styles/product-nav.css +74 -0
  105. data/assets/dex-website-assets/src/styles/product-nav.css.map +7 -0
  106. data/assets/dex-website-assets/src/styles/product-nav.scss +110 -0
  107. data/assets/dex-website-assets/src/styles/sdk-downloader.css +155 -0
  108. data/assets/dex-website-assets/src/styles/sdk-downloader.css.map +7 -0
  109. data/assets/dex-website-assets/src/styles/sdk-downloader.scss +279 -0
  110. data/assets/dex-website-assets/src/styles/search.css +148 -0
  111. data/assets/dex-website-assets/src/styles/search.css.map +7 -0
  112. data/assets/dex-website-assets/src/styles/search.scss +188 -0
  113. data/assets/dex-website-assets/src/styles/sidebar.css +68 -0
  114. data/assets/dex-website-assets/src/styles/sidebar.css.map +7 -0
  115. data/assets/dex-website-assets/src/styles/sidebar.scss +87 -0
  116. data/assets/dex-website-assets/src/styles/single-field-form.css +157 -0
  117. data/assets/dex-website-assets/src/styles/single-field-form.css.map +7 -0
  118. data/assets/dex-website-assets/src/styles/single-field-form.scss +88 -0
  119. data/assets/dex-website-assets/src/styles/subscribe-form.css +53 -0
  120. data/assets/dex-website-assets/src/styles/subscribe-form.css.map +7 -0
  121. data/assets/dex-website-assets/src/styles/subscribe-form.scss +63 -0
  122. data/assets/dex-website-assets/src/styles/typography.css +85 -0
  123. data/assets/dex-website-assets/src/styles/typography.css.map +7 -0
  124. data/assets/dex-website-assets/src/styles/typography.scss +96 -0
  125. data/assets/dex-website-assets/src/styles/utility.css +102 -0
  126. data/assets/dex-website-assets/src/styles/utility.css.map +7 -0
  127. data/assets/dex-website-assets/src/styles/utility.scss +135 -0
  128. data/assets/dex-website-assets/src/styles/value-props.css +49 -0
  129. data/assets/dex-website-assets/src/styles/value-props.css.map +7 -0
  130. data/assets/dex-website-assets/src/styles/value-props.scss +64 -0
  131. data/assets/hippo-assets/customscriptshippo.js +18 -0
  132. data/assets/hippo-assets/highlighter.min.css +3 -0
  133. data/assets/hippo-assets/hipposidebar.css +199 -0
  134. data/assets/hippo-assets/hipposidebarpage.min.css +1 -0
  135. data/assets/hippo-assets/includescript.min.js +3 -0
  136. data/assets/hippo-assets/navtabshippo.css +4 -0
  137. metadata +136 -1
@@ -0,0 +1,976 @@
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2017 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ /*!
8
+ * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=89d2dc667070ff403bde88be9970ca8b)
9
+ * Config saved to config.json and https://gist.github.com/89d2dc667070ff403bde88be9970ca8b
10
+ */
11
+ $( document ).ready(function() {
12
+
13
+ if (typeof jQuery === 'undefined') {
14
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
15
+ }
16
+ +function ($) {
17
+ 'use strict';
18
+ var version = $.fn.jquery.split(' ')[0].split('.')
19
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
20
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
21
+ }
22
+ }(jQuery);
23
+
24
+ /* ========================================================================
25
+ * Bootstrap: dropdown.js v3.3.7
26
+ * http://getbootstrap.com/javascript/#dropdowns
27
+ * ========================================================================
28
+ * Copyright 2011-2016 Twitter, Inc.
29
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
30
+ * ======================================================================== */
31
+
32
+
33
+ +function ($) {
34
+ 'use strict';
35
+
36
+ // DROPDOWN CLASS DEFINITION
37
+ // =========================
38
+
39
+ var backdrop = '.dropdown-backdrop'
40
+ var toggle = '[data-toggle="dropdown"]'
41
+ var Dropdown = function (element) {
42
+ $(element).on('click.bs.dropdown', this.toggle)
43
+ }
44
+
45
+ Dropdown.VERSION = '3.3.7'
46
+
47
+ function getParent($this) {
48
+ var selector = $this.attr('data-target')
49
+
50
+ if (!selector) {
51
+ selector = $this.attr('href')
52
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
53
+ }
54
+
55
+ var $parent = selector && $(selector)
56
+
57
+ return $parent && $parent.length ? $parent : $this.parent()
58
+ }
59
+
60
+ function clearMenus(e) {
61
+ if (e && e.which === 3) return
62
+ $(backdrop).remove()
63
+ $(toggle).each(function () {
64
+ var $this = $(this)
65
+ var $parent = getParent($this)
66
+ var relatedTarget = { relatedTarget: this }
67
+
68
+ if (!$parent.hasClass('open')) return
69
+
70
+ if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
71
+
72
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
73
+
74
+ if (e.isDefaultPrevented()) return
75
+
76
+ $this.attr('aria-expanded', 'false')
77
+ $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
78
+ })
79
+ }
80
+
81
+ Dropdown.prototype.toggle = function (e) {
82
+ var $this = $(this)
83
+
84
+ if ($this.is('.disabled, :disabled')) return
85
+
86
+ var $parent = getParent($this)
87
+ var isActive = $parent.hasClass('open')
88
+
89
+ clearMenus()
90
+
91
+ if (!isActive) {
92
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
93
+ // if mobile we use a backdrop because click events don't delegate
94
+ $(document.createElement('div'))
95
+ .addClass('dropdown-backdrop')
96
+ .insertAfter($(this))
97
+ .on('click', clearMenus)
98
+ }
99
+
100
+ var relatedTarget = { relatedTarget: this }
101
+ $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
102
+
103
+ if (e.isDefaultPrevented()) return
104
+
105
+ $this
106
+ .trigger('focus')
107
+ .attr('aria-expanded', 'true')
108
+
109
+ $parent
110
+ .toggleClass('open')
111
+ .trigger($.Event('shown.bs.dropdown', relatedTarget))
112
+ }
113
+
114
+ return false
115
+ }
116
+
117
+ Dropdown.prototype.keydown = function (e) {
118
+ if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
119
+
120
+ var $this = $(this)
121
+
122
+ e.preventDefault()
123
+ e.stopPropagation()
124
+
125
+ if ($this.is('.disabled, :disabled')) return
126
+
127
+ var $parent = getParent($this)
128
+ var isActive = $parent.hasClass('open')
129
+
130
+ if (!isActive && e.which != 27 || isActive && e.which == 27) {
131
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
132
+ return $this.trigger('click')
133
+ }
134
+
135
+ var desc = ' li:not(.disabled):visible a'
136
+ var $items = $parent.find('.dropdown-menu' + desc)
137
+
138
+ if (!$items.length) return
139
+
140
+ var index = $items.index(e.target)
141
+
142
+ if (e.which == 38 && index > 0) index-- // up
143
+ if (e.which == 40 && index < $items.length - 1) index++ // down
144
+ if (!~index) index = 0
145
+
146
+ $items.eq(index).trigger('focus')
147
+ }
148
+
149
+
150
+ // DROPDOWN PLUGIN DEFINITION
151
+ // ==========================
152
+
153
+ function Plugin(option) {
154
+ return this.each(function () {
155
+ var $this = $(this)
156
+ var data = $this.data('bs.dropdown')
157
+
158
+ if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
159
+ if (typeof option == 'string') data[option].call($this)
160
+ })
161
+ }
162
+
163
+ var old = $.fn.dropdown
164
+
165
+ $.fn.dropdown = Plugin
166
+ $.fn.dropdown.Constructor = Dropdown
167
+
168
+
169
+ // DROPDOWN NO CONFLICT
170
+ // ====================
171
+
172
+ $.fn.dropdown.noConflict = function () {
173
+ $.fn.dropdown = old
174
+ return this
175
+ }
176
+
177
+
178
+ // APPLY TO STANDARD DROPDOWN ELEMENTS
179
+ // ===================================
180
+
181
+ $(document)
182
+ .on('click.bs.dropdown.data-api', clearMenus)
183
+ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
184
+ .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
185
+ .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
186
+ .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
187
+
188
+ }(jQuery);
189
+
190
+ /* ========================================================================
191
+ * Bootstrap: tooltip.js v3.3.7
192
+ * http://getbootstrap.com/javascript/#tooltip
193
+ * Inspired by the original jQuery.tipsy by Jason Frame
194
+ * ========================================================================
195
+ * Copyright 2011-2016 Twitter, Inc.
196
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
197
+ * ======================================================================== */
198
+
199
+
200
+ +function ($) {
201
+ 'use strict';
202
+
203
+ // TOOLTIP PUBLIC CLASS DEFINITION
204
+ // ===============================
205
+
206
+ var Tooltip = function (element, options) {
207
+ this.type = null
208
+ this.options = null
209
+ this.enabled = null
210
+ this.timeout = null
211
+ this.hoverState = null
212
+ this.$element = null
213
+ this.inState = null
214
+
215
+ this.init('tooltip', element, options)
216
+ }
217
+
218
+ Tooltip.VERSION = '3.3.7'
219
+
220
+ Tooltip.TRANSITION_DURATION = 150
221
+
222
+ Tooltip.DEFAULTS = {
223
+ animation: true,
224
+ placement: 'top',
225
+ selector: false,
226
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
227
+ trigger: 'hover focus',
228
+ title: '',
229
+ delay: 0,
230
+ html: false,
231
+ container: false,
232
+ viewport: {
233
+ selector: 'body',
234
+ padding: 0
235
+ }
236
+ }
237
+
238
+ Tooltip.prototype.init = function (type, element, options) {
239
+ this.enabled = true
240
+ this.type = type
241
+ this.$element = $(element)
242
+ this.options = this.getOptions(options)
243
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
244
+ this.inState = { click: false, hover: false, focus: false }
245
+
246
+ if (this.$element[0] instanceof document.constructor && !this.options.selector) {
247
+ throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
248
+ }
249
+
250
+ var triggers = this.options.trigger.split(' ')
251
+
252
+ for (var i = triggers.length; i--;) {
253
+ var trigger = triggers[i]
254
+
255
+ if (trigger == 'click') {
256
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
257
+ } else if (trigger != 'manual') {
258
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
259
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
260
+
261
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
262
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
263
+ }
264
+ }
265
+
266
+ this.options.selector ?
267
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
268
+ this.fixTitle()
269
+ }
270
+
271
+ Tooltip.prototype.getDefaults = function () {
272
+ return Tooltip.DEFAULTS
273
+ }
274
+
275
+ Tooltip.prototype.getOptions = function (options) {
276
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
277
+
278
+ if (options.delay && typeof options.delay == 'number') {
279
+ options.delay = {
280
+ show: options.delay,
281
+ hide: options.delay
282
+ }
283
+ }
284
+
285
+ return options
286
+ }
287
+
288
+ Tooltip.prototype.getDelegateOptions = function () {
289
+ var options = {}
290
+ var defaults = this.getDefaults()
291
+
292
+ this._options && $.each(this._options, function (key, value) {
293
+ if (defaults[key] != value) options[key] = value
294
+ })
295
+
296
+ return options
297
+ }
298
+
299
+ Tooltip.prototype.enter = function (obj) {
300
+ var self = obj instanceof this.constructor ?
301
+ obj : $(obj.currentTarget).data('bs.' + this.type)
302
+
303
+ if (!self) {
304
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
305
+ $(obj.currentTarget).data('bs.' + this.type, self)
306
+ }
307
+
308
+ if (obj instanceof $.Event) {
309
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
310
+ }
311
+
312
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
313
+ self.hoverState = 'in'
314
+ return
315
+ }
316
+
317
+ clearTimeout(self.timeout)
318
+
319
+ self.hoverState = 'in'
320
+
321
+ if (!self.options.delay || !self.options.delay.show) return self.show()
322
+
323
+ self.timeout = setTimeout(function () {
324
+ if (self.hoverState == 'in') self.show()
325
+ }, self.options.delay.show)
326
+ }
327
+
328
+ Tooltip.prototype.isInStateTrue = function () {
329
+ for (var key in this.inState) {
330
+ if (this.inState[key]) return true
331
+ }
332
+
333
+ return false
334
+ }
335
+
336
+ Tooltip.prototype.leave = function (obj) {
337
+ var self = obj instanceof this.constructor ?
338
+ obj : $(obj.currentTarget).data('bs.' + this.type)
339
+
340
+ if (!self) {
341
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
342
+ $(obj.currentTarget).data('bs.' + this.type, self)
343
+ }
344
+
345
+ if (obj instanceof $.Event) {
346
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
347
+ }
348
+
349
+ if (self.isInStateTrue()) return
350
+
351
+ clearTimeout(self.timeout)
352
+
353
+ self.hoverState = 'out'
354
+
355
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
356
+
357
+ self.timeout = setTimeout(function () {
358
+ if (self.hoverState == 'out') self.hide()
359
+ }, self.options.delay.hide)
360
+ }
361
+
362
+ Tooltip.prototype.show = function () {
363
+ var e = $.Event('show.bs.' + this.type)
364
+
365
+ if (this.hasContent() && this.enabled) {
366
+ this.$element.trigger(e)
367
+
368
+ var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
369
+ if (e.isDefaultPrevented() || !inDom) return
370
+ var that = this
371
+
372
+ var $tip = this.tip()
373
+
374
+ var tipId = this.getUID(this.type)
375
+
376
+ this.setContent()
377
+ $tip.attr('id', tipId)
378
+ this.$element.attr('aria-describedby', tipId)
379
+
380
+ if (this.options.animation) $tip.addClass('fade')
381
+
382
+ var placement = typeof this.options.placement == 'function' ?
383
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
384
+ this.options.placement
385
+
386
+ var autoToken = /\s?auto?\s?/i
387
+ var autoPlace = autoToken.test(placement)
388
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
389
+
390
+ $tip
391
+ .detach()
392
+ .css({ top: 0, left: 0, display: 'block' })
393
+ .addClass(placement)
394
+ .data('bs.' + this.type, this)
395
+
396
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
397
+ this.$element.trigger('inserted.bs.' + this.type)
398
+
399
+ var pos = this.getPosition()
400
+ var actualWidth = $tip[0].offsetWidth
401
+ var actualHeight = $tip[0].offsetHeight
402
+
403
+ if (autoPlace) {
404
+ var orgPlacement = placement
405
+ var viewportDim = this.getPosition(this.$viewport)
406
+
407
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
408
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
409
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
410
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
411
+ placement
412
+
413
+ $tip
414
+ .removeClass(orgPlacement)
415
+ .addClass(placement)
416
+ }
417
+
418
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
419
+
420
+ this.applyPlacement(calculatedOffset, placement)
421
+
422
+ var complete = function () {
423
+ var prevHoverState = that.hoverState
424
+ that.$element.trigger('shown.bs.' + that.type)
425
+ that.hoverState = null
426
+
427
+ if (prevHoverState == 'out') that.leave(that)
428
+ }
429
+
430
+ $.support.transition && this.$tip.hasClass('fade') ?
431
+ $tip
432
+ .one('bsTransitionEnd', complete)
433
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
434
+ complete()
435
+ }
436
+ }
437
+
438
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
439
+ var $tip = this.tip()
440
+ var width = $tip[0].offsetWidth
441
+ var height = $tip[0].offsetHeight
442
+
443
+ // manually read margins because getBoundingClientRect includes difference
444
+ var marginTop = parseInt($tip.css('margin-top'), 10)
445
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
446
+
447
+ // we must check for NaN for ie 8/9
448
+ if (isNaN(marginTop)) marginTop = 0
449
+ if (isNaN(marginLeft)) marginLeft = 0
450
+
451
+ offset.top += marginTop
452
+ offset.left += marginLeft
453
+
454
+ // $.fn.offset doesn't round pixel values
455
+ // so we use setOffset directly with our own function B-0
456
+ $.offset.setOffset($tip[0], $.extend({
457
+ using: function (props) {
458
+ $tip.css({
459
+ top: Math.round(props.top),
460
+ left: Math.round(props.left)
461
+ })
462
+ }
463
+ }, offset), 0)
464
+
465
+ $tip.addClass('in')
466
+
467
+ // check to see if placing tip in new offset caused the tip to resize itself
468
+ var actualWidth = $tip[0].offsetWidth
469
+ var actualHeight = $tip[0].offsetHeight
470
+
471
+ if (placement == 'top' && actualHeight != height) {
472
+ offset.top = offset.top + height - actualHeight
473
+ }
474
+
475
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
476
+
477
+ if (delta.left) offset.left += delta.left
478
+ else offset.top += delta.top
479
+
480
+ var isVertical = /top|bottom/.test(placement)
481
+ var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
482
+ var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
483
+
484
+ $tip.offset(offset)
485
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
486
+ }
487
+
488
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
489
+ this.arrow()
490
+ .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
491
+ .css(isVertical ? 'top' : 'left', '')
492
+ }
493
+
494
+ Tooltip.prototype.setContent = function () {
495
+ var $tip = this.tip()
496
+ var title = this.getTitle()
497
+
498
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
499
+ $tip.removeClass('fade in top bottom left right')
500
+ }
501
+
502
+ Tooltip.prototype.hide = function (callback) {
503
+ var that = this
504
+ var $tip = $(this.$tip)
505
+ var e = $.Event('hide.bs.' + this.type)
506
+
507
+ function complete() {
508
+ if (that.hoverState != 'in') $tip.detach()
509
+ if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
510
+ that.$element
511
+ .removeAttr('aria-describedby')
512
+ .trigger('hidden.bs.' + that.type)
513
+ }
514
+ callback && callback()
515
+ }
516
+
517
+ this.$element.trigger(e)
518
+
519
+ if (e.isDefaultPrevented()) return
520
+
521
+ $tip.removeClass('in')
522
+
523
+ $.support.transition && $tip.hasClass('fade') ?
524
+ $tip
525
+ .one('bsTransitionEnd', complete)
526
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
527
+ complete()
528
+
529
+ this.hoverState = null
530
+
531
+ return this
532
+ }
533
+
534
+ Tooltip.prototype.fixTitle = function () {
535
+ var $e = this.$element
536
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
537
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
538
+ }
539
+ }
540
+
541
+ Tooltip.prototype.hasContent = function () {
542
+ return this.getTitle()
543
+ }
544
+
545
+ Tooltip.prototype.getPosition = function ($element) {
546
+ $element = $element || this.$element
547
+
548
+ var el = $element[0]
549
+ var isBody = el.tagName == 'BODY'
550
+
551
+ var elRect = el.getBoundingClientRect()
552
+ if (elRect.width == null) {
553
+ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
554
+ elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
555
+ }
556
+ var isSvg = window.SVGElement && el instanceof window.SVGElement
557
+ // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
558
+ // See https://github.com/twbs/bootstrap/issues/20280
559
+ var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
560
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
561
+ var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
562
+
563
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
564
+ }
565
+
566
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
567
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
568
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
569
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
570
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
571
+
572
+ }
573
+
574
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
575
+ var delta = { top: 0, left: 0 }
576
+ if (!this.$viewport) return delta
577
+
578
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
579
+ var viewportDimensions = this.getPosition(this.$viewport)
580
+
581
+ if (/right|left/.test(placement)) {
582
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
583
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
584
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
585
+ delta.top = viewportDimensions.top - topEdgeOffset
586
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
587
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
588
+ }
589
+ } else {
590
+ var leftEdgeOffset = pos.left - viewportPadding
591
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
592
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
593
+ delta.left = viewportDimensions.left - leftEdgeOffset
594
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
595
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
596
+ }
597
+ }
598
+
599
+ return delta
600
+ }
601
+
602
+ Tooltip.prototype.getTitle = function () {
603
+ var title
604
+ var $e = this.$element
605
+ var o = this.options
606
+
607
+ title = $e.attr('data-original-title')
608
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
609
+
610
+ return title
611
+ }
612
+
613
+ Tooltip.prototype.getUID = function (prefix) {
614
+ do prefix += ~~(Math.random() * 1000000)
615
+ while (document.getElementById(prefix))
616
+ return prefix
617
+ }
618
+
619
+ Tooltip.prototype.tip = function () {
620
+ if (!this.$tip) {
621
+ this.$tip = $(this.options.template)
622
+ if (this.$tip.length != 1) {
623
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
624
+ }
625
+ }
626
+ return this.$tip
627
+ }
628
+
629
+ Tooltip.prototype.arrow = function () {
630
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
631
+ }
632
+
633
+ Tooltip.prototype.enable = function () {
634
+ this.enabled = true
635
+ }
636
+
637
+ Tooltip.prototype.disable = function () {
638
+ this.enabled = false
639
+ }
640
+
641
+ Tooltip.prototype.toggleEnabled = function () {
642
+ this.enabled = !this.enabled
643
+ }
644
+
645
+ Tooltip.prototype.toggle = function (e) {
646
+ var self = this
647
+ if (e) {
648
+ self = $(e.currentTarget).data('bs.' + this.type)
649
+ if (!self) {
650
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
651
+ $(e.currentTarget).data('bs.' + this.type, self)
652
+ }
653
+ }
654
+
655
+ if (e) {
656
+ self.inState.click = !self.inState.click
657
+ if (self.isInStateTrue()) self.enter(self)
658
+ else self.leave(self)
659
+ } else {
660
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
661
+ }
662
+ }
663
+
664
+ Tooltip.prototype.destroy = function () {
665
+ var that = this
666
+ clearTimeout(this.timeout)
667
+ this.hide(function () {
668
+ that.$element.off('.' + that.type).removeData('bs.' + that.type)
669
+ if (that.$tip) {
670
+ that.$tip.detach()
671
+ }
672
+ that.$tip = null
673
+ that.$arrow = null
674
+ that.$viewport = null
675
+ that.$element = null
676
+ })
677
+ }
678
+
679
+
680
+ // TOOLTIP PLUGIN DEFINITION
681
+ // =========================
682
+
683
+ function Plugin(option) {
684
+ return this.each(function () {
685
+ var $this = $(this)
686
+ var data = $this.data('bs.tooltip')
687
+ var options = typeof option == 'object' && option
688
+
689
+ if (!data && /destroy|hide/.test(option)) return
690
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
691
+ if (typeof option == 'string') data[option]()
692
+ })
693
+ }
694
+
695
+ var old = $.fn.tooltip
696
+
697
+ $.fn.tooltip = Plugin
698
+ $.fn.tooltip.Constructor = Tooltip
699
+
700
+
701
+ // TOOLTIP NO CONFLICT
702
+ // ===================
703
+
704
+ $.fn.tooltip.noConflict = function () {
705
+ $.fn.tooltip = old
706
+ return this
707
+ }
708
+
709
+ }(jQuery);
710
+
711
+ /* ========================================================================
712
+ * Bootstrap: popover.js v3.3.7
713
+ * http://getbootstrap.com/javascript/#popovers
714
+ * ========================================================================
715
+ * Copyright 2011-2016 Twitter, Inc.
716
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
717
+ * ======================================================================== */
718
+
719
+
720
+ +function ($) {
721
+ 'use strict';
722
+
723
+ // POPOVER PUBLIC CLASS DEFINITION
724
+ // ===============================
725
+
726
+ var Popover = function (element, options) {
727
+ this.init('popover', element, options)
728
+ }
729
+
730
+ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
731
+
732
+ Popover.VERSION = '3.3.7'
733
+
734
+ Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
735
+ placement: 'right',
736
+ trigger: 'click',
737
+ content: '',
738
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
739
+ })
740
+
741
+
742
+ // NOTE: POPOVER EXTENDS tooltip.js
743
+ // ================================
744
+
745
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
746
+
747
+ Popover.prototype.constructor = Popover
748
+
749
+ Popover.prototype.getDefaults = function () {
750
+ return Popover.DEFAULTS
751
+ }
752
+
753
+ Popover.prototype.setContent = function () {
754
+ var $tip = this.tip()
755
+ var title = this.getTitle()
756
+ var content = this.getContent()
757
+
758
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
759
+ $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
760
+ this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
761
+ ](content)
762
+
763
+ $tip.removeClass('fade top bottom left right in')
764
+
765
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
766
+ // this manually by checking the contents.
767
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
768
+ }
769
+
770
+ Popover.prototype.hasContent = function () {
771
+ return this.getTitle() || this.getContent()
772
+ }
773
+
774
+ Popover.prototype.getContent = function () {
775
+ var $e = this.$element
776
+ var o = this.options
777
+
778
+ return $e.attr('data-content')
779
+ || (typeof o.content == 'function' ?
780
+ o.content.call($e[0]) :
781
+ o.content)
782
+ }
783
+
784
+ Popover.prototype.arrow = function () {
785
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
786
+ }
787
+
788
+
789
+ // POPOVER PLUGIN DEFINITION
790
+ // =========================
791
+
792
+ function Plugin(option) {
793
+ return this.each(function () {
794
+ var $this = $(this)
795
+ var data = $this.data('bs.popover')
796
+ var options = typeof option == 'object' && option
797
+
798
+ if (!data && /destroy|hide/.test(option)) return
799
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
800
+ if (typeof option == 'string') data[option]()
801
+ })
802
+ }
803
+
804
+ var old = $.fn.popover
805
+
806
+ $.fn.popover = Plugin
807
+ $.fn.popover.Constructor = Popover
808
+
809
+
810
+ // POPOVER NO CONFLICT
811
+ // ===================
812
+
813
+ $.fn.popover.noConflict = function () {
814
+ $.fn.popover = old
815
+ return this
816
+ }
817
+
818
+ }(jQuery);
819
+
820
+ /* ========================================================================
821
+ * Bootstrap: tab.js v3.3.7
822
+ * http://getbootstrap.com/javascript/#tabs
823
+ * ========================================================================
824
+ * Copyright 2011-2016 Twitter, Inc.
825
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
826
+ * ======================================================================== */
827
+
828
+
829
+ +function ($) {
830
+ 'use strict';
831
+
832
+ // TAB CLASS DEFINITION
833
+ // ====================
834
+
835
+ var Tab = function (element) {
836
+ // jscs:disable requireDollarBeforejQueryAssignment
837
+ this.element = $(element)
838
+ // jscs:enable requireDollarBeforejQueryAssignment
839
+ }
840
+
841
+ Tab.VERSION = '3.3.7'
842
+
843
+ Tab.TRANSITION_DURATION = 150
844
+
845
+ Tab.prototype.show = function () {
846
+ var $this = this.element
847
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
848
+ var selector = $this.data('target')
849
+
850
+ if (!selector) {
851
+ selector = $this.attr('href')
852
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
853
+ }
854
+
855
+ if ($this.parent('li').hasClass('active')) return
856
+
857
+ var $previous = $ul.find('.active:last a')
858
+ var hideEvent = $.Event('hide.bs.tab', {
859
+ relatedTarget: $this[0]
860
+ })
861
+ var showEvent = $.Event('show.bs.tab', {
862
+ relatedTarget: $previous[0]
863
+ })
864
+
865
+ $previous.trigger(hideEvent)
866
+ $this.trigger(showEvent)
867
+
868
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
869
+
870
+ var $target = $(selector)
871
+
872
+ this.activate($this.closest('li'), $ul)
873
+ this.activate($target, $target.parent(), function () {
874
+ $previous.trigger({
875
+ type: 'hidden.bs.tab',
876
+ relatedTarget: $this[0]
877
+ })
878
+ $this.trigger({
879
+ type: 'shown.bs.tab',
880
+ relatedTarget: $previous[0]
881
+ })
882
+ })
883
+ }
884
+
885
+ Tab.prototype.activate = function (element, container, callback) {
886
+ var $active = container.find('> .active')
887
+ var transition = callback
888
+ && $.support.transition
889
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
890
+
891
+ function next() {
892
+ $active
893
+ .removeClass('active')
894
+ .find('> .dropdown-menu > .active')
895
+ .removeClass('active')
896
+ .end()
897
+ .find('[data-toggle="tab"]')
898
+ .attr('aria-expanded', false)
899
+
900
+ element
901
+ .addClass('active')
902
+ .find('[data-toggle="tab"]')
903
+ .attr('aria-expanded', true)
904
+
905
+ if (transition) {
906
+ element[0].offsetWidth // reflow for transition
907
+ element.addClass('in')
908
+ } else {
909
+ element.removeClass('fade')
910
+ }
911
+
912
+ if (element.parent('.dropdown-menu').length) {
913
+ element
914
+ .closest('li.dropdown')
915
+ .addClass('active')
916
+ .end()
917
+ .find('[data-toggle="tab"]')
918
+ .attr('aria-expanded', true)
919
+ }
920
+
921
+ callback && callback()
922
+ }
923
+
924
+ $active.length && transition ?
925
+ $active
926
+ .one('bsTransitionEnd', next)
927
+ .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
928
+ next()
929
+
930
+ $active.removeClass('in')
931
+ }
932
+
933
+
934
+ // TAB PLUGIN DEFINITION
935
+ // =====================
936
+
937
+ function Plugin(option) {
938
+ return this.each(function () {
939
+ var $this = $(this)
940
+ var data = $this.data('bs.tab')
941
+
942
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
943
+ if (typeof option == 'string') data[option]()
944
+ })
945
+ }
946
+
947
+ var old = $.fn.tab
948
+
949
+ $.fn.tab = Plugin
950
+ $.fn.tab.Constructor = Tab
951
+
952
+
953
+ // TAB NO CONFLICT
954
+ // ===============
955
+
956
+ $.fn.tab.noConflict = function () {
957
+ $.fn.tab = old
958
+ return this
959
+ }
960
+
961
+
962
+ // TAB DATA-API
963
+ // ============
964
+
965
+ var clickHandler = function (e) {
966
+ e.preventDefault()
967
+ Plugin.call($(this), 'show')
968
+ }
969
+
970
+ $(document)
971
+ .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
972
+ .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
973
+
974
+ }(jQuery);
975
+
976
+ });