mirror of
https://github.com/nextcloud/documentation.git
synced 2026-01-03 02:09:45 +07:00
This should also make the JS local.
Signed-off-by: Jos Poortvliet <jospoortvliet@gmail.com>
This commit is contained in:
committed by
Morris Jobke
parent
c060b03576
commit
e24f3d4c2e
98
_shared_assets/themes/nextcloud_com/static/js/main.js
Normal file
98
_shared_assets/themes/nextcloud_com/static/js/main.js
Normal file
@@ -0,0 +1,98 @@
|
||||
define(['jquery', 'lodash', 'enquire', 'TweenMax', 'velocity'],
|
||||
function ($, _, enquire, TweenMax) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var main = {
|
||||
init: function() {
|
||||
this.variables.buttonDropdownSelector.on('click', _.bind(this.buttonDropdown, this));
|
||||
$(window).on('scroll.fadeOnce', _.bind(this.revealOnScroll, this));
|
||||
this.animationOnLoadPage();
|
||||
this.removeRevealOnScroll();
|
||||
this.consoleMessage();
|
||||
},
|
||||
|
||||
variables: {
|
||||
topHeaderSelector: '.topheader',
|
||||
heroHeading: '.topheader h1',
|
||||
heroSubtitle: '.topheader h2',
|
||||
heroSectionBackgroundSelector: '.background',
|
||||
buttonDropdownSelector: $('.button--dropdown'),
|
||||
buttonDropdownContentSelector: $('.dropdown-content'),
|
||||
SlideshowTextTriggerSelector: $('.textTrigger'),
|
||||
spriteSlideshowSelector: $('.image-top-container'),
|
||||
slideshowContentSelector: '.slideshow',
|
||||
slideshowIndicatorsSelector: '.indicators',
|
||||
slideshowImageOnTopSelector: '.image-top',
|
||||
textTriggerSelector: '.textTrigger',
|
||||
indicatorSlideshow: 'btn_carousel',
|
||||
visibleClass : 'visible',
|
||||
activeClass: 'active'
|
||||
},
|
||||
|
||||
consoleMessage: function() {
|
||||
console.log('%c\nNextcloud, A safe home for all your data', 'font-size:20px');
|
||||
console.log(
|
||||
'%c',
|
||||
'font-size: 100px; background: white url(' + window.location + 'wp-content/themes/next/assets/img/logo/logo_nextcloud_blue.png) no-repeat left bottom; background-repeat: no-repeat; background-size: 100px 64px;'
|
||||
);
|
||||
},
|
||||
|
||||
checkScrollPosition: function() {
|
||||
var currentScrollPosition = $(document).scrollTop().valueOf();
|
||||
|
||||
if (currentScrollPosition > 500) {
|
||||
$('.revealOnScroll:not(.fade-in)').each(_.bind(this.removeRevealOnScroll, this));
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
removeRevealOnScroll: function(index, element) {
|
||||
$(element).addClass('fade-in');
|
||||
},
|
||||
|
||||
buttonDropdown: function() {
|
||||
this.variables.buttonDropdownSelector.toggleClass(this.variables.activeClass);
|
||||
this.variables.buttonDropdownContentSelector.toggleClass(this.variables.visibleClass);
|
||||
},
|
||||
|
||||
animationOnLoadPage: function() {
|
||||
var animationOnLoadPageTimeline = new TimelineMax ();
|
||||
|
||||
animationOnLoadPageTimeline.to($(this.variables.topHeaderSelector), 1, {autoAlpha: 1});
|
||||
animationOnLoadPageTimeline.to($(this.variables.heroSectionBackgroundSelector), 1, {autoAlpha: 1});
|
||||
animationOnLoadPageTimeline.to($(this.variables.heroHeading), 1, {y:0 , autoAlpha: 1});
|
||||
animationOnLoadPageTimeline.to($(this.variables.heroSubtitle), 1, {y:0 , autoAlpha: 1}, '-= 0.6');
|
||||
},
|
||||
|
||||
smoothScroll: function() {
|
||||
$('a[href*="#"]:not([href="#"]):not([data-toggle="collapse"])').click(function() {
|
||||
|
||||
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
|
||||
var target = $(this.hash);
|
||||
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
|
||||
|
||||
if (target.length) {
|
||||
$('html, body').animate({
|
||||
scrollTop: target.offset().top
|
||||
}, 1000);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
revealOnScroll: function(event) {
|
||||
var scrollTop = $(window).scrollTop();
|
||||
$('.revealOnScroll:not(.fade-in)').each(function(index, element) {
|
||||
var selectorOffset = $(element).offset();
|
||||
if (scrollTop + window.innerHeight - 100 > selectorOffset.top) {
|
||||
$(element).addClass('fade-in').velocity('transition.slideUpIn');
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
main.init();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
// This use the highlight,js plugin, for more information use the link above
|
||||
// https://highlightjs.org/
|
||||
|
||||
// TODO Use workers for better performance
|
||||
|
||||
define(['jquery', 'lodash', 'highlight'],
|
||||
function ($, _, hljs) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var codeHighlight = {
|
||||
init: function() {
|
||||
hljs.initHighlightingOnLoad();
|
||||
},
|
||||
};
|
||||
codeHighlight.init();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,39 @@
|
||||
define(['jquery'],
|
||||
function ($, _, enquire, Velocity, velocityUI, ScrollMagic) {
|
||||
$(document).ready(function(){
|
||||
var sCookieName = "cookiewarning";
|
||||
function createCookie(name, value, days) {
|
||||
if (days) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
||||
var expires = "; expires=" + date.toGMTString();
|
||||
} else var expires = "";
|
||||
document.cookie = name + "=" + value + expires + "; path=/";
|
||||
}
|
||||
|
||||
function readCookie(name) {
|
||||
var nameEQ = name + "=";
|
||||
var ca = document.cookie.split(';');
|
||||
for (var i = 0; i < ca.length; i++) {
|
||||
var c = ca[i];
|
||||
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
|
||||
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// actually give cookie warning
|
||||
if (readCookie(sCookieName) != 1) {
|
||||
setTimeout(function () {
|
||||
$("#cookieConsent").fadeIn(500);
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
$("#closeCookieConsent, .cookieConsentOK").click(function() {
|
||||
$("#cookieConsent").fadeOut(200);
|
||||
createCookie(sCookieName, 1, 365)
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
268
_shared_assets/themes/nextcloud_com/static/js/modules/header.js
Normal file
268
_shared_assets/themes/nextcloud_com/static/js/modules/header.js
Normal file
@@ -0,0 +1,268 @@
|
||||
define(['jquery', 'lodash', 'enquire', 'bodymovin', 'headroom', 'headroomJquery', 'velocity', 'velocityUI' ],
|
||||
function ($, _, enquire, bodymovin, Headroom, headroomJquery, Velocity, velocityUI) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var HeaderApp = {
|
||||
init: function() {
|
||||
|
||||
this.didScroll = false;
|
||||
this.menuOpened = false;
|
||||
this.enquireInitializedMobile = false;
|
||||
|
||||
//Fade In animation
|
||||
$(this.variables.navigationId).velocity('transition.fadeIn', 1000 );
|
||||
this.animatedLogoSprite();
|
||||
|
||||
enquire.register('screen and (max-width: 992px)', {
|
||||
match: _.bind(this.mobileEvent, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (max-height: 700px)', {
|
||||
match: _.bind(this.showAndHideHeader, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (min-width: 993px)', {
|
||||
match: _.bind(this.desktopDropdownEvent, this)
|
||||
});
|
||||
},
|
||||
|
||||
variables : {
|
||||
toggleSelector: '#toggle',
|
||||
navigationId: '#nav',
|
||||
navigationSelector: '.nav',
|
||||
subMenuSelector: '#menuAnchor',
|
||||
sectionsSelector: '.nav__sections',
|
||||
sectionsContainerSelector: '.nav__sections-wrapper',
|
||||
sectionSelector: '.nav__section',
|
||||
navBackgroundSelector: '.nav__bg',
|
||||
navBackgroundWrapper: '.nav__bg-wrapper',
|
||||
rightNavigationSelector: '.right-buttons',
|
||||
linksSelector: '.nav__links',
|
||||
logoSelector: '.logo',
|
||||
mobileClass: 'mobile',
|
||||
activeClass: 'active',
|
||||
scrolledClass:'scrolled',
|
||||
backgroundAnimationClass: 'is-animatable',
|
||||
linksVisibleClass: 'is-visible',
|
||||
mobileBackgroundSelector: '.mobile-bg',
|
||||
mobileMenuClass: 'menu-open',
|
||||
showNavigationClass:'nav-down',
|
||||
hideNavigationClass: 'nav-up',
|
||||
playOnHoverClass: 'hoverPlay',
|
||||
stopAnimationClass: 'stopedAnimation',
|
||||
mobileBackgroundContainerSelector: '.mobile-bg-container',
|
||||
},
|
||||
|
||||
toggleMobileMenu: function(event) {
|
||||
$(this.variables.linksSelector).hide().removeClass(this.variables.activeClass); //hide all submenus without animation
|
||||
$(event.currentTarget).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.mobileBackgroundSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.sectionsSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.rightNavigationSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.logoSelector).toggleClass(this.variables.mobileMenuClass);
|
||||
$(this.variables.mobileBackgroundContainerSelector).toggleClass(this.variables.backgroundAnimationClass);
|
||||
},
|
||||
|
||||
resetMobile: function() {
|
||||
$(this.variables.navigationId).removeClass(this.variables.mobileClass);
|
||||
$(this.variables.toggleSelector).off('click');
|
||||
$(this.variables.sectionSelector).off('click');
|
||||
$(this.variables.linksSelector).css('display', 'inherit').removeClass(this.variables.activeClass);
|
||||
},
|
||||
|
||||
resetDesktop: function() {
|
||||
$(this.variables.sectionSelector).off('mouseover');
|
||||
$(this.variables.sectionSelector).off('mouseleave');
|
||||
$(this.variables.linksSelector).hide();
|
||||
},
|
||||
|
||||
showSubMenu: function(event) {
|
||||
if ($(event.currentTarget).find(this.variables.linksSelector).hasClass(this.variables.activeClass)) {
|
||||
$(this.variables.linksSelector).slideUp().removeClass(this.variables.activeClass);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$(this.variables.linksSelector).slideUp().removeClass(this.variables.activeClass);
|
||||
$(event.currentTarget).find(this.variables.linksSelector).slideToggle().addClass(this.variables.activeClass);
|
||||
},
|
||||
|
||||
mobileBgAnimation: function() {
|
||||
var windowDiameter = ($(window).width() * 2) * $(window).height() * 2,
|
||||
returnBiggest = (Math.sqrt(windowDiameter)) * 1.5;
|
||||
|
||||
$(this.variables.mobileBackgroundSelector).css({
|
||||
'top': - returnBiggest / 2+ 'px',
|
||||
'right': - returnBiggest / 2 + 'px',
|
||||
'width': returnBiggest + 'px',
|
||||
'height': returnBiggest + 'px'
|
||||
});
|
||||
},
|
||||
|
||||
showAndHideHeader: function(variables) {
|
||||
|
||||
var myElement = document.querySelector('.nav');
|
||||
|
||||
//I should pass the variable object inside the headroom
|
||||
this.headroom = new Headroom(myElement, {
|
||||
offset: 510,
|
||||
tolerance : {
|
||||
up : 20,
|
||||
down : 20
|
||||
},
|
||||
|
||||
onTop: function(variables) {
|
||||
$('#nav').removeClass('scrolled');
|
||||
$('.logo').removeClass('scrolled');
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
},
|
||||
|
||||
onPin: function() {
|
||||
$('.menu').removeClass('hidedPrincipalNavigation');
|
||||
$('#nav').addClass('scrolled');
|
||||
$('.logo').addClass('scrolled');
|
||||
},
|
||||
|
||||
onNotTop : function() {
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
},
|
||||
|
||||
onUnpin: function() {
|
||||
$('.menu').addClass('hidedPrincipalNavigation');
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
}
|
||||
});
|
||||
this.headroom.init();
|
||||
},
|
||||
|
||||
mobileEvent: function() {
|
||||
this.resetDesktop();
|
||||
if (!this.enquireInitializedMobile) {
|
||||
this.enquireInitializedMobile = true;
|
||||
this.createMenuButton();
|
||||
}
|
||||
$(window).on('resize', _.bind(this.mobileBgAnimation, this));
|
||||
this.mobileBgAnimation();
|
||||
$(this.variables.navigationId).addClass(this.variables.mobileClass);
|
||||
$(this.variables.toggleSelector).click(_.bind(this.toggleMobileMenu, this));
|
||||
$(this.variables.sectionSelector).click(_.bind(this.showSubMenu, this));
|
||||
},
|
||||
|
||||
setBackgroundDropdown: function(bg) {
|
||||
bg.addClass(this.variables.backgroundAnimationClass);
|
||||
},
|
||||
|
||||
backgroundDropdown: function(event) {
|
||||
var cssPadding = 30,
|
||||
bg = $(this.variables.navBackgroundSelector),
|
||||
bgWrapper = $(this.variables.navBackgroundWrapper),
|
||||
selectedDropdown = $(event.currentTarget).find(this.variables.linksSelector),
|
||||
height = selectedDropdown.innerHeight(),
|
||||
width = selectedDropdown.innerWidth(),
|
||||
windowWidth = $(this.variables.navigationSelector).outerWidth(),
|
||||
navigationWidth = $('.nav .container').outerWidth(),
|
||||
marginNavigation = (windowWidth - navigationWidth) / 2,
|
||||
backgroundDropdownPosition = $(event.currentTarget).offset().left + cssPadding + ($(event.currentTarget).innerWidth() - cssPadding) /2 - width/2 - marginNavigation;
|
||||
|
||||
setTimeout(_.bind(this.setBackgroundDropdown, this, bg));
|
||||
bgWrapper.addClass(this.variables.linksVisibleClass);
|
||||
|
||||
bg.css({
|
||||
'-moz-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-webkit-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-ms-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-o-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'width': width + 'px',
|
||||
'height': height + 'px'
|
||||
});
|
||||
},
|
||||
|
||||
desktopDropdownEvent: function() {
|
||||
this.resetMobile();
|
||||
$(this.variables.sectionSelector).on('mouseover', _.bind(this.backgroundDropdown, this));
|
||||
$(this.variables.sectionSelector).on('mouseleave', _.bind(this.destroyDropdown, this));
|
||||
this.showAndHideHeader();
|
||||
},
|
||||
|
||||
// Clear dropdowns in mouse leave
|
||||
destroyDropdown: function(event) {
|
||||
var bg = $(this.variables.navBackgroundSelector),
|
||||
bgWrapper = $(this.variables.navBackgroundWrapper);
|
||||
|
||||
setTimeout(_.bind(function() {
|
||||
bg.removeClass(this.variables.backgroundAnimationClass);
|
||||
},this));
|
||||
|
||||
var bgWrapper = $(this.variables.navBackgroundWrapper);
|
||||
bgWrapper.removeClass(this.variables.linksVisibleClass);
|
||||
},
|
||||
|
||||
|
||||
//Bodymovin menu Animation
|
||||
createMenuButton: function() {
|
||||
var menuAnimation,
|
||||
animContainer = document.querySelectorAll('.container button')[0],
|
||||
params = {
|
||||
container: animContainer,
|
||||
renderer: 'svg',
|
||||
loop: false,
|
||||
autoplay: false,
|
||||
autoloadSegments: true,
|
||||
path: templateUrl + '/assets/img/menu/data.json'
|
||||
};
|
||||
menuAnimation = bodymovin.loadAnimation(params);
|
||||
menuAnimation.stop();
|
||||
|
||||
$('.container button').click(function () {
|
||||
if(this.menuOpened) {
|
||||
menuAnimation.setDirection(-1);
|
||||
} else {
|
||||
menuAnimation.setDirection(0);
|
||||
}
|
||||
menuAnimation.play();
|
||||
this.menuOpened = !this.menuOpened;
|
||||
});
|
||||
},
|
||||
|
||||
//Listen to scroll to change header opacity class
|
||||
toggleScrolledClass: function() {
|
||||
var bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
|
||||
|
||||
if (bodyScrollTop !== 0) {
|
||||
$(this.variables.navigationId).addClass(this.variables.scrolledClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.scrolledClass);
|
||||
}
|
||||
|
||||
else {
|
||||
$(this.variables.navigationId).removeClass(this.variables.scrolledClass);
|
||||
$(this.variables.logoSelector).removeClass(this.variables.scrolledClass);
|
||||
}
|
||||
},
|
||||
|
||||
checkScroll: function() {
|
||||
if ($(this.variables.navigationId).length > 0) {
|
||||
$(window).on('scroll load resize', _.bind(this.toggleScrolledClass, this));
|
||||
}
|
||||
},
|
||||
|
||||
animatedLogoSprite: function() {
|
||||
this.hoverLogo();
|
||||
$(this.variables.logoSelector).on('mouseover', _.bind(this.hoverLogo, this));
|
||||
},
|
||||
|
||||
hoverLogo: function () {
|
||||
$(this.variables.logoSelector).removeClass(this.variables.stopAnimationClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.playOnHoverClass);
|
||||
setTimeout(_.bind(this.stopLogoAnimation, this), 2000);
|
||||
},
|
||||
|
||||
stopLogoAnimation: function() {
|
||||
$(this.variables.logoSelector).removeClass(this.variables.playOnHoverClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.stopAnimationClass);
|
||||
}
|
||||
};
|
||||
HeaderApp.init();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,330 @@
|
||||
define(['jquery', 'lodash', 'enquire', 'scrollMagic', 'hammer', 'inview'],
|
||||
function ($, _, enquire, ScrollMagic, Hammer, isInView) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var slideshow = {
|
||||
init: function() {
|
||||
|
||||
enquire.register('screen and (max-width: 991px)', {
|
||||
match: _.bind(this.modulesBindMobile, this),
|
||||
unmatch: _.bind(this.cleanModulesMobile, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (min-width: 992px)', {
|
||||
match: _.bind(this.modulesBindDesktop, this),
|
||||
unmatch: _.bind(this.cleanModulesDesktop, this)
|
||||
});
|
||||
},
|
||||
|
||||
variables : {
|
||||
buttonDropdownSelector: $('.button--dropdown'),
|
||||
buttonDropdownContentSelector: $('.dropdown-content'),
|
||||
SlideshowTextTriggerSelector: $('.textTrigger'),
|
||||
spriteSlideshowSelector: $('.image-top-container'),
|
||||
slideshowContentSelector: '.slideshow',
|
||||
slideshowIndicatorsSelector: '.indicators',
|
||||
slideshowImageOnTopSelector: '.image-top',
|
||||
textTriggerSelector: '.textTrigger',
|
||||
indicatorSlideshow: 'btn_carousel',
|
||||
visibleClass : 'visible',
|
||||
activeClass: 'active'
|
||||
},
|
||||
|
||||
modulesBindDesktop: function() {
|
||||
this.slideshowDesktop();
|
||||
this.updateSlideshowImageSizes();
|
||||
$(window).resize(_.bind(this.updateSlideshowImageSizes, this));
|
||||
},
|
||||
|
||||
modulesBindMobile: function() {
|
||||
this.slideshowMobile();
|
||||
},
|
||||
|
||||
cleanModulesDesktop: function() {
|
||||
this.destroyMagicScrollOnMobile();
|
||||
},
|
||||
|
||||
cleanModulesMobile: function() {
|
||||
this.removeInlineCssOnDesktop();
|
||||
this.removeInlineCssOnMobile();
|
||||
},
|
||||
|
||||
slideshowTablet: function() {
|
||||
$('.image__mobile').hide();
|
||||
$(window).resize(_.bind(this.updateSlideshowImageSizes, this));
|
||||
},
|
||||
|
||||
smoothScroll: function() {
|
||||
$('a[href*="#"]:not([href="#"]):not([data-toggle="collapse"])').click(function() {
|
||||
|
||||
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
|
||||
var target = $(this.hash);
|
||||
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
|
||||
|
||||
if (target.length) {
|
||||
$('html, body').animate({
|
||||
scrollTop: target.offset().top
|
||||
}, 1000);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
indicatorSlideshow: function() {
|
||||
var visibleElement = $(this.variables.textTriggerSelector).parent();
|
||||
|
||||
$(visibleElement).on('inview', function(event, isInView) {
|
||||
if (isInView) {
|
||||
var currentSlide = $(event.currentTarget).data('slide');
|
||||
var $indicator = $('.btn_carousel:nth-child(' + (parseInt(currentSlide) + 1)+')');
|
||||
var $active = $('.btn_carousel.active');
|
||||
var imageFeatures = $('.image-top');
|
||||
|
||||
$active.removeClass('active');
|
||||
$indicator.addClass('active');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
slideshowImagePosition: function(currentSlide) {
|
||||
var visibleElement = $(this.variables.textTriggerSelector).parent();
|
||||
|
||||
$(visibleElement).on('inview', function(event, isInView) {
|
||||
if (isInView) {
|
||||
var currentSlide = $(event.currentTarget).data('slide');
|
||||
var imageFeatures = $('.image-top');
|
||||
var currentHeight = $('.image-top').height() / 4;
|
||||
|
||||
if (currentSlide === 1) {
|
||||
imageFeatures.css({
|
||||
'top': '0' + 'px',
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 2) {
|
||||
imageFeatures.css({
|
||||
'top': '-' + currentHeight + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 3) {
|
||||
imageFeatures.css({
|
||||
'top': '-' + currentHeight * 2 + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 4) {
|
||||
imageFeatures.css({
|
||||
'top': '-' + currentHeight * 3 + 'px'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
slideshowDesktop : function () {
|
||||
this.indicatorSlideshow();
|
||||
this.slideshowImagePosition();
|
||||
this.slideshowChangeImageDesktop();
|
||||
|
||||
this.controller = new ScrollMagic.Controller();
|
||||
this.variables.SlideshowTextTriggerSelector.each(function() {
|
||||
|
||||
var imageFeatures = $('.image-top');
|
||||
var animateImage = new ScrollMagic.Scene ({
|
||||
triggerElement: this,
|
||||
offset: '100%',
|
||||
reverse: true,
|
||||
triggerHook: 1
|
||||
})
|
||||
.addTo(this.controller);
|
||||
});
|
||||
|
||||
var imagePin = new ScrollMagic.Scene ({
|
||||
triggerElement: '#imageTrigger',
|
||||
duration: '300%',
|
||||
triggerHook: 0
|
||||
})
|
||||
|
||||
.setPin('#imageTrigger')
|
||||
.setClassToggle('.indicators', 'active') // add indicators to scene
|
||||
.addTo(this.controller);
|
||||
},
|
||||
|
||||
slideshowMobile: function() {
|
||||
$(this.variables.slideshowIndicatorsSelector).addClass(this.variables.activeClass);
|
||||
this.slideshowImagePositionMobile();
|
||||
this.slideshowChangeImageMobile();
|
||||
this.indicatorSlideshow();
|
||||
this.updateSlideshowImageSizes();
|
||||
this.toggleTextSlideshowMobile();
|
||||
$(window).resize(_.bind(this.updateSlideshowImageSizes, this));
|
||||
|
||||
$(this.variables.slideshowIndicatorsSelector).addClass(this.variables.activeClass);
|
||||
|
||||
var sectionHeadingheight = $('#slideshow').find('.section--heading-1').height();
|
||||
var currentImageDevice = $('.image-back').height() + sectionHeadingheight + 200;
|
||||
$(this.variables.slideshowIndicatorsSelector).css({
|
||||
'top': currentImageDevice + 'px'
|
||||
});
|
||||
$(this.variables.indicatorSlideshow).on('click', _.bind(this.indicatorsAnchorMobile, this));
|
||||
},
|
||||
|
||||
indicatorsAnchorMobile: function(event) {
|
||||
event.prevent;
|
||||
},
|
||||
|
||||
updateSlideshowImageSizes: function() {
|
||||
var imageDeviceWidth = $('.image-back').width() * '0.9376733', // Using proportions to do the math
|
||||
imageDeviceHeight = $('.image-back').height() * '0.722727273', // Using proportions to do the math
|
||||
imageOnTopMargins = $('.image-back').width() * '0.0314'; // Using proportions to do the math
|
||||
|
||||
|
||||
$('.image-top-container').css({
|
||||
'width': imageDeviceWidth + 'px',
|
||||
'height': imageDeviceHeight + 'px',
|
||||
'top': imageOnTopMargins + 'px',
|
||||
'left': imageOnTopMargins + 'px'
|
||||
});
|
||||
},
|
||||
|
||||
slideshowChangeImageMobile: function() {
|
||||
$('.image-top-container').find('.image__desktop').hide();
|
||||
$('.image-top-container').find('.image__mobile').show();
|
||||
},
|
||||
|
||||
slideshowChangeImageDesktop: function() {
|
||||
$('.image-top-container').find('.image__desktop').show();
|
||||
$('.image-top-container').find('.image__mobile').hide();
|
||||
},
|
||||
|
||||
toggleTextSlideshowMobile: function() {
|
||||
var firstText = $('.right-text-grey').first();
|
||||
firstText.addClass(this.variables.activeClass);
|
||||
|
||||
var element = document.getElementById('slideshow');
|
||||
Hammer(element).on('swipeleft', _.bind(this.showNextTextSlideshow, this));
|
||||
Hammer(element).on('swiperight', _.bind(this.showPreviousTextSlideshow, this));
|
||||
},
|
||||
|
||||
showNextTextSlideshow: function(event) {
|
||||
var lastElement = $('.right-text-grey').last(),
|
||||
visibleElement = $('.textTrigger').parent(),
|
||||
slidesCount = $('.right-text-grey').last().data('slide'),
|
||||
currentSlide = $('.right-text-grey.active').data('slide');
|
||||
|
||||
if (slidesCount > currentSlide) {
|
||||
var currentText = $('.right-text-grey.active');
|
||||
var nextText = $('.right-text-grey.active').next();
|
||||
|
||||
nextText.addClass('swipeleft active');
|
||||
currentText.removeClass('active');
|
||||
|
||||
setTimeout(function() {
|
||||
nextText.removeClass('swipeleft');
|
||||
}, 200 );
|
||||
|
||||
} else {
|
||||
nextText = $('.right-text-grey').first();
|
||||
var currentText = $('.right-text-grey.active');
|
||||
|
||||
nextText.addClass('swipeleft active');
|
||||
currentText.removeClass('active');
|
||||
|
||||
setTimeout(function() {
|
||||
nextText.removeClass('swipeleft');
|
||||
}, 200 );
|
||||
}
|
||||
},
|
||||
|
||||
showPreviousTextSlideshow: function(event) {
|
||||
var currentText = $('.right-text-grey.active'),
|
||||
previousText = $('.right-text-grey.active').prev(),
|
||||
lastElement = $('.right-text-grey').last(),
|
||||
visibleElement = $('.textTrigger').parent(),
|
||||
slidesCount = $('.right-text-grey').first().data('slide'),
|
||||
NoMoreSlides = $('.right-text-grey.active').data('slide');
|
||||
|
||||
if (slidesCount < NoMoreSlides) {
|
||||
var currentText = $('.right-text-grey.active'),
|
||||
previousText = $('.right-text-grey.active').prev();
|
||||
|
||||
previousText.addClass('swiperight active');
|
||||
currentText.removeClass('active');
|
||||
|
||||
setTimeout(function() {
|
||||
previousText.removeClass('swiperight');
|
||||
}, 200 );
|
||||
|
||||
} else {
|
||||
previousText = $('.right-text-grey').last();
|
||||
currentText = $('.right-text-grey.active');
|
||||
|
||||
previousText.addClass('active');
|
||||
currentText.removeClass('active');
|
||||
|
||||
setTimeout(function() {
|
||||
previousText.removeClass('swiperight');
|
||||
}, 200 );
|
||||
}
|
||||
},
|
||||
|
||||
slideshowImagePositionMobile: function() {
|
||||
var visibleElement = $('.textTrigger').parent();
|
||||
|
||||
$(visibleElement).on('inview', function(event, isInView) {
|
||||
if (isInView) {
|
||||
var currentSlide = $(event.currentTarget).data('slide'),
|
||||
imageFeatures = $('.image-top'),
|
||||
slidesCount = $('.right-text-grey').last().data('slide'),
|
||||
imageTopHeight = $('.image__mobile').width() / slidesCount;
|
||||
|
||||
if (currentSlide === 1) {
|
||||
imageFeatures.css({
|
||||
'left': '0' + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 2) {
|
||||
imageFeatures.css({
|
||||
'left': - imageTopHeight + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 3) {
|
||||
imageFeatures.css({
|
||||
'left': - imageTopHeight * 2 + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
if (currentSlide === 4) {
|
||||
imageFeatures.css({
|
||||
'left': - imageTopHeight * 3 + 'px'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
destroyMagicScrollOnMobile: function(event, slideshowDesktop) {
|
||||
this.controller.destroy(true);
|
||||
this.controller = null;
|
||||
this.slideshowDesktopCss = $('.scrollmagic-pin-spacer').attr('style');
|
||||
$('.scrollmagic-pin-spacer').removeAttr('style');
|
||||
},
|
||||
|
||||
removeInlineCssOnDesktop: function(destroyMagicScrollOnMobile) {
|
||||
$('.image__desktop').removeAttr('style');
|
||||
$('.scrollmagic-pin-spacer').css('style');
|
||||
},
|
||||
|
||||
removeInlineCssOnMobile: function() {
|
||||
$(this.variables.slideshowIndicatorsSelector).removeAttr('style');
|
||||
$(this.variables.slideshowIndicatorsSelector).css('style');
|
||||
}
|
||||
};
|
||||
slideshow.init();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,84 @@
|
||||
define(['jquery', 'lodash', 'enquire', 'velocity', 'velocityUI', 'scrollMagic'],
|
||||
function ($, _, enquire, Velocity, velocityUI, ScrollMagic) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var subMenuModule = {
|
||||
init: function() {
|
||||
console.log('starting submenu function');
|
||||
$(this.variables.menuAnchorSelector).velocity('transition.fadeIn', 1000 );
|
||||
|
||||
enquire.register('screen and (max-width: 480px)', {
|
||||
//match: _.bind(this.resultsBindMobile, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (min-width: 481px)', {
|
||||
match: _.bind(this.subMenuEvent, this)
|
||||
});
|
||||
},
|
||||
|
||||
variables : {
|
||||
topHeaderSelector: '.topheader',
|
||||
heroSectionBackgroundSelector: '.background',
|
||||
menuAnchorSelector: '#menuAnchor'
|
||||
},
|
||||
|
||||
subMenuEvent: function() {
|
||||
this.pinFiltersBar();
|
||||
this.smothscrollToggleActive();
|
||||
},
|
||||
|
||||
pinFiltersBar: function() {
|
||||
var controller = new ScrollMagic.Controller();
|
||||
var scene = new ScrollMagic.Scene({
|
||||
triggerElement: this.variables.menuAnchorSelector,
|
||||
triggerHook:0,
|
||||
offset:-90
|
||||
})
|
||||
.setPin(this.variables.menuAnchorSelector)
|
||||
.setClassToggle('.nav', 'no-shadow')
|
||||
.addTo(controller);
|
||||
},
|
||||
|
||||
smothscrollToggleActive: function() {
|
||||
$('a[href^="#"]:not([data-toggle="collapse"])').click(function(event) {
|
||||
var id = $(this).attr('href');
|
||||
var target = $(id).offset().top - 200;
|
||||
$('html, body').animate({scrollTop:target}, 500);
|
||||
event.preventDefault();
|
||||
|
||||
});
|
||||
|
||||
function getTargetTop(elem){
|
||||
var id = elem.attr('href');
|
||||
var offset = 60;
|
||||
return $(id).offset().top - offset;
|
||||
}
|
||||
|
||||
|
||||
$(window).scroll(function(e){
|
||||
isSelected($(window).scrollTop());
|
||||
});
|
||||
|
||||
var sections = $('a[href^="#"]');
|
||||
|
||||
function isSelected(scrolledTo){
|
||||
|
||||
var threshold = 100;
|
||||
var i;
|
||||
|
||||
for (i = 0; i < sections.length; i++) {
|
||||
var section = $(sections[i]);
|
||||
var target = getTargetTop(section);
|
||||
|
||||
if (scrolledTo > target - threshold && scrolledTo < target + threshold) {
|
||||
sections.removeClass('active');
|
||||
section.addClass('active');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
subMenuModule.init();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
// This use the plyr plugin, for more information use the link above
|
||||
// https://github.com/sampotts/plyr
|
||||
|
||||
define(['jquery', 'lodash', 'plyr'],
|
||||
function ($, _, plyr) {
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var YoutubePlayer = {
|
||||
init: function() {
|
||||
this.startPlayer();
|
||||
this.getCss();
|
||||
},
|
||||
|
||||
getCss: function() {
|
||||
$('head').append('<link>');
|
||||
var css = $('head').children(':last');
|
||||
css.attr({
|
||||
rel: 'stylesheet',
|
||||
type: 'text/css',
|
||||
href: 'https://cdn.plyr.io/2.0.13/plyr.css'
|
||||
});
|
||||
},
|
||||
|
||||
startPlayer: function() {
|
||||
plyr.setup({
|
||||
//Pass extra options here if needed
|
||||
});
|
||||
}
|
||||
};
|
||||
YoutubePlayer.init();
|
||||
});
|
||||
});
|
||||
265
_shared_assets/themes/nextcloud_com/static/js/navigation.js
Normal file
265
_shared_assets/themes/nextcloud_com/static/js/navigation.js
Normal file
@@ -0,0 +1,265 @@
|
||||
$(document).ready(function() {
|
||||
'use strict';
|
||||
var HeaderApp = {
|
||||
init: function() {
|
||||
|
||||
this.didScroll = false;
|
||||
this.menuOpened = false;
|
||||
this.enquireInitializedMobile = false;
|
||||
|
||||
//Fade In animation
|
||||
$(this.variables.navigationId).velocity('transition.fadeIn', 1000 );
|
||||
this.animatedLogoSprite();
|
||||
|
||||
enquire.register('screen and (max-width: 992px)', {
|
||||
match: _.bind(this.mobileEvent, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (max-height: 700px)', {
|
||||
match: _.bind(this.showAndHideHeader, this)
|
||||
});
|
||||
|
||||
enquire.register('screen and (min-width: 993px)', {
|
||||
match: _.bind(this.desktopDropdownEvent, this)
|
||||
});
|
||||
},
|
||||
|
||||
variables : {
|
||||
toggleSelector: '#toggle',
|
||||
navigationId: '#nav',
|
||||
navigationSelector: '.nav',
|
||||
subMenuSelector: '#menuAnchor',
|
||||
sectionsSelector: '.nav__sections',
|
||||
sectionsContainerSelector: '.nav__sections-wrapper',
|
||||
sectionSelector: '.nav__section',
|
||||
navBackgroundSelector: '.nav__bg',
|
||||
navBackgroundWrapper: '.nav__bg-wrapper',
|
||||
rightNavigationSelector: '.right-buttons',
|
||||
linksSelector: '.nav__links',
|
||||
logoSelector: '.logo',
|
||||
mobileClass: 'mobile',
|
||||
activeClass: 'active',
|
||||
scrolledClass:'scrolled',
|
||||
backgroundAnimationClass: 'is-animatable',
|
||||
linksVisibleClass: 'is-visible',
|
||||
mobileBackgroundSelector: '.mobile-bg',
|
||||
mobileMenuClass: 'menu-open',
|
||||
showNavigationClass:'nav-down',
|
||||
hideNavigationClass: 'nav-up',
|
||||
playOnHoverClass: 'hoverPlay',
|
||||
stopAnimationClass: 'stopedAnimation',
|
||||
mobileBackgroundContainerSelector: '.mobile-bg-container',
|
||||
},
|
||||
|
||||
toggleMobileMenu: function(event) {
|
||||
$(this.variables.linksSelector).hide().removeClass(this.variables.activeClass); //hide all submenus without animation
|
||||
$(event.currentTarget).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.mobileBackgroundSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.sectionsSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.rightNavigationSelector).toggleClass(this.variables.activeClass);
|
||||
$(this.variables.logoSelector).toggleClass(this.variables.mobileMenuClass);
|
||||
$(this.variables.mobileBackgroundContainerSelector).toggleClass(this.variables.backgroundAnimationClass);
|
||||
},
|
||||
|
||||
resetMobile: function() {
|
||||
$(this.variables.navigationId).removeClass(this.variables.mobileClass);
|
||||
$(this.variables.toggleSelector).off('click');
|
||||
$(this.variables.sectionSelector).off('click');
|
||||
$(this.variables.linksSelector).css('display', 'inherit').removeClass(this.variables.activeClass);
|
||||
},
|
||||
|
||||
resetDesktop: function() {
|
||||
$(this.variables.sectionSelector).off('mouseover');
|
||||
$(this.variables.sectionSelector).off('mouseleave');
|
||||
$(this.variables.linksSelector).hide();
|
||||
},
|
||||
|
||||
showSubMenu: function(event) {
|
||||
if ($(event.currentTarget).find(this.variables.linksSelector).hasClass(this.variables.activeClass)) {
|
||||
$(this.variables.linksSelector).slideUp().removeClass(this.variables.activeClass);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$(this.variables.linksSelector).slideUp().removeClass(this.variables.activeClass);
|
||||
$(event.currentTarget).find(this.variables.linksSelector).slideToggle().addClass(this.variables.activeClass);
|
||||
},
|
||||
|
||||
mobileBgAnimation: function() {
|
||||
var windowDiameter = ($(window).width() * 2) * $(window).height() * 2,
|
||||
returnBiggest = (Math.sqrt(windowDiameter)) * 1.5;
|
||||
|
||||
$(this.variables.mobileBackgroundSelector).css({
|
||||
'top': - returnBiggest / 2+ 'px',
|
||||
'right': - returnBiggest / 2 + 'px',
|
||||
'width': returnBiggest + 'px',
|
||||
'height': returnBiggest + 'px'
|
||||
});
|
||||
},
|
||||
|
||||
showAndHideHeader: function(variables) {
|
||||
|
||||
var myElement = document.querySelector('.nav');
|
||||
|
||||
//I should pass the variable object inside the headroom
|
||||
this.headroom = new Headroom(myElement, {
|
||||
offset: 510,
|
||||
tolerance : {
|
||||
up : 20,
|
||||
down : 20
|
||||
},
|
||||
|
||||
onTop: function(variables) {
|
||||
$('#nav').removeClass('scrolled');
|
||||
$('.logo').removeClass('scrolled');
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
},
|
||||
|
||||
onPin: function() {
|
||||
$('.menu').removeClass('hidedPrincipalNavigation');
|
||||
$('#nav').addClass('scrolled');
|
||||
$('.logo').addClass('scrolled');
|
||||
},
|
||||
|
||||
onNotTop : function() {
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
},
|
||||
|
||||
onUnpin: function() {
|
||||
$('.menu').addClass('hidedPrincipalNavigation');
|
||||
$('.mobile-bg-container').addClass('visible');
|
||||
}
|
||||
});
|
||||
this.headroom.init();
|
||||
},
|
||||
|
||||
mobileEvent: function() {
|
||||
this.resetDesktop();
|
||||
if (!this.enquireInitializedMobile) {
|
||||
this.enquireInitializedMobile = true;
|
||||
this.createMenuButton();
|
||||
}
|
||||
$(window).on('resize', _.bind(this.mobileBgAnimation, this));
|
||||
this.mobileBgAnimation();
|
||||
$(this.variables.navigationId).addClass(this.variables.mobileClass);
|
||||
$(this.variables.toggleSelector).click(_.bind(this.toggleMobileMenu, this));
|
||||
$(this.variables.sectionSelector).click(_.bind(this.showSubMenu, this));
|
||||
},
|
||||
|
||||
setBackgroundDropdown: function(bg) {
|
||||
bg.addClass(this.variables.backgroundAnimationClass);
|
||||
},
|
||||
|
||||
backgroundDropdown: function(event) {
|
||||
var cssPadding = 30,
|
||||
bg = $(this.variables.navBackgroundSelector),
|
||||
bgWrapper = $(this.variables.navBackgroundWrapper),
|
||||
selectedDropdown = $(event.currentTarget).find(this.variables.linksSelector),
|
||||
height = selectedDropdown.innerHeight(),
|
||||
width = selectedDropdown.innerWidth(),
|
||||
windowWidth = $(this.variables.navigationSelector).outerWidth(),
|
||||
navigationWidth = $('.nav .container').outerWidth(),
|
||||
marginNavigation = (windowWidth - navigationWidth) / 2,
|
||||
backgroundDropdownPosition = $(event.currentTarget).offset().left + cssPadding + ($(event.currentTarget).innerWidth() - cssPadding) /2 - width/2 - marginNavigation;
|
||||
|
||||
setTimeout(_.bind(this.setBackgroundDropdown, this, bg));
|
||||
bgWrapper.addClass(this.variables.linksVisibleClass);
|
||||
|
||||
bg.css({
|
||||
'-moz-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-webkit-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-ms-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'-o-transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'transform': 'translateX(' + backgroundDropdownPosition + 'px)',
|
||||
'width': width + 'px',
|
||||
'height': height + 'px'
|
||||
});
|
||||
},
|
||||
|
||||
desktopDropdownEvent: function() {
|
||||
this.resetMobile();
|
||||
$(this.variables.sectionSelector).on('mouseover', _.bind(this.backgroundDropdown, this));
|
||||
$(this.variables.sectionSelector).on('mouseleave', _.bind(this.destroyDropdown, this));
|
||||
this.showAndHideHeader();
|
||||
},
|
||||
|
||||
// Clear dropdowns in mouse leave
|
||||
destroyDropdown: function(event) {
|
||||
var bg = $(this.variables.navBackgroundSelector),
|
||||
bgWrapper = $(this.variables.navBackgroundWrapper);
|
||||
|
||||
setTimeout(_.bind(function() {
|
||||
bg.removeClass(this.variables.backgroundAnimationClass);
|
||||
},this));
|
||||
|
||||
var bgWrapper = $(this.variables.navBackgroundWrapper);
|
||||
bgWrapper.removeClass(this.variables.linksVisibleClass);
|
||||
},
|
||||
|
||||
|
||||
//Bodymovin menu Animation
|
||||
createMenuButton: function() {
|
||||
var menuAnimation,
|
||||
animContainer = document.querySelectorAll('.container button')[0],
|
||||
params = {
|
||||
container: animContainer,
|
||||
renderer: 'svg',
|
||||
loop: false,
|
||||
autoplay: false,
|
||||
autoloadSegments: true,
|
||||
path: templateUrl + '/assets/img/menu/data.json'
|
||||
};
|
||||
menuAnimation = bodymovin.loadAnimation(params);
|
||||
menuAnimation.stop();
|
||||
|
||||
$('.container button').click(function () {
|
||||
if(this.menuOpened) {
|
||||
menuAnimation.setDirection(-1);
|
||||
} else {
|
||||
menuAnimation.setDirection(0);
|
||||
}
|
||||
menuAnimation.play();
|
||||
this.menuOpened = !this.menuOpened;
|
||||
});
|
||||
},
|
||||
|
||||
//Listen to scroll to change header opacity class
|
||||
toggleScrolledClass: function() {
|
||||
var bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
|
||||
|
||||
if (bodyScrollTop !== 0) {
|
||||
$(this.variables.navigationId).addClass(this.variables.scrolledClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.scrolledClass);
|
||||
}
|
||||
|
||||
else {
|
||||
$(this.variables.navigationId).removeClass(this.variables.scrolledClass);
|
||||
$(this.variables.logoSelector).removeClass(this.variables.scrolledClass);
|
||||
}
|
||||
},
|
||||
|
||||
checkScroll: function() {
|
||||
if ($(this.variables.navigationId).length > 0) {
|
||||
$(window).on('scroll load resize', _.bind(this.toggleScrolledClass, this));
|
||||
}
|
||||
},
|
||||
|
||||
animatedLogoSprite: function() {
|
||||
this.hoverLogo();
|
||||
$(this.variables.logoSelector).on('mouseover', _.bind(this.hoverLogo, this));
|
||||
},
|
||||
|
||||
hoverLogo: function () {
|
||||
$(this.variables.logoSelector).removeClass(this.variables.stopAnimationClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.playOnHoverClass);
|
||||
setTimeout(_.bind(this.stopLogoAnimation, this), 2000);
|
||||
},
|
||||
|
||||
stopLogoAnimation: function() {
|
||||
$(this.variables.logoSelector).removeClass(this.variables.playOnHoverClass);
|
||||
$(this.variables.logoSelector).addClass(this.variables.stopAnimationClass);
|
||||
}
|
||||
};
|
||||
HeaderApp.init();
|
||||
});
|
||||
@@ -0,0 +1,49 @@
|
||||
requirejs.config({
|
||||
waitSeconds : 0,
|
||||
baseURL: 'js/',
|
||||
paths: {
|
||||
jquery: ['https://code.jquery.com/jquery-3.2.1.min', '../../node_modules/jquery/dist/jquery.min'],
|
||||
modernizr: ['https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min', 'old/vendor/modernizr-2.7.0.min'],
|
||||
waypoints: ['https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min', '../../node_modules/waypoints/lib/jquery.waypoints.min'],
|
||||
enquire: ['https://cdnjs.cloudflare.com/ajax/libs/enquire.js/2.1.6/enquire.min', 'old/vendor/enquire.min'],
|
||||
bodymovin: ['https://cdnjs.cloudflare.com/ajax/libs/bodymovin/4.7.0/bodymovin.min', 'old/vendor/bodymovin.min'],
|
||||
headroom: ['https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.3/headroom.min', 'old/vendor/headroom.min'],
|
||||
headroomJquery: ['https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.3/jQuery.headroom.min', 'old/vendor/jQuery.headroom.min'],
|
||||
lodash: ['https://cdn.jsdelivr.net/lodash/4.17.4/lodash.core.min', '../../node_modules/lodash/core.min'],
|
||||
TweenLite: ['https://cdnjs.cloudflare.com/ajax/libs/gsap/1.13.1/TweenLite.min', '../../node_modules/gsap/src/minified/TweenLite.min'],
|
||||
TimelineLite: ['https://cdnjs.cloudflare.com/ajax/libs/gsap/1.13.1/TimelineLite.min', '../../node_modules/gsap/src/minified/TimelineLite.min'],
|
||||
TimelineMax: ['https://cdnjs.cloudflare.com/ajax/libs/gsap/1.13.1/TimelineMax.min', '../../node_modules/gsap/src/minified/TimelineMax.min'],
|
||||
TweenMax: ['https://cdnjs.cloudflare.com/ajax/libs/gsap/1.13.1/TweenMax.min', '../../node_modules/gsap/src/minified/TweenMax.min'],
|
||||
velocity: ['https://cdnjs.cloudflare.com/ajax/libs/velocity/1.5.0/velocity.min', 'old/vendor/velocity.min'],
|
||||
velocityUI: ['https://cdnjs.cloudflare.com/ajax/libs/velocity/1.5.0/velocity.ui.min', 'old/vendor/velocity.ui.min'],
|
||||
scrollMagic: ['https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/ScrollMagic.min', 'old/vendor/ScrollMagic.min'],
|
||||
hammer: ['https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min', 'old/vendor/hammer.min'],
|
||||
inview: ['https://cdnjs.cloudflare.com/ajax/libs/protonet-jquery.inview/1.1.2/jquery.inview.min', 'old/vendor/jquery.inview.min'],
|
||||
plyr: ['https://cdnjs.cloudflare.com/ajax/libs/plyr/2.0.18/plyr', '../../node_modules/plyr/dist/plyr'],
|
||||
bootstrap: ['https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min', '../../node_modules/bootstrap-sass/assets/javascripts/bootstrap.min'],
|
||||
highlight: ['https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min', '../../node_modules/highliht.js/lib/highlight'],
|
||||
},
|
||||
shim: {
|
||||
headroomJquery: {
|
||||
deps: ['jquery', 'headroom']
|
||||
},
|
||||
enquire: {
|
||||
deps: ['jquery']
|
||||
},
|
||||
bodymovin: {
|
||||
deps: ['jquery']
|
||||
},
|
||||
velocity: {
|
||||
deps: ['jquery']
|
||||
},
|
||||
waypoints: {
|
||||
deps: ['jquery', 'bodymovin']
|
||||
},
|
||||
velocityUI: {
|
||||
deps: ['velocity']
|
||||
},
|
||||
bootstrap: {
|
||||
deps: ['jquery']
|
||||
}
|
||||
}
|
||||
});
|
||||
134
_shared_assets/themes/nextcloud_com/static/js/require.min.js
vendored
Normal file
134
_shared_assets/themes/nextcloud_com/static/js/require.min.js
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
var requirejs,require,define;(function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version='2.3.3',commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!!(typeof window!=='undefined'&&typeof navigator!=='undefined'&&window.document),isWebWorker=!isBrowser&&typeof importScripts!=='undefined',readyRegExp=isBrowser&&navigator.platform==='PLAYSTATION 3'?/^complete$/:/^(complete|loaded)$/,defContextName='_',isOpera=typeof opera!=='undefined'&&opera.toString()==='[object Opera]',contexts={},cfg={},globalDefQueue=[],useInteractive=false;function commentReplace(match,singlePrefix){return singlePrefix||'';}
|
||||
function isFunction(it){return ostring.call(it)==='[object Function]';}
|
||||
function isArray(it){return ostring.call(it)==='[object Array]';}
|
||||
function each(ary,func){if(ary){var i;for(i=0;i<ary.length;i+=1){if(ary[i]&&func(ary[i],i,ary)){break;}}}}
|
||||
function eachReverse(ary,func){if(ary){var i;for(i=ary.length-1;i>-1;i-=1){if(ary[i]&&func(ary[i],i,ary)){break;}}}}
|
||||
function hasProp(obj,prop){return hasOwn.call(obj,prop);}
|
||||
function getOwn(obj,prop){return hasProp(obj,prop)&&obj[prop];}
|
||||
function eachProp(obj,func){var prop;for(prop in obj){if(hasProp(obj,prop)){if(func(obj[prop],prop)){break;}}}}
|
||||
function mixin(target,source,force,deepStringMixin){if(source){eachProp(source,function(value,prop){if(force||!hasProp(target,prop)){if(deepStringMixin&&typeof value==='object'&&value&&!isArray(value)&&!isFunction(value)&&!(value instanceof RegExp)){if(!target[prop]){target[prop]={};}
|
||||
mixin(target[prop],value,force,deepStringMixin);}else{target[prop]=value;}}});}
|
||||
return target;}
|
||||
function bind(obj,fn){return function(){return fn.apply(obj,arguments);};}
|
||||
function scripts(){return document.getElementsByTagName('script');}
|
||||
function defaultOnError(err){throw err;}
|
||||
function getGlobal(value){if(!value){return value;}
|
||||
var g=global;each(value.split('.'),function(part){g=g[part];});return g;}
|
||||
function makeError(id,msg,err,requireModules){var e=new Error(msg+'\nhttp://requirejs.org/docs/errors.html#'+id);e.requireType=id;e.requireModules=requireModules;if(err){e.originalError=err;}
|
||||
return e;}
|
||||
if(typeof define!=='undefined'){return;}
|
||||
if(typeof requirejs!=='undefined'){if(isFunction(requirejs)){return;}
|
||||
cfg=requirejs;requirejs=undefined;}
|
||||
if(typeof require!=='undefined'&&!isFunction(require)){cfg=require;require=undefined;}
|
||||
function newContext(contextName){var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:'./',paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;function trimDots(ary){var i,part;for(i=0;i<ary.length;i++){part=ary[i];if(part==='.'){ary.splice(i,1);i-=1;}else if(part==='..'){if(i===0||(i===1&&ary[2]==='..')||ary[i-1]==='..'){continue;}else if(i>0){ary.splice(i-1,2);i-=2;}}}}
|
||||
function normalize(name,baseName,applyMap){var pkgMain,mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,normalizedBaseParts,baseParts=(baseName&&baseName.split('/')),map=config.map,starMap=map&&map['*'];if(name){name=name.split('/');lastIndex=name.length-1;if(config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])){name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,'');}
|
||||
if(name[0].charAt(0)==='.'&&baseParts){normalizedBaseParts=baseParts.slice(0,baseParts.length-1);name=normalizedBaseParts.concat(name);}
|
||||
trimDots(name);name=name.join('/');}
|
||||
if(applyMap&&map&&(baseParts||starMap)){nameParts=name.split('/');outerLoop:for(i=nameParts.length;i>0;i-=1){nameSegment=nameParts.slice(0,i).join('/');if(baseParts){for(j=baseParts.length;j>0;j-=1){mapValue=getOwn(map,baseParts.slice(0,j).join('/'));if(mapValue){mapValue=getOwn(mapValue,nameSegment);if(mapValue){foundMap=mapValue;foundI=i;break outerLoop;}}}}
|
||||
if(!foundStarMap&&starMap&&getOwn(starMap,nameSegment)){foundStarMap=getOwn(starMap,nameSegment);starI=i;}}
|
||||
if(!foundMap&&foundStarMap){foundMap=foundStarMap;foundI=starI;}
|
||||
if(foundMap){nameParts.splice(0,foundI,foundMap);name=nameParts.join('/');}}
|
||||
pkgMain=getOwn(config.pkgs,name);return pkgMain?pkgMain:name;}
|
||||
function removeScript(name){if(isBrowser){each(scripts(),function(scriptNode){if(scriptNode.getAttribute('data-requiremodule')===name&&scriptNode.getAttribute('data-requirecontext')===context.contextName){scriptNode.parentNode.removeChild(scriptNode);return true;}});}}
|
||||
function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1){pathConfig.shift();context.require.undef(id);context.makeRequire(null,{skipMap:true})([id]);return true;}}
|
||||
function splitPrefix(name){var prefix,index=name?name.indexOf('!'):-1;if(index>-1){prefix=name.substring(0,index);name=name.substring(index+1,name.length);}
|
||||
return[prefix,name];}
|
||||
function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=true,normalizedName='';if(!name){isDefine=false;name='_@r'+(requireCounter+=1);}
|
||||
nameParts=splitPrefix(name);prefix=nameParts[0];name=nameParts[1];if(prefix){prefix=normalize(prefix,parentName,applyMap);pluginModule=getOwn(defined,prefix);}
|
||||
if(name){if(prefix){if(isNormalized){normalizedName=name;}else if(pluginModule&&pluginModule.normalize){normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap);});}else{normalizedName=name.indexOf('!')===-1?normalize(name,parentName,applyMap):name;}}else{normalizedName=normalize(name,parentName,applyMap);nameParts=splitPrefix(normalizedName);prefix=nameParts[0];normalizedName=nameParts[1];isNormalized=true;url=context.nameToUrl(normalizedName);}}
|
||||
suffix=prefix&&!pluginModule&&!isNormalized?'_unnormalized'+(unnormalizedCounter+=1):'';return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+'!'+normalizedName:normalizedName)+suffix};}
|
||||
function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);if(!mod){mod=registry[id]=new context.Module(depMap);}
|
||||
return mod;}
|
||||
function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);if(hasProp(defined,id)&&(!mod||mod.defineEmitComplete)){if(name==='defined'){fn(defined[id]);}}else{mod=getModule(depMap);if(mod.error&&name==='error'){fn(mod.error);}else{mod.on(name,fn);}}}
|
||||
function onError(err,errback){var ids=err.requireModules,notified=false;if(errback){errback(err);}else{each(ids,function(id){var mod=getOwn(registry,id);if(mod){mod.error=err;if(mod.events.error){notified=true;mod.emit('error',err);}}});if(!notified){req.onError(err);}}}
|
||||
function takeGlobalQueue(){if(globalDefQueue.length){each(globalDefQueue,function(queueItem){var id=queueItem[0];if(typeof id==='string'){context.defQueueMap[id]=true;}
|
||||
defQueue.push(queueItem);});globalDefQueue=[];}}
|
||||
handlers={'require':function(mod){if(mod.require){return mod.require;}else{return(mod.require=context.makeRequire(mod.map));}},'exports':function(mod){mod.usingExports=true;if(mod.map.isDefine){if(mod.exports){return(defined[mod.map.id]=mod.exports);}else{return(mod.exports=defined[mod.map.id]={});}}},'module':function(mod){if(mod.module){return mod.module;}else{return(mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{};},exports:mod.exports||(mod.exports={})});}}};function cleanRegistry(id){delete registry[id];delete enabledRegistry[id];}
|
||||
function breakCycle(mod,traced,processed){var id=mod.map.id;if(mod.error){mod.emit('error',mod.error);}else{traced[id]=true;each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);if(dep&&!mod.depMatched[i]&&!processed[depId]){if(getOwn(traced,depId)){mod.defineDep(i,defined[depId]);mod.check();}else{breakCycle(dep,traced,processed);}}});processed[id]=true;}}
|
||||
function checkLoaded(){var err,usingPathFallback,waitInterval=config.waitSeconds*1000,expired=waitInterval&&(context.startTime+waitInterval)<new Date().getTime(),noLoads=[],reqCalls=[],stillLoading=false,needCycleCheck=true;if(inCheckLoaded){return;}
|
||||
inCheckLoaded=true;eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(!mod.enabled){return;}
|
||||
if(!map.isDefine){reqCalls.push(mod);}
|
||||
if(!mod.error){if(!mod.inited&&expired){if(hasPathFallback(modId)){usingPathFallback=true;stillLoading=true;}else{noLoads.push(modId);removeScript(modId);}}else if(!mod.inited&&mod.fetched&&map.isDefine){stillLoading=true;if(!map.prefix){return(needCycleCheck=false);}}}});if(expired&&noLoads.length){err=makeError('timeout','Load timeout for modules: '+noLoads,null,noLoads);err.contextName=context.contextName;return onError(err);}
|
||||
if(needCycleCheck){each(reqCalls,function(mod){breakCycle(mod,{},{});});}
|
||||
if((!expired||usingPathFallback)&&stillLoading){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId){checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded();},50);}}
|
||||
inCheckLoaded=false;}
|
||||
Module=function(map){this.events=getOwn(undefEvents,map.id)||{};this.map=map;this.shim=getOwn(config.shim,map.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0;};Module.prototype={init:function(depMaps,factory,errback,options){options=options||{};if(this.inited){return;}
|
||||
this.factory=factory;if(errback){this.on('error',errback);}else if(this.events.error){errback=bind(this,function(err){this.emit('error',err);});}
|
||||
this.depMaps=depMaps&&depMaps.slice(0);this.errback=errback;this.inited=true;this.ignore=options.ignore;if(options.enabled||this.enabled){this.enable();}else{this.check();}},defineDep:function(i,depExports){if(!this.depMatched[i]){this.depMatched[i]=true;this.depCount-=1;this.depExports[i]=depExports;}},fetch:function(){if(this.fetched){return;}
|
||||
this.fetched=true;context.startTime=(new Date()).getTime();var map=this.map;if(this.shim){context.makeRequire(this.map,{enableBuildCallback:true})(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load();}));}else{return map.prefix?this.callPlugin():this.load();}},load:function(){var url=this.map.url;if(!urlFetched[url]){urlFetched[url]=true;context.load(this.map.id,url);}},check:function(){if(!this.enabled||this.enabling){return;}
|
||||
var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(!this.inited){if(!hasProp(context.defQueueMap,id)){this.fetch();}}else if(this.error){this.emit('error',this.error);}else if(!this.defining){this.defining=true;if(this.depCount<1&&!this.defined){if(isFunction(factory)){if((this.events.error&&this.map.isDefine)||req.onError!==defaultOnError){try{exports=context.execCb(id,factory,depExports,exports);}catch(e){err=e;}}else{exports=context.execCb(id,factory,depExports,exports);}
|
||||
if(this.map.isDefine&&exports===undefined){cjsModule=this.module;if(cjsModule){exports=cjsModule.exports;}else if(this.usingExports){exports=this.exports;}}
|
||||
if(err){err.requireMap=this.map;err.requireModules=this.map.isDefine?[this.map.id]:null;err.requireType=this.map.isDefine?'define':'require';return onError((this.error=err));}}else{exports=factory;}
|
||||
this.exports=exports;if(this.map.isDefine&&!this.ignore){defined[id]=exports;if(req.onResourceLoad){var resLoadMaps=[];each(this.depMaps,function(depMap){resLoadMaps.push(depMap.normalizedMap||depMap);});req.onResourceLoad(context,this.map,resLoadMaps);}}
|
||||
cleanRegistry(id);this.defined=true;}
|
||||
this.defining=false;if(this.defined&&!this.defineEmitted){this.defineEmitted=true;this.emit('defined',this.exports);this.defineEmitComplete=true;}}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap);on(pluginMap,'defined',bind(this,function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:true});if(this.map.unnormalized){if(plugin.normalize){name=plugin.normalize(name,function(name){return normalize(name,parentName,true);})||'';}
|
||||
normalizedMap=makeModuleMap(map.prefix+'!'+name,this.map.parentMap,true);on(normalizedMap,'defined',bind(this,function(value){this.map.normalizedMap=normalizedMap;this.init([],function(){return value;},null,{enabled:true,ignore:true});}));normalizedMod=getOwn(registry,normalizedMap.id);if(normalizedMod){this.depMaps.push(normalizedMap);if(this.events.error){normalizedMod.on('error',bind(this,function(err){this.emit('error',err);}));}
|
||||
normalizedMod.enable();}
|
||||
return;}
|
||||
if(bundleId){this.map.url=context.nameToUrl(bundleId);this.load();return;}
|
||||
load=bind(this,function(value){this.init([],function(){return value;},null,{enabled:true});});load.error=bind(this,function(err){this.inited=true;this.error=err;err.requireModules=[id];eachProp(registry,function(mod){if(mod.map.id.indexOf(id+'_unnormalized')===0){cleanRegistry(mod.map.id);}});onError(err);});load.fromText=bind(this,function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;if(textAlt){text=textAlt;}
|
||||
if(hasInteractive){useInteractive=false;}
|
||||
getModule(moduleMap);if(hasProp(config.config,id)){config.config[moduleName]=config.config[id];}
|
||||
try{req.exec(text);}catch(e){return onError(makeError('fromtexteval','fromText eval for '+id+' failed: '+e,e,[id]));}
|
||||
if(hasInteractive){useInteractive=true;}
|
||||
this.depMaps.push(moduleMap);context.completeLoad(moduleName);localRequire([moduleName],load);});plugin.load(map.name,localRequire,load,config);}));context.enable(pluginMap,this);this.pluginMaps[pluginMap.id]=pluginMap;},enable:function(){enabledRegistry[this.map.id]=this;this.enabled=true;this.enabling=true;each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if(typeof depMap==='string'){depMap=makeModuleMap(depMap,(this.map.isDefine?this.map:this.map.parentMap),false,!this.skipMap);this.depMaps[i]=depMap;handler=getOwn(handlers,depMap.id);if(handler){this.depExports[i]=handler(this);return;}
|
||||
this.depCount+=1;on(depMap,'defined',bind(this,function(depExports){if(this.undefed){return;}
|
||||
this.defineDep(i,depExports);this.check();}));if(this.errback){on(depMap,'error',bind(this,this.errback));}else if(this.events.error){on(depMap,'error',bind(this,function(err){this.emit('error',err);}));}}
|
||||
id=depMap.id;mod=registry[id];if(!hasProp(handlers,id)&&mod&&!mod.enabled){context.enable(depMap,this);}}));eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);if(mod&&!mod.enabled){context.enable(pluginMap,this);}}));this.enabling=false;this.check();},on:function(name,cb){var cbs=this.events[name];if(!cbs){cbs=this.events[name]=[];}
|
||||
cbs.push(cb);},emit:function(name,evt){each(this.events[name],function(cb){cb(evt);});if(name==='error'){delete this.events[name];}}};function callGetModule(args){if(!hasProp(defined,args[0])){getModule(makeModuleMap(args[0],null,true)).init(args[1],args[2]);}}
|
||||
function removeListener(node,func,name,ieName){if(node.detachEvent&&!isOpera){if(ieName){node.detachEvent(ieName,func);}}else{node.removeEventListener(name,func,false);}}
|
||||
function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;removeListener(node,context.onScriptLoad,'load','onreadystatechange');removeListener(node,context.onScriptError,'error');return{node:node,id:node&&node.getAttribute('data-requiremodule')};}
|
||||
function intakeDefines(){var args;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){return onError(makeError('mismatch','Mismatched anonymous define() module: '+args[args.length-1]));}else{callGetModule(args);}}
|
||||
context.defQueueMap={};}
|
||||
context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,defQueueMap:{},Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){if(cfg.baseUrl){if(cfg.baseUrl.charAt(cfg.baseUrl.length-1)!=='/'){cfg.baseUrl+='/';}}
|
||||
if(typeof cfg.urlArgs==='string'){var urlArgs=cfg.urlArgs;cfg.urlArgs=function(id,url){return(url.indexOf('?')===-1?'?':'&')+urlArgs;};}
|
||||
var shim=config.shim,objs={paths:true,bundles:true,config:true,map:true};eachProp(cfg,function(value,prop){if(objs[prop]){if(!config[prop]){config[prop]={};}
|
||||
mixin(config[prop],value,true,true);}else{config[prop]=value;}});if(cfg.bundles){eachProp(cfg.bundles,function(value,prop){each(value,function(v){if(v!==prop){bundlesMap[v]=prop;}});});}
|
||||
if(cfg.shim){eachProp(cfg.shim,function(value,id){if(isArray(value)){value={deps:value};}
|
||||
if((value.exports||value.init)&&!value.exportsFn){value.exportsFn=context.makeShimExports(value);}
|
||||
shim[id]=value;});config.shim=shim;}
|
||||
if(cfg.packages){each(cfg.packages,function(pkgObj){var location,name;pkgObj=typeof pkgObj==='string'?{name:pkgObj}:pkgObj;name=pkgObj.name;location=pkgObj.location;if(location){config.paths[name]=pkgObj.location;}
|
||||
config.pkgs[name]=pkgObj.name+'/'+(pkgObj.main||'main').replace(currDirRegExp,'').replace(jsSuffixRegExp,'');});}
|
||||
eachProp(registry,function(mod,id){if(!mod.inited&&!mod.map.unnormalized){mod.map=makeModuleMap(id,null,true);}});if(cfg.deps||cfg.callback){context.require(cfg.deps||[],cfg.callback);}},makeShimExports:function(value){function fn(){var ret;if(value.init){ret=value.init.apply(global,arguments);}
|
||||
return ret||(value.exports&&getGlobal(value.exports));}
|
||||
return fn;},makeRequire:function(relMap,options){options=options||{};function localRequire(deps,callback,errback){var id,map,requireMod;if(options.enableBuildCallback&&callback&&isFunction(callback)){callback.__requireJsBuild=true;}
|
||||
if(typeof deps==='string'){if(isFunction(callback)){return onError(makeError('requireargs','Invalid require call'),errback);}
|
||||
if(relMap&&hasProp(handlers,deps)){return handlers[deps](registry[relMap.id]);}
|
||||
if(req.get){return req.get(context,deps,relMap,localRequire);}
|
||||
map=makeModuleMap(deps,relMap,false,true);id=map.id;if(!hasProp(defined,id)){return onError(makeError('notloaded','Module name "'+id+'" has not been loaded yet for context: '+contextName+(relMap?'':'. Use require([])')));}
|
||||
return defined[id];}
|
||||
intakeDefines();context.nextTick(function(){intakeDefines();requireMod=getModule(makeModuleMap(null,relMap));requireMod.skipMap=options.skipMap;requireMod.init(deps,callback,errback,{enabled:true});checkLoaded();});return localRequire;}
|
||||
mixin(localRequire,{isBrowser:isBrowser,toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf('.'),segment=moduleNamePlusExt.split('/')[0],isRelative=segment==='.'||segment==='..';if(index!==-1&&(!isRelative||index>1)){ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length);moduleNamePlusExt=moduleNamePlusExt.substring(0,index);}
|
||||
return context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,true),ext,true);},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,false,true).id);},specified:function(id){id=makeModuleMap(id,relMap,false,true).id;return hasProp(defined,id)||hasProp(registry,id);}});if(!relMap){localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,true),mod=getOwn(registry,id);mod.undefed=true;removeScript(id);delete defined[id];delete urlFetched[map.url];delete undefEvents[id];eachReverse(defQueue,function(args,i){if(args[0]===id){defQueue.splice(i,1);}});delete context.defQueueMap[id];if(mod){if(mod.events.defined){undefEvents[id]=mod.events;}
|
||||
cleanRegistry(id);}};}
|
||||
return localRequire;},enable:function(depMap){var mod=getOwn(registry,depMap.id);if(mod){getModule(depMap).enable();}},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){args[0]=moduleName;if(found){break;}
|
||||
found=true;}else if(args[0]===moduleName){found=true;}
|
||||
callGetModule(args);}
|
||||
context.defQueueMap={};mod=getOwn(registry,moduleName);if(!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(config.enforceDefine&&(!shExports||!getGlobal(shExports))){if(hasPathFallback(moduleName)){return;}else{return onError(makeError('nodefine','No define call for '+moduleName,null,[moduleName]));}}else{callGetModule([moduleName,(shim.deps||[]),shim.exportsFn]);}}
|
||||
checkLoaded();},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain){moduleName=pkgMain;}
|
||||
bundleId=getOwn(bundlesMap,moduleName);if(bundleId){return context.nameToUrl(bundleId,ext,skipExt);}
|
||||
if(req.jsExtRegExp.test(moduleName)){url=moduleName+(ext||'');}else{paths=config.paths;syms=moduleName.split('/');for(i=syms.length;i>0;i-=1){parentModule=syms.slice(0,i).join('/');parentPath=getOwn(paths,parentModule);if(parentPath){if(isArray(parentPath)){parentPath=parentPath[0];}
|
||||
syms.splice(0,i,parentPath);break;}}
|
||||
url=syms.join('/');url+=(ext||(/^data\:|^blob\:|\?/.test(url)||skipExt?'':'.js'));url=(url.charAt(0)==='/'||url.match(/^[\w\+\.\-]+:/)?'':config.baseUrl)+url;}
|
||||
return config.urlArgs&&!/^blob\:/.test(url)?url+config.urlArgs(moduleName,url):url;},load:function(id,url){req.load(context,id,url);},execCb:function(name,callback,args,exports){return callback.apply(exports,args);},onScriptLoad:function(evt){if(evt.type==='load'||(readyRegExp.test((evt.currentTarget||evt.srcElement).readyState))){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id);}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){var parents=[];eachProp(registry,function(value,key){if(key.indexOf('_@r')!==0){each(value.depMaps,function(depMap){if(depMap.id===data.id){parents.push(key);return true;}});}});return onError(makeError('scripterror','Script error for "'+data.id+(parents.length?'", needed by: '+parents.join(', '):'"'),evt,[data.id]));}}};context.require=context.makeRequire();return context;}
|
||||
req=requirejs=function(deps,callback,errback,optional){var context,config,contextName=defContextName;if(!isArray(deps)&&typeof deps!=='string'){config=deps;if(isArray(callback)){deps=callback;callback=errback;errback=optional;}else{deps=[];}}
|
||||
if(config&&config.context){contextName=config.context;}
|
||||
context=getOwn(contexts,contextName);if(!context){context=contexts[contextName]=req.s.newContext(contextName);}
|
||||
if(config){context.configure(config);}
|
||||
return context.require(deps,callback,errback);};req.config=function(config){return req(config);};req.nextTick=typeof setTimeout!=='undefined'?function(fn){setTimeout(fn,4);}:function(fn){fn();};if(!require){require=req;}
|
||||
req.version=version;req.jsExtRegExp=/^\/|:|\?|\.js$/;req.isBrowser=isBrowser;s=req.s={contexts:contexts,newContext:newContext};req({});each(['toUrl','undef','defined','specified'],function(prop){req[prop]=function(){var ctx=contexts[defContextName];return ctx.require[prop].apply(ctx,arguments);};});if(isBrowser){head=s.head=document.getElementsByTagName('head')[0];baseElement=document.getElementsByTagName('base')[0];if(baseElement){head=s.head=baseElement.parentNode;}}
|
||||
req.onError=defaultOnError;req.createNode=function(config,moduleName,url){var node=config.xhtml?document.createElementNS('http://www.w3.org/1999/xhtml','html:script'):document.createElement('script');node.type=config.scriptType||'text/javascript';node.charset='utf-8';node.async=true;return node;};req.load=function(context,moduleName,url){var config=(context&&context.config)||{},node;if(isBrowser){node=req.createNode(config,moduleName,url);node.setAttribute('data-requirecontext',context.contextName);node.setAttribute('data-requiremodule',moduleName);if(node.attachEvent&&!(node.attachEvent.toString&&node.attachEvent.toString().indexOf('[native code')<0)&&!isOpera){useInteractive=true;node.attachEvent('onreadystatechange',context.onScriptLoad);}else{node.addEventListener('load',context.onScriptLoad,false);node.addEventListener('error',context.onScriptError,false);}
|
||||
node.src=url;if(config.onNodeCreated){config.onNodeCreated(node,config,moduleName,url);}
|
||||
currentlyAddingScript=node;if(baseElement){head.insertBefore(node,baseElement);}else{head.appendChild(node);}
|
||||
currentlyAddingScript=null;return node;}else if(isWebWorker){try{setTimeout(function(){},0);importScripts(url);context.completeLoad(moduleName);}catch(e){context.onError(makeError('importscripts','importScripts failed for '+moduleName+' at '+url,e,[moduleName]));}}};function getInteractiveScript(){if(interactiveScript&&interactiveScript.readyState==='interactive'){return interactiveScript;}
|
||||
eachReverse(scripts(),function(script){if(script.readyState==='interactive'){return(interactiveScript=script);}});return interactiveScript;}
|
||||
if(isBrowser&&!cfg.skipDataMain){eachReverse(scripts(),function(script){if(!head){head=script.parentNode;}
|
||||
dataMain=script.getAttribute('data-main');if(dataMain){mainScript=dataMain;if(!cfg.baseUrl&&mainScript.indexOf('!')===-1){src=mainScript.split('/');mainScript=src.pop();subPath=src.length?src.join('/')+'/':'./';cfg.baseUrl=subPath;}
|
||||
mainScript=mainScript.replace(jsSuffixRegExp,'');if(req.jsExtRegExp.test(mainScript)){mainScript=dataMain;}
|
||||
cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript];return true;}});}
|
||||
define=function(name,deps,callback){var node,context;if(typeof name!=='string'){callback=deps;deps=name;name=null;}
|
||||
if(!isArray(deps)){callback=deps;deps=null;}
|
||||
if(!deps&&isFunction(callback)){deps=[];if(callback.length){callback.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(match,dep){deps.push(dep);});deps=(callback.length===1?['require']:['require','exports','module']).concat(deps);}}
|
||||
if(useInteractive){node=currentlyAddingScript||getInteractiveScript();if(node){if(!name){name=node.getAttribute('data-requiremodule');}
|
||||
context=contexts[node.getAttribute('data-requirecontext')];}}
|
||||
if(context){context.defQueue.push([name,deps,callback]);context.defQueueMap[name]=true;}else{globalDefQueue.push([name,deps,callback]);}};define.amd={jQuery:true};req.exec=function(text){return eval(text);};req(cfg);}(this,(typeof setTimeout==='undefined'?undefined:setTimeout)));
|
||||
@@ -38,8 +38,11 @@
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="https://docs.nextcloud.org/server/13/user_manual/_static/main.min.css" type="text/css" />
|
||||
<link rel="stylesheet" href="https://docs.nextcloud.org/server/13/user_manual/_static/styles.css" type="text/css" />
|
||||
<script type="text/javascript">var templateUrl='https://nextcloud.com/wp-content/themes/next';</script> <script data-main="https://nextcloud.com/wp-content/themes/next/assets/js/require.config.js"
|
||||
src="https://nextcloud.com/wp-content/themes/next/node_modules/requirejs/require.min.js"></script> <script>require(["require.config"],function(){require(["modules/header","main","modernizr","modules/cookieconsent"])});</script>
|
||||
|
||||
<script type="text/javascript">var templateUrl='https://docs.nextcloud.org/server/13/user_manual/_static/';</script> <script data-main="https://docs.nextcloud.org/server/13/user_manual/_static/js/require.config.js" src="https://docs.nextcloud.org/server/13/user_manual/_static/js/require.min.js"></script>
|
||||
|
||||
<script>require(["require.config"],function(){require(["modules/header","main","modernizr","modules/cookieconsent"])});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
|
||||
Reference in New Issue
Block a user