{"id":15295263,"url":"https://github.com/igniteui/igniteui-angularjs","last_synced_at":"2025-10-11T20:34:45.416Z","repository":{"id":14500208,"uuid":"17213353","full_name":"IgniteUI/igniteui-angularjs","owner":"IgniteUI","description":"Ignite UI extensions for AngularJS","archived":false,"fork":false,"pushed_at":"2024-01-09T07:41:53.000Z","size":1788,"stargazers_count":105,"open_issues_count":17,"forks_count":33,"subscribers_count":61,"default_branch":"master","last_synced_at":"2025-09-11T19:26:41.258Z","etag":null,"topics":["angularjs","angularjs-directives","extensions","ignite-ui","infragistics"],"latest_commit_sha":null,"homepage":"http://igniteui.github.io/igniteui-angularjs","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IgniteUI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-02-26T14:33:56.000Z","updated_at":"2025-01-22T10:39:14.000Z","dependencies_parsed_at":"2024-10-23T14:02:56.317Z","dependency_job_id":null,"html_url":"https://github.com/IgniteUI/igniteui-angularjs","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/IgniteUI/igniteui-angularjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Figniteui-angularjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Figniteui-angularjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Figniteui-angularjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Figniteui-angularjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgniteUI","download_url":"https://codeload.github.com/IgniteUI/igniteui-angularjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgniteUI%2Figniteui-angularjs/sbom","scorecard":{"id":65580,"data":{"date":"2025-08-11","repo":{"name":"github.com/IgniteUI/igniteui-angularjs","commit":"2a2e33ff18db3ede591f19d097bbdaec320b7a4a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"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":"Code-Review","score":6,"reason":"Found 7/11 approved changesets -- score normalized to 6","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":"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/node.js.yml:1","Warn: no topLevel permission defined: .github/workflows/npm-publish.yml:1","Info: no jobLevel write permissions found"],"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":"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":"Pinned-Dependencies","score":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/IgniteUI/igniteui-angularjs/node.js.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/IgniteUI/igniteui-angularjs/node.js.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/node.js.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/IgniteUI/igniteui-angularjs/node.js.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/IgniteUI/igniteui-angularjs/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/IgniteUI/igniteui-angularjs/npm-publish.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   2 out of   2 npmCommand dependencies pinned"],"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: license.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"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":"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 28 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":"53 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-jc84-3g44-wf2q","Warn: Project is vulnerable to: GHSA-273r-mgr4-v34f","Warn: Project is vulnerable to: GHSA-r7qp-cfhv-p84w","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-j383-35pm-c5h4","Warn: Project is vulnerable to: GHSA-rm36-94g8-835r","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-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-jg8v-48h5-wgxg","Warn: Project is vulnerable to: GHSA-36fh-84j7-cv5h","Warn: Project is vulnerable to: GHSA-7x7c-qm48-pq9c","Warn: Project is vulnerable to: GHSA-rc3x-jf5g-xvc5","Warn: Project is vulnerable to: GHSA-82v2-mx6x-wq7q","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","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-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-25hc-qcg6-38wj","Warn: Project is vulnerable to: GHSA-qm95-pgcg-qqfq","Warn: Project is vulnerable to: GHSA-cqmj-92xf-r6r9","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-xc7v-wxcw-j472","Warn: Project is vulnerable to: GHSA-fhg7-m89q-25r3","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-776f-qx25-q3cc"],"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-15T02:31:26.368Z","repository_id":14500208,"created_at":"2025-08-15T02:31:26.368Z","updated_at":"2025-08-15T02:31:26.368Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008619,"owners_count":26084480,"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-11T02:00:06.511Z","response_time":55,"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":["angularjs","angularjs-directives","extensions","ignite-ui","infragistics"],"created_at":"2024-09-30T17:09:15.281Z","updated_at":"2025-10-11T20:34:45.386Z","avatar_url":"https://github.com/IgniteUI.png","language":"JavaScript","readme":"﻿# Ignite UI directives for AngularJS\n\n[![Node.js CI](https://github.com/IgniteUI/igniteui-angularjs/actions/workflows/node.js.yml/badge.svg)](https://github.com/IgniteUI/igniteui-angularjs/actions/workflows/node.js.yml)\n[![Coverage Status](https://coveralls.io/repos/github/IgniteUI/igniteui-angularjs/badge.svg?branch=master)](https://coveralls.io/github/IgniteUI/igniteui-angularjs?branch=master)\n[![npm version](https://badge.fury.io/js/igniteui-angularjs.svg)](https://badge.fury.io/js/igniteui-angularjs)\n\nUse the directives found in `igniteui-angularjs.js` to use [Ignite UI](http://igniteui.com) controls in [AngularJS](http://angularjs.com) pages. [Work with the running samples here](http://igniteui.github.io/igniteui-angularjs) or quickly bootstrap your AngularJS project with this preconfigured application - [Ignite UI AngularJS seed](https://github.com/IgniteUI/igniteui-angularjs-seed/).\n\n**IMPORTANT** The repository has been renamed from `igniteui-angular` to `igniteui-angularjs`. This is to avoid confusion caused by the new [naming convention](https://medium.com/google-developer-experts/angular-new-naming-guidelines-eacbebd09363) of Angular. \n\n# Requirements\n\n- [jQuery](http://www.jquery.com) v1.8 and later\n- [AngularJS](http://www.angularjs.org) v1.0 and later\n- [Ignite UI](http://www.igniteui.com) 13.1 and later\n\n\u003e **Note:** The Ignite UI AngularJS directives *do not* work with the Ignite UI ASP.NET MVC Helpers\n\n# Install\n\nYou can install this package either with `npm` or with `bower`. This is a development repo!  \n\n`igniteui-angularjs` depends on the `ignite-ui-full` licensed package. Follow [this guide](https://www.igniteui.com/help/using-ignite-ui-npm-packages) on setting up access to the Ignite UI private npm feed and add the dependency to the `package.json`.\n\n```\n\"dependencies\": {\n\t\"@infragistics/ignite-ui-full\": \"latest\"\n}\n```\n\n### npm\n\n```shell\nnpm install igniteui-angularjs\n```\n\n### bower\n\n```shell\nbower install igniteui-angularjs\n```\n\n# Building\nBuild will produce an obfuscated and minified version of the `src/igniteui-angularjs.js` in the `dist/igniteui-angularjs.min.js`.  \nThe build will also put the original and the minified version of the `src/igniteui-angularjs.js` in the `dist/npm` for distribution to npm.\nThe build uses [Grunt](http://gruntjs.com/), so you need [Node.js](http://nodejs.org/) installed on your machine.  \nTo build the project use the following steps:\n\n1. Open a console in the folder where the **igniteui-angularjs** project is located\n2. Run `npm install`\n3. Run `grunt build`\n\n# Getting Started\n\nThere are two ways of getting started with the Ignite UI directives. The first one is to use the Ignite UI AngularJS quick start application which is described below. The other way is to configure the application yourself following the page setup instructions step by step.\n\n## Ignite UI AngularJS quick start application\n\n[Ignite UI AngularJS seed](https://github.com/IgniteUI/igniteui-angular-seed/) is an application skeleton for a typical AngularJS web app using the Ignite UI directives for AngularJS. You can use it to quickly bootstrap your angular webapp projects and dev environment for these projects.\n\nThe seed contains a sample AngularJS application and is preconfigured to install the Angular framework and a bunch of development and testing tools for instant web development gratification.\n\n## Page setup\n\nIn the page markup include the Ignite UI AngularJS directives file found in `dist/igniteui-angularjs.min.js` along with the Ignite UI scripts:\n\n\t\u003cscript src=\"jquery.min.js\"\u003e\u003c/script\u003e\n\t\u003cscript src=\"jquery-ui.min.js\"\u003e\u003c/script\u003e\n\t\u003cscript src=\"angular.min.js\"\u003e\u003c/script\u003e\n\n\t\u003cscript src=\"infragistics.core.js\"\u003e\u003c/script\u003e\n\t\u003cscript src=\"infragistics.lob.js\"\u003e\u003c/script\u003e\n\n\t\u003cscript src=\"igniteui-angularjs.min.js\"\u003e\u003c/script\u003e\n\t\nReference the `igniteui-directives` in your AngularJS module:\n\n\tvar sample_app = angular.module('igniteui-sample-app', ['igniteui-directives']);\n\n## Initializing controls\nControls can be initialized in two ways: \n\n1. Markup Initialization: directly in an HTML page by using custom tags\n2. Controller Initialization: a control placeholder is located in an HTML page, but its initialization options are located in the page controller\n\n\u003ca id=\"markup\"\u003e\u003c/a\u003e\n## Markup Initialization\n\n### Custom tags\nEach control implements a custom tag directive where the tag name is formed by splitting each capital letter in the control name with the `-` symbol (This naming convention follows the standard AngularJS normalization process).\n\n**Note**: It is recommended to use closing tags (`\u003c/ig-combo\u003e`) over the self-closing tags (`\u003cig-combo/\u003e`), because the latter are known to make issues on some browsers (depending on the used document mode).\n\n#### Examples:\n\n|  Control Name   |          Tag          |\n|-----------------|-----------------------|\n| igCombo         | `\u003cig-combo\u003e`          |\n| igGrid          | `\u003cig-grid\u003e`           |\n| igDataChart     | `\u003cig-data-chart\u003e`     |\n| igDialog        | `\u003cig-dialog\u003e`         |\n| igDateEditor    | `\u003cig-date-editor\u003e`    |\n| igEditor        | `\u003cig-editor\u003e`         |\n| igMaskEditor    | `\u003cig-mask-editor\u003e`    |\n| igNumericEditor | `\u003cig-numeric-editor\u003e` |\n| igPercentEditor | `\u003cig-percent-editor\u003e` |\n| igTextEditor    | `\u003cig-text-editor\u003e`    |\n| igDatePicker    | `\u003cig-date-picker\u003e`    |\n| igTree          | `\u003cig-tree\u003e`           |\n| igMap           | `\u003cig-map\u003e`            |\n| igUpload        | `\u003cig-upload\u003e`         |\n| igVideoPlayer   | `\u003cig-video-player\u003e`   |\n\n### Configuring Control Options\nSimple type control options (`string`, `number`, `bool` etc.) are configured as an attributes on the control element. The options follow the same naming convention logic as the tag name.\n\n#### Examples:\n\n|               Option                |                  Markup                   |\n|-------------------------------------|-------------------------------------------|\n| igGrid.options.localSchemaTransform | `\u003cig-grid local-schema-transform=\"true\"\u003e` |\n| igCombo.options.caseSensitive       | `\u003cig-combo case-sensitive=\"true\"\u003e`        |\n\nDefining complex type control options (`arrays` \u0026 `objects`) are configured as a child elements of the main control.\n\n#### Example:\n\n\t\u003cig-grid\u003e\n\t\t\u003cfeatures\u003e\n\t\t\t\u003cfeature name=\"Filtering\"\u003e\n\t\t\t\u003c/feature\u003e\n\t\t\u003c/features\u003e\n\t\u003c/ig-grid\u003e\n\n### Handling events\nBinding to control events is done again with attributes. Event attribute names are prefixed with the prefix `event-` followed by the event name delimited with the `-` symbol. Once defined the attribute values corresponds to a function name in the scope so you can gain access to the events.\n\n#### Examples:\n\n|            Event            |                       Markup                         |\n|-----------------------------|------------------------------------------------------|\n|igGrid.events.dataBind       | `\u003cig-grid event-data-bind=\"dataBindHandler\"\u003e`        |\n|igCombo.events.textChanged   | `\u003cig-combo event-text-changed=\"textChangedHandler\"\u003e` |\n|igDateEditor.events.keypress | `\u003cig-date-editor event-keypress=\"keypressHandler\"\u003e`  |\n\n## Controller Initialization\nEach control also implements a custom attribute directive where the attribute name is formed by splitting each capital letter in the control name with the `-` symbol (this naming convention follows the standard AngularJS normalization process) and the attribute value corresponds to the scope object holding the control options.\n\n#### Examples:\n\n|     Control     |                                  Markup                                       |\n|-----------------|-------------------------------------------------------------------------------|\n| igCombo         | `\u003cdiv id=\"combo\" data-ig-combo=\"combo_options\"\u003e\u003c/div\u003e`                        |\n| igGrid          | `\u003ctable id=\"grid\" data-ig-grid=\"grid_options\"\u003e\u003c/table\u003e`                       |\n| igDataChart     | `\u003cdiv id=\"chart\" data-ig-data-chart=\"data_chart_options\"\u003e\u003c/div\u003e`              |\n| igDialog        | `\u003cdiv id=\"dialog\" data-ig-dialog=\"dialog_options\"\u003e\u003c/div\u003e`                     |\n| igDateEditor    | `\u003cinput id=\"dialog\" data-ig-date-editor=\"date_editor_options\"\u003e\u003c/input\u003e`       |\n| igEditor        | `\u003cinput id=\"editor\" data-ig-editor=\"editor_options\"\u003e\u003c/input\u003e`                 |\n| igMaskEditor    | `\u003cinput id=\"editor\" data-ig-mask-editor=\"mask_editor_options\"\u003e\u003c/input\u003e`       |\n| igNumericEditor | `\u003cinput id=\"editor\" data-ig-numeric-editor=\"numeric_editor_options\"\u003e\u003c/input\u003e` |\n| igPercentEditor | `\u003cinput id=\"editor\" data-ig-percent-editor=\"precent_editor_options\"\u003e\u003c/input\u003e` |\n| igTextEditor    | `\u003cinput id=\"editor\" data-ig-text-editor=\"text_editor_options\"\u003e\u003c/input\u003e`       |\n| igDatePicker    | `\u003cinput id=\"editor\" data-ig-date-picker=\"date_picker_options\"\u003e\u003c/input\u003e`       |\n| igTree          | `\u003cul id=\"tree\" data-ig-tree=\"tree_options\"\u003e\u003c/ul\u003e`                             |\n| igMap           | `\u003cdiv id=\"map\" data-ig-map=\"map_options\"\u003e\u003c/div\u003e`                              |\n| igUpload        | `\u003cdiv id=\"upload\" data-ig-upload=\"upload_options\"\u003e\u003c/div\u003e`                     |\n| igVideoPlayer   | `\u003cdiv id=\"video\" data-ig-video-player=\"video_options\"\u003e\u003c/div\u003e`                 |\n\n## Element placeholder considerations\n\nBy default all controls have default element placeholders. You can configure element placeholder by setting the `element` attribute to a name of a DOM element.\n\nExample:\n`\u003cig-text-editor id=\"editor1\" text-mode=\"multiline\" element=\"textarea\"\u003e\u003c/ig-text-editor\u003e`\n\n## One-way Data Binding\nThe following controls currently support one-way data binding:\n\n1. igHtmlEditor\n2. igDataChart\n3. igSparkline\n4. igFunnelChart\n\n## Two-way Data Binding\nThe following controls currently support two-way data binding:\n\n1. igGrid\n2. igCombo\n3. igEditors\n4. igTree\n\n**Note**: When using control API methods which modify the data source outside the AngularJS framework you need to explicitly call [Scope.$apply()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) in order to see AngularJS view updated.\n\n## Testing\nThere are two kinds of tests in igniteui-angularjs: Unit tests and End to End tests. All of them are written in [Jasmine](http://jasmine.github.io/).\n\n#### Setup\nSimply do:\n\n\tnpm install\n\nThe command is preconfigured and it will also call `bower install` behind the scenes. \n\nThen you need to instrument the source file with:\n\n\tnpm run instrument\n\n#### Running Unit Tests\nThe easiest way to run the unit tests is to use the npm script:\n\n\tnpm test\n\nThis will start the [Karma](http://karma-runner.github.io/0.12/index.html) test runner and execute the tests. By default the browser is Chrome.\n\nTo run the tests for a single run you can use:\n\n\tnpm run test-single\n\nTo run the tests on Firefox you can use:\n\n\tnpm run test-single-firefox\n\t\n### End to end testing\nThese tests are run with the [Protractor](https://github.com/angular/protractor) test runner, it simulates interaction.\n\n#### Setup\n\nBefore proceeding you need to download and install the latest version of the stand-alone WebDriver tool:\n\n\tnpm run update-webdriver\n\t\nAfter that make sure you have [Java Development Kit (JDK)](http://www.oracle.com/technetwork/java/javase/downloads/index.html) installed on your machine. It is required for the Standalone Selenium Server.\n\n#### Running tests\n\nSo first the web server should be brought up so that Protractor can execute the tests against it:\n\n\tnpm start\n\nRunning the tests is done with:\n\n\tnpm run protractor\n\n**Note:** You will need to run the protractor on a separate bash\n\n### Code coverage\nAfter running the Karma or Protractor tests by default a coverage will be created for each of them.\n\nTo combine the both reports into one single report you need to execute:\n\n\tnpm run cover-combined\n\t\nAfter that the default directory where you can open the code coverage is igniteui-angularjs/coverage/final/lcov/src.\n\n**Running specific coverage:** \n\nTo view only the Karma coverage you can see it under *coverage/karma/**/lcov-report/src*. \n\nTo view the code coverage only for the Protractor you need to run the command:\n\n\tnpm run cover-protractor\n\nAfter that the location is the same(igniteui-angularjs/coverage/final/lcov/src). That is because the Protractor report is not easily readable by default.\n\n---------------------------------------\n\n## What is Ignite UI? \u0026nbsp;\u0026nbsp;[![Ignite UI Logo](http://infragistics-blogs.github.io/github-assets/logos/igniteui.png)](http://igniteui.com)\n\n[Ignite UI](http://igniteui.com/) is an advanced HTML5+ toolset that helps you create stunning, modern Web apps. Building on jQuery and jQuery UI, it primarily consists of feature rich, high-performing UI controls/widgets such as all kinds of charts, data visualization maps, (hierarchical, editable) data grids, pivot grids, enhanced editors (combo box, masked editors, HTML editor, date picker, to name a few), flexible data source connectors, and a whole lot more.  Too many to list here - check out [the site](http://igniteui.com/) for more info and to [download](https://igniteui.com/download) a trial.\n\nIgnite UI is not just another library created in someone's free time. It is commercial-ready, extremely well-tested, tuned for top performance, designed for good UX, and backed by [Infragistics](http://www.infragistics.com/), an experience-focused company with a track record of over 24 years of experience in providing enterprise-ready, high-performance user interface tools for web, windows and mobile environments.\n\n[![Infragistics Logo](http://infragistics-blogs.github.io/github-assets/logos/infragistics.png)](http://infragistics.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniteui%2Figniteui-angularjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figniteui%2Figniteui-angularjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniteui%2Figniteui-angularjs/lists"}