All Projects → IgniteUI → Igniteui React Wrappers

IgniteUI / Igniteui React Wrappers

Licence: mit
Ignite UI components for React

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Igniteui React Wrappers

Canclearad
一款全自动清除网站广告的Chrome插件,支持通用广告,如百度推广或淘宝天猫等广告;也支持特定网站的广告清除。
Stars: ✭ 65 (-58.86%)
Mutual labels:  extensions
Swifterswift
A handy collection of more than 500 native Swift extensions to boost your productivity.
Stars: ✭ 10,706 (+6675.95%)
Mutual labels:  extensions
Notion Enhancer
an enhancer/customiser for the all-in-one productivity workspace notion.so (app)
Stars: ✭ 3,114 (+1870.89%)
Mutual labels:  extensions
Chrome Extensions Examples
All Chrome Extension examples collected into one repository
Stars: ✭ 1,217 (+670.25%)
Mutual labels:  extensions
Open.channelextensions
A set of extensions for optimizing/simplifying System.Threading.Channels usage.
Stars: ✭ 106 (-32.91%)
Mutual labels:  extensions
Igniteui Angularjs
Ignite UI extensions for AngularJS
Stars: ✭ 111 (-29.75%)
Mutual labels:  extensions
Mathjax Third Party Extensions
A collection of MathJax extensions provided by third-party contributors
Stars: ✭ 61 (-61.39%)
Mutual labels:  extensions
Weihanli.common
common tools,methods,extension methods etc... .net 常用工具类,公共方法,常用扩展方法等,基础类库
Stars: ✭ 152 (-3.8%)
Mutual labels:  extensions
Magentoextensions
Magento Extension Directory 1> Themes Switcher 2> Default Shipping On Cart 3> Upshare 4> Product Image Optimizer 5> Idealo Product Export 6> magento Google shopping Api v2 7>Google feed and facebook feed 8> Pdf upload in magento media wysiwyg 9> Product Image optimizer. If You want magento 2 extensions 1>Advance Layred Navigation(including SEO URL, Rating as filter, slider filter, Ajax Filtering), 2>Attribute Pages with SEO and Custom URL key(you can do all kind of seo on those pages with logos) 3>Improved Sorting (Enable users to view products by options as 'Best Sellers', 'Top Rated', 'Most Viewed' etc.) 4>Custom Stock Status(Add statuses to products automatically or manually, Create multiple custom stock statuses, Upload special icons for stock statuses) 5>Product Labels(Using this extension you can add any label to your produts on product page or category page) 6>Custom Order Number(Using this extension you can customize order, invoice, shippment, credit memo Number) 7>All type of file upload in Wysiwyg(pdf, zip, doc etc file upload in wysiwyg), 8>Infinite Scroll, 9>Multiple FlatRate Shipping, 10>Open Api,Google api for currency Rates, 11>Product Attribute's Description, 12>Store and Currency switcher according to Ip address Please Contact me and All those extensions are paid with installation and configuration are free support.
Stars: ✭ 106 (-32.91%)
Mutual labels:  extensions
Ramda Extension
🤘Utility library for functional JavaScript. With ❤️ to Ramda.
Stars: ✭ 139 (-12.03%)
Mutual labels:  extensions
Tablemanager
An extension of UITableView. The way it should be. 👍
Stars: ✭ 85 (-46.2%)
Mutual labels:  extensions
Sillynium
Automate the creation of Python Selenium Scripts by drawing coloured boxes on webpage elements
Stars: ✭ 100 (-36.71%)
Mutual labels:  extensions
Asus Fan Control
🌀 Fan control for ASUS devices running Linux.
Stars: ✭ 120 (-24.05%)
Mutual labels:  extensions
Rxjavajdk8interop
RxJava 2/3 interop library for supporting Java 8 features such as Optional, Stream and CompletableFuture [discontinued]
Stars: ✭ 70 (-55.7%)
Mutual labels:  extensions
Electron Extensions
Implementation of Chrome extension APIs for Electron
Stars: ✭ 143 (-9.49%)
Mutual labels:  extensions
Vscode Powershell
Provides PowerShell language and debugging support for Visual Studio Code
Stars: ✭ 1,117 (+606.96%)
Mutual labels:  extensions
Powershell Phpmanager
A PowerShell module to install/update PHP, PHP extensions and Composer on Windows
Stars: ✭ 108 (-31.65%)
Mutual labels:  extensions
Magevulndb
List of Magento extensions with known security issues.
Stars: ✭ 152 (-3.8%)
Mutual labels:  extensions
Igniteui Angular Wrappers
Ignite UI Angular component extensions by Infragistics
Stars: ✭ 150 (-5.06%)
Mutual labels:  extensions
Scratchaddons
All-in-one browser extension for Scratch.
Stars: ✭ 133 (-15.82%)
Mutual labels:  extensions

