MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / parseRrule

Function parseRrule

codebase/sources/dhtmlxscheduler.js:17073–17121  ·  view source on GitHub ↗
(line)

Source from the content-addressed store, hash-verified

17071 }
17072 }
17073 function parseRrule(line) {
17074 var strippedLine = line.replace(/^RRULE:/i, "");
17075 var options = parseDtstart(strippedLine);
17076 var attrs = line.replace(/^(?:RRULE|EXRULE):/i, "").split(";");
17077 attrs.forEach(function(attr) {
17078 var _a = attr.split("="), key = _a[0], value = _a[1];
17079 switch (key.toUpperCase()) {
17080 case "FREQ":
17081 options.freq = Frequency[value.toUpperCase()];
17082 break;
17083 case "WKST":
17084 options.wkst = Days[value.toUpperCase()];
17085 break;
17086 case "COUNT":
17087 case "INTERVAL":
17088 case "BYSETPOS":
17089 case "BYMONTH":
17090 case "BYMONTHDAY":
17091 case "BYYEARDAY":
17092 case "BYWEEKNO":
17093 case "BYHOUR":
17094 case "BYMINUTE":
17095 case "BYSECOND":
17096 var num = parseNumber(value);
17097 var optionKey = key.toLowerCase();
17098 options[optionKey] = num;
17099 break;
17100 case "BYWEEKDAY":
17101 case "BYDAY":
17102 options.byweekday = parseWeekday(value);
17103 break;
17104 case "DTSTART":
17105 case "TZID":
17106 var dtstart = parseDtstart(line);
17107 options.tzid = dtstart.tzid;
17108 options.dtstart = dtstart.dtstart;
17109 break;
17110 case "UNTIL":
17111 options.until = untilStringToDate(value);
17112 break;
17113 case "BYEASTER":
17114 options.byeaster = Number(value);
17115 break;
17116 default:
17117 throw new Error("Unknown RRULE property '" + key + "'");
17118 }
17119 });
17120 return options;
17121 }
17122 function parseNumber(value) {
17123 if (value.indexOf(",") !== -1) {
17124 var values = value.split(",");

Callers 1

parseLineFunction · 0.70

Calls 4

parseDtstartFunction · 0.70
parseNumberFunction · 0.70
parseWeekdayFunction · 0.70
untilStringToDateFunction · 0.70

Tested by

no test coverage detected