imported>Office |
|
שורה 2: |
שורה 2: |
| window.onload=function(){ | | window.onload=function(){ |
| var d1 = document.getElementById( 'mw-mf-page-left' ).getElementsByTagName( 'ul' )[0]; | | var d1 = document.getElementById( 'mw-mf-page-left' ).getElementsByTagName( 'ul' )[0]; |
− | d1.insertAdjacentHTML('beforeend', '<li><a href="/wiki/פורטלים" class="icon-portal icon icon-text" id="portalButton">פורטלים</a></li><li><a href="/blog" class="icon-blog icon icon-text" id="blogButton">בלוג</a></li><li><a href="/wiki/ייעוץ_אסטרטגי" class="icon-strat icon icon-text" id="stratButton">ייעוץ אסטרטגי</a></li><li><a href="/wiki/קורסים_והכשרות" class="icon-course icon icon-text" id="courseButton">קורסים והכשרות</a></li><li><a href="/#contact" class="icon-contact icon icon-text" id="contactButton">צור קשר</a></li><li id="contact-icons"><a href="tel:+972544702895" class="icon-phone icon-text" id="phoneButton"></a><a href="//www.facebook.com/doalogue" class="icon-facebook icon-text" id="FBButton"></a><a href="//twitter.com/doalogue" class="icon-twitter icon-text" id="twitterButton"></a><a href="//linkedin.com/company/doalogue" class="icon-linkedin icon-text" id="twitterButton"></a></li>'); | + | d1.insertAdjacentHTML('beforeend', '<li><a href="/wiki/פורטלים" class="icon-portal icon icon-text" id="portalButton">פורטלים</a></li><li><a href="/blog" class="icon-blog icon icon-text" id="blogButton">בלוג</a></li><ul id="contact-icons"><li><a href="//www.facebook.com/doalogue" class="icon-facbook icon icon-text" id="FBButton">facebook</a></li><li><a href="/blog" class="icon-blog icon icon-text" id="contactButton"></a></li><li><a href="/blog" class="icon-phone icon icon-text" id="phoneButton"></a></li><li><a href="/blog" class="icon-twitter icon icon-text" id="twitterButton"></a></li><li><a href="//linkedin.com/company/doalogue" class="icon-linkedin icon icon-text" id="twitterButton">/a></li></ul>'); |
| } | | } |
| // banner | | // banner |
| | | |
| $( document ).ready(function(){ | | $( document ).ready(function(){ |
− | $('head').append('<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" type="text/css" /><meta name="theme-color" content="#52A3F6"><meta name="msapplication-navbutton-color" content="#52A3F6"><meta name="apple-mobile-web-app-status-bar-style" content="#52A3F6">');
| |
| if ($('#image-banner').length > 0) { | | if ($('#image-banner').length > 0) { |
| $('#image-banner').css('background-image', 'url(' + $('.image img').attr('src') + ')').css('opacity', '1'); | | $('#image-banner').css('background-image', 'url(' + $('.image img').attr('src') + ')').css('opacity', '1'); |
שורה 16: |
שורה 15: |
| var PageHeader = document.getElementById("image-banner"); | | var PageHeader = document.getElementById("image-banner"); |
| var clnPageHeader = PageHeader.cloneNode(true); | | var clnPageHeader = PageHeader.cloneNode(true); |
− | | + | document.write('<link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css">'); |
| | | |
| if ($('.image').length > 0) { | | if ($('.image').length > 0) { |
שורה 25: |
שורה 24: |
| } | | } |
| } | | } |
− | });
| |
− |
| |
− | if (typeof jQuery != 'undefined') {
| |
− | jQuery(document).ready(function($) {
| |
− | var filetypes = /\.(zip|exe|dmg|pdf|doc.*|xls.*|ppt.*|mp3|txt|rar|wma|mov|avi|wmv|flv|wav)$/i;
| |
− | var baseHref = '';
| |
− | if (jQuery('base').attr('href') != undefined) baseHref = jQuery('base').attr('href');
| |
− |
| |
− | jQuery('a').on('click', function(event) {
| |
− | var el = jQuery(this);
| |
− | var track = true;
| |
− | var href = (typeof(el.attr('href')) != 'undefined' ) ? el.attr('href') :"";
| |
− | var isThisDomain = href.match(document.domain.split('.').reverse()[1] + '.' + document.domain.split('.').reverse()[0]);
| |
− | if (!href.match(/^javascript:/i)) {
| |
− | var elEv = []; elEv.value=0, elEv.non_i=false;
| |
− | if (href.match(/^mailto\:/i)) {
| |
− | elEv.category = "email";
| |
− | elEv.action = "click";
| |
− | elEv.label = href.replace(/^mailto\:/i, '');
| |
− | elEv.loc = href;
| |
− | }
| |
− | else if (href.match(filetypes)) {
| |
− | var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined;
| |
− | elEv.category = "download";
| |
− | elEv.action = "click-" + extension[0];
| |
− | elEv.label = href.replace(/ /g,"-");
| |
− | elEv.loc = baseHref + href;
| |
− | }
| |
− | else if (href.match(/^https?\:/i) && !isThisDomain) {
| |
− | elEv.category = "external";
| |
− | elEv.action = "click";
| |
− | elEv.label = href.replace(/^https?\:\/\//i, '');
| |
− | elEv.non_i = true;
| |
− | elEv.loc = href;
| |
− | }
| |
− | else if (href.match(/^tel\:/i)) {
| |
− | elEv.category = "telephone";
| |
− | elEv.action = "click";
| |
− | elEv.label = href.replace(/^tel\:/i, '');
| |
− | elEv.loc = href;
| |
− | }
| |
− | else track = false;
| |
− |
| |
− | if (track) {
| |
− | _gaq.push(['_trackEvent', elEv.category.toLowerCase(), elEv.action.toLowerCase(), elEv.label.toLowerCase(), elEv.value, elEv.non_i]);
| |
− | if ( el.attr('target') == undefined || el.attr('target').toLowerCase() != '_blank') {
| |
− | setTimeout(function() { location.href = elEv.loc; }, 400);
| |
− | return false;
| |
− | }
| |
− | }
| |
− | }
| |
− | });
| |
− | });
| |
− | }
| |
− |
| |
− | /*!***************************************************
| |
− | * mark.js v8.6.0
| |
− | * https://github.com/julmot/mark.js
| |
− | * Copyright (c) 2014–2017, Julian Motz
| |
− | * Released under the MIT license https://git.io/vwTVl
| |
− | *****************************************************/
| |
− | ( function ( $ ) {
| |
− | /*!***************************************************
| |
− | * mark.js v8.11.1
| |
− | * https://markjs.io/
| |
− | * Copyright (c) 2014–2018, Julian Kühnel
| |
− | * Released under the MIT license https://git.io/vwTVl
| |
− | *****************************************************/
| |
− |
| |
− | (function (global, factory) {
| |
− | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
| |
− | typeof define === 'function' && define.amd ? define(['jquery'], factory) :
| |
− | (global.Mark = factory(global.jQuery));
| |
− | }(this, (function ($) { 'use strict';
| |
− |
| |
− | $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
| |
− |
| |
− | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
| |
− | return typeof obj;
| |
− | } : function (obj) {
| |
− | return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
| |
− | };
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | var classCallCheck = function (instance, Constructor) {
| |
− | if (!(instance instanceof Constructor)) {
| |
− | throw new TypeError("Cannot call a class as a function");
| |
− | }
| |
− | };
| |
− |
| |
− | var createClass = function () {
| |
− | function defineProperties(target, props) {
| |
− | for (var i = 0; i < props.length; i++) {
| |
− | var descriptor = props[i];
| |
− | descriptor.enumerable = descriptor.enumerable || false;
| |
− | descriptor.configurable = true;
| |
− | if ("value" in descriptor) descriptor.writable = true;
| |
− | Object.defineProperty(target, descriptor.key, descriptor);
| |
− | }
| |
− | }
| |
− |
| |
− | return function (Constructor, protoProps, staticProps) {
| |
− | if (protoProps) defineProperties(Constructor.prototype, protoProps);
| |
− | if (staticProps) defineProperties(Constructor, staticProps);
| |
− | return Constructor;
| |
− | };
| |
− | }();
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | var _extends = Object.assign || function (target) {
| |
− | for (var i = 1; i < arguments.length; i++) {
| |
− | var source = arguments[i];
| |
− |
| |
− | for (var key in source) {
| |
− | if (Object.prototype.hasOwnProperty.call(source, key)) {
| |
− | target[key] = source[key];
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | return target;
| |
− | };
| |
− |
| |
− | var DOMIterator = function () {
| |
− | function DOMIterator(ctx) {
| |
− | var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
| |
− | var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
| |
− | var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;
| |
− | classCallCheck(this, DOMIterator);
| |
− |
| |
− | this.ctx = ctx;
| |
− | this.iframes = iframes;
| |
− | this.exclude = exclude;
| |
− | this.iframesTimeout = iframesTimeout;
| |
− | }
| |
− |
| |
− | createClass(DOMIterator, [{
| |
− | key: 'getContexts',
| |
− | value: function getContexts() {
| |
− | var ctx = void 0,
| |
− | filteredCtx = [];
| |
− | if (typeof this.ctx === 'undefined' || !this.ctx) {
| |
− | ctx = [];
| |
− | } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {
| |
− | ctx = Array.prototype.slice.call(this.ctx);
| |
− | } else if (Array.isArray(this.ctx)) {
| |
− | ctx = this.ctx;
| |
− | } else if (typeof this.ctx === 'string') {
| |
− | ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));
| |
− | } else {
| |
− | ctx = [this.ctx];
| |
− | }
| |
− | ctx.forEach(function (ctx) {
| |
− | var isDescendant = filteredCtx.filter(function (contexts) {
| |
− | return contexts.contains(ctx);
| |
− | }).length > 0;
| |
− | if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {
| |
− | filteredCtx.push(ctx);
| |
− | }
| |
− | });
| |
− | return filteredCtx;
| |
− | }
| |
− | }, {
| |
− | key: 'getIframeContents',
| |
− | value: function getIframeContents(ifr, successFn) {
| |
− | var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
| |
− |
| |
− | var doc = void 0;
| |
− | try {
| |
− | var ifrWin = ifr.contentWindow;
| |
− | doc = ifrWin.document;
| |
− | if (!ifrWin || !doc) {
| |
− | throw new Error('iframe inaccessible');
| |
− | }
| |
− | } catch (e) {
| |
− | errorFn();
| |
− | }
| |
− | if (doc) {
| |
− | successFn(doc);
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'isIframeBlank',
| |
− | value: function isIframeBlank(ifr) {
| |
− | var bl = 'about:blank',
| |
− | src = ifr.getAttribute('src').trim(),
| |
− | href = ifr.contentWindow.location.href;
| |
− | return href === bl && src !== bl && src;
| |
− | }
| |
− | }, {
| |
− | key: 'observeIframeLoad',
| |
− | value: function observeIframeLoad(ifr, successFn, errorFn) {
| |
− | var _this = this;
| |
− |
| |
− | var called = false,
| |
− | tout = null;
| |
− | var listener = function listener() {
| |
− | if (called) {
| |
− | return;
| |
− | }
| |
− | called = true;
| |
− | clearTimeout(tout);
| |
− | try {
| |
− | if (!_this.isIframeBlank(ifr)) {
| |
− | ifr.removeEventListener('load', listener);
| |
− | _this.getIframeContents(ifr, successFn, errorFn);
| |
− | }
| |
− | } catch (e) {
| |
− | errorFn();
| |
− | }
| |
− | };
| |
− | ifr.addEventListener('load', listener);
| |
− | tout = setTimeout(listener, this.iframesTimeout);
| |
− | }
| |
− | }, {
| |
− | key: 'onIframeReady',
| |
− | value: function onIframeReady(ifr, successFn, errorFn) {
| |
− | try {
| |
− | if (ifr.contentWindow.document.readyState === 'complete') {
| |
− | if (this.isIframeBlank(ifr)) {
| |
− | this.observeIframeLoad(ifr, successFn, errorFn);
| |
− | } else {
| |
− | this.getIframeContents(ifr, successFn, errorFn);
| |
− | }
| |
− | } else {
| |
− | this.observeIframeLoad(ifr, successFn, errorFn);
| |
− | }
| |
− | } catch (e) {
| |
− | errorFn();
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'waitForIframes',
| |
− | value: function waitForIframes(ctx, done) {
| |
− | var _this2 = this;
| |
− |
| |
− | var eachCalled = 0;
| |
− | this.forEachIframe(ctx, function () {
| |
− | return true;
| |
− | }, function (ifr) {
| |
− | eachCalled++;
| |
− | _this2.waitForIframes(ifr.querySelector('html'), function () {
| |
− | if (! --eachCalled) {
| |
− | done();
| |
− | }
| |
− | });
| |
− | }, function (handled) {
| |
− | if (!handled) {
| |
− | done();
| |
− | }
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'forEachIframe',
| |
− | value: function forEachIframe(ctx, filter, each) {
| |
− | var _this3 = this;
| |
− |
| |
− | var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
| |
− |
| |
− | var ifr = ctx.querySelectorAll('iframe'),
| |
− | open = ifr.length,
| |
− | handled = 0;
| |
− | ifr = Array.prototype.slice.call(ifr);
| |
− | var checkEnd = function checkEnd() {
| |
− | if (--open <= 0) {
| |
− | end(handled);
| |
− | }
| |
− | };
| |
− | if (!open) {
| |
− | checkEnd();
| |
− | }
| |
− | ifr.forEach(function (ifr) {
| |
− | if (DOMIterator.matches(ifr, _this3.exclude)) {
| |
− | checkEnd();
| |
− | } else {
| |
− | _this3.onIframeReady(ifr, function (con) {
| |
− | if (filter(ifr)) {
| |
− | handled++;
| |
− | each(con);
| |
− | }
| |
− | checkEnd();
| |
− | }, checkEnd);
| |
− | }
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'createIterator',
| |
− | value: function createIterator(ctx, whatToShow, filter) {
| |
− | return document.createNodeIterator(ctx, whatToShow, filter, false);
| |
− | }
| |
− | }, {
| |
− | key: 'createInstanceOnIframe',
| |
− | value: function createInstanceOnIframe(contents) {
| |
− | return new DOMIterator(contents.querySelector('html'), this.iframes);
| |
− | }
| |
− | }, {
| |
− | key: 'compareNodeIframe',
| |
− | value: function compareNodeIframe(node, prevNode, ifr) {
| |
− | var compCurr = node.compareDocumentPosition(ifr),
| |
− | prev = Node.DOCUMENT_POSITION_PRECEDING;
| |
− | if (compCurr & prev) {
| |
− | if (prevNode !== null) {
| |
− | var compPrev = prevNode.compareDocumentPosition(ifr),
| |
− | after = Node.DOCUMENT_POSITION_FOLLOWING;
| |
− | if (compPrev & after) {
| |
− | return true;
| |
− | }
| |
− | } else {
| |
− | return true;
| |
− | }
| |
− | }
| |
− | return false;
| |
− | }
| |
− | }, {
| |
− | key: 'getIteratorNode',
| |
− | value: function getIteratorNode(itr) {
| |
− | var prevNode = itr.previousNode();
| |
− | var node = void 0;
| |
− | if (prevNode === null) {
| |
− | node = itr.nextNode();
| |
− | } else {
| |
− | node = itr.nextNode() && itr.nextNode();
| |
− | }
| |
− | return {
| |
− | prevNode: prevNode,
| |
− | node: node
| |
− | };
| |
− | }
| |
− | }, {
| |
− | key: 'checkIframeFilter',
| |
− | value: function checkIframeFilter(node, prevNode, currIfr, ifr) {
| |
− | var key = false,
| |
− | handled = false;
| |
− | ifr.forEach(function (ifrDict, i) {
| |
− | if (ifrDict.val === currIfr) {
| |
− | key = i;
| |
− | handled = ifrDict.handled;
| |
− | }
| |
− | });
| |
− | if (this.compareNodeIframe(node, prevNode, currIfr)) {
| |
− | if (key === false && !handled) {
| |
− | ifr.push({
| |
− | val: currIfr,
| |
− | handled: true
| |
− | });
| |
− | } else if (key !== false && !handled) {
| |
− | ifr[key].handled = true;
| |
− | }
| |
− | return true;
| |
− | }
| |
− | if (key === false) {
| |
− | ifr.push({
| |
− | val: currIfr,
| |
− | handled: false
| |
− | });
| |
− | }
| |
− | return false;
| |
− | }
| |
− | }, {
| |
− | key: 'handleOpenIframes',
| |
− | value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {
| |
− | var _this4 = this;
| |
− |
| |
− | ifr.forEach(function (ifrDict) {
| |
− | if (!ifrDict.handled) {
| |
− | _this4.getIframeContents(ifrDict.val, function (con) {
| |
− | _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);
| |
− | });
| |
− | }
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'iterateThroughNodes',
| |
− | value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {
| |
− | var _this5 = this;
| |
− |
| |
− | var itr = this.createIterator(ctx, whatToShow, filterCb);
| |
− | var ifr = [],
| |
− | elements = [],
| |
− | node = void 0,
| |
− | prevNode = void 0,
| |
− | retrieveNodes = function retrieveNodes() {
| |
− | var _getIteratorNode = _this5.getIteratorNode(itr);
| |
− |
| |
− | prevNode = _getIteratorNode.prevNode;
| |
− | node = _getIteratorNode.node;
| |
− |
| |
− | return node;
| |
− | };
| |
− | while (retrieveNodes()) {
| |
− | if (this.iframes) {
| |
− | this.forEachIframe(ctx, function (currIfr) {
| |
− | return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);
| |
− | }, function (con) {
| |
− | _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {
| |
− | return elements.push(ifrNode);
| |
− | }, filterCb);
| |
− | });
| |
− | }
| |
− | elements.push(node);
| |
− | }
| |
− | elements.forEach(function (node) {
| |
− | eachCb(node);
| |
− | });
| |
− | if (this.iframes) {
| |
− | this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);
| |
− | }
| |
− | doneCb();
| |
− | }
| |
− | }, {
| |
− | key: 'forEachNode',
| |
− | value: function forEachNode(whatToShow, each, filter) {
| |
− | var _this6 = this;
| |
− |
| |
− | var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
| |
− |
| |
− | var contexts = this.getContexts();
| |
− | var open = contexts.length;
| |
− | if (!open) {
| |
− | done();
| |
− | }
| |
− | contexts.forEach(function (ctx) {
| |
− | var ready = function ready() {
| |
− | _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {
| |
− | if (--open <= 0) {
| |
− | done();
| |
− | }
| |
− | });
| |
− | };
| |
− | if (_this6.iframes) {
| |
− | _this6.waitForIframes(ctx, ready);
| |
− | } else {
| |
− | ready();
| |
− | }
| |
− | });
| |
− | }
| |
− | }], [{
| |
− | key: 'matches',
| |
− | value: function matches(element, selector) {
| |
− | var selectors = typeof selector === 'string' ? [selector] : selector,
| |
− | fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;
| |
− | if (fn) {
| |
− | var match = false;
| |
− | selectors.every(function (sel) {
| |
− | if (fn.call(element, sel)) {
| |
− | match = true;
| |
− | return false;
| |
− | }
| |
− | return true;
| |
− | });
| |
− | return match;
| |
− | } else {
| |
− | return false;
| |
− | }
| |
− | }
| |
− | }]);
| |
− | return DOMIterator;
| |
− | }();
| |
− |
| |
− | var Mark = function () {
| |
− | function Mark(ctx) {
| |
− | classCallCheck(this, Mark);
| |
− |
| |
− | this.ctx = ctx;
| |
− | this.ie = false;
| |
− | var ua = window.navigator.userAgent;
| |
− | if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {
| |
− | this.ie = true;
| |
− | }
| |
− | }
| |
− |
| |
− | createClass(Mark, [{
| |
− | key: 'log',
| |
− | value: function log(msg) {
| |
− | var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';
| |
− |
| |
− | var log = this.opt.log;
| |
− | if (!this.opt.debug) {
| |
− | return;
| |
− | }
| |
− | if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {
| |
− | log[level]('mark.js: ' + msg);
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'escapeStr',
| |
− | value: function escapeStr(str) {
| |
− | return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
| |
− | }
| |
− | }, {
| |
− | key: 'createRegExp',
| |
− | value: function createRegExp(str) {
| |
− | if (this.opt.wildcards !== 'disabled') {
| |
− | str = this.setupWildcardsRegExp(str);
| |
− | }
| |
− | str = this.escapeStr(str);
| |
− | if (Object.keys(this.opt.synonyms).length) {
| |
− | str = this.createSynonymsRegExp(str);
| |
− | }
| |
− | if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
| |
− | str = this.setupIgnoreJoinersRegExp(str);
| |
− | }
| |
− | if (this.opt.diacritics) {
| |
− | str = this.createDiacriticsRegExp(str);
| |
− | }
| |
− | str = this.createMergedBlanksRegExp(str);
| |
− | if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
| |
− | str = this.createJoinersRegExp(str);
| |
− | }
| |
− | if (this.opt.wildcards !== 'disabled') {
| |
− | str = this.createWildcardsRegExp(str);
| |
− | }
| |
− | str = this.createAccuracyRegExp(str);
| |
− | return str;
| |
− | }
| |
− | }, {
| |
− | key: 'createSynonymsRegExp',
| |
− | value: function createSynonymsRegExp(str) {
| |
− | var syn = this.opt.synonyms,
| |
− | sens = this.opt.caseSensitive ? '' : 'i',
| |
− | joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\0' : '';
| |
− | for (var index in syn) {
| |
− | if (syn.hasOwnProperty(index)) {
| |
− | var value = syn[index],
| |
− | k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),
| |
− | k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);
| |
− | if (k1 !== '' && k2 !== '') {
| |
− | str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);
| |
− | }
| |
− | }
| |
− | }
| |
− | return str;
| |
− | }
| |
− | }, {
| |
− | key: 'processSynomyms',
| |
− | value: function processSynomyms(str) {
| |
− | if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
| |
− | str = this.setupIgnoreJoinersRegExp(str);
| |
− | }
| |
− | return str;
| |
− | }
| |
− | }, {
| |
− | key: 'setupWildcardsRegExp',
| |
− | value: function setupWildcardsRegExp(str) {
| |
− | str = str.replace(/(?:\\)*\?/g, function (val) {
| |
− | return val.charAt(0) === '\\' ? '?' : '\x01';
| |
− | });
| |
− | return str.replace(/(?:\\)*\*/g, function (val) {
| |
− | return val.charAt(0) === '\\' ? '*' : '\x02';
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'createWildcardsRegExp',
| |
− | value: function createWildcardsRegExp(str) {
| |
− | var spaces = this.opt.wildcards === 'withSpaces';
| |
− | return str.replace(/\u0001/g, spaces ? '[\\S\\s]?' : '\\S?').replace(/\u0002/g, spaces ? '[\\S\\s]*?' : '\\S*');
| |
− | }
| |
− | }, {
| |
− | key: 'setupIgnoreJoinersRegExp',
| |
− | value: function setupIgnoreJoinersRegExp(str) {
| |
− | return str.replace(/[^(|)\\]/g, function (val, indx, original) {
| |
− | var nextChar = original.charAt(indx + 1);
| |
− | if (/[(|)\\]/.test(nextChar) || nextChar === '') {
| |
− | return val;
| |
− | } else {
| |
− | return val + '\0';
| |
− | }
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'createJoinersRegExp',
| |
− | value: function createJoinersRegExp(str) {
| |
− | var joiner = [];
| |
− | var ignorePunctuation = this.opt.ignorePunctuation;
| |
− | if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {
| |
− | joiner.push(this.escapeStr(ignorePunctuation.join('')));
| |
− | }
| |
− | if (this.opt.ignoreJoiners) {
| |
− | joiner.push('\\u00ad\\u200b\\u200c\\u200d');
| |
− | }
| |
− | return joiner.length ? str.split(/\u0000+/).join('[' + joiner.join('') + ']*') : str;
| |
− | }
| |
− | }, {
| |
− | key: 'createDiacriticsRegExp',
| |
− | value: function createDiacriticsRegExp(str) {
| |
− | var sens = this.opt.caseSensitive ? '' : 'i',
| |
− | dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];
| |
− | var handled = [];
| |
− | str.split('').forEach(function (ch) {
| |
− | dct.every(function (dct) {
| |
− | if (dct.indexOf(ch) !== -1) {
| |
− | if (handled.indexOf(dct) > -1) {
| |
− | return false;
| |
− | }
| |
− | str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');
| |
− | handled.push(dct);
| |
− | }
| |
− | return true;
| |
− | });
| |
− | });
| |
− | return str;
| |
− | }
| |
− | }, {
| |
− | key: 'createMergedBlanksRegExp',
| |
− | value: function createMergedBlanksRegExp(str) {
| |
− | return str.replace(/[\s]+/gmi, '[\\s]+');
| |
− | }
| |
− | }, {
| |
− | key: 'createAccuracyRegExp',
| |
− | value: function createAccuracyRegExp(str) {
| |
− | var _this = this;
| |
− |
| |
− | var chars = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~¡¿';
| |
− | var acc = this.opt.accuracy,
| |
− | val = typeof acc === 'string' ? acc : acc.value,
| |
− | ls = typeof acc === 'string' ? [] : acc.limiters,
| |
− | lsJoin = '';
| |
− | ls.forEach(function (limiter) {
| |
− | lsJoin += '|' + _this.escapeStr(limiter);
| |
− | });
| |
− | switch (val) {
| |
− | case 'partially':
| |
− | default:
| |
− | return '()(' + str + ')';
| |
− | case 'complementary':
| |
− | lsJoin = '\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));
| |
− | return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';
| |
− | case 'exactly':
| |
− | return '(^|\\s' + lsJoin + ')(' + str + ')(?=$|\\s' + lsJoin + ')';
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'getSeparatedKeywords',
| |
− | value: function getSeparatedKeywords(sv) {
| |
− | var _this2 = this;
| |
− |
| |
− | var stack = [];
| |
− | sv.forEach(function (kw) {
| |
− | if (!_this2.opt.separateWordSearch) {
| |
− | if (kw.trim() && stack.indexOf(kw) === -1) {
| |
− | stack.push(kw);
| |
− | }
| |
− | } else {
| |
− | kw.split(' ').forEach(function (kwSplitted) {
| |
− | if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {
| |
− | stack.push(kwSplitted);
| |
− | }
| |
− | });
| |
− | }
| |
− | });
| |
− | return {
| |
− | 'keywords': stack.sort(function (a, b) {
| |
− | return b.length - a.length;
| |
− | }),
| |
− | 'length': stack.length
| |
− | };
| |
− | }
| |
− | }, {
| |
− | key: 'isNumeric',
| |
− | value: function isNumeric(value) {
| |
− | return Number(parseFloat(value)) == value;
| |
− | }
| |
− | }, {
| |
− | key: 'checkRanges',
| |
− | value: function checkRanges(array) {
| |
− | var _this3 = this;
| |
− |
| |
− | if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {
| |
− | this.log('markRanges() will only accept an array of objects');
| |
− | this.opt.noMatch(array);
| |
− | return [];
| |
− | }
| |
− | var stack = [];
| |
− | var last = 0;
| |
− | array.sort(function (a, b) {
| |
− | return a.start - b.start;
| |
− | }).forEach(function (item) {
| |
− | var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),
| |
− | start = _callNoMatchOnInvalid.start,
| |
− | end = _callNoMatchOnInvalid.end,
| |
− | valid = _callNoMatchOnInvalid.valid;
| |
− |
| |
− | if (valid) {
| |
− | item.start = start;
| |
− | item.length = end - start;
| |
− | stack.push(item);
| |
− | last = end;
| |
− | }
| |
− | });
| |
− | return stack;
| |
− | }
| |
− | }, {
| |
− | key: 'callNoMatchOnInvalidRanges',
| |
− | value: function callNoMatchOnInvalidRanges(range, last) {
| |
− | var start = void 0,
| |
− | end = void 0,
| |
− | valid = false;
| |
− | if (range && typeof range.start !== 'undefined') {
| |
− | start = parseInt(range.start, 10);
| |
− | end = start + parseInt(range.length, 10);
| |
− | if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {
| |
− | valid = true;
| |
− | } else {
| |
− | this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));
| |
− | this.opt.noMatch(range);
| |
− | }
| |
− | } else {
| |
− | this.log('Ignoring invalid range: ' + JSON.stringify(range));
| |
− | this.opt.noMatch(range);
| |
− | }
| |
− | return {
| |
− | start: start,
| |
− | end: end,
| |
− | valid: valid
| |
− | };
| |
− | }
| |
− | }, {
| |
− | key: 'checkWhitespaceRanges',
| |
− | value: function checkWhitespaceRanges(range, originalLength, string) {
| |
− | var end = void 0,
| |
− | valid = true,
| |
− | max = string.length,
| |
− | offset = originalLength - max,
| |
− | start = parseInt(range.start, 10) - offset;
| |
− | start = start > max ? max : start;
| |
− | end = start + parseInt(range.length, 10);
| |
− | if (end > max) {
| |
− | end = max;
| |
− | this.log('End range automatically set to the max value of ' + max);
| |
− | }
| |
− | if (start < 0 || end - start < 0 || start > max || end > max) {
| |
− | valid = false;
| |
− | this.log('Invalid range: ' + JSON.stringify(range));
| |
− | this.opt.noMatch(range);
| |
− | } else if (string.substring(start, end).replace(/\s+/g, '') === '') {
| |
− | valid = false;
| |
− | this.log('Skipping whitespace only range: ' + JSON.stringify(range));
| |
− | this.opt.noMatch(range);
| |
− | }
| |
− | return {
| |
− | start: start,
| |
− | end: end,
| |
− | valid: valid
| |
− | };
| |
− | }
| |
− | }, {
| |
− | key: 'getTextNodes',
| |
− | value: function getTextNodes(cb) {
| |
− | var _this4 = this;
| |
− |
| |
− | var val = '',
| |
− | nodes = [];
| |
− | this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {
| |
− | nodes.push({
| |
− | start: val.length,
| |
− | end: (val += node.textContent).length,
| |
− | node: node
| |
− | });
| |
− | }, function (node) {
| |
− | if (_this4.matchesExclude(node.parentNode)) {
| |
− | return NodeFilter.FILTER_REJECT;
| |
− | } else {
| |
− | return NodeFilter.FILTER_ACCEPT;
| |
− | }
| |
− | }, function () {
| |
− | cb({
| |
− | value: val,
| |
− | nodes: nodes
| |
− | });
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'matchesExclude',
| |
− | value: function matchesExclude(el) {
| |
− | return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));
| |
− | }
| |
− | }, {
| |
− | key: 'wrapRangeInTextNode',
| |
− | value: function wrapRangeInTextNode(node, start, end) {
| |
− | var hEl = !this.opt.element ? 'mark' : this.opt.element,
| |
− | startNode = node.splitText(start),
| |
− | ret = startNode.splitText(end - start);
| |
− | var repl = document.createElement(hEl);
| |
− | repl.setAttribute('data-markjs', 'true');
| |
− | if (this.opt.className) {
| |
− | repl.setAttribute('class', this.opt.className);
| |
− | }
| |
− | repl.textContent = startNode.textContent;
| |
− | startNode.parentNode.replaceChild(repl, startNode);
| |
− | return ret;
| |
− | }
| |
− | }, {
| |
− | key: 'wrapRangeInMappedTextNode',
| |
− | value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {
| |
− | var _this5 = this;
| |
− |
| |
− | dict.nodes.every(function (n, i) {
| |
− | var sibl = dict.nodes[i + 1];
| |
− | if (typeof sibl === 'undefined' || sibl.start > start) {
| |
− | if (!filterCb(n.node)) {
| |
− | return false;
| |
− | }
| |
− | var s = start - n.start,
| |
− | e = (end > n.end ? n.end : end) - n.start,
| |
− | startStr = dict.value.substr(0, n.start),
| |
− | endStr = dict.value.substr(e + n.start);
| |
− | n.node = _this5.wrapRangeInTextNode(n.node, s, e);
| |
− | dict.value = startStr + endStr;
| |
− | dict.nodes.forEach(function (k, j) {
| |
− | if (j >= i) {
| |
− | if (dict.nodes[j].start > 0 && j !== i) {
| |
− | dict.nodes[j].start -= e;
| |
− | }
| |
− | dict.nodes[j].end -= e;
| |
− | }
| |
− | });
| |
− | end -= e;
| |
− | eachCb(n.node.previousSibling, n.start);
| |
− | if (end > n.end) {
| |
− | start = n.end;
| |
− | } else {
| |
− | return false;
| |
− | }
| |
− | }
| |
− | return true;
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'wrapMatches',
| |
− | value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {
| |
− | var _this6 = this;
| |
− |
| |
− | var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
| |
− | this.getTextNodes(function (dict) {
| |
− | dict.nodes.forEach(function (node) {
| |
− | node = node.node;
| |
− | var match = void 0;
| |
− | while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {
| |
− | if (!filterCb(match[matchIdx], node)) {
| |
− | continue;
| |
− | }
| |
− | var pos = match.index;
| |
− | if (matchIdx !== 0) {
| |
− | for (var i = 1; i < matchIdx; i++) {
| |
− | pos += match[i].length;
| |
− | }
| |
− | }
| |
− | node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);
| |
− | eachCb(node.previousSibling);
| |
− | regex.lastIndex = 0;
| |
− | }
| |
− | });
| |
− | endCb();
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'wrapMatchesAcrossElements',
| |
− | value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {
| |
− | var _this7 = this;
| |
− |
| |
− | var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
| |
− | this.getTextNodes(function (dict) {
| |
− | var match = void 0;
| |
− | while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {
| |
− | var start = match.index;
| |
− | if (matchIdx !== 0) {
| |
− | for (var i = 1; i < matchIdx; i++) {
| |
− | start += match[i].length;
| |
− | }
| |
− | }
| |
− | var end = start + match[matchIdx].length;
| |
− | _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {
| |
− | return filterCb(match[matchIdx], node);
| |
− | }, function (node, lastIndex) {
| |
− | regex.lastIndex = lastIndex;
| |
− | eachCb(node);
| |
− | });
| |
− | }
| |
− | endCb();
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'wrapRangeFromIndex',
| |
− | value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {
| |
− | var _this8 = this;
| |
− |
| |
− | this.getTextNodes(function (dict) {
| |
− | var originalLength = dict.value.length;
| |
− | ranges.forEach(function (range, counter) {
| |
− | var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),
| |
− | start = _checkWhitespaceRange.start,
| |
− | end = _checkWhitespaceRange.end,
| |
− | valid = _checkWhitespaceRange.valid;
| |
− |
| |
− | if (valid) {
| |
− | _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {
| |
− | return filterCb(node, range, dict.value.substring(start, end), counter);
| |
− | }, function (node) {
| |
− | eachCb(node, range);
| |
− | });
| |
− | }
| |
− | });
| |
− | endCb();
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'unwrapMatches',
| |
− | value: function unwrapMatches(node) {
| |
− | var parent = node.parentNode;
| |
− | var docFrag = document.createDocumentFragment();
| |
− | while (node.firstChild) {
| |
− | docFrag.appendChild(node.removeChild(node.firstChild));
| |
− | }
| |
− | parent.replaceChild(docFrag, node);
| |
− | if (!this.ie) {
| |
− | parent.normalize();
| |
− | } else {
| |
− | this.normalizeTextNode(parent);
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'normalizeTextNode',
| |
− | value: function normalizeTextNode(node) {
| |
− | if (!node) {
| |
− | return;
| |
− | }
| |
− | if (node.nodeType === 3) {
| |
− | while (node.nextSibling && node.nextSibling.nodeType === 3) {
| |
− | node.nodeValue += node.nextSibling.nodeValue;
| |
− | node.parentNode.removeChild(node.nextSibling);
| |
− | }
| |
− | } else {
| |
− | this.normalizeTextNode(node.firstChild);
| |
− | }
| |
− | this.normalizeTextNode(node.nextSibling);
| |
− | }
| |
− | }, {
| |
− | key: 'markRegExp',
| |
− | value: function markRegExp(regexp, opt) {
| |
− | var _this9 = this;
| |
− |
| |
− | this.opt = opt;
| |
− | this.log('Searching with expression "' + regexp + '"');
| |
− | var totalMatches = 0,
| |
− | fn = 'wrapMatches';
| |
− | var eachCb = function eachCb(element) {
| |
− | totalMatches++;
| |
− | _this9.opt.each(element);
| |
− | };
| |
− | if (this.opt.acrossElements) {
| |
− | fn = 'wrapMatchesAcrossElements';
| |
− | }
| |
− | this[fn](regexp, this.opt.ignoreGroups, function (match, node) {
| |
− | return _this9.opt.filter(node, match, totalMatches);
| |
− | }, eachCb, function () {
| |
− | if (totalMatches === 0) {
| |
− | _this9.opt.noMatch(regexp);
| |
− | }
| |
− | _this9.opt.done(totalMatches);
| |
− | });
| |
− | }
| |
− | }, {
| |
− | key: 'mark',
| |
− | value: function mark(sv, opt) {
| |
− | var _this10 = this;
| |
− |
| |
− | this.opt = opt;
| |
− | var totalMatches = 0,
| |
− | fn = 'wrapMatches';
| |
− |
| |
− | var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),
| |
− | kwArr = _getSeparatedKeywords.keywords,
| |
− | kwArrLen = _getSeparatedKeywords.length,
| |
− | sens = this.opt.caseSensitive ? '' : 'i',
| |
− | handler = function handler(kw) {
| |
− | var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),
| |
− | matches = 0;
| |
− | _this10.log('Searching with expression "' + regex + '"');
| |
− | _this10[fn](regex, 1, function (term, node) {
| |
− | return _this10.opt.filter(node, kw, totalMatches, matches);
| |
− | }, function (element) {
| |
− | matches++;
| |
− | totalMatches++;
| |
− | _this10.opt.each(element);
| |
− | }, function () {
| |
− | if (matches === 0) {
| |
− | _this10.opt.noMatch(kw);
| |
− | }
| |
− | if (kwArr[kwArrLen - 1] === kw) {
| |
− | _this10.opt.done(totalMatches);
| |
− | } else {
| |
− | handler(kwArr[kwArr.indexOf(kw) + 1]);
| |
− | }
| |
− | });
| |
− | };
| |
− |
| |
− | if (this.opt.acrossElements) {
| |
− | fn = 'wrapMatchesAcrossElements';
| |
− | }
| |
− | if (kwArrLen === 0) {
| |
− | this.opt.done(totalMatches);
| |
− | } else {
| |
− | handler(kwArr[0]);
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'markRanges',
| |
− | value: function markRanges(rawRanges, opt) {
| |
− | var _this11 = this;
| |
− |
| |
− | this.opt = opt;
| |
− | var totalMatches = 0,
| |
− | ranges = this.checkRanges(rawRanges);
| |
− | if (ranges && ranges.length) {
| |
− | this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));
| |
− | this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {
| |
− | return _this11.opt.filter(node, range, match, counter);
| |
− | }, function (element, range) {
| |
− | totalMatches++;
| |
− | _this11.opt.each(element, range);
| |
− | }, function () {
| |
− | _this11.opt.done(totalMatches);
| |
− | });
| |
− | } else {
| |
− | this.opt.done(totalMatches);
| |
− | }
| |
− | }
| |
− | }, {
| |
− | key: 'unmark',
| |
− | value: function unmark(opt) {
| |
− | var _this12 = this;
| |
− |
| |
− | this.opt = opt;
| |
− | var sel = this.opt.element ? this.opt.element : '*';
| |
− | sel += '[data-markjs]';
| |
− | if (this.opt.className) {
| |
− | sel += '.' + this.opt.className;
| |
− | }
| |
− | this.log('Removal selector "' + sel + '"');
| |
− | this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {
| |
− | _this12.unwrapMatches(node);
| |
− | }, function (node) {
| |
− | var matchesSel = DOMIterator.matches(node, sel),
| |
− | matchesExclude = _this12.matchesExclude(node);
| |
− | if (!matchesSel || matchesExclude) {
| |
− | return NodeFilter.FILTER_REJECT;
| |
− | } else {
| |
− | return NodeFilter.FILTER_ACCEPT;
| |
− | }
| |
− | }, this.opt.done);
| |
− | }
| |
− | }, {
| |
− | key: 'opt',
| |
− | set: function set$$1(val) {
| |
− | this._opt = _extends({}, {
| |
− | 'element': '',
| |
− | 'className': '',
| |
− | 'exclude': [],
| |
− | 'iframes': false,
| |
− | 'iframesTimeout': 5000,
| |
− | 'separateWordSearch': true,
| |
− | 'diacritics': true,
| |
− | 'synonyms': {},
| |
− | 'accuracy': 'partially',
| |
− | 'acrossElements': false,
| |
− | 'caseSensitive': false,
| |
− | 'ignoreJoiners': false,
| |
− | 'ignoreGroups': 0,
| |
− | 'ignorePunctuation': [],
| |
− | 'wildcards': 'disabled',
| |
− | 'each': function each() {},
| |
− | 'noMatch': function noMatch() {},
| |
− | 'filter': function filter() {
| |
− | return true;
| |
− | },
| |
− | 'done': function done() {},
| |
− | 'debug': false,
| |
− | 'log': window.console
| |
− | }, val);
| |
− | },
| |
− | get: function get$$1() {
| |
− | return this._opt;
| |
− | }
| |
− | }, {
| |
− | key: 'iterator',
| |
− | get: function get$$1() {
| |
− | return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);
| |
− | }
| |
− | }]);
| |
− | return Mark;
| |
− | }();
| |
− |
| |
− | $.fn.mark = function (sv, opt) {
| |
− | new Mark(this.get()).mark(sv, opt);
| |
− | return this;
| |
− | };
| |
− | $.fn.markRegExp = function (regexp, opt) {
| |
− | new Mark(this.get()).markRegExp(regexp, opt);
| |
− | return this;
| |
− | };
| |
− | $.fn.markRanges = function (ranges, opt) {
| |
− | new Mark(this.get()).markRanges(ranges, opt);
| |
− | return this;
| |
− | };
| |
− | $.fn.unmark = function (opt) {
| |
− | new Mark(this.get()).unmark(opt);
| |
− | return this;
| |
− | };
| |
− |
| |
− | return $;
| |
− |
| |
− | })));
| |
− | }( jQuery ) );
| |
− |
| |
− | /* סינון מונחון */
| |
− | $(function() {
| |
− | var $input = $("input[name='keyword']"),
| |
− | $context = $("#context ul li");
| |
− | $outofcontext = $("#context h3 "),
| |
− | $input.on("input", function() {
| |
− | var term = $(this).val();
| |
− | $context.show().unmark();
| |
− | if (term) {
| |
− | $context.mark(term, {
| |
− | done: function() {
| |
− | $context.not(":has(mark)").hide();
| |
− | $outofcontext.hide();
| |
− | }
| |
− | });
| |
− | } else {
| |
− | $outofcontext.show();
| |
− | }
| |
− | });
| |
− | });
| |
− |
| |
− |
| |
− | //Smooth scrolling with links
| |
− | $('#heroButton a').on('click', function(event){
| |
− | event.preventDefault();
| |
− | $('html,body').animate({scrollTop:$(this.hash).offset().top-48}, 500);
| |
− | });
| |
− |
| |
− | // Smooth scrolling when the document is loaded and ready
| |
− | $(document).ready(function(){
| |
− | $('html,body').animate({scrollTop:$(location.hash).offset().top}, 500);
| |
| }); | | }); |