liebling/assets/js/post.js
2021-02-15 19:56:34 +01:00

305 lines
11 KiB
JavaScript

(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["/js/post"],{
/***/ "./js/helpers.js":
/*!***********************!*\
!*** ./js/helpers.js ***!
\***********************/
/*! exports provided: isRTL, isMobile, isDarkMode, formatDate, getParameterByName, adjustImageGallery, managePostImages, makeImagesZoomable */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRTL", function() { return isRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMobile", function() { return isMobile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDarkMode", function() { return isDarkMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatDate", function() { return formatDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getParameterByName", function() { return getParameterByName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adjustImageGallery", function() { return adjustImageGallery; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "managePostImages", function() { return managePostImages; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeImagesZoomable", function() { return makeImagesZoomable; });
var isRTL = function isRTL() {
var $html = document.querySelector('html');
return ['ar', 'he', 'fa'].includes($html.getAttribute('lang'));
};
var isMobile = function isMobile() {
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '768px';
return window.matchMedia("(max-width: ".concat(width, ")")).matches;
};
var isDarkMode = function isDarkMode() {
var darkModeMatcher = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');
return darkModeMatcher && darkModeMatcher.matches;
};
var formatDate = function formatDate(date) {
if (date) {
return new Date(date).toLocaleDateString(document.documentElement.lang, {
year: 'numeric',
month: 'long',
day: 'numeric'
});
}
return '';
};
var getParameterByName = function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp("[?&]".concat(name, "(=([^&#]*)|&|#|$)"));
var results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
};
var adjustImageGallery = function adjustImageGallery() {
var images = document.querySelectorAll('.kg-gallery-image img');
for (var i = 0, len = images.length; i < len; i++) {
var container = images[i].closest('.kg-gallery-image');
var width = images[i].attributes.width.value;
var height = images[i].attributes.height.value;
var ratio = width / height;
container.style.flex = "".concat(ratio, " 1 0%");
}
};
var managePostImages = function managePostImages($) {
$('.js-post-content').find('img').each(function () {
if (!$(this).closest('figure').hasClass('kg-bookmark-card') && !$(this).parent().is('a')) {
$(this).addClass('js-zoomable');
}
var $figcaption = $(this).parent().find('figcaption');
if ($figcaption) {
$(this).attr('alt', $figcaption.text());
} else {
$(this).attr('alt', '');
}
});
};
var makeImagesZoomable = function makeImagesZoomable($, mediumZoom) {
var zoom = mediumZoom('.js-zoomable');
zoom.on('opened', function () {
setTimeout(function () {
var $mediumZoomImages = $('.medium-zoom-image--opened');
if ($mediumZoomImages.length > 1) {
$mediumZoomImages.last().hide();
}
}, 10);
});
};
/***/ }),
/***/ "./js/post.js":
/*!********************!*\
!*** ./js/post.js ***!
\********************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var medium_zoom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! medium-zoom */ "./node_modules/medium-zoom/dist/medium-zoom.esm.js");
/* harmony import */ var fitvids__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fitvids */ "./node_modules/fitvids/index.js");
/* harmony import */ var fitvids__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fitvids__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var shave__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shave */ "./node_modules/shave/dist/shave.es.js");
/* harmony import */ var _glidejs_glide_dist_glide_modular_esm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @glidejs/glide/dist/glide.modular.esm */ "./node_modules/@glidejs/glide/dist/glide.modular.esm.js");
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers */ "./js/helpers.js");
var $aosWrapper = null;
var $progressCircle = null;
var lastScrollingY = window.pageYOffset;
var lastWindowHeight = 0;
var lastDocumentHeight = 0;
var circumference = 0;
var isTicking = false;
var onScrolling = function onScrolling() {
lastScrollingY = window.pageYOffset;
requestTicking();
};
var adjustShare = function adjustShare(timeout) {
if (!Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["isMobile"])('1023px')) {
jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').removeClass('share-menu-displayed');
} else {
jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').addClass('share-menu-displayed');
setTimeout(function () {
$aosWrapper.removeAttr('data-aos');
}, timeout);
}
};
var onResizing = function onResizing() {
setHeights();
adjustShare(100);
setTimeout(function () {
setCircleStyles();
requestTicking();
}, 200);
};
var requestTicking = function requestTicking() {
if (!isTicking) {
requestAnimationFrame(updating);
}
isTicking = true;
};
var updating = function updating() {
var progressMax = lastDocumentHeight - lastWindowHeight;
var percent = Math.ceil(lastScrollingY / progressMax * 100);
if (percent <= 100) {
setProgress(percent);
}
isTicking = false;
};
var setHeights = function setHeights() {
lastWindowHeight = window.innerHeight;
lastDocumentHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height();
};
var setCircleStyles = function setCircleStyles() {
var svgWidth = $progressCircle.parent().width();
var radiusCircle = svgWidth / 2;
var borderWidth = Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["isMobile"])() ? 2 : 3;
$progressCircle.parent().attr('viewBox', "0 0 ".concat(svgWidth, " ").concat(svgWidth));
$progressCircle.attr('stroke-width', borderWidth);
$progressCircle.attr('r', radiusCircle - (borderWidth - 1));
$progressCircle.attr('cx', radiusCircle);
$progressCircle.attr('cy', radiusCircle);
circumference = radiusCircle * 2 * Math.PI;
$progressCircle[0].style.strokeDasharray = "".concat(circumference, " ").concat(circumference);
$progressCircle[0].style.strokeDashoffset = circumference;
};
var setProgress = function setProgress(percent) {
if (percent <= 100) {
var offset = circumference - percent / 100 * circumference;
$progressCircle[0].style.strokeDashoffset = offset;
}
};
var prepareProgressCircle = function prepareProgressCircle() {
$progressCircle = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-progress');
setHeights();
setCircleStyles();
updating();
setTimeout(function () {
$progressCircle.parent().css('opacity', 1);
}, 300);
};
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {
$aosWrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-aos-wrapper');
var $scrollButton = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-scrolltop');
var $recommendedSlider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-recommended-slider');
fitvids__WEBPACK_IMPORTED_MODULE_2___default()('.js-post-content');
Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["adjustImageGallery"])();
adjustShare(1000);
if ($recommendedSlider.length > 0) {
var recommendedSlider = new _glidejs_glide_dist_glide_modular_esm__WEBPACK_IMPORTED_MODULE_4__["default"]('.js-recommended-slider', {
type: 'slider',
rewind: false,
perView: 3,
swipeThreshold: false,
dragThreshold: false,
gap: 0,
direction: Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["isRTL"])() ? 'rtl' : 'ltr',
breakpoints: {
1023: {
type: 'carousel',
perView: 2,
swipeThreshold: 80,
dragThreshold: 120
},
720: {
type: 'carousel',
perView: 2,
swipeThreshold: 80,
dragThreshold: 120
},
568: {
type: 'carousel',
perView: 1,
swipeThreshold: 80,
dragThreshold: 120
}
}
});
var Length = function Length(Glide, Components, Events) {
return {
mount: function mount() {
Events.emit('length.change', Components.Sizes.length);
}
};
};
recommendedSlider.on('mount.after', function () {
Object(shave__WEBPACK_IMPORTED_MODULE_3__["default"])('.js-article-card-title', 100);
Object(shave__WEBPACK_IMPORTED_MODULE_3__["default"])('.js-article-card-title-no-image', 250);
});
recommendedSlider.on('length.change', function (length) {
if (length === 1) {
recommendedSlider.update({
type: 'slider'
});
$recommendedSlider.find('.js-controls').remove();
}
});
recommendedSlider.mount({
Controls: _glidejs_glide_dist_glide_modular_esm__WEBPACK_IMPORTED_MODULE_4__["Controls"],
Swipe: _glidejs_glide_dist_glide_modular_esm__WEBPACK_IMPORTED_MODULE_4__["Swipe"],
Breakpoints: _glidejs_glide_dist_glide_modular_esm__WEBPACK_IMPORTED_MODULE_4__["Breakpoints"],
Length: Length
});
}
Object(shave__WEBPACK_IMPORTED_MODULE_3__["default"])('.js-article-card-title', 100);
Object(shave__WEBPACK_IMPORTED_MODULE_3__["default"])('.js-article-card-title-no-image', 250);
$scrollButton.click(function () {
jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({
scrollTop: 0
}, 500);
});
Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["managePostImages"])(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
Object(_helpers__WEBPACK_IMPORTED_MODULE_5__["makeImagesZoomable"])(jquery__WEBPACK_IMPORTED_MODULE_0___default.a, medium_zoom__WEBPACK_IMPORTED_MODULE_1__["default"]);
window.addEventListener('scroll', onScrolling, {
passive: true
});
window.addEventListener('resize', onResizing, {
passive: true
});
});
jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('load', function () {
prepareProgressCircle();
});
/***/ }),
/***/ 3:
/*!**************************!*\
!*** multi ./js/post.js ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! /Users/eddie/Code/own/liebling/src/js/post.js */"./js/post.js");
/***/ })
},[[3,"/js/manifest","/js/vendor"]]]);