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,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
+ });