Ignite UI Component Wrappers for React

Build Status Coverage Status npm version

Use the declarations available in igniteui-react.js (or igniteui-react.min.js) to use Ignite UI controls as React components. Work with the running samples here.

IMPORTANT The repository has been renamed from igniteui-react to igniteui-react-wrappers. For now the package name will stay with the igniteui-react name. There is a new product Ignite UI for React from Infragistics that you may want to consider when starting your next React project. It features a high-performance data grid, high-volume data charts and a complete Microsoft Excel Solution. Please check out the announcement here.

Requirements

Install

You can install the package with npm.

npm install igniteui-react

Build

The build will bundle all files available in src/* producing dist/npm/igniteui-react.js and then minify it producing dist/npm/igniteui-react.min.js. Either can be used for obtaining the Ignite UI React components, however, the minified file is preferable for production due to its reduced size. You need Node.js installed on your machine.

To build the project use the following steps:

  1. Open a console in the folder where the igniteui-react project is located
  2. run npm install
  3. run npm run build

igniteui-react depends on the ignite-ui-full licensed package. Follow this guide on setting up access to the Ignite UI private npm feed and add the dependency to the package.json.

"dependencies": {
	"@infragistics/ignite-ui-full": "latest"
}

Getting Started

Ignite UI CLI

To get started with the Ignite UI CLI and the Ignite UI React wrappers:

npm i -g igniteui-cli
ig new <project name> --framework=react
cd <project name>
ig add combo <component name>
ig start

Page setup

In the page markup include the Ignite UI React components bundle found in dist/npm/igniteui-react.min.js along with the Ignite UI scripts:

<script src="jquery.min.js"></script>
<script src="jquery-ui.min.js"></script>
<script src="react.min.js"></script>

<script src="infragistics.core.js"></script>
<script src="infragistics.lob.js"></script>

<script src="igniteui-react.min.js"></script>

Optionally include browser.js found in the Babel-core package for JSX support.

<script src="browser.js"></script>

This provides all supported Ignite UI components as React classes available in the global namespace.

Initializing controls

In general React components can be initialized in two ways:

  1. In JavaScript using React's API.
  2. With pseudo-markup by utilizing JSX syntax.

Examples:

Control Name JavaScript JSX
igCombo React.createElement(IgCombo, null); <IgCombo/>
igGrid React.createElement(IgGrid, null); <IgGrid/>
igTreeGrid React.createElement(IgTreeGrid, null); <IgTreeGrid/>
igDataChart React.createElement(IgDataChart, null); <IgDataChart/>
igDialog React.createElement(IgDialog, null); <IgDialog/>
igDateEditor React.createElement(IgDateEditor, null); <IgDateEditor/>
igMaskEditor React.createElement(IgMaskEditor, null); <IgMaskEditor/>
igNumericEditor React.createElement(IgNumericEditor, null); <igNumericEditor/>
igPercentEditor React.createElement(IgPercentEditor, null); <igPercentEditor/>
igTextEditor React.createElement(IgTextEditor, null); <igTextEditor/>
igDatePicker React.createElement(IgDatePicker, null); <igDatePicker/>
igTree React.createElement(IgTree, null); <igTree/>
igMap React.createElement(IgMap, null); <igMap/>
igUpload React.createElement(IgUpload, null); <igUpload/>
igVideoPlayer React.createElement(IgVideoPlayer, null); <igVideoPlayer/>

Note: All Ignite UI React class names are in PascalCase so that they are JSX-friendly.

Configuring Control Options

If you are using JavaScript options can be applied by adding them as an object to the createElement call. In JSX they are represented by attributes to the component's pseudo-element.

Examples:

Option JavaScript JSX
igGrid.options.autoGenerateColumns React.createElement(IgGrid, { autoGenerateColumns: false }); <IgGrid autoGenerateColumns={false} />
igCombo.options.width React.createElement(IgCombo, { width: "700px" }); <IgCombo width="700px" />

Defining complex type control options (arrays & objects) in JSX is done by wrapping their declarations braces {}.

Example:

<IgGrid
	id="grid1"
	columns={[
		{ headerText: "Product ID", key: "ProductID", dataType: "number" },
		{ headerText: "Stock", key: "UnitsInStock", dataType: "number" },
		{ headerText: "Description", key: "ProductDescription", dataType: "string" },
		{ headerText: "UnitPrice", key: "UnitPrice", dataType: "number", format: "#.##" },
		{ headerText: "DateAdded", key: "DateAdded", dataType: "date", format: "dateTime" }
	]}
/>

Note: Some Ignite UI controls require an id attribute for the DOM element they initialize on. It can be passed through the control's React class id property.

Updating options

Option updates during runtime can be achieved by using React's setState method. Some of Ignite UI widgets options are not settable at runtime. For these, prop changes have no effect.

Example:

var App = React.createClass({
	getInitialState: function () {
		return {
			alternateRowStyles: true
		}
	},
	render: function () {
		return (
			<div>
				<IgGrid
					id="grid1"
					autoGenerateColumns={true}
					dataSource={sourceData}
					alternateRowStyles={this.state.alternateRowStyles}
				/>
				<button onClick={this.buttonClick}>Change</button>
			</div>
		);
	},
	buttonClick: function (evt) {
		this.setState({ alternateRowStyles: !this.state.alternateRowStyles });
	}
});

Handling events

Binding to control events is done by passing the event name as a property and assigning the handling function as its value.

Example:

<IgTextEditor
	id="editor1"
	valueChanged={this.editorValueChanged}
/>

In addition to the events available for each Ignite UI widget the React controls will also invoke the function passed for the initialized property when the widget is ready for use.

Example:

<IgTextEditor
	id="editor1"
	initialized={this.controlInitialized}
/>

Calling widget methods

Calling widget methods can be done in two ways both utilizing functions available in the $.ig.react.core namespace. You can either obtain the widget's instance using the React component and its name directly.

Example:

	$.ig.react.core.getWidgetInstance(gridComponent, "igGrid").commit();

Or get the DOM element it is initialized on and calling the method through jQuery UI's plugin.

Example:

	$.ig.react.core.getElement(gridComponent).igGrid("commit");

Running our samples:

Go to the folder of the sample you want to run:

npm install
npm start

Alternatively you can view them from here.

Testing

Testing IgniteUI React is done through Unit tests. All of them are written in Jasmine.

Setup

npm install

Running the tests

The easiest way to run the unit tests is to use the npm script:

npm test

This will start the Karma test runner and execute the tests. By default the browser is Chrome.

Code coverage

After running the Karma test a coverage file will be created for the src/util/ignite-react.js file containing the bulk of the functionality available for the Ignite UI React components. The report is available at coverage/karma-tmp/**/lcov-report/.


What is Ignite UI?

Ignite UI Logo

Ignite UI 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 for more info and to download a trial.

Ignite 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, 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.

Infragistics Logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].