/** * Modules in this bundle * @license * * scroll-hint: * license: MIT (http://opensource.org/licenses/MIT) * author: steelydylan * version: 1.2.5 * * es6-object-assign: * license: MIT (http://opensource.org/licenses/MIT) * author: Rubén Norte * homepage: https://github.com/rubennorte/es6-object-assign * version: 1.1.0 * * This header is generated by licensify (https://github.com/twada/licensify) */ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ScrollHint = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o\n \n
' + _this.opt.i18n.scrollable + '
\n
\n '); _this.items.push(item); }); window.addEventListener('scroll', function () { _this.updateItems(); }); window.addEventListener('resize', function () { _this.updateItems(); }); this.updateItems(); } _createClass(ScrollHint, [{ key: 'isScrollable', value: function isScrollable(item) { var offset = this.opt.offset; var element = item.element; var offsetWidth = element.offsetWidth; return offsetWidth + offset < element.scrollWidth; } }, { key: 'checkScrollableDir', value: function checkScrollableDir(item) { var _opt = this.opt, scrollHintBorderWidth = _opt.scrollHintBorderWidth, scrollableRightClass = _opt.scrollableRightClass, scrollableLeftClass = _opt.scrollableLeftClass; var element = item.element; var child = element.children[0]; var width = child.scrollWidth; var parentWidth = element.offsetWidth; var scrollLeft = element.scrollLeft; if (parentWidth + scrollLeft < width - scrollHintBorderWidth) { (0, _util.addClass)(element, scrollableRightClass); } else { (0, _util.removeClass)(element, scrollableRightClass); } if (parentWidth < width && scrollLeft > scrollHintBorderWidth) { (0, _util.addClass)(element, scrollableLeftClass); } else { (0, _util.removeClass)(element, scrollableLeftClass); } } }, { key: 'needSuggest', value: function needSuggest(item) { var scrolledIn = item.scrolledIn, interacted = item.interacted; return !interacted && scrolledIn && this.isScrollable(item); } }, { key: 'updateItems', value: function updateItems() { var _this2 = this; [].forEach.call(this.items, function (item) { _this2.updateItem(item); }); } }, { key: 'updateStatus', value: function updateStatus(item) { var _this3 = this; var element = item.element, scrolledIn = item.scrolledIn; if (scrolledIn) { return; } var target = element.querySelector('[data-target="scrollable-icon"] > span'); if ((0, _util.getOffset)(target).top < (0, _util.getScrollTop)() + window.innerHeight) { item.scrolledIn = true; if (this.opt.remainingTime !== -1) { setTimeout(function () { item.interacted = true; _this3.updateItem(item); }, this.opt.remainingTime); } } } }, { key: 'updateItem', value: function updateItem(item) { var opt = this.opt; var element = item.element; var target = element.querySelector('[data-target="scrollable-icon"]'); this.updateStatus(item); if (this.isScrollable(item)) { (0, _util.addClass)(element, opt.scrollableClass); } else { (0, _util.removeClass)(element, opt.scrollableClass); } if (this.needSuggest(item)) { (0, _util.addClass)(target, opt.suggestClass); } else { (0, _util.removeClass)(target, opt.suggestClass); } if (opt.suggestiveShadow) { this.checkScrollableDir(item); } } }]); return ScrollHint; }(); exports.default = ScrollHint; module.exports = exports['default']; },{"./util":3,"es6-object-assign":1}],3:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var append = exports.append = function append(element, string) { var div = document.createElement('div'); div.innerHTML = string; while (div.children.length > 0) { element.appendChild(div.children[0]); } }; var addClass = exports.addClass = function addClass(element, className) { if (element.classList) { element.classList.add(className); } else { element.className += ' ' + className; } }; var removeClass = exports.removeClass = function removeClass(element, className) { if (element.classList) { element.classList.remove(className); } else { element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); } }; var getScrollTop = exports.getScrollTop = function getScrollTop() { return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; }; var getScrollLeft = exports.getScrollLeft = function getScrollLeft() { return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; }; var getOffset = exports.getOffset = function getOffset(el) { var rect = el.getBoundingClientRect(); return { top: rect.top + getScrollTop(), left: rect.left + getScrollLeft() }; }; },{}]},{},[2])(2) });