PageSourceSearch

https://www.a-hus.se/ui/17.js

js a-hus.se collected 2026-10-02 11:53:30 UTC 4,868 bytes, 151 lines download raw bytes

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.