(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("jQuery")); else if(typeof define === 'function' && define.amd) define(["jQuery"], factory); else { var a = typeof exports === 'object' ? factory(require("jQuery")) : factory(root["jQuery"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function(__WEBPACK_EXTERNAL_MODULE_1__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { var $, Anno, AnnoButton, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; $ = __webpack_require__(1); __webpack_require__(2); exports.Anno = Anno = (function() { var _returnFromOnShow; function Anno(arg) { var key, options, others, val; if (arg.__proto__ === Array.prototype) { options = arg.shift(); others = arg; } else { options = arg; } if (options instanceof Anno) { console.warn('Anno constructor parameter is already an Anno object.'); } if (options == null) { console.warn("new Anno() created with no options. It's recommended" + " to supply at least target and content."); } for (key in options) { val = options[key]; if (key === 'chainTo' || key === 'start' || key === 'show' || key === 'hide' || key === 'hideAnno' || key === 'chainSize' || key === 'chainIndex' || key === 'version') { console.warn(("Anno: Overriding '" + key + "' is not recommended. Can ") + "you override a delegated function instead?"); } } for (key in options) { val = options[key]; this[key] = val; } if ((others != null ? others.length : void 0) > 0) { this.chainTo(new Anno(others)); } return; } Anno.setDefaults = function(options) { var key, val, _results; _results = []; for (key in options) { val = options[key]; _results.push(Anno.prototype[key] = val); } return _results; }; Anno.prototype.chainTo = function(obj) { if (obj != null) { if (this._chainNext == null) { this._chainNext = obj instanceof Anno ? obj : new Anno(obj); this._chainNext._chainPrev = this; } else { this._chainNext.chainTo(obj); } } else { console.error("Can't chainTo a null object."); } return this; }; Anno.prototype._chainNext = null; Anno.prototype._chainPrev = null; Anno.chain = function(array) { console.warn('Anno.chain([...]) is deprecated. Use ' + '`new Anno([...])` instead.'); return new Anno(array); }; Anno.prototype.chainSize = function() { if (this._chainNext != null) { return this._chainNext.chainSize(); } else { return 1 + this.chainIndex(); } }; Anno.prototype.chainIndex = function(index) { var find; if (index != null) { return (find = function(curr, i, u) { var ci; if (curr != null) { ci = curr.chainIndex(); if ((0 <= ci && ci < i)) { return find(curr._chainNext, i, u); } else if ((i < ci && ci <= u)) { return find(curr._chainPrev, i, u); } else if (ci === i) { return curr; } } else { return console.error(("Couldn't switch to index '" + i + "'. Chain size ") + ("is '" + u + "'")); } })(this, index, this.chainSize()); } else { if (this._chainPrev != null) { return 1 + this._chainPrev.chainIndex(); } else { return 0; } } }; Anno.prototype.show = function() { var $target, lastButton; $target = this.targetFn(); if (this._annoElem != null) { console.warn(("Anno elem for '" + this.target + "' has already been ") + "generated. Did you call show() twice?"); } this._annoElem = this.annoElem(); this.emphasiseTarget(); this.showOverlay(); $target.after(this._annoElem); this._annoElem.addClass('anno-target-' + this.arrowPositionFn()); this.positionAnnoElem(); setTimeout(((function(_this) { return function() { return _this._annoElem.removeClass('anno-hidden'); }; })(this)), 50); $target.scrollintoview(); setTimeout(((function(_this) { return function() { return _this._annoElem.scrollintoview(); }; })(this)), 300); lastButton = this._annoElem.find('button').last(); if (this.rightArrowClicksLastButton) { lastButton.keydown(function(evt) { if (evt.keyCode === 39) { return $(this).click(); } }); } if (this.autoFocusLastButton && $target.find(':focus').length === 0) { lastButton.focus(); } this._returnFromOnShow = this.onShow(this, $target, this._annoElem); return this; }; Anno.prototype.start = function() { return this.show(); }; Anno.prototype.rightArrowClicksLastButton = true; Anno.prototype.autoFocusLastButton = true; Anno.prototype.onShow = function(anno, $target, $annoElem) {}; _returnFromOnShow = null; Anno.prototype.hide = function() { this.hideAnno(); setTimeout(this.hideOverlay, 50); return this; }; Anno.prototype.hideAnno = function() { if (this._annoElem != null) { this._annoElem.addClass('anno-hidden'); this.deemphasiseTarget(); this.onHide(this, this.targetFn(), this._annoElem, this._returnFromOnShow); (function(annoEl) { return setTimeout((function() { return annoEl.remove(); }), 300); })(this._annoElem); this._annoElem = null; } else { console.warn(("Can't hideAnno() for '" + this.target + "' when @_annoElem ") + "is null. Did you call hideAnno() twice?"); } return this; }; Anno.prototype.onHide = function(anno, $target, $annoElem, returnFromOnShow) {}; Anno.prototype.switchTo = function(otherAnno) { if (otherAnno != null) { this.hideAnno(); return otherAnno.show(); } else { console.warn("Can't switchTo a null object. Hiding instead."); return this.hide(); } }; Anno.prototype.switchToChainNext = function() { return this.switchTo(this._chainNext); }; Anno.prototype.switchToChainPrev = function() { return this.switchTo(this._chainPrev); }; Anno.prototype.target = 'h1'; Anno.prototype.targetFn = function() { var r; if (typeof this.target === 'string') { r = $(this.target).filter(':not(.anno-placeholder)'); if (r.length === 0) { console.error("Couldn't find Anno.target '" + this.target + "'."); } if (r.length > 1) { console.warn(("Anno target '" + this.target + "' matched " + r.length + " ") + "elements. Targeting the first one."); } return r.first(); } else if (this.target instanceof jQuery) { if (this.target.length > 1) { console.warn(("Anno jQuery target matched " + this.target.length + " ") + "elements. Targeting the first one."); } return this.target.first(); } else if (this.target instanceof HTMLElement) { return $(this.target); } else if (typeof this.target === 'function') { return this.target(); } else { console.error("Unrecognised Anno.target. Please supply a jQuery " + "selector string, a jQuery object, a raw DOM element or a " + "function returning a jQuery element. target:"); return console.error(this.target); } }; Anno.prototype.annoElem = function() { this._annoElem = $("
\n
\n
"); this._annoElem.find('.anno-inner').append(this.contentElem()).append(this.buttonsElem()); return this._annoElem; }; Anno.prototype._annoElem = null; Anno.prototype.className = ''; Anno.prototype.content = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'; Anno.prototype.contentFn = function() { return this.content; }; Anno.prototype.contentElem = function() { return $("
" + this.contentFn() + "
"); }; Anno.prototype.showOverlay = function() { var $e; if ($('.anno-overlay').length === 0) { $('body').append($e = this.overlayElem().addClass('anno-hidden')); return setTimeout((function() { return $e.removeClass('anno-hidden'); }), 10); } else { return $('.anno-overlay').replaceWith(this.overlayElem()); } }; Anno.prototype.overlayElem = function() { return $("
").click((function(_this) { return function(evt) { return _this.overlayClick.call(_this, _this, evt); }; })(this)); }; Anno.prototype.overlayClassName = ''; Anno.prototype.overlayClick = function(anno, evt) { return anno.hide(); }; Anno.prototype.hideOverlay = function() { $('.anno-overlay').addClass('anno-hidden'); return setTimeout((function() { return $('.anno-overlay').remove(); }), 300); }; Anno.prototype.emphasiseTarget = function($target) { var origbg, origheight, origleft, origtop, origwidth, origzindex, placeholder, ppos, startposition, tpos; if ($target == null) { $target = this.targetFn(); } this._undoEmphasise = []; $target.closest(':scrollable').on('mousewheel', function(evt) { evt.preventDefault(); return evt.stopPropagation(); }); this._undoEmphasise.push(function($t) { return $t.closest(':scrollable').off('mousewheel'); }); if ($target.css('position') === 'static') { $target.after(placeholder = $target.clone().addClass('anno-placeholder')); (function(_this) { return (function(placeholder) { return _this._undoEmphasise.push(function() { return placeholder.remove(); }); }); })(this)(placeholder); startposition = $target.prop('style').position; (function(_this) { return (function(startposition) { return _this._undoEmphasise.push(function($t) { return $t.css({ position: startposition }); }); }); })(this)(startposition); $target.css({ position: 'absolute' }); if ($target.outerWidth() !== placeholder.outerWidth()) { origwidth = $target.prop('style').width; (function(_this) { return (function(origwidth) { return _this._undoEmphasise.push(function($t) { return $t.css({ width: origwidth }); }); }); })(this)(origwidth); $target.css('width', placeholder.outerWidth()); } if ($target.outerHeight() !== placeholder.outerHeight()) { origheight = $target.prop('style').height; (function(_this) { return (function(origheight) { return _this._undoEmphasise.push(function($t) { return $t.css({ height: origheight }); }); }); })(this)(origheight); $target.css('height', placeholder.outerHeight()); } ppos = placeholder.position(); tpos = $target.position(); if (tpos.top !== ppos.top) { origtop = $target.prop('style').top; (function(_this) { return (function(origtop) { return _this._undoEmphasise.push(function($t) { return $t.css({ top: origtop }); }); }); })(this)(origtop); $target.css('top', ppos.top); } if (tpos.left !== ppos.left) { origleft = $target.prop('style').left; (function(_this) { return (function(origleft) { return _this._undoEmphasise.push(function($t) { return $t.css({ left: origleft }); }); }); })(this)(origleft); $target.css('left', ppos.left); } } if ($target.css('backgroundColor') === 'rgba(0, 0, 0, 0)' || $target.css('backgroundColor') === 'transparent') { console.warn(("Anno.js target '" + this.target + "' has a transparent bg; ") + "filling it white temporarily."); origbg = $target.prop('style').background; (function(_this) { return (function(origbg) { return _this._undoEmphasise.push(function($t) { return $t.css({ background: origbg }); }); }); })(this)(origbg); $target.css({ background: 'white' }); } origzindex = $target.prop('style').zIndex; (function(_this) { return (function(origzindex) { return _this._undoEmphasise.push(function($t) { return $t.css({ zIndex: origzindex }); }); }); })(this)(origzindex); $target.css({ zIndex: '1001' }); return $target; }; Anno.prototype._undoEmphasise = []; Anno.prototype.deemphasiseTarget = function() { var $target, fn, _i, _len, _ref; $target = this.targetFn(); _ref = this._undoEmphasise; for (_i = 0, _len = _ref.length; _i < _len; _i++) { fn = _ref[_i]; fn($target); } return $target; }; Anno.prototype.position = null; Anno.prototype.positionAnnoElem = function(annoEl) { var $targetEl, offset, pos; if (annoEl == null) { annoEl = this._annoElem; } pos = this.positionFn(); $targetEl = this.targetFn(); offset = $targetEl.position(); switch (pos) { case 'top': case 'bottom': annoEl.css({ left: offset.left + 'px' }); break; case 'center-top': case 'center-bottom': annoEl.css({ left: offset.left + ($targetEl.outerWidth() / 2 - annoEl.outerWidth() / 2) + 'px' }); break; case 'left': case 'right': annoEl.css({ top: offset.top + 'px' }); break; case 'center-left': case 'center-right': annoEl.css({ top: offset.top + ($targetEl.outerHeight() / 2 - annoEl.outerHeight() / 2) + 'px' }); } switch (pos) { case 'top': case 'center-top': annoEl.css({ top: offset.top - annoEl.outerHeight() + 'px' }); break; case 'bottom': case 'center-bottom': annoEl.css({ top: offset.top + $targetEl.outerHeight() + 'px' }); break; case 'left': case 'center-left': annoEl.css({ left: offset.left - annoEl.outerWidth() + 'px' }); break; case 'right': case 'center-right': annoEl.css({ left: offset.left + $targetEl.outerWidth() + 'px' }); break; default: if ((pos.left != null) || (pos.right != null) || (pos.top != null) || (pos.bottom != null)) { annoEl.css(pos); } else { console.error("Unrecognised position: '" + pos + "'"); } } return annoEl; }; Anno.prototype.positionFn = function() { var $container, $target, allowed, annoBounds, bad, containerOffset, targetBounds, targetOffset, viewBounds; if (this.position != null) { return this.position; } else if (this._annoElem != null) { $target = this.targetFn(); $container = $target.closest(':scrollable'); if ($container.length === 0) { $container = $('body'); } targetOffset = $target.offset(); containerOffset = $container.offset(); targetBounds = { left: targetOffset.left - containerOffset.left, top: targetOffset.top - containerOffset.top }; targetBounds.right = targetBounds.left + $target.outerWidth(); targetBounds.bottom = targetBounds.top + $target.outerHeight(); viewBounds = { w: $container.width() || $container.width(), h: $container.height() || $container.height() }; annoBounds = { w: this._annoElem.outerWidth(), h: this._annoElem.outerHeight() }; bad = []; if (annoBounds.w > targetBounds.left) { bad = bad.concat(['left', 'center-left']); } if (annoBounds.h > targetBounds.top) { bad = bad.concat(['top', 'center-top']); } if (annoBounds.w + targetBounds.right > viewBounds.w) { bad = bad.concat(['right', 'center-right']); } if (annoBounds.h + targetBounds.bottom > viewBounds.h) { bad = bad.concat(['bottom', 'center-bottom']); } allowed = Anno.preferredPositions.filter(function(p) { return __indexOf.call(bad, p) < 0; }); if (allowed.length === 0) { console.error(("Anno couldn't guess a position for '" + this.target + "'. ") + "Please supply one in the constructor."); } else { console.warn(("Anno: guessing position:'" + allowed[0] + "' for ") + ("'" + this.target + "'. Possible Anno.preferredPositions: [" + allowed + "].")); } return this.position = allowed[0]; } }; Anno.preferredPositions = ['bottom', 'right', 'left', 'top', 'center-bottom', 'center-right', 'center-left', 'center-top']; Anno.prototype.arrowPositionFn = function() { var pos, r; if (this.arrowPosition != null) { return this.arrowPosition; } else if (typeof this.positionFn() === 'string') { return { 'top': 'bottom', 'center-top': 'center-bottom', 'left': 'right', 'center-left': 'center-right', 'right': 'left', 'center-right': 'center-left', 'bottom': 'top', 'center-bottom': 'center-top' }[this.positionFn()]; } else { pos = { l: parseInt(this.positionFn().left, 10), t: parseInt(this.positionFn().top, 10) }; if (Math.abs(pos.l) > Math.abs(pos.t)) { r = pos.l < 0 ? 'center-right' : 'center-left'; } else { r = pos.t < 0 ? 'center-bottom' : 'center-top'; } console.warn(("Guessing arrowPosition:'" + r + "' for " + this.target + ". ") + "Include this in your constructor for consistency."); return r; } }; Anno.prototype.arrowPosition = null; Anno.prototype.buttons = [{}]; Anno.prototype.buttonsFn = function() { if (this.buttons instanceof Array) { return this.buttons.map(function(b) { return new AnnoButton(b); }); } else { return [new AnnoButton(this.buttons)]; } }; Anno.prototype.buttonsElem = function() { var b; return $("
").append((function() { var _i, _len, _ref, _results; _ref = this.buttonsFn(); _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { b = _ref[_i]; _results.push(b.buttonElem(this)); } return _results; }).call(this)); }; return Anno; })(); exports.AnnoButton = AnnoButton = (function() { function AnnoButton(options) { var key, val; for (key in options) { val = options[key]; this[key] = val; } } //TODO-InHiro toto som upravil a pridal type=button lebo inak to odosielalao formulare AnnoButton.prototype.buttonElem = function(anno) { return $("").html(this.textFn(anno)).addClass(this.className).click((function(_this) { return function(evt) { return _this.click.call(anno, anno, evt); }; })(this)); }; AnnoButton.prototype.textFn = function(anno) { if (this.text != null) { return this.text; } else if (anno._chainNext != null) { return 'Next'; } else { return 'Done'; } }; AnnoButton.prototype.text = null; AnnoButton.prototype.className = ''; AnnoButton.prototype.click = function(anno, evt) { if (anno._chainNext != null) { return anno.switchToChainNext(); } else { return anno.hide(); } }; AnnoButton.NextButton = new AnnoButton({ text: 'Next', click: function() { return this.switchToChainNext(); } }); AnnoButton.DoneButton = new AnnoButton({ text: 'Done', click: function() { return this.hide(); } }); AnnoButton.BackButton = new AnnoButton({ text: 'Back', className: 'anno-btn-low-importance', click: function() { return this.switchToChainPrev(); } }); return AnnoButton; })(); /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { /*! * jQuery scrollintoview() plugin and :scrollable selector filter * * Version 1.8 (14 Jul 2011) * Requires jQuery 1.4 or newer * * Copyright (c) 2011 Robert Koritnik * Licensed under the terms of the MIT license * http://www.opensource.org/licenses/mit-license.php */ (function ($) { var converter = { vertical: { x: false, y: true }, horizontal: { x: true, y: false }, both: { x: true, y: true }, x: { x: true, y: false }, y: { x: false, y: true } }; var settings = { duration: "fast", direction: "both" }; var rootrx = /^(?:html)$/i; // gets border dimensions var borders = function (domElement, styles) { styles = styles || (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(domElement, null) : domElement.currentStyle); var px = document.defaultView && document.defaultView.getComputedStyle ? true : false; var b = { top: (parseFloat(px ? styles.borderTopWidth : $.css(domElement, "borderTopWidth")) || 0), left: (parseFloat(px ? styles.borderLeftWidth : $.css(domElement, "borderLeftWidth")) || 0), bottom: (parseFloat(px ? styles.borderBottomWidth : $.css(domElement, "borderBottomWidth")) || 0), right: (parseFloat(px ? styles.borderRightWidth : $.css(domElement, "borderRightWidth")) || 0) }; return { top: b.top, left: b.left, bottom: b.bottom, right: b.right, vertical: b.top + b.bottom, horizontal: b.left + b.right }; }; var dimensions = function ($element) { var win = $(window); var isRoot = rootrx.test($element[0].nodeName); return { border: isRoot ? { top: 0, left: 0, bottom: 0, right: 0} : borders($element[0]), scroll: { top: (isRoot ? win : $element).scrollTop(), left: (isRoot ? win : $element).scrollLeft() }, scrollbar: { right: isRoot ? 0 : $element.innerWidth() - $element[0].clientWidth, bottom: isRoot ? 0 : $element.innerHeight() - $element[0].clientHeight }, rect: (function () { var r = $element[0].getBoundingClientRect(); return { top: isRoot ? 0 : r.top, left: isRoot ? 0 : r.left, bottom: isRoot ? $element[0].clientHeight : r.bottom, right: isRoot ? $element[0].clientWidth : r.right }; })() }; }; $.fn.extend({ scrollintoview: function (options) { /// Scrolls the first element in the set into view by scrolling its closest scrollable parent. /// Additional options that can configure scrolling: /// duration (default: "fast") - jQuery animation speed (can be a duration string or number of milliseconds) /// direction (default: "both") - select possible scrollings ("vertical" or "y", "horizontal" or "x", "both") /// complete (default: none) - a function to call when scrolling completes (called in context of the DOM element being scrolled) /// /// Returns the same jQuery set that this function was run on. options = $.extend({}, settings, options); options.direction = converter[typeof (options.direction) === "string" && options.direction.toLowerCase()] || converter.both; var dirStr = ""; if (options.direction.x === true) dirStr = "horizontal"; if (options.direction.y === true) dirStr = dirStr ? "both" : "vertical"; var el = this.eq(0); var scroller = el.closest(":scrollable(" + dirStr + ")"); // check if there's anything to scroll in the first place if (scroller.length > 0) { scroller = scroller.eq(0); var dim = { e: dimensions(el), s: dimensions(scroller) }; var rel = { top: dim.e.rect.top - (dim.s.rect.top + dim.s.border.top), bottom: dim.s.rect.bottom - dim.s.border.bottom - dim.s.scrollbar.bottom - dim.e.rect.bottom, left: dim.e.rect.left - (dim.s.rect.left + dim.s.border.left), right: dim.s.rect.right - dim.s.border.right - dim.s.scrollbar.right - dim.e.rect.right }; var animOptions = {}; // vertical scroll if (options.direction.y === true) { if (rel.top < 0) { animOptions.scrollTop = dim.s.scroll.top + rel.top; } else if (rel.top > 0 && rel.bottom < 0) { animOptions.scrollTop = dim.s.scroll.top + Math.min(rel.top, -rel.bottom); } } // horizontal scroll if (options.direction.x === true) { if (rel.left < 0) { animOptions.scrollLeft = dim.s.scroll.left + rel.left; } else if (rel.left > 0 && rel.right < 0) { animOptions.scrollLeft = dim.s.scroll.left + Math.min(rel.left, -rel.right); } } // scroll if needed if (!$.isEmptyObject(animOptions)) { if (rootrx.test(scroller[0].nodeName)) { scroller = $("html,body"); } scroller .animate(animOptions, options.duration) .eq(0) // we want function to be called just once (ref. "html,body") .queue(function (next) { $.isFunction(options.complete) && options.complete.call(scroller[0]); next(); }); } else { // when there's nothing to scroll, just call the "complete" function $.isFunction(options.complete) && options.complete.call(scroller[0]); } } // return set back return this; } }); var scrollValue = { auto: true, scroll: true, visible: false, hidden: false }; $.extend($.expr[":"], { scrollable: function (element, index, meta, stack) { var direction = converter[typeof (meta[3]) === "string" && meta[3].toLowerCase()] || converter.both; var styles = (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(element, null) : element.currentStyle); var overflow = { x: scrollValue[styles.overflowX.toLowerCase()] || false, y: scrollValue[styles.overflowY.toLowerCase()] || false, isRoot: rootrx.test(element.nodeName) }; // check if completely unscrollable (exclude HTML element because it's special) if (!overflow.x && !overflow.y && !overflow.isRoot) { return false; } var size = { height: { scroll: element.scrollHeight, client: element.clientHeight }, width: { scroll: element.scrollWidth, client: element.clientWidth }, // check overflow.x/y because iPad (and possibly other tablets) don't dislay scrollbars scrollableX: function () { return (overflow.x || overflow.isRoot) && this.width.scroll > this.width.client; }, scrollableY: function () { return (overflow.y || overflow.isRoot) && this.height.scroll > this.height.client; } }; return direction.y && size.scrollableY() || direction.x && size.scrollableX(); } }); })(jQuery); /***/ } /******/ ]) });