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.
- checksums.yaml +4 -4
- data/_layouts/dexwebsite.html +177 -0
- data/_layouts/hippolayout.html +41 -0
- data/_sass/dexwebsite.scss +1944 -0
- data/assets/dex-website-assets/assets.yml +58 -0
- data/assets/dex-website-assets/bootstrap-dexwebsite.css +332 -0
- data/assets/dex-website-assets/bootstrap-dexwebsite.js +976 -0
- data/assets/dex-website-assets/bootstrap-theme-dexwebsite.css +596 -0
- data/assets/dex-website-assets/dexwebsite_techdocs.scss +7 -0
- data/assets/dex-website-assets/images/list-icon.png +0 -0
- data/assets/dex-website-assets/src/fonts/icomoon.woff +0 -0
- data/assets/dex-website-assets/src/scripts/bootstrap-collapse.js +207 -0
- data/assets/dex-website-assets/src/scripts/bootstrap.js +2311 -0
- data/assets/dex-website-assets/src/scripts/dp-navigation-popover.js +419 -0
- data/assets/dex-website-assets/src/scripts/hero-carousel.js +30 -0
- data/assets/dex-website-assets/src/scripts/hero-no-cta.js +20 -0
- data/assets/dex-website-assets/src/scripts/images.js +47 -0
- data/assets/dex-website-assets/src/scripts/in-page-carousel.js +75 -0
- data/assets/dex-website-assets/src/scripts/jquery-cookie.js +119 -0
- data/assets/dex-website-assets/src/scripts/jquery-lazyload.js +246 -0
- data/assets/dex-website-assets/src/scripts/jquery.js +10322 -0
- data/assets/dex-website-assets/src/scripts/menu.js +100 -0
- data/assets/dex-website-assets/src/scripts/multi-column-with-image.js +14 -0
- data/assets/dex-website-assets/src/scripts/nav.js +35 -0
- data/assets/dex-website-assets/src/scripts/owl-carousel.js +3074 -0
- data/assets/dex-website-assets/src/scripts/product-nav.js +112 -0
- data/assets/dex-website-assets/src/scripts/search.js +41 -0
- data/assets/dex-website-assets/src/scripts/single-field-form.js +28 -0
- data/assets/dex-website-assets/src/scripts/subscribe-form.js +54 -0
- data/assets/dex-website-assets/src/scripts/video-responsive.js +15 -0
- data/assets/dex-website-assets/src/styles/_base.scss +2 -0
- data/assets/dex-website-assets/src/styles/_mixins.scss +73 -0
- data/assets/dex-website-assets/src/styles/_variables.scss +45 -0
- data/assets/dex-website-assets/src/styles/bootstrap-collapse.css +25 -0
- data/assets/dex-website-assets/src/styles/bootstrap-collapse.css.map +7 -0
- data/assets/dex-website-assets/src/styles/bootstrap-collapse.scss +26 -0
- data/assets/dex-website-assets/src/styles/bootstrap-theme.css +475 -0
- data/assets/dex-website-assets/src/styles/bootstrap.css +6565 -0
- data/assets/dex-website-assets/src/styles/content-slot.css +343 -0
- data/assets/dex-website-assets/src/styles/content-slot.css.map +7 -0
- data/assets/dex-website-assets/src/styles/content-slot.scss +506 -0
- data/assets/dex-website-assets/src/styles/custom-controls.css +40 -0
- data/assets/dex-website-assets/src/styles/custom-controls.css.map +7 -0
- data/assets/dex-website-assets/src/styles/custom-controls.scss +48 -0
- data/assets/dex-website-assets/src/styles/font-icons-variables.css +3 -0
- data/assets/dex-website-assets/src/styles/font-icons-variables.css.map +7 -0
- data/assets/dex-website-assets/src/styles/font-icons-variables.scss +3 -0
- data/assets/dex-website-assets/src/styles/font-icons.css +28 -0
- data/assets/dex-website-assets/src/styles/font-icons.css.map +7 -0
- data/assets/dex-website-assets/src/styles/font-icons.scss +40 -0
- data/assets/dex-website-assets/src/styles/footer.css +98 -0
- data/assets/dex-website-assets/src/styles/footer.css.map +7 -0
- data/assets/dex-website-assets/src/styles/footer.scss +130 -0
- data/assets/dex-website-assets/src/styles/grid-responsive.css +50 -0
- data/assets/dex-website-assets/src/styles/grid-responsive.css.map +7 -0
- data/assets/dex-website-assets/src/styles/grid-responsive.scss +67 -0
- data/assets/dex-website-assets/src/styles/grid.css +821 -0
- data/assets/dex-website-assets/src/styles/grid.css.map +7 -0
- data/assets/dex-website-assets/src/styles/grid.scss +1159 -0
- data/assets/dex-website-assets/src/styles/header-banner-button-cta.css +79 -0
- data/assets/dex-website-assets/src/styles/header-banner-button-cta.css.map +7 -0
- data/assets/dex-website-assets/src/styles/header-banner-button-cta.scss +103 -0
- data/assets/dex-website-assets/src/styles/hero-carousel.css +175 -0
- data/assets/dex-website-assets/src/styles/hero-carousel.css.map +7 -0
- data/assets/dex-website-assets/src/styles/hero-carousel.scss +179 -0
- data/assets/dex-website-assets/src/styles/hero-no-cta.css +1106 -0
- data/assets/dex-website-assets/src/styles/hero-no-cta.css.map +7 -0
- data/assets/dex-website-assets/src/styles/hero-no-cta.scss +125 -0
- data/assets/dex-website-assets/src/styles/home.css +237 -0
- data/assets/dex-website-assets/src/styles/home.css.map +7 -0
- data/assets/dex-website-assets/src/styles/home.scss +299 -0
- data/assets/dex-website-assets/src/styles/media.css +17 -0
- data/assets/dex-website-assets/src/styles/media.css.map +7 -0
- data/assets/dex-website-assets/src/styles/media.scss +18 -0
- data/assets/dex-website-assets/src/styles/menu-button.css +122 -0
- data/assets/dex-website-assets/src/styles/menu-button.css.map +7 -0
- data/assets/dex-website-assets/src/styles/menu-button.scss +121 -0
- data/assets/dex-website-assets/src/styles/menu.css +428 -0
- data/assets/dex-website-assets/src/styles/menu.css.map +7 -0
- data/assets/dex-website-assets/src/styles/menu.scss +578 -0
- data/assets/dex-website-assets/src/styles/message.css +34 -0
- data/assets/dex-website-assets/src/styles/message.css.map +7 -0
- data/assets/dex-website-assets/src/styles/message.scss +38 -0
- data/assets/dex-website-assets/src/styles/multi-column-left-icon.css +57 -0
- data/assets/dex-website-assets/src/styles/multi-column-left-icon.css.map +7 -0
- data/assets/dex-website-assets/src/styles/multi-column-left-icon.scss +104 -0
- data/assets/dex-website-assets/src/styles/multi-column-with-image.css +49 -0
- data/assets/dex-website-assets/src/styles/multi-column-with-image.css.map +7 -0
- data/assets/dex-website-assets/src/styles/multi-column-with-image.scss +63 -0
- data/assets/dex-website-assets/src/styles/navbar.css +82 -0
- data/assets/dex-website-assets/src/styles/navbar.css.map +7 -0
- data/assets/dex-website-assets/src/styles/navbar.scss +91 -0
- data/assets/dex-website-assets/src/styles/navigation.css +66 -0
- data/assets/dex-website-assets/src/styles/navigation.scss +81 -0
- data/assets/dex-website-assets/src/styles/oas.css +22 -0
- data/assets/dex-website-assets/src/styles/oas.css.map +7 -0
- data/assets/dex-website-assets/src/styles/oas.scss +27 -0
- data/assets/dex-website-assets/src/styles/owl-carousel.css +202 -0
- data/assets/dex-website-assets/src/styles/owl-carousel.css.map +7 -0
- data/assets/dex-website-assets/src/styles/owl-carousel.scss +215 -0
- data/assets/dex-website-assets/src/styles/popover.css +63 -0
- data/assets/dex-website-assets/src/styles/popover.css.map +7 -0
- data/assets/dex-website-assets/src/styles/popover.scss +65 -0
- data/assets/dex-website-assets/src/styles/product-nav.css +74 -0
- data/assets/dex-website-assets/src/styles/product-nav.css.map +7 -0
- data/assets/dex-website-assets/src/styles/product-nav.scss +110 -0
- data/assets/dex-website-assets/src/styles/sdk-downloader.css +155 -0
- data/assets/dex-website-assets/src/styles/sdk-downloader.css.map +7 -0
- data/assets/dex-website-assets/src/styles/sdk-downloader.scss +279 -0
- data/assets/dex-website-assets/src/styles/search.css +148 -0
- data/assets/dex-website-assets/src/styles/search.css.map +7 -0
- data/assets/dex-website-assets/src/styles/search.scss +188 -0
- data/assets/dex-website-assets/src/styles/sidebar.css +68 -0
- data/assets/dex-website-assets/src/styles/sidebar.css.map +7 -0
- data/assets/dex-website-assets/src/styles/sidebar.scss +87 -0
- data/assets/dex-website-assets/src/styles/single-field-form.css +157 -0
- data/assets/dex-website-assets/src/styles/single-field-form.css.map +7 -0
- data/assets/dex-website-assets/src/styles/single-field-form.scss +88 -0
- data/assets/dex-website-assets/src/styles/subscribe-form.css +53 -0
- data/assets/dex-website-assets/src/styles/subscribe-form.css.map +7 -0
- data/assets/dex-website-assets/src/styles/subscribe-form.scss +63 -0
- data/assets/dex-website-assets/src/styles/typography.css +85 -0
- data/assets/dex-website-assets/src/styles/typography.css.map +7 -0
- data/assets/dex-website-assets/src/styles/typography.scss +96 -0
- data/assets/dex-website-assets/src/styles/utility.css +102 -0
- data/assets/dex-website-assets/src/styles/utility.css.map +7 -0
- data/assets/dex-website-assets/src/styles/utility.scss +135 -0
- data/assets/dex-website-assets/src/styles/value-props.css +49 -0
- data/assets/dex-website-assets/src/styles/value-props.css.map +7 -0
- data/assets/dex-website-assets/src/styles/value-props.scss +64 -0
- data/assets/hippo-assets/customscriptshippo.js +18 -0
- data/assets/hippo-assets/highlighter.min.css +3 -0
- data/assets/hippo-assets/hipposidebar.css +199 -0
- data/assets/hippo-assets/hipposidebarpage.min.css +1 -0
- data/assets/hippo-assets/includescript.min.js +3 -0
- data/assets/hippo-assets/navtabshippo.css +4 -0
- metadata +136 -1
@@ -0,0 +1,419 @@
|
|
1
|
+
/************************************************************************************
|
2
|
+
|
3
|
+
DevPortal Navigation Popover
|
4
|
+
|
5
|
+
This is a custom popover for the desktop version of the devportal menu.
|
6
|
+
It is unique in two ways.
|
7
|
+
|
8
|
+
1. It allows you to specify a screen size below which the popover will
|
9
|
+
not appear. This allows us to do something different for mobile.
|
10
|
+
|
11
|
+
2. It allows you to hover over the modal and click on a link in the
|
12
|
+
body of the popover.
|
13
|
+
|
14
|
+
**************************************************************************************/
|
15
|
+
P.when("jQuery").register("jquery-placeholder", function ($) {
|
16
|
+
'use strict';
|
17
|
+
|
18
|
+
// NAV POPOVER PUBLIC CLASS DEFINITION
|
19
|
+
// ===============================
|
20
|
+
|
21
|
+
var DPNavbarPopover = function (element, options) {
|
22
|
+
this.options = null;
|
23
|
+
this.timeout = null;
|
24
|
+
this.hoverState = null;
|
25
|
+
this.$element = null;
|
26
|
+
|
27
|
+
this.init(element, options);
|
28
|
+
}
|
29
|
+
|
30
|
+
DPNavbarPopover.TRANSITION_DURATION = 150;
|
31
|
+
|
32
|
+
DPNavbarPopover.DEFAULTS = {
|
33
|
+
animation: true,
|
34
|
+
minWindowWidth: 1000,
|
35
|
+
template:
|
36
|
+
'<div class="dp-navbar-popover">' +
|
37
|
+
'<div class="dp-navbar-popover-arrow"></div>' +
|
38
|
+
'<div class="dp-navbar-popover-content"></div>' +
|
39
|
+
'</div>',
|
40
|
+
trigger: 'hover focus',
|
41
|
+
delay: 0,
|
42
|
+
html: false,
|
43
|
+
content: ''
|
44
|
+
}
|
45
|
+
|
46
|
+
DPNavbarPopover.prototype.init = function (element, options) {
|
47
|
+
this.$element = $(element);
|
48
|
+
this.options = this.getOptions(options);
|
49
|
+
|
50
|
+
var triggers = this.options.trigger.split(' ');
|
51
|
+
|
52
|
+
for (var i = triggers.length; i--;) {
|
53
|
+
var trigger = triggers[i];
|
54
|
+
|
55
|
+
if (trigger === 'click') {
|
56
|
+
this.$element.click($.proxy(this.toggle, this));
|
57
|
+
} else if (trigger !== 'manual') {
|
58
|
+
if (trigger === 'hover') {
|
59
|
+
this.$element.mouseenter($.proxy(this.enter, this));
|
60
|
+
this.$element.mouseleave($.proxy(this.leave, this));
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
this.$element.focusin($.proxy(this.enter, this));
|
64
|
+
this.$element.focusout($.proxy(this.leave, this));
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
DPNavbarPopover.prototype.getDefaults = function () {
|
71
|
+
return DPNavbarPopover.DEFAULTS;
|
72
|
+
}
|
73
|
+
|
74
|
+
DPNavbarPopover.prototype.getOptions = function (options) {
|
75
|
+
options = $.extend({}, this.getDefaults(), this.$element.data(), options);
|
76
|
+
|
77
|
+
if (options.delay && typeof options.delay === 'number') {
|
78
|
+
var delay = options.delay;
|
79
|
+
options.delay = {
|
80
|
+
show: delay,
|
81
|
+
hide: delay
|
82
|
+
};
|
83
|
+
}
|
84
|
+
|
85
|
+
return options;
|
86
|
+
}
|
87
|
+
|
88
|
+
DPNavbarPopover.prototype.enter = function () {
|
89
|
+
var self = this;
|
90
|
+
if (window.innerWidth > self.options.minWindowWidth) {
|
91
|
+
|
92
|
+
if (self.$popover && self.$popover.is(':visible')) {
|
93
|
+
self.hoverState = 'in';
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
|
97
|
+
clearTimeout(self.timeout);
|
98
|
+
|
99
|
+
self.hoverState = 'in';
|
100
|
+
|
101
|
+
if (!self.options.delay || !self.options.delay.show) {
|
102
|
+
return self.show();
|
103
|
+
}
|
104
|
+
|
105
|
+
self.timeout = setTimeout(function () {
|
106
|
+
if (self.hoverState === 'in') {
|
107
|
+
self.show();
|
108
|
+
}
|
109
|
+
}, self.options.delay.show);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
DPNavbarPopover.prototype.leave = function (event) {
|
114
|
+
var self = this;
|
115
|
+
var container;
|
116
|
+
|
117
|
+
clearTimeout(self.timeout);
|
118
|
+
|
119
|
+
self.hoverState = 'out';
|
120
|
+
|
121
|
+
if (!self.options.delay || !self.options.delay.hide) {
|
122
|
+
return self.hide();
|
123
|
+
}
|
124
|
+
|
125
|
+
self.timeout = setTimeout(function () {
|
126
|
+
if (self.hoverState === 'out') {
|
127
|
+
self.hide();
|
128
|
+
}
|
129
|
+
}, self.options.delay.hide);
|
130
|
+
|
131
|
+
if (event.currentTarget) {
|
132
|
+
container = $(event.currentTarget).siblings('.dp-navbar-popover');
|
133
|
+
container.one('mouseenter', function() {
|
134
|
+
clearTimeout(self.timeout);
|
135
|
+
container.one('mouseleave', function(event) {
|
136
|
+
// This recursive call caused an unresponsive script
|
137
|
+
// warning dialog. Changing to hide() fixed that and doesn't
|
138
|
+
// appear to have any negative effects.
|
139
|
+
//self.leave(event);
|
140
|
+
self.hide();
|
141
|
+
});
|
142
|
+
});
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
DPNavbarPopover.prototype.show = function () {
|
147
|
+
// What does this do?
|
148
|
+
var e = $.Event('show.dp.nav.popover');
|
149
|
+
this.$element.trigger(e)
|
150
|
+
|
151
|
+
if (this.hasContent()) {
|
152
|
+
var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
|
153
|
+
if (e.isDefaultPrevented() || !inDom) {
|
154
|
+
return;
|
155
|
+
}
|
156
|
+
var that = this;
|
157
|
+
|
158
|
+
var $popover = this.popover();
|
159
|
+
|
160
|
+
var tipId = this.getUID();
|
161
|
+
|
162
|
+
this.setContent();
|
163
|
+
$popover.attr('id', tipId);
|
164
|
+
this.$element.attr('aria-describedby', tipId);
|
165
|
+
|
166
|
+
if (this.options.animation) {
|
167
|
+
$popover.addClass('fade');
|
168
|
+
}
|
169
|
+
|
170
|
+
$popover
|
171
|
+
.detach()
|
172
|
+
.css({ top: 0, left: 0, display: 'block' })
|
173
|
+
.data('dp.navbar.popover', this);
|
174
|
+
|
175
|
+
$popover.insertAfter(this.$element)
|
176
|
+
|
177
|
+
var pos = this.getPosition();
|
178
|
+
var offset = { top: pos.top + pos.height, left: pos.left };
|
179
|
+
|
180
|
+
this.applyPlacement(offset);
|
181
|
+
|
182
|
+
var complete = function () {
|
183
|
+
var prevHoverState = that.hoverState;
|
184
|
+
that.$element.trigger('shown.bs.' + that.type);
|
185
|
+
that.hoverState = null;
|
186
|
+
|
187
|
+
if (prevHoverState === 'out') {
|
188
|
+
that.leave(that);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
if ($.support.transition && this.$popover.hasClass('fade')) {
|
193
|
+
$popover
|
194
|
+
.one('bsTransitionEnd', complete)
|
195
|
+
.emulateTransitionEnd(DPNavbarPopover.TRANSITION_DURATION);
|
196
|
+
} else {
|
197
|
+
complete();
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
DPNavbarPopover.prototype.applyPlacement = function (offset, placement) {
|
203
|
+
var $popover = this.popover();
|
204
|
+
var elWidth = this.$element[0].offsetWidth;
|
205
|
+
var arrowOffset = (elWidth / 2) - 11;
|
206
|
+
|
207
|
+
offset.top = offset.top + 10;
|
208
|
+
offset.left = offset.left;
|
209
|
+
|
210
|
+
$popover.addClass('in');
|
211
|
+
$popover.offset(offset);
|
212
|
+
|
213
|
+
this.arrow().css('margin-left', arrowOffset + 'px')
|
214
|
+
}
|
215
|
+
|
216
|
+
DPNavbarPopover.prototype.hasContent = function () {
|
217
|
+
return this.getContent();
|
218
|
+
}
|
219
|
+
|
220
|
+
DPNavbarPopover.prototype.getContent = function () {
|
221
|
+
if (this.$element.attr('data-content')) {
|
222
|
+
return this.$element.attr('data-content');
|
223
|
+
} else {
|
224
|
+
if (typeof this.options.content === 'function') {
|
225
|
+
return this.options.content.call(this.$element[0]);
|
226
|
+
} else {
|
227
|
+
return this.options.content;
|
228
|
+
}
|
229
|
+
}
|
230
|
+
}
|
231
|
+
|
232
|
+
DPNavbarPopover.prototype.setContent = function () {
|
233
|
+
var $popover = this.popover();
|
234
|
+
var content = this.getContent();
|
235
|
+
|
236
|
+
$popover.find('.dp-navbar-popover-content').children().detach().end()[
|
237
|
+
// we use append for html objects to maintain js events
|
238
|
+
this.options.html ? (typeof content === 'string' ? 'html' : 'append') : 'text'
|
239
|
+
](content)
|
240
|
+
|
241
|
+
$popover.removeClass('fade top bottom left right in')
|
242
|
+
}
|
243
|
+
|
244
|
+
DPNavbarPopover.prototype.hide = function (callback) {
|
245
|
+
var that = this;
|
246
|
+
var $popover = this.popover();
|
247
|
+
var e = $.Event('hide.dp.nav.popover');
|
248
|
+
|
249
|
+
function complete() {
|
250
|
+
$popover.fadeOut();
|
251
|
+
if (that.hoverState !== 'in') {
|
252
|
+
$popover.detach()
|
253
|
+
}
|
254
|
+
|
255
|
+
that.$element
|
256
|
+
.removeAttr('aria-describedby')
|
257
|
+
.trigger('hidden.dp.nav.popover')
|
258
|
+
|
259
|
+
if (callback) {
|
260
|
+
callback();
|
261
|
+
}
|
262
|
+
}
|
263
|
+
|
264
|
+
this.$element.trigger(e);
|
265
|
+
|
266
|
+
if (e.isDefaultPrevented()) {
|
267
|
+
return;
|
268
|
+
}
|
269
|
+
|
270
|
+
$popover.removeClass('in');
|
271
|
+
|
272
|
+
// Removed the transition logic as it resulted in menus that never disappeared.
|
273
|
+
//
|
274
|
+
// if ($.support.transition && this.$popover.hasClass('fade')) {
|
275
|
+
// $popover
|
276
|
+
// .one('bsTransitionEnd', complete)
|
277
|
+
// .emulateTransitionEnd(DPNavbarPopover.TRANSITION_DURATION)
|
278
|
+
// } else {
|
279
|
+
complete();
|
280
|
+
// }
|
281
|
+
|
282
|
+
this.hoverState = null;
|
283
|
+
|
284
|
+
return this;
|
285
|
+
}
|
286
|
+
|
287
|
+
DPNavbarPopover.prototype.hasContent = function () {
|
288
|
+
return this.getContent();
|
289
|
+
}
|
290
|
+
|
291
|
+
DPNavbarPopover.prototype.getPosition = function ($element) {
|
292
|
+
$element = $element || this.$element;
|
293
|
+
|
294
|
+
var el = $element[0];
|
295
|
+
|
296
|
+
var elRect = el.getBoundingClientRect()
|
297
|
+
if (elRect.width === null) {
|
298
|
+
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
299
|
+
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
300
|
+
}
|
301
|
+
var elOffset = $element.offset()
|
302
|
+
return $.extend({}, elRect, elOffset);
|
303
|
+
}
|
304
|
+
|
305
|
+
DPNavbarPopover.prototype.getUID = function () {
|
306
|
+
var UID = Math.round(Math.random() * 1000000);
|
307
|
+
return 'dp-navbar-popover-' + UID;
|
308
|
+
}
|
309
|
+
|
310
|
+
DPNavbarPopover.prototype.popover = function () {
|
311
|
+
if (!this.$popover) {
|
312
|
+
this.$popover = $(this.options.template);
|
313
|
+
}
|
314
|
+
return this.$popover
|
315
|
+
}
|
316
|
+
|
317
|
+
DPNavbarPopover.prototype.arrow = function () {
|
318
|
+
if (!this.$arrow) {
|
319
|
+
this.$arrow = this.popover().find('.dp-navbar-popover-arrow');
|
320
|
+
}
|
321
|
+
return this.$arrow;
|
322
|
+
}
|
323
|
+
|
324
|
+
DPNavbarPopover.prototype.toggle = function (e) {
|
325
|
+
var self = this
|
326
|
+
if (e) {
|
327
|
+
self = $(e.currentTarget).data('dp.navbar.popover')
|
328
|
+
}
|
329
|
+
|
330
|
+
self.popover().hasClass('in') ? self.leave(self) : self.enter(self)
|
331
|
+
}
|
332
|
+
|
333
|
+
// Added for debugging
|
334
|
+
DPNavbarPopover.prototype.getMenuName = function () {
|
335
|
+
return this.$element.find("a.dp-navbar-button").text().trim();
|
336
|
+
}
|
337
|
+
|
338
|
+
// TOOLTIP PLUGIN DEFINITION
|
339
|
+
// =========================
|
340
|
+
|
341
|
+
function Plugin(option) {
|
342
|
+
return this.each(function () {
|
343
|
+
var $this = $(this);
|
344
|
+
var data = $this.data('dp.navbar.popover');
|
345
|
+
var options = typeof option === 'object' && option;
|
346
|
+
|
347
|
+
if (!data && option === 'destroy') {
|
348
|
+
return;
|
349
|
+
}
|
350
|
+
if (!data) {
|
351
|
+
$this.data('dp.navbar.popover', (data = new DPNavbarPopover(this, options)));
|
352
|
+
}
|
353
|
+
if (typeof option === 'string') {
|
354
|
+
data[option]();
|
355
|
+
}
|
356
|
+
})
|
357
|
+
}
|
358
|
+
|
359
|
+
var old = $.fn.dpNavbarPopover
|
360
|
+
|
361
|
+
$.fn.dpNavbarPopover = Plugin
|
362
|
+
$.fn.dpNavbarPopover.Constructor = DPNavbarPopover
|
363
|
+
|
364
|
+
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
|
365
|
+
// ============================================================
|
366
|
+
|
367
|
+
function transitionEnd() {
|
368
|
+
var el = document.createElement('bootstrap')
|
369
|
+
|
370
|
+
var transEndEventNames = {
|
371
|
+
WebkitTransition : 'webkitTransitionEnd',
|
372
|
+
MozTransition : 'transitionend',
|
373
|
+
OTransition : 'oTransitionEnd otransitionend',
|
374
|
+
transition : 'transitionend'
|
375
|
+
}
|
376
|
+
|
377
|
+
for (var name in transEndEventNames) {
|
378
|
+
if (el.style[name] !== undefined) {
|
379
|
+
return { end: transEndEventNames[name] }
|
380
|
+
}
|
381
|
+
}
|
382
|
+
|
383
|
+
return false; // explicit for ie8 (._.)
|
384
|
+
}
|
385
|
+
|
386
|
+
// http://blog.alexmaccaw.com/css-transitions
|
387
|
+
$.fn.emulateTransitionEnd = function (duration) {
|
388
|
+
var called = false
|
389
|
+
var $el = this
|
390
|
+
$(this).one('bsTransitionEnd', function () {
|
391
|
+
called = true;
|
392
|
+
})
|
393
|
+
var callback = function () {
|
394
|
+
if (!called) {
|
395
|
+
$($el).trigger($.support.transition.end);
|
396
|
+
}
|
397
|
+
}
|
398
|
+
setTimeout(callback, duration);
|
399
|
+
return this;
|
400
|
+
}
|
401
|
+
|
402
|
+
$(function () {
|
403
|
+
$.support.transition = transitionEnd();
|
404
|
+
|
405
|
+
if (!$.support.transition) {
|
406
|
+
return;
|
407
|
+
}
|
408
|
+
|
409
|
+
$.event.special.bsTransitionEnd = {
|
410
|
+
bindType: $.support.transition.end,
|
411
|
+
delegateType: $.support.transition.end,
|
412
|
+
handle: function (e) {
|
413
|
+
if ($(e.target).is(this)) {
|
414
|
+
return e.handleObj.handler.apply(this, arguments);
|
415
|
+
}
|
416
|
+
}
|
417
|
+
}
|
418
|
+
})
|
419
|
+
});
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
P.when("jQuery", "jQuery-owl","ready").execute(function($) {
|
4
|
+
|
5
|
+
var $carouselWrapper = $('#hero-carousel');
|
6
|
+
var $carouselEls = $carouselWrapper.find('.hero-carousel-item');
|
7
|
+
|
8
|
+
var defaults = {
|
9
|
+
items: 1,
|
10
|
+
autoplay: true,
|
11
|
+
autoplayTimeout: 8000,
|
12
|
+
autoplaySpeed: 2000,
|
13
|
+
dotsSpeed: 1000,
|
14
|
+
loop: true,
|
15
|
+
}
|
16
|
+
|
17
|
+
var ocOptions = $carouselWrapper.data('carousel-options');
|
18
|
+
// delete carousel keys that are empty or null otherwise jQuery extend will not function as expected.
|
19
|
+
$.each(ocOptions, function(key,value) {
|
20
|
+
if (value === "" || value === null) {
|
21
|
+
delete ocOptions[key];
|
22
|
+
}
|
23
|
+
});
|
24
|
+
|
25
|
+
function initCarousel() {
|
26
|
+
$carouselWrapper.owlCarousel( $.extend( defaults, ocOptions) );
|
27
|
+
}
|
28
|
+
|
29
|
+
$carouselEls.length > 1 ? initCarousel() : null;
|
30
|
+
});
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
P.when("jQuery", "jQuery-owl","ready").execute(function($) {
|
4
|
+
|
5
|
+
var $heroNoCTA = $('#hero-no-cta');
|
6
|
+
var $heroNoCTABlocks = $heroNoCTA.find('.hero-no-cta-block');
|
7
|
+
|
8
|
+
function initCarousel() {
|
9
|
+
$heroNoCTA.owlCarousel({
|
10
|
+
items: 1,
|
11
|
+
autoplay: true,
|
12
|
+
autoplayTimeout: 8000,
|
13
|
+
autoplaySpeed: 2000,
|
14
|
+
loop: true,
|
15
|
+
});
|
16
|
+
}
|
17
|
+
|
18
|
+
$heroNoCTABlocks.length > 1 ? initCarousel() : null;
|
19
|
+
|
20
|
+
});
|
@@ -0,0 +1,47 @@
|
|
1
|
+
P.when("jQuery", "jquery-lazyload", "ready").execute(function($) {
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
function filterByClassName(collection, className) {
|
5
|
+
if(!isArrayAndNotEmpty(collection)) {
|
6
|
+
return false;
|
7
|
+
}
|
8
|
+
return (
|
9
|
+
collection.filter(function(i) {
|
10
|
+
return !$(collection[i]).hasClass(className);
|
11
|
+
})
|
12
|
+
);
|
13
|
+
}
|
14
|
+
|
15
|
+
function isArrayAndNotEmpty(arr) {
|
16
|
+
return (
|
17
|
+
typeof arr !== "undefined" && arr !== null && arr.length > 0
|
18
|
+
);
|
19
|
+
}
|
20
|
+
|
21
|
+
function initLazyLoad(imgs) {
|
22
|
+
var $winWidth = $(window).width();
|
23
|
+
$winWidth > 992 ? attachLazyLoad(filterByClassName(imgs.lazyImgs, "u-lazy-load--attached")) : attachLazyLoad(filterByClassName(imgs.lazyImgsMobile, "u-lazy-load--attached"));
|
24
|
+
}
|
25
|
+
|
26
|
+
function attachLazyLoad(els) {
|
27
|
+
if(!isArrayAndNotEmpty(els)) {
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
|
31
|
+
$(els).lazyload({
|
32
|
+
threshold: 400,
|
33
|
+
effect: "fadeIn",
|
34
|
+
effectspeed: 100,
|
35
|
+
}).addClass("u-lazy-load--attached");
|
36
|
+
}
|
37
|
+
|
38
|
+
var imgs = {};
|
39
|
+
imgs.lazyImgs = $(".u-lazy-load");
|
40
|
+
imgs.lazyImgsMobile = filterByClassName(imgs.lazyImgs, "u-lazy-load--noMobile");
|
41
|
+
|
42
|
+
$(window).resize(function() {
|
43
|
+
initLazyLoad(imgs);
|
44
|
+
})
|
45
|
+
|
46
|
+
initLazyLoad(imgs);
|
47
|
+
});
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
P.when("jQuery", "jQuery-owl","ready").execute(function($) {
|
5
|
+
|
6
|
+
var owls = $("#in-page-carousel");
|
7
|
+
var prevButton = $(".car-prev");
|
8
|
+
var nextButton = $(".car-next");
|
9
|
+
|
10
|
+
/*
|
11
|
+
* Event details documented here:
|
12
|
+
* http://www.owlcarousel.owlgraphic.com/docs/api-events.html
|
13
|
+
*/
|
14
|
+
owls.on("translated.owl.carousel initialized.owl.carousel", function(event){
|
15
|
+
/*
|
16
|
+
* Hide the left button if we are at the carousel
|
17
|
+
* starting position.
|
18
|
+
*/
|
19
|
+
if(event.page.index === 0) {
|
20
|
+
prevButton.addClass('disabled');
|
21
|
+
} else {
|
22
|
+
prevButton.removeClass('disabled');
|
23
|
+
}
|
24
|
+
|
25
|
+
/*
|
26
|
+
* Hide the next button if the last item is completely visible within
|
27
|
+
* the owl carousel
|
28
|
+
*/
|
29
|
+
var lastItem = owls.find(".owl-item").last();
|
30
|
+
if(lastItem.offset().left + lastItem.width() < owls.offset().left + owls.width()) {
|
31
|
+
nextButton.addClass('disabled');
|
32
|
+
} else {
|
33
|
+
nextButton.removeClass('disabled');
|
34
|
+
}
|
35
|
+
});
|
36
|
+
|
37
|
+
/*
|
38
|
+
* Initialize the carousel. Documentation:
|
39
|
+
* http://www.owlcarousel.owlgraphic.com/docs/api-options.html
|
40
|
+
*/
|
41
|
+
owls.owlCarousel({
|
42
|
+
pagination : false,
|
43
|
+
margin : 30,
|
44
|
+
autoWidth:true,
|
45
|
+
loop:false,
|
46
|
+
responsive:{
|
47
|
+
0:{
|
48
|
+
items:1
|
49
|
+
},
|
50
|
+
490:{
|
51
|
+
items:2
|
52
|
+
},
|
53
|
+
768:{
|
54
|
+
items:3
|
55
|
+
},
|
56
|
+
1280:{
|
57
|
+
items:4
|
58
|
+
}
|
59
|
+
}
|
60
|
+
});
|
61
|
+
|
62
|
+
nextButton.click(function() {
|
63
|
+
if(!nextButton.hasClass('disabled')){
|
64
|
+
owls.trigger('next.owl.carousel');
|
65
|
+
}
|
66
|
+
});
|
67
|
+
|
68
|
+
prevButton.click(function() {
|
69
|
+
if(!prevButton.hasClass('disabled')) {
|
70
|
+
owls.trigger('prev.owl.carousel');
|
71
|
+
}
|
72
|
+
});
|
73
|
+
|
74
|
+
});
|
75
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery Cookie Plugin v1.4.1
|
3
|
+
* https://github.com/carhartl/jquery-cookie
|
4
|
+
*
|
5
|
+
* Copyright 2006, 2014 Klaus Hartl
|
6
|
+
* Released under the MIT license
|
7
|
+
*/
|
8
|
+
|
9
|
+
|
10
|
+
P.when("jQuery").register("jquery-cookie", function() {
|
11
|
+
"use strict";
|
12
|
+
(function (factory) {
|
13
|
+
/* if (typeof define === 'function' && define.amd) {
|
14
|
+
// AMD (Register as an anonymous module)
|
15
|
+
define(['jquery'], factory);
|
16
|
+
} else if (typeof exports === 'object') {
|
17
|
+
// Node/CommonJS
|
18
|
+
module.exports = factory(require('jquery'));
|
19
|
+
} else {
|
20
|
+
*/ // Browser globals
|
21
|
+
factory(jQuery);
|
22
|
+
// }
|
23
|
+
}(function ($) {
|
24
|
+
|
25
|
+
var pluses = /\+/g;
|
26
|
+
|
27
|
+
function encode(s) {
|
28
|
+
return config.raw ? s : encodeURIComponent(s);
|
29
|
+
}
|
30
|
+
|
31
|
+
function decode(s) {
|
32
|
+
return config.raw ? s : decodeURIComponent(s);
|
33
|
+
}
|
34
|
+
|
35
|
+
function stringifyCookieValue(value) {
|
36
|
+
return encode(config.json ? JSON.stringify(value) : String(value));
|
37
|
+
}
|
38
|
+
|
39
|
+
function parseCookieValue(s) {
|
40
|
+
if (s.indexOf('"') === 0) {
|
41
|
+
// This is a quoted cookie as according to RFC2068, unescape...
|
42
|
+
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
43
|
+
}
|
44
|
+
|
45
|
+
try {
|
46
|
+
// Replace server-side written pluses with spaces.
|
47
|
+
// If we can't decode the cookie, ignore it, it's unusable.
|
48
|
+
// If we can't parse the cookie, ignore it, it's unusable.
|
49
|
+
s = decodeURIComponent(s.replace(pluses, ' '));
|
50
|
+
return config.json ? JSON.parse(s) : s;
|
51
|
+
} catch(e) {}
|
52
|
+
}
|
53
|
+
|
54
|
+
function read(s, converter) {
|
55
|
+
var value = config.raw ? s : parseCookieValue(s);
|
56
|
+
return $.isFunction(converter) ? converter(value) : value;
|
57
|
+
}
|
58
|
+
|
59
|
+
var config = $.cookie = function (key, value, options) {
|
60
|
+
|
61
|
+
// Write
|
62
|
+
|
63
|
+
if (arguments.length > 1 && !$.isFunction(value)) {
|
64
|
+
options = $.extend({}, config.defaults, options);
|
65
|
+
|
66
|
+
if (typeof options.expires === 'number') {
|
67
|
+
var days = options.expires, t = options.expires = new Date();
|
68
|
+
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
|
69
|
+
}
|
70
|
+
|
71
|
+
return (document.cookie = [
|
72
|
+
encode(key), '=', stringifyCookieValue(value),
|
73
|
+
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
74
|
+
options.path ? '; path=' + options.path : '',
|
75
|
+
options.domain ? '; domain=' + options.domain : '',
|
76
|
+
options.secure ? '; secure' : ''
|
77
|
+
].join(''));
|
78
|
+
}
|
79
|
+
|
80
|
+
// Read
|
81
|
+
|
82
|
+
var result = key ? undefined : {},
|
83
|
+
// To prevent the for loop in the first place assign an empty array
|
84
|
+
// in case there are no cookies at all. Also prevents odd result when
|
85
|
+
// calling $.cookie().
|
86
|
+
cookies = document.cookie ? document.cookie.split('; ') : [],
|
87
|
+
i = 0,
|
88
|
+
l = cookies.length;
|
89
|
+
|
90
|
+
for (; i < l; i++) {
|
91
|
+
var parts = cookies[i].split('='),
|
92
|
+
name = decode(parts.shift()),
|
93
|
+
cookie = parts.join('=');
|
94
|
+
|
95
|
+
if (key === name) {
|
96
|
+
// If second argument (value) is a function it's a converter...
|
97
|
+
result = read(cookie, value);
|
98
|
+
break;
|
99
|
+
}
|
100
|
+
|
101
|
+
// Prevent storing a cookie that we couldn't decode.
|
102
|
+
if (!key && (cookie = read(cookie)) !== undefined) {
|
103
|
+
result[name] = cookie;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
return result;
|
108
|
+
};
|
109
|
+
|
110
|
+
config.defaults = {};
|
111
|
+
|
112
|
+
$.removeCookie = function (key, options) {
|
113
|
+
// Must not alter options, thus extending a fresh object...
|
114
|
+
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
115
|
+
return !$.cookie(key);
|
116
|
+
};
|
117
|
+
|
118
|
+
}));
|
119
|
+
});
|