CINXE.COM
Swimlane Chart using d3.js 路 GitHub
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-74231a1f3bbb.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-8a995f0bacd4.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-f37fb7684b1f.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-9ac301c3ebe5.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-cd826e8636dc.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f91b0f603451.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-83beb16e0ecf.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-6e122dab64fc.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-18119e682df0.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-cba26849680f.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-b6cb3703b934.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ea73c9cb5377.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["contentful_lp_flex_features_actions","contentful_lp_flex_features_codespaces","contentful_lp_flex_features_code_review","contentful_lp_flex_features_code_search","contentful_lp_flex_features_discussions","contentful_lp_flex_features_issues","copilot_immersive_issue_preview","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_no_floating_button","copilot_topics_as_references","copilot_read_shared_conversation","copilot_duplicate_thread","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_gateway_parse_params","github_models_o3_mini_streaming","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","issues_advanced_search_nested_ownership_filters","issues_dashboard_no_redirects","marketing_pages_search_explore_provider","primer_react_css_modules_ga","react_data_router_pull_requests","react_override_default_key","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_copilot_pro_plus","site_proxima_australia_update","viewscreen_sandbox","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issue_types_prevent_private_type_creation","refresh_image_video_src","react_router_dispose_on_disconnect","codespaces_prebuild_region_target_update","turbo_app_id_restore","copilot_code_review_sign_up_closed"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-89488af87085.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-46b9f4874d95.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-952d624642a1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-62d275b7ddd9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a90ac05d2469.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-efa32db3a345.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-394f8eb34f19.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-fdc7225e42cc.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-2906d7-2a07a295af40.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-a03ee12d659a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-b6294cf703b7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-947061-e7a6c4a19f98.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-62f3e9c52ece.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-e7f74ee74d91.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-4bcbbbfbe1d4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-1884a015a8c7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_remote-form_dist_-364c09-4bdc7a460fab.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_diffs_blob-lines_ts-app_assets_modules_github_diffs_linkable-line-n-b8c0ea-812ffaaafc3e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/gist-0a8ee9c2568f.js"></script> <title>Swimlane Chart using d3.js 路 GitHub</title> <meta name="route-pattern" content="/:user_id/:gist_id(.:format)" data-turbo-transient> <meta name="route-controller" content="gists_gists" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> <meta name="current-catalog-service-hash" content="56253a530ab9027b25719525dcbe6007461a3202218f6f5dfce5a601c121cbcb"> <meta name="request-id" content="943C:3DAE3C:3EB526:4C579D:67F126CB" data-pjax-transient="true"/><meta name="html-safe-nonce" content="2da92dc89c81823c9825ad946174d599a65b4372e9e776eb8d702ae833de8990" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NDNDOjNEQUUzQzozRUI1MjY6NEM1NzlEOjY3RjEyNkNCIiwidmlzaXRvcl9pZCI6Ijg3NTE5MDExNjkxNDA0NDI4MjciLCJyZWdpb25fZWRnZSI6InNvdXRoZWFzdGFzaWEiLCJyZWdpb25fcmVuZGVyIjoic291dGhlYXN0YXNpYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="adc033a068084f44291c57a36f251400979fefb75fbebef767fdda8ba4d44e27" data-pjax-transient="true"/> <meta name="github-keyboard-shortcuts" content="copilot" data-turbo-transient="true" /> <meta name="selected-link" value="gist_code" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="analytics-location" content="/<user-name>/<gist-id>" data-turbo-transient="true" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="Swimlane Chart using d3.js. GitHub Gist: instantly share code, notes, and snippets."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch-gist.xml" title="Gist"> <link rel="fluid-icon" href="https://gist.github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://gist.github.com/bunkat/1962173" /> <meta name="twitter:image" content="https://github.githubassets.com/assets/gist-og-image-54fd7dc0713e.png" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Swimlane Chart using d3.js" /><meta name="twitter:description" content="Swimlane Chart using d3.js. GitHub Gist: instantly share code, notes, and snippets." /> <meta property="og:image" content="https://github.githubassets.com/assets/gist-og-image-54fd7dc0713e.png" /><meta property="og:image:alt" content="Swimlane Chart using d3.js. GitHub Gist: instantly share code, notes, and snippets." /><meta property="og:site_name" content="Gist" /><meta property="og:type" content="article" /><meta property="og:title" content="Swimlane Chart using d3.js" /><meta property="og:url" content="https://gist.github.com/bunkat/1962173" /><meta property="og:description" content="Swimlane Chart using d3.js. GitHub Gist: instantly share code, notes, and snippets." /><meta property="article:author" content="262588213843476" /><meta property="article:publisher" content="262588213843476" /> <meta name="hostname" content="gist.github.com"> <meta name="expected-hostname" content="gist.github.com"> <meta http-equiv="x-pjax-version" content="02a7054966f6e852d6433d8e36068459d9bdce0ac44a7bf3404443f2caf9e686" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="e26f9f0ba624ee85cc7ac057d8faa8618a4f25a85eab052c33d018ac0f6b1a46" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="205838381d6e5f35c535dbb12458f905bc43e0b186c86bf75aabbd0c0f36537c" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="69224d30d454d07137548bdbb460eb0ecb2b69d9b4469b956de88fbfafc08d83" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <link href="/bunkat.atom" rel="alternate" title="atom" type="application/atom+xml"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/gist-f06c9416fa76.css" /> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="release" content="316c1a6d92311ee3ec3c14f4775e6f86a1e17f00"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-99bc880bd101.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-25e9ddbd9991.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-cf2f2ab8dab4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-434cb6-95f395b76298.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-9a233856b02c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-2d52c8e72e64.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-1edadb4bd04c.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.a490b7c9fa319e5cb069.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <div class="Header js-details-container Details flex-wrap flex-md-nowrap p-responsive" role="banner" > <div class="Header-item d-none d-md-flex"> <a class="Header-link" data-hotkey="g d" aria-label="Gist Homepage " href="/"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github v-align-middle d-inline-block d-md-none"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 68 24" version="1.1" width="68" data-view-component="true" class="octicon octicon-logo-github v-align-middle d-none d-md-inline-block"> <path d="M27.8 17.908h-.03c.013 0 .022.014.035.017l.01-.002-.016-.015Zm.005.017c-.14.001-.49.073-.861.073-1.17 0-1.575-.536-1.575-1.234v-4.652h2.385c.135 0 .24-.12.24-.283V9.302c0-.133-.12-.252-.24-.252H25.37V5.913c0-.119-.075-.193-.21-.193h-3.24c-.136 0-.21.074-.21.193V9.14s-1.636.401-1.741.416a.255.255 0 0 0-.195.253v2.021c0 .164.12.282.255.282h1.665v4.876c0 3.627 2.55 3.998 4.29 3.998.796 0 1.756-.252 1.906-.327.09-.03.135-.134.135-.238v-2.23a.264.264 0 0 0-.219-.265Zm35.549-3.272c0-2.69-1.095-3.047-2.25-2.928-.9.06-1.62.505-1.62.505v5.232s.735.506 1.83.536c1.545.044 2.04-.506 2.04-3.345ZM67 14.415c0 5.099-1.665 6.555-4.576 6.555-2.46 0-3.78-1.233-3.78-1.233s-.06.683-.135.773c-.045.089-.12.118-.21.118h-2.22c-.15 0-.286-.119-.286-.252l.03-16.514a.26.26 0 0 1 .255-.252h3.196a.26.26 0 0 1 .255.252v5.604s1.23-.788 3.03-.788l-.015-.03c1.8 0 4.456.67 4.456 5.767ZM53.918 9.05h-3.15c-.165 0-.255.119-.255.282v8.086s-.826.58-1.95.58c-1.126 0-1.456-.506-1.456-1.62v-7.06a.262.262 0 0 0-.255-.254h-3.21a.262.262 0 0 0-.256.253v7.596c0 3.27 1.846 4.087 4.381 4.087 2.085 0 3.78-1.145 3.78-1.145s.076.58.12.67c.03.074.136.133.24.133h2.011a.243.243 0 0 0 .255-.253l.03-11.103c0-.133-.12-.252-.285-.252Zm-35.556-.015h-3.195c-.135 0-.255.134-.255.297v10.91c0 .297.195.401.45.401h2.88c.3 0 .375-.134.375-.401V9.287a.262.262 0 0 0-.255-.252ZM16.787 4.01c-1.155 0-2.07.907-2.07 2.051 0 1.145.915 2.051 2.07 2.051a2.04 2.04 0 0 0 2.04-2.05 2.04 2.04 0 0 0-2.04-2.052Zm24.74-.372H38.36a.262.262 0 0 0-.255.253v6.08H33.14v-6.08a.262.262 0 0 0-.255-.253h-3.196a.262.262 0 0 0-.255.253v16.514c0 .133.135.252.255.252h3.196a.262.262 0 0 0 .255-.253v-7.06h4.966l-.03 7.06c0 .134.12.253.255.253h3.195a.262.262 0 0 0 .255-.253V3.892a.262.262 0 0 0-.255-.253Zm-28.31 7.313v8.532c0 .06-.015.163-.09.193 0 0-1.875 1.323-4.966 1.323C4.426 21 0 19.84 0 12.2S3.87 2.986 7.651 3c3.27 0 4.59.728 4.8.862.06.075.09.134.09.208l-.63 2.646c0 .134-.134.297-.3.253-.54-.164-1.35-.49-3.255-.49-2.205 0-4.575.623-4.575 5.543s2.25 5.5 3.87 5.5c1.38 0 1.875-.164 1.875-.164V13.94H7.321c-.165 0-.285-.12-.285-.253v-2.735c0-.134.12-.252.285-.252h5.61c.166 0 .286.118.286.252Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 38 24" version="1.1" width="38" data-view-component="true" class="octicon octicon-logo-gist v-align-middle d-none d-md-inline-block"> <path d="M7.05 13.095v-1.5h5.28v8.535c-1.17.555-2.925.96-5.385.96C1.665 21.09 0 17.055 0 12.045S1.695 3 6.945 3c2.43 0 3.96.495 4.92.99v1.575c-1.83-.75-3-1.095-4.92-1.095-3.855 0-5.22 3.315-5.22 7.59s1.365 7.575 5.205 7.575c1.335 0 2.97-.105 3.795-.51v-6.03H7.05Zm16.47 1.035h.045c3.33.3 4.125 1.425 4.125 3.345 0 1.815-1.14 3.615-4.71 3.615-1.125 0-2.745-.285-3.495-.585v-1.41c.705.255 1.83.54 3.495.54 2.43 0 3.09-1.035 3.09-2.13 0-1.065-.33-1.815-2.655-2.01-3.39-.3-4.095-1.5-4.095-3.12 0-1.665 1.08-3.465 4.38-3.465 1.095 0 2.34.135 3.375.585v1.41c-.915-.3-1.83-.54-3.405-.54-2.325 0-2.82.855-2.82 2.01 0 1.035.42 1.56 2.67 1.755Zm12.87-4.995v1.275h-3.63v7.305c0 1.425.795 2.01 2.25 2.01.3 0 .63 0 .915-.045v1.335c-.255.045-.75.075-1.035.075-1.965 0-3.75-.9-3.75-3.195v-7.5H28.8v-.72l2.34-.66V5.85l1.62-.465v3.75h3.63ZM16.635 9.09v9.615c0 .81.285 1.05 1.005 1.05v1.335c-1.71 0-2.58-.705-2.58-2.58V9.09h1.575Zm.375-3.495c0 .66-.51 1.17-1.17 1.17a1.14 1.14 0 0 1-1.155-1.17c0-.66.48-1.17 1.155-1.17s1.17.51 1.17 1.17Z"></path> </svg> </a> </div> <div class="Header-item d-md-none"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="Header-link js-details-target btn-link"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars"> <path d="M3.75 5.25a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Zm0 6a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Zm0 6a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Z"></path> </svg> </button> </div> <div class="Header-item Header-item--full js-site-search flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mr-md-3 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex"> <div class="header-search flex-self-stretch flex-md-self-auto mr-0 mr-md-3 mb-3 mb-md-0"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/search" accept-charset="UTF-8" method="get"> <div class="d-flex"> <primer-text-field class="FormControl width-full FormControl--fullWidth"> <label class="sr-only FormControl-label" for="q"> Search Gists </label> <div class="FormControl-input-wrap"> <input placeholder="Search..." aria-describedby="validation-fc2a9b78-5fe4-4127-9b04-2ec39472ee7a" data-target="primer-text-field.inputElement " class="form-control FormControl-input FormControl-medium rounded-right-0" type="text" name="q" id="q" /> </div> <div class="FormControl-inlineValidation" id="validation-fc2a9b78-5fe4-4127-9b04-2ec39472ee7a" hidden="hidden"> <span class="FormControl-inlineValidation--visual" data-target="primer-text-field.validationSuccessIcon" hidden><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-check-circle-fill"> <path d="M6 0a6 6 0 1 1 0 12A6 6 0 0 1 6 0Zm-.705 8.737L9.63 4.403 8.392 3.166 5.295 6.263l-1.7-1.702L2.356 5.8l2.938 2.938Z"></path> </svg></span> <span class=" FormControl-inlineValidation--visual" data-target="primer-text-field.validationErrorIcon"><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg></span> <span></span> </div> </primer-text-field> <button id="icon-button-4014ff11-9b1e-444b-ab1b-94dc17e3eb15" aria-labelledby="tooltip-7036c4fc-0184-436d-a7d2-e78d932dfefa" type="submit" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium rounded-left-0"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search Button-visual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </button><tool-tip id="tooltip-7036c4fc-0184-436d-a7d2-e78d932dfefa" for="icon-button-4014ff11-9b1e-444b-ab1b-94dc17e3eb15" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Search Gists</tool-tip> </form> </div> </div> <nav aria-label="Global" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto"> <a class="Header-link mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, go to all gists, text:all gists" href="/discover">All gists</a> <a class="Header-link mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, go to GitHub, text:Back to GitHub" href="https://github.com">Back to GitHub</a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="79932ec38de896990bfe788c126389957b5895a7a9abdcbeb8cf54985c991557" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173"> Sign in </a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, sign up" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="a45eafa6be6d1c6e193640813ef3c4358e6395c564b25b8d25b994f5366fc992" href="/join?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173&source=header-gist"> Sign up </a></nav> </div> <div class="Header-item Header-item--full flex-justify-center d-md-none position-relative"> <a class="Header-link" data-hotkey="g d" aria-label="Gist Homepage " href="/"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github v-align-middle d-inline-block d-md-none"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 68 24" version="1.1" width="68" data-view-component="true" class="octicon octicon-logo-github v-align-middle d-none d-md-inline-block"> <path d="M27.8 17.908h-.03c.013 0 .022.014.035.017l.01-.002-.016-.015Zm.005.017c-.14.001-.49.073-.861.073-1.17 0-1.575-.536-1.575-1.234v-4.652h2.385c.135 0 .24-.12.24-.283V9.302c0-.133-.12-.252-.24-.252H25.37V5.913c0-.119-.075-.193-.21-.193h-3.24c-.136 0-.21.074-.21.193V9.14s-1.636.401-1.741.416a.255.255 0 0 0-.195.253v2.021c0 .164.12.282.255.282h1.665v4.876c0 3.627 2.55 3.998 4.29 3.998.796 0 1.756-.252 1.906-.327.09-.03.135-.134.135-.238v-2.23a.264.264 0 0 0-.219-.265Zm35.549-3.272c0-2.69-1.095-3.047-2.25-2.928-.9.06-1.62.505-1.62.505v5.232s.735.506 1.83.536c1.545.044 2.04-.506 2.04-3.345ZM67 14.415c0 5.099-1.665 6.555-4.576 6.555-2.46 0-3.78-1.233-3.78-1.233s-.06.683-.135.773c-.045.089-.12.118-.21.118h-2.22c-.15 0-.286-.119-.286-.252l.03-16.514a.26.26 0 0 1 .255-.252h3.196a.26.26 0 0 1 .255.252v5.604s1.23-.788 3.03-.788l-.015-.03c1.8 0 4.456.67 4.456 5.767ZM53.918 9.05h-3.15c-.165 0-.255.119-.255.282v8.086s-.826.58-1.95.58c-1.126 0-1.456-.506-1.456-1.62v-7.06a.262.262 0 0 0-.255-.254h-3.21a.262.262 0 0 0-.256.253v7.596c0 3.27 1.846 4.087 4.381 4.087 2.085 0 3.78-1.145 3.78-1.145s.076.58.12.67c.03.074.136.133.24.133h2.011a.243.243 0 0 0 .255-.253l.03-11.103c0-.133-.12-.252-.285-.252Zm-35.556-.015h-3.195c-.135 0-.255.134-.255.297v10.91c0 .297.195.401.45.401h2.88c.3 0 .375-.134.375-.401V9.287a.262.262 0 0 0-.255-.252ZM16.787 4.01c-1.155 0-2.07.907-2.07 2.051 0 1.145.915 2.051 2.07 2.051a2.04 2.04 0 0 0 2.04-2.05 2.04 2.04 0 0 0-2.04-2.052Zm24.74-.372H38.36a.262.262 0 0 0-.255.253v6.08H33.14v-6.08a.262.262 0 0 0-.255-.253h-3.196a.262.262 0 0 0-.255.253v16.514c0 .133.135.252.255.252h3.196a.262.262 0 0 0 .255-.253v-7.06h4.966l-.03 7.06c0 .134.12.253.255.253h3.195a.262.262 0 0 0 .255-.253V3.892a.262.262 0 0 0-.255-.253Zm-28.31 7.313v8.532c0 .06-.015.163-.09.193 0 0-1.875 1.323-4.966 1.323C4.426 21 0 19.84 0 12.2S3.87 2.986 7.651 3c3.27 0 4.59.728 4.8.862.06.075.09.134.09.208l-.63 2.646c0 .134-.134.297-.3.253-.54-.164-1.35-.49-3.255-.49-2.205 0-4.575.623-4.575 5.543s2.25 5.5 3.87 5.5c1.38 0 1.875-.164 1.875-.164V13.94H7.321c-.165 0-.285-.12-.285-.253v-2.735c0-.134.12-.252.285-.252h5.61c.166 0 .286.118.286.252Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 38 24" version="1.1" width="38" data-view-component="true" class="octicon octicon-logo-gist v-align-middle d-none d-md-inline-block"> <path d="M7.05 13.095v-1.5h5.28v8.535c-1.17.555-2.925.96-5.385.96C1.665 21.09 0 17.055 0 12.045S1.695 3 6.945 3c2.43 0 3.96.495 4.92.99v1.575c-1.83-.75-3-1.095-4.92-1.095-3.855 0-5.22 3.315-5.22 7.59s1.365 7.575 5.205 7.575c1.335 0 2.97-.105 3.795-.51v-6.03H7.05Zm16.47 1.035h.045c3.33.3 4.125 1.425 4.125 3.345 0 1.815-1.14 3.615-4.71 3.615-1.125 0-2.745-.285-3.495-.585v-1.41c.705.255 1.83.54 3.495.54 2.43 0 3.09-1.035 3.09-2.13 0-1.065-.33-1.815-2.655-2.01-3.39-.3-4.095-1.5-4.095-3.12 0-1.665 1.08-3.465 4.38-3.465 1.095 0 2.34.135 3.375.585v1.41c-.915-.3-1.83-.54-3.405-.54-2.325 0-2.82.855-2.82 2.01 0 1.035.42 1.56 2.67 1.755Zm12.87-4.995v1.275h-3.63v7.305c0 1.425.795 2.01 2.25 2.01.3 0 .63 0 .915-.045v1.335c-.255.045-.75.075-1.035.075-1.965 0-3.75-.9-3.75-3.195v-7.5H28.8v-.72l2.34-.66V5.85l1.62-.465v3.75h3.63ZM16.635 9.09v9.615c0 .81.285 1.05 1.005 1.05v1.335c-1.71 0-2.58-.705-2.58-2.58V9.09h1.575Zm.375-3.495c0 .66-.51 1.17-1.17 1.17a1.14 1.14 0 0 1-1.155-1.17c0-.66.48-1.17 1.155-1.17s1.17.51 1.17 1.17Z"></path> </svg> </a> </div> <div class="Header-item f4 mr-0" role="navigation" aria-label="Sign in or sign up"> <a class="Header-link no-underline mr-3" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="79932ec38de896990bfe788c126389957b5895a7a9abdcbeb8cf54985c991557" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173"> Sign in </a> <a class="Header-link d-inline-block no-underline border color-border-default rounded px-2 py-1" data-ga-click="Header, sign up" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="a45eafa6be6d1c6e193640813ef3c4358e6395c564b25b8d25b994f5366fc992" href="/join?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173&source=header-gist"> Sign up </a> </div> </div> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-ed562fde-6e9f-417c-ba60-f82dbcfd5980" aria-labelledby="tooltip-f238784e-5153-474d-90bb-ae87152084ae" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-f238784e-5153-474d-90bb-ae87152084ae" for="icon-button-ed562fde-6e9f-417c-ba60-f82dbcfd5980" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled data-project-hovercards-enabled > <div itemscope itemtype="http://schema.org/Code"> <main id="gist-pjax-container"> <div class="gist-detail-intro gist-banner pb-3"> <div class="text-center container-lg px-3"> <p class="lead"> Instantly share code, notes, and snippets. </p> </div> </div> <div class="gisthead pagehead pb-0 pt-3 mb-4"> <div class="px-0"> <div class="mb-3 d-flex px-3 px-md-3 px-lg-5"> <div class="flex-auto min-width-0 width-fit mr-3"> <div class="d-flex"> <div class="d-none d-md-block"> <a class="mr-2 flex-shrink-0" data-hovercard-type="user" data-hovercard-url="/users/bunkat/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/bunkat"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/665885?s=64&v=4" width="32" height="32" alt="@bunkat" /></a> </div> <div class="d-flex flex-column width-full"> <div class="d-flex flex-row width-full"> <h1 class="wb-break-word f3 text-normal mb-md-0 mb-1"> <span class="author"><a data-hovercard-type="user" data-hovercard-url="/users/bunkat/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/bunkat">bunkat</a></span><!-- --><span class="mx-1 color-fg-muted">/</span><!-- --><strong itemprop="name" class="css-truncate-target mr-1" style="max-width: 410px"><a href="/bunkat/1962173">index.html</a></strong> </h1> </div> <div class="note m-0"> Last active <relative-time tense="past" datetime="2024-09-29T02:37:35Z" data-view-component="true">September 29, 2024 02:37</relative-time> </div> </div> </div> </div> <ul class="d-md-flex pagehead-actions float-none mr-2"> </ul> <div class="d-inline-block d-md-none ml-auto"> <action-menu data-select-variant="none" data-view-component="true" class="flex-self-start ml-auto d-inline-block"> <focus-group direction="vertical" mnemonics retain> <button id="gist_options-button" popovertarget="gist_options-overlay" aria-controls="gist_options-list" aria-haspopup="true" aria-labelledby="tooltip-a5831988-6b95-4806-8f8e-c21a492f225c" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--small"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual"> <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path> </svg> </button><tool-tip id="tooltip-a5831988-6b95-4806-8f8e-c21a492f225c" for="gist_options-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Show Gist options</tool-tip> <anchored-position data-target="action-menu.overlay" id="gist_options-overlay" anchor="gist_options-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="gist_options-button" id="gist_options-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li rel="nofollow" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"DOWNLOAD_ZIP","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="43a6d2346742850d37ef35955ba2ea9d282982d353cc4b8bdaee1243ea7eea32" data-ga-click="Gist, download zip, location:gist overview" data-targets="action-list.items" data-item-id="download_from_gist_options" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-7cb95553-c9b2-4af0-8ed9-83ae692cb91e" href="/bunkat/1962173/archive/b7d7134dbc15912619cc21c7fdc2bb78864a8daa.zip" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-download"> <path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Download ZIP </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu> </div> <ul class="d-md-flex d-none pagehead-actions float-none"> <li> <a id="gist-star-button" href="/login?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist star button","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="f65bbee5a258c208b72424f49e8088f37b81bf0b097f864577c4d48c301a3dce" aria-label="You must be signed in to star a gist" data-view-component="true" class="btn-with-count Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-visual Button-leadingVisual"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> </span> <span class="Button-label">Star</span> <span class="Button-visual Button-trailingVisual"> <span class="d-flex" aria-hidden="true"><span title="20" data-view-component="true" class="Counter">20</span></span> <span class="sr-only">(<span title="20" data-view-component="true" class="Counter">20</span>)</span> </span> </span> </a><tool-tip id="tooltip-cdb5030d-1778-47d2-8692-295584be8902" for="gist-star-button" popover="manual" data-direction="n" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to star a gist</tool-tip> </li> <li> <a id="gist-fork-button" href="/login?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist fork button","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="36a8a7abd97fa276fe7e6a0babfd67c9da44960bb853bec5cdb38c539ede8f34" aria-label="You must be signed in to fork a gist" data-view-component="true" class="btn-with-count Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-visual Button-leadingVisual"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> </span> <span class="Button-label">Fork</span> <span class="Button-visual Button-trailingVisual"> <span class="d-flex" aria-hidden="true"><span title="30" data-view-component="true" class="Counter">30</span></span> <span class="sr-only">(<span title="30" data-view-component="true" class="Counter">30</span>)</span> </span> </span> </a><tool-tip id="tooltip-4084d8af-be59-4122-9376-cbdbc9e1ed41" for="gist-fork-button" popover="manual" data-direction="n" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to fork a gist</tool-tip> </li> </ul> </div> <ul class="d-flex d-md-none px-3 mb-2 pagehead-actions float-none" > <li> <div data-view-component="true" class="flex-items-center d-inline-flex"> <action-menu data-menu-input="gist-share-url-sized-down" data-select-variant="single" data-dynamic-label="" data-view-component="true" class="flex-shrink-0"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-button" popovertarget="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-overlay" aria-controls="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-list" aria-haspopup="true" type="button" data-view-component="true" class="rounded-right-0 border-right-0 Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Embed</span> </span> <span class="Button-visual Button-trailingAction"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down"> <path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path> </svg> </span> </button> <anchored-position data-target="action-menu.overlay" id="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-overlay" anchor="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-button" id="action-menu-39e37a4b-5e3e-4e85-92f6-3873c1695f19-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="<script src="https://gist.github.com/bunkat/1962173.js"></script>" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"EMBED","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="c771e29be79712079a66764bd51445ea37b689915645b9419bc964704ff14c28" id="item-dcdc1b11-2ee5-4d00-8c39-81b966d73e2a" type="button" role="menuitemradio" aria-checked="true" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Embed </span> <span data-view-component="true" class="ActionListItem-description">Embed this gist in your website.</span> </span></button> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="https://gist.github.com/bunkat/1962173" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"SHARE","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="cef4d8157a2f01758c55d27b18114f4df58773a63eae28b07a1fe78719113828" id="item-dd094bad-1b47-48fb-adc0-bc59b8173fa8" type="button" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Share </span> <span data-view-component="true" class="ActionListItem-description">Copy sharable link for this gist.</span> </span></button> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="https://gist.github.com/1962173.git" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"USE_HTTPS","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="5f4a1d0367902034173bd8c9ed61f8cb972cd179a4ae5dd4f7a996477915ceeb" id="item-114f417f-ed81-4414-8fe1-b5203932697c" type="button" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Clone via HTTPS </span> <span data-view-component="true" class="ActionListItem-description">Clone using the web URL.</span> </span></button> </li> <li role="presentation" aria-hidden="true" data-view-component="true" class="ActionList-sectionDivider"></li> <li target="_blank" rel="noopener noreferrer" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-02f53462-8901-4a8b-a0d8-b68f24c1ede9" href="https://docs.github.com/articles/which-remote-url-should-i-use" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-question"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.756 2.756 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6.24 6.24 0 0 0-.26.16.952.952 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661.103-.067.207-.132.313-.195l.007-.004c.1-.061.182-.11.258-.161a.969.969 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.612.612 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1.01 1.01 0 0 0-.34.398ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Learn more about clone URLs </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu> <primer-text-field class="FormControl width-full FormControl--fullWidth"> <label for="gist-share-url-sized-down" class="sr-only FormControl-label"> Clone this repository at &lt;script src=&quot;https://gist.github.com/bunkat/1962173.js&quot;&gt;&lt;/script&gt; </label> <div class="FormControl-input-wrap FormControl-input-wrap--small"> <input id="gist-share-url-sized-down" aria-label="Clone this repository at &lt;script src=&quot;https://gist.github.com/bunkat/1962173.js&quot;&gt;&lt;/script&gt;" value="<script src="https://gist.github.com/bunkat/1962173.js"></script>" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-9be602b3-aff6-45bf-891a-fb9f43078536" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-sized-down" /> </div> <div class="FormControl-inlineValidation" id="validation-9be602b3-aff6-45bf-891a-fb9f43078536" hidden="hidden"> <span class="FormControl-inlineValidation--visual" data-target="primer-text-field.validationSuccessIcon" hidden><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-check-circle-fill"> <path d="M6 0a6 6 0 1 1 0 12A6 6 0 0 1 6 0Zm-.705 8.737L9.63 4.403 8.392 3.166 5.295 6.263l-1.7-1.702L2.356 5.8l2.938 2.938Z"></path> </svg></span> <span class=" FormControl-inlineValidation--visual" data-target="primer-text-field.validationErrorIcon"><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg></span> <span></span> </div> </primer-text-field> <span data-view-component="true"> <clipboard-copy id="clipboard-button" aria-label="Copy" for="gist-share-url-sized-down" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"COPY_URL","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="b5caca591b355b2e869babe2143fe6f6c20b6e1f5834a452bb6b1a218f4c6ec3" type="button" data-view-component="true" class="rounded-left-0 Button--secondary Button--small Button"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg style="display: none;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check color-fg-success"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> <div aria-live="polite" aria-atomic="true" class="sr-only" data-clipboard-copy-feedback></div> </span> </div> </li> <li> <button href="https://desktop.github.com" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"OPEN_IN_DESKTOP","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="905dc32eefc9838ce986691b5f2b9379b2db3b070b5611c6af95d6b74a23ebdb" data-platforms="windows,mac" id="icon-button-fde698fe-4fed-4b4a-977b-b57d774d68a3" aria-labelledby="tooltip-30764144-7861-4c24-b04a-3f54d6bd9f70" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--small js-remove-unless-platform"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-desktop-download Button-visual"> <path d="m4.927 5.427 2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 5H8.75V.75a.75.75 0 1 0-1.5 0V5H5.104a.25.25 0 0 0-.177.427Z"></path><path d="M1.573 2.573a.25.25 0 0 0-.073.177v7.5a.25.25 0 0 0 .25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3a.75.75 0 1 1 0-1.5h3A1.75 1.75 0 0 1 16 2.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5A1.75 1.75 0 0 1 1.75 1h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.177.073ZM6.982 12a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5H6.982Z"></path> </svg> </button><tool-tip id="tooltip-30764144-7861-4c24-b04a-3f54d6bd9f70" for="icon-button-fde698fe-4fed-4b4a-977b-b57d774d68a3" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Save bunkat/1962173 to your computer and use it in GitHub Desktop.</tool-tip> </li> </ul> <div class="d-flex flex-md-row flex-column px-0 pr-md-3 px-lg-5"> <div class="flex-md-order-1 flex-order-2 flex-auto"> <nav class="UnderlineNav box-shadow-none px-3 px-lg-0" aria-label="Gist" data-pjax="#gist-pjax-container"> <div class="UnderlineNav-body"> <a class="js-selected-navigation-item selected UnderlineNav-item" data-pjax="true" data-hotkey="g c" aria-current="page" data-selected-links="gist_code /bunkat/1962173" href="/bunkat/1962173"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a> <a class="js-selected-navigation-item UnderlineNav-item" data-pjax="true" data-hotkey="g r" data-selected-links="gist_revisions /bunkat/1962173/revisions" href="/bunkat/1962173/revisions"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-commit UnderlineNav-octicon"> <path d="M11.93 8.5a4.002 4.002 0 0 1-7.86 0H.75a.75.75 0 0 1 0-1.5h3.32a4.002 4.002 0 0 1 7.86 0h3.32a.75.75 0 0 1 0 1.5Zm-1.43-.75a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"></path> </svg> Revisions <span title="9" data-view-component="true" class="Counter">9</span> </a> <a class="js-selected-navigation-item UnderlineNav-item" data-pjax="true" data-hotkey="g s" data-selected-links="gist_stars /bunkat/1962173/stargazers" href="/bunkat/1962173/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star UnderlineNav-octicon"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> Stars <span title="20" data-view-component="true" class="Counter">20</span> </a> <a class="js-selected-navigation-item UnderlineNav-item" data-pjax="true" data-hotkey="g f" data-selected-links="gist_forks /bunkat/1962173/forks" href="/bunkat/1962173/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-branch UnderlineNav-octicon"> <path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path> </svg> Forks <span title="30" data-view-component="true" class="Counter">30</span> </a> </div> </nav> </div> <div class="d-md-flex d-none flex-items-center flex-md-order-2 flex-order-1" data-multiple> <div data-view-component="true" class="flex-items-center d-inline-flex"> <action-menu data-menu-input="gist-share-url-original" data-select-variant="single" data-dynamic-label="" data-view-component="true" class="flex-shrink-0"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-button" popovertarget="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-overlay" aria-controls="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-list" aria-haspopup="true" type="button" data-view-component="true" class="rounded-right-0 border-right-0 Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Embed</span> </span> <span class="Button-visual Button-trailingAction"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down"> <path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path> </svg> </span> </button> <anchored-position data-target="action-menu.overlay" id="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-overlay" anchor="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-button" id="action-menu-fc95bf5a-7cf7-456d-8569-f2cc2b532486-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="<script src="https://gist.github.com/bunkat/1962173.js"></script>" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"EMBED","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="c771e29be79712079a66764bd51445ea37b689915645b9419bc964704ff14c28" id="item-5d42927a-53be-4732-8394-9a37fe07df29" type="button" role="menuitemradio" aria-checked="true" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Embed </span> <span data-view-component="true" class="ActionListItem-description">Embed this gist in your website.</span> </span></button> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="https://gist.github.com/bunkat/1962173" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"SHARE","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="cef4d8157a2f01758c55d27b18114f4df58773a63eae28b07a1fe78719113828" id="item-59aaf3ad-18d8-4dd4-b00c-733983a7ff60" type="button" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Share </span> <span data-view-component="true" class="ActionListItem-description">Copy sharable link for this gist.</span> </span></button> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <button value="https://gist.github.com/1962173.git" tabindex="-1" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"USE_HTTPS","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="5f4a1d0367902034173bd8c9ed61f8cb972cd179a4ae5dd4f7a996477915ceeb" id="item-20670d51-56b7-4696-bbc2-22d96cff7c79" type="button" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-descriptionWrap"> <span data-view-component="true" class="ActionListItem-label"> Clone via HTTPS </span> <span data-view-component="true" class="ActionListItem-description">Clone using the web URL.</span> </span></button> </li> <li role="presentation" aria-hidden="true" data-view-component="true" class="ActionList-sectionDivider"></li> <li target="_blank" rel="noopener noreferrer" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-a8ef1d71-cf42-4893-a884-f7dc9cf61bd9" href="https://docs.github.com/articles/which-remote-url-should-i-use" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-question"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.756 2.756 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6.24 6.24 0 0 0-.26.16.952.952 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661.103-.067.207-.132.313-.195l.007-.004c.1-.061.182-.11.258-.161a.969.969 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.612.612 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1.01 1.01 0 0 0-.34.398ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Learn more about clone URLs </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu> <primer-text-field class="FormControl width-full FormControl--fullWidth"> <label for="gist-share-url-original" class="sr-only FormControl-label"> Clone this repository at &lt;script src=&quot;https://gist.github.com/bunkat/1962173.js&quot;&gt;&lt;/script&gt; </label> <div class="FormControl-input-wrap FormControl-input-wrap--small"> <input id="gist-share-url-original" aria-label="Clone this repository at &lt;script src=&quot;https://gist.github.com/bunkat/1962173.js&quot;&gt;&lt;/script&gt;" value="<script src="https://gist.github.com/bunkat/1962173.js"></script>" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-890bc911-210f-48b7-a745-cb52137672e7" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-original" /> </div> <div class="FormControl-inlineValidation" id="validation-890bc911-210f-48b7-a745-cb52137672e7" hidden="hidden"> <span class="FormControl-inlineValidation--visual" data-target="primer-text-field.validationSuccessIcon" hidden><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-check-circle-fill"> <path d="M6 0a6 6 0 1 1 0 12A6 6 0 0 1 6 0Zm-.705 8.737L9.63 4.403 8.392 3.166 5.295 6.263l-1.7-1.702L2.356 5.8l2.938 2.938Z"></path> </svg></span> <span class=" FormControl-inlineValidation--visual" data-target="primer-text-field.validationErrorIcon"><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg></span> <span></span> </div> </primer-text-field> <span data-view-component="true"> <clipboard-copy id="clipboard-button" aria-label="Copy" for="gist-share-url-original" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"COPY_URL","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="b5caca591b355b2e869babe2143fe6f6c20b6e1f5834a452bb6b1a218f4c6ec3" type="button" data-view-component="true" class="rounded-left-0 Button--secondary Button--small Button"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg style="display: none;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check color-fg-success"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> <div aria-live="polite" aria-atomic="true" class="sr-only" data-clipboard-copy-feedback></div> </span> </div> <div class="ml-2"> <button href="https://desktop.github.com" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"OPEN_IN_DESKTOP","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="905dc32eefc9838ce986691b5f2b9379b2db3b070b5611c6af95d6b74a23ebdb" data-platforms="windows,mac" id="icon-button-0986a9a6-dc59-4885-94ab-db657072753e" aria-labelledby="tooltip-300e110e-954f-4072-87de-c8139f4a13d4" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--small js-remove-unless-platform"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-desktop-download Button-visual"> <path d="m4.927 5.427 2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 5H8.75V.75a.75.75 0 1 0-1.5 0V5H5.104a.25.25 0 0 0-.177.427Z"></path><path d="M1.573 2.573a.25.25 0 0 0-.073.177v7.5a.25.25 0 0 0 .25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3a.75.75 0 1 1 0-1.5h3A1.75 1.75 0 0 1 16 2.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5A1.75 1.75 0 0 1 1.75 1h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.177.073ZM6.982 12a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5H6.982Z"></path> </svg> </button><tool-tip id="tooltip-300e110e-954f-4072-87de-c8139f4a13d4" for="icon-button-0986a9a6-dc59-4885-94ab-db657072753e" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Save bunkat/1962173 to your computer and use it in GitHub Desktop.</tool-tip> </div> <div class="ml-2"> <a class="btn btn-sm" rel="nofollow" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"DOWNLOAD_ZIP","git_repository_type":"GIST","gist_id":1962173,"originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="43a6d2346742850d37ef35955ba2ea9d282982d353cc4b8bdaee1243ea7eea32" data-ga-click="Gist, download zip, location:gist overview" href="/bunkat/1962173/archive/b7d7134dbc15912619cc21c7fdc2bb78864a8daa.zip">Download ZIP</a> </div> </div> </div> </div> </div> <div class="container-lg px-3"> <div class="repository-content gist-content" > <div> <div itemprop="about"> Swimlane Chart using d3.js </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-index-html" class="file my-2"> <div class="file-header d-flex flex-md-items-center flex-items-start"> <div class="file-actions flex-order-2 pt-0"> <a href="/bunkat/1962173/raw/b7d7134dbc15912619cc21c7fdc2bb78864a8daa/index.html" data-view-component="true" class="Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Raw</span> </span> </a> </div> <div class="file-info pr-4 d-flex flex-md-items-center flex-items-start flex-order-1 flex-auto"> <span class="mr-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square color-fg-muted"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </span> <a class="wb-break-all" href="#file-index-html"> <strong class="user-select-contain gist-blob-name css-truncate-target"> index.html </strong> </a> </div> </div> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-html gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="index.html content, created by bunkat on 11:07PM on March 02, 2012." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="index.html"> <tr> <td id="file-index-html-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-index-html-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-c><!--</span></td> </tr> <tr> <td id="file-index-html-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-index-html-LC2" class="blob-code blob-code-inner js-file-line"><span class=pl-c>The MIT License (MIT)</span></td> </tr> <tr> <td id="file-index-html-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-index-html-LC3" class="blob-code blob-code-inner js-file-line"><span class=pl-c></span></td> </tr> <tr> <td id="file-index-html-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-index-html-LC4" class="blob-code blob-code-inner js-file-line"><span class=pl-c>Copyright (c) 2013 bill@bunkat.com</span></td> </tr> <tr> <td id="file-index-html-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-index-html-LC5" class="blob-code blob-code-inner js-file-line"><span class=pl-c></span></td> </tr> <tr> <td id="file-index-html-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-index-html-LC6" class="blob-code blob-code-inner js-file-line"><span class=pl-c>Permission is hereby granted, free of charge, to any person obtaining a copy</span></td> </tr> <tr> <td id="file-index-html-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-index-html-LC7" class="blob-code blob-code-inner js-file-line"><span class=pl-c>of this software and associated documentation files (the "Software"), to deal</span></td> </tr> <tr> <td id="file-index-html-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-index-html-LC8" class="blob-code blob-code-inner js-file-line"><span class=pl-c>in the Software without restriction, including without limitation the rights</span></td> </tr> <tr> <td id="file-index-html-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-index-html-LC9" class="blob-code blob-code-inner js-file-line"><span class=pl-c>to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></td> </tr> <tr> <td id="file-index-html-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-index-html-LC10" class="blob-code blob-code-inner js-file-line"><span class=pl-c>copies of the Software, and to permit persons to whom the Software is</span></td> </tr> <tr> <td id="file-index-html-L11" class="blob-num js-line-number js-blob-rnum" data-line-number="11"></td> <td id="file-index-html-LC11" class="blob-code blob-code-inner js-file-line"><span class=pl-c>furnished to do so, subject to the following conditions:</span></td> </tr> <tr> <td id="file-index-html-L12" class="blob-num js-line-number js-blob-rnum" data-line-number="12"></td> <td id="file-index-html-LC12" class="blob-code blob-code-inner js-file-line"><span class=pl-c></span></td> </tr> <tr> <td id="file-index-html-L13" class="blob-num js-line-number js-blob-rnum" data-line-number="13"></td> <td id="file-index-html-LC13" class="blob-code blob-code-inner js-file-line"><span class=pl-c>The above copyright notice and this permission notice shall be included in</span></td> </tr> <tr> <td id="file-index-html-L14" class="blob-num js-line-number js-blob-rnum" data-line-number="14"></td> <td id="file-index-html-LC14" class="blob-code blob-code-inner js-file-line"><span class=pl-c>all copies or substantial portions of the Software.</span></td> </tr> <tr> <td id="file-index-html-L15" class="blob-num js-line-number js-blob-rnum" data-line-number="15"></td> <td id="file-index-html-LC15" class="blob-code blob-code-inner js-file-line"><span class=pl-c></span></td> </tr> <tr> <td id="file-index-html-L16" class="blob-num js-line-number js-blob-rnum" data-line-number="16"></td> <td id="file-index-html-LC16" class="blob-code blob-code-inner js-file-line"><span class=pl-c>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></td> </tr> <tr> <td id="file-index-html-L17" class="blob-num js-line-number js-blob-rnum" data-line-number="17"></td> <td id="file-index-html-LC17" class="blob-code blob-code-inner js-file-line"><span class=pl-c>IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></td> </tr> <tr> <td id="file-index-html-L18" class="blob-num js-line-number js-blob-rnum" data-line-number="18"></td> <td id="file-index-html-LC18" class="blob-code blob-code-inner js-file-line"><span class=pl-c>FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></td> </tr> <tr> <td id="file-index-html-L19" class="blob-num js-line-number js-blob-rnum" data-line-number="19"></td> <td id="file-index-html-LC19" class="blob-code blob-code-inner js-file-line"><span class=pl-c>AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></td> </tr> <tr> <td id="file-index-html-L20" class="blob-num js-line-number js-blob-rnum" data-line-number="20"></td> <td id="file-index-html-LC20" class="blob-code blob-code-inner js-file-line"><span class=pl-c>LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></td> </tr> <tr> <td id="file-index-html-L21" class="blob-num js-line-number js-blob-rnum" data-line-number="21"></td> <td id="file-index-html-LC21" class="blob-code blob-code-inner js-file-line"><span class=pl-c>OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></td> </tr> <tr> <td id="file-index-html-L22" class="blob-num js-line-number js-blob-rnum" data-line-number="22"></td> <td id="file-index-html-LC22" class="blob-code blob-code-inner js-file-line"><span class=pl-c>THE SOFTWARE.</span></td> </tr> <tr> <td id="file-index-html-L23" class="blob-num js-line-number js-blob-rnum" data-line-number="23"></td> <td id="file-index-html-LC23" class="blob-code blob-code-inner js-file-line"><span class=pl-c>--></span></td> </tr> <tr> <td id="file-index-html-L24" class="blob-num js-line-number js-blob-rnum" data-line-number="24"></td> <td id="file-index-html-LC24" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L25" class="blob-num js-line-number js-blob-rnum" data-line-number="25"></td> <td id="file-index-html-LC25" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L26" class="blob-num js-line-number js-blob-rnum" data-line-number="26"></td> <td id="file-index-html-LC26" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>html</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L27" class="blob-num js-line-number js-blob-rnum" data-line-number="27"></td> <td id="file-index-html-LC27" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>head</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L28" class="blob-num js-line-number js-blob-rnum" data-line-number="28"></td> <td id="file-index-html-LC28" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>title</span><span class=pl-kos>></span>Swimlane using d3.js<span class=pl-kos></</span><span class=pl-ent>title</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L29" class="blob-num js-line-number js-blob-rnum" data-line-number="29"></td> <td id="file-index-html-LC29" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>script</span> <span class=pl-c1>type</span>="<span class=pl-s>text/javascript</span>" <span class=pl-c1>src</span>="<span class=pl-s>http://mbostock.github.com/d3/d3.v2.js</span>"<span class=pl-kos>></span><span class=pl-kos></</span><span class=pl-ent>script</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L30" class="blob-num js-line-number js-blob-rnum" data-line-number="30"></td> <td id="file-index-html-LC30" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>script</span> <span class=pl-c1>type</span>="<span class=pl-s>text/javascript</span>" <span class=pl-c1>src</span>="<span class=pl-s>randomData.js</span>"<span class=pl-kos>></span><span class=pl-kos></</span><span class=pl-ent>script</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L31" class="blob-num js-line-number js-blob-rnum" data-line-number="31"></td> <td id="file-index-html-LC31" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>style</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L32" class="blob-num js-line-number js-blob-rnum" data-line-number="32"></td> <td id="file-index-html-LC32" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>chart</span> {</td> </tr> <tr> <td id="file-index-html-L33" class="blob-num js-line-number js-blob-rnum" data-line-number="33"></td> <td id="file-index-html-LC33" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>shape-rendering</span><span class=pl-kos>:</span> crispEdges;</td> </tr> <tr> <td id="file-index-html-L34" class="blob-num js-line-number js-blob-rnum" data-line-number="34"></td> <td id="file-index-html-LC34" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L35" class="blob-num js-line-number js-blob-rnum" data-line-number="35"></td> <td id="file-index-html-LC35" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L36" class="blob-num js-line-number js-blob-rnum" data-line-number="36"></td> <td id="file-index-html-LC36" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>mini</span> <span class=pl-ent>text</span> {</td> </tr> <tr> <td id="file-index-html-L37" class="blob-num js-line-number js-blob-rnum" data-line-number="37"></td> <td id="file-index-html-LC37" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>font</span><span class=pl-kos>:</span> <span class=pl-c1>9<span class=pl-smi>px</span></span> sans-serif; </td> </tr> <tr> <td id="file-index-html-L38" class="blob-num js-line-number js-blob-rnum" data-line-number="38"></td> <td id="file-index-html-LC38" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L39" class="blob-num js-line-number js-blob-rnum" data-line-number="39"></td> <td id="file-index-html-LC39" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L40" class="blob-num js-line-number js-blob-rnum" data-line-number="40"></td> <td id="file-index-html-LC40" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>main</span> <span class=pl-ent>text</span> {</td> </tr> <tr> <td id="file-index-html-L41" class="blob-num js-line-number js-blob-rnum" data-line-number="41"></td> <td id="file-index-html-LC41" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>font</span><span class=pl-kos>:</span> <span class=pl-c1>12<span class=pl-smi>px</span></span> sans-serif; </td> </tr> <tr> <td id="file-index-html-L42" class="blob-num js-line-number js-blob-rnum" data-line-number="42"></td> <td id="file-index-html-LC42" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L43" class="blob-num js-line-number js-blob-rnum" data-line-number="43"></td> <td id="file-index-html-LC43" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L44" class="blob-num js-line-number js-blob-rnum" data-line-number="44"></td> <td id="file-index-html-LC44" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>month</span> <span class=pl-ent>text</span> {</td> </tr> <tr> <td id="file-index-html-L45" class="blob-num js-line-number js-blob-rnum" data-line-number="45"></td> <td id="file-index-html-LC45" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>text-anchor</span><span class=pl-kos>:</span> start;</td> </tr> <tr> <td id="file-index-html-L46" class="blob-num js-line-number js-blob-rnum" data-line-number="46"></td> <td id="file-index-html-LC46" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L47" class="blob-num js-line-number js-blob-rnum" data-line-number="47"></td> <td id="file-index-html-LC47" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L48" class="blob-num js-line-number js-blob-rnum" data-line-number="48"></td> <td id="file-index-html-LC48" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>todayLine</span> {</td> </tr> <tr> <td id="file-index-html-L49" class="blob-num js-line-number js-blob-rnum" data-line-number="49"></td> <td id="file-index-html-LC49" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke</span><span class=pl-kos>:</span> blue;</td> </tr> <tr> <td id="file-index-html-L50" class="blob-num js-line-number js-blob-rnum" data-line-number="50"></td> <td id="file-index-html-LC50" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke-width</span><span class=pl-kos>:</span> <span class=pl-c1>1.5</span>;</td> </tr> <tr> <td id="file-index-html-L51" class="blob-num js-line-number js-blob-rnum" data-line-number="51"></td> <td id="file-index-html-LC51" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L52" class="blob-num js-line-number js-blob-rnum" data-line-number="52"></td> <td id="file-index-html-LC52" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L53" class="blob-num js-line-number js-blob-rnum" data-line-number="53"></td> <td id="file-index-html-LC53" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>axis</span> <span class=pl-ent>line</span><span class=pl-kos>,</span> .<span class=pl-c1>axis</span> <span class=pl-ent>path</span> {</td> </tr> <tr> <td id="file-index-html-L54" class="blob-num js-line-number js-blob-rnum" data-line-number="54"></td> <td id="file-index-html-LC54" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke</span><span class=pl-kos>:</span> black;</td> </tr> <tr> <td id="file-index-html-L55" class="blob-num js-line-number js-blob-rnum" data-line-number="55"></td> <td id="file-index-html-LC55" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L56" class="blob-num js-line-number js-blob-rnum" data-line-number="56"></td> <td id="file-index-html-LC56" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L57" class="blob-num js-line-number js-blob-rnum" data-line-number="57"></td> <td id="file-index-html-LC57" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>miniItem</span> {</td> </tr> <tr> <td id="file-index-html-L58" class="blob-num js-line-number js-blob-rnum" data-line-number="58"></td> <td id="file-index-html-LC58" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke-width</span><span class=pl-kos>:</span> <span class=pl-c1>6</span>; </td> </tr> <tr> <td id="file-index-html-L59" class="blob-num js-line-number js-blob-rnum" data-line-number="59"></td> <td id="file-index-html-LC59" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L60" class="blob-num js-line-number js-blob-rnum" data-line-number="60"></td> <td id="file-index-html-LC60" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L61" class="blob-num js-line-number js-blob-rnum" data-line-number="61"></td> <td id="file-index-html-LC61" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>future</span> {</td> </tr> <tr> <td id="file-index-html-L62" class="blob-num js-line-number js-blob-rnum" data-line-number="62"></td> <td id="file-index-html-LC62" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke</span><span class=pl-kos>:</span> gray;</td> </tr> <tr> <td id="file-index-html-L63" class="blob-num js-line-number js-blob-rnum" data-line-number="63"></td> <td id="file-index-html-LC63" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>fill</span><span class=pl-kos>:</span> <span class=pl-pds><span class=pl-kos>#</span>ddd</span>;</td> </tr> <tr> <td id="file-index-html-L64" class="blob-num js-line-number js-blob-rnum" data-line-number="64"></td> <td id="file-index-html-LC64" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L65" class="blob-num js-line-number js-blob-rnum" data-line-number="65"></td> <td id="file-index-html-LC65" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L66" class="blob-num js-line-number js-blob-rnum" data-line-number="66"></td> <td id="file-index-html-LC66" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>past</span> {</td> </tr> <tr> <td id="file-index-html-L67" class="blob-num js-line-number js-blob-rnum" data-line-number="67"></td> <td id="file-index-html-LC67" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke</span><span class=pl-kos>:</span> green;</td> </tr> <tr> <td id="file-index-html-L68" class="blob-num js-line-number js-blob-rnum" data-line-number="68"></td> <td id="file-index-html-LC68" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>fill</span><span class=pl-kos>:</span> lightgreen;</td> </tr> <tr> <td id="file-index-html-L69" class="blob-num js-line-number js-blob-rnum" data-line-number="69"></td> <td id="file-index-html-LC69" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L70" class="blob-num js-line-number js-blob-rnum" data-line-number="70"></td> <td id="file-index-html-LC70" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L71" class="blob-num js-line-number js-blob-rnum" data-line-number="71"></td> <td id="file-index-html-LC71" class="blob-code blob-code-inner js-file-line">.<span class=pl-c1>brush</span> .<span class=pl-c1>extent</span> {</td> </tr> <tr> <td id="file-index-html-L72" class="blob-num js-line-number js-blob-rnum" data-line-number="72"></td> <td id="file-index-html-LC72" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>stroke</span><span class=pl-kos>:</span> gray;</td> </tr> <tr> <td id="file-index-html-L73" class="blob-num js-line-number js-blob-rnum" data-line-number="73"></td> <td id="file-index-html-LC73" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>fill</span><span class=pl-kos>:</span> blue;</td> </tr> <tr> <td id="file-index-html-L74" class="blob-num js-line-number js-blob-rnum" data-line-number="74"></td> <td id="file-index-html-LC74" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>fill-opacity</span><span class=pl-kos>:</span> <span class=pl-c1>.165</span>;</td> </tr> <tr> <td id="file-index-html-L75" class="blob-num js-line-number js-blob-rnum" data-line-number="75"></td> <td id="file-index-html-LC75" class="blob-code blob-code-inner js-file-line">}</td> </tr> <tr> <td id="file-index-html-L76" class="blob-num js-line-number js-blob-rnum" data-line-number="76"></td> <td id="file-index-html-LC76" class="blob-code blob-code-inner js-file-line"><span class=pl-kos></</span><span class=pl-ent>style</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L77" class="blob-num js-line-number js-blob-rnum" data-line-number="77"></td> <td id="file-index-html-LC77" class="blob-code blob-code-inner js-file-line"><span class=pl-kos></</span><span class=pl-ent>head</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L78" class="blob-num js-line-number js-blob-rnum" data-line-number="78"></td> <td id="file-index-html-LC78" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>body</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L79" class="blob-num js-line-number js-blob-rnum" data-line-number="79"></td> <td id="file-index-html-LC79" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L80" class="blob-num js-line-number js-blob-rnum" data-line-number="80"></td> <td id="file-index-html-LC80" class="blob-code blob-code-inner js-file-line"><span class=pl-kos><</span><span class=pl-ent>script</span> <span class=pl-c1>type</span>="<span class=pl-s>text/javascript</span>"<span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L81" class="blob-num js-line-number js-blob-rnum" data-line-number="81"></td> <td id="file-index-html-LC81" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L82" class="blob-num js-line-number js-blob-rnum" data-line-number="82"></td> <td id="file-index-html-LC82" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>data</span> <span class=pl-c1>=</span> <span class=pl-en>randomData</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L83" class="blob-num js-line-number js-blob-rnum" data-line-number="83"></td> <td id="file-index-html-LC83" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>lanes</span> <span class=pl-c1>=</span> <span class=pl-s1>data</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span></td> </tr> <tr> <td id="file-index-html-L84" class="blob-num js-line-number js-blob-rnum" data-line-number="84"></td> <td id="file-index-html-LC84" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>items</span> <span class=pl-c1>=</span> <span class=pl-s1>data</span><span class=pl-kos>.</span><span class=pl-c1>items</span></td> </tr> <tr> <td id="file-index-html-L85" class="blob-num js-line-number js-blob-rnum" data-line-number="85"></td> <td id="file-index-html-LC85" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>now</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L86" class="blob-num js-line-number js-blob-rnum" data-line-number="86"></td> <td id="file-index-html-LC86" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L87" class="blob-num js-line-number js-blob-rnum" data-line-number="87"></td> <td id="file-index-html-LC87" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>margin</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span><span class=pl-c1>top</span>: <span class=pl-c1>20</span><span class=pl-kos>,</span> <span class=pl-c1>right</span>: <span class=pl-c1>15</span><span class=pl-kos>,</span> <span class=pl-c1>bottom</span>: <span class=pl-c1>15</span><span class=pl-kos>,</span> <span class=pl-c1>left</span>: <span class=pl-c1>60</span><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L88" class="blob-num js-line-number js-blob-rnum" data-line-number="88"></td> <td id="file-index-html-LC88" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>width</span> <span class=pl-c1>=</span> <span class=pl-c1>960</span> <span class=pl-c1>-</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>-</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>right</span></td> </tr> <tr> <td id="file-index-html-L89" class="blob-num js-line-number js-blob-rnum" data-line-number="89"></td> <td id="file-index-html-LC89" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>height</span> <span class=pl-c1>=</span> <span class=pl-c1>500</span> <span class=pl-c1>-</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>-</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>bottom</span></td> </tr> <tr> <td id="file-index-html-L90" class="blob-num js-line-number js-blob-rnum" data-line-number="90"></td> <td id="file-index-html-LC90" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span> <span class=pl-c1>=</span> <span class=pl-s1>lanes</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>*</span> <span class=pl-c1>12</span> <span class=pl-c1>+</span> <span class=pl-c1>50</span></td> </tr> <tr> <td id="file-index-html-L91" class="blob-num js-line-number js-blob-rnum" data-line-number="91"></td> <td id="file-index-html-LC91" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>mainHeight</span> <span class=pl-c1>=</span> <span class=pl-s1>height</span> <span class=pl-c1>-</span> <span class=pl-s1>miniHeight</span> <span class=pl-c1>-</span> <span class=pl-c1>50</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L92" class="blob-num js-line-number js-blob-rnum" data-line-number="92"></td> <td id="file-index-html-LC92" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L93" class="blob-num js-line-number js-blob-rnum" data-line-number="93"></td> <td id="file-index-html-LC93" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>x</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L94" class="blob-num js-line-number js-blob-rnum" data-line-number="94"></td> <td id="file-index-html-LC94" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>sunday</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>min</span><span class=pl-kos>(</span><span class=pl-s1>items</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-index-html-L95" class="blob-num js-line-number js-blob-rnum" data-line-number="95"></td> <td id="file-index-html-LC95" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>max</span><span class=pl-kos>(</span><span class=pl-s1>items</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>end</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L96" class="blob-num js-line-number js-blob-rnum" data-line-number="96"></td> <td id="file-index-html-LC96" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>range</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L97" class="blob-num js-line-number js-blob-rnum" data-line-number="97"></td> <td id="file-index-html-LC97" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>x1</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>range</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L98" class="blob-num js-line-number js-blob-rnum" data-line-number="98"></td> <td id="file-index-html-LC98" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L99" class="blob-num js-line-number js-blob-rnum" data-line-number="99"></td> <td id="file-index-html-LC99" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>ext</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-s1>lanes</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L100" class="blob-num js-line-number js-blob-rnum" data-line-number="100"></td> <td id="file-index-html-LC100" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>y1</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>scale</span><span class=pl-kos>.</span><span class=pl-en>linear</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>ext</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>,</span> <span class=pl-s1>ext</span><span class=pl-kos>[</span><span class=pl-c1>1</span><span class=pl-kos>]</span> <span class=pl-c1>+</span> <span class=pl-c1>1</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>range</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-s1>mainHeight</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L101" class="blob-num js-line-number js-blob-rnum" data-line-number="101"></td> <td id="file-index-html-LC101" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>y2</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>scale</span><span class=pl-kos>.</span><span class=pl-en>linear</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>ext</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>,</span> <span class=pl-s1>ext</span><span class=pl-kos>[</span><span class=pl-c1>1</span><span class=pl-kos>]</span> <span class=pl-c1>+</span> <span class=pl-c1>1</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>range</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L102" class="blob-num js-line-number js-blob-rnum" data-line-number="102"></td> <td id="file-index-html-LC102" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L103" class="blob-num js-line-number js-blob-rnum" data-line-number="103"></td> <td id="file-index-html-LC103" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>chart</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>select</span><span class=pl-kos>(</span><span class=pl-s>'body'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L104" class="blob-num js-line-number js-blob-rnum" data-line-number="104"></td> <td id="file-index-html-LC104" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'svg:svg'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L105" class="blob-num js-line-number js-blob-rnum" data-line-number="105"></td> <td id="file-index-html-LC105" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>right</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>left</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L106" class="blob-num js-line-number js-blob-rnum" data-line-number="106"></td> <td id="file-index-html-LC106" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>height</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>bottom</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L107" class="blob-num js-line-number js-blob-rnum" data-line-number="107"></td> <td id="file-index-html-LC107" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'chart'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L108" class="blob-num js-line-number js-blob-rnum" data-line-number="108"></td> <td id="file-index-html-LC108" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L109" class="blob-num js-line-number js-blob-rnum" data-line-number="109"></td> <td id="file-index-html-LC109" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'defs'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'clipPath'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L110" class="blob-num js-line-number js-blob-rnum" data-line-number="110"></td> <td id="file-index-html-LC110" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'id'</span><span class=pl-kos>,</span> <span class=pl-s>'clip'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L111" class="blob-num js-line-number js-blob-rnum" data-line-number="111"></td> <td id="file-index-html-LC111" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'rect'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L112" class="blob-num js-line-number js-blob-rnum" data-line-number="112"></td> <td id="file-index-html-LC112" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L113" class="blob-num js-line-number js-blob-rnum" data-line-number="113"></td> <td id="file-index-html-LC113" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>mainHeight</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L114" class="blob-num js-line-number js-blob-rnum" data-line-number="114"></td> <td id="file-index-html-LC114" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L115" class="blob-num js-line-number js-blob-rnum" data-line-number="115"></td> <td id="file-index-html-LC115" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>main</span> <span class=pl-c1>=</span> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L116" class="blob-num js-line-number js-blob-rnum" data-line-number="116"></td> <td id="file-index-html-LC116" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate('</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>+</span> <span class=pl-s>','</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>+</span> <span class=pl-s>')'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L117" class="blob-num js-line-number js-blob-rnum" data-line-number="117"></td> <td id="file-index-html-LC117" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L118" class="blob-num js-line-number js-blob-rnum" data-line-number="118"></td> <td id="file-index-html-LC118" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>mainHeight</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L119" class="blob-num js-line-number js-blob-rnum" data-line-number="119"></td> <td id="file-index-html-LC119" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'main'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L120" class="blob-num js-line-number js-blob-rnum" data-line-number="120"></td> <td id="file-index-html-LC120" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L121" class="blob-num js-line-number js-blob-rnum" data-line-number="121"></td> <td id="file-index-html-LC121" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>mini</span> <span class=pl-c1>=</span> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L122" class="blob-num js-line-number js-blob-rnum" data-line-number="122"></td> <td id="file-index-html-LC122" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate('</span> <span class=pl-c1>+</span> <span class=pl-s1>margin</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>+</span> <span class=pl-s>','</span> <span class=pl-c1>+</span> <span class=pl-kos>(</span><span class=pl-s1>mainHeight</span> <span class=pl-c1>+</span> <span class=pl-c1>60</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s>')'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L123" class="blob-num js-line-number js-blob-rnum" data-line-number="123"></td> <td id="file-index-html-LC123" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L124" class="blob-num js-line-number js-blob-rnum" data-line-number="124"></td> <td id="file-index-html-LC124" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L125" class="blob-num js-line-number js-blob-rnum" data-line-number="125"></td> <td id="file-index-html-LC125" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'mini'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L126" class="blob-num js-line-number js-blob-rnum" data-line-number="126"></td> <td id="file-index-html-LC126" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L127" class="blob-num js-line-number js-blob-rnum" data-line-number="127"></td> <td id="file-index-html-LC127" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw the lanes for the main chart</span></td> </tr> <tr> <td id="file-index-html-L128" class="blob-num js-line-number js-blob-rnum" data-line-number="128"></td> <td id="file-index-html-LC128" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'.laneLines'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L129" class="blob-num js-line-number js-blob-rnum" data-line-number="129"></td> <td id="file-index-html-LC129" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>lanes</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L130" class="blob-num js-line-number js-blob-rnum" data-line-number="130"></td> <td id="file-index-html-LC130" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'line'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L131" class="blob-num js-line-number js-blob-rnum" data-line-number="131"></td> <td id="file-index-html-LC131" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x1'</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L132" class="blob-num js-line-number js-blob-rnum" data-line-number="132"></td> <td id="file-index-html-LC132" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y1'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>round</span><span class=pl-kos>(</span><span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L133" class="blob-num js-line-number js-blob-rnum" data-line-number="133"></td> <td id="file-index-html-LC133" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x2'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L134" class="blob-num js-line-number js-blob-rnum" data-line-number="134"></td> <td id="file-index-html-LC134" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y2'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>round</span><span class=pl-kos>(</span><span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L135" class="blob-num js-line-number js-blob-rnum" data-line-number="135"></td> <td id="file-index-html-LC135" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'stroke'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>label</span> <span class=pl-c1>===</span> <span class=pl-s>''</span> ? <span class=pl-s>'white'</span> : <span class=pl-s>'lightgray'</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L136" class="blob-num js-line-number js-blob-rnum" data-line-number="136"></td> <td id="file-index-html-LC136" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L137" class="blob-num js-line-number js-blob-rnum" data-line-number="137"></td> <td id="file-index-html-LC137" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'.laneText'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L138" class="blob-num js-line-number js-blob-rnum" data-line-number="138"></td> <td id="file-index-html-LC138" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>lanes</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L139" class="blob-num js-line-number js-blob-rnum" data-line-number="139"></td> <td id="file-index-html-LC139" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L140" class="blob-num js-line-number js-blob-rnum" data-line-number="140"></td> <td id="file-index-html-LC140" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>text</span><span class=pl-kos>(</span><span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>label</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L141" class="blob-num js-line-number js-blob-rnum" data-line-number="141"></td> <td id="file-index-html-LC141" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-c1>-</span><span class=pl-c1>10</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L142" class="blob-num js-line-number js-blob-rnum" data-line-number="142"></td> <td id="file-index-html-LC142" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>+</span> <span class=pl-c1>.5</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L143" class="blob-num js-line-number js-blob-rnum" data-line-number="143"></td> <td id="file-index-html-LC143" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dy'</span><span class=pl-kos>,</span> <span class=pl-s>'0.5ex'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L144" class="blob-num js-line-number js-blob-rnum" data-line-number="144"></td> <td id="file-index-html-LC144" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'text-anchor'</span><span class=pl-kos>,</span> <span class=pl-s>'end'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L145" class="blob-num js-line-number js-blob-rnum" data-line-number="145"></td> <td id="file-index-html-LC145" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'laneText'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L146" class="blob-num js-line-number js-blob-rnum" data-line-number="146"></td> <td id="file-index-html-LC146" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L147" class="blob-num js-line-number js-blob-rnum" data-line-number="147"></td> <td id="file-index-html-LC147" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw the lanes for the mini chart</span></td> </tr> <tr> <td id="file-index-html-L148" class="blob-num js-line-number js-blob-rnum" data-line-number="148"></td> <td id="file-index-html-LC148" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'.laneLines'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L149" class="blob-num js-line-number js-blob-rnum" data-line-number="149"></td> <td id="file-index-html-LC149" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>lanes</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L150" class="blob-num js-line-number js-blob-rnum" data-line-number="150"></td> <td id="file-index-html-LC150" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'line'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L151" class="blob-num js-line-number js-blob-rnum" data-line-number="151"></td> <td id="file-index-html-LC151" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x1'</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L152" class="blob-num js-line-number js-blob-rnum" data-line-number="152"></td> <td id="file-index-html-LC152" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y1'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>round</span><span class=pl-kos>(</span><span class=pl-s1>y2</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L153" class="blob-num js-line-number js-blob-rnum" data-line-number="153"></td> <td id="file-index-html-LC153" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x2'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L154" class="blob-num js-line-number js-blob-rnum" data-line-number="154"></td> <td id="file-index-html-LC154" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y2'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>round</span><span class=pl-kos>(</span><span class=pl-s1>y2</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L155" class="blob-num js-line-number js-blob-rnum" data-line-number="155"></td> <td id="file-index-html-LC155" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'stroke'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>label</span> <span class=pl-c1>===</span> <span class=pl-s>''</span> ? <span class=pl-s>'white'</span> : <span class=pl-s>'lightgray'</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L156" class="blob-num js-line-number js-blob-rnum" data-line-number="156"></td> <td id="file-index-html-LC156" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L157" class="blob-num js-line-number js-blob-rnum" data-line-number="157"></td> <td id="file-index-html-LC157" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'.laneText'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L158" class="blob-num js-line-number js-blob-rnum" data-line-number="158"></td> <td id="file-index-html-LC158" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>lanes</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L159" class="blob-num js-line-number js-blob-rnum" data-line-number="159"></td> <td id="file-index-html-LC159" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L160" class="blob-num js-line-number js-blob-rnum" data-line-number="160"></td> <td id="file-index-html-LC160" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>text</span><span class=pl-kos>(</span><span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>label</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L161" class="blob-num js-line-number js-blob-rnum" data-line-number="161"></td> <td id="file-index-html-LC161" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-c1>-</span><span class=pl-c1>10</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L162" class="blob-num js-line-number js-blob-rnum" data-line-number="162"></td> <td id="file-index-html-LC162" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>y2</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>+</span> <span class=pl-c1>.5</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L163" class="blob-num js-line-number js-blob-rnum" data-line-number="163"></td> <td id="file-index-html-LC163" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dy'</span><span class=pl-kos>,</span> <span class=pl-s>'0.5ex'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L164" class="blob-num js-line-number js-blob-rnum" data-line-number="164"></td> <td id="file-index-html-LC164" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'text-anchor'</span><span class=pl-kos>,</span> <span class=pl-s>'end'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L165" class="blob-num js-line-number js-blob-rnum" data-line-number="165"></td> <td id="file-index-html-LC165" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'laneText'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L166" class="blob-num js-line-number js-blob-rnum" data-line-number="166"></td> <td id="file-index-html-LC166" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L167" class="blob-num js-line-number js-blob-rnum" data-line-number="167"></td> <td id="file-index-html-LC167" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw the x axis</span></td> </tr> <tr> <td id="file-index-html-L168" class="blob-num js-line-number js-blob-rnum" data-line-number="168"></td> <td id="file-index-html-LC168" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>xDateAxis</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>svg</span><span class=pl-kos>.</span><span class=pl-en>axis</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L169" class="blob-num js-line-number js-blob-rnum" data-line-number="169"></td> <td id="file-index-html-LC169" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-s1>x</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L170" class="blob-num js-line-number js-blob-rnum" data-line-number="170"></td> <td id="file-index-html-LC170" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>orient</span><span class=pl-kos>(</span><span class=pl-s>'bottom'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L171" class="blob-num js-line-number js-blob-rnum" data-line-number="171"></td> <td id="file-index-html-LC171" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>mondays</span><span class=pl-kos>,</span> <span class=pl-kos>(</span><span class=pl-s1>x</span><span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>1</span><span class=pl-kos>]</span> <span class=pl-c1>-</span> <span class=pl-s1>x</span><span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>)</span> <span class=pl-c1>></span> <span class=pl-c1>15552e6</span> ? <span class=pl-c1>2</span> : <span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L172" class="blob-num js-line-number js-blob-rnum" data-line-number="172"></td> <td id="file-index-html-LC172" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%d'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L173" class="blob-num js-line-number js-blob-rnum" data-line-number="173"></td> <td id="file-index-html-LC173" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickSize</span><span class=pl-kos>(</span><span class=pl-c1>6</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L174" class="blob-num js-line-number js-blob-rnum" data-line-number="174"></td> <td id="file-index-html-LC174" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L175" class="blob-num js-line-number js-blob-rnum" data-line-number="175"></td> <td id="file-index-html-LC175" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>x1DateAxis</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>svg</span><span class=pl-kos>.</span><span class=pl-en>axis</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L176" class="blob-num js-line-number js-blob-rnum" data-line-number="176"></td> <td id="file-index-html-LC176" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-s1>x1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L177" class="blob-num js-line-number js-blob-rnum" data-line-number="177"></td> <td id="file-index-html-LC177" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>orient</span><span class=pl-kos>(</span><span class=pl-s>'bottom'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L178" class="blob-num js-line-number js-blob-rnum" data-line-number="178"></td> <td id="file-index-html-LC178" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>days</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L179" class="blob-num js-line-number js-blob-rnum" data-line-number="179"></td> <td id="file-index-html-LC179" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%a %d'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L180" class="blob-num js-line-number js-blob-rnum" data-line-number="180"></td> <td id="file-index-html-LC180" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickSize</span><span class=pl-kos>(</span><span class=pl-c1>6</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L181" class="blob-num js-line-number js-blob-rnum" data-line-number="181"></td> <td id="file-index-html-LC181" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L182" class="blob-num js-line-number js-blob-rnum" data-line-number="182"></td> <td id="file-index-html-LC182" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>xMonthAxis</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>svg</span><span class=pl-kos>.</span><span class=pl-en>axis</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L183" class="blob-num js-line-number js-blob-rnum" data-line-number="183"></td> <td id="file-index-html-LC183" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-s1>x</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L184" class="blob-num js-line-number js-blob-rnum" data-line-number="184"></td> <td id="file-index-html-LC184" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>orient</span><span class=pl-kos>(</span><span class=pl-s>'top'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L185" class="blob-num js-line-number js-blob-rnum" data-line-number="185"></td> <td id="file-index-html-LC185" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>months</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L186" class="blob-num js-line-number js-blob-rnum" data-line-number="186"></td> <td id="file-index-html-LC186" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%b %Y'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L187" class="blob-num js-line-number js-blob-rnum" data-line-number="187"></td> <td id="file-index-html-LC187" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickSize</span><span class=pl-kos>(</span><span class=pl-c1>15</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L188" class="blob-num js-line-number js-blob-rnum" data-line-number="188"></td> <td id="file-index-html-LC188" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L189" class="blob-num js-line-number js-blob-rnum" data-line-number="189"></td> <td id="file-index-html-LC189" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>x1MonthAxis</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>svg</span><span class=pl-kos>.</span><span class=pl-en>axis</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L190" class="blob-num js-line-number js-blob-rnum" data-line-number="190"></td> <td id="file-index-html-LC190" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>scale</span><span class=pl-kos>(</span><span class=pl-s1>x1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L191" class="blob-num js-line-number js-blob-rnum" data-line-number="191"></td> <td id="file-index-html-LC191" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>orient</span><span class=pl-kos>(</span><span class=pl-s>'top'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L192" class="blob-num js-line-number js-blob-rnum" data-line-number="192"></td> <td id="file-index-html-LC192" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>mondays</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L193" class="blob-num js-line-number js-blob-rnum" data-line-number="193"></td> <td id="file-index-html-LC193" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%b - Week %W'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L194" class="blob-num js-line-number js-blob-rnum" data-line-number="194"></td> <td id="file-index-html-LC194" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>tickSize</span><span class=pl-kos>(</span><span class=pl-c1>15</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L195" class="blob-num js-line-number js-blob-rnum" data-line-number="195"></td> <td id="file-index-html-LC195" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L196" class="blob-num js-line-number js-blob-rnum" data-line-number="196"></td> <td id="file-index-html-LC196" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L197" class="blob-num js-line-number js-blob-rnum" data-line-number="197"></td> <td id="file-index-html-LC197" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate(0,'</span> <span class=pl-c1>+</span> <span class=pl-s1>mainHeight</span> <span class=pl-c1>+</span> <span class=pl-s>')'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L198" class="blob-num js-line-number js-blob-rnum" data-line-number="198"></td> <td id="file-index-html-LC198" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'main axis date'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L199" class="blob-num js-line-number js-blob-rnum" data-line-number="199"></td> <td id="file-index-html-LC199" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>x1DateAxis</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L200" class="blob-num js-line-number js-blob-rnum" data-line-number="200"></td> <td id="file-index-html-LC200" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L201" class="blob-num js-line-number js-blob-rnum" data-line-number="201"></td> <td id="file-index-html-LC201" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L202" class="blob-num js-line-number js-blob-rnum" data-line-number="202"></td> <td id="file-index-html-LC202" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate(0,0.5)'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L203" class="blob-num js-line-number js-blob-rnum" data-line-number="203"></td> <td id="file-index-html-LC203" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'main axis month'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L204" class="blob-num js-line-number js-blob-rnum" data-line-number="204"></td> <td id="file-index-html-LC204" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>x1MonthAxis</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L205" class="blob-num js-line-number js-blob-rnum" data-line-number="205"></td> <td id="file-index-html-LC205" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L206" class="blob-num js-line-number js-blob-rnum" data-line-number="206"></td> <td id="file-index-html-LC206" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dx'</span><span class=pl-kos>,</span> <span class=pl-c1>5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L207" class="blob-num js-line-number js-blob-rnum" data-line-number="207"></td> <td id="file-index-html-LC207" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dy'</span><span class=pl-kos>,</span> <span class=pl-c1>12</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L208" class="blob-num js-line-number js-blob-rnum" data-line-number="208"></td> <td id="file-index-html-LC208" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L209" class="blob-num js-line-number js-blob-rnum" data-line-number="209"></td> <td id="file-index-html-LC209" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L210" class="blob-num js-line-number js-blob-rnum" data-line-number="210"></td> <td id="file-index-html-LC210" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate(0,'</span> <span class=pl-c1>+</span> <span class=pl-s1>miniHeight</span> <span class=pl-c1>+</span> <span class=pl-s>')'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L211" class="blob-num js-line-number js-blob-rnum" data-line-number="211"></td> <td id="file-index-html-LC211" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'axis date'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L212" class="blob-num js-line-number js-blob-rnum" data-line-number="212"></td> <td id="file-index-html-LC212" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>xDateAxis</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L213" class="blob-num js-line-number js-blob-rnum" data-line-number="213"></td> <td id="file-index-html-LC213" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L214" class="blob-num js-line-number js-blob-rnum" data-line-number="214"></td> <td id="file-index-html-LC214" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L215" class="blob-num js-line-number js-blob-rnum" data-line-number="215"></td> <td id="file-index-html-LC215" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'transform'</span><span class=pl-kos>,</span> <span class=pl-s>'translate(0,0.5)'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L216" class="blob-num js-line-number js-blob-rnum" data-line-number="216"></td> <td id="file-index-html-LC216" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'axis month'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L217" class="blob-num js-line-number js-blob-rnum" data-line-number="217"></td> <td id="file-index-html-LC217" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>xMonthAxis</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L218" class="blob-num js-line-number js-blob-rnum" data-line-number="218"></td> <td id="file-index-html-LC218" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L219" class="blob-num js-line-number js-blob-rnum" data-line-number="219"></td> <td id="file-index-html-LC219" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dx'</span><span class=pl-kos>,</span> <span class=pl-c1>5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L220" class="blob-num js-line-number js-blob-rnum" data-line-number="220"></td> <td id="file-index-html-LC220" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dy'</span><span class=pl-kos>,</span> <span class=pl-c1>12</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L221" class="blob-num js-line-number js-blob-rnum" data-line-number="221"></td> <td id="file-index-html-LC221" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L222" class="blob-num js-line-number js-blob-rnum" data-line-number="222"></td> <td id="file-index-html-LC222" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw a line representing today's date</span></td> </tr> <tr> <td id="file-index-html-L223" class="blob-num js-line-number js-blob-rnum" data-line-number="223"></td> <td id="file-index-html-LC223" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'line'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L224" class="blob-num js-line-number js-blob-rnum" data-line-number="224"></td> <td id="file-index-html-LC224" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y1'</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L225" class="blob-num js-line-number js-blob-rnum" data-line-number="225"></td> <td id="file-index-html-LC225" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y2'</span><span class=pl-kos>,</span> <span class=pl-s1>mainHeight</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L226" class="blob-num js-line-number js-blob-rnum" data-line-number="226"></td> <td id="file-index-html-LC226" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'main todayLine'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L227" class="blob-num js-line-number js-blob-rnum" data-line-number="227"></td> <td id="file-index-html-LC227" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'clip-path'</span><span class=pl-kos>,</span> <span class=pl-s>'url(#clip)'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L228" class="blob-num js-line-number js-blob-rnum" data-line-number="228"></td> <td id="file-index-html-LC228" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L229" class="blob-num js-line-number js-blob-rnum" data-line-number="229"></td> <td id="file-index-html-LC229" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'line'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L230" class="blob-num js-line-number js-blob-rnum" data-line-number="230"></td> <td id="file-index-html-LC230" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x1'</span><span class=pl-kos>,</span> <span class=pl-s1>x</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L231" class="blob-num js-line-number js-blob-rnum" data-line-number="231"></td> <td id="file-index-html-LC231" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y1'</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L232" class="blob-num js-line-number js-blob-rnum" data-line-number="232"></td> <td id="file-index-html-LC232" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x2'</span><span class=pl-kos>,</span> <span class=pl-s1>x</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L233" class="blob-num js-line-number js-blob-rnum" data-line-number="233"></td> <td id="file-index-html-LC233" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y2'</span><span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L234" class="blob-num js-line-number js-blob-rnum" data-line-number="234"></td> <td id="file-index-html-LC234" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'todayLine'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L235" class="blob-num js-line-number js-blob-rnum" data-line-number="235"></td> <td id="file-index-html-LC235" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L236" class="blob-num js-line-number js-blob-rnum" data-line-number="236"></td> <td id="file-index-html-LC236" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw the items</span></td> </tr> <tr> <td id="file-index-html-L237" class="blob-num js-line-number js-blob-rnum" data-line-number="237"></td> <td id="file-index-html-LC237" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>itemRects</span> <span class=pl-c1>=</span> <span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L238" class="blob-num js-line-number js-blob-rnum" data-line-number="238"></td> <td id="file-index-html-LC238" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'clip-path'</span><span class=pl-kos>,</span> <span class=pl-s>'url(#clip)'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L239" class="blob-num js-line-number js-blob-rnum" data-line-number="239"></td> <td id="file-index-html-LC239" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L240" class="blob-num js-line-number js-blob-rnum" data-line-number="240"></td> <td id="file-index-html-LC240" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'miniItems'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L241" class="blob-num js-line-number js-blob-rnum" data-line-number="241"></td> <td id="file-index-html-LC241" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-en>getPaths</span><span class=pl-kos>(</span><span class=pl-s1>items</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L242" class="blob-num js-line-number js-blob-rnum" data-line-number="242"></td> <td id="file-index-html-LC242" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'path'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L243" class="blob-num js-line-number js-blob-rnum" data-line-number="243"></td> <td id="file-index-html-LC243" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s>'miniItem '</span> <span class=pl-c1>+</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>class</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L244" class="blob-num js-line-number js-blob-rnum" data-line-number="244"></td> <td id="file-index-html-LC244" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'d'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>path</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L245" class="blob-num js-line-number js-blob-rnum" data-line-number="245"></td> <td id="file-index-html-LC245" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L246" class="blob-num js-line-number js-blob-rnum" data-line-number="246"></td> <td id="file-index-html-LC246" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// invisible hit area to move around the selection window</span></td> </tr> <tr> <td id="file-index-html-L247" class="blob-num js-line-number js-blob-rnum" data-line-number="247"></td> <td id="file-index-html-LC247" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'rect'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L248" class="blob-num js-line-number js-blob-rnum" data-line-number="248"></td> <td id="file-index-html-LC248" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'pointer-events'</span><span class=pl-kos>,</span> <span class=pl-s>'painted'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L249" class="blob-num js-line-number js-blob-rnum" data-line-number="249"></td> <td id="file-index-html-LC249" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-s1>width</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L250" class="blob-num js-line-number js-blob-rnum" data-line-number="250"></td> <td id="file-index-html-LC250" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L251" class="blob-num js-line-number js-blob-rnum" data-line-number="251"></td> <td id="file-index-html-LC251" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'visibility'</span><span class=pl-kos>,</span> <span class=pl-s>'hidden'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L252" class="blob-num js-line-number js-blob-rnum" data-line-number="252"></td> <td id="file-index-html-LC252" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>on</span><span class=pl-kos>(</span><span class=pl-s>'mouseup'</span><span class=pl-kos>,</span> <span class=pl-s1>moveBrush</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L253" class="blob-num js-line-number js-blob-rnum" data-line-number="253"></td> <td id="file-index-html-LC253" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L254" class="blob-num js-line-number js-blob-rnum" data-line-number="254"></td> <td id="file-index-html-LC254" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// draw the selection area</span></td> </tr> <tr> <td id="file-index-html-L255" class="blob-num js-line-number js-blob-rnum" data-line-number="255"></td> <td id="file-index-html-LC255" class="blob-code blob-code-inner js-file-line"><span class=pl-k>var</span> <span class=pl-s1>brush</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>svg</span><span class=pl-kos>.</span><span class=pl-en>brush</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L256" class="blob-num js-line-number js-blob-rnum" data-line-number="256"></td> <td id="file-index-html-LC256" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>x</span><span class=pl-kos>(</span><span class=pl-s1>x</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L257" class="blob-num js-line-number js-blob-rnum" data-line-number="257"></td> <td id="file-index-html-LC257" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>monday</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span><span class=pl-kos>,</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>saturday</span><span class=pl-kos>.</span><span class=pl-en>ceil</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L258" class="blob-num js-line-number js-blob-rnum" data-line-number="258"></td> <td id="file-index-html-LC258" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>on</span><span class=pl-kos>(</span><span class=pl-s>"brush"</span><span class=pl-kos>,</span> <span class=pl-s1>display</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L259" class="blob-num js-line-number js-blob-rnum" data-line-number="259"></td> <td id="file-index-html-LC259" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L260" class="blob-num js-line-number js-blob-rnum" data-line-number="260"></td> <td id="file-index-html-LC260" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'g'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L261" class="blob-num js-line-number js-blob-rnum" data-line-number="261"></td> <td id="file-index-html-LC261" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'x brush'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L262" class="blob-num js-line-number js-blob-rnum" data-line-number="262"></td> <td id="file-index-html-LC262" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>brush</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L263" class="blob-num js-line-number js-blob-rnum" data-line-number="263"></td> <td id="file-index-html-LC263" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'rect'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L264" class="blob-num js-line-number js-blob-rnum" data-line-number="264"></td> <td id="file-index-html-LC264" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y'</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L265" class="blob-num js-line-number js-blob-rnum" data-line-number="265"></td> <td id="file-index-html-LC265" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-s1>miniHeight</span> <span class=pl-c1>-</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L266" class="blob-num js-line-number js-blob-rnum" data-line-number="266"></td> <td id="file-index-html-LC266" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L267" class="blob-num js-line-number js-blob-rnum" data-line-number="267"></td> <td id="file-index-html-LC267" class="blob-code blob-code-inner js-file-line"><span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'rect.background'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>remove</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L268" class="blob-num js-line-number js-blob-rnum" data-line-number="268"></td> <td id="file-index-html-LC268" class="blob-code blob-code-inner js-file-line"><span class=pl-en>display</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L269" class="blob-num js-line-number js-blob-rnum" data-line-number="269"></td> <td id="file-index-html-LC269" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L270" class="blob-num js-line-number js-blob-rnum" data-line-number="270"></td> <td id="file-index-html-LC270" class="blob-code blob-code-inner js-file-line"><span class=pl-k>function</span> <span class=pl-en>display</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L271" class="blob-num js-line-number js-blob-rnum" data-line-number="271"></td> <td id="file-index-html-LC271" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L272" class="blob-num js-line-number js-blob-rnum" data-line-number="272"></td> <td id="file-index-html-LC272" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>rects</span><span class=pl-kos>,</span> <span class=pl-s1>labels</span></td> </tr> <tr> <td id="file-index-html-L273" class="blob-num js-line-number js-blob-rnum" data-line-number="273"></td> <td id="file-index-html-LC273" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>minExtent</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>day</span><span class=pl-kos>(</span><span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L274" class="blob-num js-line-number js-blob-rnum" data-line-number="274"></td> <td id="file-index-html-LC274" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>maxExtent</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>day</span><span class=pl-kos>(</span><span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>1</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L275" class="blob-num js-line-number js-blob-rnum" data-line-number="275"></td> <td id="file-index-html-LC275" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>visItems</span> <span class=pl-c1>=</span> <span class=pl-s1>items</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span> <span class=pl-c1><</span> <span class=pl-s1>maxExtent</span> <span class=pl-c1>&&</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>end</span> <span class=pl-c1>></span> <span class=pl-s1>minExtent</span><span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L276" class="blob-num js-line-number js-blob-rnum" data-line-number="276"></td> <td id="file-index-html-LC276" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L277" class="blob-num js-line-number js-blob-rnum" data-line-number="277"></td> <td id="file-index-html-LC277" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>mini</span><span class=pl-kos>.</span><span class=pl-en>select</span><span class=pl-kos>(</span><span class=pl-s>'.brush'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>minExtent</span><span class=pl-kos>,</span> <span class=pl-s1>maxExtent</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span> </td> </tr> <tr> <td id="file-index-html-L278" class="blob-num js-line-number js-blob-rnum" data-line-number="278"></td> <td id="file-index-html-LC278" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L279" class="blob-num js-line-number js-blob-rnum" data-line-number="279"></td> <td id="file-index-html-LC279" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1</span><span class=pl-kos>.</span><span class=pl-en>domain</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>minExtent</span><span class=pl-kos>,</span> <span class=pl-s1>maxExtent</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L280" class="blob-num js-line-number js-blob-rnum" data-line-number="280"></td> <td id="file-index-html-LC280" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L281" class="blob-num js-line-number js-blob-rnum" data-line-number="281"></td> <td id="file-index-html-LC281" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>maxExtent</span> <span class=pl-c1>-</span> <span class=pl-s1>minExtent</span><span class=pl-kos>)</span> <span class=pl-c1>></span> <span class=pl-c1>1468800000</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L282" class="blob-num js-line-number js-blob-rnum" data-line-number="282"></td> <td id="file-index-html-LC282" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1DateAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>mondays</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%a %d'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L283" class="blob-num js-line-number js-blob-rnum" data-line-number="283"></td> <td id="file-index-html-LC283" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1MonthAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>mondays</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%b - Week %W'</span><span class=pl-kos>)</span><span class=pl-kos>)</span> </td> </tr> <tr> <td id="file-index-html-L284" class="blob-num js-line-number js-blob-rnum" data-line-number="284"></td> <td id="file-index-html-LC284" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L285" class="blob-num js-line-number js-blob-rnum" data-line-number="285"></td> <td id="file-index-html-LC285" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>else</span> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>maxExtent</span> <span class=pl-c1>-</span> <span class=pl-s1>minExtent</span><span class=pl-kos>)</span> <span class=pl-c1>></span> <span class=pl-c1>172800000</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L286" class="blob-num js-line-number js-blob-rnum" data-line-number="286"></td> <td id="file-index-html-LC286" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1DateAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>days</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%a %d'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L287" class="blob-num js-line-number js-blob-rnum" data-line-number="287"></td> <td id="file-index-html-LC287" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1MonthAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>mondays</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%b - Week %W'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L288" class="blob-num js-line-number js-blob-rnum" data-line-number="288"></td> <td id="file-index-html-LC288" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L289" class="blob-num js-line-number js-blob-rnum" data-line-number="289"></td> <td id="file-index-html-LC289" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>else</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L290" class="blob-num js-line-number js-blob-rnum" data-line-number="290"></td> <td id="file-index-html-LC290" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1DateAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>hours</span><span class=pl-kos>,</span> <span class=pl-c1>4</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%I %p'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L291" class="blob-num js-line-number js-blob-rnum" data-line-number="291"></td> <td id="file-index-html-LC291" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>x1MonthAxis</span><span class=pl-kos>.</span><span class=pl-en>ticks</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-c1>days</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>tickFormat</span><span class=pl-kos>(</span><span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-c1>time</span><span class=pl-kos>.</span><span class=pl-en>format</span><span class=pl-kos>(</span><span class=pl-s>'%b %e'</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L292" class="blob-num js-line-number js-blob-rnum" data-line-number="292"></td> <td id="file-index-html-LC292" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L293" class="blob-num js-line-number js-blob-rnum" data-line-number="293"></td> <td id="file-index-html-LC293" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L294" class="blob-num js-line-number js-blob-rnum" data-line-number="294"></td> <td id="file-index-html-LC294" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L295" class="blob-num js-line-number js-blob-rnum" data-line-number="295"></td> <td id="file-index-html-LC295" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>//x1Offset.range([0, x1(d3.time.day.ceil(now) - x1(d3.time.day.floor(now)))]);</span></td> </tr> <tr> <td id="file-index-html-L296" class="blob-num js-line-number js-blob-rnum" data-line-number="296"></td> <td id="file-index-html-LC296" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L297" class="blob-num js-line-number js-blob-rnum" data-line-number="297"></td> <td id="file-index-html-LC297" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>// shift the today line</span></td> </tr> <tr> <td id="file-index-html-L298" class="blob-num js-line-number js-blob-rnum" data-line-number="298"></td> <td id="file-index-html-LC298" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>select</span><span class=pl-kos>(</span><span class=pl-s>'.main.todayLine'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L299" class="blob-num js-line-number js-blob-rnum" data-line-number="299"></td> <td id="file-index-html-LC299" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x1'</span><span class=pl-kos>,</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L300" class="blob-num js-line-number js-blob-rnum" data-line-number="300"></td> <td id="file-index-html-LC300" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x2'</span><span class=pl-kos>,</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>now</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L301" class="blob-num js-line-number js-blob-rnum" data-line-number="301"></td> <td id="file-index-html-LC301" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L302" class="blob-num js-line-number js-blob-rnum" data-line-number="302"></td> <td id="file-index-html-LC302" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>// update the axis</span></td> </tr> <tr> <td id="file-index-html-L303" class="blob-num js-line-number js-blob-rnum" data-line-number="303"></td> <td id="file-index-html-LC303" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>select</span><span class=pl-kos>(</span><span class=pl-s>'.main.axis.date'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>x1DateAxis</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L304" class="blob-num js-line-number js-blob-rnum" data-line-number="304"></td> <td id="file-index-html-LC304" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>main</span><span class=pl-kos>.</span><span class=pl-en>select</span><span class=pl-kos>(</span><span class=pl-s>'.main.axis.month'</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-s1>x1MonthAxis</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L305" class="blob-num js-line-number js-blob-rnum" data-line-number="305"></td> <td id="file-index-html-LC305" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L306" class="blob-num js-line-number js-blob-rnum" data-line-number="306"></td> <td id="file-index-html-LC306" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dx'</span><span class=pl-kos>,</span> <span class=pl-c1>5</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L307" class="blob-num js-line-number js-blob-rnum" data-line-number="307"></td> <td id="file-index-html-LC307" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'dy'</span><span class=pl-kos>,</span> <span class=pl-c1>12</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L308" class="blob-num js-line-number js-blob-rnum" data-line-number="308"></td> <td id="file-index-html-LC308" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L309" class="blob-num js-line-number js-blob-rnum" data-line-number="309"></td> <td id="file-index-html-LC309" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>// upate the item rects</span></td> </tr> <tr> <td id="file-index-html-L310" class="blob-num js-line-number js-blob-rnum" data-line-number="310"></td> <td id="file-index-html-LC310" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>rects</span> <span class=pl-c1>=</span> <span class=pl-s1>itemRects</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'rect'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L311" class="blob-num js-line-number js-blob-rnum" data-line-number="311"></td> <td id="file-index-html-LC311" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>visItems</span><span class=pl-kos>,</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L312" class="blob-num js-line-number js-blob-rnum" data-line-number="312"></td> <td id="file-index-html-LC312" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L313" class="blob-num js-line-number js-blob-rnum" data-line-number="313"></td> <td id="file-index-html-LC313" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>end</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L314" class="blob-num js-line-number js-blob-rnum" data-line-number="314"></td> <td id="file-index-html-LC314" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L315" class="blob-num js-line-number js-blob-rnum" data-line-number="315"></td> <td id="file-index-html-LC315" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>rects</span><span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'rect'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L316" class="blob-num js-line-number js-blob-rnum" data-line-number="316"></td> <td id="file-index-html-LC316" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L317" class="blob-num js-line-number js-blob-rnum" data-line-number="317"></td> <td id="file-index-html-LC317" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>lane</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>.1</span> <span class=pl-c1>*</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L318" class="blob-num js-line-number js-blob-rnum" data-line-number="318"></td> <td id="file-index-html-LC318" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'width'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>end</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L319" class="blob-num js-line-number js-blob-rnum" data-line-number="319"></td> <td id="file-index-html-LC319" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'height'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-c1>.8</span> <span class=pl-c1>*</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>)</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L320" class="blob-num js-line-number js-blob-rnum" data-line-number="320"></td> <td id="file-index-html-LC320" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s>'mainItem '</span> <span class=pl-c1>+</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>class</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L321" class="blob-num js-line-number js-blob-rnum" data-line-number="321"></td> <td id="file-index-html-LC321" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L322" class="blob-num js-line-number js-blob-rnum" data-line-number="322"></td> <td id="file-index-html-LC322" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>rects</span><span class=pl-kos>.</span><span class=pl-en>exit</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>remove</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L323" class="blob-num js-line-number js-blob-rnum" data-line-number="323"></td> <td id="file-index-html-LC323" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L324" class="blob-num js-line-number js-blob-rnum" data-line-number="324"></td> <td id="file-index-html-LC324" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>// update the item labels</span></td> </tr> <tr> <td id="file-index-html-L325" class="blob-num js-line-number js-blob-rnum" data-line-number="325"></td> <td id="file-index-html-LC325" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>labels</span> <span class=pl-c1>=</span> <span class=pl-s1>itemRects</span><span class=pl-kos>.</span><span class=pl-en>selectAll</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L326" class="blob-num js-line-number js-blob-rnum" data-line-number="326"></td> <td id="file-index-html-LC326" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>data</span><span class=pl-kos>(</span><span class=pl-s1>visItems</span><span class=pl-kos>,</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L327" class="blob-num js-line-number js-blob-rnum" data-line-number="327"></td> <td id="file-index-html-LC327" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>max</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>,</span> <span class=pl-s1>minExtent</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>2</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L328" class="blob-num js-line-number js-blob-rnum" data-line-number="328"></td> <td id="file-index-html-LC328" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L329" class="blob-num js-line-number js-blob-rnum" data-line-number="329"></td> <td id="file-index-html-LC329" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>labels</span><span class=pl-kos>.</span><span class=pl-en>enter</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>append</span><span class=pl-kos>(</span><span class=pl-s>'text'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L330" class="blob-num js-line-number js-blob-rnum" data-line-number="330"></td> <td id="file-index-html-LC330" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>text</span><span class=pl-kos>(</span><span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s>'Item\n\n\n\n Id: '</span> <span class=pl-c1>+</span> <span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L331" class="blob-num js-line-number js-blob-rnum" data-line-number="331"></td> <td id="file-index-html-LC331" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'x'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>x1</span><span class=pl-kos>(</span><span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>max</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>,</span> <span class=pl-s1>minExtent</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>2</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L332" class="blob-num js-line-number js-blob-rnum" data-line-number="332"></td> <td id="file-index-html-LC332" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'y'</span><span class=pl-kos>,</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>)</span> <span class=pl-kos>{</span> <span class=pl-k>return</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>lane</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>.4</span> <span class=pl-c1>*</span> <span class=pl-s1>y1</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L333" class="blob-num js-line-number js-blob-rnum" data-line-number="333"></td> <td id="file-index-html-LC333" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'text-anchor'</span><span class=pl-kos>,</span> <span class=pl-s>'start'</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L334" class="blob-num js-line-number js-blob-rnum" data-line-number="334"></td> <td id="file-index-html-LC334" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>.</span><span class=pl-en>attr</span><span class=pl-kos>(</span><span class=pl-s>'class'</span><span class=pl-kos>,</span> <span class=pl-s>'itemLabel'</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L335" class="blob-num js-line-number js-blob-rnum" data-line-number="335"></td> <td id="file-index-html-LC335" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L336" class="blob-num js-line-number js-blob-rnum" data-line-number="336"></td> <td id="file-index-html-LC336" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>labels</span><span class=pl-kos>.</span><span class=pl-en>exit</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>remove</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L337" class="blob-num js-line-number js-blob-rnum" data-line-number="337"></td> <td id="file-index-html-LC337" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L338" class="blob-num js-line-number js-blob-rnum" data-line-number="338"></td> <td id="file-index-html-LC338" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L339" class="blob-num js-line-number js-blob-rnum" data-line-number="339"></td> <td id="file-index-html-LC339" class="blob-code blob-code-inner js-file-line"><span class=pl-k>function</span> <span class=pl-en>moveBrush</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L340" class="blob-num js-line-number js-blob-rnum" data-line-number="340"></td> <td id="file-index-html-LC340" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>origin</span> <span class=pl-c1>=</span> <span class=pl-s1>d3</span><span class=pl-kos>.</span><span class=pl-en>mouse</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L341" class="blob-num js-line-number js-blob-rnum" data-line-number="341"></td> <td id="file-index-html-LC341" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>point</span> <span class=pl-c1>=</span> <span class=pl-s1>x</span><span class=pl-kos>.</span><span class=pl-en>invert</span><span class=pl-kos>(</span><span class=pl-s1>origin</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L342" class="blob-num js-line-number js-blob-rnum" data-line-number="342"></td> <td id="file-index-html-LC342" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>halfExtent</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>1</span><span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>getTime</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>getTime</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>/</span> <span class=pl-c1>2</span></td> </tr> <tr> <td id="file-index-html-L343" class="blob-num js-line-number js-blob-rnum" data-line-number="343"></td> <td id="file-index-html-LC343" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>start</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-s1>point</span><span class=pl-kos>.</span><span class=pl-en>getTime</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-s1>halfExtent</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-index-html-L344" class="blob-num js-line-number js-blob-rnum" data-line-number="344"></td> <td id="file-index-html-LC344" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>end</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-s1>point</span><span class=pl-kos>.</span><span class=pl-en>getTime</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s1>halfExtent</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L345" class="blob-num js-line-number js-blob-rnum" data-line-number="345"></td> <td id="file-index-html-LC345" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L346" class="blob-num js-line-number js-blob-rnum" data-line-number="346"></td> <td id="file-index-html-LC346" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>brush</span><span class=pl-kos>.</span><span class=pl-en>extent</span><span class=pl-kos>(</span><span class=pl-kos>[</span><span class=pl-s1>start</span><span class=pl-kos>,</span><span class=pl-s1>end</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L347" class="blob-num js-line-number js-blob-rnum" data-line-number="347"></td> <td id="file-index-html-LC347" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>display</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L348" class="blob-num js-line-number js-blob-rnum" data-line-number="348"></td> <td id="file-index-html-LC348" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L349" class="blob-num js-line-number js-blob-rnum" data-line-number="349"></td> <td id="file-index-html-LC349" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L350" class="blob-num js-line-number js-blob-rnum" data-line-number="350"></td> <td id="file-index-html-LC350" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// generates a single path for each item class in the mini display</span></td> </tr> <tr> <td id="file-index-html-L351" class="blob-num js-line-number js-blob-rnum" data-line-number="351"></td> <td id="file-index-html-LC351" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// ugly - but draws mini 2x faster than append lines or line generator</span></td> </tr> <tr> <td id="file-index-html-L352" class="blob-num js-line-number js-blob-rnum" data-line-number="352"></td> <td id="file-index-html-LC352" class="blob-code blob-code-inner js-file-line"><span class=pl-c>// is there a better way to do a bunch of lines as a single path with d3?</span></td> </tr> <tr> <td id="file-index-html-L353" class="blob-num js-line-number js-blob-rnum" data-line-number="353"></td> <td id="file-index-html-LC353" class="blob-code blob-code-inner js-file-line"><span class=pl-k>function</span> <span class=pl-en>getPaths</span><span class=pl-kos>(</span><span class=pl-s1>items</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L354" class="blob-num js-line-number js-blob-rnum" data-line-number="354"></td> <td id="file-index-html-LC354" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>paths</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span><span class=pl-kos>}</span><span class=pl-kos>,</span> <span class=pl-s1>d</span><span class=pl-kos>,</span> <span class=pl-s1>offset</span> <span class=pl-c1>=</span> <span class=pl-c1>.5</span> <span class=pl-c1>*</span> <span class=pl-s1>y2</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>0.5</span><span class=pl-kos>,</span> <span class=pl-s1>result</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L355" class="blob-num js-line-number js-blob-rnum" data-line-number="355"></td> <td id="file-index-html-LC355" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>i</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>i</span> <span class=pl-c1><</span> <span class=pl-s1>items</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span> <span class=pl-s1>i</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L356" class="blob-num js-line-number js-blob-rnum" data-line-number="356"></td> <td id="file-index-html-LC356" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>d</span> <span class=pl-c1>=</span> <span class=pl-s1>items</span><span class=pl-kos>[</span><span class=pl-s1>i</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L357" class="blob-num js-line-number js-blob-rnum" data-line-number="357"></td> <td id="file-index-html-LC357" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>paths</span><span class=pl-kos>[</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>class</span><span class=pl-kos>]</span><span class=pl-kos>)</span> <span class=pl-s1>paths</span><span class=pl-kos>[</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>class</span><span class=pl-kos>]</span> <span class=pl-c1>=</span> <span class=pl-s>''</span><span class=pl-kos>;</span> </td> </tr> <tr> <td id="file-index-html-L358" class="blob-num js-line-number js-blob-rnum" data-line-number="358"></td> <td id="file-index-html-LC358" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>paths</span><span class=pl-kos>[</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>class</span><span class=pl-kos>]</span> <span class=pl-c1>+=</span> <span class=pl-kos>[</span><span class=pl-s>'M'</span><span class=pl-kos>,</span><span class=pl-s1>x</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span><span class=pl-kos>,</span><span class=pl-kos>(</span><span class=pl-s1>y2</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>lane</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s1>offset</span><span class=pl-kos>)</span><span class=pl-kos>,</span><span class=pl-s>'H'</span><span class=pl-kos>,</span><span class=pl-s1>x</span><span class=pl-kos>(</span><span class=pl-s1>d</span><span class=pl-kos>.</span><span class=pl-c1>end</span><span class=pl-kos>)</span><span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>join</span><span class=pl-kos>(</span><span class=pl-s>' '</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L359" class="blob-num js-line-number js-blob-rnum" data-line-number="359"></td> <td id="file-index-html-LC359" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L360" class="blob-num js-line-number js-blob-rnum" data-line-number="360"></td> <td id="file-index-html-LC360" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L361" class="blob-num js-line-number js-blob-rnum" data-line-number="361"></td> <td id="file-index-html-LC361" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>className</span> <span class=pl-k>in</span> <span class=pl-s1>paths</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-index-html-L362" class="blob-num js-line-number js-blob-rnum" data-line-number="362"></td> <td id="file-index-html-LC362" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>result</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-kos>{</span><span class=pl-c1>class</span>: <span class=pl-s1>className</span><span class=pl-kos>,</span> <span class=pl-c1>path</span>: <span class=pl-s1>paths</span><span class=pl-kos>[</span><span class=pl-s1>className</span><span class=pl-kos>]</span><span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L363" class="blob-num js-line-number js-blob-rnum" data-line-number="363"></td> <td id="file-index-html-LC363" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L364" class="blob-num js-line-number js-blob-rnum" data-line-number="364"></td> <td id="file-index-html-LC364" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L365" class="blob-num js-line-number js-blob-rnum" data-line-number="365"></td> <td id="file-index-html-LC365" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-s1>result</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-index-html-L366" class="blob-num js-line-number js-blob-rnum" data-line-number="366"></td> <td id="file-index-html-LC366" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-index-html-L367" class="blob-num js-line-number js-blob-rnum" data-line-number="367"></td> <td id="file-index-html-LC367" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-index-html-L368" class="blob-num js-line-number js-blob-rnum" data-line-number="368"></td> <td id="file-index-html-LC368" class="blob-code blob-code-inner js-file-line"><span class=pl-kos></</span><span class=pl-ent>script</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L369" class="blob-num js-line-number js-blob-rnum" data-line-number="369"></td> <td id="file-index-html-LC369" class="blob-code blob-code-inner js-file-line"><span class=pl-kos></</span><span class=pl-ent>body</span><span class=pl-kos>></span></td> </tr> <tr> <td id="file-index-html-L370" class="blob-num js-line-number js-blob-rnum" data-line-number="370"></td> <td id="file-index-html-LC370" class="blob-code blob-code-inner js-file-line"><span class=pl-kos></</span><span class=pl-ent>html</span><span class=pl-kos>></span></td> </tr> </table> </div> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-randomdata-js" class="file my-2"> <div class="file-header d-flex flex-md-items-center flex-items-start"> <div class="file-actions flex-order-2 pt-0"> <a href="/bunkat/1962173/raw/b7d7134dbc15912619cc21c7fdc2bb78864a8daa/randomData.js" data-view-component="true" class="Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Raw</span> </span> </a> </div> <div class="file-info pr-4 d-flex flex-md-items-center flex-items-start flex-order-1 flex-auto"> <span class="mr-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square color-fg-muted"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </span> <a class="wb-break-all" href="#file-randomdata-js"> <strong class="user-select-contain gist-blob-name css-truncate-target"> randomData.js </strong> </a> </div> </div> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-javascript gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="randomData.js content, created by bunkat on 11:07PM on March 02, 2012." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="randomData.js"> <tr> <td id="file-randomdata-js-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-randomdata-js-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>(</span><span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-randomdata-js-LC2" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-randomdata-js-LC3" class="blob-code blob-code-inner js-file-line"> <span class=pl-s>"use strict"</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-randomdata-js-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-randomdata-js-LC5" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-v>RandomData</span> <span class=pl-c1>=</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-randomdata-js-LC6" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-randomdata-js-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>addToLane</span> <span class=pl-c1>=</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>chart</span><span class=pl-kos>,</span> <span class=pl-s1>item</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-randomdata-js-LC8" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>name</span> <span class=pl-c1>=</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>lane</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-randomdata-js-LC9" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-randomdata-js-LC10" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span><span class=pl-kos>[</span><span class=pl-s1>name</span><span class=pl-kos>]</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L11" class="blob-num js-line-number js-blob-rnum" data-line-number="11"></td> <td id="file-randomdata-js-LC11" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span><span class=pl-kos>[</span><span class=pl-s1>name</span><span class=pl-kos>]</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L12" class="blob-num js-line-number js-blob-rnum" data-line-number="12"></td> <td id="file-randomdata-js-LC12" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L13" class="blob-num js-line-number js-blob-rnum" data-line-number="13"></td> <td id="file-randomdata-js-LC13" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>lane</span> <span class=pl-c1>=</span> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span><span class=pl-kos>[</span><span class=pl-s1>name</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L14" class="blob-num js-line-number js-blob-rnum" data-line-number="14"></td> <td id="file-randomdata-js-LC14" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L15" class="blob-num js-line-number js-blob-rnum" data-line-number="15"></td> <td id="file-randomdata-js-LC15" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>sublane</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L16" class="blob-num js-line-number js-blob-rnum" data-line-number="16"></td> <td id="file-randomdata-js-LC16" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>while</span><span class=pl-kos>(</span><span class=pl-en>isOverlapping</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>,</span> <span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>sublane</span><span class=pl-kos>]</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L17" class="blob-num js-line-number js-blob-rnum" data-line-number="17"></td> <td id="file-randomdata-js-LC17" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>sublane</span><span class=pl-c1>++</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L18" class="blob-num js-line-number js-blob-rnum" data-line-number="18"></td> <td id="file-randomdata-js-LC18" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L19" class="blob-num js-line-number js-blob-rnum" data-line-number="19"></td> <td id="file-randomdata-js-LC19" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>sublane</span><span class=pl-kos>]</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L20" class="blob-num js-line-number js-blob-rnum" data-line-number="20"></td> <td id="file-randomdata-js-LC20" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>sublane</span><span class=pl-kos>]</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L21" class="blob-num js-line-number js-blob-rnum" data-line-number="21"></td> <td id="file-randomdata-js-LC21" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L22" class="blob-num js-line-number js-blob-rnum" data-line-number="22"></td> <td id="file-randomdata-js-LC22" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L23" class="blob-num js-line-number js-blob-rnum" data-line-number="23"></td> <td id="file-randomdata-js-LC23" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>sublane</span><span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>)</span><span class=pl-kos>;</span> </td> </tr> <tr> <td id="file-randomdata-js-L24" class="blob-num js-line-number js-blob-rnum" data-line-number="24"></td> <td id="file-randomdata-js-LC24" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L25" class="blob-num js-line-number js-blob-rnum" data-line-number="25"></td> <td id="file-randomdata-js-LC25" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L26" class="blob-num js-line-number js-blob-rnum" data-line-number="26"></td> <td id="file-randomdata-js-LC26" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>isOverlapping</span> <span class=pl-c1>=</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>,</span> <span class=pl-s1>lane</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L27" class="blob-num js-line-number js-blob-rnum" data-line-number="27"></td> <td id="file-randomdata-js-LC27" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>lane</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L28" class="blob-num js-line-number js-blob-rnum" data-line-number="28"></td> <td id="file-randomdata-js-LC28" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>i</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>i</span> <span class=pl-c1><</span> <span class=pl-s1>lane</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span> <span class=pl-s1>i</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L29" class="blob-num js-line-number js-blob-rnum" data-line-number="29"></td> <td id="file-randomdata-js-LC29" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>t</span> <span class=pl-c1>=</span> <span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>i</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L30" class="blob-num js-line-number js-blob-rnum" data-line-number="30"></td> <td id="file-randomdata-js-LC30" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>start</span> <span class=pl-c1><</span> <span class=pl-s1>t</span><span class=pl-kos>.</span><span class=pl-c1>end</span> <span class=pl-c1>&&</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>end</span> <span class=pl-c1>></span> <span class=pl-s1>t</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L31" class="blob-num js-line-number js-blob-rnum" data-line-number="31"></td> <td id="file-randomdata-js-LC31" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-c1>true</span><span class=pl-kos>;</span> </td> </tr> <tr> <td id="file-randomdata-js-L32" class="blob-num js-line-number js-blob-rnum" data-line-number="32"></td> <td id="file-randomdata-js-LC32" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L33" class="blob-num js-line-number js-blob-rnum" data-line-number="33"></td> <td id="file-randomdata-js-LC33" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L34" class="blob-num js-line-number js-blob-rnum" data-line-number="34"></td> <td id="file-randomdata-js-LC34" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L35" class="blob-num js-line-number js-blob-rnum" data-line-number="35"></td> <td id="file-randomdata-js-LC35" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L36" class="blob-num js-line-number js-blob-rnum" data-line-number="36"></td> <td id="file-randomdata-js-LC36" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L37" class="blob-num js-line-number js-blob-rnum" data-line-number="37"></td> <td id="file-randomdata-js-LC37" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L38" class="blob-num js-line-number js-blob-rnum" data-line-number="38"></td> <td id="file-randomdata-js-LC38" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>parseData</span> <span class=pl-c1>=</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>data</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L39" class="blob-num js-line-number js-blob-rnum" data-line-number="39"></td> <td id="file-randomdata-js-LC39" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>i</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-s1>length</span> <span class=pl-c1>=</span> <span class=pl-s1>data</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>,</span> <span class=pl-s1>node</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L40" class="blob-num js-line-number js-blob-rnum" data-line-number="40"></td> <td id="file-randomdata-js-LC40" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>chart</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span> <span class=pl-c1>lanes</span>: <span class=pl-kos>{</span><span class=pl-kos>}</span> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L41" class="blob-num js-line-number js-blob-rnum" data-line-number="41"></td> <td id="file-randomdata-js-LC41" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L42" class="blob-num js-line-number js-blob-rnum" data-line-number="42"></td> <td id="file-randomdata-js-LC42" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-s1>i</span><span class=pl-kos>;</span> <span class=pl-s1>i</span> <span class=pl-c1><</span> <span class=pl-s1>length</span><span class=pl-kos>;</span> <span class=pl-s1>i</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L43" class="blob-num js-line-number js-blob-rnum" data-line-number="43"></td> <td id="file-randomdata-js-LC43" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>item</span> <span class=pl-c1>=</span> <span class=pl-s1>data</span><span class=pl-kos>[</span><span class=pl-s1>i</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L44" class="blob-num js-line-number js-blob-rnum" data-line-number="44"></td> <td id="file-randomdata-js-LC44" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L45" class="blob-num js-line-number js-blob-rnum" data-line-number="45"></td> <td id="file-randomdata-js-LC45" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>addToLane</span><span class=pl-kos>(</span><span class=pl-s1>chart</span><span class=pl-kos>,</span> <span class=pl-s1>item</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L46" class="blob-num js-line-number js-blob-rnum" data-line-number="46"></td> <td id="file-randomdata-js-LC46" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L47" class="blob-num js-line-number js-blob-rnum" data-line-number="47"></td> <td id="file-randomdata-js-LC47" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L48" class="blob-num js-line-number js-blob-rnum" data-line-number="48"></td> <td id="file-randomdata-js-LC48" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L49" class="blob-num js-line-number js-blob-rnum" data-line-number="49"></td> <td id="file-randomdata-js-LC49" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L50" class="blob-num js-line-number js-blob-rnum" data-line-number="50"></td> <td id="file-randomdata-js-LC50" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-en>collapseLanes</span><span class=pl-kos>(</span><span class=pl-s1>chart</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L51" class="blob-num js-line-number js-blob-rnum" data-line-number="51"></td> <td id="file-randomdata-js-LC51" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L52" class="blob-num js-line-number js-blob-rnum" data-line-number="52"></td> <td id="file-randomdata-js-LC52" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L53" class="blob-num js-line-number js-blob-rnum" data-line-number="53"></td> <td id="file-randomdata-js-LC53" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>collapseLanes</span> <span class=pl-c1>=</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-s1>chart</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L54" class="blob-num js-line-number js-blob-rnum" data-line-number="54"></td> <td id="file-randomdata-js-LC54" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>lanes</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>,</span> <span class=pl-s1>items</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>,</span> <span class=pl-s1>laneId</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L55" class="blob-num js-line-number js-blob-rnum" data-line-number="55"></td> <td id="file-randomdata-js-LC55" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>now</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L56" class="blob-num js-line-number js-blob-rnum" data-line-number="56"></td> <td id="file-randomdata-js-LC56" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L57" class="blob-num js-line-number js-blob-rnum" data-line-number="57"></td> <td id="file-randomdata-js-LC57" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>laneName</span> <span class=pl-k>in</span> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L58" class="blob-num js-line-number js-blob-rnum" data-line-number="58"></td> <td id="file-randomdata-js-LC58" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>lane</span> <span class=pl-c1>=</span> <span class=pl-s1>chart</span><span class=pl-kos>.</span><span class=pl-c1>lanes</span><span class=pl-kos>[</span><span class=pl-s1>laneName</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L59" class="blob-num js-line-number js-blob-rnum" data-line-number="59"></td> <td id="file-randomdata-js-LC59" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L60" class="blob-num js-line-number js-blob-rnum" data-line-number="60"></td> <td id="file-randomdata-js-LC60" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>i</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>i</span> <span class=pl-c1><</span> <span class=pl-s1>lane</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span> <span class=pl-s1>i</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L61" class="blob-num js-line-number js-blob-rnum" data-line-number="61"></td> <td id="file-randomdata-js-LC61" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>subLane</span> <span class=pl-c1>=</span> <span class=pl-s1>lane</span><span class=pl-kos>[</span><span class=pl-s1>i</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L62" class="blob-num js-line-number js-blob-rnum" data-line-number="62"></td> <td id="file-randomdata-js-LC62" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L63" class="blob-num js-line-number js-blob-rnum" data-line-number="63"></td> <td id="file-randomdata-js-LC63" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>lanes</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L64" class="blob-num js-line-number js-blob-rnum" data-line-number="64"></td> <td id="file-randomdata-js-LC64" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>id</span>: <span class=pl-s1>laneId</span><span class=pl-kos>,</span> </td> </tr> <tr> <td id="file-randomdata-js-L65" class="blob-num js-line-number js-blob-rnum" data-line-number="65"></td> <td id="file-randomdata-js-LC65" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>label</span>: <span class=pl-s1>i</span> <span class=pl-c1>===</span> <span class=pl-c1>0</span> ? <span class=pl-s1>laneName</span> : <span class=pl-s>''</span></td> </tr> <tr> <td id="file-randomdata-js-L66" class="blob-num js-line-number js-blob-rnum" data-line-number="66"></td> <td id="file-randomdata-js-LC66" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L67" class="blob-num js-line-number js-blob-rnum" data-line-number="67"></td> <td id="file-randomdata-js-LC67" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L68" class="blob-num js-line-number js-blob-rnum" data-line-number="68"></td> <td id="file-randomdata-js-LC68" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>j</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>j</span> <span class=pl-c1><</span> <span class=pl-s1>subLane</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span> <span class=pl-s1>j</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L69" class="blob-num js-line-number js-blob-rnum" data-line-number="69"></td> <td id="file-randomdata-js-LC69" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>item</span> <span class=pl-c1>=</span> <span class=pl-s1>subLane</span><span class=pl-kos>[</span><span class=pl-s1>j</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L70" class="blob-num js-line-number js-blob-rnum" data-line-number="70"></td> <td id="file-randomdata-js-LC70" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L71" class="blob-num js-line-number js-blob-rnum" data-line-number="71"></td> <td id="file-randomdata-js-LC71" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>items</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L72" class="blob-num js-line-number js-blob-rnum" data-line-number="72"></td> <td id="file-randomdata-js-LC72" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>id</span>: <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>id</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L73" class="blob-num js-line-number js-blob-rnum" data-line-number="73"></td> <td id="file-randomdata-js-LC73" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>lane</span>: <span class=pl-s1>laneId</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L74" class="blob-num js-line-number js-blob-rnum" data-line-number="74"></td> <td id="file-randomdata-js-LC74" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>start</span>: <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>start</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L75" class="blob-num js-line-number js-blob-rnum" data-line-number="75"></td> <td id="file-randomdata-js-LC75" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>end</span>: <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>end</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L76" class="blob-num js-line-number js-blob-rnum" data-line-number="76"></td> <td id="file-randomdata-js-LC76" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>class</span>: <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>end</span> <span class=pl-c1>></span> <span class=pl-s1>now</span> ? <span class=pl-s>'future'</span> : <span class=pl-s>'past'</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L77" class="blob-num js-line-number js-blob-rnum" data-line-number="77"></td> <td id="file-randomdata-js-LC77" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>desc</span>: <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>desc</span></td> </tr> <tr> <td id="file-randomdata-js-L78" class="blob-num js-line-number js-blob-rnum" data-line-number="78"></td> <td id="file-randomdata-js-LC78" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L79" class="blob-num js-line-number js-blob-rnum" data-line-number="79"></td> <td id="file-randomdata-js-LC79" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L80" class="blob-num js-line-number js-blob-rnum" data-line-number="80"></td> <td id="file-randomdata-js-LC80" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L81" class="blob-num js-line-number js-blob-rnum" data-line-number="81"></td> <td id="file-randomdata-js-LC81" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>laneId</span><span class=pl-c1>++</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L82" class="blob-num js-line-number js-blob-rnum" data-line-number="82"></td> <td id="file-randomdata-js-LC82" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L83" class="blob-num js-line-number js-blob-rnum" data-line-number="83"></td> <td id="file-randomdata-js-LC83" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L84" class="blob-num js-line-number js-blob-rnum" data-line-number="84"></td> <td id="file-randomdata-js-LC84" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L85" class="blob-num js-line-number js-blob-rnum" data-line-number="85"></td> <td id="file-randomdata-js-LC85" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-kos>{</span><span class=pl-c1>lanes</span>: <span class=pl-s1>lanes</span><span class=pl-kos>,</span> <span class=pl-c1>items</span>: <span class=pl-s1>items</span><span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L86" class="blob-num js-line-number js-blob-rnum" data-line-number="86"></td> <td id="file-randomdata-js-LC86" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L87" class="blob-num js-line-number js-blob-rnum" data-line-number="87"></td> <td id="file-randomdata-js-LC87" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L88" class="blob-num js-line-number js-blob-rnum" data-line-number="88"></td> <td id="file-randomdata-js-LC88" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>randomNumber</span> <span class=pl-c1>=</span> <span class=pl-k>function</span><span class=pl-kos>(</span><span class=pl-s1>min</span><span class=pl-kos>,</span> <span class=pl-s1>max</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L89" class="blob-num js-line-number js-blob-rnum" data-line-number="89"></td> <td id="file-randomdata-js-LC89" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>floor</span><span class=pl-kos>(</span><span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>random</span><span class=pl-kos>(</span><span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>1</span><span class=pl-kos>)</span> <span class=pl-c1>*</span> <span class=pl-kos>(</span><span class=pl-s1>max</span> <span class=pl-c1>-</span> <span class=pl-s1>min</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s1>min</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L90" class="blob-num js-line-number js-blob-rnum" data-line-number="90"></td> <td id="file-randomdata-js-LC90" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L91" class="blob-num js-line-number js-blob-rnum" data-line-number="91"></td> <td id="file-randomdata-js-LC91" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L92" class="blob-num js-line-number js-blob-rnum" data-line-number="92"></td> <td id="file-randomdata-js-LC92" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-en>generateRandomWorkItems</span> <span class=pl-c1>=</span> <span class=pl-k>function</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L93" class="blob-num js-line-number js-blob-rnum" data-line-number="93"></td> <td id="file-randomdata-js-LC93" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>data</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L94" class="blob-num js-line-number js-blob-rnum" data-line-number="94"></td> <td id="file-randomdata-js-LC94" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>laneCount</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>5</span><span class=pl-kos>,</span><span class=pl-c1>7</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L95" class="blob-num js-line-number js-blob-rnum" data-line-number="95"></td> <td id="file-randomdata-js-LC95" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>totalWorkItems</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>20</span><span class=pl-kos>,</span><span class=pl-c1>30</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L96" class="blob-num js-line-number js-blob-rnum" data-line-number="96"></td> <td id="file-randomdata-js-LC96" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>startMonth</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>0</span><span class=pl-kos>,</span><span class=pl-c1>1</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L97" class="blob-num js-line-number js-blob-rnum" data-line-number="97"></td> <td id="file-randomdata-js-LC97" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>startDay</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>,</span><span class=pl-c1>28</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-randomdata-js-L98" class="blob-num js-line-number js-blob-rnum" data-line-number="98"></td> <td id="file-randomdata-js-LC98" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>,</span> <span class=pl-s1>totalMonths</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>4</span><span class=pl-kos>,</span><span class=pl-c1>10</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L99" class="blob-num js-line-number js-blob-rnum" data-line-number="99"></td> <td id="file-randomdata-js-LC99" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L100" class="blob-num js-line-number js-blob-rnum" data-line-number="100"></td> <td id="file-randomdata-js-LC100" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>i</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>i</span> <span class=pl-c1><</span> <span class=pl-s1>laneCount</span><span class=pl-kos>;</span> <span class=pl-s1>i</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L101" class="blob-num js-line-number js-blob-rnum" data-line-number="101"></td> <td id="file-randomdata-js-LC101" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>dt</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-c1>2012</span><span class=pl-kos>,</span> <span class=pl-s1>startMonth</span><span class=pl-kos>,</span> <span class=pl-s1>startDay</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L102" class="blob-num js-line-number js-blob-rnum" data-line-number="102"></td> <td id="file-randomdata-js-LC102" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>var</span> <span class=pl-s1>j</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>j</span> <span class=pl-c1><</span> <span class=pl-s1>totalWorkItems</span><span class=pl-kos>;</span> <span class=pl-s1>j</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L103" class="blob-num js-line-number js-blob-rnum" data-line-number="103"></td> <td id="file-randomdata-js-LC103" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L104" class="blob-num js-line-number js-blob-rnum" data-line-number="104"></td> <td id="file-randomdata-js-LC104" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>dtS</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-s1>dt</span><span class=pl-kos>.</span><span class=pl-en>getFullYear</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-s1>dt</span><span class=pl-kos>.</span><span class=pl-en>getMonth</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-s1>dt</span><span class=pl-kos>.</span><span class=pl-en>getDate</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>1</span><span class=pl-kos>,</span><span class=pl-c1>5</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>8</span><span class=pl-kos>,</span> <span class=pl-c1>16</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L105" class="blob-num js-line-number js-blob-rnum" data-line-number="105"></td> <td id="file-randomdata-js-LC105" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L106" class="blob-num js-line-number js-blob-rnum" data-line-number="106"></td> <td id="file-randomdata-js-LC106" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>dateOffset</span> <span class=pl-c1>=</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-c1>0</span><span class=pl-kos>,</span><span class=pl-c1>7</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L107" class="blob-num js-line-number js-blob-rnum" data-line-number="107"></td> <td id="file-randomdata-js-LC107" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>dt</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Date</span><span class=pl-kos>(</span><span class=pl-s1>dtS</span><span class=pl-kos>.</span><span class=pl-en>getFullYear</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-s1>dtS</span><span class=pl-kos>.</span><span class=pl-en>getMonth</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-s1>dtS</span><span class=pl-kos>.</span><span class=pl-en>getDate</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s1>dateOffset</span><span class=pl-kos>,</span> <span class=pl-en>randomNumber</span><span class=pl-kos>(</span><span class=pl-s1>dateOffset</span> <span class=pl-c1>===</span> <span class=pl-c1>0</span> ? <span class=pl-s1>dtS</span><span class=pl-kos>.</span><span class=pl-en>getHours</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-c1>2</span> : <span class=pl-c1>8</span><span class=pl-kos>,</span> <span class=pl-c1>18</span><span class=pl-kos>)</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>,</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L108" class="blob-num js-line-number js-blob-rnum" data-line-number="108"></td> <td id="file-randomdata-js-LC108" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L109" class="blob-num js-line-number js-blob-rnum" data-line-number="109"></td> <td id="file-randomdata-js-LC109" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>workItem</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-randomdata-js-L110" class="blob-num js-line-number js-blob-rnum" data-line-number="110"></td> <td id="file-randomdata-js-LC110" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>id</span>: <span class=pl-s1>i</span> <span class=pl-c1>*</span> <span class=pl-s1>totalWorkItems</span> <span class=pl-c1>+</span> <span class=pl-s1>j</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L111" class="blob-num js-line-number js-blob-rnum" data-line-number="111"></td> <td id="file-randomdata-js-LC111" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>name</span>: <span class=pl-s>'work item '</span> <span class=pl-c1>+</span> <span class=pl-s1>j</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L112" class="blob-num js-line-number js-blob-rnum" data-line-number="112"></td> <td id="file-randomdata-js-LC112" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>lane</span>: <span class=pl-s>'lane '</span> <span class=pl-c1>+</span> <span class=pl-s1>i</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L113" class="blob-num js-line-number js-blob-rnum" data-line-number="113"></td> <td id="file-randomdata-js-LC113" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>start</span>: <span class=pl-s1>dtS</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L114" class="blob-num js-line-number js-blob-rnum" data-line-number="114"></td> <td id="file-randomdata-js-LC114" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>end</span>: <span class=pl-s1>dt</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-randomdata-js-L115" class="blob-num js-line-number js-blob-rnum" data-line-number="115"></td> <td id="file-randomdata-js-LC115" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>desc</span>: <span class=pl-s>'This is a description.'</span></td> </tr> <tr> <td id="file-randomdata-js-L116" class="blob-num js-line-number js-blob-rnum" data-line-number="116"></td> <td id="file-randomdata-js-LC116" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L117" class="blob-num js-line-number js-blob-rnum" data-line-number="117"></td> <td id="file-randomdata-js-LC117" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L118" class="blob-num js-line-number js-blob-rnum" data-line-number="118"></td> <td id="file-randomdata-js-LC118" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>data</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-s1>workItem</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L119" class="blob-num js-line-number js-blob-rnum" data-line-number="119"></td> <td id="file-randomdata-js-LC119" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L120" class="blob-num js-line-number js-blob-rnum" data-line-number="120"></td> <td id="file-randomdata-js-LC120" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-randomdata-js-L121" class="blob-num js-line-number js-blob-rnum" data-line-number="121"></td> <td id="file-randomdata-js-LC121" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-s1>data</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L122" class="blob-num js-line-number js-blob-rnum" data-line-number="122"></td> <td id="file-randomdata-js-LC122" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L123" class="blob-num js-line-number js-blob-rnum" data-line-number="123"></td> <td id="file-randomdata-js-LC123" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L124" class="blob-num js-line-number js-blob-rnum" data-line-number="124"></td> <td id="file-randomdata-js-LC124" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-en>parseData</span><span class=pl-kos>(</span><span class=pl-en>generateRandomWorkItems</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L125" class="blob-num js-line-number js-blob-rnum" data-line-number="125"></td> <td id="file-randomdata-js-LC125" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L126" class="blob-num js-line-number js-blob-rnum" data-line-number="126"></td> <td id="file-randomdata-js-LC126" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L127" class="blob-num js-line-number js-blob-rnum" data-line-number="127"></td> <td id="file-randomdata-js-LC127" class="blob-code blob-code-inner js-file-line"> <span class=pl-c>/**</span></td> </tr> <tr> <td id="file-randomdata-js-L128" class="blob-num js-line-number js-blob-rnum" data-line-number="128"></td> <td id="file-randomdata-js-LC128" class="blob-code blob-code-inner js-file-line"><span class=pl-c> * Allow library to be used within both the browser and node.js</span></td> </tr> <tr> <td id="file-randomdata-js-L129" class="blob-num js-line-number js-blob-rnum" data-line-number="129"></td> <td id="file-randomdata-js-LC129" class="blob-code blob-code-inner js-file-line"><span class=pl-c> */</span></td> </tr> <tr> <td id="file-randomdata-js-L130" class="blob-num js-line-number js-blob-rnum" data-line-number="130"></td> <td id="file-randomdata-js-LC130" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>root</span> <span class=pl-c1>=</span> <span class=pl-k>typeof</span> <span class=pl-s1>exports</span> <span class=pl-c1>!==</span> <span class=pl-s>"undefined"</span> <span class=pl-c1>&&</span> <span class=pl-s1>exports</span> <span class=pl-c1>!==</span> <span class=pl-c1>null</span> ? <span class=pl-s1>exports</span> : <span class=pl-smi>window</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L131" class="blob-num js-line-number js-blob-rnum" data-line-number="131"></td> <td id="file-randomdata-js-LC131" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-c1>randomData</span> <span class=pl-c1>=</span> <span class=pl-v>RandomData</span><span class=pl-kos>;</span></td> </tr> <tr> <td id="file-randomdata-js-L132" class="blob-num js-line-number js-blob-rnum" data-line-number="132"></td> <td id="file-randomdata-js-LC132" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-randomdata-js-L133" class="blob-num js-line-number js-blob-rnum" data-line-number="133"></td> <td id="file-randomdata-js-LC133" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>call</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td> </tr> </table> </div> </div> </div> </div> <a name="comments"></a> <div class="js-quote-selection-container" data-quote-markdown=".js-comment-body"> <div class="js-discussion " > <div class="ml-md-6 pl-md-3 ml-0 pl-0"> <!-- Rendered timeline since 2024-09-28 19:37:35 --> <div id="partial-timeline-marker" class="js-timeline-marker js-updatable-content" data-last-modified="Sun, 29 Sep 2024 02:37:35 GMT" > </div> </div> <div class="discussion-timeline-actions"> <div data-view-component="true" class="flash flash-warn mt-3"> <a rel="nofollow" class="btn btn-primary" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"signed out comment","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="2c781560faf7f0ab77ea4632d7b58e8f6f8a18bad7f3e1907c17ccba411e9ebf" href="/join?source=comment-gist">Sign up for free</a> <strong>to join this conversation on GitHub</strong>. Already have an account? <a rel="nofollow" class="Link--inTextBlock" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"signed out comment","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/bunkat/1962173","user_id":null}}" data-hydro-click-hmac="af93573ba67cffee994809a81ef534eaa435f94046c7195df2f8f09e11dca566" data-test-selector="comments-sign-in-link" href="/login?return_to=https%3A%2F%2Fgist.github.com%2Fbunkat%2F1962173">Sign in to comment</a> </div> </div> </div> </div> </div> </div> </div><!-- /.container --> </main> </div> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <span> © 2025 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can鈥檛 perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>