PageSourceSearch

https://das.org.sg/wp-content/themes/das-child/assets/flatpickr/weekSelect.js?ver=5.15.2

js das.org.sg collected 2026-10-01 16:04:08 UTC 3,860 bytes, 99 lines download raw bytes

vendor: 3,860 bytes, lines 1-99
1(function (global, factory) {
2  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3  typeof define === 'function' && define.amd ? define(factory) :
4  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.weekSelect = factory());
5}(this, (function () { 'use strict';
6
7  function getEventTarget(event) {
8      try {
9          if (typeof event.composedPath === "function") {
10              var path = event.composedPath();
11              return path[0];
12          }
13          return event.target;
14      }
15      catch (error) {
16          return event.target;
17      }
18  }
19
20  function weekSelectPlugin() {
21      return function (fp) {
22          function onDayHover(event) {
23              var day = getEventTarget(event);
24              if (!day.classList.contains("flatpickr-day"))
25                  return;
26              var days = fp.days.childNodes;
27              var dayIndex = day.$i;
28              var dayIndSeven = dayIndex / 7;
29              var weekStartDay = days[7 * Math.floor(dayIndSeven)]
30                  .dateObj;
31              var weekEndDay = days[7 * Math.ceil(dayIndSeven + 0.01) - 1].dateObj;
32              for (var i = days.length; i--;) {
33                  var day_1 = days[i];
34                  var date = day_1.dateObj;
35                  if (date > weekEndDay || date < weekStartDay)
36                      day_1.classList.remove("inRange");
37                  else
38                      day_1.classList.add("inRange");
39              }
40          }
41          function highlightWeek() {
42              var selDate = fp.latestSelectedDateObj;
43              if (selDate !== undefined &&
44                  selDate.getMonth() === fp.currentMonth &&
45                  selDate.getFullYear() === fp.currentYear) {
46                  fp.weekStartDay = fp.days.childNodes[7 * Math.floor(fp.selectedDateElem.$i / 7)].dateObj;
47                  fp.weekEndDay = fp.days.childNodes[7 * Math.ceil(fp.selectedDateElem.$i / 7 + 0.01) - 1].dateObj;
48              }
49              var days = fp.days.childNodes;
50              for (var i = days.length; i--;) {
51                  var date = days[i].dateObj;
52                  if (date >= fp.weekStartDay && date <= fp.weekEndDay)
53                      days[i].classList.add("week", "selected");
54              }
55          }
56          function clearHover() {
57              var days = fp.days.childNodes;
58              for (var i = days.length; i--;)
59                  days[i].classList.remove("inRange");
60          }
61          function onReady() {
62              if (fp.daysContainer !== undefined)
63                  fp.daysContainer.addEventListener("mouseover", onDayHover);
64          }
65          function onDestroy() {
66              if (fp.daysContainer !== undefined)
67                  fp.daysContainer.removeEventListener("mouseover", onDayHover);
68          }
69          return {
70              onValueUpdate: highlightWeek,
71              onMonthChange: highlightWeek,
72              onYearChange: highlightWeek,
73              onOpen: highlightWeek,
74              onClose: clearHover,
75              onParseConfig: function () {
76                  fp.config.mode = "single";
77                  fp.config.enableTime = false;
78                  fp.config.dateFormat = fp.config.dateFormat
79                      ? fp.config.dateFormat
80                      : "\\W\\e\\e\\k #W, Y";
81                  fp.config.altFormat = fp.config.altFormat
82                      ? fp.config.altFormat
83                      : "\\W\\e\\e\\k #W, Y";
84              },
85              onReady: [
86                  onReady,
87                  highlightWeek,
88                  function () {
89                      fp.loadedPlugins.push("weekSelect");
90                  },
91              ],
92              onDestroy: onDestroy,
93          };
94      };
95  }
96
97  return weekSelectPlugin;
98
99})));

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.