Файл: src/javascript/core/-scale.js
Строк: 60
<?php
module.exports = function (options) {
    return function (slider) {
        var parent = slider.parent,
            firstSlide = slider.slides[0],
            slideHeight = firstSlide.offsetHeight,
            slideWidth = firstSlide.offsetWidth,
            useZoom = options === 'zoom' || ('zoom' in parent.style && options !== 'transform'),
            wrap = function (element) {
                var wrapper = document.createElement('div');
                wrapper.className = 'bespoke-scale-parent';
                element.parentNode.insertBefore(wrapper, element);
                wrapper.appendChild(element);
                return wrapper;
            },
            elements = useZoom ? slider.slides : slider.slides.map(wrap),
            transformProperty = (function (property) {
                return ['Moz', 'Webkit', 'O', 'ms'].reduce(function (currentProperty, prefix) {
                    return prefix + property in parent.style ? prefix + property : currentProperty;
                }, property.toLowerCase());
            })('Transform'),
            scale = useZoom ? function (ratio, element) {
                element.style.zoom = ratio;
            } : function (ratio, element) {
                element.style[transformProperty] = 'scale(' + ratio + ')';
            },
            scaleAll = function () {
                var xScale = parent.offsetWidth / slideWidth,
                    yScale = parent.offsetHeight / slideHeight;
                elements.forEach(scale.bind(null, Math.min(xScale, yScale)));
            };
        window.addEventListener('resize', scaleAll);
        scaleAll();
    };
};
?>