{"version":3,"file":"template.v2.js","sources":["../src/front-matter.js","../src/mixins/mutating.js","../src/mixins/template.js","../src/helpers/katex-auto-render.js","../src/components/d-math.js","../src/helpers/citation.js","../src/helpers/domContentLoaded.js","../src/components/d-front-matter.js","../src/transforms/optional-components.js","../src/controller.js","../src/styles/styles.js","../src/helpers/polyfills.js","../src/helpers/layout.js","../src/components/d-abstract.js","../src/components/d-appendix.js","../src/components/d-article.js","../node_modules/bibtex-parse-js/bibtexParse.js","../src/helpers/bibtex.js","../src/components/d-bibliography.js","../src/components/d-byline.js","../src/components/d-cite.js","../src/components/d-citation-list.js","../node_modules/prismjs/prism.js","../node_modules/prismjs/components/prism-python.js","../node_modules/prismjs/components/prism-clike.js","../node_modules/prismjs/components/prism-lua.js","../node_modules/prismjs/components/prism-bash.js","../node_modules/prismjs/components/prism-go.js","../node_modules/prismjs/components/prism-markdown.js","../node_modules/prismjs/components/prism-julia.js","../src/components/d-code.js","../src/components/d-footnote.js","../src/components/d-footnote-list.js","../src/components/d-hover-box.js","../src/components/d-title.js","../src/components/d-references.js","../src/components/d-toc.js","../src/components/d-figure.js","../src/components/d-interstitial.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-color/src/cubehelix.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-time-format/src/isoFormat.js","../node_modules/d3-time-format/src/isoParse.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-selection/src/point.js","../node_modules/d3-selection/src/mouse.js","../node_modules/d3-selection/src/touch.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js","../src/ui/d-slider.js","../src/distill-components/distill-header-template.js","../src/distill-components/distill-header.js","../src/distill-components/distill-appendix.js","../src/distill-components/distill-footer-template.js","../src/distill-components/distill-footer.js","../src/components.js"],"sourcesContent":["// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst months = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.'];\nconst zeroPad = n => n < 10 ? '0' + n : n;\n\nconst RFC = function(date) {\n const day = days[date.getDay()].substring(0, 3);\n const paddedDate = zeroPad(date.getDate());\n const month = months[date.getMonth()].substring(0,3);\n const year = date.getFullYear().toString();\n const hours = date.getUTCHours().toString();\n const minutes = date.getUTCMinutes().toString();\n const seconds = date.getUTCSeconds().toString();\n return `${day}, ${paddedDate} ${month} ${year} ${hours}:${minutes}:${seconds} Z`;\n};\n\nconst objectFromMap = function(map) {\n const object = Array.from(map).reduce((object, [key, value]) => (\n Object.assign(object, { [key]: value }) // Be careful! Maps can have non-String keys; object literals can't.\n ), {});\n return object;\n};\n\nconst mapFromObject = function(object) {\n const map = new Map();\n for (var property in object) {\n if (object.hasOwnProperty(property)) {\n map.set(property, object[property]);\n }\n }\n return map;\n};\n\nclass Author {\n\n // constructor(name='', personalURL='', affiliation='', affiliationURL='') {\n // this.name = name; // 'Chris Olah'\n // this.personalURL = personalURL; // 'https://colah.github.io'\n // this.affiliation = affiliation; // 'Google Brain'\n // this.affiliationURL = affiliationURL; // 'https://g.co/brain'\n // }\n\n constructor(object) {\n this.name = object.author; // 'Chris Olah'\n this.personalURL = object.authorURL; // 'https://colah.github.io'\n this.affiliation = object.affiliation; // 'Google Brain'\n this.affiliationURL = object.affiliationURL; // 'https://g.co/brain'\n this.affiliations = object.affiliations || []; // new-style affiliations\n }\n\n // 'Chris'\n get firstName() {\n const names = this.name.split(' ');\n return names.slice(0, names.length - 1).join(' ');\n }\n\n // 'Olah'\n get lastName() {\n const names = this.name.split(' ');\n return names[names.length -1];\n }\n}\n\nexport function mergeFromYMLFrontmatter(target, source) {\n target.title = source.title;\n if (source.published) {\n if (source.published instanceof Date) {\n target.publishedDate = source.published;\n } else if (source.published.constructor === String) {\n target.publishedDate = new Date(source.published);\n }\n }\n if (source.publishedDate) {\n if (source.publishedDate instanceof Date) {\n target.publishedDate = source.publishedDate;\n } else if (source.publishedDate.constructor === String) {\n target.publishedDate = new Date(source.publishedDate);\n } else {\n console.error('Don\\'t know what to do with published date: ' + source.publishedDate);\n }\n }\n target.description = source.description;\n target.authors = source.authors.map( (authorObject) => new Author(authorObject));\n target.katex = source.katex;\n target.password = source.password;\n if (source.doi) {\n target.doi = source.doi;\n }\n}\n\nexport class FrontMatter {\n constructor() {\n this.title = 'unnamed article'; // 'Attention and Augmented Recurrent Neural Networks'\n this.description = ''; // 'A visual overview of neural attention...'\n this.authors = []; // Array of Author(s)\n\n this.bibliography = new Map();\n this.bibliographyParsed = false;\n // {\n // 'gregor2015draw': {\n // 'title': 'DRAW: A recurrent neural network for image generation',\n // 'author': 'Gregor, Karol and Danihelka, Ivo and Graves, Alex and Rezende, Danilo Jimenez and Wierstra, Daan',\n // 'journal': 'arXiv preprint arXiv:1502.04623',\n // 'year': '2015',\n // 'url': 'https://arxiv.org/pdf/1502.04623.pdf',\n // 'type': 'article'\n // },\n // }\n\n // Citation keys should be listed in the order that they are appear in the document.\n // Each key refers to a key in the bibliography dictionary.\n this.citations = []; // [ 'gregor2015draw', 'mercier2011humans' ]\n this.citationsCollected = false;\n\n //\n // Assigned from posts.csv\n //\n\n // publishedDate: 2016-09-08T07:00:00.000Z,\n // tags: [ 'rnn' ],\n // distillPath: '2016/augmented-rnns',\n // githubPath: 'distillpub/post--augmented-rnns',\n // doiSuffix: 1,\n\n //\n // Assigned from journal\n //\n this.journal = {};\n // journal: {\n // 'title': 'Distill',\n // 'full_title': 'Distill',\n // 'abbrev_title': 'Distill',\n // 'url': 'http://distill.pub',\n // 'doi': '10.23915/distill',\n // 'publisherName': 'Distill Working Group',\n // 'publisherEmail': 'admin@distill.pub',\n // 'issn': '2476-0757',\n // 'editors': [...],\n // 'committee': [...]\n // }\n // volume: 1,\n // issue: 9,\n\n this.katex = {};\n\n //\n // Assigned from publishing process\n //\n\n // githubCompareUpdatesUrl: 'https://github.com/distillpub/post--augmented-rnns/compare/1596e094d8943d2dc0ea445d92071129c6419c59...3bd9209e0c24d020f87cf6152dcecc6017cbc193',\n // updatedDate: 2017-03-21T07:13:16.000Z,\n // doi: '10.23915/distill.00001',\n this.doi = undefined;\n this.publishedDate = undefined;\n }\n\n // Example:\n // title: Demo Title Attention and Augmented Recurrent Neural Networks\n // published: Jan 10, 2017\n // authors:\n // - Chris Olah:\n // - Shan Carter: http://shancarter.com\n // affiliations:\n // - Google Brain:\n // - Google Brain: http://g.co/brain\n\n //\n // Computed Properties\n //\n\n // 'http://distill.pub/2016/augmented-rnns',\n set url(value) {\n this._url = value;\n }\n get url() {\n if (this._url) {\n return this._url;\n } else if (this.distillPath && this.journal.url) {\n return this.journal.url + '/' + this.distillPath;\n } else if (this.journal.url) {\n return this.journal.url;\n }\n }\n\n // 'https://github.com/distillpub/post--augmented-rnns',\n get githubUrl() {\n if (this.githubPath) {\n return 'https://github.com/' + this.githubPath;\n } else {\n return undefined;\n }\n }\n\n // TODO resolve differences in naming of URL/Url/url.\n // 'http://distill.pub/2016/augmented-rnns/thumbnail.jpg',\n set previewURL(value) {\n this._previewURL = value;\n }\n get previewURL() {\n return this._previewURL ? this._previewURL : this.url + '/thumbnail.jpg';\n }\n\n // 'Thu, 08 Sep 2016 00:00:00 -0700',\n get publishedDateRFC() {\n return RFC(this.publishedDate);\n }\n\n // 'Thu, 08 Sep 2016 00:00:00 -0700',\n get updatedDateRFC() {\n return RFC(this.updatedDate);\n }\n\n // 2016,\n get publishedYear() {\n return this.publishedDate.getFullYear();\n }\n\n // 'Sept',\n get publishedMonth() {\n return months[this.publishedDate.getMonth()];\n }\n\n // 8,\n get publishedDay() {\n return this.publishedDate.getDate();\n }\n\n // '09',\n get publishedMonthPadded() {\n return zeroPad(this.publishedDate.getMonth() + 1);\n }\n\n // '08',\n get publishedDayPadded() {\n return zeroPad(this.publishedDate.getDate());\n }\n\n get publishedISODateOnly() {\n return this.publishedDate.toISOString().split('T')[0];\n }\n\n get volume() {\n const volume = this.publishedYear - 2015;\n if (volume < 1) {\n throw new Error('Invalid publish date detected during computing volume');\n }\n return volume;\n }\n\n get issue() {\n return this.publishedDate.getMonth() + 1;\n }\n\n // 'Olah & Carter',\n get concatenatedAuthors() {\n if (this.authors.length > 2) {\n return this.authors[0].lastName + ', et al.';\n } else if (this.authors.length === 2) {\n return this.authors[0].lastName + ' & ' + this.authors[1].lastName;\n } else if (this.authors.length === 1) {\n return this.authors[0].lastName;\n }\n }\n\n // 'Olah, Chris and Carter, Shan',\n get bibtexAuthors() {\n return this.authors.map(author => {\n return author.lastName + ', ' + author.firstName;\n }).join(' and ');\n }\n\n // 'olah2016attention'\n get slug() {\n let slug = '';\n if (this.authors.length) {\n slug += this.authors[0].lastName.toLowerCase();\n slug += this.publishedYear;\n slug += this.title.split(' ')[0].toLowerCase();\n }\n return slug || 'Untitled';\n }\n\n get bibliographyEntries() {\n return new Map(this.citations.map( citationKey => {\n const entry = this.bibliography.get(citationKey);\n return [citationKey, entry];\n }));\n }\n\n set bibliography(bibliography) {\n if (bibliography instanceof Map) {\n this._bibliography = bibliography;\n } else if (typeof bibliography === 'object') {\n this._bibliography = mapFromObject(bibliography);\n }\n }\n\n get bibliography() {\n return this._bibliography;\n }\n\n static fromObject(source) {\n const frontMatter = new FrontMatter();\n Object.assign(frontMatter, source);\n return frontMatter;\n }\n\n assignToObject(target) {\n Object.assign(target, this);\n target.bibliography = objectFromMap(this.bibliographyEntries);\n target.url = this.url;\n target.doi = this.doi;\n target.githubUrl = this.githubUrl;\n target.previewURL = this.previewURL;\n if (this.publishedDate) {\n target.volume = this.volume;\n target.issue = this.issue;\n target.publishedDateRFC = this.publishedDateRFC;\n target.publishedYear = this.publishedYear;\n target.publishedMonth = this.publishedMonth;\n target.publishedDay = this.publishedDay;\n target.publishedMonthPadded = this.publishedMonthPadded;\n target.publishedDayPadded = this.publishedDayPadded;\n }\n if (this.updatedDate) {\n target.updatedDateRFC = this.updatedDateRFC;\n }\n target.concatenatedAuthors = this.concatenatedAuthors;\n target.bibtexAuthors = this.bibtexAuthors;\n target.slug = this.slug;\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const Mutating = (superclass) => {\n return class extends superclass {\n\n constructor() {\n super();\n\n // set up mutation observer\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( () => {\n observer.disconnect();\n this.renderIfPossible();\n observer.observe(this, options);\n });\n\n // ...and listen for changes\n observer.observe(this, options);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.renderIfPossible();\n }\n\n // potential TODO: check if this is enough for all our usecases\n // maybe provide a custom function to tell if we have enough information to render\n renderIfPossible() {\n if (this.textContent && this.root) {\n this.renderContent();\n }\n }\n\n renderContent() {\n console.error(`Your class ${this.constructor.name} must provide a custom renderContent() method!` );\n }\n\n }; // end class\n}; // end mixin function\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/*global ShadyCSS*/\n\nexport const Template = (name, templateString, useShadow = true) => {\n\n return (superclass) => {\n\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n if (useShadow && 'ShadyCSS' in window) {\n ShadyCSS.prepareTemplate(template, name);\n }\n\n return class extends superclass {\n\n static get is() { return name; }\n\n constructor() {\n super();\n\n this.clone = document.importNode(template.content, true);\n if (useShadow) {\n this.attachShadow({mode: 'open'});\n this.shadowRoot.appendChild(this.clone);\n }\n }\n\n connectedCallback() {\n if (this.hasAttribute('distill-prerendered')) {\n return;\n }\n if (useShadow) {\n if ('ShadyCSS' in window) {\n ShadyCSS.styleElement(this);\n }\n } else {\n this.insertBefore(this.clone, this.firstChild);\n }\n }\n\n get root() {\n if (useShadow) {\n return this.shadowRoot;\n } else {\n return this;\n }\n }\n\n /* TODO: Are we using these? Should we even? */\n $(query) {\n return this.root.querySelector(query);\n }\n\n $$(query) {\n return this.root.querySelectorAll(query);\n }\n };\n };\n};\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is a straight concatenation of code from KaTeX's contrib folder,\n// but we aren't using some of their helpers that don't work well outside a browser environment.\n\n/*global katex */\n\nconst findEndOfMath = function(delimiter, text, startIndex) {\n // Adapted from\n // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx\n let index = startIndex;\n let braceLevel = 0;\n\n const delimLength = delimiter.length;\n\n while (index < text.length) {\n const character = text[index];\n\n if (\n braceLevel <= 0 &&\n text.slice(index, index + delimLength) === delimiter\n ) {\n return index;\n } else if (character === \"\\\\\") {\n index++;\n } else if (character === \"{\") {\n braceLevel++;\n } else if (character === \"}\") {\n braceLevel--;\n }\n\n index++;\n }\n\n return -1;\n};\n\nconst splitAtDelimiters = function(startData, leftDelim, rightDelim, display) {\n const finalData = [];\n\n for (let i = 0; i < startData.length; i++) {\n if (startData[i].type === \"text\") {\n const text = startData[i].data;\n\n let lookingForLeft = true;\n let currIndex = 0;\n let nextIndex;\n\n nextIndex = text.indexOf(leftDelim);\n if (nextIndex !== -1) {\n currIndex = nextIndex;\n finalData.push({\n type: \"text\",\n data: text.slice(0, currIndex)\n });\n lookingForLeft = false;\n }\n\n while (true) {\n // eslint-disable-line no-constant-condition\n if (lookingForLeft) {\n nextIndex = text.indexOf(leftDelim, currIndex);\n if (nextIndex === -1) {\n break;\n }\n\n finalData.push({\n type: \"text\",\n data: text.slice(currIndex, nextIndex)\n });\n\n currIndex = nextIndex;\n } else {\n nextIndex = findEndOfMath(\n rightDelim,\n text,\n currIndex + leftDelim.length\n );\n if (nextIndex === -1) {\n break;\n }\n\n finalData.push({\n type: \"math\",\n data: text.slice(currIndex + leftDelim.length, nextIndex),\n rawData: text.slice(currIndex, nextIndex + rightDelim.length),\n display: display\n });\n\n currIndex = nextIndex + rightDelim.length;\n }\n\n lookingForLeft = !lookingForLeft;\n }\n\n finalData.push({\n type: \"text\",\n data: text.slice(currIndex)\n });\n } else {\n finalData.push(startData[i]);\n }\n }\n\n return finalData;\n};\n\nconst splitWithDelimiters = function(text, delimiters) {\n let data = [{ type: \"text\", data: text }];\n for (let i = 0; i < delimiters.length; i++) {\n const delimiter = delimiters[i];\n data = splitAtDelimiters(\n data,\n delimiter.left,\n delimiter.right,\n delimiter.display || false\n );\n }\n return data;\n};\n\n/* Note: optionsCopy is mutated by this method. If it is ever exposed in the\n * API, we should copy it before mutating.\n */\nconst renderMathInText = function(text, optionsCopy) {\n const data = splitWithDelimiters(text, optionsCopy.delimiters);\n const fragment = document.createDocumentFragment();\n\n for (let i = 0; i < data.length; i++) {\n if (data[i].type === \"text\") {\n fragment.appendChild(document.createTextNode(data[i].data));\n } else {\n const tag = document.createElement(\"d-math\");\n const math = data[i].data;\n // Override any display mode defined in the settings with that\n // defined by the text itself\n optionsCopy.displayMode = data[i].display;\n try {\n tag.textContent = math;\n if (optionsCopy.displayMode) {\n tag.setAttribute(\"block\", \"\");\n }\n } catch (e) {\n if (!(e instanceof katex.ParseError)) {\n throw e;\n }\n optionsCopy.errorCallback(\n \"KaTeX auto-render: Failed to parse `\" + data[i].data + \"` with \",\n e\n );\n fragment.appendChild(document.createTextNode(data[i].rawData));\n continue;\n }\n fragment.appendChild(tag);\n }\n }\n\n return fragment;\n};\n\nconst renderElem = function(elem, optionsCopy) {\n for (let i = 0; i < elem.childNodes.length; i++) {\n const childNode = elem.childNodes[i];\n if (childNode.nodeType === 3) {\n // Text node\n const text = childNode.textContent;\n if (optionsCopy.mightHaveMath(text)) {\n const frag = renderMathInText(text, optionsCopy);\n i += frag.childNodes.length - 1;\n elem.replaceChild(frag, childNode);\n }\n } else if (childNode.nodeType === 1) {\n // Element node\n const shouldRender =\n optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) ===\n -1;\n\n if (shouldRender) {\n renderElem(childNode, optionsCopy);\n }\n }\n // Otherwise, it's something else, and ignore it.\n }\n};\n\nconst defaultAutoRenderOptions = {\n delimiters: [\n { left: \"$$\", right: \"$$\", display: true },\n { left: \"\\\\[\", right: \"\\\\]\", display: true },\n { left: \"\\\\(\", right: \"\\\\)\", display: false }\n // LaTeX uses this, but it ruins the display of normal `$` in text:\n // {left: '$', right: '$', display: false},\n ],\n\n ignoredTags: [\n \"script\",\n \"noscript\",\n \"style\",\n \"textarea\",\n \"pre\",\n \"code\",\n \"svg\"\n ],\n\n errorCallback: function(msg, err) {\n console.error(msg, err);\n }\n};\n\nexport const renderMathInElement = function(elem, options) {\n if (!elem) {\n throw new Error(\"No element provided to render\");\n }\n\n const optionsCopy = Object.assign({}, defaultAutoRenderOptions, options);\n const delimiterStrings = optionsCopy.delimiters.flatMap(d => [\n d.left,\n d.right\n ]);\n const mightHaveMath = text =>\n delimiterStrings.some(d => text.indexOf(d) !== -1);\n optionsCopy.mightHaveMath = mightHaveMath;\n renderElem(elem, optionsCopy);\n};\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/*global katex */\nimport { Mutating } from '../mixins/mutating.js';\nimport { Template } from '../mixins/template.js';\n\nimport style from '../styles/d-math.css';\n\n// attaches renderMathInElement to window\nimport { renderMathInElement } from '../helpers/katex-auto-render';\n\nexport const katexJSURL = 'https://distill.pub/third-party/katex/katex.min.js';\nexport const katexCSSTag = '';\n\nconst T = Template('d-math', `\n${katexCSSTag}\n\n\n`);\n\n// DMath, not Math, because that would conflict with the JS built-in\nexport class DMath extends Mutating(T(HTMLElement)) {\n\n static set katexOptions(options) {\n DMath._katexOptions = options;\n if (DMath.katexOptions.delimiters) {\n if (!DMath.katexAdded) {\n DMath.addKatex();\n } else {\n DMath.katexLoadedCallback();\n }\n }\n }\n\n static get katexOptions() {\n if (!DMath._katexOptions) {\n DMath._katexOptions = {\n delimiters: [ { 'left':'$$', 'right':'$$', 'display': false } ]\n };\n }\n return DMath._katexOptions;\n }\n\n static katexLoadedCallback() {\n // render all d-math tags\n const mathTags = document.querySelectorAll('d-math');\n for (const mathTag of mathTags) {\n mathTag.renderContent();\n }\n // transform inline delimited math to d-math tags\n if (DMath.katexOptions.delimiters) {\n renderMathInElement(document.body, DMath.katexOptions);\n }\n }\n\n static addKatex() {\n // css tag can use this convenience function\n document.head.insertAdjacentHTML('beforeend', katexCSSTag);\n // script tag has to be created to work properly\n const scriptTag = document.createElement('script');\n scriptTag.src = katexJSURL;\n scriptTag.async = true;\n scriptTag.onload = DMath.katexLoadedCallback;\n scriptTag.crossorigin = 'anonymous';\n document.head.appendChild(scriptTag);\n\n DMath.katexAdded = true;\n }\n\n get options() {\n const localOptions = { displayMode: this.hasAttribute('block') };\n return Object.assign(localOptions, DMath.katexOptions);\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!DMath.katexAdded) {\n DMath.addKatex();\n }\n }\n\n renderContent() {\n if (typeof katex !== 'undefined') {\n const container = this.root.querySelector('#katex-container');\n katex.render(this.textContent, container, this.options);\n }\n }\n\n}\n\nDMath.katexAdded = false;\nDMath.inlineMathRendered = false;\nwindow.DMath = DMath; // TODO: check if this can be removed, or if we should expose a distill global\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function collect_citations(dom = document) {\n const citations = new Set();\n const citeTags = dom.querySelectorAll(\"d-cite\");\n for (const tag of citeTags) {\n const keyString = tag.getAttribute(\"key\") || tag.getAttribute(\"bibtex-key\");\n const keys = keyString.split(\",\").map(k => k.trim());\n for (const key of keys) {\n citations.add(key);\n }\n }\n return [...citations];\n}\n\nexport function inline_cite_short(keys) {\n function cite_string(key) {\n if (key in data.bibliography) {\n var n = data.citations.indexOf(key) + 1;\n return \"\" + n;\n } else {\n return \"?\";\n }\n }\n return \"[\" + keys.map(cite_string).join(\", \") + \"]\";\n}\n\nexport function inline_cite_long(keys) {\n function cite_string(key) {\n if (key in data.bibliography) {\n var ent = data.bibliography[key];\n var names = ent.author.split(\" and \");\n names = names.map(name => name.split(\",\")[0].trim());\n var year = ent.year;\n if (names.length == 1) return names[0] + \", \" + year;\n if (names.length == 2) return names[0] + \" & \" + names[1] + \", \" + year;\n if (names.length > 2) return names[0] + \", et al., \" + year;\n } else {\n return \"?\";\n }\n }\n return keys.map(cite_string).join(\", \");\n}\n\nfunction author_string(ent, template, sep, finalSep) {\n if (ent.author == null) {\n return \"\";\n }\n var names = ent.author.split(\" and \");\n let name_strings = names.map(name => {\n name = name.trim();\n if (name.indexOf(\",\") != -1) {\n var last = name.split(\",\")[0].trim();\n var firsts = name.split(\",\")[1];\n } else if (name.indexOf(\" \") != -1) {\n var last = name\n .split(\" \")\n .slice(-1)[0]\n .trim();\n var firsts = name\n .split(\" \")\n .slice(0, -1)\n .join(\" \");\n } else {\n var last = name.trim();\n }\n var initials = \"\";\n if (firsts != undefined) {\n initials = firsts\n .trim()\n .split(\" \")\n .map(s => s.trim()[0]);\n initials = initials.join(\".\") + \".\";\n }\n return template\n .replace(\"${F}\", firsts)\n .replace(\"${L}\", last)\n .replace(\"${I}\", initials)\n .trim(); // in case one of first or last was empty\n });\n if (names.length > 1) {\n var str = name_strings.slice(0, names.length - 1).join(sep);\n str += (finalSep || sep) + name_strings[names.length - 1];\n return str;\n } else {\n return name_strings[0];\n }\n}\n\nfunction venue_string(ent) {\n var cite = ent.journal || ent.booktitle || \"\";\n if (\"volume\" in ent) {\n var issue = ent.issue || ent.number;\n issue = issue != undefined ? \"(\" + issue + \")\" : \"\";\n cite += \", Vol \" + ent.volume + issue;\n }\n if (\"pages\" in ent) {\n cite += \", pp. \" + ent.pages;\n }\n if (cite != \"\") cite += \". \";\n if (\"publisher\" in ent) {\n cite += ent.publisher;\n if (cite[cite.length - 1] != \".\") cite += \".\";\n }\n return cite;\n}\n\nfunction link_string(ent) {\n if (\"url\" in ent) {\n var url = ent.url;\n var arxiv_match = /arxiv\\.org\\/abs\\/([0-9\\.]*)/.exec(url);\n if (arxiv_match != null) {\n url = `http://arxiv.org/pdf/${arxiv_match[1]}.pdf`;\n }\n\n if (url.slice(-4) == \".pdf\") {\n var label = \"PDF\";\n } else if (url.slice(-5) == \".html\") {\n var label = \"HTML\";\n }\n return `  [${label || \"link\"}]`;\n } /* else if (\"doi\" in ent){\n return `  [DOI]`;\n }*/ else {\n return \"\";\n }\n}\nfunction doi_string(ent, new_line) {\n if (\"doi\" in ent) {\n return `${new_line ? \"
\" : \"\"} DOI: ${ent.doi}`;\n } else {\n return \"\";\n }\n}\n\nfunction title_string(ent) {\n return '' + ent.title + \" \";\n}\n\nexport function bibliography_cite(ent, fancy) {\n if (ent) {\n var cite = title_string(ent);\n cite += link_string(ent) + \"
\";\n if (ent.author) {\n cite += author_string(ent, \"${L}, ${I}\", \", \", \" and \");\n if (ent.year || ent.date) {\n cite += \", \";\n }\n }\n if (ent.year || ent.date) {\n cite += (ent.year || ent.date) + \". \";\n } else {\n cite += \". \";\n }\n cite += venue_string(ent);\n cite += doi_string(ent);\n return cite;\n /*var cite = author_string(ent, \"${L}, ${I}\", \", \", \" and \");\n if (ent.year || ent.date){\n cite += \", \" + (ent.year || ent.date) + \". \"\n } else {\n cite += \". \"\n }\n cite += \"\" + ent.title + \". \";\n cite += venue_string(ent);\n cite += doi_string(ent);\n cite += link_string(ent);\n return cite*/\n } else {\n return \"?\";\n }\n}\n\nexport function hover_cite(ent) {\n if (ent) {\n var cite = \"\";\n cite += \"\" + ent.title + \"\";\n cite += link_string(ent);\n cite += \"
\";\n\n var a_str = author_string(ent, \"${I} ${L}\", \", \") + \".\";\n var v_str =\n venue_string(ent).trim() + \" \" + ent.year + \". \" + doi_string(ent, true);\n\n if ((a_str + v_str).length < Math.min(40, ent.title.length)) {\n cite += a_str + \" \" + v_str;\n } else {\n cite += a_str + \"
\" + v_str;\n }\n return cite;\n } else {\n return \"?\";\n }\n}\n\n//https://scholar.google.com/scholar?q=allintitle%3ADocument+author%3Aolah\nfunction get_GS_URL(ent) {\n if (ent) {\n var names = ent.author.split(\" and \");\n names = names.map(name => name.split(\",\")[0].trim());\n var title = ent.title.split(\" \"); //.replace(/[,:]/, \"\")\n var url = \"http://search.labs.crossref.org/dois?\"; //\"\"https://scholar.google.com/scholar?\"\n url += uris({ q: names.join(\" \") + \" \" + title.join(\" \") });\n }\n}\n","export function domContentLoaded() {\n return ['interactive', 'complete'].indexOf(document.readyState) !== -1;\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function _moveLegacyAffiliationFormatIntoArray(frontMatter) {\n // authors used to have propoerties \"affiliation\" and \"affiliationURL\".\n // We now encourage using an array for affiliations containing objects with\n // properties \"name\" and \"url\".\n for (let author of frontMatter.authors) {\n const hasOldStyle = Boolean(author.affiliation)\n const hasNewStyle = Boolean(author.affiliations)\n if (!hasOldStyle) continue;\n if (hasNewStyle) {\n console.warn(`Author ${author.author} has both old-style (\"affiliation\" & \"affiliationURL\") and new style (\"affiliations\") affiliation information!`)\n } else {\n let newAffiliation = {\n \"name\": author.affiliation\n }\n if (author.affiliationURL) newAffiliation.url = author.affiliationURL;\n author.affiliations = [newAffiliation];\n }\n }\n return frontMatter\n}\n\nexport function parseFrontmatter(element) {\n const scriptTag = element.firstElementChild;\n if (scriptTag) {\n const type = scriptTag.getAttribute('type');\n if (type.split('/')[1] == 'json') {\n const content = scriptTag.textContent;\n const parsed = JSON.parse(content);\n return _moveLegacyAffiliationFormatIntoArray(parsed);\n } else {\n console.error('Distill only supports JSON frontmatter tags anymore; no more YAML.');\n }\n } else {\n console.error('You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.');\n }\n return {};\n}\n\nexport class FrontMatter extends HTMLElement {\n\n static get is() { return 'd-front-matter'; }\n\n constructor() {\n super();\n\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( (entries) => {\n for (const entry of entries) {\n if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {\n const data = parseFrontmatter(this);\n this.notify(data);\n }\n }\n });\n observer.observe(this, options);\n }\n\n notify(data) {\n const options = { detail: data, bubbles: true };\n const event = new CustomEvent('onFrontMatterChanged', options);\n document.dispatchEvent(event);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// no appendix -> add appendix\n// title in front, no h1 -> add it\n// no title in front, h1 -> read and put into frontMatter\n// footnote -> footnote list\n// break up bib\n// if citation, no bib-list -> add citation-list\n\n// if authors, no byline -> add byline\n\nexport default function(dom, data) {\n const body = dom.body;\n const article = body.querySelector('d-article');\n\n // If we don't have an article tag, something weird is going on—giving up.\n if (!article) {\n console.warn('No d-article tag found; skipping adding optional components!');\n return;\n }\n\n let byline = dom.querySelector('d-byline');\n if (!byline) {\n if (data.authors) {\n byline = dom.createElement('d-byline');\n body.insertBefore(byline, article);\n } else {\n console.warn('No authors found in front matter; please add them before submission!');\n }\n }\n\n let title = dom.querySelector('d-title');\n if (!title) {\n title = dom.createElement('d-title');\n body.insertBefore(title, byline);\n }\n\n let h1 = title.querySelector('h1');\n if (!h1) {\n h1 = dom.createElement('h1');\n h1.textContent = data.title;\n title.insertBefore(h1, title.firstChild);\n }\n\n const hasPassword = typeof data.password !== 'undefined';\n let interstitial = body.querySelector('d-interstitial');\n if (hasPassword && !interstitial) {\n const inBrowser = typeof window !== 'undefined';\n const onLocalhost = inBrowser && window.location.hostname.includes('localhost');\n if (!inBrowser || !onLocalhost) {\n interstitial = dom.createElement('d-interstitial');\n interstitial.password = data.password;\n body.insertBefore(interstitial, body.firstChild);\n }\n } else if (!hasPassword && interstitial) {\n interstitial.parentElement.removeChild(this);\n }\n\n let appendix = dom.querySelector('d-appendix');\n if (!appendix) {\n appendix = dom.createElement('d-appendix');\n dom.body.appendChild(appendix);\n }\n\n let footnoteList = dom.querySelector('d-footnote-list');\n if (!footnoteList) {\n footnoteList = dom.createElement('d-footnote-list');\n appendix.appendChild(footnoteList);\n }\n\n let citationList = dom.querySelector('d-citation-list');\n if (!citationList) {\n citationList = dom.createElement('d-citation-list');\n appendix.appendChild(citationList);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { FrontMatter, mergeFromYMLFrontmatter } from \"./front-matter\";\nimport { DMath } from \"./components/d-math\";\nimport { collect_citations } from \"./helpers/citation.js\";\nimport { domContentLoaded } from \"./helpers/domContentLoaded.js\";\nimport { parseFrontmatter } from \"./components/d-front-matter\";\nimport optionalComponents from \"./transforms/optional-components\";\n\nconst frontMatter = new FrontMatter();\n\nexport const Controller = {\n frontMatter: frontMatter,\n waitingOn: {\n bibliography: [],\n citations: []\n },\n listeners: {\n onCiteKeyCreated(event) {\n const [citeTag, keys] = event.detail;\n\n // ensure we have citations\n if (!frontMatter.citationsCollected) {\n // console.debug('onCiteKeyCreated, but unresolved dependency (\"citations\"). Enqueing.');\n Controller.waitingOn.citations.push(() =>\n Controller.listeners.onCiteKeyCreated(event)\n );\n return;\n }\n\n // ensure we have a loaded bibliography\n if (!frontMatter.bibliographyParsed) {\n // console.debug('onCiteKeyCreated, but unresolved dependency (\"bibliography\"). Enqueing.');\n Controller.waitingOn.bibliography.push(() =>\n Controller.listeners.onCiteKeyCreated(event)\n );\n return;\n }\n\n const numbers = keys.map(key => frontMatter.citations.indexOf(key));\n citeTag.numbers = numbers;\n const entries = keys.map(key => frontMatter.bibliography.get(key));\n citeTag.entries = entries;\n },\n\n onCiteKeyChanged() {\n // const [citeTag, keys] = event.detail;\n\n // update citations\n frontMatter.citations = collect_citations();\n frontMatter.citationsCollected = true;\n for (const waitingCallback of Controller.waitingOn.citations.slice()) {\n waitingCallback();\n }\n\n // update bibliography\n const citationListTag = document.querySelector(\"d-citation-list\");\n const bibliographyEntries = new Map(\n frontMatter.citations.map(citationKey => {\n return [citationKey, frontMatter.bibliography.get(citationKey)];\n })\n );\n citationListTag.citations = bibliographyEntries;\n\n const citeTags = document.querySelectorAll(\"d-cite\");\n for (const citeTag of citeTags) {\n console.log(citeTag);\n const keys = citeTag.keys;\n const numbers = keys.map(key => frontMatter.citations.indexOf(key));\n citeTag.numbers = numbers;\n const entries = keys.map(key => frontMatter.bibliography.get(key));\n citeTag.entries = entries;\n }\n },\n\n onCiteKeyRemoved(event) {\n Controller.listeners.onCiteKeyChanged(event);\n },\n\n onBibliographyChanged(event) {\n const citationListTag = document.querySelector(\"d-citation-list\");\n\n const bibliography = event.detail;\n\n frontMatter.bibliography = bibliography;\n frontMatter.bibliographyParsed = true;\n for (const waitingCallback of Controller.waitingOn.bibliography.slice()) {\n waitingCallback();\n }\n\n // ensure we have citations\n if (!frontMatter.citationsCollected) {\n Controller.waitingOn.citations.push(function() {\n Controller.listeners.onBibliographyChanged({\n target: event.target,\n detail: event.detail\n });\n });\n return;\n }\n\n if (citationListTag.hasAttribute(\"distill-prerendered\")) {\n console.debug(\"Citation list was prerendered; not updating it.\");\n } else {\n const entries = new Map(\n frontMatter.citations.map(citationKey => {\n return [citationKey, frontMatter.bibliography.get(citationKey)];\n })\n );\n citationListTag.citations = entries;\n }\n },\n\n onFootnoteChanged() {\n // const footnote = event.detail;\n //TODO: optimize to only update current footnote\n const footnotesList = document.querySelector(\"d-footnote-list\");\n if (footnotesList) {\n const footnotes = document.querySelectorAll(\"d-footnote\");\n footnotesList.footnotes = footnotes;\n }\n },\n\n onFrontMatterChanged(event) {\n const data = event.detail;\n mergeFromYMLFrontmatter(frontMatter, data);\n\n const interstitial = document.querySelector(\"d-interstitial\");\n if (interstitial) {\n if (typeof frontMatter.password !== \"undefined\") {\n interstitial.password = frontMatter.password;\n } else {\n interstitial.parentElement.removeChild(interstitial);\n }\n }\n\n const prerendered = document.body.hasAttribute(\"distill-prerendered\");\n if (!prerendered && domContentLoaded()) {\n optionalComponents(document, frontMatter);\n\n const appendix = document.querySelector(\"distill-appendix\");\n if (appendix) {\n appendix.frontMatter = frontMatter;\n }\n\n const byline = document.querySelector(\"d-byline\");\n if (byline) {\n byline.frontMatter = frontMatter;\n }\n\n if (data.katex) {\n DMath.katexOptions = data.katex;\n }\n }\n },\n\n DOMContentLoaded() {\n if (Controller.loaded) {\n console.warn(\n \"Controller received DOMContentLoaded but was already loaded!\"\n );\n return;\n } else if (!domContentLoaded()) {\n console.warn(\n \"Controller received DOMContentLoaded at document.readyState: \" +\n document.readyState +\n \"!\"\n );\n return;\n } else {\n Controller.loaded = true;\n console.debug(\"Runlevel 4: Controller running DOMContentLoaded\");\n }\n\n const frontMatterTag = document.querySelector(\"d-front-matter\");\n if (frontMatterTag) {\n const data = parseFrontmatter(frontMatterTag);\n Controller.listeners.onFrontMatterChanged({ detail: data });\n }\n\n // Resolving \"citations\" dependency due to initial DOM load\n frontMatter.citations = collect_citations();\n frontMatter.citationsCollected = true;\n for (const waitingCallback of Controller.waitingOn.citations.slice()) {\n waitingCallback();\n }\n\n if (frontMatter.bibliographyParsed) {\n for (const waitingCallback of Controller.waitingOn.bibliography.slice()) {\n waitingCallback();\n }\n }\n\n const footnotesList = document.querySelector(\"d-footnote-list\");\n if (footnotesList) {\n const footnotes = document.querySelectorAll(\"d-footnote\");\n footnotesList.footnotes = footnotes;\n }\n }\n } // listeners\n}; // Controller\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport base from './styles-base.css';\nimport layout from './styles-layout.css';\nimport print from './styles-print.css';\nimport byline from './d-byline.css';\nimport article from './d-article.css';\nimport title from './d-title.css';\nimport math from './d-math.css';\n\nexport const styles = base + layout + title + byline + article + math + print;\n\nexport function makeStyleTag(dom) {\n\n const styleTagId = 'distill-prerendered-styles';\n const prerenderedTag = dom.getElementById(styleTagId);\n if (!prerenderedTag) {\n const styleTag = dom.createElement('style');\n styleTag.id = styleTagId;\n styleTag.type = 'text/css';\n const cssTextTag = dom.createTextNode(styles);\n styleTag.appendChild(cssTextTag);\n const firstScriptTag = dom.head.querySelector('script');\n dom.head.insertBefore(styleTag, firstScriptTag);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function addPolyfill(polyfill, polyfillLoadedCallback) {\n console.debug('Runlevel 0: Polyfill required: ' + polyfill.name);\n const script = document.createElement('script');\n script.src = polyfill.url;\n script.async = false;\n if (polyfillLoadedCallback) {\n script.onload = function() { polyfillLoadedCallback(polyfill); };\n }\n script.onerror = function() {\n new Error('Runlevel 0: Polyfills failed to load script ' + polyfill.name);\n };\n document.head.appendChild(script);\n}\n\nexport const polyfills = [\n {\n name: 'WebComponents',\n support: function() {\n return 'customElements' in window &&\n 'attachShadow' in Element.prototype &&\n 'getRootNode' in Element.prototype &&\n 'content' in document.createElement('template') &&\n 'Promise' in window &&\n 'from' in Array;\n },\n url: 'https://distill.pub/third-party/polyfills/webcomponents-lite.js'\n }, {\n name: 'IntersectionObserver',\n support: function() {\n return 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window;\n },\n url: 'https://distill.pub/third-party/polyfills/intersection-observer.js'\n },\n];\n\nexport class Polyfills {\n\n static browserSupportsAllFeatures() {\n return polyfills.every((poly) => poly.support());\n }\n\n static load(callback) {\n // Define an intermediate callback that checks if all is loaded.\n const polyfillLoaded = function(polyfill) {\n polyfill.loaded = true;\n console.debug('Runlevel 0: Polyfill has finished loading: ' + polyfill.name);\n // console.debug(window[polyfill.name]);\n if (Polyfills.neededPolyfills.every((poly) => poly.loaded)) {\n console.debug('Runlevel 0: All required polyfills have finished loading.');\n console.debug('Runlevel 0->1.');\n window.distillRunlevel = 1;\n callback();\n }\n };\n // Add polyfill script tags\n for (const polyfill of Polyfills.neededPolyfills) {\n addPolyfill(polyfill, polyfillLoaded);\n }\n }\n\n static get neededPolyfills() {\n if (!Polyfills._neededPolyfills) {\n Polyfills._neededPolyfills = polyfills.filter((poly) => !poly.support());\n }\n return Polyfills._neededPolyfills;\n }\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// const marginSmall = 16;\n// const marginLarge = 3 * marginSmall;\n// const margin = marginSmall + marginLarge;\n// const gutter = marginSmall;\n// const outsetAmount = margin / 2;\n// const numCols = 4;\n// const numGutters = numCols - 1;\n// const columnWidth = (768 - 2 * marginLarge - numGutters * gutter) / numCols;\n//\n// const screenwidth = 768;\n// const pageWidth = screenwidth - 2 * marginLarge;\n// const bodyWidth = pageWidth - columnWidth - gutter;\n\nexport function body(selector) {\n return `${selector} {\n grid-column: left / text;\n }\n `;\n}\n\nexport function page(selector) {\n return `${selector} {\n grid-column: left / page;\n }\n `;\n}\n\nexport function screen(selector) {\n return `${selector} {\n grid-column: start / end;\n }\n `;\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\nimport { body } from '../helpers/layout';\n\nconst T = Template('d-abstract', `\n\n\n\n`);\n\nexport class Abstract extends T(HTMLElement) {\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-appendix', `\n\n\n`, false);\n\nexport class Appendix extends T(HTMLElement) {\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// import { Template } from '../mixins/template';\n// import { Controller } from '../controller';\n\nconst isOnlyWhitespace = /^\\s*$/;\n\nexport class Article extends HTMLElement {\n static get is() { return 'd-article'; }\n\n constructor() {\n super();\n\n new MutationObserver( (mutations) => {\n for (const mutation of mutations) {\n for (const addedNode of mutation.addedNodes) {\n switch (addedNode.nodeName) {\n case '#text': { // usually text nodes are only linebreaks.\n const text = addedNode.nodeValue;\n if (!isOnlyWhitespace.test(text)) {\n console.warn('Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

tag. We found the following text: ' + text);\n const wrapper = document.createElement('span');\n wrapper.innerHTML = addedNode.nodeValue;\n addedNode.parentNode.insertBefore(wrapper, addedNode);\n addedNode.parentNode.removeChild(addedNode);\n }\n } break;\n }\n }\n }\n }).observe(this, {childList: true});\n }\n\n}\n","/* start bibtexParse 0.0.22 */\n\n//Original work by Henrik Muehe (c) 2010\n//\n//CommonJS port by Mikola Lysenko 2013\n//\n//Port to Browser lib by ORCID / RCPETERS\n//\n//Issues:\n//no comment handling within strings\n//no string concatenation\n//no variable values yet\n//Grammar implemented here:\n//bibtex -> (string | preamble | comment | entry)*;\n//string -> '@STRING' '{' key_equals_value '}';\n//preamble -> '@PREAMBLE' '{' value '}';\n//comment -> '@COMMENT' '{' value '}';\n//entry -> '@' key '{' key ',' key_value_list '}';\n//key_value_list -> key_equals_value (',' key_equals_value)*;\n//key_equals_value -> key '=' value;\n//value -> value_quotes | value_braces | key;\n//value_quotes -> '\"' .*? '\"'; // not quite\n//value_braces -> '{' .*? '\"'; // not quite\n(function(exports) {\n\n function BibtexParser() {\n \n this.months = [\"jan\", \"feb\", \"mar\", \"apr\", \"may\", \"jun\", \"jul\", \"aug\", \"sep\", \"oct\", \"nov\", \"dec\"];\n this.notKey = [',','{','}',' ','='];\n this.pos = 0;\n this.input = \"\";\n this.entries = new Array();\n\n this.currentEntry = \"\";\n\n this.setInput = function(t) {\n this.input = t;\n };\n\n this.getEntries = function() {\n return this.entries;\n };\n\n this.isWhitespace = function(s) {\n return (s == ' ' || s == '\\r' || s == '\\t' || s == '\\n');\n };\n\n this.match = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n this.pos += s.length;\n } else {\n throw \"Token mismatch, expected \" + s + \", found \"\n + this.input.substring(this.pos);\n };\n this.skipWhitespace(canCommentOut);\n };\n\n this.tryMatch = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n return true;\n } else {\n return false;\n };\n this.skipWhitespace(canCommentOut);\n };\n\n /* when search for a match all text can be ignored, not just white space */\n this.matchAt = function() {\n while (this.input.length > this.pos && this.input[this.pos] != '@') {\n this.pos++;\n };\n\n if (this.input[this.pos] == '@') {\n return true;\n };\n return false;\n };\n\n this.skipWhitespace = function(canCommentOut) {\n while (this.isWhitespace(this.input[this.pos])) {\n this.pos++;\n };\n if (this.input[this.pos] == \"%\" && canCommentOut == true) {\n while (this.input[this.pos] != \"\\n\") {\n this.pos++;\n };\n this.skipWhitespace(canCommentOut);\n };\n };\n\n this.value_braces = function() {\n var bracecount = 0;\n this.match(\"{\", false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '}') {\n if (bracecount > 0) {\n bracecount--;\n } else {\n var end = this.pos;\n this.match(\"}\", false);\n return this.input.substring(start, end);\n };\n } else if (this.input[this.pos] == '{') {\n bracecount++;\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value\";\n };\n };\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.value_comment = function() {\n var str = '';\n var brcktCnt = 0;\n while (!(this.tryMatch(\"}\", false) && brcktCnt == 0)) {\n str = str + this.input[this.pos];\n if (this.input[this.pos] == '{')\n brcktCnt++;\n if (this.input[this.pos] == '}')\n brcktCnt--;\n if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n this.pos++;\n };\n return str;\n };\n\n this.value_quotes = function() {\n this.match('\"', false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '\"') {\n var end = this.pos;\n this.match('\"', false);\n return this.input.substring(start, end);\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n }\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.single_value = function() {\n var start = this.pos;\n if (this.tryMatch(\"{\")) {\n return this.value_braces();\n } else if (this.tryMatch('\"')) {\n return this.value_quotes();\n } else {\n var k = this.key();\n if (k.match(\"^[0-9]+$\"))\n return k;\n else if (this.months.indexOf(k.toLowerCase()) >= 0)\n return k.toLowerCase();\n else\n throw \"Value expected:\" + this.input.substring(start) + ' for key: ' + k;\n \n };\n };\n\n this.value = function() {\n var values = [];\n values.push(this.single_value());\n while (this.tryMatch(\"#\")) {\n this.match(\"#\");\n values.push(this.single_value());\n };\n return values.join(\"\");\n };\n\n this.key = function() {\n var start = this.pos;\n while (true) {\n if (this.pos >= this.input.length) {\n throw \"Runaway key\";\n };\n // а-яА-Я is Cyrillic\n //console.log(this.input[this.pos]);\n if (this.notKey.indexOf(this.input[this.pos]) >= 0) {\n return this.input.substring(start, this.pos);\n } else {\n this.pos++;\n \n };\n };\n };\n\n this.key_equals_value = function() {\n var key = this.key();\n if (this.tryMatch(\"=\")) {\n this.match(\"=\");\n var val = this.value();\n return [ key, val ];\n } else {\n throw \"... = value expected, equals sign missing:\"\n + this.input.substring(this.pos);\n };\n };\n\n this.key_value_list = function() {\n var kv = this.key_equals_value();\n this.currentEntry['entryTags'] = {};\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n while (this.tryMatch(\",\")) {\n this.match(\",\");\n // fixes problems with commas at the end of a list\n if (this.tryMatch(\"}\")) {\n break;\n }\n ;\n kv = this.key_equals_value();\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n };\n };\n\n this.entry_body = function(d) {\n this.currentEntry = {};\n this.currentEntry['citationKey'] = this.key();\n this.currentEntry['entryType'] = d.substring(1);\n this.match(\",\");\n this.key_value_list();\n this.entries.push(this.currentEntry);\n };\n\n this.directive = function() {\n this.match(\"@\");\n return \"@\" + this.key();\n };\n\n this.preamble = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'PREAMBLE';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.comment = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'COMMENT';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.entry = function(d) {\n this.entry_body(d);\n };\n\n this.bibtex = function() {\n while (this.matchAt()) {\n var d = this.directive();\n this.match(\"{\");\n if (d == \"@STRING\") {\n this.string();\n } else if (d == \"@PREAMBLE\") {\n this.preamble();\n } else if (d == \"@COMMENT\") {\n this.comment();\n } else {\n this.entry(d);\n }\n this.match(\"}\");\n };\n };\n };\n \n exports.toJSON = function(bibtex) {\n var b = new BibtexParser();\n b.setInput(bibtex);\n b.bibtex();\n return b.entries;\n };\n\n /* added during hackathon don't hate on me */\n exports.toBibtex = function(json) {\n var out = '';\n for ( var i in json) {\n out += \"@\" + json[i].entryType;\n out += '{';\n if (json[i].citationKey)\n out += json[i].citationKey + ', ';\n if (json[i].entry)\n out += json[i].entry ;\n if (json[i].entryTags) {\n var tags = '';\n for (var jdx in json[i].entryTags) {\n if (tags.length != 0)\n tags += ', ';\n tags += jdx + '= {' + json[i].entryTags[jdx] + '}';\n }\n out += tags;\n }\n out += '}\\n\\n';\n }\n return out;\n \n };\n\n})(typeof exports === 'undefined' ? this['bibtexParse'] = {} : exports);\n\n/* end bibtexParse */\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport bibtexParse from 'bibtex-parse-js';\n\nfunction normalizeTag(string) {\n return string\n .replace(/[\\t\\n ]+/g, ' ')\n .replace(/{\\\\[\"^`.'acu~Hvs]( )?([a-zA-Z])}/g, (full, x, char) => char)\n .replace(/{\\\\([a-zA-Z])}/g, (full, char) => char);\n}\n\nexport function parseBibtex(bibtex) {\n const bibliography = new Map();\n const parsedEntries = bibtexParse.toJSON(bibtex);\n for (const entry of parsedEntries) {\n // normalize tags; note entryTags is an object, not Map\n for (const [key, value] of Object.entries(entry.entryTags)) {\n entry.entryTags[key.toLowerCase()] = normalizeTag(value);\n }\n entry.entryTags.type = entry.entryType;\n // add to bibliography\n bibliography.set(entry.citationKey, entry.entryTags);\n }\n return bibliography;\n}\n\nexport function serializeFrontmatterToBibtex(frontMatter) {\n return `@article{${frontMatter.slug},\n author = {${frontMatter.bibtexAuthors}},\n title = {${frontMatter.title}},\n journal = {${frontMatter.journal.title}},\n year = {${frontMatter.publishedYear}},\n note = {${frontMatter.url}},\n doi = {${frontMatter.doi}}\n}`;\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { parseBibtex } from '../helpers/bibtex';\n\nexport function parseBibliography(element) {\n const scriptTag = element.firstElementChild;\n if (scriptTag && scriptTag.tagName === 'SCRIPT') {\n if (scriptTag.type == 'text/bibtex') {\n const bibtex = element.firstElementChild.textContent;\n return parseBibtex(bibtex);\n } else if (scriptTag.type == 'text/json') {\n return new Map(JSON.parse(scriptTag.textContent));\n } else {\n console.warn('Unsupported bibliography script tag type: ' + scriptTag.type);\n }\n } else {\n console.warn('Bibliography did not have any script tag.');\n }\n}\n\nexport class Bibliography extends HTMLElement {\n\n static get is() { return 'd-bibliography'; }\n\n constructor() {\n super();\n\n // set up mutation observer\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver( (entries) => {\n for (const entry of entries) {\n if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {\n this.parseIfPossible();\n }\n }\n });\n observer.observe(this, options);\n }\n\n connectedCallback() {\n requestAnimationFrame(() => {\n this.parseIfPossible();\n });\n }\n\n parseIfPossible() {\n const scriptTag = this.querySelector('script');\n if (!scriptTag) return;\n if (scriptTag.type == 'text/bibtex') {\n const newBibtex = scriptTag.textContent;\n if (this.bibtex !== newBibtex) {\n this.bibtex = newBibtex;\n const bibliography = parseBibtex(this.bibtex);\n this.notify(bibliography);\n }\n } else if (scriptTag.type == 'text/json') {\n const bibliography = new Map(JSON.parse(scriptTag.textContent));\n this.notify(bibliography);\n } else {\n console.warn('Unsupported bibliography script tag type: ' + scriptTag.type);\n }\n }\n\n notify(bibliography) {\n const options = { detail: bibliography, bubbles: true };\n const event = new CustomEvent('onBibliographyChanged', options);\n this.dispatchEvent(event);\n }\n\n /* observe 'src' attribute */\n\n static get observedAttributes() {\n return ['src'];\n }\n\n receivedBibtex(event) {\n const bibliography = parseBibtex(event.target.response);\n this.notify(bibliography);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n var oReq = new XMLHttpRequest();\n oReq.onload = (e) => this.receivedBibtex(e);\n oReq.onerror = () => console.warn(`Could not load Bibtex! (tried ${newValue})`);\n oReq.responseType = 'text';\n oReq.open('GET', newValue, true);\n oReq.send();\n }\n\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// import style from '../styles/d-byline.css';\n\nexport function bylineTemplate(frontMatter) {\n return `\n

\n
\n

Authors

\n

Affiliations

\n ${frontMatter.authors.map(author => `\n

\n ${author.personalURL ? `\n ${author.name}` : `\n ${author.name}`}\n

\n

\n ${author.affiliations.map(affiliation =>\n affiliation.url ? `${affiliation.name}` : `${affiliation.name}`\n ).join(', ')}\n

\n `).join('')}\n
\n
\n

Published

\n ${frontMatter.publishedDate ? `\n

${frontMatter.publishedMonth} ${frontMatter.publishedDay}, ${frontMatter.publishedYear}

` : `\n

Not published yet.

`}\n
\n
\n`;\n}\n\nexport class Byline extends HTMLElement {\n\n static get is() { return 'd-byline'; }\n\n set frontMatter(frontMatter) {\n this.innerHTML = bylineTemplate(frontMatter);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from \"../mixins/template\";\nimport { hover_cite, bibliography_cite } from \"../helpers/citation\";\n\nconst T = Template(\n \"d-cite\",\n `\n\n\n\n\n
\n \n
\n`\n);\n\nexport class Cite extends T(HTMLElement) {\n /* Lifecycle */\n constructor() {\n super();\n this._numbers = [];\n this._entries = [];\n }\n\n connectedCallback() {\n this.outerSpan = this.root.querySelector(\"#citation-\");\n this.innerSpan = this.root.querySelector(\".citation-number\");\n this.hoverBox = this.root.querySelector(\"d-hover-box\");\n window.customElements.whenDefined(\"d-hover-box\").then(() => {\n this.hoverBox.listen(this);\n });\n // in case this component got connected after values were set\n if (this.numbers) {\n this.displayNumbers(this.numbers);\n }\n if (this.entries) {\n this.displayEntries(this.entries);\n }\n }\n\n //TODO This causes an infinite loop on firefox with polyfills.\n // This is only needed for interactive editing so no priority.\n // disconnectedCallback() {\n // const options = { detail: [this, this.keys], bubbles: true };\n // const event = new CustomEvent('onCiteKeyRemoved', options);\n // document.dispatchEvent(event);\n // }\n\n /* observe 'key' attribute */\n\n static get observedAttributes() {\n return [\"key\", \"bibtex-key\"];\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n const eventName = oldValue ? \"onCiteKeyChanged\" : \"onCiteKeyCreated\";\n const keys = newValue.split(\",\").map(k => k.trim());\n const options = { detail: [this, keys], bubbles: true };\n const event = new CustomEvent(eventName, options);\n document.dispatchEvent(event);\n }\n\n set key(value) {\n this.setAttribute(\"key\", value);\n }\n\n get key() {\n return this.getAttribute(\"key\") || this.getAttribute(\"bibtex-key\");\n }\n\n get keys() {\n const result = this.key.split(\",\");\n console.log(result);\n return result;\n }\n\n /* Setters & Rendering */\n\n set numbers(numbers) {\n this._numbers = numbers;\n this.displayNumbers(numbers);\n }\n\n get numbers() {\n return this._numbers;\n }\n\n displayNumbers(numbers) {\n if (!this.innerSpan) return;\n const numberStrings = numbers.map(index => {\n return index == -1 ? \"?\" : index + 1 + \"\";\n });\n const textContent = \"[\" + numberStrings.join(\", \") + \"]\";\n this.innerSpan.textContent = textContent;\n }\n\n set entries(entries) {\n this._entries = entries;\n this.displayEntries(entries);\n }\n\n get entries() {\n return this._entries;\n }\n\n displayEntries(entries) {\n if (!this.hoverBox) return;\n this.hoverBox.innerHTML = ``;\n }\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { bibliography_cite } from '../helpers/citation';\n\nconst styles = `\nd-citation-list {\n contain: style;\n}\n\nd-citation-list .references {\n grid-column: text;\n}\n\nd-citation-list .references .title {\n font-weight: 500;\n}\n`;\n\nexport function renderCitationList(element, entries, dom=document) {\n if (entries.size > 0) {\n element.style.display = '';\n let list = element.querySelector('.references');\n if (list) {\n list.innerHTML = '';\n } else {\n const stylesTag = dom.createElement('style');\n stylesTag.innerHTML = styles;\n element.appendChild(stylesTag);\n\n const heading = dom.createElement('h3');\n heading.id = 'references';\n heading.textContent = 'References';\n element.appendChild(heading);\n\n list = dom.createElement('ol');\n list.id = 'references-list';\n list.className = 'references';\n element.appendChild(list);\n }\n\n for (const [key, entry] of entries) {\n const listItem = dom.createElement('li');\n listItem.id = key;\n listItem.innerHTML = bibliography_cite(entry);\n list.appendChild(listItem);\n }\n } else {\n element.style.display = 'none';\n }\n}\n\nexport class CitationList extends HTMLElement {\n\n static get is() { return 'd-citation-list'; }\n\n connectedCallback() {\n if (!this.hasAttribute('distill-prerendered')) {\n this.style.display = 'none';\n }\n }\n\n set citations(citations) {\n renderCitationList(this, citations);\n }\n\n}\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n * MIT license http://www.opensource.org/licenses/mit-license.php/\n * @author Lea Verou http://lea.verou.me\n */\n\nvar Prism = (function (_self){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\n\nvar _ = {\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\tutil: {\n\t\tencode: function encode(tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\treturn tokens.map(encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&').replace(/' + env.content + '';\n};\n\n/**\n * @param {string} text\n * @param {LinkedList} tokenList\n * @param {any} grammar\n * @param {LinkedListNode} startNode\n * @param {number} startPos\n * @param {boolean} [oneshot=false]\n * @param {string} [target]\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, oneshot, target) {\n\tfor (var token in grammar) {\n\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar patterns = grammar[token];\n\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\tif (target && target == token + ',' + j) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar pattern = patterns[j],\n\t\t\t\tinside = pattern.inside,\n\t\t\t\tlookbehind = !!pattern.lookbehind,\n\t\t\t\tgreedy = !!pattern.greedy,\n\t\t\t\tlookbehindLength = 0,\n\t\t\t\talias = pattern.alias;\n\n\t\t\tif (greedy && !pattern.pattern.global) {\n\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\tvar flags = pattern.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\tpattern.pattern = RegExp(pattern.pattern.source, flags + 'g');\n\t\t\t}\n\n\t\t\tpattern = pattern.pattern || pattern;\n\n\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t) {\n\n\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\n\t\t\t\tif (greedy && currentNode != tokenList.tail.prev) {\n\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\tvar match = pattern.exec(text);\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + (lookbehind && match[1] ? match[1].length : 0);\n\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t}\n\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\tpos = p;\n\n\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\tk !== tokenList.tail && (p < to || (typeof k.value === 'string' && !k.prev.value.greedy));\n\t\t\t\t\t\tk = k.next\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t}\n\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t// replace with the new match\n\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t} else {\n\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\tvar match = pattern.exec(str);\n\t\t\t\t}\n\n\t\t\t\tif (!match) {\n\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (lookbehind) {\n\t\t\t\t\tlookbehindLength = match[1] ? match[1].length : 0;\n\t\t\t\t}\n\n\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\tmatch = match[0].slice(lookbehindLength),\n\t\t\t\t\tto = from + match.length,\n\t\t\t\t\tbefore = str.slice(0, from),\n\t\t\t\t\tafter = str.slice(to);\n\n\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\tif (before) {\n\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\tpos += before.length;\n\t\t\t\t}\n\n\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(match, inside) : match, alias, match, greedy);\n\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\tif (after) {\n\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t}\n\n\n\t\t\t\tif (removeCount > 1)\n\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, true, token + ',' + j);\n\n\t\t\t\tif (oneshot)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode | null} prev The previous node.\n * @property {LinkedListNode | null} next The next node.\n * @template T\n */\n\n/**\n * @template T\n */\nfunction LinkedList() {\n\t/** @type {LinkedListNode} */\n\tvar head = { value: null, prev: null, next: null };\n\t/** @type {LinkedListNode} */\n\tvar tail = { value: null, prev: head, next: null };\n\thead.next = tail;\n\n\t/** @type {LinkedListNode} */\n\tthis.head = head;\n\t/** @type {LinkedListNode} */\n\tthis.tail = tail;\n\tthis.length = 0;\n}\n\n/**\n * Adds a new node with the given value to the list.\n * @param {LinkedList} list\n * @param {LinkedListNode} node\n * @param {T} value\n * @returns {LinkedListNode} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n\t// assumes that node != list.tail && values.length >= 0\n\tvar next = node.next;\n\n\tvar newNode = { value: value, prev: node, next: next };\n\tnode.next = newNode;\n\tnext.prev = newNode;\n\tlist.length++;\n\n\treturn newNode;\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n * @param {LinkedList} list\n * @param {LinkedListNode} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n\tvar next = node.next;\n\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\tnext = next.next;\n\t}\n\tnode.next = next;\n\tnext.prev = node;\n\tlist.length -= i;\n}\n/**\n * @param {LinkedList} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n\tvar array = [];\n\tvar node = list.head.next;\n\twhile (node !== list.tail) {\n\t\tarray.push(node.value);\n\t\tnode = node.next;\n\t}\n\treturn array;\n}\n\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _;\n}\n\n//Get current script and highlight\nvar script = _.util.currentScript();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (script.hasAttribute('data-manual')) {\n\t\t_.manual = true;\n\t}\n}\n\nfunction highlightAutomaticallyCallback() {\n\tif (!_.manual) {\n\t\t_.highlightAll();\n\t}\n}\n\nif (!_.manual) {\n\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t// See https://github.com/PrismJS/prism/issues/2102\n\tvar readyState = document.readyState;\n\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t} else {\n\t\tif (window.requestAnimationFrame) {\n\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t}\n\t}\n}\n\nreturn _;\n\n})(_self);\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': //,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': {\n\t\tpattern: /\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:(?!)*\\]\\s*)?>/i,\n\t\tgreedy: true\n\t},\n\t'cdata': //i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `\n\n\n\n`);\n\nexport class Code extends Mutating(T(HTMLElement)) {\n\n renderContent() {\n\n // check if language can be highlighted\n this.languageName = this.getAttribute('language');\n if (!this.languageName) {\n console.warn('You need to provide a language attribute to your block to let us know how to highlight your code; e.g.:\\n zeros = np.zeros(shape).');\n return;\n }\n const language = Prism.languages[this.languageName];\n if (language == undefined) {\n console.warn(`Distill does not yet support highlighting your code block in \"${this.languageName}'.`);\n return;\n }\n\n let content = this.textContent;\n const codeTag = this.shadowRoot.querySelector('#code-container');\n\n if (this.hasAttribute('block')) {\n // normalize the tab indents\n content = content.replace(/\\n/, '');\n const tabs = content.match(/\\s*/);\n content = content.replace(new RegExp('\\n' + tabs, 'g'), '\\n');\n content = content.trim();\n // wrap code block in pre tag if needed\n if (codeTag.parentNode instanceof ShadowRoot) {\n const preTag = document.createElement('pre');\n this.shadowRoot.removeChild(codeTag);\n preTag.appendChild(codeTag);\n this.shadowRoot.appendChild(preTag);\n }\n\n }\n\n codeTag.className = `language-${this.languageName}`;\n codeTag.innerHTML = Prism.highlight(content, language);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template.js';\n\nconst T = Template('d-footnote', `\n\n\n\n
\n \n
\n
\n\n\n \n\n\n`);\n\nexport class Footnote extends T(HTMLElement) {\n\n constructor() {\n super();\n\n const options = {childList: true, characterData: true, subtree: true};\n const observer = new MutationObserver(this.notify);\n observer.observe(this, options);\n }\n\n notify() {\n const options = { detail: this, bubbles: true };\n const event = new CustomEvent('onFootnoteChanged', options);\n document.dispatchEvent(event);\n }\n\n connectedCallback() {\n // listen and notify about changes to slotted content\n // const slot = this.shadowRoot.querySelector('#slot');\n // console.warn(slot.textContent);\n // slot.addEventListener('slotchange', this.notify);\n this.hoverBox = this.root.querySelector('d-hover-box');\n window.customElements.whenDefined('d-hover-box').then(() => {\n this.hoverBox.listen(this);\n });\n // create numeric ID\n Footnote.currentFootnoteId += 1;\n const IdString = Footnote.currentFootnoteId.toString();\n this.root.host.id = 'd-footnote-' + IdString;\n\n // set up hidden hover box\n const id = 'dt-fn-hover-box-' + IdString;\n this.hoverBox.id = id\n\n // set up visible footnote marker\n const span = this.root.querySelector('#fn-');\n span.setAttribute('id', 'fn-' + IdString);\n span.setAttribute('data-hover-ref', id);\n span.textContent = IdString;\n }\n\n}\n\nFootnote.currentFootnoteId = 0;\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-footnote-list', `\n\n\n

Footnotes

\n
    \n`, false);\n\nexport class FootnoteList extends T(HTMLElement) {\n\n connectedCallback() {\n super.connectedCallback();\n\n this.list = this.root.querySelector('ol');\n // footnotes list is initially hidden\n this.root.style.display = 'none';\n // look through document and register existing footnotes\n // Store.subscribeTo('footnotes', (footnote) => {\n // this.renderFootnote(footnote);\n // });\n }\n\n // TODO: could optimize this to accept individual footnotes?\n set footnotes(footnotes) {\n this.list.innerHTML = '';\n if (footnotes.length) {\n // ensure footnote list is visible\n this.root.style.display = '';\n\n for (const footnote of footnotes) {\n // construct and append list item to show footnote\n const listItem = document.createElement('li');\n listItem.id = footnote.id + '-listing';\n listItem.innerHTML = footnote.innerHTML;\n\n const backlink = document.createElement('a');\n backlink.setAttribute('class', 'footnote-backlink');\n backlink.textContent = '[↩]';\n backlink.href = '#' + footnote.id;\n\n listItem.appendChild(backlink);\n this.list.appendChild(listItem);\n }\n } else {\n // ensure footnote list is invisible\n this.root.style.display = 'none';\n }\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template.js';\n\nconst T = Template('d-hover-box', `\n\n\n
    \n
    \n \n
    \n
    \n`);\n\nexport class HoverBox extends T(HTMLElement) {\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n\n }\n\n listen(element) {\n // console.log(element)\n this.bindDivEvents(this);\n this.bindTriggerEvents(element);\n // this.style.display = \"block\";\n }\n\n bindDivEvents(element) {\n // For mice, same behavior as hovering on links\n element.addEventListener('mouseover', () => {\n if (!this.visible) this.showAtNode(element);\n this.stopTimeout();\n });\n element.addEventListener('mouseout', () => {\n this.extendTimeout(500);\n });\n // Don't trigger body touchstart event when touching within box\n element.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n }, {passive: true});\n // Close box when touching outside box\n document.body.addEventListener('touchstart', () => {\n this.hide();\n }, {passive: true});\n }\n\n bindTriggerEvents(node) {\n node.addEventListener('mouseover', () => {\n if (!this.visible) {\n this.showAtNode(node);\n }\n this.stopTimeout();\n });\n\n node.addEventListener('mouseout', () => {\n this.extendTimeout(300);\n });\n\n node.addEventListener('touchstart', (event) => {\n if (this.visible) {\n this.hide();\n } else {\n this.showAtNode(node);\n }\n // Don't trigger body touchstart event when touching link\n event.stopPropagation();\n }, {passive: true});\n }\n\n show(position) {\n this.visible = true;\n this.style.display = 'block';\n // 10px extra offset from element\n this.style.top = Math.round(position[1] + 10) + 'px';\n }\n\n showAtNode(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop\n const bbox = node.getBoundingClientRect();\n this.show([node.offsetLeft + bbox.width, node.offsetTop + bbox.height]);\n }\n\n hide() {\n this.visible = false;\n this.style.display = 'none';\n this.stopTimeout();\n }\n\n stopTimeout() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n\n extendTimeout(time) {\n this.stopTimeout();\n this.timeout = setTimeout(() => {\n this.hide();\n }, time);\n }\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport class Title extends HTMLElement {\n static get is() { return 'd-title'; }\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\nconst T = Template('d-references', `\n\n`, false);\n\nexport class References extends T(HTMLElement) {\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport class TOC extends HTMLElement {\n\n static get is() { return 'd-toc'; }\n\n connectedCallback() {\n if (!this.getAttribute('prerendered')) {\n window.onload = () => {\n const article = document.querySelector('d-article');\n const headings = article.querySelectorAll('h2, h3');\n renderTOC(this, headings);\n };\n }\n }\n\n}\n\nexport function renderTOC(element, headings) {\n\n let ToC =`\n \n \n

    Table of contents

    \n
      `;\n\n for (const el of headings) {\n // should element be included in TOC?\n const isInTitle = el.parentElement.tagName == 'D-TITLE';\n const isException = el.getAttribute('no-toc');\n if (isInTitle || isException) continue;\n // create TOC entry\n const title = el.textContent;\n const link = '#' + el.getAttribute('id');\n\n let newLine = '
    • ' + '' + title + '' + '
    • ';\n if (el.tagName == 'H3') {\n newLine = '
        ' + newLine + '
      ';\n } else {\n newLine += '
      ';\n }\n ToC += newLine;\n\n }\n\n ToC += '
    ';\n element.innerHTML = ToC;\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Figure\n//\n// d-figure provides a state-machine of visibility events:\n//\n// scroll out of view\n// +----------------+\n// *do work here* | |\n// +----------------+ +-+---------+ +-v---------+\n// | ready +----> onscreen | | offscreen |\n// +----------------+ +---------^-+ +---------+-+\n// | |\n// +----------------+\n// scroll into view\n//\n\nexport class Figure extends HTMLElement {\n\n static get is() { return 'd-figure'; }\n\n static get readyQueue() {\n if (!Figure._readyQueue) {\n Figure._readyQueue = [];\n }\n return Figure._readyQueue;\n }\n\n static addToReadyQueue(figure) {\n if (Figure.readyQueue.indexOf(figure) === -1) {\n Figure.readyQueue.push(figure);\n Figure.runReadyQueue();\n }\n }\n\n static runReadyQueue() {\n // console.log(\"Checking to run readyQueue, length: \" + Figure.readyQueue.length + \", scrolling: \" + Figure.isScrolling);\n // if (Figure.isScrolling) return;\n // console.log(\"Running ready Queue\");\n const figure = Figure.readyQueue\n .sort((a,b) => a._seenOnScreen - b._seenOnScreen )\n .filter((figure) => !figure._ready)\n .pop();\n if (figure) {\n figure.ready();\n requestAnimationFrame(Figure.runReadyQueue);\n }\n\n }\n\n constructor() {\n super();\n // debugger\n this._ready = false;\n this._onscreen = false;\n this._offscreen = true;\n }\n\n connectedCallback() {\n this.loadsWhileScrolling = this.hasAttribute('loadsWhileScrolling');\n Figure.marginObserver.observe(this);\n Figure.directObserver.observe(this);\n }\n\n disconnectedCallback() {\n Figure.marginObserver.unobserve(this);\n Figure.directObserver.unobserve(this);\n }\n\n // We use two separate observers:\n // One with an extra 1000px margin to warn if the viewpoint gets close,\n // And one for the actual on/off screen events\n\n static get marginObserver() {\n if (!Figure._marginObserver) {\n // if (!('IntersectionObserver' in window)) {\n // throw new Error('no interscetionobbserver!');\n // }\n const viewportHeight = window.innerHeight;\n const margin = Math.floor(2 * viewportHeight);\n const options = {rootMargin: margin + 'px 0px ' + margin + 'px 0px', threshold: 0.01};\n const callback = Figure.didObserveMarginIntersection;\n const observer = new IntersectionObserver(callback, options);\n Figure._marginObserver = observer;\n }\n return Figure._marginObserver;\n }\n\n static didObserveMarginIntersection(entries) {\n for (const entry of entries) {\n const figure = entry.target;\n if (entry.isIntersecting && !figure._ready) {\n Figure.addToReadyQueue(figure);\n }\n }\n }\n\n static get directObserver() {\n if (!Figure._directObserver) {\n Figure._directObserver = new IntersectionObserver(\n Figure.didObserveDirectIntersection, {\n rootMargin: '0px', threshold: [0, 1.0],\n }\n );\n }\n return Figure._directObserver;\n }\n\n static didObserveDirectIntersection(entries) {\n for (const entry of entries) {\n const figure = entry.target;\n if (entry.isIntersecting) {\n figure._seenOnScreen = new Date();\n // if (!figure._ready) { figure.ready(); }\n if (figure._offscreen) { figure.onscreen(); }\n } else {\n if (figure._onscreen) { figure.offscreen(); }\n }\n }\n }\n\n // Notify listeners that registered late, too:\n\n addEventListener(eventName, callback) {\n super.addEventListener(eventName, callback);\n // if we had already dispatched something while presumingly no one was listening, we do so again\n // debugger\n if (eventName === 'ready') {\n if (Figure.readyQueue.indexOf(this) !== -1) {\n this._ready = false;\n Figure.runReadyQueue();\n }\n }\n if (eventName === 'onscreen') {\n this.onscreen();\n }\n }\n\n // Custom Events\n\n ready() {\n // debugger\n this._ready = true;\n Figure.marginObserver.unobserve(this);\n const event = new CustomEvent('ready');\n this.dispatchEvent(event);\n }\n\n onscreen() {\n this._onscreen = true;\n this._offscreen = false;\n const event = new CustomEvent('onscreen');\n this.dispatchEvent(event);\n }\n\n offscreen() {\n this._onscreen = false;\n this._offscreen = true;\n const event = new CustomEvent('offscreen');\n this.dispatchEvent(event);\n }\n\n}\n\nif (typeof window !== 'undefined') {\n\n Figure.isScrolling = false;\n let timeout;\n const resetTimer = () => {\n Figure.isScrolling = true;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n Figure.isScrolling = false;\n Figure.runReadyQueue();\n }, 500);\n };\n window.addEventListener('scroll', resetTimer, true);\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\n// This overlay is not secure.\n// It is only meant as a social deterrent.\n\nconst productionHostname = 'distill.pub';\nconst T = Template('d-interstitial', `\n\n\n
    \n
    \n

    This article is in review.

    \n

    Do not share this URL or the contents of this article. Thank you!

    \n \n

    Enter the password we shared with you as part of the review process to view the article.

    \n
    \n
    \n`);\n\nexport class Interstitial extends T(HTMLElement) {\n\n connectedCallback() {\n if (this.shouldRemoveSelf()) {\n this.parentElement.removeChild(this);\n } else {\n const passwordInput = this.root.querySelector('#interstitial-password-input');\n passwordInput.oninput = (event) => this.passwordChanged(event);\n }\n }\n\n passwordChanged(event) {\n const entered = event.target.value;\n if (entered === this.password) {\n console.log('Correct password entered.');\n this.parentElement.removeChild(this);\n if (typeof(Storage) !== 'undefined') {\n console.log('Saved that correct password was entered.');\n localStorage.setItem(this.localStorageIdentifier(), 'true');\n }\n }\n }\n\n shouldRemoveSelf() {\n // should never be visible in production\n if (window && window.location.hostname === productionHostname) {\n console.warn('Interstitial found on production, hiding it.');\n return true\n }\n // should only have to enter password once\n if (typeof(Storage) !== 'undefined') {\n if (localStorage.getItem(this.localStorageIdentifier()) === 'true') {\n console.log('Loaded that correct password was entered before; skipping interstitial.');\n return true;\n }\n }\n // otherwise, leave visible\n return false;\n }\n\n localStorageIdentifier() {\n const prefix = 'distill-drafts'\n const suffix = 'interstitial-password-correct';\n return prefix + (window ? window.location.pathname : '-') + suffix\n }\n\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\nimport { scaleLinear } from 'd3-scale';\nimport { range } from 'd3-array';\nimport { drag } from 'd3-drag';\nimport { select, event as currentEvent } from 'd3-selection';\n\nconst T = Template('d-slider', `\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n`);\n\n// ARIA\n// If the slider has a visible label, it is referenced by aria-labelledby on the slider element. Otherwise, the slider element has a label provided by aria-label.\n// If the slider is vertically oriented, it has aria-orientation set to vertical. The default value of aria-orientation for a slider is horizontal.\n\nconst keyCodes = {\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36\n};\n\nexport class Slider extends T(HTMLElement) {\n\n\n connectedCallback() {\n this.connected = true;\n this.setAttribute('role', 'slider');\n // Makes the element tab-able.\n if (!this.hasAttribute('tabindex')) { this.setAttribute('tabindex', 0); }\n\n // Keeps track of keyboard vs. mouse interactions for focus rings\n this.mouseEvent = false;\n\n // Handles to shadow DOM elements\n this.knob = this.root.querySelector('.knob-container');\n this.background = this.root.querySelector('.background');\n this.trackFill = this.root.querySelector('.track-fill');\n this.track = this.root.querySelector('.track');\n\n // Default values for attributes\n this.min = this.min ? this.min : 0;\n this.max = this.max ? this.max : 100;\n this.scale = scaleLinear().domain([this.min, this.max]).range([0, 1]).clamp(true);\n\n this.origin = this.origin !== undefined ? this.origin : this.min;\n this.step = this.step ? this.step : 1;\n this.update(this.value ? this.value : 0);\n\n this.ticks = this.ticks ? this.ticks : false;\n this.renderTicks();\n\n this.drag = drag()\n .container(this.background)\n .on('start', () => {\n this.mouseEvent = true;\n this.background.classList.add('mousedown');\n this.changeValue = this.value;\n this.dragUpdate();\n })\n .on('drag', () => {\n this.dragUpdate();\n })\n .on('end', () => {\n this.mouseEvent = false;\n this.background.classList.remove('mousedown');\n this.dragUpdate();\n if (this.changeValue !== this.value) this.dispatchChange();\n this.changeValue = this.value;\n });\n this.drag(select(this.background));\n\n this.addEventListener('focusin', () => {\n if(!this.mouseEvent) {\n this.background.classList.add('focus');\n }\n });\n this.addEventListener('focusout', () => {\n this.background.classList.remove('focus');\n });\n this.addEventListener('keydown', this.onKeyDown);\n\n }\n\n static get observedAttributes() {return ['min', 'max', 'value', 'step', 'ticks', 'origin', 'tickValues', 'tickLabels']; }\n\n attributeChangedCallback(attr, oldValue, newValue) {\n if (isNaN(newValue) || newValue === undefined || newValue === null) return;\n if (attr == 'min') {\n this.min = +newValue;\n this.setAttribute('aria-valuemin', this.min);\n }\n if (attr == 'max') {\n this.max = +newValue;\n this.setAttribute('aria-valuemax', this.max);\n }\n if (attr == 'value') {\n this.update(+newValue);\n }\n if (attr == 'origin') {\n this.origin = +newValue;\n // this.update(this.value);\n }\n if (attr == 'step') {\n if (newValue > 0) {\n this.step = +newValue;\n }\n }\n if (attr == 'ticks') {\n this.ticks = (newValue === '' ? true : newValue);\n }\n }\n\n onKeyDown(event) {\n this.changeValue = this.value;\n let stopPropagation = false;\n switch (event.keyCode) {\n case keyCodes.left:\n case keyCodes.down:\n this.update(this.value - this.step);\n stopPropagation = true;\n break;\n case keyCodes.right:\n case keyCodes.up:\n this.update(this.value + this.step);\n stopPropagation = true;\n break;\n case keyCodes.pageUp:\n this.update(this.value + this.step * 10);\n stopPropagation = true;\n break;\n\n case keyCodes.pageDown:\n this.update(this.value + this.step * 10);\n stopPropagation = true;\n break;\n case keyCodes.home:\n this.update(this.min);\n stopPropagation = true;\n break;\n case keyCodes.end:\n this.update(this.max);\n stopPropagation = true;\n break;\n default:\n break;\n }\n if (stopPropagation) {\n this.background.classList.add('focus');\n event.preventDefault();\n event.stopPropagation();\n if (this.changeValue !== this.value) this.dispatchChange();\n }\n }\n\n validateValueRange(min, max, value) {\n return Math.max(Math.min(max, value), min);\n }\n\n quantizeValue(value, step) {\n return Math.round(value / step) * step;\n }\n\n dragUpdate() {\n const bbox = this.background.getBoundingClientRect();\n const x = currentEvent.x;\n const width = bbox.width;\n this.update(this.scale.invert(x / width));\n }\n\n update(value) {\n let v = value;\n if (this.step !== 'any') {\n v = this.quantizeValue(value, this.step);\n }\n v = this.validateValueRange(this.min, this.max, v);\n if (this.connected) {\n this.knob.style.left = this.scale(v) * 100 + '%';\n this.trackFill.style.width = this.scale(this.min + Math.abs(v - this.origin)) * 100 + '%';\n this.trackFill.style.left = this.scale(Math.min(v, this.origin)) * 100 + '%';\n }\n if (this.value !== v) {\n this.value = v;\n this.setAttribute('aria-valuenow', this.value);\n this.dispatchInput();\n }\n }\n\n // Dispatches only on a committed change (basically only on mouseup).\n dispatchChange() {\n const e = new Event('change');\n this.dispatchEvent(e, {});\n }\n\n // Dispatches on each value change.\n dispatchInput() {\n const e = new Event('input');\n this.dispatchEvent(e, {});\n }\n\n renderTicks() {\n const ticksContainer = this.root.querySelector('.ticks');\n if (this.ticks !== false) {\n let tickData = [];\n if (this.ticks > 0) {\n tickData = this.scale.ticks(this.ticks);\n } else if (this.step === 'any') {\n tickData = this.scale.ticks();\n } else {\n tickData = range(this.min, this.max + 1e-6, this.step);\n }\n tickData.forEach(d => {\n const tick = document.createElement('div');\n tick.classList.add('tick');\n tick.style.left = this.scale(d) * 100 + '%';\n ticksContainer.appendChild(tick);\n });\n } else {\n ticksContainer.style.display = 'none';\n }\n }\n}\n","import logo from '../assets/distill-logo.svg';\n\nexport const headerTemplate = `\n\n\n`;\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\nimport {headerTemplate} from './distill-header-template';\n\nconst T = Template('distill-header', headerTemplate, false);\n\nexport class DistillHeader extends T(HTMLElement) {\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { serializeFrontmatterToBibtex } from '../helpers/bibtex';\n\nconst styles = `\n\n`;\n\nexport function appendixTemplate(frontMatter) {\n let html = styles;\n\n if (typeof frontMatter.githubUrl !== 'undefined') {\n html += `\n

    Updates and Corrections

    \n

    `;\n if (frontMatter.githubCompareUpdatesUrl) {\n html += `View all changes to this article since it was first published.`;\n }\n html += `\n If you see mistakes or want to suggest changes, please create an issue on GitHub.

    \n `;\n }\n\n const journal = frontMatter.journal;\n if (typeof journal !== 'undefined' && journal.title === 'Distill') {\n html += `\n

    Reuse

    \n

    Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don’t fall under this license and can be recognized by a note in their caption: “Figure from …”.

    \n `;\n }\n\n if (typeof frontMatter.publishedDate !== 'undefined') {\n html += `\n

    Citation

    \n

    For attribution in academic contexts, please cite this work as

    \n
    ${frontMatter.concatenatedAuthors}, \"${frontMatter.title}\", Distill, ${frontMatter.publishedYear}.
    \n

    BibTeX citation

    \n
    ${serializeFrontmatterToBibtex(frontMatter)}
    \n `;\n }\n\n return html;\n}\n\nexport class DistillAppendix extends HTMLElement {\n\n static get is() { return 'distill-appendix'; }\n\n set frontMatter(frontMatter) {\n this.innerHTML = appendixTemplate(frontMatter);\n }\n\n}\n","import logo from '../assets/distill-logo.svg';\n\nexport const footerTemplate = `\n\n\n\n\n`;\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Template } from '../mixins/template';\n\nimport {footerTemplate} from './distill-footer-template';\n\nconst T = Template('distill-footer', footerTemplate);\n\nexport class DistillFooter extends T(HTMLElement) {\n\n}\n","// Copyright 2018 The Distill Template Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Controller } from './controller';\nimport { domContentLoaded } from './helpers/domContentLoaded.js';\n\n/* Transforms */\nimport { makeStyleTag } from './styles/styles';\nimport { Polyfills } from './helpers/polyfills';\n\n/* Components */\nimport { Abstract } from './components/d-abstract';\nimport { Appendix } from './components/d-appendix';\nimport { Article } from './components/d-article';\nimport { Bibliography } from './components/d-bibliography';\nimport { Byline } from './components/d-byline';\nimport { Cite } from './components/d-cite';\nimport { CitationList } from './components/d-citation-list';\nimport { Code } from './components/d-code';\nimport { Footnote } from './components/d-footnote';\nimport { FootnoteList } from './components/d-footnote-list';\nimport { FrontMatter } from './components/d-front-matter';\nimport { HoverBox } from './components/d-hover-box';\nimport { Title } from './components/d-title';\nimport { DMath } from './components/d-math';\nimport { References } from './components/d-references';\nimport { TOC } from './components/d-toc';\nimport { Figure } from './components/d-figure';\nimport { Interstitial } from './components/d-interstitial';\nimport { Slider } from './ui/d-slider';\n\n/* Distill website specific components */\nimport { DistillHeader } from './distill-components/distill-header';\nimport { DistillAppendix } from './distill-components/distill-appendix';\nimport { DistillFooter } from './distill-components/distill-footer';\n\nlet templateIsLoading = false;\nlet runlevel = 0;\nconst initialize = function() {\n if (window.distill.runlevel < 1) {\n throw new Error(\"Insufficient Runlevel for Distill Template!\");\n }\n\n /* 1. Flag that we're being loaded */\n if (\"distill\" in window && window.distill.templateIsLoading) {\n throw new Error(\n \"Runlevel 1: Distill Template is getting loaded more than once, aborting!\"\n );\n } else {\n window.distill.templateIsLoading = true;\n console.debug(\"Runlevel 1: Distill Template has started loading.\");\n }\n\n /* 2. Add styles if they weren't added during prerendering */\n makeStyleTag(document);\n console.debug(\"Runlevel 1: Static Distill styles have been added.\");\n console.debug(\"Runlevel 1->2.\");\n window.distill.runlevel += 1;\n\n /* 3. Register Controller listener functions */\n /* Needs to happen before components to their connected callbacks have a controller to talk to. */\n for (const [functionName, callback] of Object.entries(Controller.listeners)) {\n if (typeof callback === \"function\") {\n document.addEventListener(functionName, callback);\n } else {\n console.error(\"Runlevel 2: Controller listeners need to be functions!\");\n }\n }\n console.debug(\"Runlevel 2: We can now listen to controller events.\");\n console.debug(\"Runlevel 2->3.\");\n window.distill.runlevel += 1;\n\n /* 4. Register components */\n const components = [\n Abstract, Appendix, Article, Bibliography, Byline, Cite, CitationList, Code,\n Footnote, FootnoteList, FrontMatter, HoverBox, Title, DMath, References, TOC, Figure,\n Slider, Interstitial\n ];\n\n const distillComponents = [DistillHeader, DistillAppendix, DistillFooter];\n\n if (window.distill.runlevel < 2) {\n throw new Error(\"Insufficient Runlevel for adding custom elements!\");\n }\n const allComponents = components.concat(distillComponents);\n for (const component of allComponents) {\n console.debug(\"Runlevel 2: Registering custom element: \" + component.is);\n customElements.define(component.is, component);\n }\n\n console.debug(\n \"Runlevel 3: Distill Template finished registering custom elements.\"\n );\n console.debug(\"Runlevel 3->4.\");\n window.distill.runlevel += 1;\n\n // If template was added after DOMContentLoaded we may have missed that event.\n // Controller will check for that case, so trigger the event explicitly:\n if (domContentLoaded()) {\n Controller.listeners.DOMContentLoaded();\n }\n\n console.debug(\"Runlevel 4: Distill Template initialisation complete.\");\n window.distill.templateIsLoading = false;\n window.distill.templateHasLoaded = true;\n};\n\nwindow.distill = { runlevel, initialize, templateIsLoading };\n\n/* 0. Check browser feature support; synchronously polyfill if needed */\nif (Polyfills.browserSupportsAllFeatures()) {\n console.debug(\"Runlevel 0: No need for polyfills.\");\n console.debug(\"Runlevel 0->1.\");\n window.distill.runlevel += 1;\n window.distill.initialize();\n} else {\n console.debug(\"Runlevel 0: Distill Template is loading polyfills.\");\n Polyfills.load(window.distill.initialize);\n}\n"],"names":["style","FrontMatter","T","styles","global","Prism","rgb","colorRgb","value","number","constant","bisect","interpolate","interpolateValue","identity","linear","t0","t1","interval","formatLocale","day","timeMonday","timeDay","timeYear","timeSunday","timeThursday","locale","defaultLocale","ascending","parseTypenames","scaleLinear","currentEvent"],"mappings":"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AM,CAAC;EAC5C,KAAK;EACL,GAAG;EACH;;;;ECzUO,MAAM,cAAc,GAAG,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,IAAI,CAAC;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;EC9ED;AAiBA;EACA,MAAM7B,GAAC,GAAG,QAAQ,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC5D;EACO,MAAM,aAAa,SAASA,GAAC,CAAC,WAAW,CAAC,CAAC;AAClD;EACA;;ECtBA;AAeA;EACA,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF;EACO,SAAS,gBAAgB,CAAC,WAAW,EAAE;EAC9C,EAAE,IAAI,IAAI,GAAGA,QAAM,CAAC;AACpB;EACA,EAAE,IAAI,OAAO,WAAW,CAAC,SAAS,KAAK,WAAW,EAAE;EACpD,IAAI,IAAI,IAAI,CAAC;AACb;AACA,OAAO,CAAC,CAAC;EACT,IAAI,IAAI,WAAW,CAAC,uBAAuB,EAAE;EAC7C,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,uBAAuB,CAAC,oEAAoE,CAAC,CAAC;EACpI,KAAK;EACL,IAAI,IAAI,IAAI,CAAC;AACb,oEAAoE,EAAE,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC;AAC5G,IAAI,CAAC,CAAC;EACN,GAAG;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"}