1"use strict"; 2 3function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 4 5function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 6 7function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 8 9jQuery.fn.paginate = function paginate(customOptions) { 10 var _this = this; 11 12 var defaultOptions = { 13 items: "li", 14 desktop: { 15 "default": 3, 16 increment: 3 17 }, 18 tablet: { 19 "default": 2, 20 increment: 2 21 }, 22 mobile: { 23 "default": 1, 24 increment: 1 25 }, 26 showLess: true, 27 more: { 28 text: "Show more", 29 "class": "" 30 }, 31 less: { 32 text: "Show less", 33 "class": "" 34 }, 35 count: true, 36 totalRemaining: false 37 }; 38 39 var options = _objectSpread({}, defaultOptions, {}, customOptions); 40 41 var items; 42 var buttonMore; 43 var buttonLess; 44 var viewport; 45 46 var addButtons = function addButtons(count, showMoreItems, showLessItems) { 47 var buttonContainer = jQuery('<div class="btn-container"></div>'); 48 buttonMore = jQuery("<button class=\"show-more__btn ".concat(options.more["class"], "\">").concat(Drupal.t(options.more.text), " (<span class=\"count\">").concat(count, "</span>)</button>")); 49 50 if (items.length <= options[viewport]["default"]) { 51 buttonMore.hide(); 52 } 53 54 buttonLess = jQuery("<button class=\"show-less__btn ".concat(options.less["class"], "\">").concat(Drupal.t(options.less.text), "</button>")).hide(); 55 buttonMore.click(showMoreItems); 56 57 if (!options.count) { 58 buttonMore.find(".count").hide(); 59 } 60 61 buttonLess.click(showLessItems); 62 buttonContainer.append(buttonMore); 63 buttonContainer.append(buttonLess); 64 jQuery(_this).append(buttonContainer); 65 }; 66 67 var updateButtonCount = function updateButtonCount(val) { 68 buttonMore.find(".count").text(val); 69 }; 70 71 var showMoreItems = function showMoreItems() { 72 var status = jQuery.data(_this, "status"); 73 var visible = status.visible + options[viewport].increment; 74 75 if (status.visible <= status.total) { 76 items.slice(status.visible, visible).show(); 77 jQuery.data(_this, "status", _objectSpread({}, status, { 78 visible: visible 79 })); 80 } 81 82 if (visible >= status.total) { 83 buttonMore.hide(); 84 85 if (options.showLess) { 86 buttonLess.show(); 87 } 88 } else { 89 var diff = status.total - visible; 90 var newVal = diff > options[viewport].increment ? options[viewport].increment : diff; 91 updateButtonCount(options.totalRemaining ? diff : newVal); 92 } // Apply blazy on show more. 93 94 95 var blazy = new Blazy({ 96 selector: '.b-lazy', 97 loadInvisible: true 98 }); 99 }; 100 101 var showLessItems = function showLessItems() { 102 var status = jQuery.data(_this, "status"); 103 104 if (status.visible <= options[viewport]["default"]) { 105 buttonLess.hide(); 106 buttonMore.show(); 107 } else { 108 items.slice(options[viewport]["default"]).hide(); 109 jQuery.data(_this, "status", _objectSpread({}, status, { 110 visible: options[viewport]["default"] 111 })); 112 buttonLess.hide(); 113 buttonMore.show(); 114 var diff = status.total - options[viewport]["default"]; 115 var newVal = diff > options[viewport].increment ? options[viewport].increment : diff; 116 updateButtonCount(options.totalRemaining ? diff : newVal); 117 } 118 }; 119
120 var init = function init() { 121 // Un-Init the paginator. 122 jQuery(_this).find("".concat(options.items)).show(); 123 jQuery(_this).find('.btn-container').remove(); 124 var windowWidth = jQuery(window).width(); 125 126 if (windowWidth > 1199) { 127 viewport = "desktop"; 128 } else if (windowWidth > 767) { 129 viewport = "tablet"; 130 } else { 131 viewport = "mobile"; 132 } 133 134 items = jQuery(_this).find("".concat(options.items)); 135 var count; 136 137 if (options.totalRemaining) { 138 count = items.length - options[viewport]["default"]; 139 } else { 140 count = items.length - options[viewport]["default"] > options[viewport].increment ? options[viewport].increment : items.length - options[viewport]["default"]; 141 } 142 143 items.slice(options[viewport]["default"]).hide(); 144 jQuery.data(_this, "status", { 145 total: items.length, 146 visible: options[viewport]["default"] 147 }); 148 addButtons(count, showMoreItems, showLessItems); 149 }; 150 151 init(); 152}; 153//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAyLW1vbGVjdWxlcy9zaG93LW1vcmUvcGFnaW5hdGUuanMiXSwibmFtZXMiOlsialF1ZXJ5IiwiZm4iLCJwYWdpbmF0ZSIsImN1c3RvbU9wdGlvbnMiLCJkZWZhdWx0T3B0aW9ucyIsIml0ZW1zIiwiZGVza3RvcCIsImluY3JlbWVudCIsInRhYmxldCIsIm1vYmlsZSIsInNob3dMZXNzIiwibW9yZSIsInRleHQiLCJsZXNzIiwiY291bnQiLCJ0b3RhbFJlbWFpbmluZyIsIm9wdGlvbnMiLCJidXR0b25Nb3JlIiwiYnV0dG9uTGVzcyIsInZpZXdwb3J0IiwiYWRkQnV0dG9ucyIsInNob3dNb3JlSXRlbXMiLCJzaG93TGVzc0l0ZW1zIiwiYnV0dG9uQ29udGFpbmVyIiwiRHJ1cGFsIiwidCIsImxlbmd0aCIsImhpZGUiLCJjbGljayIsImZpbmQiLCJhcHBlbmQiLCJ1cGRhdGVCdXR0b25Db3VudCIsInZhbCIsInN0YXR1cyIsImRhdGEiLCJ2aXNpYmxlIiwidG90YWwiLCJzbGljZSIsInNob3ciLCJkaWZmIiwibmV3VmFsIiwiYmxhenkiLCJCbGF6eSIsInNlbGVjdG9yIiwibG9hZEludmlzaWJsZSIsImluaXQiLCJyZW1vdmUiLCJ3aW5kb3dXaWR0aCIsIndpbmRvdyIsIndpZHRoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEVBQVAsQ0FBVUMsUUFBVixHQUFxQixTQUFTQSxRQUFULENBQWtCQyxhQUFsQixFQUFpQztBQUFBOztBQUNwRCxNQUFNQyxjQUFjLEdBQUc7QUFDckJDLElBQUFBLEtBQUssRUFBRSxJQURjO0FBRXJCQyxJQUFBQSxPQUFPLEVBQUU7QUFDUCxpQkFBUyxDQURGO0FBRVBDLE1BQUFBLFNBQVMsRUFBRTtBQUZKLEtBRlk7QUFNckJDLElBQUFBLE1BQU0sRUFBRTtBQUNOLGlCQUFTLENBREg7QUFFTkQsTUFBQUEsU0FBUyxFQUFFO0FBRkwsS0FOYTtBQVVyQkUsSUFBQUEsTUFBTSxFQUFFO0FBQ04saUJBQVMs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LElBQUFBLE1BQU0sQ0FBQ2tDLElBQVAsQ0FBWSxLQUFaLEVBQWtCLFFBQWxCLEVBQTRCO0FBQzFCRSxNQUFBQSxLQUFLLEVBQUUvQixLQUFLLENBQUNxQixNQURhO0FBRTFCUyxNQUFBQSxPQUFPLEVBQUVuQixPQUFPLENBQUNHLFFBQUQsQ0FBUDtBQUZpQixLQUE1QjtBQUtBQyxJQUFBQSxVQUFVLENBQUNOLEtBQUQsRUFBUU8sYUFBUixFQUF1QkMsYUFBdkIsQ0FBVjtBQUNELEdBL0JEOztBQWdDQXVCLEVBQUFBLElBQUk7QUFDTCxDQXJKRCIsInNvdXJjZXNDb250ZW50IjpbImpRdWVyeS5mbi5wYWdpbmF0ZSA9IGZ1bmN0aW9uIHBhZ2luYXRlKGN1c3RvbU9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgaXRlbXM6IFwibGlcIixcbiAgICBkZXNrdG9wOi
153B7XG4gICAgICBkZWZhdWx0OiAzLFxuICAgICAgaW5jcmVtZW50OiAzXG4gICAgfSxcbiAgICB0YWJsZXQ6IHtcbiAgICAgIGRlZmF1bHQ6IDIsXG4gICAgICBpbmNyZW1lbnQ6IDJcbiAgICB9LFxuICAgIG1vYmlsZToge1xuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIGluY3JlbWVudDogMVxuICAgIH0sXG4gICAgc2hvd0xlc3M6IHRydWUsXG4gICAgbW9yZToge1xuICAgICAgdGV4dDogXCJTaG93IG1vcmVcIixcbiAgICAgIGNsYXNzOiBcIlwiXG4gICAgfSxcbiAgICBsZXNzOiB7XG4gICAgICB0ZXh0OiBcIlNob3cgbGVzc1wiLFxuICAgICAgY2xhc3M6IFwiXCJcbiAgICB9LFxuICAgIGNvdW50OiB0cnVlLFxuICAgIHRvdGFsUmVtYWluaW5nOiBmYWxzZVxuICB9O1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgIC4uLmN1c3RvbU9wdGlvbnNcbiAgfTtcblxuICBsZXQgaXRlbXM7XG4gIGxldCBidXR0b25Nb3JlO1xuICBsZXQgYnV0dG9uTGVzcztcbiAgbGV0IHZpZXdwb3J0O1xuXG4gIGNvbnN0IGFkZEJ1dHRvbnMgPSAoY291bnQsIHNob3dNb3JlSXRlbXMsIHNob3dMZXNzSXRlbXMpID0+IHtcbiAgICBjb25zdCBidXR0b25Db250YWluZXIgPSBqUXVlcnkoJzxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyXCI+PC9kaXY+Jyk7XG4gICAgYnV0dG9uTW9yZSA9IGpRdWVyeShcbiAgICAgIGA8YnV0dG9uIGNsYXNzPVwic2hvdy1tb3JlX19idG4gJHtvcHRpb25zLm1vcmUuY2xhc3N9XCI+JHtEcnVwYWwudChcbiAgICAgICAgb3B0aW9ucy5tb3JlLnRleHRcbiAgICAgICl9Jm5ic3A7KDxzcGFuIGNsYXNzPVwiY291bnRcIj4ke2NvdW50fTwvc3Bhbj4pPC9idXR0b24+YFxuICAgICk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSBvcHRpb25zW3ZpZXdwb3J0XS5kZWZh
153dWx0KSB7XG4gICAgICBidXR0b25Nb3JlLmhpZGUoKTtcbiAgICB9XG4gICAgYnV0dG9uTGVzcyA9IGpRdWVyeShcbiAgICAgIGA8YnV0dG9uIGNsYXNzPVwic2hvdy1sZXNzX19idG4gJHtvcHRpb25zLmxlc3MuY2xhc3N9XCI+JHtEcnVwYWwudChcbiAgICAgICAgb3B0aW9ucy5sZXNzLnRleHRcbiAgICAgICl9PC9idXR0b24+YFxuICAgICkuaGlkZSgpO1xuICAgIGJ1dHRvbk1vcmUuY2xpY2soc2hvd01vcmVJdGVtcyk7XG4gICAgaWYgKCFvcHRpb25zLmNvdW50KSB7XG4gICAgICBidXR0b25Nb3JlLmZpbmQoXCIuY291bnRcIikuaGlkZSgpO1xuICAgIH1cbiAgICBidXR0b25MZXNzLmNsaWNrKHNob3dMZXNzSXRlbXMpO1xuXG4gICAgYnV0dG9uQ29udGFpbmVyLmFwcGVuZChidXR0b25Nb3JlKTtcbiAgICBidXR0b25Db250YWluZXIuYXBwZW5kKGJ1dHRvbkxlc3MpO1xuICAgIGpRdWVyeSh0aGlzKS5hcHBlbmQoYnV0dG9uQ29udGFpbmVyKTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVCdXR0b25Db3VudCA9IHZhbCA9PiB7XG4gICAgYnV0dG9uTW9yZS5maW5kKFwiLmNvdW50XCIpLnRleHQodmFsKTtcbiAgfTtcblxuICBjb25zdCBzaG93TW9yZUl0ZW1zID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1cyA9IGpRdWVyeS5kYXRhKHRoaXMsIFwic3RhdHVzXCIpO1xuICAgIGNvbnN0IHZpc2libGUgPSBzdGF0dXMudmlzaWJsZSArIG9wdGlvbnNbdmlld3BvcnRdLmluY3JlbWVudDtcbiAgICBpZiAoc3RhdHVzLnZpc2libGUgPD0gc3RhdHVzLnRvdGFsKSB7XG4gICAgICBpdGVtcy5zbGljZShzdGF0dXMudmlzaWJsZSwgdmlzaWJsZSkuc2hvdygpO1xuICAgICAgalF1ZXJ5LmRhdGEodGhpcywgXCJzdGF0dXNcIiwge1xuICAgICAgICAuLi5zdGF0dXMsXG4gICAgICAgIHZpc2libGVcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodmlzaWJsZSA+PSBzdGF0dXMudG90YWwpIHtcbiAgICAgIGJ1dHRvbk1vcmUuaGlkZSgpO1xuICAgICAgaWYgKG9wdGlvbnMuc2hvd0xlc3MpIHtcbiAgICAgICAgYnV0dG9uTGVz
153cy5zaG93KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRpZmYgPSBzdGF0dXMudG90YWwgLSB2aXNpYmxlO1xuICAgICAgY29uc3QgbmV3VmFsID1cbiAgICAgICAgZGlmZiA+IG9wdGlvbnNbdmlld3BvcnRdLmluY3JlbWVudCA/IG9wdGlvbnNbdmlld3BvcnRdLmluY3JlbWVudCA6IGRpZmY7XG4gICAgICB1cGRhdGVCdXR0b25Db3VudChvcHRpb25zLnRvdGFsUmVtYWluaW5nID8gZGlmZiA6IG5ld1ZhbCk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgYmxhenkgb24gc2hvdyBtb3JlLlxuICAgIHZhciBibGF6eSA9IG5ldyBCbGF6eSh7XG4gICAgICBzZWxlY3RvcjogJy5iLWxhenknLFxuICAgICAgbG9hZEludmlzaWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBzaG93TGVzc0l0ZW1zID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1cyA9IGpRdWVyeS5kYXRhKHRoaXMsIFwic3RhdHVzXCIpO1xuICAgIGlmIChzdGF0dXMudmlzaWJsZSA8PSBvcHRpb25zW3ZpZXdwb3J0XS5kZWZhdWx0KSB7XG4gICAgICBidXR0b25MZXNzLmhpZGUoKTtcbiAgICAgIGJ1dHRvbk1vcmUuc2hvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtcy5zbGljZShvcHRpb25zW3ZpZXdwb3J0XS5kZWZhdWx0KS5oaWRlKCk7XG4gICAgICBqUXVlcnkuZGF0YSh0aGlzLCBcInN0YXR1c1wiLCB7XG4gICAgICAgIC4uLnN0YXR1cyxcbiAgICAgICAgdmlzaWJsZTogb3B0aW9uc1t2aWV3cG9ydF0uZGVmYXVsdFxuICAgICAgfSk7XG4gICAgICBidXR0b25MZXNzLmhpZGUoKTtcbiAgICAgIGJ1dHRvbk1vcmUuc2hvdygpO1xuICAgICAgY29uc3QgZGlmZiA9IHN0YXR1cy50b3RhbCAtIG9wdGlvbnNbdmlld3BvcnRdLmRlZmF1bHQ7XG4gICAgICBjb25zdCBuZXdWYWwgPVxuICAgICAgICBkaWZmID4gb3B0aW9uc1t2aWV3cG9ydF0uaW5jcmVtZW50ID8gb3B0aW9uc1t2aWV3cG9ydF0uaW5jcmVtZW50IDogZGlmZjtcbiAgICAgIHVwZGF0ZUJ1dHRvbkNvdW50KG9wdGlvbnMudG90YWxSZW1haW5pbmcgPyBkaWZmIDogbmV3VmFsKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaW5pdCA9ICgpID0+IHtcbiAgICAvLyBVbi1Jbml0IHRoZSBwYWdpbmF0b3IuXG4gICAgalF1ZXJ5KHRoaXMpLmZpbmQoYCR7b3B0aW9ucy5pdGVtc31gKS5zaG93KCk7XG4gICAgalF1ZXJ5KHRoaXMpLmZpbmQoJy5idG4tY29udGFpbmVyJykucmVtb3ZlKCk7XG5cbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IGpRdWVyeSh3aW5kb3cpLndpZHRoKCk7XG4gICAgaWYgKHdpbmRvd1dpZHRoID4gMTE5OSkge1xuICAgICAgdmlld3BvcnQgPSBcImRlc2t0b3BcIjtcbiAgICB9IGVsc2UgaWYgKHdpbmRvd1dpZHRoID4gNzY3KSB7XG4gICAgICB2aWV3cG9ydCA9IFwidGFibGV0XCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZpZXdwb3J0ID0gXCJtb2JpbGVcIjtcbiAgICB9XG4gICAgaXRlbXMgPSBqUXVlcnkodGhpcykuZmluZChgJHtvcHRpb25zLml0ZW1zfWApO1xuXG4gICAgbGV0IGNvdW50O1xuICAgIGlmIChvcHRpb25zLnRvdGFsUmVtYWluaW5nKSB7XG4gICAgICBjb3VudCA9IGl0ZW1zLmxlbmd0aCAtIG9wdGlvbnNbdmlld3BvcnRdLmRlZmF1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvdW50ID1cbiAgICAgICAgaXRlbXMubGVuZ3RoIC0gb3B0aW9uc1t2aWV3cG9ydF0uZGVmYXVsdCA+IG9wdGlvbnNbdmlld3BvcnRdLmluY3JlbWVudFxuICAgICAgICAgID8gb3B0aW9uc1t2aWV3cG9ydF0uaW5jcmVtZW50XG4gICAgICAgICAgOiBpdGVtcy5sZW5ndGggLSBvcHRpb25zW3ZpZXdwb3J0XS5kZWZh
153dWx0O1xuICAgIH1cbiAgICBpdGVtcy5zbGljZShvcHRpb25zW3ZpZXdwb3J0XS5kZWZhdWx0KS5oaWRlKCk7XG4gICAgalF1ZXJ5LmRhdGEodGhpcywgXCJzdGF0dXNcIiwge1xuICAgICAgdG90YWw6IGl0ZW1zLmxlbmd0aCxcbiAgICAgIHZpc2libGU6IG9wdGlvbnNbdmlld3BvcnRdLmRlZmF1bHRcbiAgICB9KTtcblxuICAgIGFkZEJ1dHRvbnMoY291bnQsIHNob3dNb3JlSXRlbXMsIHNob3dMZXNzSXRlbXMpO1xuICB9O1xuICBpbml0KCk7XG59O1xuIl0sImZpbGUiOiIwMi1tb2xlY3VsZXMvc2hvdy1tb3JlL3BhZ2luYXRlLmpzIn0=
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.