@mozaic-ds/web-components 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/public/ClickOutside-63071e7a.js +1 -15
- package/public/ClickOutside-63071e7a.js.map +1 -1
- package/public/DataTableDefaultAction.nested-4da4dc44.js +1 -759
- package/public/DataTableDefaultAction.nested-4da4dc44.js.map +1 -1
- package/public/DataTableUtilities-60220c78.js +1 -370
- package/public/DataTableUtilities-60220c78.js.map +1 -1
- package/public/EventForward-8492ff62.js +1 -109
- package/public/EventForward-8492ff62.js.map +1 -1
- package/public/EventHandler-02058705.js +1 -15
- package/public/EventHandler-02058705.js.map +1 -1
- package/public/adeo/components/checkbox/Checkbox.js +1 -1
- package/public/adeo/components/checkbox/Checkbox.js.map +1 -1
- package/public/adeo/components/checkbox/Checkbox.svelte +2 -2
- package/public/adeo/components/datatable/DataTable.js +1 -1
- package/public/adeo/components/datatable/DataTable.js.map +1 -1
- package/public/adeo/components/datatable/DataTable.svelte +18 -18
- package/public/adeo/components/fileuploader/FileUploader.js +1 -1
- package/public/adeo/components/fileuploader/FileUploader.js.map +1 -1
- package/public/adeo/components/fileuploader/FileUploader.svelte +8 -5
- package/public/adeo/components/fileuploader/ResultFile.nested.js +1 -1
- package/public/adeo/components/fileuploader/ResultFile.nested.js.map +1 -1
- package/public/adeo/components/layer/Layer.js +1 -1
- package/public/adeo/components/layer/Layer.js.map +1 -1
- package/public/adeo/components/layer/Layer.svelte +2 -1
- package/public/adeo/components/link/Link.js +1 -1
- package/public/adeo/components/link/Link.js.map +1 -1
- package/public/adeo/components/link/Link.svelte +1 -1
- package/public/adeo/components/phonenumber/PhoneNumber.js +1 -1
- package/public/adeo/components/phonenumber/PhoneNumber.js.map +1 -1
- package/public/adeo/components/phonenumber/PhoneNumber.svelte +72 -9
- package/public/adeo/components/quantityselector/QuantitySelector.js +1 -1
- package/public/adeo/components/quantityselector/QuantitySelector.js.map +1 -1
- package/public/adeo/components/quantityselector/QuantitySelector.svelte +6 -3
- package/public/adeo/components/resultfile/ResultFile.nested.svelte +1 -1
- package/public/array-5b770a93.js +1 -13
- package/public/array-5b770a93.js.map +1 -1
- package/public/axis-fbc0f7b5.js +1 -174
- package/public/axis-fbc0f7b5.js.map +1 -1
- package/public/band-d7a07d2c.js +1 -186
- package/public/band-d7a07d2c.js.map +1 -1
- package/public/bricoman/components/chart/Donut.js +1 -1
- package/public/bricoman/components/checkbox/Checkbox.js +1 -1
- package/public/bricoman/components/checkbox/Checkbox.js.map +1 -1
- package/public/bricoman/components/checkbox/Checkbox.svelte +2 -2
- package/public/bricoman/components/datatable/DataTable.js +1 -1
- package/public/bricoman/components/datatable/DataTable.js.map +1 -1
- package/public/bricoman/components/datatable/DataTable.svelte +18 -18
- package/public/bricoman/components/fileuploader/FileUploader.js +1 -1
- package/public/bricoman/components/fileuploader/FileUploader.js.map +1 -1
- package/public/bricoman/components/fileuploader/FileUploader.svelte +8 -5
- package/public/bricoman/components/fileuploader/ResultFile.nested.js +1 -1
- package/public/bricoman/components/fileuploader/ResultFile.nested.js.map +1 -1
- package/public/bricoman/components/header/Header.js +1 -1
- package/public/bricoman/components/hero/Hero.js +1 -1
- package/public/bricoman/components/layer/Layer.js +1 -1
- package/public/bricoman/components/layer/Layer.js.map +1 -1
- package/public/bricoman/components/layer/Layer.svelte +2 -1
- package/public/bricoman/components/link/Link.js +1 -1
- package/public/bricoman/components/link/Link.js.map +1 -1
- package/public/bricoman/components/link/Link.svelte +1 -1
- package/public/bricoman/components/listbox/Listbox.js +1 -1
- package/public/bricoman/components/listbox/Listbox.nested.js +1 -1
- package/public/bricoman/components/phonenumber/PhoneNumber.js +1 -1
- package/public/bricoman/components/phonenumber/PhoneNumber.js.map +1 -1
- package/public/bricoman/components/phonenumber/PhoneNumber.svelte +72 -9
- package/public/bricoman/components/price/Price.js +1 -1
- package/public/bricoman/components/quantityselector/QuantitySelector.js +1 -1
- package/public/bricoman/components/quantityselector/QuantitySelector.js.map +1 -1
- package/public/bricoman/components/quantityselector/QuantitySelector.svelte +6 -3
- package/public/bricoman/components/resultfile/ResultFile.nested.svelte +1 -1
- package/public/components/accordion/Accordion.js +1 -365
- package/public/components/accordion/Accordion.js.map +1 -1
- package/public/components/autocomplete/Autocomplete.js +1 -1515
- package/public/components/autocomplete/Autocomplete.js.map +1 -1
- package/public/components/badge/Badge.js +1 -155
- package/public/components/badge/Badge.js.map +1 -1
- package/public/components/badge/Badge.nested.js +1 -101
- package/public/components/badge/Badge.nested.js.map +1 -1
- package/public/components/breadcrumb/Breadcrumb.js +1 -372
- package/public/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/public/components/breadcrumb/Breadcrumb.nested.js +1 -319
- package/public/components/breadcrumb/Breadcrumb.nested.js.map +1 -1
- package/public/components/button/Button.js +1 -1138
- package/public/components/button/Button.js.map +1 -1
- package/public/components/card/Card.js +1 -369
- package/public/components/card/Card.js.map +1 -1
- package/public/components/chart/BarChart.js +1 -582
- package/public/components/chart/BarChart.js.map +1 -1
- package/public/components/chart/Donut.js +1 -1189
- package/public/components/chart/Donut.js.map +1 -1
- package/public/components/chart/GroupedBarChart.js +1 -750
- package/public/components/chart/GroupedBarChart.js.map +1 -1
- package/public/components/chart/LineChart.js +1 -1731
- package/public/components/chart/LineChart.js.map +1 -1
- package/public/components/chart/Radar.js +1 -729
- package/public/components/chart/Radar.js.map +1 -1
- package/public/components/chart/StackedBarChart.js +1 -745
- package/public/components/chart/StackedBarChart.js.map +1 -1
- package/public/components/checkbox/Checkbox.js +1 -307
- package/public/components/checkbox/Checkbox.js.map +1 -1
- package/public/components/checkbox/Checkbox.svelte +2 -2
- package/public/components/checkboxgroup/checkboxGroup.js +1 -404
- package/public/components/checkboxgroup/checkboxGroup.js.map +1 -1
- package/public/components/datatable/DataTable.js +1 -3064
- package/public/components/datatable/DataTable.js.map +1 -1
- package/public/components/datatable/DataTable.svelte +18 -18
- package/public/components/datatable/DataTableDefaultAction.nested.js +1 -4
- package/public/components/datatable/DataTableDefaultAction.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultEdtion.nested.js +1 -164
- package/public/components/datatable/DataTableDefaultEdtion.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js +1 -380
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelection.nested.js +1 -424
- package/public/components/datatable/DataTableDefaultSelection.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js +1 -263
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js.map +1 -1
- package/public/components/datatable/DataTableFooter.nested.js +1 -637
- package/public/components/datatable/DataTableFooter.nested.js.map +1 -1
- package/public/components/dropdown/Dropdown.js +1 -1426
- package/public/components/dropdown/Dropdown.js.map +1 -1
- package/public/components/field/Field.js +1 -375
- package/public/components/field/Field.js.map +1 -1
- package/public/components/fileuploader/FileUploader.js +1 -555
- package/public/components/fileuploader/FileUploader.js.map +1 -1
- package/public/components/fileuploader/FileUploader.svelte +8 -5
- package/public/components/fileuploader/ResultFile.nested.js +1 -265
- package/public/components/fileuploader/ResultFile.nested.js.map +1 -1
- package/public/components/flag/Flag.js +1 -174
- package/public/components/flag/Flag.js.map +1 -1
- package/public/components/header/Header.js +1 -903
- package/public/components/header/Header.js.map +1 -1
- package/public/components/hero/Hero.js +1 -271
- package/public/components/hero/Hero.js.map +1 -1
- package/public/components/layer/Layer.js +1 -453
- package/public/components/layer/Layer.js.map +1 -1
- package/public/components/layer/Layer.svelte +2 -1
- package/public/components/link/Link.js +1 -380
- package/public/components/link/Link.js.map +1 -1
- package/public/components/link/Link.svelte +1 -1
- package/public/components/listbox/Listbox.js +1 -595
- package/public/components/listbox/Listbox.js.map +1 -1
- package/public/components/listbox/Listbox.nested.js +1 -629
- package/public/components/listbox/Listbox.nested.js.map +1 -1
- package/public/components/loader/Loader.js +1 -246
- package/public/components/loader/Loader.js.map +1 -1
- package/public/components/loader/Loader.nested.js +1 -176
- package/public/components/loader/Loader.nested.js.map +1 -1
- package/public/components/modal/Modal.js +1 -395
- package/public/components/modal/Modal.js.map +1 -1
- package/public/components/notification/Notification.js +1 -458
- package/public/components/notification/Notification.js.map +1 -1
- package/public/components/optionbutton/OptionButton.js +1 -316
- package/public/components/optionbutton/OptionButton.js.map +1 -1
- package/public/components/overlay/Overlay.js +1 -104
- package/public/components/overlay/Overlay.js.map +1 -1
- package/public/components/overlay/OverlayLoader.js +1 -151
- package/public/components/overlay/OverlayLoader.js.map +1 -1
- package/public/components/pagination/Pagination.js +1 -613
- package/public/components/pagination/Pagination.js.map +1 -1
- package/public/components/passwordinput/PasswordInput.js +1 -291
- package/public/components/passwordinput/PasswordInput.js.map +1 -1
- package/public/components/phonenumber/PhoneNumber.js +1 -6894
- package/public/components/phonenumber/PhoneNumber.js.map +1 -1
- package/public/components/price/Price.js +1 -768
- package/public/components/price/Price.js.map +1 -1
- package/public/components/progressbar/ProgressBar.js +1 -278
- package/public/components/progressbar/ProgressBar.js.map +1 -1
- package/public/components/quantityselector/QuantitySelector.js +1 -333
- package/public/components/quantityselector/QuantitySelector.js.map +1 -1
- package/public/components/quantityselector/QuantitySelector.svelte +6 -3
- package/public/components/radio/Radio.js +1 -273
- package/public/components/radio/Radio.js.map +1 -1
- package/public/components/radiogroup/RadioGroup.js +1 -414
- package/public/components/radiogroup/RadioGroup.js.map +1 -1
- package/public/components/ratings/StarsInput.js +1 -292
- package/public/components/ratings/StarsInput.js.map +1 -1
- package/public/components/ratings/StarsResult.js +1 -246
- package/public/components/ratings/StarsResult.js.map +1 -1
- package/public/components/resultfile/ResultFile.nested.svelte +1 -1
- package/public/components/select/Select.js +1 -451
- package/public/components/select/Select.js.map +1 -1
- package/public/components/sidebar/Sidebar.js +1 -784
- package/public/components/sidebar/Sidebar.js.map +1 -1
- package/public/components/sidebar/sidebar-feature-group.nested.js +1 -594
- package/public/components/sidebar/sidebar-feature-group.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-feature.nested.js +1 -402
- package/public/components/sidebar/sidebar-feature.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-section.nested.js +1 -394
- package/public/components/sidebar/sidebar-section.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-segment.nested.js +1 -200
- package/public/components/sidebar/sidebar-segment.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-separator.nested.js +1 -49
- package/public/components/sidebar/sidebar-separator.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-sub-features.nested.js +1 -312
- package/public/components/sidebar/sidebar-sub-features.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-user.nested.js +1 -733
- package/public/components/sidebar/sidebar-user.nested.js.map +1 -1
- package/public/components/stepper/Stepper.js +1 -371
- package/public/components/stepper/Stepper.js.map +1 -1
- package/public/components/tabs/Tabs.js +1 -615
- package/public/components/tabs/Tabs.js.map +1 -1
- package/public/components/tabs/Tabs.nested.js +1 -472
- package/public/components/tabs/Tabs.nested.js.map +1 -1
- package/public/components/tag/Tag.js +1 -665
- package/public/components/tag/Tag.js.map +1 -1
- package/public/components/tag/Tag.nested.js +1 -554
- package/public/components/tag/Tag.nested.js.map +1 -1
- package/public/components/taglist/TagList.js +1 -475
- package/public/components/taglist/TagList.js.map +1 -1
- package/public/components/textarea/Textarea.js +1 -303
- package/public/components/textarea/Textarea.js.map +1 -1
- package/public/components/textinput/Textinput.js +1 -497
- package/public/components/textinput/Textinput.js.map +1 -1
- package/public/components/textinput/Textinput.nested.js +1 -320
- package/public/components/textinput/Textinput.nested.js.map +1 -1
- package/public/components/toggle/Toggle.js +1 -278
- package/public/components/toggle/Toggle.js.map +1 -1
- package/public/components/tooltip/Tooltip.js +1 -173
- package/public/components/tooltip/Tooltip.js.map +1 -1
- package/public/index-c33b3772.js +1 -873
- package/public/index-c33b3772.js.map +1 -1
- package/public/linear-f46d7e9e.js +1 -700
- package/public/linear-f46d7e9e.js.map +1 -1
- package/public/path-1b5da959.js +1 -186
- package/public/path-1b5da959.js.map +1 -1
- package/public/sidebar-service-275bf9ef.js +1 -129
- package/public/sidebar-service-275bf9ef.js.map +1 -1
- package/public/symbol-b05a6e2b.js +1 -169
- package/public/symbol-b05a6e2b.js.map +1 -1
- package/public/transform-15d69d5d.js +1 -2743
- package/public/transform-15d69d5d.js.map +1 -1
- package/public/utilities/stories/fileuploader/FileUploader.stories.d.ts.map +1 -1
- package/public/utilities/stories/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.js","sources":["../../../node_modules/d3-array/src/extent.js","../../../node_modules/d3-scale/src/nice.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/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../src/components/chart/LineChart.svelte"],"sourcesContent":["export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(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 = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\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 let previous;\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 = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (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 = (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 = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\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 \"g\": formatYearISO,\n \"G\": formatFullYearISO,\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 \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\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 \"g\": parseYear,\n \"G\": parseFullYear,\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.get(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.get(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.get(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.get(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.get(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 return new Map(names.map((name, i) => [name.toLowerCase(), i]));\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 dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(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 formatYearISO(d, p) {\n d = dISO(d);\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 formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\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 UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(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 formatUTCYearISO(d, p) {\n d = UTCdISO(d);\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 formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\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 {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","<script lang=\"ts\">\n import { onMount } from 'svelte';\n import {\n select,\n line,\n axisLeft,\n symbolSquare,\n symbolCircle,\n symbolTriangle,\n axisBottom,\n timeParse,\n scaleLinear,\n Selection,\n symbol,\n extent,\n scaleTime,\n timeDay,\n ScaleTime,\n Axis,\n NumberValue,\n ScaleLinear,\n } from 'd3';\n import type { LineData, LinePoint, SymbolType } from './line-chart.types';\n import { EventHandler } from '../../utilities/EventHandler';\n\n export let data = '';\n export let backgroundcolor = '#fff';\n export let height = 300;\n export let ticknumbers = 5;\n\n const parseTime = timeParse('%d-%m-%Y');\n\n let _data: string;\n let hasMounted = false;\n let eventHandler = new EventHandler();\n let parsedData: LineData[];\n\n $: parsedData = data ? (JSON.parse(data) as LineData[]) : ([] as LineData[]);\n $: if (data.length > 0 && hasMounted) {\n if (!_data) {\n render();\n _data = data;\n } else if (data !== _data) {\n updateAxes(parsedData);\n parsedData.forEach((data, i) => updateLine(data, i));\n _data = data;\n }\n }\n\n let chart: HTMLDivElement;\n let svg: Selection<SVGGElement, LinePoint, any, any>;\n\n let x: ScaleTime<number, number, never>,\n y: ScaleLinear<number, number, never>,\n xAxis: Axis<Date | NumberValue>,\n yAxis: Axis<number | NumberValue>,\n linesD3: Selection<SVGPathElement, LinePoint, any, any>[] = [];\n\n const margin = { top: 20, right: 40, bottom: 40, left: 60, yAxisPadding: 20 };\n let tooltipData = {\n date: '',\n value: 0,\n show: false,\n customtooltip: '',\n };\n\n function getChartWidth() {\n let chartWidth = select(chart).style('width');\n if (chartWidth === '' || !chartWidth) {\n chartWidth = `${window.innerWidth / 2}`;\n }\n return parseInt(chartWidth);\n }\n\n function appendSymbols(\n data: LinePoint[],\n color: string,\n symbolType: SymbolType,\n i: number,\n ) {\n let symbolPath = symbol(symbolSquare);\n switch (symbolType) {\n case 'circle':\n symbolPath = symbol(symbolCircle);\n break;\n case 'triangle':\n symbolPath = symbol(symbolTriangle);\n break;\n }\n\n svg\n .selectAll()\n .data(data)\n .join('path')\n .attr('d', symbolPath.size(50))\n .attr('opacity', 1)\n .attr(\n 'transform',\n (d) => `translate(${x(+d.time) + margin.yAxisPadding},${y(+d.value)})`,\n )\n .attr('class', `chart__symbol-line-${i}`)\n .style('fill', color)\n .style('cursor', 'pointer')\n .on('mouseover', handleTickMouseOver)\n .on('mouseout', () => (tooltipData.show = false))\n .on('click', (_e: MouseEvent, point: LinePoint) => {\n eventHandler.dispatch('point-clicked', point);\n });\n }\n\n function handleTickMouseOver(_e: MouseEvent, point: LinePoint): void {\n const date = new Date(point.time).toDateString();\n const value = point.value;\n tooltipData = {\n date,\n value: parseInt(value),\n show: true,\n customtooltip: point.customtooltip,\n };\n }\n\n function updatePath(\n lineD3: Selection<SVGPathElement, LinePoint, any, any>,\n points: LinePoint[],\n color: string,\n strokeDasharray?: number,\n ) {\n lineD3\n .datum(points)\n .attr(\n 'd',\n line<LinePoint>()\n .x((d) => x(+d.time))\n .y((d) => y(+d.value)),\n )\n .attr('stroke', color)\n .style('stroke-width', 2.5)\n .style('fill', 'none')\n .attr('transform', `translate(${margin.yAxisPadding},0)`)\n .attr('stroke-dasharray', strokeDasharray || 0);\n }\n\n function updateAxes(data: LineData[]) {\n const width = getChartWidth();\n const mergedLineData = data.flatMap((d) => d.points);\n const [yMin = 0, yMax = 0] = extent(mergedLineData, (d) => Number(d.value));\n const xDomain = extent(mergedLineData, (d) => parseTime(d.time as string));\n x.domain(xDomain as Iterable<Date | NumberValue>);\n svg\n .selectAll('.x-axis')\n .attr(\n 'transform',\n `translate(${margin.yAxisPadding},${height + margin.bottom / 2})`,\n )\n .call(xAxis as any)\n .attr('stroke-width', '0');\n\n y.domain([yMin, yMax]);\n svg\n .selectAll('.y-axis')\n .call(yAxis as any)\n .select('.domain')\n .attr('stroke-width', '0');\n\n svg\n .selectAll('.y-axis .tick line')\n .attr('x1', margin.yAxisPadding / 2)\n .attr('x2', width - margin.left)\n .attr('stroke', '#EEEDEA')\n .attr('stroke-width', '1.4px');\n }\n\n function render(resize?: boolean) {\n const width = getChartWidth();\n\n x = scaleTime().range([0, width - margin.left - margin.right]);\n xAxis = axisBottom(x)\n .tickSize(0)\n .ticks(timeDay)\n .ticks(ticknumbers)\n .tickPadding(5);\n\n y = scaleLinear().range([height, 0]);\n yAxis = axisLeft(y).ticks(ticknumbers);\n\n if (!resize) {\n svg = select<HTMLElement, LinePoint>(chart)\n .append('svg')\n .attr('width', width)\n .attr('height', height + margin.top + margin.bottom)\n .attr('id', 'svg-chart')\n .append('g')\n .attr(\n 'transform',\n `translate(${margin.left / 2 + margin.right / 2},${margin.top})`,\n );\n\n svg\n .append('g')\n .attr('transform', 'translate(0,' + String(height) + ')')\n .attr('class', 'x-axis');\n svg.append('g').attr('class', 'y-axis');\n }\n\n updateAxes(parsedData);\n parsedData.forEach((data, i) => {\n if (!resize) {\n linesD3.push(svg.append('g').append('path'));\n }\n updateLine(data, i);\n });\n }\n\n function updateLine(data: LineData, i: number) {\n const points = data.points.map((d) => ({\n time: parseTime(d.time as string) || '',\n value: d.value,\n customtooltip: d.customtooltip,\n }));\n updatePath(linesD3[i], points, data.color, data.strokeDasharray);\n svg.selectAll(`.chart__symbol-line-${i}`).remove();\n appendSymbols(points, data.color, data.symbol, i);\n }\n\n function resize() {\n if (_data && hasMounted) {\n const width = getChartWidth();\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n render(true);\n }\n }\n\n onMount(() => {\n const resizeObserver = new ResizeObserver(resize);\n resizeObserver.observe(chart);\n hasMounted = true;\n });\n</script>\n\n<div\n bind:this={chart}\n class=\"chart\"\n style=\"background-color: {backgroundcolor};\"\n>\n {#if tooltipData.show}\n <div\n class=\"tooltip\"\n style={`right: ${margin.right}px; top: ${margin.top}px;`}\n >\n {#if tooltipData.customtooltip}\n {tooltipData.customtooltip}\n {:else}\n {tooltipData.date}: <b>{tooltipData.value}</b>\n {/if}\n </div>\n {/if}\n</div>\n\n<div class=\"legend\">\n {#each parsedData as d}\n <div class=\"legend__item\">\n <svg class=\"legend__box\">\n <rect x=\"0\" y=\"0\" width=\"24\" height=\"16\" fill={d.color} />\n </svg>\n <span class=\"legend__title\">{d.title}</span>\n </div>\n {/each}\n</div>\n\n<text style=\"display: none;\" />\n\n<style lang=\"scss\">\n @import '@mozaic-ds/styles/settings-tools/_all-settings';\n\n .legend {\n margin-top: magic-unit-rem(1);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 magic-unit-rem(1.5);\n height: 100%;\n color: $color-grey-999;\n gap: magic-unit-rem(1);\n\n &__item {\n display: flex;\n justify-content: center;\n font-size: $size-font-04;\n align-items: center;\n }\n\n &__title {\n white-space: nowrap;\n margin: 0;\n }\n\n &__box {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: magic-unit-rem(0.25);\n height: 16px;\n width: 24px;\n }\n }\n\n text {\n font-family: 'LeroyMerlin', sans-serif;\n font-size: 14px;\n color: #555550;\n }\n\n .tooltip {\n background-color: $color-grey-700;\n border-radius: 4px;\n color: $color-grey-000;\n text-align: center;\n padding: magic-unit-rem(0.5) magic-unit-rem(1);\n top: 0;\n position: absolute;\n }\n</style>\n"],"names":["timeWeek","timeSecond","symbol","scaleTime","scaleLinear"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LineChart.js","sources":["../../../node_modules/d3-array/src/extent.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/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/d3-scale/src/nice.js","../../../src/components/chart/LineChart.svelte"],"sourcesContent":["export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(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 = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\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 let previous;\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 = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (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 = (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 = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\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 \"g\": formatYearISO,\n \"G\": formatFullYearISO,\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 \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\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 \"g\": parseYear,\n \"G\": parseFullYear,\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.get(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.get(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.get(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.get(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.get(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 return new Map(names.map((name, i) => [name.toLowerCase(), i]));\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 dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(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 formatYearISO(d, p) {\n d = dISO(d);\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 formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\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 UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(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 formatUTCYearISO(d, p) {\n d = UTCdISO(d);\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 formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\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 {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","<script lang=\"ts\">\n import { onMount } from 'svelte';\n import {\n select,\n line,\n axisLeft,\n symbolSquare,\n symbolCircle,\n symbolTriangle,\n axisBottom,\n timeParse,\n scaleLinear,\n Selection,\n symbol,\n extent,\n scaleTime,\n timeDay,\n ScaleTime,\n Axis,\n NumberValue,\n ScaleLinear,\n } from 'd3';\n import type { LineData, LinePoint, SymbolType } from './line-chart.types';\n import { EventHandler } from '../../utilities/EventHandler';\n\n export let data = '';\n export let backgroundcolor = '#fff';\n export let height = 300;\n export let ticknumbers = 5;\n\n const parseTime = timeParse('%d-%m-%Y');\n\n let _data: string;\n let hasMounted = false;\n let eventHandler = new EventHandler();\n let parsedData: LineData[];\n\n $: parsedData = data ? (JSON.parse(data) as LineData[]) : ([] as LineData[]);\n $: if (data.length > 0 && hasMounted) {\n if (!_data) {\n render();\n _data = data;\n } else if (data !== _data) {\n updateAxes(parsedData);\n parsedData.forEach((data, i) => updateLine(data, i));\n _data = data;\n }\n }\n\n let chart: HTMLDivElement;\n let svg: Selection<SVGGElement, LinePoint, any, any>;\n\n let x: ScaleTime<number, number, never>,\n y: ScaleLinear<number, number, never>,\n xAxis: Axis<Date | NumberValue>,\n yAxis: Axis<number | NumberValue>,\n linesD3: Selection<SVGPathElement, LinePoint, any, any>[] = [];\n\n const margin = { top: 20, right: 40, bottom: 40, left: 60, yAxisPadding: 20 };\n let tooltipData = {\n date: '',\n value: 0,\n show: false,\n customtooltip: '',\n };\n\n function getChartWidth() {\n let chartWidth = select(chart).style('width');\n if (chartWidth === '' || !chartWidth) {\n chartWidth = `${window.innerWidth / 2}`;\n }\n return parseInt(chartWidth);\n }\n\n function appendSymbols(\n data: LinePoint[],\n color: string,\n symbolType: SymbolType,\n i: number,\n ) {\n let symbolPath = symbol(symbolSquare);\n switch (symbolType) {\n case 'circle':\n symbolPath = symbol(symbolCircle);\n break;\n case 'triangle':\n symbolPath = symbol(symbolTriangle);\n break;\n }\n\n svg\n .selectAll()\n .data(data)\n .join('path')\n .attr('d', symbolPath.size(50))\n .attr('opacity', 1)\n .attr(\n 'transform',\n (d) => `translate(${x(+d.time) + margin.yAxisPadding},${y(+d.value)})`,\n )\n .attr('class', `chart__symbol-line-${i}`)\n .style('fill', color)\n .style('cursor', 'pointer')\n .on('mouseover', handleTickMouseOver)\n .on('mouseout', () => (tooltipData.show = false))\n .on('click', (_e: MouseEvent, point: LinePoint) => {\n eventHandler.dispatch('point-clicked', point);\n });\n }\n\n function handleTickMouseOver(_e: MouseEvent, point: LinePoint): void {\n const date = new Date(point.time).toDateString();\n const value = point.value;\n tooltipData = {\n date,\n value: parseInt(value),\n show: true,\n customtooltip: point.customtooltip,\n };\n }\n\n function updatePath(\n lineD3: Selection<SVGPathElement, LinePoint, any, any>,\n points: LinePoint[],\n color: string,\n strokeDasharray?: number,\n ) {\n lineD3\n .datum(points)\n .attr(\n 'd',\n line<LinePoint>()\n .x((d) => x(+d.time))\n .y((d) => y(+d.value)),\n )\n .attr('stroke', color)\n .style('stroke-width', 2.5)\n .style('fill', 'none')\n .attr('transform', `translate(${margin.yAxisPadding},0)`)\n .attr('stroke-dasharray', strokeDasharray || 0);\n }\n\n function updateAxes(data: LineData[]) {\n const width = getChartWidth();\n const mergedLineData = data.flatMap((d) => d.points);\n const [yMin = 0, yMax = 0] = extent(mergedLineData, (d) => Number(d.value));\n const xDomain = extent(mergedLineData, (d) => parseTime(d.time as string));\n x.domain(xDomain as Iterable<Date | NumberValue>);\n svg\n .selectAll('.x-axis')\n .attr(\n 'transform',\n `translate(${margin.yAxisPadding},${height + margin.bottom / 2})`,\n )\n .call(xAxis as any)\n .attr('stroke-width', '0');\n\n y.domain([yMin, yMax]);\n svg\n .selectAll('.y-axis')\n .call(yAxis as any)\n .select('.domain')\n .attr('stroke-width', '0');\n\n svg\n .selectAll('.y-axis .tick line')\n .attr('x1', margin.yAxisPadding / 2)\n .attr('x2', width - margin.left)\n .attr('stroke', '#EEEDEA')\n .attr('stroke-width', '1.4px');\n }\n\n function render(resize?: boolean) {\n const width = getChartWidth();\n\n x = scaleTime().range([0, width - margin.left - margin.right]);\n xAxis = axisBottom(x)\n .tickSize(0)\n .ticks(timeDay)\n .ticks(ticknumbers)\n .tickPadding(5);\n\n y = scaleLinear().range([height, 0]);\n yAxis = axisLeft(y).ticks(ticknumbers);\n\n if (!resize) {\n svg = select<HTMLElement, LinePoint>(chart)\n .append('svg')\n .attr('width', width)\n .attr('height', height + margin.top + margin.bottom)\n .attr('id', 'svg-chart')\n .append('g')\n .attr(\n 'transform',\n `translate(${margin.left / 2 + margin.right / 2},${margin.top})`,\n );\n\n svg\n .append('g')\n .attr('transform', 'translate(0,' + String(height) + ')')\n .attr('class', 'x-axis');\n svg.append('g').attr('class', 'y-axis');\n }\n\n updateAxes(parsedData);\n parsedData.forEach((data, i) => {\n if (!resize) {\n linesD3.push(svg.append('g').append('path'));\n }\n updateLine(data, i);\n });\n }\n\n function updateLine(data: LineData, i: number) {\n const points = data.points.map((d) => ({\n time: parseTime(d.time as string) || '',\n value: d.value,\n customtooltip: d.customtooltip,\n }));\n updatePath(linesD3[i], points, data.color, data.strokeDasharray);\n svg.selectAll(`.chart__symbol-line-${i}`).remove();\n appendSymbols(points, data.color, data.symbol, i);\n }\n\n function resize() {\n if (_data && hasMounted) {\n const width = getChartWidth();\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n render(true);\n }\n }\n\n onMount(() => {\n const resizeObserver = new ResizeObserver(resize);\n resizeObserver.observe(chart);\n hasMounted = true;\n });\n</script>\n\n<div\n bind:this={chart}\n class=\"chart\"\n style=\"background-color: {backgroundcolor};\"\n>\n {#if tooltipData.show}\n <div\n class=\"tooltip\"\n style={`right: ${margin.right}px; top: ${margin.top}px;`}\n >\n {#if tooltipData.customtooltip}\n {tooltipData.customtooltip}\n {:else}\n {tooltipData.date}: <b>{tooltipData.value}</b>\n {/if}\n </div>\n {/if}\n</div>\n\n<div class=\"legend\">\n {#each parsedData as d}\n <div class=\"legend__item\">\n <svg class=\"legend__box\">\n <rect x=\"0\" y=\"0\" width=\"24\" height=\"16\" fill={d.color} />\n </svg>\n <span class=\"legend__title\">{d.title}</span>\n </div>\n {/each}\n</div>\n\n<text style=\"display: none;\" />\n\n<style lang=\"scss\">\n @import '@mozaic-ds/styles/settings-tools/_all-settings';\n\n .legend {\n margin-top: magic-unit-rem(1);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 magic-unit-rem(1.5);\n height: 100%;\n color: $color-grey-999;\n gap: magic-unit-rem(1);\n\n &__item {\n display: flex;\n justify-content: center;\n font-size: $size-font-04;\n align-items: center;\n }\n\n &__title {\n white-space: nowrap;\n margin: 0;\n }\n\n &__box {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: magic-unit-rem(0.25);\n height: 16px;\n width: 24px;\n }\n }\n\n text {\n font-family: 'LeroyMerlin', sans-serif;\n font-size: 14px;\n color: #555550;\n }\n\n .tooltip {\n background-color: $color-grey-700;\n border-radius: 4px;\n color: $color-grey-000;\n text-align: center;\n padding: magic-unit-rem(0.5) magic-unit-rem(1);\n top: 0;\n position: absolute;\n }\n</style>\n"],"names":["extent","values","valueof","min","max","undefined","value","index","t0","Date","t1","timeInterval","floori","offseti","count","field","interval","date","arguments","length","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","test","setTime","end","every","isFinite","d","millisecond","k","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","i","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","timeTicks","timeTickInterval","year","month","week","day","hour","minute","tickIntervals","tickInterval","target","abs","bisector","right","tickStep","t","reverse","ticks","ticker","localDate","y","m","H","M","S","L","utcDate","UTC","newDate","locale","timeFormat","timeParse","pads","_","numberRe","percentRe","requoteRe","pad","fill","width","sign","string","Array","join","requote","s","replace","formatRe","names","RegExp","map","formatLookup","Map","name","toLowerCase","parseWeekdayNumberSunday","n","exec","slice","w","parseWeekdayNumberMonday","u","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","q","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","p","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","number","calendar","format","scale","continuous","invert","domain","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickFormat","from","specifier","nice","i0","i1","x0","x1","copy","time","initRange","apply","timeWeek","timeSecond","ctx","customtooltip","create_if_block_1","attr","div","top","insert","anchor","t0_value","t2_value","b","dirty","set_data","t2","t_value","t1_value","title","rect","rect_fill_value","color","append","svg_1","span","if_block","show","create_if_block","div0","div1","text_1","data","$$props","backgroundcolor","height","ticknumbers","parseTime","_data","parsedData","chart","svg","x","xAxis","yAxis","hasMounted","eventHandler","EventHandler","linesD3","margin","bottom","left","yAxisPadding","tooltipData","getChartWidth","chartWidth","select","style","window","innerWidth","parseInt","handleTickMouseOver","_e","point","toDateString","updateAxes","mergedLineData","flatMap","points","yMin","yMax","Number","xDomain","selectAll","call","render","resize","scaleTime","axisBottom","tickSize","tickPadding","scaleLinear","axisLeft","String","forEach","updateLine","lineD3","strokeDasharray","datum","line","updatePath","remove","symbolType","symbolPath","symbol","symbolSquare","symbolCircle","symbolTriangle","size","on","dispatch","appendSymbols","_a","querySelector","setAttribute","onMount","ResizeObserver","observe","$$invalidate","JSON","parse","$$value","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","a","A","B","c","e","f","g","G","I","j","X","Y","utcFormats","parses","get","parseSpecifier","newFormat","charCodeAt","charAt","newParse","toString","utcFormat","utcParse","formatLocale"],"mappings":"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"}
|