1(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[17],{ 2
3/***/ "./Scripts/favourites.js": 4/*!*******************************!*\ 5 !*** ./Scripts/favourites.js ***! 6 \*******************************/ 7/*! exports provided: default */ 8/***/ (function(module, __webpack_exports__, __webpack_require__) { 9 10"use strict"; 11__webpack_require__.r(__webpack_exports__); 12/* harmony default export */ __webpack_exports__["default"] = (element => { 13 let favourites = []; 14 /* 15 { 16 id: "", 17 url: "", 18 datetime: Date.now() 19 } 20 */ 21 22 let getCookie = function (cname) { 23 var name = cname + "="; 24 var decodedCookie = decodeURIComponent(document.cookie); 25 var ca = decodedCookie.split(';'); 26 for (var i = 0; i < ca.length; i++) { 27 var c = ca[i]; 28 while (c.charAt(0) == ' ') c = c.substring(1); 29 if (c.indexOf(name) == 0) return c.substring(name.length, c.length); 30 } 31 return null; 32 }; 33 let updateCookie = function () { 34 var cookieData = []; 35 for (var i = 0; i < favourites.length; i++) cookieData.push(favourites[i].id); 36 document.cookie = "favourites=" + cookieData.join("|") + "; path=/"; 37 }; 38 let load = function () { 39 favourites = JSON.parse(window.localStorage.getItem("favourites")); 40 var changed = false; 41 var newFavourites = getCookie("newfavourites"); 42 if (newFavourites != null) { 43 favourites = newFavourites.split("|"); 44 document.cookie = "newfavourites=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; 45 changed = true; 46 } 47 if (!favourites) favourites = []; 48 for (var i = 0; i < favourites.length;) { 49 if (favourites[i] == "") { 50 favourites.splice(i, 1); 51 changed = true; 52 } else { 53 i++; 54 } 55 } 56 if (changed) save();else updateCookie(); 57 updateBadge(); 58 }; 59 let save = function () { 60 window.localStorage.setItem("favourites", JSON.stringify(favourites)); 61 updateCookie(); 62 }; 63 let updateMarker = function (marker, id) { 64 var favourite = null; 65 for (var i = 0; i < favourites.length && !favourite; i++) if (favourites[i].id == id) favourite = favourites[i]; 66 updateBadge(); 67 if (favourite) { 68 marker.classList.add("selected"); 69 var datetime = new Date(favourite.datetime); 70 var month = (datetime.getMonth() + 1).toString(); 71 var day = datetime.getDate().toString(); 72 while (month.length < 2) month = "0" + month; 73 while (day.length < 2) day = "0" + day; 74 var markerString = window.__litium.translation['favourite.since']; 75 marker.title = markerString.replace('{0}', datetime.getFullYear() + "-" + month + "-" + day); 76 if (marker.hasAttribute('data-favourite-text')) { 77 marker.innerHTML = markerString.replace('{0}', datetime.getFullYear() + "-" + month + "-" + day); 78 } 79 } else { 80 marker.classList.remove("selected"); 81 marker.title = ""; 82 if (marker.hasAttribute('data-favourite-text')) { 83 marker.innerHTML = marker.getAttribute('data-favourite-text'); 84 } 85 } 86 }; 87 let updateMarkers = function () { 88 var markers = document.querySelectorAll("[data-favourite-id]"); 89 for (var i = 0; i < markers.length; i++) updateMarker(markers[i], markers[i].getAttribute("data-favourite-id")); 90 }; 91 let updateBadge = function () { 92 var length = favourites.length >= 10 ? "9+" : favourites.length; 93 var element = document.querySelector('.favourite__badge'); 94 if (element) { 95 element.innerHTML = length; 96 } 97 }; 98 let toggle = function (marker, id, url) { 99 var found = false; 100 for (var i = 0; i < favourites.length; i++) { 101 if (favourites[i].id == id) { 102 favourites.splice(i, 1); 103 save(); 104 updateMarkers(); 105 return false; 106 } 107 } 108 var favourite = { 109 id: id, 110 url: url, 111 datetime: Date.now() 112 }; 113 favourites.push(favourite); 114 save(); 115 updateMarkers(); 116 return true; 117 }; 118 let handleMarker = function (marker) { 119 var dataVal = marker.getAttribute("data-favourite-marker"); 120 var p = dataVal.indexOf('|'); 121 if (p == -1) return; 122 var id = dataVal.substring(0, p); 123 var url = dataVal.substring(p + 1); 124 marker.setAttribute("data-favourite-id", id); 125 marker.addEventListener("click", function (e) { 126 toggle(marker, id, url); 127 e.preventDefault(); 128 }); 129 }; 130 let init = function () { 131 load(); 132 var markers = element.querySelectorAll("[data-favourite-marker]"); 133 for (var i = 0; i < markers.length; i++) handleMarker(markers[i]); 134 updateMarkers(); 135 }; 136 let check = function (el) { 137 var markers = el.querySelectorAll("[data-favourite-marker]"); 138 for (var i = 0; i < markers.length; i++) handleMarker(markers[i]); 139 }; 140 init(); 141 document.favourites = { 142 scan: init, 143 check: check, 144 update: updateMarkers 145 }; 146}); 147 148/***/ })
148 149 150}]); 151//# sourceMappingURL=17.js.map
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.