{"version":3,"sources":["Logo.js","gapi.js","pattern.js","Chart.js","RegexField.js","theme.js","PatternTable.js","App.js","serviceWorker.js","index.js"],"names":["Logo","props","react_default","a","createElement","xmlns","viewBox","version","style","id","transform","points","fill","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontFamily","gapi_base","to_params","dict","Object","entries","filter","_ref","_ref2","slicedToArray","map","_ref3","_ref4","k","v","concat","encodeURIComponent","join","getAuthToken","Promise","resolver","chrome","identity","interactive","token","getCalendars","fetch","access_token","method","async","then","response","json","data","items","getColors","Pattern","isRegex","value","label","classCallCheck","this","createClass","key","get","RegExp","emptyPattern","anyPattern","revive","obj","PatternEntry","name","idx","calPattern","eventPattern","cal","event","defaultPatternEntry","customizedLabel","cx","cy","x","y","anchor","dx","dy","textAnchor","withStyles","theme","pieChart","margin","Grid_default","container","spacing","item","xs","lg","className","classes","patternTableWrapper","PieChart","width","height","Pie","patternGraphData","dataKey","outerRadius","deepOrange","Tooltip","formatter","toFixed","calendarGraphData","innerRadius","cyan","d","i","Cell","color","RegexField","_this","pitems","options","p0","isEmpty","palette","primary","dark","push","MenuItem_default","fieldRegex","fieldNoRegex","FormControl_default","Select_default","onChange","target","TextField_default","React","Component","RegexFieldWithStyles","marginRight","createMuiTheme","light","orange","main","contrastText","typography","useNextVariants","patternHead","field","elem","TextField","withTheme","calendars","any","PatternTable","state","page","rowsPerPage","handleChangePage","setState","handleChangeRowsPerPage","_this2","_this$props","patterns","_this$state","nDummy","Math","min","length","rows","slice","p","TableRow_default","onMouseOver","activePattern","onMouseOut","s","CustomText","TableCell_default","onUpdatePattern","deleteButtonShow","deleteButtonHide","DeleteOutlined_default","deleteIcon","onClick","onRemovePattern","Table_default","patternTable","TableHead_default","TableBody_default","colSpan","TablePagination_default","rowsPerPageOptions","component","count","backIconButtonProps","aria-label","nextIconButtonProps","onChangePage","onChangeRowsPerPage","position","right","display","cursor","overflowX","overflowY","minWidth","default_chart_data","Dashboard","possibleConstructorReturn","getPrototypeOf","call","timeRange","gapi","updatePattern","sendMsg","type","removePattern","splice","newPattern","toConsumableArray","loadPatterns","loadCalendars","msg","requestCallback","hasOwnProperty","inFlight","ids","maxId","cb","t","pm","resolve","pop","port","postMessage","getCalEvents","start","end","getTime","e","Date","analyze","startDate","endDate","startOf","toDate","event_pms","cals","_loop","calName","regex","test","filterPatterns","r","events","all","all_events","console","log","results","cal_results","forEach","_loop2","summary","duration","background","alert","load","colors","calendar","colorId","runtime","connect","onMessage","addListener","getCallBack","assert","undefined","styles","root","AppBar_default","appBar","Toolbar_default","toolbar","Typography_default","variant","noWrap","title","verticalAlign","content","appBarSpacer","CssBaseline_default","md","fullWidth","FormGroup_default","gutterBottom","IconButton_default","marginBottom","marginLeft","AddCircle_default","src_PatternTable","textAlign","react_dates","startDateId","endDateId","onDatesChange","focusedInput","onFocusChange","isOutsideRange","buttonSpacer","Button_default","Chart","zIndex","drawer","transition","transitions","create","easing","sharp","leavingScreen","flexGrow","sectionTitle","flex","mixins","padding","unit","overflow","fab","Boolean","window","location","hostname","match","ReactDOM","render","App","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.a10a122f.chunk.js","sourcesContent":["import React from 'react';\nexport default (props) =>\n \n","/* global chrome */\nimport LRU from \"lru-cache\";\nconst gapi_base = 'https://www.googleapis.com/calendar/v3';\n\nconst GApiError = {\n invalidSyncToken: 1,\n otherError: 2,\n};\n\nfunction to_params(dict) {\n return Object.entries(dict).filter(([k, v]) => v).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');\n}\n\nexport function getAuthToken() {\n return new Promise(resolver =>\n chrome.identity.getAuthToken(\n {interactive: true}, token => resolver(token)));\n}\n\nexport function getCalendars(token) {\n return fetch(`${gapi_base}/users/me/calendarList?${to_params({access_token: token})}`,\n { method: 'GET', async: true })\n .then(response => response.json())\n .then(data => data.items);\n}\n\nexport function getColors(token) {\n return fetch(`${gapi_base}/colors?${to_params({access_token: token})}`,\n { method: 'GET', async: true })\n .then(response => response.json());\n}\n\nfunction getEvent(calId, eventId, token) {\n return fetch(`${gapi_base}/calendars/${calId}/events/${eventId}?${to_params({access_token: token})}`,\n { method: 'GET', async: true })\n .then(response => response.json());\n}\n\nfunction getEvents(calId, token, syncToken=null, timeMin=null, timeMax=null, resultsPerRequest=100) {\n let results = [];\n const singleFetch = (pageToken, syncToken) => fetch(`${gapi_base}/calendars/${calId}/events?${to_params({\n access_token: token,\n pageToken,\n syncToken,\n timeMin,\n timeMax,\n maxResults: resultsPerRequest\n })}`, { method: 'GET', async: true })\n .then(response => {\n if (response.status === 200)\n return response.json();\n else if (response.status === 410)\n throw GApiError.invalidSyncToken;\n else throw GApiError.otherErrors;\n })\n .then(data => {\n results.push(...data.items);\n if (data.nextPageToken) {\n return singleFetch(data.nextPageToken, '');\n } else {\n return ({\n nextSyncToken: data.nextSyncToken,\n results\n });\n }\n })\n\n return singleFetch('', syncToken);\n}\n\nexport class GCalendar {\n constructor(calId, name, options={maxCachedItems: 100, nDaysPerSlot: 10, largeQuery: 10}) {\n this.calId = calId;\n this.name = name;\n this.token = getAuthToken();\n this.syncToken = '';\n this.cache = new LRU({\n max: options.maxCachedItems,\n dispose: (k, v) => this.onRemoveSlot(k, v)\n });\n this.eventMeta = {};\n this.options = options;\n this.divider = 8.64e7 * this.options.nDaysPerSlot;\n }\n\n dateToCacheKey(date) {\n return Math.floor(date / this.divider);\n }\n\n dateRangeToCacheKeys(range) {\n return {\n start: this.dateToCacheKey(range.start),\n end: this.dateToCacheKey(new Date(range.end.getTime() - 1))\n };\n }\n\n getSlot(k) {\n if (!this.cache.has(k))\n {\n let res = {};\n this.cache.set(k, res);\n return res;\n }\n else return this.cache.get(k);\n }\n\n onRemoveSlot(k, v) {\n for (let id in v) {\n console.assert(this.eventMeta[id]);\n let keys = this.eventMeta[id].keys;\n keys.delete(k);\n if (keys.size === 0)\n delete this.eventMeta[id];\n }\n }\n\n slotStartDate(k) { return new Date(k * this.divider); }\n slotEndDate(k) { return new Date((k + 1) * this.divider); }\n\n addEvent(e, evict = false) {\n //console.log('adding event', e);\n if (this.eventMeta.hasOwnProperty(e.id))\n this.removeEvent(e);\n let r = this.dateRangeToCacheKeys(e);\n let ks = r.start;\n let ke = r.end;\n let t = this.cache.length;\n let keys = new Set();\n for (let i = ks; i <= ke; i++)\n {\n keys.add(i);\n if (!this.cache.has(i)) t++;\n }\n this.eventMeta[e.id] = {\n keys,\n summary: e.summary,\n };\n if (!evict && t > this.options.maxCachedItems) return;\n if (ks === ke)\n this.getSlot(ks)[e.id] = {\n start: e.start,\n end: e.end,\n id: e.id };\n else\n {\n this.getSlot(ks)[e.id] = {\n start: e.start,\n end: this.slotEndDate(ks),\n id: e.id };\n this.getSlot(ke)[e.id] = {\n start: this.slotStartDate(ke),\n end: e.end,\n id: e.id };\n for (let k = ks + 1; k < ke; k++)\n this.getSlot(k)[e.id] = {\n start: this.slotStartDate(k),\n end: this.slotEndDate(k),\n id: e.id};\n }\n }\n\n removeEvent(e) {\n let keys = this.eventMeta[e.id].keys;\n console.assert(keys);\n keys.forEach(k => delete this.getSlot(k)[e.id]);\n delete this.eventMeta[e.id];\n }\n\n getSlotEvents(k, start, end) {\n let s = this.getSlot(k);\n //console.log(s);\n let results = [];\n for (let id in s) {\n if (!(s[id].start >= end || s[id].end <= start))\n {\n results.push({\n id,\n start: s[id].start < start ? start: s[id].start,\n end: s[id].end > end ? end: s[id].end,\n summary: this.eventMeta[id].summary\n });\n }\n }\n return results;\n }\n\n getCachedEvents(_r) {\n let r = this.dateRangeToCacheKeys(_r);\n let ks = r.start;\n let ke = r.end;\n let results = this.getSlotEvents(ks, _r.start, _r.end);\n for (let k = ks + 1; k < ke; k++)\n {\n let s = this.getSlot(k);\n for (let id in s)\n results.push(s[id]);\n }\n if (ke > ks)\n results.push(...this.getSlotEvents(ke, _r.start, _r.end));\n return results;\n }\n\n sync() {\n return this.token.then(token => getEvents(this.calId, token, this.syncToken).then(r => {\n this.syncToken = r.nextSyncToken;\n let pm_results = r.results.map(e => e.start ? Promise.resolve(e) : getEvent(this.calId, e.id, token));\n return Promise.all(pm_results).then(results => results.forEach(e => {\n e.start = new Date(e.start.dateTime);\n e.end = new Date(e.end.dateTime);\n if (e.status === 'confirmed')\n this.addEvent(e);\n else if (e.status === 'cancelled')\n this.removeEvent(e);\n }));\n })).catch(e => {\n if (e === GApiError.invalidSyncToken) {\n this.syncToken = '';\n this.sync();\n } else throw e;\n });\n }\n\n getEvents(start, end) {\n let r = this.dateRangeToCacheKeys({ start, end });\n let query = {};\n for (let k = r.start; k <= r.end; k++)\n if (!this.cache.has(k))\n {\n if (!query.hasOwnProperty('start'))\n query.start = k;\n query.end = k;\n }\n console.log(`start: ${start} end: ${end}`);\n if (query.hasOwnProperty('start'))\n {\n console.assert(query.start <= query.end);\n if (query.end - query.start + 1 > this.options.largeQuery) {\n console.log(`encounter large query, use direct fetch`);\n return this.token.then(token => getEvents(this.calId, token, null,\n start.toISOString(), end.toISOString()).then(r => {\n let results = [];\n r.results.forEach(e => {\n console.assert(e.start);\n e.start = new Date(e.start.dateTime);\n e.end = new Date(e.end.dateTime);\n results.push(e);\n });\n return results.filter(e => !(e.start >= end || e.end <= start)).map(e => {\n return {\n id: e.id,\n start: e.start < start ? start: e.start,\n end: e.end > end ? end: e.end,\n summary: e.summary,\n };\n });\n }));\n }\n\n console.log(`fetching short event list`);\n return this.token.then(token => getEvents(this.calId, token, null,\n this.slotStartDate(query.start).toISOString(),\n this.slotEndDate(query.end).toISOString()).then(r => {\n if (this.syncToken === '')\n this.syncToken = r.nextSyncToken;\n return r.results.forEach(e => {\n if (e.status === 'confirmed')\n {\n console.assert(e.start);\n e.start = new Date(e.start.dateTime);\n e.end = new Date(e.end.dateTime);\n this.addEvent(e, true);\n }\n });\n })).then(() => this.sync())\n .then(() => this.getCachedEvents({ start, end }));\n }\n else\n {\n console.log(`cache hit`);\n return this.sync().then(() => this.getCachedEvents({ start, end }));\n }\n }\n}\n","export class Pattern {\n constructor(id, isRegex, value, label) {\n this.id = id;\n this.isRegex = isRegex;\n this.value = value;\n this.label = label;\n }\n\n get regex() { return new RegExp(this.isRegex ? this.value : `^${this.value}$`); }\n get isEmpty() { return this.label === null; }\n static emptyPattern = () => new Pattern(0, true, '', null);\n static anyPattern = () => new Pattern('any', true, '.*', 'Any');\n static revive = obj => new Pattern(obj.id, obj.isRegex, obj.value, obj.label);\n}\n\nexport class PatternEntry {\n constructor(name, idx, calPattern, eventPattern) {\n this.name = name;\n this.idx = idx;\n this.cal = calPattern;\n this.event = eventPattern;\n }\n\n static defaultPatternEntry = (idx) => new PatternEntry('', idx, Pattern.emptyPattern(), Pattern.anyPattern());\n static revive = obj => new PatternEntry(\n obj.name, obj.idx,\n Pattern.revive(obj.cal), Pattern.revive(obj.event));\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport deepOrange from '@material-ui/core/colors/deepOrange';\nimport cyan from '@material-ui/core/colors/cyan';\nimport { PieChart, Pie, Cell, Tooltip } from 'recharts';\n\nconst styles = theme => ({\n pieChart: {\n margin: '0 auto',\n }\n});\n\nfunction customizedLabel(props) {\n const {cx, cy, x, y, fill, name} = props;\n let anchor = \"middle\";\n const EPS = 2;\n let dx = 0;\n let dy = 0;\n if (x < cx - EPS) {\n dx = -5;\n anchor = \"end\"\n } else if (x > cx + EPS) {\n dx = 5;\n anchor = \"start\";\n }\n\n if (y < cy - EPS) {\n dy = -5;\n } else if (y > cy + EPS) {\n dy = 10;\n }\n\n return (