1 2/* cached asset-dump98e6a8b281a9cba7430393cd9c2d0c670ee2c0fd: */ 3var forge = forge || {}; 4forge.blockCallback = function(block, action, callbackFunc) { 5 var obj = { 6 id: block.id, 7 action: action, 8 uri: block.callbackUri + "/" + action, 9 requestPath: window.location.pathname 10 }; 11 return callbackFunc.apply(obj); 12}; 13forge.requestData = function(data) { 14 data = data || {}; 15 data.userId = forge.user ? forge.user.id : null; 16 data.pageId = forge.page ? forge.page.id : null; 17 data.requestPath = window.location.pathname; 18 return data; 19}; 20/* cached asset-dump4d17f5359d19239542a417f70a49120bb86c0065: */ 21"use strict"; 22 23(function () { 24 var __data_block_id = 13565171; 25 var __block_id = "dvsn5"; 26 var foundBlockNode = document.getElementsByClassName("f_" + __block_id).length > 0; 27 if (!foundBlockNode) { 28 var templates = document.querySelectorAll('template'); 29 for (var i = 0; i < templates.length; i++) { 30 if (templates[i].content.querySelector('.f_' + __block_id)) { 31 foundBlockNode = true; 32 break; 33 } 34 } 35 } 36 if (foundBlockNode) { 37 var ready = function ready(counter) { 38 if (!('__forgePageBlockData' in window) || !(__data_block_id in __forgePageBlockData)) { 39 if (counter == 10) { 40 throw Error("Giving up waiting for block data"); 41 return; 42 } 43 return setTimeout(function () { 44 ready(counter + 1); 45 }, 250); 46 } 47 if (typeof __forgePageBlockData[__data_block_id] == 'number') { 48 __forgePageBlockData[__data_block_id] = __forgePageBlockData[__forgePageBlockData[__data_block_id]] || {}; 49 } 50 var events = __forgePageBlockData[__data_block_id].events; 51 var selected = __forgePageBlockData[__data_block_id].selected; 52 var year = __forgePageBlockData[__data_block_id].year; 53 var month = __forgePageBlockData[__data_block_id].month; 54 var noEventsLabel = __forgePageBlockData[__data_block_id].noEventsLabel; 55 var showEndDate = __forgePageBlockData[__data_block_id].showEndDate; 56 var _block = __forgePageBlockData[__data_block_id]._block; 57 var _page = __forgePageBlockData[__data_block_id]._page; 58 var _ts = __forgePageBlockData[__data_block_id]._ts; 59 var _elements = __forgePageBlockData[__data_block_id]._elements; 60 var block = { 61 id: "13565171", 62 callbackUri: "/_/b/13565171" 63 }; 64 var call = function call(action, callbackFunc) { 65 return forge.blockCallback(block, action, callbackFunc); 66 }; 67 var callback = function callback(action, data) { 68 return call(action, function () { 69 data = withData(data || {}); 70 71 // check if any of the formData is a File or Blob 72 var isFile = false; 73 for (var key in data) { 74 if (!isFile && data[key]) { 75 var arr = Array.isArray(data[key]) ? data[key] : [data[key]]; 76 for (var i = 0; i < arr.length; i++) { 77 if (arr[i] === Object(arr[i]) && (arr[i].constructor == File || arr[i].constructor === Blob)) { 78 isFile = true; 79 break; 80 } 81 } 82 } 83 } 84 if (isFile) { 85 var formData = new FormData(); 86 for (var key in data) { 87 if (data[key] && (Array.isArray(data[key]) || data[key] === Object(data[key])) && data[key].constructor !== File && data[key].constructor !== Blob) { 88 for (var idx in data[key]) { 89 formData.append(key + '[' + idx + ']', data[key][idx]); 90 } 91 } else { 92 formData.append(key, data[key]); 93 } 94 } 95 return axios.post(this.uri, formData, { 96 headers: { 97 'Content-Type': 'multipart/form-data', 98 'X-Lazy-Load': 'off' 99 } 100 }); 101 } else { 102 return axios.post(this.uri, data, { 103 headers: { 104 'X-Lazy-Load': 'off' 105 } 106 }); 107 } 108 }); 109 }; 110 var withData = function withData(data) { 111 return forge.requestData(data); 112 }; 113 dayjs.extend(window.dayjs_plugin_advancedFormat); 114 var MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 115 function parseEvents(events) { 116 var eventsByDate = {};
117 (events || []).forEach(function (event) { 118 var date = event.start.split(' ')[0]; 119 var day = Number(date.split('-')[2]); 120 if (!(day in eventsByDate)) { 121 eventsByDate[day] = []; 122 } 123 eventsByDate[day].push(event); 124 }); 125 return eventsByDate; 126 } 127 window['calendar' + block.id] = function () { 128 return { 129 MONTH_NAMES: MONTH_NAMES, 130 month: month > 0 ? month - 1 : 11, 131 // month is 0 indexed 132 year: year, 133 get no_of_days() { 134 var daysInMonth = new Date(this.year, this.month + 1, 0).getDate(); 135 var daysArray = []; 136 for (var i = 1; i <= daysInMonth; i++) { 137 daysArray.push(i); 138 } 139 return daysArray; 140 }, 141 get blankdays() { 142 // find where to start calendar day of week 143 var dayOfWeek = new Date(this.year, this.month).getDay(); 144 var blankdays = []; 145 for (var i = 1; i <= dayOfWeek; i++) { 146 blankdays.push(i); 147 } 148 return blankdays; 149 }, 150 days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], 151 selected: selected, 152 selectedDate: Number(selected.split('-').pop()), 153 eventsByDate: parseEvents(events), 154 showSlider: true, 155 swiper: null, 156 modalEvent: null, 157 showEndDate: showEndDate ? true : false, 158 setupSlider: function setupSlider() { 159 if (this.swiper) { 160 this.swiper.destroy(); 161 this.swiper = null; 162 } 163 if ((this.eventsByDate[this.selectedDate] || []).length > 1) { 164 this.swiper = new Swiper(this.$refs.slider, { 165 slidesPerView: 1, 166 centeredSlides: true, 167 pagination: { 168 el: this.$refs.pagination 169 }, 170 navigation: { 171 nextEl: this.$refs.next, 172 prevEl: this.$refs.previous 173 } 174 }); 175 this.showSlider = true; 176 } else { 177 this.showSlider = false;
178 } 179 }, 180 directions: function directions(event) { 181 var address = encodeURIComponent([event.address.line1, event.address.line2, event.address.city, event.address.state, event.address.zip].join(" ")); 182 return "https://www.google.com/maps/dir/".concat(address); 183 }, 184 dateString: function dateString(event) { 185 var date = dayjs(event.start, "YYYY-MM-DD HH:mm:ss"); 186 return date.format("MMMM Do, YYYY"); 187 }, 188 timeString: function timeString(event, prefix) { 189 var start = dayjs(event.start, "YYYY-MM-DD HH:mm:ss"); 190 var end = dayjs(event.end, "YYYY-MM-DD HH:mm:ss"); 191 var parts = []; 192 var startHour = start.hour(); 193 var startSuffix = 'AM'; 194 var startMinute = start.format("mm"); 195 if (startHour > 12) { 196 startHour -= 12; 197 startSuffix = 'PM'; 198 } else if (startHour == 12) { 199 startSuffix = 'PM'; 200 } 201 var endHour = end.hour(); 202 var endSuffix = 'AM'; 203 var endMinute = end.format("mm"); 204 if (endHour > 12) { 205 endHour -= 12; 206 endSuffix = 'PM'; 207 } else if (endHour == 12) { 208 endSuffix = 'PM'; 209 } 210 if (startMinute == 0) { 211 parts.push("<span class='text-xl font-bold'>".concat(startHour, "</span>").concat(startSuffix)); 212 } else { 213 parts.push("<span class='text-xl font-bold'>".concat(startHour, ":").concat(startMinute, "</span>").concat(startSuffix)); 214 } 215 if (this.showEndDate) { 216 if (endMinute == 0) { 217 parts.push("<span class='text-xl font-bold'>".concat(endHour, "</span>").concat(endSuffix)); 218 } else { 219 parts.push("<span class='text-xl font-bold'>".concat(endHour, ":").concat(endMinute, "</span>").concat(endSuffix)); 220 } 221 } 222 return (prefix ? "".concat(prefix, " ") : '') + parts.join(" — "); 223 }, 224 select: function select(date) { 225 var _this = this; 226 this.selectedDate = date; 227 this.selected = dayjs(new Date(this.year, this.month, date)).format('YYYY-MM-DD'); 228 this.$nextTick(function () { 229 return _this.setupSlider(); 230 }); 231 }, 232 isSelected: function isSelected(date) { 233 return dayjs(new Date(this.year, this.month, date)).format('YYYY-MM-DD') === this.selected; 234 }, 235 prevMonth: function prevMonth() { 236 this.month--; 237 if (this.month < 0) { 238 this.month = 11; 239 this.year = Number(this.year) - 1; 240 } 241 this.loadEvents(); 242 this.selectedDate = null; 243 this.selected = null; 244 }, 245 nextMonth: function nextMonth() { 246 this.month++; 247 if (this.month > 11) { 248 this.month = 0; 249 this.year = Number(this.year) + 1; 250 } 251 this.loadEvents(); 252 this.selectedDate = null; 253 this.selected = null; 254 }, 255 loadEvents: function loadEvents() { 256 var _this2 = this; 257 this.eventsByDate = {}; 258 this.events = []; 259 callback("events", { 260 month: this.month + 1, 261 year: this.year 262 }).then(function (result) { 263 _this2.eventsByDate = parseEvents(result.data.events); 264 }); 265 } 266 }; 267 }; 268 }; 269 ready(0); 270 } 271})();
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.