{"id":27155728,"url":"https://github.com/locusenergy/ember-d3-helpers","last_synced_at":"2025-10-11T01:39:08.066Z","repository":{"id":57223621,"uuid":"53536857","full_name":"LocusEnergy/ember-d3-helpers","owner":"LocusEnergy","description":"Collection of Ember.js helpers for building composable D3 charts","archived":false,"fork":false,"pushed_at":"2022-12-07T11:09:41.000Z","size":1586,"stargazers_count":34,"open_issues_count":15,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-11T01:39:07.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LocusEnergy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-09T22:34:22.000Z","updated_at":"2025-01-30T14:32:14.000Z","dependencies_parsed_at":"2023-01-24T16:45:59.445Z","dependency_job_id":null,"html_url":"https://github.com/LocusEnergy/ember-d3-helpers","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/LocusEnergy/ember-d3-helpers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LocusEnergy%2Fember-d3-helpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LocusEnergy%2Fember-d3-helpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LocusEnergy%2Fember-d3-helpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LocusEnergy%2Fember-d3-helpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LocusEnergy","download_url":"https://codeload.github.com/LocusEnergy/ember-d3-helpers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LocusEnergy%2Fember-d3-helpers/sbom","scorecard":{"id":85325,"data":{"date":"2025-08-11","repo":{"name":"github.com/LocusEnergy/ember-d3-helpers","commit":"cc77e9b6469def638ba1624a902e340270987032"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 8/22 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"134 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-pp7h-53gx-mx7r","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-p6mr-pxg4-68hx","Warn: Project is vulnerable to: GHSA-832h-xg76-4gv6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-c6rq-rjc2-86v2","Warn: Project is vulnerable to: GHSA-wxhq-pm8v-cw75","Warn: Project is vulnerable to: GHSA-g74r-ffvr-5q9f","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-36jr-mh4h-2g58","Warn: Project is vulnerable to: GHSA-9vvw-cc9w-f27h","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-hr2v-3952-633q","Warn: Project is vulnerable to: GHSA-h6ch-v84p-w6p9","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-j4f2-536g-r55m","Warn: Project is vulnerable to: GHSA-r7qp-cfhv-p84w","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-qrmc-fj45-qfc2","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-xf7w-r453-m56c","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-44pw-h2cw-w3vq","Warn: Project is vulnerable to: GHSA-jp4x-w63m-7wgm","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-4hpf-3wq7-5rpr","Warn: Project is vulnerable to: GHSA-f522-ffg8-j8r6","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-282f-qqgm-c34q","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-2m96-9w4j-wgv7","Warn: Project is vulnerable to: GHSA-h726-x36v-rx45","Warn: Project is vulnerable to: GHSA-6vfc-qv3f-vr6c","Warn: Project is vulnerable to: GHSA-f9cm-qmx5-m98h","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-hxm2-r34f-qmc5","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-56x4-j7p9-fcf9","Warn: Project is vulnerable to: GHSA-v78c-4p63-2j6c","Warn: Project is vulnerable to: GHSA-gwg9-rgvj-4h5j","Warn: Project is vulnerable to: GHSA-pc58-wgmc-hfjr","Warn: Project is vulnerable to: GHSA-vvv8-xw5f-3f88","Warn: Project is vulnerable to: GHSA-w9mr-4mfr-499f","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-ph34-pc88-72gc","Warn: Project is vulnerable to: GHSA-m6cx-g6qm-p2cx","Warn: Project is vulnerable to: GHSA-x8qc-rrcw-4r46","Warn: Project is vulnerable to: GHSA-4328-8hgf-7wjr","Warn: Project is vulnerable to: GHSA-93f3-23rq-pjfp","Warn: Project is vulnerable to: GHSA-pw54-mh39-w3hc","Warn: Project is vulnerable to: GHSA-xgh6-85xh-479p","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-q75g-2496-mxpp","Warn: Project is vulnerable to: GHSA-6fx8-h7jm-663j","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-xfhp-gmh8-r8v2","Warn: Project is vulnerable to: GHSA-gqgv-6jq5-jjj9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-6g33-f262-xjp4","Warn: Project is vulnerable to: GHSA-7xfp-9c55-5vqj","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-fxwf-4rqh-v8g3","Warn: Project is vulnerable to: GHSA-25hc-qcg6-38wj","Warn: Project is vulnerable to: GHSA-xfhh-g9f5-x4m4","Warn: Project is vulnerable to: GHSA-qm95-pgcg-qqfq","Warn: Project is vulnerable to: GHSA-cqmj-92xf-r6r9","Warn: Project is vulnerable to: GHSA-2m39-62fm-q8r3","Warn: Project is vulnerable to: GHSA-mf6x-7mm4-x2g7","Warn: Project is vulnerable to: GHSA-j44m-qm6p-hp7m","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-qhv9-728r-6jqg","Warn: Project is vulnerable to: GHSA-g7q5-pjjr-gqvp","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-xc7v-wxcw-j472","Warn: Project is vulnerable to: GHSA-cf4h-3jhx-xvhq","Warn: Project is vulnerable to: GHSA-v2p6-4mp7-3r9v","Warn: Project is vulnerable to: GHSA-g78m-2chm-r7qv","Warn: Project is vulnerable to: GHSA-5v72-xg48-5rpm","Warn: Project is vulnerable to: GHSA-h6q6-9hqw-rwfv","Warn: Project is vulnerable to: GHSA-5fg8-2547-mr8q","Warn: Project is vulnerable to: GHSA-crh6-fp67-6883","Warn: Project is vulnerable to: GHSA-72mh-269x-7mh5","Warn: Project is vulnerable to: GHSA-h4j5-c7cj-74xg","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T06:49:08.948Z","repository_id":57223621,"created_at":"2025-08-15T06:49:08.948Z","updated_at":"2025-08-15T06:49:08.948Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005929,"owners_count":26083986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-08T19:56:45.237Z","updated_at":"2025-10-11T01:39:08.010Z","avatar_url":"https://github.com/LocusEnergy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/LocusEnergy/ember-d3-helpers.svg?branch=master)](https://travis-ci.org/LocusEnergy/ember-d3-helpers)\n\n\u003c!-- [![Code Climate](https://codeclimate.com/github/spencer516/ember-d3-helpers/badges/gpa.svg)](https://codeclimate.com/github/spencer516/ember-d3-helpers)\n[![Ember Observer Score](http://emberobserver.com/badges/ember-d3-helpers.svg)](http://emberobserver.com/addons/ember-d3-helpers)\n --\u003e\n\n# ember-d3-helpers\n\nThis library provides a collection of helpers for building D3 graphs via Ember.js templates.\nComponent and helpers provided in this library are intended to be primitives that one could use to build a D3 graphs.\n\nSupport for more features is ongoing.\n\n## Configuration\n\nCurrently, there are no configuration options for this addon in `config/environment.js`. At the moment, this addon will add all the required `d3` dependencies.\n\n## Live Examples\n\nYou can view a demo of a few ways to use these helpers [here](http://locusenergy.github.io/ember-d3-helpers).\nCheckout [`ember-sparkles`](https://github.com/LocusEnergy/ember-sparkles) to see example implementations using these primitives.\n\n## Components\n* [`d3-graph`](#d3-graph)\n* [`d3-element`](#d3-element)\n\n## Helpers\n* [Selection Helpers](#selection-helpers)\n  - [`d3-select`](#d3-select)\n  - [`d3-select-all`](#d3-select-all)\n  - [`d3-join`](#d3-join)\n  - [`d3-attr`](#d3-attr)\n  - [`d3-call`](#d3-call)\n* [Shape helpers](#shape-helpers)\n  - [`d3-arc`](#d3-arc)\n  - [`d3-area`](#d3-area)\n  - [`d3-line`](#d3-line)  \n  - [`d3-pie`](#d3-pie)\n* [Transition Helpers](#transition-helpers)\n  - [`d3-transition`](#d3-transition-transition)\n  - [`d3-transition-delay`](#d3-transition-delay-amount)\n  - [`d3-attr-tween`](#d3-attr-tween)\n* [Linear Scales](#linear-scales)\n\t- [`linear-scale`](#linear-scale)\n\t- [`time-scale`](#time-scale)\n  - [`seq-color-scale`](#seq-color-scale)\n* [Ordinal Scales](#ordinal-scales)\n\t- [`band-scale`](#band-scale)\n\t- [`point-scale`](#point-scale)\n  - [`cat-color-scale`](#cat-color-scale)\n* [Scale Derivatives](#scale-derivatives)\n\t- [`scale-tics`](#scale-ticks)\n\t- [`scale-value`](#scale-value)\n* [Misc Helpers](#misc-helpers)\n\t- [`immut-array`](#immut-array)\n\t- [`time-interval`](#time-interval)\n\n# Usage\n\n## `{{d3-graph}}`\n\n`d3-graph` is used to provide root level\nselection to render discrete D3 elements, such as SVG `\u003csvg\u003e` and groups `\u003cg\u003e`.\nYou can change this with by specifying the component's `tagName`\n(ie `{{d3-graph (pipe ...) tagName=\"svg\"}}`).\n\nIt can be used inline.\n\n```hbs\n{{d3-graph (pipe\n  (d3-attr \"name\" \"fred\")\n)}}\n```\n\nIt can be nested to allow multiple graph pipes to be rendered into the root component.\n\n```hbs\n{{#d3-graph as |d3|}}\n  {{d3.graph (pipe ...)}}\n  {{d3.graph (pipe ...)}}\n{{/d3-graph}}\n```\n\nYou can pass a graph pipe into the parent component. The nested components will receive selection that's a result of the parent's graph pipe.\n\n```hbs\n{{#d3-graph (pipe\n    (d3-select-all \"rect\")\n    (d3-data data)\n  ) as |d3|}}\n  {{! selection here will be result of pipe above }}\n  {{d3.graph (pipe ...)}}\n  {{d3.graph (pipe ...)}}\n{{\n```\n----------\n\n\n## `{{d3-element}}`\n\n`d3-element` is used to render simple SVG elements using d3's dynamic data join.\n\n#### Properties\n\n_required_\n* `element-name`: a string specifying the type of SVG element to render (`circle`, `rect`, etc.)\n* `data`: data to be bound to the component\n\n_optional_\n* `selector`: a unique selector string\n* `data-accessor`: accessor function to pass to d3's data join method\n* `transition`: a d3 transition object\n\n\n#### Configurable Pipes\n\n_required_\n* `on-enter`\n\n_optional_\n* `enter-transition`\n* `update-transition`\n* `on-update`: if not provided, the post-transition update step uses `on-enter` (mirrors typical D3 behavior)\n* `exit-transition`\n* `on-exit`\n\n#### example\n```hbs\n{{d3-element\n  element-name='circle'\n  selector='rotator'\n  data=points\n  on-enter=(pipe\n    (d3-attr 'cx' (r/get 'cx'))\n    (d3-attr 'cy' (r/get 'cy'))\n    (d3-attr 'r' 3)\n  )\n  update-transition=(pipe\n    (d3-attr 'r' 0)\n  )\n  on-exit=(pipe\n    (d3-attr 'r' 200)\n  )\n}}\n\n```\n\n----------\n\n### Selection Helpers\n\n#### `(d3-select selector)`\n[D3 Select](https://github.com/d3/d3-selection#select)\n\nSelect an element matching selector and return a selection object.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select \"#my-link\")\n  (d3-attr \"name\" \"fred\")\n)}}\n```\n\n#### `(d3-select-all selector)`\n[D3 Select All](https://github.com/d3/d3-selection#selectAll)\n\nSelects all elements that match the specified selector string.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select-all \"rect\")\n  (d3-data data)\n  (d3-style \"color\" \"red\")\n)}}\n```\n\n#### `(d3-data data [key])`\n[D3 Data](https://github.com/d3/d3-selection#selection_data)\n\nJoins the specified array of data with the selected elements, returning a new selection that it represents the update selection: the elements successfully bound to data.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select-all \"rect\")\n  (d3-data data key)\n  (d3-join\n    enter=(pipe\n      (d3-append \"rect\")\n      (d3-text (r/get \"number\"))\n    )\n  )\n)}}\n```\n\n#### `(d3-join [enter=] [update=] [exit=])`\n\nHelper for implementing D3's general update pattern. This helper doesn't have a corresponding function in the API because\nthis helper represents a pattern rather than a specific function in the API. Use it when you need to specify `selection.enter().update().exit()`.\n\nRead more about [D3's General Update Pattern](https://bl.ocks.org/mbostock/3808218).\n\n```hbs\n{{d3-graph (pipe\n  (d3-select \"svg\")\n  (d3-select-all \"rect\")\n  (d3-data data)\n  (d3-join\n    enter=(pipe\n      (d3-append \"rect\")\n      (d3-text (r/param))\n    )\n    update=(pipe\n      (d3-text (r/param))\n    )\n    exit=(pipe\n      (d3-remove)\n    )\n  )\n)}}\n```\n\n#### `(d3-attr name value)`\n[D3 Attr](https://github.com/d3/d3-selection#selection_attr)\n\nSet attribute with specified name to specified value. Value can be a string or a function.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select \".myelement\")\n  (d3-attr \"name\" name)\n)}}\n```\n\n#### `(d3-call (pipe ...))`\n[D3 Call](https://github.com/d3/d3-selection#selection_call)\n\nInvokes the specified function exactly once, passing in this selection along with any optional arguments.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select \".test-items\")\n  (d3-call (pipe\n    (d3-select-all \".car\")\n    (d3-attr \"color\" \"red\")\n  ))\n  (d3-call (pipe\n    (d3-select-all \".boat\")\n    (d3-attr \"color\" \"blue\")\n  ))\n  (d3-append 'i')\n  (d3-attr \"class\" \"truck\")\n)}}\n```\n#### `(d3-on typenames [listener [capture]])`\n[D3 On](https://github.com/d3/d3-selection#selection_on)\n\nAdds or removes a _listener_ to each selected element for the specified event\n_typenames_. The specified _listener_ will be evaluated for each selected\nelement, being passed the current datum (_d_), the current index (_i_), and the\ncurrent group (_nodes_), with this as the current DOM element.\n\nAn optional _capture_ flag may be specified which corresponds to the W3C\n[useCapture flag](https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration).\n\n```hbs\n{{d3-graph (pipe\n  (d3-select \".test-items\")\n  (d3-call (pipe\n    (d3-select-all \".car\")\n    (d3-on \"click\" listener)\n  ))\n)}}\n```\n\n----------\n\n\n### Shape Helpers\n\n### `(d3-arc params {innerRadius, outerRadius, startAngle, endAngle})`\n[D3 Arc](https://github.com/d3/d3-shape/blob/master/README.md#arcs)\n\nThe arc generator produces a circular or annular sector, as in a pie or donut chart.\n\n\n### `(d3-area [xScale, yScale] {xAccessor, yAccessor})`\n[D3 Areas](https://github.com/d3/d3-shape/blob/master/README.md#areas)\n\nThe area generator produces an area, as in an area chart.\n\n```hbs\n{{d3-graph\n  (pipe\n    (d3-select-all 'path')\n    (d3-data data)\n    (d3-join\n      enter=(pipe\n        (d3-append 'path')\n        (d3-attr 'd'\n          (d3-area\n            xScale\n            yScale\n            xAccessor=(d3-get 'x')\n            yAccessor=(d3-get 'y')\n          )\n        )\n      )\n    )\n  )\n}}\n```\n\n### `(d3-line [xScale, yScale] {xAccessor, yAccessor})`\n[D3 Lines](https://github.com/d3/d3-shape/blob/master/README.md#lines)\n\nThe line generator produces a spline or polyline, as in a line chart.\n\n----------\n\n\n### Transition Helpers\n\n#### `(d3-transition [transition])`\n[D3 Transition](https://github.com/d3/d3-transition/blob/master/README.md#transition)\n\nApply transition to a selection. Transition can be a name for this transition or a parent transition.\n\n```hbs\n{{d3-graph (pipe\n  (d3-select-all \"rect\")\n  (d3-data data)\n  (d3-join\n    enter=(pipe\n      (d3-append \"rect\")\n      (d3-attr height)\n      (d3-transition)\n      (d3-attr (r/get \"y\"))\n  ))\n)}}\n```\n\n#### `(d3-transition-delay amount)`\n[D3 Transition Delay](https://github.com/d3/d3-transition/blob/master/README.md#transition_delay)\n\nApply a delay to a transition. Must be chained behind a transition.\n\n```hbs\n{{d3-graph (pipe\n  (d3-join\n    enter=(pipe\n      (d3-append \"rect\")\n      (d3-attr height)\n      (d3-transition)\n      (d3-delay 300)\n      (d3-attr (r/get \"y\"))\n  ))\n)}}\n```\n\n#### `(d3-attr-tween)`\n[D3 Attr Tween](https://github.com/d3/d3-transition/blob/master/README.md#transition_attrTween)\n\nFor each selected element, creates a tween for the attribute with the specified name with the specified interpolator value.\n\nGood description of `transition.attrTween` can be found in [this example](http://bl.ocks.org/cmdoptesc/6228457).\n\n----------\n\n### Linear scales\n\n#### `linear-scale`\n[D3 Linear Scale](https://github.com/d3/d3-scale#linear-scales)\n\n```js\nexport default Ember.Component.extend({\n  domain: [0, 10],\n  range: [0, 100]\n});\n```\n\n```hbs\n{{#with (linear-scale domain range nice=true) as |scale|}}\n  \u003cspan\u003eI am {{scale-value scale 5}} 50 years old.\u003c/span\u003e\n{{/with}}\n```\n\n#### `time-scale`\n[D3 Time Scale](https://github.com/d3/d3-scale#time-scales)\n\n```js\nexport default Ember.Component.extend({\n  domain: [\n    new Date(2016, 2, 1),\n    new Date(2016, 2, 31)\n  ]\n});\n```\n\n```hbs\n{{#with (time-scale domain) as |scale|}}\n  {{#each (scale-ticks scale (time-interval 'day')) as |date|}}\n    \u003ca\u003e{{date}}\u003c/a\u003e\n  {{/each}}\n{{/with}}\n```\n### `seq-color-scale`\nSequential color scale description.\n\n### Ordinal scales\n\n#### `band-scale`\nBand scale description\n\n#### `point-scale`\nPoint Scale description\n\n#### `cat-color-scale`\nCategorical color scale.\n\n----------\n\n### Scale Derivatives\n\n#### `scale-ticks`\nScale ticks\n\n#### `scale-value`\nGet the calculated value from a scale\n\n----------\n\n### Misc Helpers\n\n#### `immut-array`\nImmutable array helper description\n\n#### `time-interval`\nA time interval helper.\n\n----------\n\n\n## Installation\n\n* `git clone \u003crepository-url\u003e` this repository\n* `cd ember-d3-helpers`\n* `npm install`\n* `bower install`\n\n## Running\n\n* `ember serve`\n* Visit your app at [http://localhost:4200](http://localhost:4200).\n\n## Running Tests\n\n* `npm test` (Runs `ember try:each` to test your addon against multiple Ember versions)\n* `ember test`\n* `ember test --server`\n\n## Building\n\n* `ember build`\n\nFor more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocusenergy%2Fember-d3-helpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocusenergy%2Fember-d3-helpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocusenergy%2Fember-d3-helpers/lists"}