├── samples ├── ig-grid │ ├── public │ │ ├── favicon.ico │ │ ├── manifest.json │ │ └── index.html │ ├── src │ │ ├── index.js │ │ ├── sample.css │ │ ├── components │ │ │ ├── IgDialogBox.js │ │ │ └── IgEditBox.js │ │ ├── App.js │ │ └── registerServiceWorker.js │ └── package.json ├── ig-editors │ ├── public │ │ ├── favicon.ico │ │ ├── manifest.json │ │ └── index.html │ ├── src │ │ ├── index.js │ │ ├── sample.css │ │ └── App.js │ └── package.json ├── ig-dashboard │ ├── public │ │ ├── favicon.ico │ │ ├── manifest.json │ │ └── index.html │ ├── src │ │ ├── index.js │ │ ├── sample.css │ │ ├── components │ │ │ └── IgEditBox.js │ │ └── App.js │ └── package.json └── ig-financial-state │ ├── public │ ├── favicon.ico │ ├── manifest.json │ └── index.html │ ├── src │ ├── index.js │ ├── components │ │ ├── TotalBox.js │ │ ├── EditorsBox.js │ │ ├── GaugesBox.js │ │ └── MainComponent.js │ ├── sample.css │ └── App.js │ └── package.json ├── src ├── props │ ├── igColorPicker.js │ ├── igToolbarButton.js │ ├── igBrowseButton.js │ ├── igColorPickerSplitButton.js │ ├── igChartLegend.js │ ├── igBaseChart.js │ ├── igProgressBar.js │ ├── igSplitButton.js │ ├── igPieChart.js │ ├── igEditorFilter.js │ ├── igHtmlEditor.js │ ├── igHierarchicalGrid.js │ ├── igBaseEditor.js │ ├── igSlider.js │ ├── igToolbar.js │ ├── igCheckboxEditor.js │ ├── igButton.js │ ├── igRating.js │ ├── igSplitter.js │ ├── igZoombar.js │ ├── igScroll.js │ ├── igSpreadsheet.js │ ├── igPopover.js │ ├── igMaskEditor.js │ ├── igValidator.js │ ├── igDateEditor.js │ ├── igLayoutManager.js │ ├── igFunnelChart.js │ ├── igTextEditor.js │ ├── igDatePicker.js │ ├── igNotifier.js │ ├── igScheduler.js │ ├── igDialog.js │ ├── igDoughnutChart.js │ ├── igZoomSlider.js │ ├── igNumericEditor.js │ ├── igTimePicker.js │ ├── igTileManager.js │ ├── igQRCodeBarcode.js │ ├── igCurrencyEditor.js │ ├── igPercentEditor.js │ ├── igBulletGraph.js │ ├── igSparkline.js │ ├── igLinearGauge.js │ ├── igDataChart.js │ ├── igRadialMenu.js │ ├── igTree.js │ ├── igTreeGrid.js │ ├── igUpload.js │ ├── igRadialGauge.js │ ├── igCombo.js │ └── igVideoPlayer.js ├── components │ ├── igMap.js │ ├── igGrid.js │ ├── igTree.js │ ├── igCombo.js │ ├── igButton.js │ ├── igDialog.js │ ├── igRating.js │ ├── igScroll.js │ ├── igSlider.js │ ├── igUpload.js │ ├── igPopover.js │ ├── igToolbar.js │ ├── igZoombar.js │ ├── igNotifier.js │ ├── igPieChart.js │ ├── igSplitter.js │ ├── igTreeGrid.js │ ├── igBaseChart.js │ ├── igDataChart.js │ ├── igPivotGrid.js │ ├── igPivotView.js │ ├── igScheduler.js │ ├── igSparkline.js │ ├── igValidator.js │ ├── igBaseEditor.js │ ├── igDateEditor.js │ ├── igDatePicker.js │ ├── igHtmlEditor.js │ ├── igMaskEditor.js │ ├── igRadialMenu.js │ ├── igShapeChart.js │ ├── igTextEditor.js │ ├── igTimePicker.js │ ├── igZoomSlider.js │ ├── igBulletGraph.js │ ├── igChartLegend.js │ ├── igColorPicker.js │ ├── igFunnelChart.js │ ├── igLinearGauge.js │ ├── igProgressBar.js │ ├── igRadialGauge.js │ ├── igSplitButton.js │ ├── igSpreadsheet.js │ ├── igTileManager.js │ ├── igVideoPlayer.js │ ├── igBrowseButton.js │ ├── igEditorFilter.js │ ├── igCategoryChart.js │ ├── igDoughnutChart.js │ ├── igLayoutManager.js │ ├── igNumericEditor.js │ ├── igPercentEditor.js │ ├── igQRCodeBarcode.js │ ├── igToolbarButton.js │ ├── igCheckboxEditor.js │ ├── igCurrencyEditor.js │ ├── igFinancialChart.js │ ├── igHierarchicalGrid.js │ ├── igPivotDataSelector.js │ └── igColorPickerSplitButton.js └── util │ └── ignite-react.js ├── tests ├── unit │ ├── igMap │ │ └── test.js │ ├── igBulletGraph │ │ └── test.js │ ├── igHtmlEditor │ │ └── test.js │ ├── igLinearGauge │ │ └── test.js │ ├── igRadialGauge │ │ └── test.js │ ├── igGrid │ │ └── test.js │ ├── igDataChart │ │ └── test.js │ ├── igZoombar │ │ └── test.js │ └── common │ │ └── test.js ├── karma-test-shim.js ├── util.js └── karma.conf.js ├── dist └── npm │ └── package.json ├── .gitignore ├── .github └── workflows │ ├── node.js.yml │ └── npm-publish.yml ├── LICENSE ├── .travis.yml └── package.json /samples/ig-grid/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IgniteUI/igniteui-react-wrappers/HEAD/samples/ig-grid/public/favicon.ico -------------------------------------------------------------------------------- /samples/ig-editors/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IgniteUI/igniteui-react-wrappers/HEAD/samples/ig-editors/public/favicon.ico -------------------------------------------------------------------------------- /samples/ig-dashboard/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IgniteUI/igniteui-react-wrappers/HEAD/samples/ig-dashboard/public/favicon.ico -------------------------------------------------------------------------------- /samples/ig-financial-state/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IgniteUI/igniteui-react-wrappers/HEAD/samples/ig-financial-state/public/favicon.ico -------------------------------------------------------------------------------- /src/props/igColorPicker.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igColorPicker = { 2 | id: PropTypes.string.isRequired, 3 | colors: PropTypes.string, 4 | standardColors: PropTypes.array 5 | } 6 | -------------------------------------------------------------------------------- /src/props/igToolbarButton.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igToolbarButton = { 2 | id: PropTypes.string.isRequired, 3 | allowToggling: PropTypes.bool, 4 | isSelected: PropTypes.bool 5 | } 6 | -------------------------------------------------------------------------------- /src/props/igBrowseButton.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igBrowseButton = { 2 | id: PropTypes.string.isRequired, 3 | autoselect: PropTypes.bool, 4 | multipleFiles: PropTypes.bool, 5 | container: PropTypes.object 6 | } 7 | -------------------------------------------------------------------------------- /samples/ig-grid/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import registerServiceWorker from './registerServiceWorker'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | registerServiceWorker(); 8 | -------------------------------------------------------------------------------- /samples/ig-dashboard/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import registerServiceWorker from './registerServiceWorker'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | registerServiceWorker(); 8 | -------------------------------------------------------------------------------- /samples/ig-editors/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import registerServiceWorker from './registerServiceWorker'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | registerServiceWorker(); 8 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import registerServiceWorker from './registerServiceWorker'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | registerServiceWorker(); 8 | -------------------------------------------------------------------------------- /src/props/igColorPickerSplitButton.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igColorPickerSplitButton = { 2 | id: PropTypes.string.isRequired, 3 | items: PropTypes.array, 4 | defaultColor: PropTypes.string, 5 | hasDefaultIcon: PropTypes.bool, 6 | defaultItemName: PropTypes.string, 7 | swapDefaultEnabled: PropTypes.bool 8 | } 9 | -------------------------------------------------------------------------------- /tests/unit/igMap/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igMap", function() { 3 | var opts = { 4 | id: "igComponent", 5 | height: "200px", 6 | width: "200px" 7 | }; 8 | $.ig.react.test.async("igMap", opts); 9 | }); 10 | } 11 | exports.main = main; -------------------------------------------------------------------------------- /tests/unit/igBulletGraph/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Test igBulletGraph", function() { 3 | $.ig.react.test.async("igBulletGraph", 4 | { 5 | id: "igComponent", 6 | providerContainer: {}, 7 | width: 300, 8 | height: 300 9 | }); 10 | }); 11 | } 12 | exports.main = main; -------------------------------------------------------------------------------- /src/props/igChartLegend.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igChartLegend = { 2 | id: PropTypes.string.isRequired, 3 | type: PropTypes.oneOf([ 4 | "item", 5 | "legend" 6 | ]), 7 | width: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | height: PropTypes.oneOfType([ 12 | PropTypes.string, 13 | PropTypes.number 14 | ]) 15 | } 16 | -------------------------------------------------------------------------------- /dist/npm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "igniteui-react-wrappers", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/IgniteUI/igniteui-react-wrappers.git" 8 | }, 9 | "dependencies": { 10 | "react": "^17.0.2", 11 | "create-react-class": "^15.6.3", 12 | "prop-types": "^15.6.2" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/ig-editors/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /samples/ig-dashboard/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /samples/ig-financial-state/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /samples/ig-grid/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "igGrid React", 3 | "name": "Infragistics igGrid React Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/props/igBaseChart.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igBaseChart = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.number, 4 | height: PropTypes.number, 5 | tooltipTemplate: PropTypes.string, 6 | maxRecCount: PropTypes.number, 7 | dataSource: PropTypes.object, 8 | dataSourceType: PropTypes.string, 9 | dataSourceUrl: PropTypes.string, 10 | responseTotalRecCountKey: PropTypes.string, 11 | responseDataKey: PropTypes.string 12 | } 13 | -------------------------------------------------------------------------------- /src/props/igProgressBar.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igProgressBar = { 2 | id: PropTypes.string.isRequired, 3 | animate: PropTypes.bool, 4 | animateTimeout: PropTypes.number, 5 | max: PropTypes.number, 6 | min: PropTypes.number, 7 | orientation: PropTypes.string, 8 | value: PropTypes.number, 9 | width: PropTypes.string, 10 | height: PropTypes.string, 11 | range: PropTypes.bool, 12 | queue: PropTypes.bool, 13 | endValue: PropTypes.number 14 | } 15 | -------------------------------------------------------------------------------- /src/props/igSplitButton.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igSplitButtonItem = { 2 | name: PropTypes.string, 3 | label: PropTypes.string, 4 | iconClass: PropTypes.string 5 | } 6 | 7 | $.ig.react.propTypes.igSplitButton = { 8 | id: PropTypes.string.isRequired, 9 | items: PropTypes.arrayOf( 10 | PropTypes.shape($.ig.react.propTypes.shapes.igSplitButtonItem) 11 | ), 12 | defaultItemName: PropTypes.string, 13 | swapDefaultEnabled: PropTypes.bool 14 | } 15 | -------------------------------------------------------------------------------- /tests/unit/igHtmlEditor/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igHtmlEditor", function() { 3 | var val = "

Ignite UI controls:

"; 4 | $.ig.react.test.async("igHtmlEditor", { 5 | value: val, 6 | height: "400px", 7 | width: "700px" 8 | }, function (e, c) { 9 | expect(c.igControl.getContent("html") === val).toBe(true); 10 | }); 11 | }); 12 | } 13 | exports.main = main; -------------------------------------------------------------------------------- /tests/unit/igLinearGauge/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igLinearGauge", function() { 3 | var opts = { 4 | id: "igComponent", 5 | height: "80px", 6 | width: "100%", 7 | value: 27, 8 | maximumValue: 30, 9 | ranges: [{ startValue: 0, endValue: 22, name: "target" }] 10 | }; 11 | $.ig.react.test.async("igLinearGauge", opts); 12 | }); 13 | } 14 | exports.main = main; -------------------------------------------------------------------------------- /tests/unit/igRadialGauge/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igRadialGauge", function() { 3 | var opts = { 4 | id: "igComponent", 5 | height: "80px", 6 | width: "100%", 7 | value: 27, 8 | maximumValue: 30, 9 | ranges: [{ startValue: 0, endValue: 22, name: "target" }] 10 | }; 11 | $.ig.react.test.async("igRadialGauge", opts); 12 | }); 13 | } 14 | exports.main = main; -------------------------------------------------------------------------------- /src/components/igMap.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgMap", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgMap = createReactClass($.ig.react.core.buildComponent("igMap")); 15 | if (window) { 16 | window.IgMap = IgMap; 17 | } 18 | return IgMap; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igGrid.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgGrid", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgGrid = createReactClass($.ig.react.core.buildComponent("igGrid")); 15 | if (window) { 16 | window.IgGrid = IgGrid; 17 | } 18 | return IgGrid; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igTree.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgTree", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgTree = createReactClass($.ig.react.core.buildComponent("igTree")); 15 | if (window) { 16 | window.IgTree = IgTree; 17 | } 18 | return IgTree; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igCombo.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgCombo", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgCombo = createReactClass($.ig.react.core.buildComponent("igCombo")); 15 | if (window) { 16 | window.IgCombo = IgCombo; 17 | } 18 | return IgCombo; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igButton.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgButton", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgButton = createReactClass($.ig.react.core.buildComponent("igButton")); 15 | if (window) { 16 | window.IgButton = IgButton; 17 | } 18 | return IgButton; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igDialog.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgDialog", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgDialog = createReactClass($.ig.react.core.buildComponent("igDialog")); 15 | if (window) { 16 | window.IgDialog = IgDialog; 17 | } 18 | return IgDialog; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igRating.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgRating", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgRating = createReactClass($.ig.react.core.buildComponent("igRating")); 15 | if (window) { 16 | window.IgRating = IgRating; 17 | } 18 | return IgRating; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igScroll.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgScroll", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgScroll = createReactClass($.ig.react.core.buildComponent("igScroll")); 15 | if (window) { 16 | window.IgScroll = IgScroll; 17 | } 18 | return IgScroll; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igSlider.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgSlider", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgSlider = createReactClass($.ig.react.core.buildComponent("igSlider")); 15 | if (window) { 16 | window.IgSlider = IgSlider; 17 | } 18 | return IgSlider; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igUpload.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgUpload", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgUpload = createReactClass($.ig.react.core.buildComponent("igUpload")); 15 | if (window) { 16 | window.IgUpload = IgUpload; 17 | } 18 | return IgUpload; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPopover.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPopover", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPopover = createReactClass($.ig.react.core.buildComponent("igPopover")); 15 | if (window) { 16 | window.IgPopover = IgPopover; 17 | } 18 | return IgPopover; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igToolbar.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgToolbar", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgToolbar = createReactClass($.ig.react.core.buildComponent("igToolbar")); 15 | if (window) { 16 | window.IgToolbar = IgToolbar; 17 | } 18 | return IgToolbar; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igZoombar.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgZoombar", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgZoombar = createReactClass($.ig.react.core.buildComponent("igZoombar")); 15 | if (window) { 16 | window.IgZoombar = IgZoombar; 17 | } 18 | return IgZoombar; 19 | })); 20 | -------------------------------------------------------------------------------- /src/props/igPieChart.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igPieChart = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.oneOfType([ 4 | PropTypes.string, 5 | PropTypes.number 6 | ]), 7 | height: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | dataSource: PropTypes.object, 12 | dataSourceUrl: PropTypes.string, 13 | dataSourceType: PropTypes.string, 14 | responseDataKey: PropTypes.oneOfType([ 15 | PropTypes.string 16 | ]), 17 | responseDataType: PropTypes.oneOfType([ 18 | PropTypes.string 19 | ]) 20 | } 21 | -------------------------------------------------------------------------------- /src/components/igNotifier.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgNotifier", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgNotifier = createReactClass($.ig.react.core.buildComponent("igNotifier")); 15 | if (window) { 16 | window.IgNotifier = IgNotifier; 17 | } 18 | return IgNotifier; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPieChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPieChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPieChart = createReactClass($.ig.react.core.buildComponent("igPieChart")); 15 | if (window) { 16 | window.IgPieChart = IgPieChart; 17 | } 18 | return IgPieChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igSplitter.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgSplitter", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgSplitter = createReactClass($.ig.react.core.buildComponent("igSplitter")); 15 | if (window) { 16 | window.IgSplitter = IgSplitter; 17 | } 18 | return IgSplitter; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igTreeGrid.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgTreeGrid", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgTreeGrid = createReactClass($.ig.react.core.buildComponent("igTreeGrid")); 15 | if (window) { 16 | window.IgTreeGrid = IgTreeGrid; 17 | } 18 | return IgTreeGrid; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igBaseChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgBaseChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgBaseChart = createReactClass($.ig.react.core.buildComponent("igBaseChart")); 15 | if (window) { 16 | window.IgBaseChart = IgBaseChart; 17 | } 18 | return IgBaseChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igDataChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgDataChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgDataChart = createReactClass($.ig.react.core.buildComponent("igDataChart")); 15 | if (window) { 16 | window.IgDataChart = IgDataChart; 17 | } 18 | return IgDataChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPivotGrid.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPivotGrid", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPivotGrid = createReactClass($.ig.react.core.buildComponent("igPivotGrid")); 15 | if (window) { 16 | window.IgPivotGrid = IgPivotGrid; 17 | } 18 | return IgPivotGrid; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPivotView.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPivotView", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPivotView = createReactClass($.ig.react.core.buildComponent("igPivotView")); 15 | if (window) { 16 | window.IgPivotView = IgPivotView; 17 | } 18 | return IgPivotView; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igScheduler.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgScheduler", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgScheduler = createReactClass($.ig.react.core.buildComponent("igScheduler")); 15 | if (window) { 16 | window.IgScheduler = IgScheduler; 17 | } 18 | return IgScheduler; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igSparkline.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgSparkline", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgSparkline = createReactClass($.ig.react.core.buildComponent("igSparkline")); 15 | if (window) { 16 | window.IgSparkline = IgSparkline; 17 | } 18 | return IgSparkline; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igValidator.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgValidator", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgValidator = createReactClass($.ig.react.core.buildComponent("igValidator")); 15 | if (window) { 16 | window.IgValidator = IgValidator; 17 | } 18 | return IgValidator; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igBaseEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgBaseEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgBaseEditor = createReactClass($.ig.react.core.buildComponent("igBaseEditor")); 15 | if (window) { 16 | window.IgBaseEditor = IgBaseEditor; 17 | } 18 | return IgBaseEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igDateEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgDateEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgDateEditor = createReactClass($.ig.react.core.buildComponent("igDateEditor")); 15 | if (window) { 16 | window.IgDateEditor = IgDateEditor; 17 | } 18 | return IgDateEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igDatePicker.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgDatePicker", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgDatePicker = createReactClass($.ig.react.core.buildComponent("igDatePicker")); 15 | if (window) { 16 | window.IgDatePicker = IgDatePicker; 17 | } 18 | return IgDatePicker; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igHtmlEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgHtmlEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgHtmlEditor = createReactClass($.ig.react.core.buildComponent("igHtmlEditor")); 15 | if (window) { 16 | window.IgHtmlEditor = IgHtmlEditor; 17 | } 18 | return IgHtmlEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igMaskEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgMaskEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgMaskEditor = createReactClass($.ig.react.core.buildComponent("igMaskEditor")); 15 | if (window) { 16 | window.IgMaskEditor = IgMaskEditor; 17 | } 18 | return IgMaskEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igRadialMenu.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgRadialMenu", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgRadialMenu = createReactClass($.ig.react.core.buildComponent("igRadialMenu")); 15 | if (window) { 16 | window.IgRadialMenu = IgRadialMenu; 17 | } 18 | return IgRadialMenu; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igShapeChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgShapeChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgShapeChart = createReactClass($.ig.react.core.buildComponent("igShapeChart")); 15 | if (window) { 16 | window.IgShapeChart = IgShapeChart; 17 | } 18 | return IgShapeChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igTextEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgTextEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgTextEditor = createReactClass($.ig.react.core.buildComponent("igTextEditor")); 15 | if (window) { 16 | window.IgTextEditor = IgTextEditor; 17 | } 18 | return IgTextEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igTimePicker.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgTimePicker", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgTimePicker = createReactClass($.ig.react.core.buildComponent("igTimePicker")); 15 | if (window) { 16 | window.IgTimePicker = IgTimePicker; 17 | } 18 | return IgTimePicker; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igZoomSlider.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgZoomSlider", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgZoomSlider = createReactClass($.ig.react.core.buildComponent("igZoomSlider")); 15 | if (window) { 16 | window.IgZoomSlider = IgZoomSlider; 17 | } 18 | return IgZoomSlider; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igBulletGraph.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgBulletGraph", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgBulletGraph = createReactClass($.ig.react.core.buildComponent("igBulletGraph")); 15 | if (window) { 16 | window.IgBulletGraph = IgBulletGraph; 17 | } 18 | return IgBulletGraph; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igChartLegend.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgChartLegend", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgChartLegend = createReactClass($.ig.react.core.buildComponent("igChartLegend")); 15 | if (window) { 16 | window.IgChartLegend = IgChartLegend; 17 | } 18 | return IgChartLegend; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igColorPicker.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgColorPicker", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgColorPicker = createReactClass($.ig.react.core.buildComponent("igColorPicker")); 15 | if (window) { 16 | window.IgColorPicker = IgColorPicker; 17 | } 18 | return IgColorPicker; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igFunnelChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgFunnelChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgFunnelChart = createReactClass($.ig.react.core.buildComponent("igFunnelChart")); 15 | if (window) { 16 | window.IgFunnelChart = IgFunnelChart; 17 | } 18 | return IgFunnelChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igLinearGauge.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgLinearGauge", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgLinearGauge = createReactClass($.ig.react.core.buildComponent("igLinearGauge")); 15 | if (window) { 16 | window.IgLinearGauge = IgLinearGauge; 17 | } 18 | return IgLinearGauge; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igProgressBar.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgProgressBar", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgProgressBar = createReactClass($.ig.react.core.buildComponent("igProgressBar")); 15 | if (window) { 16 | window.IgProgressBar = IgProgressBar; 17 | } 18 | return IgProgressBar; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igRadialGauge.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgRadialGauge", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgRadialGauge = createReactClass($.ig.react.core.buildComponent("igRadialGauge")); 15 | if (window) { 16 | window.IgRadialGauge = IgRadialGauge; 17 | } 18 | return IgRadialGauge; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igSplitButton.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgSplitButton", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgSplitButton = createReactClass($.ig.react.core.buildComponent("igSplitButton")); 15 | if (window) { 16 | window.IgSplitButton = IgSplitButton; 17 | } 18 | return IgSplitButton; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igSpreadsheet.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgSpreadsheet", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgSpreadsheet = createReactClass($.ig.react.core.buildComponent("igSpreadsheet")); 15 | if (window) { 16 | window.IgSpreadsheet = IgSpreadsheet; 17 | } 18 | return IgSpreadsheet; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igTileManager.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgTileManager", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgTileManager = createReactClass($.ig.react.core.buildComponent("igTileManager")); 15 | if (window) { 16 | window.IgTileManager = IgTileManager; 17 | } 18 | return IgTileManager; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igVideoPlayer.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgVideoPlayer", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgVideoPlayer = createReactClass($.ig.react.core.buildComponent("igVideoPlayer")); 15 | if (window) { 16 | window.IgVideoPlayer = IgVideoPlayer; 17 | } 18 | return IgVideoPlayer; 19 | })); 20 | -------------------------------------------------------------------------------- /src/props/igEditorFilter.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgEditorFilter", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgEditorFilter = createReactClass($.ig.react.core.buildComponent("igEditorFilter")); 15 | if (window) { 16 | window.IgEditorFilter = IgEditorFilter; 17 | } 18 | return IgEditorFilter; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igBrowseButton.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgBrowseButton", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgBrowseButton = createReactClass($.ig.react.core.buildComponent("igBrowseButton")); 15 | if (window) { 16 | window.IgBrowseButton = IgBrowseButton; 17 | } 18 | return IgBrowseButton; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igEditorFilter.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgEditorFilter", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgEditorFilter = createReactClass($.ig.react.core.buildComponent("igEditorFilter")); 15 | if (window) { 16 | window.IgEditorFilter = IgEditorFilter; 17 | } 18 | return IgEditorFilter; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igCategoryChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgCategoryChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgCategoryChart = createReactClass($.ig.react.core.buildComponent("igCategoryChart")); 15 | if (window) { 16 | window.IgCategoryChart = IgCategoryChart; 17 | } 18 | return IgCategoryChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igDoughnutChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgDoughnutChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgDoughnutChart = createReactClass($.ig.react.core.buildComponent("igDoughnutChart")); 15 | if (window) { 16 | window.IgDoughnutChart = IgDoughnutChart; 17 | } 18 | return IgDoughnutChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igLayoutManager.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgLayoutManager", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgLayoutManager = createReactClass($.ig.react.core.buildComponent("igLayoutManager")); 15 | if (window) { 16 | window.IgLayoutManager = IgLayoutManager; 17 | } 18 | return IgLayoutManager; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igNumericEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgNumericEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgNumericEditor = createReactClass($.ig.react.core.buildComponent("igNumericEditor")); 15 | if (window) { 16 | window.IgNumericEditor = IgNumericEditor; 17 | } 18 | return IgNumericEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPercentEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPercentEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPercentEditor = createReactClass($.ig.react.core.buildComponent("igPercentEditor")); 15 | if (window) { 16 | window.IgPercentEditor = IgPercentEditor; 17 | } 18 | return IgPercentEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igQRCodeBarcode.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgQRCodeBarcode", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgQRCodeBarcode = createReactClass($.ig.react.core.buildComponent("igQRCodeBarcode")); 15 | if (window) { 16 | window.IgQRCodeBarcode = IgQRCodeBarcode; 17 | } 18 | return IgQRCodeBarcode; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igToolbarButton.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgToolbarButton", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgToolbarButton = createReactClass($.ig.react.core.buildComponent("igToolbarButton")); 15 | if (window) { 16 | window.IgToolbarButton = IgToolbarButton; 17 | } 18 | return IgToolbarButton; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igCheckboxEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgCheckboxEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgCheckboxEditor = createReactClass($.ig.react.core.buildComponent("igCheckboxEditor")); 15 | if (window) { 16 | window.IgCheckboxEditor = IgCheckboxEditor; 17 | } 18 | return IgCheckboxEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igCurrencyEditor.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgCurrencyEditor", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgCurrencyEditor = createReactClass($.ig.react.core.buildComponent("igCurrencyEditor")); 15 | if (window) { 16 | window.IgCurrencyEditor = IgCurrencyEditor; 17 | } 18 | return IgCurrencyEditor; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igFinancialChart.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgFinancialChart", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgFinancialChart = createReactClass($.ig.react.core.buildComponent("igFinancialChart")); 15 | if (window) { 16 | window.IgFinancialChart = IgFinancialChart; 17 | } 18 | return IgFinancialChart; 19 | })); 20 | -------------------------------------------------------------------------------- /src/props/igHtmlEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igHtmlEditor = { 2 | id: PropTypes.string.isRequired, 3 | showFormattingToolbar: PropTypes.bool, 4 | showTextToolbar: PropTypes.bool, 5 | showInsertObjectToolbar: PropTypes.bool, 6 | showCopyPasteToolbar: PropTypes.bool, 7 | width: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | height: PropTypes.oneOfType([ 12 | PropTypes.string, 13 | PropTypes.number 14 | ]), 15 | toolbarSettings: PropTypes.array, 16 | customToolbars: PropTypes.array, 17 | inputName: PropTypes.string, 18 | value: PropTypes.string 19 | } 20 | -------------------------------------------------------------------------------- /src/props/igHierarchicalGrid.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgHierarchicalGrid", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgHierarchicalGrid = createReactClass($.ig.react.core.buildComponent("igHierarchicalGrid")); 15 | if (window) { 16 | window.IgHierarchicalGrid = IgHierarchicalGrid; 17 | } 18 | return IgHierarchicalGrid; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igHierarchicalGrid.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgHierarchicalGrid", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgHierarchicalGrid = createReactClass($.ig.react.core.buildComponent("igHierarchicalGrid")); 15 | if (window) { 16 | window.IgHierarchicalGrid = IgHierarchicalGrid; 17 | } 18 | return IgHierarchicalGrid; 19 | })); 20 | -------------------------------------------------------------------------------- /src/components/igPivotDataSelector.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgPivotDataSelector", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgPivotDataSelector = createReactClass($.ig.react.core.buildComponent("igPivotDataSelector")); 15 | if (window) { 16 | window.IgPivotDataSelector = IgPivotDataSelector; 17 | } 18 | return IgPivotDataSelector; 19 | })); 20 | -------------------------------------------------------------------------------- /src/props/igBaseEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igBaseEditor = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.oneOfType([ 4 | PropTypes.string, 5 | PropTypes.number 6 | ]), 7 | height: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | value: PropTypes.object, 12 | tabIndex: PropTypes.number, 13 | allowNullValue: PropTypes.bool, 14 | nullValue: PropTypes.oneOfType([ 15 | PropTypes.string, 16 | PropTypes.number 17 | ]), 18 | inputName: PropTypes.string, 19 | readOnly: PropTypes.bool, 20 | disabled: PropTypes.bool, 21 | validatorOptions: PropTypes.object 22 | } 23 | -------------------------------------------------------------------------------- /src/props/igSlider.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igSliderBookmarks = { 2 | value: PropTypes.number, 3 | title: PropTypes.string, 4 | disabled: PropTypes.bool, 5 | css: PropTypes.string 6 | } 7 | 8 | $.ig.react.propTypes.igSlider = { 9 | id: PropTypes.string.isRequired, 10 | animate: PropTypes.bool, 11 | max: PropTypes.number, 12 | min: PropTypes.number, 13 | orientation: PropTypes.any, 14 | step: PropTypes.number, 15 | value: PropTypes.number, 16 | bookmarks: PropTypes.shape( 17 | $.ig.react.propTypes.shapes.igSliderBookmarks 18 | ), 19 | showBookmarkTitle: PropTypes.bool, 20 | syncHandleWithBookmark: PropTypes.bool 21 | } 22 | -------------------------------------------------------------------------------- /src/props/igToolbar.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igToolbarLocale = { 2 | collapseButtonTitle: PropTypes.object, 3 | expandButtonTitle: PropTypes.object 4 | } 5 | 6 | $.ig.react.propTypes.igToolbar = { 7 | id: PropTypes.string.isRequired, 8 | height: PropTypes.object, 9 | width: PropTypes.object, 10 | allowCollapsing: PropTypes.bool, 11 | collapseButtonIcon: PropTypes.string, 12 | expandButtonIcon: PropTypes.string, 13 | name: PropTypes.string, 14 | displayName: PropTypes.string, 15 | items: PropTypes.array, 16 | isExpanded: PropTypes.bool, 17 | locale: PropTypes.shape( 18 | $.ig.react.propTypes.shapes.igToolbarLocale 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /src/components/igColorPickerSplitButton.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | define("IgColorPickerSplitButton", [ 4 | "react", 5 | "jquery", 6 | "create-react-class", 7 | "../dist/igniteui-react.js" 8 | ], factory ); 9 | } else { 10 | factory(React, jQuery, createReactClass); 11 | } 12 | } 13 | (function (React, $, createReactClass) { 14 | var IgColorPickerSplitButton = createReactClass($.ig.react.core.buildComponent("igColorPickerSplitButton")); 15 | if (window) { 16 | window.IgColorPickerSplitButton = IgColorPickerSplitButton; 17 | } 18 | return IgColorPickerSplitButton; 19 | })); 20 | -------------------------------------------------------------------------------- /src/props/igCheckboxEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igCheckboxEditor = { 2 | id: PropTypes.string.isRequired, 3 | checked: PropTypes.bool, 4 | size: PropTypes.oneOf([ 5 | "verysmall", 6 | "small", 7 | "normal", 8 | "large" 9 | ]), 10 | iconClass: PropTypes.string, 11 | tabIndex: PropTypes.number, 12 | readOnly: PropTypes.bool, 13 | width: PropTypes.oneOfType([ 14 | PropTypes.string, 15 | PropTypes.number 16 | ]), 17 | height: PropTypes.oneOfType([ 18 | PropTypes.string, 19 | PropTypes.number 20 | ]), 21 | value: PropTypes.object, 22 | inputName: PropTypes.string, 23 | disabled: PropTypes.bool, 24 | validatorOptions: PropTypes.object 25 | } 26 | -------------------------------------------------------------------------------- /samples/ig-grid/src/sample.css: -------------------------------------------------------------------------------- 1 | .push-down { 2 | margin-top:4em; 3 | } 4 | 5 | .push-down-md { 6 | margin-top:2em; 7 | } 8 | 9 | .push-down-xs { 10 | margin-top:1em; 11 | } 12 | 13 | footer { 14 | border-top:1px solid #ccc; 15 | background-color:#ddd; 16 | padding:50px; 17 | margin-top:25px; 18 | color:#999; 19 | } 20 | 21 | .description { 22 | border-bottom: 1px solid #eee; 23 | margin-bottom: 15px; 24 | margin-top: 15px; 25 | } 26 | 27 | .try-it-out hr { 28 | margin: 0px; 29 | margin-top: 4px; 30 | } 31 | 32 | 33 | .try-it-out ul li{ 34 | margin-top: 8px; 35 | margin-bottom: 8px; 36 | } 37 | 38 | .ui-state-hover, .ui-widget-content .ui-state-hover { 39 | color: #070707 !important; 40 | } -------------------------------------------------------------------------------- /src/props/igButton.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igButtonLink = { 2 | href: PropTypes.object, 3 | target: PropTypes.object, 4 | title: PropTypes.object 5 | } 6 | 7 | $.ig.react.propTypes.shapes.igButtonIcons = { 8 | primary: PropTypes.object, 9 | secondary: PropTypes.object 10 | } 11 | 12 | $.ig.react.propTypes.igButton = { 13 | id: PropTypes.string.isRequired, 14 | width: PropTypes.object, 15 | height: PropTypes.object, 16 | link: PropTypes.shape( 17 | $.ig.react.propTypes.shapes.igButtonLink 18 | ), 19 | labelText: PropTypes.string, 20 | centerLabel: PropTypes.bool, 21 | css: PropTypes.object, 22 | onlyIcons: PropTypes.bool, 23 | icons: PropTypes.shape( 24 | $.ig.react.propTypes.shapes.igButtonIcons 25 | ), 26 | title: PropTypes.bool 27 | } 28 | -------------------------------------------------------------------------------- /src/props/igRating.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igRating = { 2 | id: PropTypes.string.isRequired, 3 | vertical: PropTypes.bool, 4 | value: PropTypes.oneOfType([ 5 | PropTypes.number, 6 | PropTypes.string 7 | ]), 8 | valueHover: PropTypes.oneOfType([ 9 | PropTypes.number, 10 | PropTypes.string 11 | ]), 12 | voteCount: PropTypes.number, 13 | voteWidth: PropTypes.number, 14 | voteHeight: PropTypes.number, 15 | swapDirection: PropTypes.bool, 16 | valueAsPercent: PropTypes.bool, 17 | focusable: PropTypes.bool, 18 | precision: PropTypes.oneOf([ 19 | "exact", 20 | "half", 21 | "whole" 22 | ]), 23 | precisionZeroVote: PropTypes.number, 24 | roundedDecimalPlaces: PropTypes.number, 25 | theme: PropTypes.string, 26 | validatorOptions: PropTypes.object, 27 | cssVotes: PropTypes.object 28 | } 29 | -------------------------------------------------------------------------------- /samples/ig-dashboard/src/sample.css: -------------------------------------------------------------------------------- 1 | .push-down { 2 | margin-top:4em; 3 | } 4 | 5 | .push-down-md { 6 | margin-top:2em; 7 | } 8 | 9 | .push-down-xs { 10 | margin-top:1em; 11 | } 12 | 13 | footer { 14 | border-top:1px solid #ccc; 15 | background-color:#ddd; 16 | padding:50px; 17 | margin-top:25px; 18 | color:#999; 19 | } 20 | 21 | .description { 22 | border-bottom: 1px solid #eee; 23 | margin-bottom: 15px; 24 | margin-top: 15px; 25 | } 26 | 27 | .try-it-out hr { 28 | margin: 0px; 29 | margin-top: 4px; 30 | } 31 | 32 | 33 | .try-it-out ul li{ 34 | margin-top: 8px; 35 | margin-bottom: 8px; 36 | } 37 | 38 | .ui-state-hover, 39 | .ui-widget-content .ui-state-hover { 40 | color: #070707; 41 | } 42 | 43 | .ui-widget-content { 44 | border: none; 45 | } 46 | 47 | .header { 48 | color: #337ab7; 49 | } -------------------------------------------------------------------------------- /samples/ig-grid/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ig-grid", 3 | "version": "1.0.0", 4 | "private": true, 5 | "dependencies": { 6 | "@infragistics/ignite-ui-full": "^18.1.152", 7 | "babel-runtime": "6.22.0", 8 | "bootstrap": "^3.3.7", 9 | "create-react-class": "^15.7.0", 10 | "igniteui-react-wrappers": "^1.4.0", 11 | "jquery": ">=1.9.1", 12 | "jquery-ui": ">=1.13.0", 13 | "react": "^17.0.2", 14 | "react-dom": "^17.0.2", 15 | "react-scripts": "^5.0.0" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test --env=jsdom", 21 | "eject": "react-scripts eject" 22 | }, 23 | "browserslist": [ 24 | ">0.2%", 25 | "not dead", 26 | "not ie <= 11", 27 | "not op_mini all" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | 39 | # Build 40 | dist/npm/* 41 | !dist/npm/README.md 42 | !dist/npm/package.json 43 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/components/TotalBox.js: -------------------------------------------------------------------------------- 1 | import IgCurrencyEditor from 'igniteui-react-wrappers/ui/igCurrencyEditor.js'; 2 | import React from 'react'; 3 | 4 | class TotalBox extends React.Component { 5 | getTotal = () => { 6 | var data = this.props.data.data, 7 | total = 0, i; 8 | 9 | for (i = 0; i < data.length; i++) { 10 | total += data[i].profit; 11 | } 12 | return total * 1000000; 13 | }; 14 | 15 | render() { 16 | return ( 17 |
18 |
19 | 28 |
29 | ) 30 | } 31 | } 32 | 33 | export default TotalBox; -------------------------------------------------------------------------------- /samples/ig-editors/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ig-editors", 3 | "version": "1.0.0", 4 | "private": true, 5 | "dependencies": { 6 | "@infragistics/ignite-ui-full": "^18.1.152", 7 | "babel-runtime": "6.22.0", 8 | "bootstrap": "^3.3.7", 9 | "igniteui-react-wrappers": "^1.4.0", 10 | "jquery": ">=1.9.1", 11 | "jquery-ui": ">=1.10.5", 12 | "react": "^17.0.2", 13 | "react-dom": "^17.0.2", 14 | "react-scripts": "^5.0.0" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test --env=jsdom", 20 | "eject": "react-scripts eject" 21 | }, 22 | "browserslist": { 23 | "production": [ 24 | ">0.2%", 25 | "not dead", 26 | "not op_mini all" 27 | ], 28 | "development": [ 29 | "last 1 chrome version", 30 | "last 1 firefox version", 31 | "last 1 safari version" 32 | ] 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /samples/ig-dashboard/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ig-dashboard", 3 | "version": "1.0.0", 4 | "private": true, 5 | "dependencies": { 6 | "@infragistics/ignite-ui-full": "^18.1.152", 7 | "babel-runtime": "6.22.0", 8 | "bootstrap": "^3.3.7", 9 | "igniteui-react-wrappers": "^1.4.0", 10 | "jquery": ">=3.5.0", 11 | "jquery-ui": ">=1.13.0", 12 | "react": "^17.0.2", 13 | "react-dom": "^17.0.2", 14 | "react-scripts": "^5.0.0" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test --env=jsdom", 20 | "eject": "react-scripts eject" 21 | }, 22 | "browserslist": { 23 | "production": [ 24 | ">0.2%", 25 | "not dead", 26 | "not op_mini all" 27 | ], 28 | "development": [ 29 | "last 1 chrome version", 30 | "last 1 firefox version", 31 | "last 1 safari version" 32 | ] 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/props/igSplitter.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igSplitterPanel = { 2 | size: PropTypes.oneOfType([ 3 | PropTypes.string, 4 | PropTypes.number 5 | ]), 6 | min: PropTypes.oneOfType([ 7 | PropTypes.string, 8 | PropTypes.number 9 | ]), 10 | max: PropTypes.oneOfType([ 11 | PropTypes.string, 12 | PropTypes.number 13 | ]), 14 | resizable: PropTypes.bool, 15 | collapsed: PropTypes.bool, 16 | collapsible: PropTypes.bool 17 | } 18 | 19 | $.ig.react.propTypes.igSplitter = { 20 | id: PropTypes.string.isRequired, 21 | width: PropTypes.oneOfType([ 22 | PropTypes.string, 23 | PropTypes.number 24 | ]), 25 | height: PropTypes.oneOfType([ 26 | PropTypes.string, 27 | PropTypes.number 28 | ]), 29 | orientation: PropTypes.oneOf([ 30 | "vertical", 31 | "horizontal" 32 | ]), 33 | panels: PropTypes.arrayOf( 34 | PropTypes.shape($.ig.react.propTypes.shapes.igSplitterPanel) 35 | ), 36 | dragDelta: PropTypes.number, 37 | resizeOtherSplitters: PropTypes.bool 38 | } 39 | -------------------------------------------------------------------------------- /samples/ig-financial-state/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ig-financial-state", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@infragistics/ignite-ui-full": "latest", 7 | "babel-runtime": "6.22.0", 8 | "bootstrap": "^3.3.7", 9 | "create-react-class": "^15.7.0", 10 | "igniteui-react-wrappers": "^1.4.0", 11 | "jquery": ">=1.9.1", 12 | "jquery-ui": ">=1.10.5", 13 | "react": "^17.0.2", 14 | "react-dom": "^17.0.2", 15 | "react-scripts": "^5.0.0" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test --env=jsdom", 21 | "eject": "react-scripts eject" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.2%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/props/igZoombar.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igZoombarDefaultZoomWindow = { 2 | left: PropTypes.number, 3 | width: PropTypes.string 4 | } 5 | 6 | $.ig.react.propTypes.igZoombar = { 7 | id: PropTypes.string.isRequired, 8 | provider: PropTypes.object, 9 | target: PropTypes.oneOfType([ 10 | PropTypes.string, 11 | PropTypes.object 12 | ]), 13 | clone: PropTypes.oneOf([ 14 | "auto", 15 | "none" 16 | ]), 17 | width: PropTypes.oneOfType([ 18 | PropTypes.string, 19 | PropTypes.number 20 | ]), 21 | height: PropTypes.oneOfType([ 22 | PropTypes.number, 23 | PropTypes.string 24 | ]), 25 | zoomAction: PropTypes.oneOf([ 26 | "immediate", 27 | "deferred" 28 | ]), 29 | zoomWindowMoveDistance: PropTypes.number, 30 | defaultZoomWindow: PropTypes.shape( 31 | $.ig.react.propTypes.shapes.igZoombarDefaultZoomWindow 32 | ), 33 | zoomWindowMinWidth: PropTypes.number, 34 | hoverStyleAnimationDuration: PropTypes.number, 35 | windowPanDuration: PropTypes.number, 36 | tabIndex: PropTypes.number 37 | } 38 | -------------------------------------------------------------------------------- /samples/ig-editors/src/sample.css: -------------------------------------------------------------------------------- 1 | .push-down { 2 | margin-top:4em; 3 | } 4 | 5 | .push-down-md { 6 | margin-top:2em; 7 | } 8 | 9 | .push-down-xs { 10 | margin-top:1em; 11 | } 12 | 13 | footer { 14 | border-top:1px solid #ccc; 15 | background-color:#ddd; 16 | padding:50px; 17 | margin-top:25px; 18 | color:#999; 19 | } 20 | 21 | .description { 22 | border-bottom: 1px solid #eee; 23 | margin-bottom: 15px; 24 | margin-top: 15px; 25 | } 26 | 27 | .try-it-out hr { 28 | margin: 0px; 29 | margin-top: 4px; 30 | } 31 | 32 | 33 | .try-it-out ul li{ 34 | margin-top: 8px; 35 | margin-bottom: 8px; 36 | } 37 | 38 | .ui-state-hover, .ui-widget-content .ui-state-hover { 39 | color: #070707; 40 | } 41 | 42 | .well { 43 | height: 100px; 44 | margin: 10px; 45 | } 46 | 47 | h1, 48 | .ui-state-focus { 49 | color: #1e96dc; 50 | } 51 | 52 | .lbl { 53 | display: block; 54 | color: #1e96dc; 55 | } 56 | 57 | h3 { 58 | color: #1e96dc; 59 | text-align: left; 60 | } 61 | 62 | .info { 63 | display: inline-block; 64 | vertical-align: middle; 65 | padding-top: 20px; 66 | } -------------------------------------------------------------------------------- /tests/unit/igGrid/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Test igGrid", function () { 3 | it("Init igGrid and change options ", function () { 4 | var component; 5 | $.ig.react.test.createOrUpdateComponent(IgGrid, { 6 | id: "igComponent", 7 | width: 300, 8 | height: 300, 9 | autoGenerateColumns: true, 10 | dataSource: [{Id: 0, ProductName: "Test"}], 11 | initialized: function (c, e, igControl) { 12 | component = c; 13 | } 14 | }); 15 | expect($("#igComponent").data("igGrid")).not.toBeUndefined(); 16 | $.ig.react.test.createOrUpdateComponent(IgGrid, { 17 | width: 500 18 | }); 19 | expect($("#igComponent_table_container").width()).toBe(500); 20 | expect($.ig.react.core.getWidgetInstance(component, "igGrid") instanceof $.ui.igGrid) 21 | .toBe(true); 22 | }); 23 | }); 24 | } 25 | exports.main = main; 26 | -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [12.x, 14.x] 20 | 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v1 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | - run: npm ci 28 | - run: npm run test 29 | 30 | - name: Publish to coveralls.io 31 | if: github.repository == 'IgniteUI/igniteui-react-wrappers' && matrix.node-version == '14.x' 32 | uses: coverallsapp/github-action@v1.1.2 33 | with: 34 | path-to-lcov: ./coverage/lcov.info 35 | github-token: ${{ github.token }} 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Ignite UI 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/props/igScroll.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igScroll = { 2 | id: PropTypes.string.isRequired, 3 | alwaysVisible: PropTypes.bool, 4 | scrollbarType: PropTypes.oneOf([ 5 | "custom", 6 | "native", 7 | "none" 8 | ]), 9 | minThumbSize: PropTypes.oneOfType([ 10 | PropTypes.number, 11 | PropTypes.string 12 | ]), 13 | modifyDOM: PropTypes.bool, 14 | scrollHeight: PropTypes.number, 15 | scrollWidth: PropTypes.number, 16 | scrollTop: PropTypes.number, 17 | scrollLeft: PropTypes.number, 18 | wheelStep: PropTypes.number, 19 | smallIncrementStep: PropTypes.number, 20 | bigIncrementStep: PropTypes.number, 21 | smoothing: PropTypes.bool, 22 | smoothingStep: PropTypes.number, 23 | smoothingDuration: PropTypes.number, 24 | inertiaStep: PropTypes.number, 25 | inertiaDuration: PropTypes.number, 26 | swipeToleranceX: PropTypes.number, 27 | inertiaDeltaX: PropTypes.number, 28 | inertiaDeltaY: PropTypes.number, 29 | syncedElemsH: PropTypes.array, 30 | syncedElemsV: PropTypes.array, 31 | scrollbarH: PropTypes.string, 32 | scrollbarV: PropTypes.string, 33 | scrollOnlyHBar: PropTypes.bool, 34 | scrollOnlyVBar: PropTypes.bool, 35 | scrollbarHParent: PropTypes.string, 36 | scrollbarVParent: PropTypes.string 37 | } 38 | -------------------------------------------------------------------------------- /tests/unit/igDataChart/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igDataChart", function() { 3 | var data = [{ 4 | "CountryName": "China", 5 | "Pop1995": 1216, 6 | "Pop2005": 1297, 7 | "Pop2015": 1361, 8 | "Pop2025": 1394 9 | }], 10 | opts = { 11 | id: "igComponent", 12 | dataSource: data, 13 | axes: [{ 14 | name: "NameAxis", 15 | type: "categoryX", 16 | title: "Country", 17 | label: "CountryName" 18 | }, 19 | { 20 | name: "PopulationAxis", 21 | type: "numericY", 22 | minimumvalue: 0, 23 | title: "Milions of People" 24 | }], 25 | series: [{ 26 | name: "2015Population", 27 | type: "column", 28 | isHighlightingEnabled: true, 29 | isTransitionInEnabled: true, 30 | xAxis: "NameAxis", 31 | yAxis: "PopulationAxis", 32 | valueMemberPath: "Pop2015" 33 | }] 34 | }; 35 | $.ig.react.test.async("igDataChart", opts); 36 | }); 37 | } 38 | exports.main = main; -------------------------------------------------------------------------------- /.github/workflows/npm-publish.yml: -------------------------------------------------------------------------------- 1 | name: Npm.js deploy 2 | 3 | on: 4 | release: 5 | types: [created] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - uses: actions/setup-node@v1 13 | with: 14 | node-version: 12 15 | registry-url: 'https://registry.npmjs.org' 16 | - run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV 17 | - run: echo ${VERSION} 18 | 19 | - run: echo "NG_CLI_ANALYTICS=false" >> $GITHUB_ENV 20 | - run: echo "NODE_OPTIONS='--max_old_space_size=4096'" >> $GITHUB_ENV 21 | - run: npm ci 22 | 23 | - run: npm run prepare-dist 24 | 25 | # define npm tag 26 | - run: if [[ ${VERSION} == *"alpha"* || ${VERSION} == *"beta"* || ${VERSION} == *"rc"* ]]; then echo "NPM_TAG=next"; else echo "NPM_TAG=latest"; fi >> $GITHUB_ENV 27 | - run: echo ${NPM_TAG} 28 | 29 | # copy readme 30 | - run: cp ../../README.md README.md 31 | working-directory: dist/npm 32 | 33 | # create version and publish it to npmjs 34 | - run: npm version ${VERSION} --no-git-tag-version --save --verbose 35 | working-directory: dist/npm 36 | 37 | - run: npm publish --tag ${NPM_TAG} 38 | working-directory: dist/npm 39 | env: 40 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 41 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: xenial 3 | addons: 4 | chrome: stable 5 | services: 6 | - xvfb 7 | language: node_js 8 | node_js: 9 | - 'lts/*' 10 | before_install: 11 | - export DISPLAY=:99.0 12 | 13 | script: 14 | - npm run test 15 | - cat ./coverage/lcov.info | coveralls 16 | 17 | #before_deploy: 18 | # package and navigate to dist 19 | # - npm run prepare-dist 20 | # - cd dist/npm 21 | # update package version 22 | # - npm version "$TRAVIS_TAG" --no-git-tag-version --save 23 | 24 | #deploy: 25 | # provider: npm 26 | # skip_cleanup: true 27 | # email: igniteui@infragistics.com 28 | # api_key: 29 | # secure: O2Zsp89PM2zYp5OI6zc4k6Lg7ICyblxTOjy7LkK9s0hC85dqYHl+fVJ0saBvUMpW0HqFWsYnhvid8pBLgFm2afArjCT+j0Z1oj6vp67R3guYWGZnhX/bU51CFdRRqsAH69R00NLbc5kDSAJkGM4b3BoKGU1CUjb0cmmVUclShbLsf1wCofrZOlH5cYsvdxUD/LUwY0l8gckmyMQTJGbOoIwZl1hz99Ccch4aIqVZnDYg/kC3t76JuAiMufGmr6Rbuh+pgA1ytjVSF4GbPo8rIc4/MCtuimVSePowHoxXhXY/5jd3p0v3xg6Dbfg3D4LMqMa0ViZm2kXUVlMVsyf2O/sj40Kdv6w7RbXQkB5UOfifbcLcnDvNsjoJvWerZ6Yhp8p5Cgt2bPpdSfp2DrxT6PyqK4sOHk/nLNLHUQLrObH9dAsHxa5FhoyXZ5ELfTi3PgIBCPDeRBKWeQ+DKK0zv2AarfBZaHR83HBiltW+INiISQMIh6BW9JbqpMg9VewwghipEBX102kyz0jp/GWIKsxVTopEgWJ8HXxm6DzFQJZCL95Kdey2S9/GD2j5Ffn1JNMiFND609IQ4r3L+PRNQN7JezxgG4GGASwzIdmgpYxS7NXsr8riSYFW7BtqnDv+iAdxW2eMUXSy9C7oXwhadAhpK4IPapUt+yiYv3s29Qw= 30 | # on: 31 | # tags: true 32 | # repo: IgniteUI/igniteui-react-wrappers 33 | # branch: master 34 | -------------------------------------------------------------------------------- /src/props/igSpreadsheet.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igSpreadsheetBrushes = { 2 | } 3 | 4 | $.ig.react.propTypes.igSpreadsheet = { 5 | id: PropTypes.string.isRequired, 6 | width: PropTypes.oneOfType([ 7 | PropTypes.string, 8 | PropTypes.number 9 | ]), 10 | height: PropTypes.oneOfType([ 11 | PropTypes.string, 12 | PropTypes.number 13 | ]), 14 | activeCell: PropTypes.string, 15 | brushes: PropTypes.shape( 16 | $.ig.react.propTypes.shapes.igSpreadsheetBrushes 17 | ), 18 | isScrollLocked: PropTypes.bool, 19 | activeWorksheet: PropTypes.object, 20 | allowAddWorksheet: PropTypes.bool, 21 | allowDeleteWorksheet: PropTypes.bool, 22 | areGridlinesVisible: PropTypes.bool, 23 | areHeadersVisible: PropTypes.bool, 24 | enterKeyNavigationDirection: PropTypes.oneOf([ 25 | "down", 26 | "right", 27 | "up", 28 | "left" 29 | ]), 30 | fixedDecimalPlaceCount: PropTypes.number, 31 | isEnterKeyNavigationEnabled: PropTypes.bool, 32 | isFixedDecimalEnabled: PropTypes.bool, 33 | isFormulaBarVisible: PropTypes.bool, 34 | isInEndMode: PropTypes.bool, 35 | isUndoEnabled: PropTypes.bool, 36 | nameBoxWidth: PropTypes.number, 37 | selectionMode: PropTypes.oneOf([ 38 | "normal", 39 | "extendSelection", 40 | "addToSelection" 41 | ]), 42 | selectedWorksheets: PropTypes.object, 43 | validationInputMessagePosition: PropTypes.object, 44 | workbook: PropTypes.object, 45 | zoomLevel: PropTypes.number 46 | } 47 | -------------------------------------------------------------------------------- /src/props/igPopover.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igPopoverHeaderTemplate = { 2 | closeButton: PropTypes.bool, 3 | title: PropTypes.string 4 | } 5 | 6 | $.ig.react.propTypes.igPopover = { 7 | id: PropTypes.string.isRequired, 8 | closeOnBlur: PropTypes.bool, 9 | direction: PropTypes.oneOf([ 10 | "auto", 11 | "left", 12 | "right", 13 | "top", 14 | "bottom" 15 | ]), 16 | directionPriority: PropTypes.array, 17 | position: PropTypes.oneOf([ 18 | "auto", 19 | "balanced", 20 | "start", 21 | "end" 22 | ]), 23 | width: PropTypes.oneOfType([ 24 | PropTypes.number, 25 | PropTypes.string 26 | ]), 27 | height: PropTypes.oneOfType([ 28 | PropTypes.number, 29 | PropTypes.string 30 | ]), 31 | minWidth: PropTypes.oneOfType([ 32 | PropTypes.number, 33 | PropTypes.string 34 | ]), 35 | maxWidth: PropTypes.oneOfType([ 36 | PropTypes.number, 37 | PropTypes.string 38 | ]), 39 | maxHeight: PropTypes.oneOfType([ 40 | PropTypes.number, 41 | PropTypes.string 42 | ]), 43 | animationDuration: PropTypes.number, 44 | contentTemplate: PropTypes.oneOfType([ 45 | PropTypes.string, 46 | PropTypes.func 47 | ]), 48 | selectors: PropTypes.string, 49 | headerTemplate: PropTypes.shape( 50 | $.ig.react.propTypes.shapes.igPopoverHeaderTemplate 51 | ), 52 | showOn: PropTypes.oneOf([ 53 | "mouseenter", 54 | "click", 55 | "focus" 56 | ]), 57 | containment: PropTypes.object, 58 | appendTo: PropTypes.oneOfType([ 59 | PropTypes.string, 60 | PropTypes.object 61 | ]) 62 | } 63 | -------------------------------------------------------------------------------- /tests/unit/igZoombar/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | describe("Basic test igZoombar", function() { 3 | var data = [{ 4 | "CountryName": "China", 5 | "Pop1995": 1216, 6 | "Pop2005": 1297, 7 | "Pop2015": 1361, 8 | "Pop2025": 1394 9 | }], 10 | chartOpts = { 11 | id: "datachart1", 12 | dataSource: data, 13 | axes: [{ 14 | name: "NameAxis", 15 | type: "categoryX", 16 | title: "Country", 17 | label: "CountryName" 18 | }, 19 | { 20 | name: "PopulationAxis", 21 | type: "numericY", 22 | minimumvalue: 0, 23 | title: "Milions of People" 24 | }], 25 | series: [{ 26 | name: "2015Population", 27 | type: "column", 28 | isHighlightingEnabled: true, 29 | isTransitionInEnabled: true, 30 | xAxis: "NameAxis", 31 | yAxis: "PopulationAxis", 32 | valueMemberPath: "Pop2015" 33 | }] 34 | }; 35 | $.ig.react.test.createOrUpdateComponent(IgDataChart, chartOpts, "datachart1_wrapper"); 36 | $.ig.react.test.async("igZoombar", { 37 | id: "igComponent", 38 | target: "#datachart1" 39 | }); 40 | }); 41 | } 42 | exports.main = main; -------------------------------------------------------------------------------- /src/props/igMaskEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igMaskEditor = { 2 | id: PropTypes.string.isRequired, 3 | buttonType: PropTypes.oneOf([ 4 | "clear" 5 | ]), 6 | inputMask: PropTypes.string, 7 | dataMode: PropTypes.oneOf([ 8 | "rawText", 9 | "rawTextWithRequiredPrompts", 10 | "rawTextWithAllPrompts", 11 | "rawTextWithLiterals", 12 | "rawTextWithRequiredPromptsAndLiterals", 13 | "allText" 14 | ]), 15 | unfilledCharsPrompt: PropTypes.string, 16 | padChar: PropTypes.string, 17 | emptyChar: PropTypes.string, 18 | includeKeys: PropTypes.string, 19 | excludeKeys: PropTypes.string, 20 | value: PropTypes.object, 21 | textAlign: PropTypes.oneOf([ 22 | "left", 23 | "right", 24 | "center" 25 | ]), 26 | placeHolder: PropTypes.string, 27 | selectionOnFocus: PropTypes.oneOf([ 28 | "selectAll", 29 | "atStart", 30 | "atEnd", 31 | "browserDefault" 32 | ]), 33 | revertIfNotValid: PropTypes.bool, 34 | preventSubmitOnEnter: PropTypes.bool, 35 | toUpper: PropTypes.bool, 36 | toLower: PropTypes.bool, 37 | suppressNotifications: PropTypes.bool, 38 | width: PropTypes.oneOfType([ 39 | PropTypes.string, 40 | PropTypes.number 41 | ]), 42 | height: PropTypes.oneOfType([ 43 | PropTypes.string, 44 | PropTypes.number 45 | ]), 46 | tabIndex: PropTypes.number, 47 | allowNullValue: PropTypes.bool, 48 | nullValue: PropTypes.oneOfType([ 49 | PropTypes.string, 50 | PropTypes.number 51 | ]), 52 | inputName: PropTypes.string, 53 | readOnly: PropTypes.bool, 54 | disabled: PropTypes.bool, 55 | validatorOptions: PropTypes.object 56 | } 57 | -------------------------------------------------------------------------------- /src/props/igValidator.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igValidatorField = { 2 | selector: PropTypes.oneOfType([ 3 | PropTypes.string, 4 | PropTypes.object 5 | ]) 6 | } 7 | 8 | $.ig.react.propTypes.igValidator = { 9 | id: PropTypes.string.isRequired, 10 | onchange: PropTypes.bool, 11 | onblur: PropTypes.bool, 12 | onsubmit: PropTypes.bool, 13 | required: PropTypes.oneOfType([ 14 | PropTypes.bool, 15 | PropTypes.object 16 | ]), 17 | number: PropTypes.oneOfType([ 18 | PropTypes.bool, 19 | PropTypes.object 20 | ]), 21 | date: PropTypes.oneOfType([ 22 | PropTypes.bool, 23 | PropTypes.object 24 | ]), 25 | email: PropTypes.oneOfType([ 26 | PropTypes.bool, 27 | PropTypes.object 28 | ]), 29 | lengthRange: PropTypes.oneOfType([ 30 | PropTypes.array, 31 | PropTypes.object 32 | ]), 33 | valueRange: PropTypes.oneOfType([ 34 | PropTypes.array, 35 | PropTypes.object 36 | ]), 37 | creditCard: PropTypes.oneOfType([ 38 | PropTypes.bool, 39 | PropTypes.object 40 | ]), 41 | pattern: PropTypes.oneOfType([ 42 | PropTypes.string, 43 | PropTypes.object 44 | ]), 45 | executeAllRules: PropTypes.bool, 46 | messageTarget: PropTypes.element, 47 | errorMessage: PropTypes.string, 48 | successMessage: PropTypes.string, 49 | threshold: PropTypes.number, 50 | equalTo: PropTypes.oneOfType([ 51 | PropTypes.string, 52 | PropTypes.object 53 | ]), 54 | custom: PropTypes.oneOfType([ 55 | PropTypes.func, 56 | PropTypes.string, 57 | PropTypes.object 58 | ]), 59 | fields: PropTypes.arrayOf( 60 | PropTypes.shape($.ig.react.propTypes.shapes.igValidatorField) 61 | ), 62 | notificationOptions: PropTypes.object, 63 | requiredIndication: PropTypes.bool, 64 | optionalIndication: PropTypes.bool 65 | } 66 | -------------------------------------------------------------------------------- /src/props/igDateEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igDateEditor = { 2 | id: PropTypes.string.isRequired, 3 | value: PropTypes.instanceOf(Date), 4 | minValue: PropTypes.instanceOf(Date), 5 | maxValue: PropTypes.instanceOf(Date), 6 | dateDisplayFormat: PropTypes.string, 7 | dateInputFormat: PropTypes.string, 8 | dataMode: PropTypes.oneOf([ 9 | "date", 10 | "displayModeText", 11 | "editModeText" 12 | ]), 13 | displayTimeOffset: PropTypes.object, 14 | buttonType: PropTypes.oneOf([ 15 | "clear", 16 | "spin" 17 | ]), 18 | spinDelta: PropTypes.oneOfType([ 19 | PropTypes.number, 20 | PropTypes.object 21 | ]), 22 | limitSpinToCurrentField: PropTypes.bool, 23 | enableUTCDates: PropTypes.bool, 24 | centuryThreshold: PropTypes.number, 25 | yearShift: PropTypes.number, 26 | nullValue: PropTypes.oneOfType([ 27 | PropTypes.string, 28 | PropTypes.number, 29 | PropTypes.instanceOf(Date) 30 | ]), 31 | includeKeys: PropTypes.string, 32 | excludeKeys: PropTypes.string, 33 | textAlign: PropTypes.oneOf([ 34 | "left", 35 | "right", 36 | "center" 37 | ]), 38 | placeHolder: PropTypes.string, 39 | selectionOnFocus: PropTypes.oneOf([ 40 | "selectAll", 41 | "atStart", 42 | "atEnd", 43 | "browserDefault" 44 | ]), 45 | revertIfNotValid: PropTypes.bool, 46 | preventSubmitOnEnter: PropTypes.bool, 47 | suppressNotifications: PropTypes.bool, 48 | width: PropTypes.oneOfType([ 49 | PropTypes.string, 50 | PropTypes.number 51 | ]), 52 | height: PropTypes.oneOfType([ 53 | PropTypes.string, 54 | PropTypes.number 55 | ]), 56 | tabIndex: PropTypes.number, 57 | allowNullValue: PropTypes.bool, 58 | inputName: PropTypes.string, 59 | readOnly: PropTypes.bool, 60 | disabled: PropTypes.bool, 61 | validatorOptions: PropTypes.object 62 | } 63 | -------------------------------------------------------------------------------- /samples/ig-grid/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | IgniteUI ReactJS Grid 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/props/igLayoutManager.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igLayoutManagerBorderLayout = { 2 | leftWidth: PropTypes.string, 3 | rightWidth: PropTypes.string, 4 | showFooter: PropTypes.bool, 5 | showHeader: PropTypes.bool, 6 | showLeft: PropTypes.bool, 7 | showRight: PropTypes.bool 8 | } 9 | 10 | $.ig.react.propTypes.shapes.igLayoutManagerGridLayout = { 11 | animationDuration: PropTypes.number, 12 | cols: PropTypes.number, 13 | columnHeight: PropTypes.oneOfType([ 14 | PropTypes.string, 15 | PropTypes.number, 16 | PropTypes.array 17 | ]), 18 | columnWidth: PropTypes.oneOfType([ 19 | PropTypes.string, 20 | PropTypes.number, 21 | PropTypes.array 22 | ]), 23 | marginLeft: PropTypes.number, 24 | marginTop: PropTypes.number, 25 | overrideConfigOnSetOption: PropTypes.bool, 26 | rearrangeItems: PropTypes.bool, 27 | rows: PropTypes.number 28 | } 29 | 30 | $.ig.react.propTypes.shapes.igLayoutManagerItem = { 31 | colIndex: PropTypes.number, 32 | colSpan: PropTypes.number, 33 | height: PropTypes.string, 34 | rowIndex: PropTypes.number, 35 | rowSpan: PropTypes.number, 36 | width: PropTypes.number 37 | } 38 | 39 | $.ig.react.propTypes.igLayoutManager = { 40 | id: PropTypes.string.isRequired, 41 | borderLayout: PropTypes.shape( 42 | $.ig.react.propTypes.shapes.igLayoutManagerBorderLayout 43 | ), 44 | gridLayout: PropTypes.shape( 45 | $.ig.react.propTypes.shapes.igLayoutManagerGridLayout 46 | ), 47 | height: PropTypes.oneOfType([ 48 | PropTypes.string, 49 | PropTypes.number 50 | ]), 51 | itemCount: PropTypes.number, 52 | items: PropTypes.arrayOf( 53 | PropTypes.shape($.ig.react.propTypes.shapes.igLayoutManagerItem) 54 | ), 55 | layoutMode: PropTypes.any, 56 | width: PropTypes.oneOfType([ 57 | PropTypes.string, 58 | PropTypes.number 59 | ]) 60 | } 61 | -------------------------------------------------------------------------------- /samples/ig-editors/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | IgniteUI ReactJS Editors 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /samples/ig-dashboard/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | IgniteUI ReactJS Dashboard 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/props/igFunnelChart.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igFunnelChart = { 2 | id: PropTypes.string.isRequired, 3 | bezierPoints: PropTypes.string, 4 | legend: PropTypes.object, 5 | valueMemberPath: PropTypes.string, 6 | brushes: PropTypes.object, 7 | outlines: PropTypes.object, 8 | bottomEdgeWidth: PropTypes.number, 9 | innerLabelMemberPath: PropTypes.string, 10 | outerLabelMemberPath: PropTypes.string, 11 | innerLabelVisibility: PropTypes.oneOf([ 12 | "visible", 13 | "collapsed" 14 | ]), 15 | outerLabelVisibility: PropTypes.oneOf([ 16 | "visible", 17 | "collapsed" 18 | ]), 19 | outerLabelAlignment: PropTypes.oneOf([ 20 | "left", 21 | "right" 22 | ]), 23 | funnelSliceDisplay: PropTypes.oneOf([ 24 | "uniform", 25 | "weighted" 26 | ]), 27 | formatInnerLabel: PropTypes.object, 28 | formatOuterLabel: PropTypes.object, 29 | transitionDuration: PropTypes.number, 30 | isInverted: PropTypes.bool, 31 | useBezierCurve: PropTypes.bool, 32 | allowSliceSelection: PropTypes.bool, 33 | useUnselectedStyle: PropTypes.bool, 34 | selectedSliceStyle: PropTypes.object, 35 | unselectedSliceStyle: PropTypes.object, 36 | legendItemBadgeTemplate: PropTypes.object, 37 | useOuterLabelsForLegend: PropTypes.bool, 38 | textStyle: PropTypes.string, 39 | outerLabelTextStyle: PropTypes.string, 40 | outlineThickness: PropTypes.number, 41 | pixelScalingRatio: PropTypes.number, 42 | outerLabelTextColor: PropTypes.string, 43 | textColor: PropTypes.string, 44 | width: PropTypes.number, 45 | height: PropTypes.number, 46 | tooltipTemplate: PropTypes.string, 47 | maxRecCount: PropTypes.number, 48 | dataSource: PropTypes.object, 49 | dataSourceType: PropTypes.string, 50 | dataSourceUrl: PropTypes.string, 51 | responseTotalRecCountKey: PropTypes.string, 52 | responseDataKey: PropTypes.string 53 | } 54 | -------------------------------------------------------------------------------- /samples/ig-financial-state/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | IgniteUI ReactJS Financial State 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "igniteui-react-wrappers", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/IgniteUI/igniteui-react-wrappers.git" 8 | }, 9 | "dependencies": { 10 | "babel-core": "^6.26.3", 11 | "create-react-class": "^15.7.0", 12 | "prop-types": "^15.6.2", 13 | "react": "^17.0.2", 14 | "react-dom": "^17.0.2" 15 | }, 16 | "scripts": { 17 | "build": "npm run prepare-dist", 18 | "prepare-dist": "uglifyjs src/props/* -b -o dist/npm/igniteui-react.js && node -e \"require('concat-files')(['build/build-wrapper-start','dist/npm/igniteui-react.js','build/build-wrapper-end'], 'dist/npm/igniteui-react.js');\" && uglifyjs src/util/* dist/npm/igniteui-react.js -b -o dist/npm/igniteui-react.js && node -e \"require('fs-extra').ensureDirSync('dist/npm/ui');require('fs-extra').copySync('src/components', 'dist/npm/ui');require('fs-extra').ensureDirSync('dist/npm/dist');\" && uglifyjs dist/npm/igniteui-react.js src/components/* -b -o dist/npm/dist/igniteui-react.js && uglifyjs dist/npm/dist/igniteui-react.js -o dist/npm/dist/igniteui-react.min.js", 19 | "pretest": "npm run build", 20 | "test": "karma start tests/karma.conf.js --single-run --watch=false --code-coverage" 21 | }, 22 | "devDependencies": { 23 | "concat-files": "^0.1.1", 24 | "coveralls": "^3.1.0", 25 | "fs-extra": "^9.1.0", 26 | "jasmine-core": "^3.7.1", 27 | "jspm": "~2.0.0-beta.7", 28 | "karma": "^6.3.2", 29 | "karma-chrome-launcher": "~2.2.0", 30 | "karma-coverage": "^2.0.3", 31 | "karma-jasmine": "^4.0.1", 32 | "karma-jasmine-html-reporter": "^1.5.4", 33 | "karma-junit-reporter": "^2.0.1", 34 | "karma-remap-istanbul": "", 35 | "systemjs": "0.21.6", 36 | "uglify-js": "^3.13.4" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/props/igTextEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igTextEditor = { 2 | id: PropTypes.string.isRequired, 3 | buttonType: PropTypes.oneOf([ 4 | "dropdown", 5 | "clear", 6 | "spin" 7 | ]), 8 | listItems: PropTypes.array, 9 | listWidth: PropTypes.number, 10 | listItemHoverDuration: PropTypes.number, 11 | dropDownAttachedToBody: PropTypes.bool, 12 | dropDownAnimationDuration: PropTypes.number, 13 | visibleItemsCount: PropTypes.number, 14 | includeKeys: PropTypes.string, 15 | excludeKeys: PropTypes.string, 16 | textAlign: PropTypes.oneOf([ 17 | "left", 18 | "right", 19 | "center" 20 | ]), 21 | placeHolder: PropTypes.string, 22 | selectionOnFocus: PropTypes.oneOf([ 23 | "selectAll", 24 | "atStart", 25 | "atEnd", 26 | "browserDefault" 27 | ]), 28 | textMode: PropTypes.oneOf([ 29 | "text", 30 | "password", 31 | "multiline" 32 | ]), 33 | spinWrapAround: PropTypes.bool, 34 | isLimitedToListValues: PropTypes.bool, 35 | revertIfNotValid: PropTypes.bool, 36 | preventSubmitOnEnter: PropTypes.bool, 37 | dropDownOrientation: PropTypes.oneOf([ 38 | "auto", 39 | "bottom", 40 | "top" 41 | ]), 42 | maxLength: PropTypes.number, 43 | dropDownOnReadOnly: PropTypes.bool, 44 | toUpper: PropTypes.bool, 45 | toLower: PropTypes.bool, 46 | suppressNotifications: PropTypes.bool, 47 | suppressKeyboard: PropTypes.bool, 48 | width: PropTypes.oneOfType([ 49 | PropTypes.string, 50 | PropTypes.number 51 | ]), 52 | height: PropTypes.oneOfType([ 53 | PropTypes.string, 54 | PropTypes.number 55 | ]), 56 | value: PropTypes.object, 57 | tabIndex: PropTypes.number, 58 | allowNullValue: PropTypes.bool, 59 | nullValue: PropTypes.oneOfType([ 60 | PropTypes.string, 61 | PropTypes.number 62 | ]), 63 | inputName: PropTypes.string, 64 | readOnly: PropTypes.bool, 65 | disabled: PropTypes.bool, 66 | validatorOptions: PropTypes.object 67 | } 68 | -------------------------------------------------------------------------------- /src/props/igDatePicker.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igDatePicker = { 2 | id: PropTypes.string.isRequired, 3 | buttonType: PropTypes.oneOf([ 4 | "dropdown", 5 | "clear", 6 | "spin" 7 | ]), 8 | datepickerOptions: PropTypes.object, 9 | dropDownOnReadOnly: PropTypes.bool, 10 | suppressKeyboard: PropTypes.bool, 11 | value: PropTypes.instanceOf(Date), 12 | minValue: PropTypes.instanceOf(Date), 13 | maxValue: PropTypes.instanceOf(Date), 14 | dateDisplayFormat: PropTypes.string, 15 | dateInputFormat: PropTypes.string, 16 | dataMode: PropTypes.oneOf([ 17 | "date", 18 | "displayModeText", 19 | "editModeText" 20 | ]), 21 | displayTimeOffset: PropTypes.object, 22 | spinDelta: PropTypes.oneOfType([ 23 | PropTypes.number, 24 | PropTypes.object 25 | ]), 26 | limitSpinToCurrentField: PropTypes.bool, 27 | enableUTCDates: PropTypes.bool, 28 | centuryThreshold: PropTypes.number, 29 | yearShift: PropTypes.number, 30 | nullValue: PropTypes.oneOfType([ 31 | PropTypes.string, 32 | PropTypes.number, 33 | PropTypes.instanceOf(Date) 34 | ]), 35 | includeKeys: PropTypes.string, 36 | excludeKeys: PropTypes.string, 37 | textAlign: PropTypes.oneOf([ 38 | "left", 39 | "right", 40 | "center" 41 | ]), 42 | placeHolder: PropTypes.string, 43 | selectionOnFocus: PropTypes.oneOf([ 44 | "selectAll", 45 | "atStart", 46 | "atEnd", 47 | "browserDefault" 48 | ]), 49 | revertIfNotValid: PropTypes.bool, 50 | preventSubmitOnEnter: PropTypes.bool, 51 | suppressNotifications: PropTypes.bool, 52 | width: PropTypes.oneOfType([ 53 | PropTypes.string, 54 | PropTypes.number 55 | ]), 56 | height: PropTypes.oneOfType([ 57 | PropTypes.string, 58 | PropTypes.number 59 | ]), 60 | tabIndex: PropTypes.number, 61 | allowNullValue: PropTypes.bool, 62 | inputName: PropTypes.string, 63 | readOnly: PropTypes.bool, 64 | disabled: PropTypes.bool, 65 | validatorOptions: PropTypes.object 66 | } 67 | -------------------------------------------------------------------------------- /src/props/igNotifier.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igNotifierHeaderTemplate = { 2 | closeButton: PropTypes.bool, 3 | title: PropTypes.string 4 | } 5 | 6 | $.ig.react.propTypes.igNotifier = { 7 | id: PropTypes.string.isRequired, 8 | state: PropTypes.oneOf([ 9 | "success", 10 | "info", 11 | "warning", 12 | "error" 13 | ]), 14 | notifyLevel: PropTypes.oneOf([ 15 | "success", 16 | "info", 17 | "warning", 18 | "error" 19 | ]), 20 | appendTo: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.object 23 | ]), 24 | mode: PropTypes.oneOf([ 25 | "auto", 26 | "popover", 27 | "inline" 28 | ]), 29 | allowCSSOnTarget: PropTypes.bool, 30 | showIcon: PropTypes.bool, 31 | contentTemplate: PropTypes.oneOfType([ 32 | PropTypes.string, 33 | PropTypes.func 34 | ]), 35 | headerTemplate: PropTypes.shape( 36 | $.ig.react.propTypes.shapes.igNotifierHeaderTemplate 37 | ), 38 | showOn: PropTypes.oneOf([ 39 | "mouseenter", 40 | "click", 41 | "focus", 42 | "manual" 43 | ]), 44 | closeOnBlur: PropTypes.bool, 45 | animationDuration: PropTypes.number, 46 | animationSlideDistance: PropTypes.number, 47 | direction: PropTypes.oneOf([ 48 | "auto", 49 | "left", 50 | "right", 51 | "top", 52 | "bottom" 53 | ]), 54 | directionPriority: PropTypes.array, 55 | position: PropTypes.oneOf([ 56 | "auto", 57 | "balanced", 58 | "start", 59 | "end" 60 | ]), 61 | width: PropTypes.oneOfType([ 62 | PropTypes.number, 63 | PropTypes.string 64 | ]), 65 | height: PropTypes.oneOfType([ 66 | PropTypes.number, 67 | PropTypes.string 68 | ]), 69 | minWidth: PropTypes.oneOfType([ 70 | PropTypes.number, 71 | PropTypes.string 72 | ]), 73 | maxWidth: PropTypes.oneOfType([ 74 | PropTypes.number, 75 | PropTypes.string 76 | ]), 77 | maxHeight: PropTypes.oneOfType([ 78 | PropTypes.number, 79 | PropTypes.string 80 | ]), 81 | containment: PropTypes.object 82 | } 83 | -------------------------------------------------------------------------------- /tests/unit/common/test.js: -------------------------------------------------------------------------------- 1 | function main() { 2 | var defaultConfig = { 3 | igBaseChart: { 4 | skip: true 5 | }, 6 | igBulletGraph: { 7 | skip: true 8 | }, 9 | igColorPickerSplitButton: { 10 | skip: true 11 | }, 12 | igBaseEditor: { 13 | skip: true 14 | }, 15 | igDataChart: { 16 | skip: true 17 | }, 18 | igCategoryChart: { 19 | skip: true 20 | }, 21 | igFinancialChart: { 22 | skip: true 23 | }, 24 | igShapeChart: { 25 | skip: true 26 | }, 27 | igLinearGauge: { 28 | skip: true 29 | }, 30 | igHtmlEditor: { 31 | skip: true 32 | }, 33 | igRadialGauge: { 34 | skip: true 35 | }, 36 | igMap: { 37 | skip: true 38 | }, 39 | IgZoombar: { 40 | skip: true 41 | }, 42 | IgScheduler: { 43 | skip: true 44 | }, 45 | IgSpreadsheet: { 46 | skip: true 47 | } 48 | }; 49 | 50 | describe("Basic react wrappers test", function () { 51 | it("Test rendering component ", function () { 52 | var suite = $.ig.react.propTypes, component, name, config, opts, 53 | initCalled; 54 | for (component in suite) { 55 | if (suite.hasOwnProperty(component) && component.startsWith("ig")) { 56 | name = component.charAt(0).toUpperCase() + component.slice(1); 57 | config = defaultConfig[name] || defaultConfig[component]; 58 | opts = config && config.options ? config.options : {}; 59 | if (config && config.skip) { 60 | continue; 61 | } 62 | initCalled = false; 63 | $.ig.react.test.createOrUpdateComponent(window[name], $.extend({ 64 | id: "igComponent", 65 | initialized: function () { initCalled = true; } 66 | }, opts)); 67 | expect($("#igComponent").data(component)).not.toBeUndefined(); 68 | expect(initCalled).toBeTruthy(); 69 | $.ig.react.test.removeElement(); 70 | } 71 | } 72 | }); 73 | }); 74 | 75 | } 76 | exports.main = main; -------------------------------------------------------------------------------- /samples/ig-grid/src/components/IgDialogBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import createReactClass from 'create-react-class'; 3 | import IgButton from 'igniteui-react-wrappers/ui/igButton.js'; 4 | import IgDialog from 'igniteui-react-wrappers/ui/igDialog.js'; 5 | import $ from 'jquery' 6 | import '../sample.css'; 7 | 8 | var IgDialogBox = createReactClass({ 9 | render: function () { 10 | return ( 11 | 20 |

Are you sure you want to delete row with ID?

21 |
22 |
23 | 24 |
25 |
26 | 27 |
28 |
29 | ); 30 | }, 31 | componentWillReceiveProps(nextProps) { 32 | if (this.props.rowId !== nextProps.rowId) { 33 | $(this.refs.dialogText).html("Are you sure you want to delete row with ID " + nextProps.rowId + " ?"); 34 | } 35 | }, 36 | handleDialogStateChanging: function (evt, ui) { 37 | this.props.dialogStateChanging(evt, ui); 38 | }, 39 | handleDeleteDialogAccept: function () { 40 | this.props.deleteDialogAccept(); 41 | }, 42 | handleDeleteDialogCancel: function () { 43 | this.props.deleteDialogCancel(); 44 | } 45 | }); 46 | 47 | export default IgDialogBox; 48 | -------------------------------------------------------------------------------- /tests/karma-test-shim.js: -------------------------------------------------------------------------------- 1 | if (!Object.hasOwnProperty('name')) { 2 | Object.defineProperty(Function.prototype, 'name', { 3 | get: function() { 4 | var matches = this.toString().match(/^\s*function\s*(\S*)\s*\(/); 5 | var name = matches && matches.length > 1 ? matches[1] : ""; 6 | Object.defineProperty(this, 'name', {value: name}); 7 | return name; 8 | } 9 | }); 10 | } 11 | // Load our SystemJS configuration. 12 | System.config({ 13 | defaultJSExtensions: true, 14 | baseURL: '/base/' 15 | }); 16 | // Turn on full stack traces in errors to help debugging 17 | Error.stackTraceLimit = Infinity; 18 | 19 | jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000; 20 | 21 | // Cancel Karma's synchronous start, 22 | // we will call `__karma__.start()` later, once all the specs are loaded. 23 | __karma__.loaded = function() {}; 24 | 25 | Promise.all([ 26 | //System.import('@angular/core/testing') 27 | ]).then(function() { 28 | return Promise.all( 29 | Object.keys(window.__karma__.files) // All files served by Karma. 30 | .filter(onlySpecFiles) 31 | .map(function(path) { 32 | return System.import(path).then(function(module) { 33 | if (module.hasOwnProperty('main')) { 34 | module.main(); 35 | } else { 36 | throw new Error('Module ' + path + ' does not implement main() method.'); 37 | } 38 | }); 39 | })); 40 | }) 41 | .then(function() { 42 | __karma__.start(); 43 | }, function(error) { 44 | console.error(error.stack || error); 45 | __karma__.start(); 46 | }); 47 | 48 | function onlySpecFiles(path) { 49 | // check for individual files, if not given, always matches to all 50 | var patternMatched = __karma__.config.files ? 51 | path.match(new RegExp(__karma__.config.files)) : true; 52 | /* 53 | //Test only files in specified path 54 | if (/\/tests\/unit\/common\/.*\.js/.test(path)) { 55 | return true; 56 | } 57 | return false; 58 | */ 59 | return patternMatched && /\/tests\/unit\/.*\.js/.test(path); 60 | } -------------------------------------------------------------------------------- /src/props/igScheduler.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igSchedulerAgendaViewSettings = { 2 | dateRangeInterval: PropTypes.number 3 | } 4 | 5 | $.ig.react.propTypes.shapes.igSchedulerWeekViewSettings = { 6 | weekViewDisplayMode: PropTypes.number, 7 | workingHoursDisplayMode: PropTypes.number, 8 | timeSlotInterval: PropTypes.number 9 | } 10 | 11 | $.ig.react.propTypes.shapes.igSchedulerDayViewSettings = { 12 | timeSlotInterval: PropTypes.number, 13 | dayViewNumberOfDays: PropTypes.number, 14 | workingHoursDisplayMode: PropTypes.number 15 | } 16 | 17 | $.ig.react.propTypes.shapes.igSchedulerMonthViewSettings = { 18 | appointmentMode: PropTypes.string, 19 | isAgendaVisible: PropTypes.bool, 20 | agendaVisibilityType: PropTypes.string, 21 | viewSplitOrientation: PropTypes.string, 22 | isHorizontalSeparatorVisibile: PropTypes.bool, 23 | isVerticalSeparatorVisibile: PropTypes.bool, 24 | isWeekdayVisible: PropTypes.bool, 25 | isWeekNumberVisible: PropTypes.bool, 26 | isPreviousMonthShown: PropTypes.bool, 27 | isNextMonthShown: PropTypes.bool 28 | } 29 | 30 | $.ig.react.propTypes.igScheduler = { 31 | id: PropTypes.string.isRequired, 32 | views: PropTypes.array, 33 | viewMode: PropTypes.oneOf([ 34 | "monthView", 35 | "agendaView" 36 | ]), 37 | selectedDate: PropTypes.instanceOf(Date), 38 | enableTodayButton: PropTypes.bool, 39 | width: PropTypes.oneOfType([ 40 | PropTypes.string, 41 | PropTypes.number 42 | ]), 43 | height: PropTypes.oneOfType([ 44 | PropTypes.string, 45 | PropTypes.number 46 | ]), 47 | agendaViewSettings: PropTypes.shape( 48 | $.ig.react.propTypes.shapes.igSchedulerAgendaViewSettings 49 | ), 50 | weekViewSettings: PropTypes.shape( 51 | $.ig.react.propTypes.shapes.igSchedulerWeekViewSettings 52 | ), 53 | dayViewSettings: PropTypes.shape( 54 | $.ig.react.propTypes.shapes.igSchedulerDayViewSettings 55 | ), 56 | monthViewSettings: PropTypes.shape( 57 | $.ig.react.propTypes.shapes.igSchedulerMonthViewSettings 58 | ), 59 | appointmentDialogSuppress: PropTypes.bool, 60 | dataSource: PropTypes.object, 61 | resources: PropTypes.object 62 | } 63 | -------------------------------------------------------------------------------- /src/props/igDialog.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igDialogLocale = { 2 | closeButtonTitle: PropTypes.string, 3 | minimizeButtonTitle: PropTypes.string, 4 | maximizeButtonTitle: PropTypes.string, 5 | pinButtonTitle: PropTypes.string, 6 | unpinButtonTitle: PropTypes.string, 7 | restoreButtonTitle: PropTypes.string 8 | } 9 | 10 | $.ig.react.propTypes.igDialog = { 11 | id: PropTypes.string.isRequired, 12 | mainElement: PropTypes.element, 13 | state: PropTypes.oneOf([ 14 | "opened", 15 | "minimized", 16 | "maximized", 17 | "closed" 18 | ]), 19 | pinned: PropTypes.bool, 20 | closeOnEscape: PropTypes.bool, 21 | showCloseButton: PropTypes.bool, 22 | showMaximizeButton: PropTypes.bool, 23 | showMinimizeButton: PropTypes.bool, 24 | showPinButton: PropTypes.bool, 25 | pinOnMinimized: PropTypes.bool, 26 | imageClass: PropTypes.string, 27 | headerText: PropTypes.string, 28 | showHeader: PropTypes.bool, 29 | showFooter: PropTypes.bool, 30 | footerText: PropTypes.string, 31 | dialogClass: PropTypes.string, 32 | container: PropTypes.object, 33 | height: PropTypes.oneOfType([ 34 | PropTypes.number, 35 | PropTypes.string 36 | ]), 37 | width: PropTypes.oneOfType([ 38 | PropTypes.number, 39 | PropTypes.string 40 | ]), 41 | minHeight: PropTypes.number, 42 | minWidth: PropTypes.number, 43 | maxHeight: PropTypes.number, 44 | maxWidth: PropTypes.number, 45 | draggable: PropTypes.bool, 46 | position: PropTypes.object, 47 | resizable: PropTypes.bool, 48 | tabIndex: PropTypes.number, 49 | openAnimation: PropTypes.object, 50 | closeAnimation: PropTypes.object, 51 | zIndex: PropTypes.number, 52 | modal: PropTypes.bool, 53 | trackFocus: PropTypes.bool, 54 | closeButtonTitle: PropTypes.string, 55 | minimizeButtonTitle: PropTypes.string, 56 | maximizeButtonTitle: PropTypes.string, 57 | pinButtonTitle: PropTypes.string, 58 | unpinButtonTitle: PropTypes.string, 59 | restoreButtonTitle: PropTypes.string, 60 | locale: PropTypes.shape( 61 | $.ig.react.propTypes.shapes.igDialogLocale 62 | ), 63 | temporaryUrl: PropTypes.string, 64 | enableHeaderFocus: PropTypes.bool, 65 | enableDblclick: PropTypes.any 66 | } 67 | -------------------------------------------------------------------------------- /tests/util.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | $.ig = $.ig || {}; 3 | $.ig.react = $.ig.react || {}; 4 | 5 | $.ig.react.test = $.ig.react.test || {}; 6 | $.ig.react.test.elementId = "testbed"; 7 | $.ig.react.test.getElement = function (id) { 8 | id = id || $.ig.react.test.elementId; 9 | return $("#" + id); 10 | }; 11 | $.ig.react.test.getOrCreateElement = function (id) { 12 | id = id || $.ig.react.test.elementId; 13 | var $e = $.ig.react.test.getElement(id); 14 | if (!$e.length) { 15 | $e = $("
") 16 | .appendTo(document.body); 17 | } 18 | return $e; 19 | }; 20 | $.ig.react.test.removeElement = function (id) { 21 | $.ig.react.test.getElement(id).remove(); 22 | }; 23 | $.ig.react.test.createOrUpdateComponent = function (component, options, elementId) { 24 | options = options || {}; 25 | ReactDOM.render(React.createElement(component, options), 26 | $.ig.react.test.getOrCreateElement(elementId)[0]); 27 | }; 28 | $.ig.react.test.async = function (componentName, options, callback, timeout) { 29 | it("Test component " + componentName, function (done) { 30 | var initCalled = false, 31 | component = null, 32 | id = options.id || "igComponent", 33 | reactCompName = componentName.charAt(0).toUpperCase() + componentName.slice(1); 34 | options.id = id; 35 | options.initialized = options.initialized || 36 | function (c, e, igControl) { initCalled = true; component = c;}; 37 | $.ig.react.test.createOrUpdateComponent(window[reactCompName], options); 38 | expect($("#" + id).data(componentName)).not.toBeUndefined(); 39 | setTimeout(function () { 40 | expect(initCalled).toBe(true); 41 | expect(component instanceof window[reactCompName]) 42 | .toBe(true); 43 | if (callback) { 44 | callback(id, component); 45 | } 46 | done(); 47 | }, timeout || 300); 48 | }); 49 | }; 50 | })(jQuery); -------------------------------------------------------------------------------- /samples/ig-dashboard/src/components/IgEditBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import IgNumericEditor from 'igniteui-react-wrappers/ui/igNumericEditor.js'; 3 | import IgButton from 'igniteui-react-wrappers/ui/igButton.js'; 4 | 5 | // Ignite UI Required Combined JavaScript Files 6 | import "@infragistics/ignite-ui-full/en/js/infragistics.core.js"; 7 | import "@infragistics/ignite-ui-full/en/js/infragistics.lob.js"; 8 | 9 | class IgEditBox extends React.Component { 10 | render() { 11 | var rowId = this.props.rowId, 12 | v = rowId > -1; 13 | return ( 14 |
15 |

Change values in row with ID {this.props.rowId}:

16 |
17 |
18 | 19 |
20 | 26 |
27 |
28 |
29 | 30 |
31 | 37 |
38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 |
48 | ); 49 | } 50 | 51 | handleButtonUpdateClick = (e) => { 52 | var func = this.props.btnUpdateClicked; 53 | 54 | if (func) { 55 | func(e, 56 | this.props.rowId, 57 | this.refs.editorRevenue.igControl.value(), 58 | this.refs.editorExpenses.igControl.value()); 59 | } 60 | }; 61 | } 62 | 63 | export default IgEditBox; -------------------------------------------------------------------------------- /src/props/igDoughnutChart.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igDoughnutChartSeries = { 2 | type: PropTypes.oneOf([ 3 | "flat" 4 | ]), 5 | showTooltip: PropTypes.bool, 6 | tooltipTemplate: PropTypes.string, 7 | itemsSource: PropTypes.object, 8 | valueMemberPath: PropTypes.string, 9 | labelMemberPath: PropTypes.string, 10 | legendLabelMemberPath: PropTypes.string, 11 | labelsPosition: PropTypes.oneOf([ 12 | "none", 13 | "center", 14 | "insideEnd", 15 | "outsideEnd", 16 | "bestFit" 17 | ]), 18 | leaderLineVisibility: PropTypes.oneOf([ 19 | "visible", 20 | "collapsed" 21 | ]), 22 | leaderLineStyle: PropTypes.object, 23 | leaderLineType: PropTypes.oneOf([ 24 | "straight", 25 | "arc", 26 | "spline" 27 | ]), 28 | leaderLineMargin: PropTypes.number, 29 | othersCategoryThreshold: PropTypes.number, 30 | othersCategoryType: PropTypes.oneOf([ 31 | "number", 32 | "percent" 33 | ]), 34 | othersCategoryText: PropTypes.string, 35 | legend: PropTypes.object, 36 | formatLabel: PropTypes.object, 37 | formatLegendLabel: PropTypes.object, 38 | labelExtent: PropTypes.number, 39 | startAngle: PropTypes.number, 40 | selectedStyle: PropTypes.object, 41 | brushes: PropTypes.object, 42 | outlines: PropTypes.object, 43 | isSurfaceInteractionDisabled: PropTypes.bool, 44 | radiusFactor: PropTypes.number 45 | } 46 | 47 | $.ig.react.propTypes.igDoughnutChart = { 48 | id: PropTypes.string.isRequired, 49 | width: PropTypes.oneOfType([ 50 | PropTypes.string, 51 | PropTypes.number 52 | ]), 53 | height: PropTypes.oneOfType([ 54 | PropTypes.string, 55 | PropTypes.number 56 | ]), 57 | series: PropTypes.arrayOf( 58 | PropTypes.shape($.ig.react.propTypes.shapes.igDoughnutChartSeries) 59 | ), 60 | allowSliceSelection: PropTypes.bool, 61 | isSurfaceInteractionDisabled: PropTypes.bool, 62 | allowSliceExplosion: PropTypes.bool, 63 | innerExtent: PropTypes.number, 64 | selectedStyle: PropTypes.object, 65 | pixelScalingRatio: PropTypes.number, 66 | tooltipTemplate: PropTypes.string, 67 | maxRecCount: PropTypes.number, 68 | dataSource: PropTypes.object, 69 | dataSourceType: PropTypes.string, 70 | dataSourceUrl: PropTypes.string, 71 | responseTotalRecCountKey: PropTypes.string, 72 | responseDataKey: PropTypes.string 73 | } 74 | -------------------------------------------------------------------------------- /src/props/igZoomSlider.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igZoomSlider = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.oneOfType([ 4 | PropTypes.string, 5 | PropTypes.number 6 | ]), 7 | height: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | panTransitionDuration: PropTypes.number, 12 | maxZoomWidth: PropTypes.number, 13 | pixelScalingRatio: PropTypes.number, 14 | actualPixelScalingRatio: PropTypes.number, 15 | windowRect: PropTypes.object, 16 | minZoomWidth: PropTypes.number, 17 | startInset: PropTypes.number, 18 | endInset: PropTypes.number, 19 | trackStartInset: PropTypes.number, 20 | trackEndInset: PropTypes.number, 21 | barExtent: PropTypes.number, 22 | orientation: PropTypes.string, 23 | lowerThumbBrush: PropTypes.object, 24 | lowerThumbStrokeThickness: PropTypes.number, 25 | higherThumbStrokeThickness: PropTypes.number, 26 | higherThumbBrush: PropTypes.object, 27 | lowerThumbOutline: PropTypes.object, 28 | higherThumbOutline: PropTypes.object, 29 | lowerThumbRidgesBrush: PropTypes.object, 30 | higherThumbRidgesBrush: PropTypes.object, 31 | lowerThumbWidth: PropTypes.number, 32 | higherThumbWidth: PropTypes.number, 33 | lowerThumbHeight: PropTypes.number, 34 | higherThumbHeight: PropTypes.number, 35 | lowerShadeBrush: PropTypes.object, 36 | lowerShadeOutline: PropTypes.object, 37 | lowerShadeStrokeThickness: PropTypes.number, 38 | higherShadeBrush: PropTypes.object, 39 | higherShadeOutline: PropTypes.object, 40 | higherShadeStrokeThickness: PropTypes.number, 41 | barBrush: PropTypes.object, 42 | barOutline: PropTypes.object, 43 | barStrokeThickness: PropTypes.number, 44 | rangeThumbBrush: PropTypes.object, 45 | rangeThumbOutline: PropTypes.object, 46 | rangeThumbStrokeThickness: PropTypes.number, 47 | rangeThumbRidgesBrush: PropTypes.object, 48 | lowerCalloutBrush: PropTypes.object, 49 | lowerCalloutTextColor: PropTypes.object, 50 | lowerCalloutOutline: PropTypes.object, 51 | lowerCalloutStrokeThickness: PropTypes.number, 52 | higherCalloutBrush: PropTypes.object, 53 | higherCalloutTextColor: PropTypes.object, 54 | higherCalloutOutline: PropTypes.object, 55 | higherCalloutStrokeThickness: PropTypes.number, 56 | areThumbCalloutsEnabled: PropTypes.bool, 57 | thumbCalloutTextStyle: PropTypes.object 58 | } 59 | -------------------------------------------------------------------------------- /src/props/igNumericEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igNumericEditor = { 2 | id: PropTypes.string.isRequired, 3 | listItems: PropTypes.array, 4 | negativeSign: PropTypes.string, 5 | negativePattern: PropTypes.string, 6 | decimalSeparator: PropTypes.string, 7 | groupSeparator: PropTypes.string, 8 | groups: PropTypes.array, 9 | maxDecimals: PropTypes.number, 10 | minDecimals: PropTypes.number, 11 | roundDecimals: PropTypes.bool, 12 | textAlign: PropTypes.oneOf([ 13 | "left", 14 | "right", 15 | "center" 16 | ]), 17 | dataMode: PropTypes.oneOf([ 18 | "double", 19 | "float", 20 | "long", 21 | "ulong", 22 | "int", 23 | "uint", 24 | "short", 25 | "ushort", 26 | "sbyte", 27 | "byte" 28 | ]), 29 | minValue: PropTypes.number, 30 | maxValue: PropTypes.number, 31 | allowNullValue: PropTypes.bool, 32 | spinDelta: PropTypes.number, 33 | scientificFormat: PropTypes.oneOf([ 34 | "E", 35 | "e", 36 | "E+", 37 | "e+" 38 | ]), 39 | spinWrapAround: PropTypes.bool, 40 | isLimitedToListValues: PropTypes.bool, 41 | value: PropTypes.object, 42 | buttonType: PropTypes.oneOf([ 43 | "dropdown", 44 | "clear", 45 | "spin" 46 | ]), 47 | listWidth: PropTypes.number, 48 | listItemHoverDuration: PropTypes.number, 49 | dropDownAttachedToBody: PropTypes.bool, 50 | dropDownAnimationDuration: PropTypes.number, 51 | visibleItemsCount: PropTypes.number, 52 | placeHolder: PropTypes.string, 53 | selectionOnFocus: PropTypes.oneOf([ 54 | "selectAll", 55 | "atStart", 56 | "atEnd", 57 | "browserDefault" 58 | ]), 59 | revertIfNotValid: PropTypes.bool, 60 | preventSubmitOnEnter: PropTypes.bool, 61 | dropDownOrientation: PropTypes.oneOf([ 62 | "auto", 63 | "bottom", 64 | "top" 65 | ]), 66 | dropDownOnReadOnly: PropTypes.bool, 67 | suppressNotifications: PropTypes.bool, 68 | suppressKeyboard: PropTypes.bool, 69 | width: PropTypes.oneOfType([ 70 | PropTypes.string, 71 | PropTypes.number 72 | ]), 73 | height: PropTypes.oneOfType([ 74 | PropTypes.string, 75 | PropTypes.number 76 | ]), 77 | tabIndex: PropTypes.number, 78 | nullValue: PropTypes.oneOfType([ 79 | PropTypes.string, 80 | PropTypes.number 81 | ]), 82 | inputName: PropTypes.string, 83 | readOnly: PropTypes.bool, 84 | disabled: PropTypes.bool, 85 | validatorOptions: PropTypes.object 86 | } 87 | -------------------------------------------------------------------------------- /src/props/igTimePicker.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igTimePickerItemsDelta = { 2 | hours: PropTypes.number, 3 | minutes: PropTypes.number 4 | } 5 | 6 | $.ig.react.propTypes.igTimePicker = { 7 | id: PropTypes.string.isRequired, 8 | itemsDelta: PropTypes.shape( 9 | $.ig.react.propTypes.shapes.igTimePickerItemsDelta 10 | ), 11 | spinDelta: PropTypes.any, 12 | timeInputFormat: PropTypes.string, 13 | timeDisplayFormat: PropTypes.string, 14 | isLimitedToListValues: PropTypes.bool, 15 | suppressKeyboard: PropTypes.bool, 16 | dropDownOrientation: PropTypes.oneOf([ 17 | "auto", 18 | "bottom", 19 | "top" 20 | ]), 21 | visibleItemsCount: PropTypes.number, 22 | listWidth: PropTypes.number, 23 | listItemHoverDuration: PropTypes.number, 24 | dropDownAttachedToBody: PropTypes.bool, 25 | dropDownAnimationDuration: PropTypes.number, 26 | buttonType: PropTypes.oneOf([ 27 | "dropdown", 28 | "clear", 29 | "spin" 30 | ]), 31 | spinWrapAround: PropTypes.bool, 32 | value: PropTypes.instanceOf(Date), 33 | minValue: PropTypes.instanceOf(Date), 34 | maxValue: PropTypes.instanceOf(Date), 35 | dataMode: PropTypes.oneOf([ 36 | "date", 37 | "displayModeText", 38 | "editModeText" 39 | ]), 40 | limitSpinToCurrentField: PropTypes.bool, 41 | enableUTCDates: PropTypes.bool, 42 | centuryThreshold: PropTypes.number, 43 | nullValue: PropTypes.oneOfType([ 44 | PropTypes.string, 45 | PropTypes.number, 46 | PropTypes.instanceOf(Date) 47 | ]), 48 | includeKeys: PropTypes.string, 49 | excludeKeys: PropTypes.string, 50 | textAlign: PropTypes.oneOf([ 51 | "left", 52 | "right", 53 | "center" 54 | ]), 55 | placeHolder: PropTypes.string, 56 | selectionOnFocus: PropTypes.oneOf([ 57 | "selectAll", 58 | "atStart", 59 | "atEnd", 60 | "browserDefault" 61 | ]), 62 | revertIfNotValid: PropTypes.bool, 63 | preventSubmitOnEnter: PropTypes.bool, 64 | suppressNotifications: PropTypes.bool, 65 | width: PropTypes.oneOfType([ 66 | PropTypes.string, 67 | PropTypes.number 68 | ]), 69 | height: PropTypes.oneOfType([ 70 | PropTypes.string, 71 | PropTypes.number 72 | ]), 73 | tabIndex: PropTypes.number, 74 | allowNullValue: PropTypes.bool, 75 | inputName: PropTypes.string, 76 | readOnly: PropTypes.bool, 77 | disabled: PropTypes.bool, 78 | validatorOptions: PropTypes.object 79 | } 80 | -------------------------------------------------------------------------------- /src/props/igTileManager.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igTileManagerSplitterOptionsEvents = { 2 | collapsed: PropTypes.object, 3 | expanded: PropTypes.object 4 | } 5 | 6 | $.ig.react.propTypes.shapes.igTileManagerSplitterOptions = { 7 | enabled: PropTypes.bool, 8 | collapsible: PropTypes.bool, 9 | collapsed: PropTypes.bool, 10 | events: PropTypes.shape( 11 | $.ig.react.propTypes.shapes.igTileManagerSplitterOptionsEvents 12 | ) 13 | } 14 | 15 | $.ig.react.propTypes.igTileManager = { 16 | id: PropTypes.string.isRequired, 17 | width: PropTypes.oneOfType([ 18 | PropTypes.string, 19 | PropTypes.number 20 | ]), 21 | height: PropTypes.oneOfType([ 22 | PropTypes.string, 23 | PropTypes.number 24 | ]), 25 | columnWidth: PropTypes.oneOfType([ 26 | PropTypes.string, 27 | PropTypes.number, 28 | PropTypes.array 29 | ]), 30 | columnHeight: PropTypes.oneOfType([ 31 | PropTypes.string, 32 | PropTypes.number, 33 | PropTypes.array 34 | ]), 35 | cols: PropTypes.oneOfType([ 36 | PropTypes.number 37 | ]), 38 | rows: PropTypes.oneOfType([ 39 | PropTypes.number 40 | ]), 41 | marginLeft: PropTypes.number, 42 | marginTop: PropTypes.number, 43 | rearrangeItems: PropTypes.bool, 44 | items: PropTypes.oneOfType([ 45 | PropTypes.object 46 | ]), 47 | dataSource: PropTypes.object, 48 | minimizedState: PropTypes.oneOfType([ 49 | PropTypes.string 50 | ]), 51 | maximizedState: PropTypes.oneOfType([ 52 | PropTypes.string 53 | ]), 54 | maximizedTileIndex: PropTypes.oneOfType([ 55 | PropTypes.number 56 | ]), 57 | rightPanelCols: PropTypes.oneOfType([ 58 | PropTypes.number 59 | ]), 60 | rightPanelTilesWidth: PropTypes.oneOfType([ 61 | PropTypes.number 62 | ]), 63 | rightPanelTilesHeight: PropTypes.oneOfType([ 64 | PropTypes.number 65 | ]), 66 | showRightPanelScroll: PropTypes.bool, 67 | splitterOptions: PropTypes.shape( 68 | $.ig.react.propTypes.shapes.igTileManagerSplitterOptions 69 | ), 70 | preventMaximizingSelector: PropTypes.string, 71 | animationDuration: PropTypes.number, 72 | dataSourceUrl: PropTypes.string, 73 | responseDataKey: PropTypes.oneOfType([ 74 | PropTypes.string 75 | ]), 76 | responseDataType: PropTypes.oneOfType([ 77 | PropTypes.string 78 | ]), 79 | dataSourceType: PropTypes.string, 80 | requestType: PropTypes.string, 81 | responseContentType: PropTypes.string 82 | } 83 | -------------------------------------------------------------------------------- /src/props/igQRCodeBarcode.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igQRCodeBarcode = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.oneOfType([ 4 | PropTypes.string, 5 | PropTypes.number 6 | ]), 7 | height: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | pixelScalingRatio: PropTypes.number, 12 | backingBrush: PropTypes.string, 13 | backingOutline: PropTypes.string, 14 | backingStrokeThickness: PropTypes.number, 15 | barBrush: PropTypes.string, 16 | fontBrush: PropTypes.string, 17 | font: PropTypes.string, 18 | data: PropTypes.string, 19 | errorMessageText: PropTypes.string, 20 | stretch: PropTypes.oneOf([ 21 | "none", 22 | "fill", 23 | "uniform", 24 | "uniformToFill" 25 | ]), 26 | barsFillMode: PropTypes.oneOf([ 27 | "fillSpace", 28 | "ensureEqualSize" 29 | ]), 30 | widthToHeightRatio: PropTypes.number, 31 | xDimension: PropTypes.number, 32 | errorCorrectionLevel: PropTypes.oneOf([ 33 | "low", 34 | "medium", 35 | "quartil", 36 | "high" 37 | ]), 38 | sizeVersion: PropTypes.oneOf([ 39 | "undefined", 40 | "version1", 41 | "version2", 42 | "version3", 43 | "version4", 44 | "version5", 45 | "version6", 46 | "version7", 47 | "version8", 48 | "version9", 49 | "version10", 50 | "version11", 51 | "version12", 52 | "version13", 53 | "version14", 54 | "version15", 55 | "version16", 56 | "version17", 57 | "version18", 58 | "version19", 59 | "version20", 60 | "version21", 61 | "version22", 62 | "version23", 63 | "version24", 64 | "version25", 65 | "version26", 66 | "version27", 67 | "version28", 68 | "version29", 69 | "version30", 70 | "version31", 71 | "version32", 72 | "version33", 73 | "version34", 74 | "version35", 75 | "version36", 76 | "version37", 77 | "version38", 78 | "version39", 79 | "version40" 80 | ]), 81 | encodingMode: PropTypes.oneOf([ 82 | "undefined", 83 | "numeric", 84 | "alphanumeric", 85 | "byte", 86 | "kanji" 87 | ]), 88 | eciNumber: PropTypes.number, 89 | eciHeaderDisplayMode: PropTypes.oneOf([ 90 | "hide", 91 | "show" 92 | ]), 93 | fnc1Mode: PropTypes.oneOf([ 94 | "none", 95 | "gs1", 96 | "industry" 97 | ]), 98 | applicationIndicator: PropTypes.string 99 | } 100 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/components/EditorsBox.js: -------------------------------------------------------------------------------- 1 | import IgCombo from 'igniteui-react-wrappers/ui/igCombo.js'; 2 | import IgNumericEditor from 'igniteui-react-wrappers/ui/igNumericEditor.js'; 3 | import React from 'react'; 4 | 5 | class EditorsBox extends React.Component { 6 | render() { 7 | return ( 8 |
9 |
10 | 11 | 20 |
21 |
22 | 23 | 31 |
32 |
33 | 34 | 41 |
42 |
43 | 44 | 51 |
52 |
53 |
54 | ); 55 | } 56 | 57 | monthChanged = (e, args) => { 58 | this.props.changeMonth(args.items[0].data.value); 59 | }; 60 | 61 | revenueChanged = (e, args) => { 62 | this.props.changeRevenue(args.newValue); 63 | }; 64 | 65 | expensesChanged = (e, args) => { 66 | this.props.changeExpenses(args.newValue); 67 | }; 68 | 69 | profitChanged = (e, args) => { 70 | this.props.changeProfit(args.newValue); 71 | }; 72 | } 73 | 74 | export default EditorsBox; -------------------------------------------------------------------------------- /src/props/igCurrencyEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igCurrencyEditor = { 2 | id: PropTypes.string.isRequired, 3 | positivePattern: PropTypes.string, 4 | currencySymbol: PropTypes.string, 5 | listItems: PropTypes.array, 6 | negativeSign: PropTypes.string, 7 | negativePattern: PropTypes.string, 8 | decimalSeparator: PropTypes.string, 9 | groupSeparator: PropTypes.string, 10 | groups: PropTypes.array, 11 | maxDecimals: PropTypes.number, 12 | minDecimals: PropTypes.number, 13 | roundDecimals: PropTypes.bool, 14 | textAlign: PropTypes.oneOf([ 15 | "left", 16 | "right", 17 | "center" 18 | ]), 19 | dataMode: PropTypes.oneOf([ 20 | "double", 21 | "float", 22 | "long", 23 | "ulong", 24 | "int", 25 | "uint", 26 | "short", 27 | "ushort", 28 | "sbyte", 29 | "byte" 30 | ]), 31 | minValue: PropTypes.number, 32 | maxValue: PropTypes.number, 33 | allowNullValue: PropTypes.bool, 34 | spinDelta: PropTypes.number, 35 | scientificFormat: PropTypes.oneOf([ 36 | "E", 37 | "e", 38 | "E+", 39 | "e+" 40 | ]), 41 | spinWrapAround: PropTypes.bool, 42 | isLimitedToListValues: PropTypes.bool, 43 | value: PropTypes.object, 44 | buttonType: PropTypes.oneOf([ 45 | "dropdown", 46 | "clear", 47 | "spin" 48 | ]), 49 | listWidth: PropTypes.number, 50 | listItemHoverDuration: PropTypes.number, 51 | dropDownAttachedToBody: PropTypes.bool, 52 | dropDownAnimationDuration: PropTypes.number, 53 | visibleItemsCount: PropTypes.number, 54 | placeHolder: PropTypes.string, 55 | selectionOnFocus: PropTypes.oneOf([ 56 | "selectAll", 57 | "atStart", 58 | "atEnd", 59 | "browserDefault" 60 | ]), 61 | revertIfNotValid: PropTypes.bool, 62 | preventSubmitOnEnter: PropTypes.bool, 63 | dropDownOrientation: PropTypes.oneOf([ 64 | "auto", 65 | "bottom", 66 | "top" 67 | ]), 68 | dropDownOnReadOnly: PropTypes.bool, 69 | suppressNotifications: PropTypes.bool, 70 | suppressKeyboard: PropTypes.bool, 71 | width: PropTypes.oneOfType([ 72 | PropTypes.string, 73 | PropTypes.number 74 | ]), 75 | height: PropTypes.oneOfType([ 76 | PropTypes.string, 77 | PropTypes.number 78 | ]), 79 | tabIndex: PropTypes.number, 80 | nullValue: PropTypes.oneOfType([ 81 | PropTypes.string, 82 | PropTypes.number 83 | ]), 84 | inputName: PropTypes.string, 85 | readOnly: PropTypes.bool, 86 | disabled: PropTypes.bool, 87 | validatorOptions: PropTypes.object 88 | } 89 | -------------------------------------------------------------------------------- /src/props/igPercentEditor.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igPercentEditor = { 2 | id: PropTypes.string.isRequired, 3 | positivePattern: PropTypes.string, 4 | percentSymbol: PropTypes.string, 5 | displayFactor: PropTypes.number, 6 | dataMode: PropTypes.oneOf([ 7 | "double", 8 | "float", 9 | "long", 10 | "ulong", 11 | "int", 12 | "uint", 13 | "short", 14 | "ushort", 15 | "sbyte", 16 | "byte" 17 | ]), 18 | spinDelta: PropTypes.number, 19 | listItems: PropTypes.array, 20 | negativeSign: PropTypes.string, 21 | negativePattern: PropTypes.string, 22 | decimalSeparator: PropTypes.string, 23 | groupSeparator: PropTypes.string, 24 | groups: PropTypes.array, 25 | maxDecimals: PropTypes.number, 26 | minDecimals: PropTypes.number, 27 | roundDecimals: PropTypes.bool, 28 | textAlign: PropTypes.oneOf([ 29 | "left", 30 | "right", 31 | "center" 32 | ]), 33 | minValue: PropTypes.number, 34 | maxValue: PropTypes.number, 35 | allowNullValue: PropTypes.bool, 36 | scientificFormat: PropTypes.oneOf([ 37 | "E", 38 | "e", 39 | "E+", 40 | "e+" 41 | ]), 42 | spinWrapAround: PropTypes.bool, 43 | isLimitedToListValues: PropTypes.bool, 44 | value: PropTypes.object, 45 | buttonType: PropTypes.oneOf([ 46 | "dropdown", 47 | "clear", 48 | "spin" 49 | ]), 50 | listWidth: PropTypes.number, 51 | listItemHoverDuration: PropTypes.number, 52 | dropDownAttachedToBody: PropTypes.bool, 53 | dropDownAnimationDuration: PropTypes.number, 54 | visibleItemsCount: PropTypes.number, 55 | placeHolder: PropTypes.string, 56 | selectionOnFocus: PropTypes.oneOf([ 57 | "selectAll", 58 | "atStart", 59 | "atEnd", 60 | "browserDefault" 61 | ]), 62 | revertIfNotValid: PropTypes.bool, 63 | preventSubmitOnEnter: PropTypes.bool, 64 | dropDownOrientation: PropTypes.oneOf([ 65 | "auto", 66 | "bottom", 67 | "top" 68 | ]), 69 | dropDownOnReadOnly: PropTypes.bool, 70 | suppressNotifications: PropTypes.bool, 71 | suppressKeyboard: PropTypes.bool, 72 | width: PropTypes.oneOfType([ 73 | PropTypes.string, 74 | PropTypes.number 75 | ]), 76 | height: PropTypes.oneOfType([ 77 | PropTypes.string, 78 | PropTypes.number 79 | ]), 80 | tabIndex: PropTypes.number, 81 | nullValue: PropTypes.oneOfType([ 82 | PropTypes.string, 83 | PropTypes.number 84 | ]), 85 | inputName: PropTypes.string, 86 | readOnly: PropTypes.bool, 87 | disabled: PropTypes.bool, 88 | validatorOptions: PropTypes.object 89 | } 90 | -------------------------------------------------------------------------------- /tests/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | basePath: "../", 4 | frameworks: ["jasmine"], 5 | files: [ 6 | 7 | "http://code.jquery.com/jquery-1.12.4.js", 8 | "http://code.jquery.com/ui/1.11.4/jquery-ui.min.js", 9 | "http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js", 10 | "http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js", 11 | "http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.dv.js", 12 | "https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.js", 13 | 14 | // css files 15 | "http://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css", 16 | "http://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css", 17 | // System.js for module loading 18 | "node_modules/systemjs/dist/system.src.js", 19 | 20 | // Paths loaded via module imports: 21 | // React 22 | "node_modules/react/umd/react.production.min.js", 23 | "node_modules/react-dom/umd/react-dom.production.min.js", 24 | "node_modules/create-react-class/create-react-class.min.js", 25 | "node_modules/prop-types/prop-types.min.js", 26 | // paths loaded via module imports 27 | // bundled react wrappers 28 | //"dist/npm/igniteui-react.js", 29 | "src/util/**/*.js", 30 | "src/props/**/*.js", 31 | "src/components/**/*.js", 32 | 33 | // spec files need to be loaded in the shim file IN CONTEXT of the main module, don't include: 34 | { pattern: 'tests/unit/**/*.js', included: false, watched: true }, 35 | // test files 36 | "tests/util.js", 37 | "tests/karma-test-shim.js" 38 | 39 | ], 40 | plugins: [ 41 | require('karma-jasmine'), 42 | require('karma-coverage'), 43 | require('karma-chrome-launcher'), 44 | require('karma-jasmine-html-reporter') 45 | ], 46 | crossOriginAttribute: false, 47 | client: { 48 | clearContext: false // leave Jasmine Spec Runner output visible in browser 49 | }, 50 | preprocessors: { 51 | 'src/util/**/*.js': ['coverage'] 52 | }, 53 | coverageReporter: { 54 | dir: require('path').join(__dirname, '../coverage/'), 55 | subdir: '.', 56 | reporters: [ 57 | { type: 'lcovonly' } 58 | ] 59 | }, 60 | reporters: ['progress', 'coverage'], 61 | port: 9876, 62 | colors: true, 63 | logLevel: config.LOG_INFO, 64 | autoWatch: true, 65 | browsers: ['ChromeHeadless'], 66 | singleRun: false, 67 | restartOnFileChange: true 68 | }); 69 | }; -------------------------------------------------------------------------------- /samples/ig-financial-state/src/sample.css: -------------------------------------------------------------------------------- 1 | .push-down { 2 | margin-top:4em; 3 | } 4 | 5 | .push-down-md { 6 | margin-top:2em; 7 | } 8 | 9 | .push-down-xs { 10 | margin-top:1em; 11 | } 12 | 13 | footer { 14 | border-top:1px solid #ccc; 15 | background-color:#ddd; 16 | padding:50px; 17 | margin-top:25px; 18 | color:#999; 19 | } 20 | 21 | .description { 22 | border-bottom: 1px solid #eee; 23 | margin-bottom: 15px; 24 | margin-top: 15px; 25 | } 26 | 27 | .try-it-out hr { 28 | margin: 0px; 29 | margin-top: 4px; 30 | } 31 | 32 | 33 | .try-it-out ul li{ 34 | margin-top: 8px; 35 | margin-bottom: 8px; 36 | } 37 | 38 | #app { 39 | min-width: 800px; 40 | } 41 | 42 | .editors { 43 | height: 90px; 44 | } 45 | 46 | .editor-container { 47 | float: left; 48 | margin: 0 35px 20px 5px; 49 | } 50 | 51 | .editor-container .labels { 52 | display: block; 53 | font-size: 13px; 54 | padding-bottom: 5px; 55 | } 56 | 57 | .ui-state-hover, 58 | .ui-widget-content .ui-state-hover { 59 | color: #070707; 60 | } 61 | 62 | #totalEditor { 63 | border: none; 64 | font-size: x-large; 65 | } 66 | 67 | .clear { 68 | clear: both; 69 | } 70 | 71 | .gauges { 72 | padding-left: 0; 73 | height: 100px; 74 | } 75 | 76 | .gauge-container { 77 | float: left; 78 | margin: 0 25px 0 5px; 79 | } 80 | 81 | .total-container { 82 | float: left; 83 | margin: 0 20px 0 5px; 84 | } 85 | 86 | .sample-line-chart-holder { 87 | position: relative; 88 | width: 100%; 89 | } 90 | #legendLineChart { 91 | position: absolute; 92 | top: 120px; left: 45px; 93 | border: none; 94 | background-color: 95 | transparent; 96 | font-weight: bold; 97 | } 98 | 99 | /* Polar chart container and legend */ 100 | .sample-polar-chart-holder { 101 | position: relative; 102 | /*width: 33.3%;*/ 103 | float: left; 104 | margin-top: 10px; 105 | } 106 | .polar-chart-legend { 107 | position: absolute; 108 | top: 250px; 109 | left: 15px; 110 | border: none; 111 | background-color: transparent; 112 | font-weight: bold; 113 | } 114 | 115 | /* Line chart container and legend */ 116 | .sample-bar-chart-holder { 117 | position: relative; 118 | width: 100%; 119 | float: left; 120 | margin-top: 10px; 121 | } 122 | 123 | #legendBarColumnChart { 124 | position: absolute; 125 | top: 135px; 126 | left: 45px; 127 | border: none; 128 | background-color: transparent; 129 | font-weight: bold; 130 | } 131 | 132 | .ui-widget-content { 133 | border: none; 134 | } 135 | 136 | #totalEditorEditingInput { 137 | box-sizing: content-box; 138 | } -------------------------------------------------------------------------------- /samples/ig-editors/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import MainComponent from './components/MainComponent'; 3 | 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | 6 | class App extends React.Component { 7 | render() { 8 | return ( 9 |
10 |
11 |
12 |
13 | 19 | Ignite UI ReactJS Component 20 |
21 |
22 | 26 |
27 |
28 |
29 | 30 |
31 |

igEditors

32 | 33 |
34 |
35 | TRY IT OUT: 36 |
37 |
    38 |
  • Select a user detail you would like to edit
  • 39 |
  • While editing, you will notice most editors have specific validation rules to cope with
  • 40 |
  • The user details on the left will update only when a valid input comes from the igEditors
  • 41 |
42 |
43 |
44 |

This sample demonstrates how ReactJS can be used to create igEditors.

45 |

View Source

46 |
47 |
48 | 49 | 50 |
51 | 52 | 60 | 61 |
62 | ); 63 | } 64 | } 65 | 66 | export default App; -------------------------------------------------------------------------------- /samples/ig-grid/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import MainComponent from './components/MainComponent'; 3 | 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | 6 | class App extends React.Component { 7 | render() { 8 | return ( 9 |
10 |
11 |
12 |
13 | 19 | Ignite UI ReactJS Component 20 |
21 |
22 | 26 |
27 |
28 |
29 | 30 |
31 |

igGrid

32 | 33 |
34 |
35 | TRY IT OUT: 36 |
37 |
    38 |
  • Select a row that you would like to edit
  • 39 |
  • Change a product's name in the group of textboxes below, click update and see how the names change in the grid
  • 40 |
  • Delete a product either through the grid's UI or with the button bellow the current selected product in the window next to the grid
  • 41 |
42 |
43 |
44 |

This sample demonstrates how ReactJS can be used to create igGrid and add two-way data binding.

45 |

View Source

46 |
47 |
48 | 49 | 50 |
51 | 52 | 60 | 61 |
62 | ); 63 | } 64 | } 65 | 66 | export default App; 67 | -------------------------------------------------------------------------------- /samples/ig-dashboard/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import MainComponent from './components/MainComponent.js'; 3 | 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | 6 | class App extends React.Component { 7 | render() { 8 | return ( 9 |
10 |
11 |
12 |
13 | 19 | Ignite UI ReactJS Component 20 |
21 |
22 | 26 |
27 |
28 |
29 | 30 |
31 |

Dashboard using igGrid and igDataChart

33 | 34 |
35 |
36 | TRY IT OUT: 37 |
38 |
    39 |
  • Select a row that you would like to edit
  • 40 |
  • Change the Revenue or the Expenses of the selected person by using the editors.
  • 41 |
  • Observe how the grid and the chart values are changing.
  • 42 |
43 |
44 |
45 |

This sample demonstrates how to reflect every change in the igGrid data source on the igDataChart by using ReactJS.

46 |

View Source

48 |
49 |
50 | 51 | 52 |
53 | 54 | 62 | 63 |
64 | ); 65 | } 66 | } 67 | 68 | export default App; 69 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import MainComponent from './components/MainComponent.js'; 3 | 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | 6 | class App extends React.Component { 7 | render() { 8 | return ( 9 |
10 |
11 |
12 |
13 | 19 | Ignite UI ReactJS Component 20 |
21 |
22 | 26 |
27 |
28 |
29 | 30 |
31 |

igChart

32 | 33 |
34 |
35 | TRY IT OUT: 36 |
37 |
    38 |
  • Select a month and edit its revenue and expenses
  • 39 |
  • Change month's revenue or expenses, using the editors or using the linear gauge
  • 40 |
  • All the related components' data is changed and new overall year profit is calculated
  • 41 |
42 |
43 |
44 |

This sample demonstrates how ReactJS can be used to create igChart, igCombo, igLinearGauge together with several different types of igEditors and how a communication between them can be implemented.

45 |

View Source

46 |
47 |
48 | 49 | 50 |
51 | 52 | 60 | 61 |
62 | ); 63 | } 64 | } 65 | 66 | export default App; 67 | 68 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/components/GaugesBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import createReactClass from 'create-react-class'; 3 | import IgLinearGauge from 'igniteui-react-wrappers/ui/igLinearGauge.js' 4 | import '../sample.css'; 5 | 6 | 7 | 8 | var GaugesBox = createReactClass({ 9 | gaugeInterval: 10, 10 | revenueColor: "#a4ba29", 11 | expensesColor: "#d3404b", 12 | profitColor: "#216EDD", 13 | needleColor: "white", 14 | needleOutlineColor: "#2582a9", 15 | render: function() { 16 | return ( 17 |
18 |
19 | 40 |
41 |
42 | 62 |
63 |
64 | 84 |
85 |
86 |
87 | ) 88 | }, 89 | revenueChanged: function (e, args) { 90 | this.props.changeRevenue(args.newValue); 91 | }, 92 | expensesChanged: function (e, args) { 93 | this.props.changeExpenses(args.newValue); 94 | }, 95 | profitChanged: function (e, args) { 96 | this.props.changeProfit(args.newValue); 97 | } 98 | }); 99 | 100 | export default GaugesBox; -------------------------------------------------------------------------------- /src/props/igBulletGraph.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igBulletGraphRange = { 2 | name: PropTypes.string, 3 | brush: PropTypes.string, 4 | outline: PropTypes.string, 5 | startValue: PropTypes.number, 6 | endValue: PropTypes.number, 7 | innerStartExtent: PropTypes.number, 8 | innerEndExtent: PropTypes.number, 9 | outerStartExtent: PropTypes.number, 10 | outerEndExtent: PropTypes.number, 11 | strokeThickness: PropTypes.number 12 | } 13 | 14 | $.ig.react.propTypes.igBulletGraph = { 15 | id: PropTypes.string.isRequired, 16 | width: PropTypes.oneOfType([ 17 | PropTypes.string, 18 | PropTypes.number 19 | ]), 20 | height: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number 23 | ]), 24 | ranges: PropTypes.arrayOf( 25 | PropTypes.shape($.ig.react.propTypes.shapes.igBulletGraphRange) 26 | ), 27 | rangeToolTipTemplate: PropTypes.string, 28 | valueToolTipTemplate: PropTypes.string, 29 | targetValueToolTipTemplate: PropTypes.string, 30 | orientation: PropTypes.oneOf([ 31 | "horizontal", 32 | "vertical" 33 | ]), 34 | scaleBackgroundBrush: PropTypes.string, 35 | scaleBackgroundOutline: PropTypes.string, 36 | scaleBackgroundThickness: PropTypes.number, 37 | rangeBrushes: PropTypes.object, 38 | rangeOutlines: PropTypes.object, 39 | minimumValue: PropTypes.number, 40 | maximumValue: PropTypes.number, 41 | targetValue: PropTypes.number, 42 | targetValueName: PropTypes.string, 43 | value: PropTypes.number, 44 | valueName: PropTypes.string, 45 | rangeInnerExtent: PropTypes.number, 46 | rangeOuterExtent: PropTypes.number, 47 | valueInnerExtent: PropTypes.number, 48 | valueOuterExtent: PropTypes.number, 49 | interval: PropTypes.number, 50 | ticksPostInitial: PropTypes.number, 51 | ticksPreTerminal: PropTypes.number, 52 | labelInterval: PropTypes.number, 53 | labelExtent: PropTypes.number, 54 | labelsPostInitial: PropTypes.number, 55 | labelsPreTerminal: PropTypes.number, 56 | minorTickCount: PropTypes.number, 57 | tickStartExtent: PropTypes.number, 58 | tickEndExtent: PropTypes.number, 59 | tickStrokeThickness: PropTypes.number, 60 | tickBrush: PropTypes.string, 61 | fontBrush: PropTypes.string, 62 | valueBrush: PropTypes.string, 63 | valueOutline: PropTypes.string, 64 | valueStrokeThickness: PropTypes.number, 65 | minorTickStartExtent: PropTypes.number, 66 | minorTickEndExtent: PropTypes.number, 67 | minorTickStrokeThickness: PropTypes.number, 68 | minorTickBrush: PropTypes.string, 69 | isScaleInverted: PropTypes.bool, 70 | backingBrush: PropTypes.string, 71 | backingOutline: PropTypes.string, 72 | backingStrokeThickness: PropTypes.number, 73 | backingInnerExtent: PropTypes.number, 74 | backingOuterExtent: PropTypes.number, 75 | scaleStartExtent: PropTypes.number, 76 | scaleEndExtent: PropTypes.number, 77 | targetValueBrush: PropTypes.string, 78 | targetValueBreadth: PropTypes.number, 79 | targetValueInnerExtent: PropTypes.number, 80 | targetValueOuterExtent: PropTypes.number, 81 | targetValueOutline: PropTypes.string, 82 | targetValueStrokeThickness: PropTypes.number, 83 | transitionDuration: PropTypes.number, 84 | showToolTipTimeout: PropTypes.number, 85 | showToolTip: PropTypes.bool, 86 | font: PropTypes.string, 87 | pixelScalingRatio: PropTypes.number 88 | } 89 | -------------------------------------------------------------------------------- /src/props/igSparkline.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.igSparkline = { 2 | id: PropTypes.string.isRequired, 3 | width: PropTypes.oneOfType([ 4 | PropTypes.string, 5 | PropTypes.number 6 | ]), 7 | height: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | brush: PropTypes.string, 12 | negativeBrush: PropTypes.string, 13 | markerBrush: PropTypes.string, 14 | negativeMarkerBrush: PropTypes.string, 15 | firstMarkerBrush: PropTypes.string, 16 | lastMarkerBrush: PropTypes.string, 17 | highMarkerBrush: PropTypes.string, 18 | lowMarkerBrush: PropTypes.string, 19 | trendLineBrush: PropTypes.string, 20 | horizontalAxisBrush: PropTypes.string, 21 | verticalAxisBrush: PropTypes.string, 22 | normalRangeFill: PropTypes.string, 23 | horizontalAxisVisibility: PropTypes.oneOf([ 24 | "visible", 25 | "collapsed" 26 | ]), 27 | verticalAxisVisibility: PropTypes.oneOf([ 28 | "visible", 29 | "collapsed" 30 | ]), 31 | markerVisibility: PropTypes.oneOf([ 32 | "visible", 33 | "collapsed" 34 | ]), 35 | negativeMarkerVisibility: PropTypes.oneOf([ 36 | "visible", 37 | "collapsed" 38 | ]), 39 | firstMarkerVisibility: PropTypes.oneOf([ 40 | "visible", 41 | "collapsed" 42 | ]), 43 | lastMarkerVisibility: PropTypes.oneOf([ 44 | "visible", 45 | "collapsed" 46 | ]), 47 | lowMarkerVisibility: PropTypes.oneOf([ 48 | "visible", 49 | "collapsed" 50 | ]), 51 | highMarkerVisibility: PropTypes.oneOf([ 52 | "visible", 53 | "collapsed" 54 | ]), 55 | normalRangeVisibility: PropTypes.oneOf([ 56 | "visible", 57 | "collapsed" 58 | ]), 59 | displayNormalRangeInFront: PropTypes.bool, 60 | markerSize: PropTypes.number, 61 | firstMarkerSize: PropTypes.number, 62 | lastMarkerSize: PropTypes.number, 63 | highMarkerSize: PropTypes.number, 64 | lowMarkerSize: PropTypes.number, 65 | negativeMarkerSize: PropTypes.number, 66 | lineThickness: PropTypes.number, 67 | valueMemberPath: PropTypes.string, 68 | labelMemberPath: PropTypes.string, 69 | trendLineType: PropTypes.oneOf([ 70 | "none", 71 | "linearFit", 72 | "quadraticFit", 73 | "cubicFit", 74 | "quarticFit", 75 | "quinticFit", 76 | "logarithmicFit", 77 | "exponentialFit", 78 | "powerLawFit", 79 | "simpleAverage", 80 | "exponentialAverage", 81 | "modifiedAverage", 82 | "cumulativeAverage", 83 | "weightedAverage" 84 | ]), 85 | trendLinePeriod: PropTypes.number, 86 | trendLineThickness: PropTypes.number, 87 | normalRangeMinimum: PropTypes.number, 88 | normalRangeMaximum: PropTypes.number, 89 | displayType: PropTypes.oneOf([ 90 | "line", 91 | "area", 92 | "column", 93 | "winLoss" 94 | ]), 95 | unknownValuePlotting: PropTypes.oneOf([ 96 | "linearInterpolate", 97 | "dontPlot" 98 | ]), 99 | verticalAxisLabel: PropTypes.object, 100 | horizontalAxisLabel: PropTypes.object, 101 | formatLabel: PropTypes.object, 102 | pixelScalingRatio: PropTypes.number, 103 | tooltipTemplate: PropTypes.string, 104 | maxRecCount: PropTypes.number, 105 | dataSource: PropTypes.object, 106 | dataSourceType: PropTypes.string, 107 | dataSourceUrl: PropTypes.string, 108 | responseTotalRecCountKey: PropTypes.string, 109 | responseDataKey: PropTypes.string 110 | } 111 | -------------------------------------------------------------------------------- /src/props/igLinearGauge.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igLinearGaugeRange = { 2 | name: PropTypes.string, 3 | brush: PropTypes.string, 4 | outline: PropTypes.string, 5 | startValue: PropTypes.number, 6 | endValue: PropTypes.number, 7 | innerStartExtent: PropTypes.number, 8 | innerEndExtent: PropTypes.number, 9 | outerStartExtent: PropTypes.number, 10 | outerEndExtent: PropTypes.number, 11 | strokeThickness: PropTypes.number 12 | } 13 | 14 | $.ig.react.propTypes.igLinearGauge = { 15 | id: PropTypes.string.isRequired, 16 | width: PropTypes.oneOfType([ 17 | PropTypes.string, 18 | PropTypes.number 19 | ]), 20 | height: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number 23 | ]), 24 | ranges: PropTypes.arrayOf( 25 | PropTypes.shape($.ig.react.propTypes.shapes.igLinearGaugeRange) 26 | ), 27 | rangeToolTipTemplate: PropTypes.string, 28 | needleToolTipTemplate: PropTypes.string, 29 | orientation: PropTypes.oneOf([ 30 | "horizontal", 31 | "vertical" 32 | ]), 33 | rangeBrushes: PropTypes.object, 34 | rangeOutlines: PropTypes.object, 35 | minimumValue: PropTypes.number, 36 | maximumValue: PropTypes.number, 37 | value: PropTypes.number, 38 | needleShape: PropTypes.oneOf([ 39 | "custom", 40 | "rectangle", 41 | "triangle", 42 | "needle", 43 | "trapezoid" 44 | ]), 45 | needleName: PropTypes.string, 46 | rangeInnerExtent: PropTypes.number, 47 | scaleInnerExtent: PropTypes.number, 48 | rangeOuterExtent: PropTypes.number, 49 | scaleOuterExtent: PropTypes.number, 50 | needleInnerExtent: PropTypes.number, 51 | needleOuterExtent: PropTypes.number, 52 | needleInnerBaseWidth: PropTypes.number, 53 | needleOuterBaseWidth: PropTypes.number, 54 | needleInnerPointWidth: PropTypes.number, 55 | needleOuterPointWidth: PropTypes.number, 56 | needleInnerPointExtent: PropTypes.number, 57 | needleOuterPointExtent: PropTypes.number, 58 | interval: PropTypes.number, 59 | ticksPostInitial: PropTypes.number, 60 | ticksPreTerminal: PropTypes.number, 61 | labelInterval: PropTypes.number, 62 | labelExtent: PropTypes.number, 63 | labelsPostInitial: PropTypes.number, 64 | labelsPreTerminal: PropTypes.number, 65 | minorTickCount: PropTypes.number, 66 | tickStartExtent: PropTypes.number, 67 | tickEndExtent: PropTypes.number, 68 | tickStrokeThickness: PropTypes.number, 69 | tickBrush: PropTypes.string, 70 | fontBrush: PropTypes.string, 71 | needleBreadth: PropTypes.number, 72 | needleBrush: PropTypes.string, 73 | needleOutline: PropTypes.string, 74 | needleStrokeThickness: PropTypes.number, 75 | minorTickStartExtent: PropTypes.number, 76 | minorTickEndExtent: PropTypes.number, 77 | minorTickStrokeThickness: PropTypes.number, 78 | minorTickBrush: PropTypes.string, 79 | isScaleInverted: PropTypes.bool, 80 | backingBrush: PropTypes.string, 81 | backingOutline: PropTypes.string, 82 | backingStrokeThickness: PropTypes.number, 83 | backingInnerExtent: PropTypes.number, 84 | backingOuterExtent: PropTypes.number, 85 | scaleStartExtent: PropTypes.number, 86 | scaleEndExtent: PropTypes.number, 87 | scaleBrush: PropTypes.string, 88 | scaleOutline: PropTypes.string, 89 | scaleStrokeThickness: PropTypes.number, 90 | isNeedleDraggingEnabled: PropTypes.bool, 91 | transitionDuration: PropTypes.number, 92 | showToolTipTimeout: PropTypes.number, 93 | showToolTip: PropTypes.bool, 94 | font: PropTypes.string, 95 | pixelScalingRatio: PropTypes.number 96 | } 97 | -------------------------------------------------------------------------------- /src/util/ignite-react.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === "function" && define.amd) { 3 | 4 | // AMD. Register as an anonymous module. 5 | define( [ 6 | "react", 7 | "react-dom", 8 | "jquery", 9 | "jquery-ui" 10 | ], factory ); 11 | } else { 12 | 13 | // Browser globals 14 | factory(React, ReactDOM, jQuery); 15 | } 16 | } 17 | (function (React, ReactDOM, $) { 18 | $.ig = $.ig || {}; 19 | $.ig.react = $.ig.react || {}; 20 | $.ig.react.core = $.ig.react.core || {}; 21 | $.ig.react.propTypes = $.ig.react.propTypes || {}; 22 | $.ig.react.propTypes.shapes = $.ig.react.propTypes.shapes || {}; 23 | 24 | $.ig.react.configWidgets = $.ig.react.configWidgets || {}; 25 | 26 | $.ig.react.core.getElement = function (component) { 27 | return ReactDOM.findDOMNode(component); 28 | }; 29 | $.ig.react.core.getWidgetInstance = function (component, name) { 30 | name = name || component.widgetName; 31 | return $($.ig.react.core.getElement(component)).data(name); 32 | }; 33 | $.ig.react.core.mount = function (component, name) { 34 | var e = $.ig.react.core.getElement(component), $e = $(e), 35 | funcInitialized = component.props.initialized; 36 | // initialize widget 37 | $e[name](component.props); 38 | component.igControl = $e.data(name); 39 | component.widgetName = name; 40 | // if property initialized is set then call it 41 | if (funcInitialized) { 42 | $.ig.util.invokeCallback(funcInitialized, 43 | [component, e, component.igControl] 44 | ); 45 | } 46 | }; 47 | $.ig.react.core.update = function (component, nextProps) { 48 | var c = component, 49 | element = $.ig.react.core.getElement(component), 50 | op, np, t, option, 51 | changedOpts, 52 | oldProps = c.props, 53 | funcUpdate = c.props.shouldComponentUpdate; 54 | if (funcUpdate) { 55 | return $.ig.util.invokeCallback(funcUpdate, [ 56 | component, 57 | element, 58 | component.widgetName, 59 | nextProps]); 60 | } 61 | // get changed primitive properties 62 | for (np in nextProps) { 63 | if (nextProps.hasOwnProperty(np)) { 64 | t = $.type(nextProps[np]); 65 | if (t !== "object" && t !== "array" && 66 | nextProps[np] !== oldProps[np]) { 67 | changedOpts = changedOpts || {}; 68 | changedOpts[np] = nextProps[np]; 69 | } 70 | } 71 | } 72 | if (changedOpts) { 73 | $(element)[component.widgetName]("option", changedOpts); 74 | } 75 | 76 | if (nextProps.children && nextProps.children.length > 0) { 77 | return true; 78 | } 79 | return false; 80 | }; 81 | $.ig.react.core.unmount = function (component) { 82 | $($.ig.react.core.getElement(component))[component.widgetName]("destroy"); 83 | }; 84 | 85 | //////////// 86 | 87 | $.ig.react.core.buildComponent = function (name) { 88 | var config = ($.ig.react.core.configWidgets || {})[name] || {}; 89 | return $.extend({ 90 | render: function () { 91 | return React.createElement("div", { id: this.props.id }, this.props.children); 92 | }, 93 | componentDidMount: function () { 94 | $.ig.react.core.mount(this, name); 95 | }, 96 | propTypes: $.ig.react.propTypes[name], 97 | shouldComponentUpdate: function (nextProps) { 98 | return $.ig.react.core.update(this, nextProps); 99 | }, 100 | componentWillUnmount: function () { 101 | $.ig.react.core.unmount(this); 102 | } 103 | }, config) 104 | }; 105 | })); -------------------------------------------------------------------------------- /src/props/igDataChart.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igDataChartLegend = { 2 | element: PropTypes.string, 3 | type: PropTypes.oneOf([ 4 | "item", 5 | "legend" 6 | ]), 7 | width: PropTypes.oneOfType([ 8 | PropTypes.string, 9 | PropTypes.number 10 | ]), 11 | height: PropTypes.oneOfType([ 12 | PropTypes.string, 13 | PropTypes.number 14 | ]) 15 | } 16 | 17 | $.ig.react.propTypes.shapes.igDataChartAxes = { 18 | type: PropTypes.oneOf([ 19 | "numericX", 20 | "numericY", 21 | "categoryX", 22 | "categoryDateTimeX", 23 | "categoryY", 24 | "categoryAngle", 25 | "numericAngle", 26 | "numericRadius" 27 | ]), 28 | name: PropTypes.string, 29 | dataSource: PropTypes.object, 30 | dataSourceUrl: PropTypes.string, 31 | dataSourceType: PropTypes.string, 32 | responseDataKey: PropTypes.oneOfType([ 33 | PropTypes.string 34 | ]), 35 | responseDataType: PropTypes.oneOfType([ 36 | PropTypes.string 37 | ]), 38 | remove: PropTypes.bool, 39 | labelLocation: PropTypes.oneOf([ 40 | "outsideTop", 41 | "outsideBottom", 42 | "outsideLeft", 43 | "outsideRight", 44 | "insideTop", 45 | "insideBottom", 46 | "insideLeft", 47 | "insideRight" 48 | ]), 49 | labelVisibility: PropTypes.oneOf([ 50 | "visible" 51 | ]), 52 | labelExtent: PropTypes.object 53 | } 54 | 55 | $.ig.react.propTypes.shapes.igDataChartSeriesLegend = { 56 | element: PropTypes.string, 57 | type: PropTypes.oneOf([ 58 | "item", 59 | "legend" 60 | ]), 61 | width: PropTypes.oneOfType([ 62 | PropTypes.string, 63 | PropTypes.number 64 | ]), 65 | height: PropTypes.oneOfType([ 66 | PropTypes.string, 67 | PropTypes.number 68 | ]) 69 | } 70 | 71 | $.ig.react.propTypes.shapes.igDataChartSeries = { 72 | type: PropTypes.oneOf([ 73 | "area", 74 | "bar", 75 | "column", 76 | "line", 77 | "rangeArea", 78 | "rangeColumn", 79 | "splineArea", 80 | "spline", 81 | "stepArea", 82 | "stepLine", 83 | "waterfall", 84 | "financial", 85 | "typicalPriceIndicator", 86 | "polarArea", 87 | "polarLine", 88 | "polarScatter", 89 | "radialColumn", 90 | "radialLine", 91 | "radialPie", 92 | "scatter", 93 | "absoluteVolumeOscillatorIndicator", 94 | "averageTrueRangeIndicator", 95 | "accumulationDistributionIndicator", 96 | "averageDirectionalIndexIndicator" 97 | ]), 98 | name: PropTypes.string, 99 | dataSource: PropTypes.object, 100 | dataSourceUrl: PropTypes.string, 101 | dataSourceType: PropTypes.string, 102 | responseDataKey: PropTypes.oneOfType([ 103 | PropTypes.string 104 | ]), 105 | remove: PropTypes.bool, 106 | showTooltip: PropTypes.bool, 107 | legend: PropTypes.shape( 108 | $.ig.react.propTypes.shapes.igDataChartSeriesLegend 109 | ) 110 | } 111 | 112 | $.ig.react.propTypes.igDataChart = { 113 | id: PropTypes.string.isRequired, 114 | syncChannel: PropTypes.string, 115 | synchronizeVertically: PropTypes.bool, 116 | syncrhonizeHorizontally: PropTypes.bool, 117 | width: PropTypes.oneOfType([ 118 | PropTypes.string, 119 | PropTypes.number 120 | ]), 121 | height: PropTypes.oneOfType([ 122 | PropTypes.string, 123 | PropTypes.number 124 | ]), 125 | dataSource: PropTypes.object, 126 | dataSourceUrl: PropTypes.string, 127 | dataSourceType: PropTypes.string, 128 | responseDataKey: PropTypes.oneOfType([ 129 | PropTypes.string 130 | ]), 131 | responseDataType: PropTypes.oneOfType([ 132 | PropTypes.string 133 | ]), 134 | legend: PropTypes.shape( 135 | $.ig.react.propTypes.shapes.igDataChartLegend 136 | ), 137 | axes: PropTypes.arrayOf( 138 | PropTypes.shape($.ig.react.propTypes.shapes.igDataChartAxes) 139 | ), 140 | series: PropTypes.arrayOf( 141 | PropTypes.shape($.ig.react.propTypes.shapes.igDataChartSeries) 142 | ) 143 | } 144 | -------------------------------------------------------------------------------- /src/props/igRadialMenu.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igRadialMenuItem = { 2 | type: PropTypes.oneOf([ 3 | "button", 4 | "coloritem", 5 | "colorwell", 6 | "list", 7 | "numericitem", 8 | "numericgauge" 9 | ]), 10 | name: PropTypes.string, 11 | recentItemName: PropTypes.string, 12 | value: PropTypes.number, 13 | pendingValue: PropTypes.object, 14 | autoRotateChildren: PropTypes.bool, 15 | checkedHighlightBrush: PropTypes.string, 16 | foreground: PropTypes.string, 17 | highlightBrush: PropTypes.string, 18 | innerAreaFill: PropTypes.string, 19 | innerAreaHotTrackFill: PropTypes.string, 20 | innerAreaHotTrackStroke: PropTypes.string, 21 | innerAreaStroke: PropTypes.string, 22 | innerAreaStrokeThickness: PropTypes.number, 23 | isEnabled: PropTypes.bool, 24 | isToolTipEnabled: PropTypes.bool, 25 | outerRingButtonHotTrackFill: PropTypes.string, 26 | outerRingButtonHotTrackForeground: PropTypes.string, 27 | outerRingButtonHotTrackStroke: PropTypes.string, 28 | outerRingButtonFill: PropTypes.string, 29 | outerRingButtonForeground: PropTypes.string, 30 | outerRingButtonStroke: PropTypes.string, 31 | outerRingButtonStrokeThickness: PropTypes.number, 32 | toolTip: PropTypes.object, 33 | wedgeIndex: PropTypes.number, 34 | wedgeSpan: PropTypes.number, 35 | autoUpdateRecentItem: PropTypes.bool, 36 | childItemPlacement: PropTypes.oneOf([ 37 | "asChildren", 38 | "asSiblingsWhenChecked", 39 | "none" 40 | ]), 41 | checkBehavior: PropTypes.oneOf([ 42 | "none", 43 | "checkBox", 44 | "radioButton", 45 | "radioButtonAllowAllUp" 46 | ]), 47 | isChecked: PropTypes.bool, 48 | groupName: PropTypes.string, 49 | header: PropTypes.object, 50 | iconUri: PropTypes.string, 51 | color: PropTypes.object, 52 | pendingValueNeedleBrush: PropTypes.string, 53 | reserveFirstSlice: PropTypes.bool, 54 | smallIncrement: PropTypes.number, 55 | tickBrush: PropTypes.string, 56 | ticks: PropTypes.object, 57 | trackStartColor: PropTypes.object, 58 | trackEndColor: PropTypes.object, 59 | valueNeedleBrush: PropTypes.string, 60 | closed: PropTypes.object, 61 | opened: PropTypes.object, 62 | checked: PropTypes.object, 63 | click: PropTypes.object, 64 | unchecked: PropTypes.object, 65 | colorChanged: PropTypes.object, 66 | colorWellClick: PropTypes.object, 67 | valueChanged: PropTypes.object, 68 | pendingValueChanged: PropTypes.object 69 | } 70 | 71 | $.ig.react.propTypes.igRadialMenu = { 72 | id: PropTypes.string.isRequired, 73 | items: PropTypes.arrayOf( 74 | PropTypes.shape($.ig.react.propTypes.shapes.igRadialMenuItem) 75 | ), 76 | currentOpenMenuItemName: PropTypes.string, 77 | centerButtonContentWidth: PropTypes.number, 78 | centerButtonContentHeight: PropTypes.number, 79 | centerButtonClosedFill: PropTypes.string, 80 | centerButtonClosedStroke: PropTypes.string, 81 | centerButtonFill: PropTypes.string, 82 | centerButtonHotTrackFill: PropTypes.string, 83 | centerButtonHotTrackStroke: PropTypes.string, 84 | centerButtonStroke: PropTypes.string, 85 | centerButtonStrokeThickness: PropTypes.number, 86 | font: PropTypes.string, 87 | isOpen: PropTypes.bool, 88 | menuBackground: PropTypes.string, 89 | menuItemOpenCloseAnimationDuration: PropTypes.number, 90 | menuItemOpenCloseAnimationEasingFunction: PropTypes.object, 91 | menuOpenCloseAnimationDuration: PropTypes.number, 92 | menuOpenCloseAnimationEasingFunction: PropTypes.object, 93 | minWedgeCount: PropTypes.number, 94 | outerRingFill: PropTypes.string, 95 | outerRingThickness: PropTypes.number, 96 | outerRingStroke: PropTypes.string, 97 | outerRingStrokeThickness: PropTypes.number, 98 | rotationInDegrees: PropTypes.number, 99 | rotationAsPercentageOfWedge: PropTypes.number, 100 | wedgePaddingInDegrees: PropTypes.number, 101 | pixelScalingRatio: PropTypes.number 102 | } 103 | -------------------------------------------------------------------------------- /src/props/igTree.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igTreeBindingsBindings = { 2 | } 3 | 4 | $.ig.react.propTypes.shapes.igTreeBindings = { 5 | textKey: PropTypes.string, 6 | textXPath: PropTypes.string, 7 | valueKey: PropTypes.string, 8 | valueXPath: PropTypes.string, 9 | imageUrlKey: PropTypes.string, 10 | imageUrlXPath: PropTypes.string, 11 | navigateUrlKey: PropTypes.string, 12 | navigateUrlXPath: PropTypes.string, 13 | targetKey: PropTypes.string, 14 | expandedKey: PropTypes.string, 15 | checkedKey: PropTypes.string, 16 | primaryKey: PropTypes.string, 17 | nodeContentTemplate: PropTypes.string, 18 | childDataProperty: PropTypes.string, 19 | childDataXPath: PropTypes.string, 20 | searchFieldXPath: PropTypes.string, 21 | bindings: PropTypes.shape( 22 | $.ig.react.propTypes.shapes.igTreeBindingsBindings 23 | ) 24 | } 25 | 26 | $.ig.react.propTypes.shapes.igTreeDragAndDropSettings = { 27 | allowDrop: PropTypes.bool, 28 | dragAndDropMode: PropTypes.oneOf([ 29 | "default", 30 | "copy", 31 | "move" 32 | ]), 33 | dragOpacity: PropTypes.number, 34 | revert: PropTypes.bool, 35 | revertDuration: PropTypes.number, 36 | zIndex: PropTypes.number, 37 | dragStartDelay: PropTypes.number, 38 | expandOnDragOver: PropTypes.bool, 39 | expandDelay: PropTypes.number, 40 | helper: PropTypes.oneOfType([ 41 | PropTypes.func, 42 | PropTypes.string 43 | ]), 44 | customDropValidation: PropTypes.oneOfType([ 45 | PropTypes.func 46 | ]), 47 | containment: PropTypes.oneOfType([ 48 | PropTypes.bool, 49 | PropTypes.string, 50 | PropTypes.object, 51 | PropTypes.array 52 | ]), 53 | invalidMoveToMarkup: PropTypes.string, 54 | moveToMarkup: PropTypes.string, 55 | moveBetweenMarkup: PropTypes.string, 56 | moveAfterMarkup: PropTypes.string, 57 | moveBeforeMarkup: PropTypes.string, 58 | copyToMarkup: PropTypes.string, 59 | copyBetweenMarkup: PropTypes.string, 60 | copyAfterMarkup: PropTypes.string, 61 | copyBeforeMarkup: PropTypes.string 62 | } 63 | 64 | $.ig.react.propTypes.igTree = { 65 | id: PropTypes.string.isRequired, 66 | width: PropTypes.oneOfType([ 67 | PropTypes.string, 68 | PropTypes.number 69 | ]), 70 | height: PropTypes.oneOfType([ 71 | PropTypes.string, 72 | PropTypes.number 73 | ]), 74 | checkboxMode: PropTypes.oneOf([ 75 | "off", 76 | "biState", 77 | "triState" 78 | ]), 79 | singleBranchExpand: PropTypes.bool, 80 | hotTracking: PropTypes.bool, 81 | parentNodeImageUrl: PropTypes.oneOfType([ 82 | PropTypes.string 83 | ]), 84 | parentNodeImageClass: PropTypes.oneOfType([ 85 | PropTypes.string 86 | ]), 87 | parentNodeImageTooltip: PropTypes.oneOfType([ 88 | PropTypes.string 89 | ]), 90 | leafNodeImageUrl: PropTypes.oneOfType([ 91 | PropTypes.string 92 | ]), 93 | leafNodeImageClass: PropTypes.oneOfType([ 94 | PropTypes.string 95 | ]), 96 | leafNodeImageTooltip: PropTypes.oneOfType([ 97 | PropTypes.string 98 | ]), 99 | animationDuration: PropTypes.number, 100 | pathSeparator: PropTypes.string, 101 | dataSource: PropTypes.object, 102 | dataSourceUrl: PropTypes.oneOfType([ 103 | PropTypes.string 104 | ]), 105 | dataSourceType: PropTypes.oneOfType([ 106 | PropTypes.string 107 | ]), 108 | responseDataKey: PropTypes.oneOfType([ 109 | PropTypes.string 110 | ]), 111 | responseDataType: PropTypes.oneOfType([ 112 | PropTypes.string 113 | ]), 114 | requestType: PropTypes.string, 115 | responseContentType: PropTypes.string, 116 | initialExpandDepth: PropTypes.number, 117 | loadOnDemand: PropTypes.bool, 118 | bindings: PropTypes.shape( 119 | $.ig.react.propTypes.shapes.igTreeBindings 120 | ), 121 | defaultNodeTarget: PropTypes.string, 122 | dragAndDrop: PropTypes.bool, 123 | updateUrl: PropTypes.string, 124 | dragAndDropSettings: PropTypes.shape( 125 | $.ig.react.propTypes.shapes.igTreeDragAndDropSettings 126 | ) 127 | } 128 | -------------------------------------------------------------------------------- /src/props/igTreeGrid.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igTreeGridDataSourceSettings = { 2 | propertyExpanded: PropTypes.object, 3 | propertyDataLevel: PropTypes.object, 4 | expandedKey: PropTypes.string, 5 | dataLevelKey: PropTypes.string, 6 | initialFlatDataView: PropTypes.bool 7 | } 8 | 9 | $.ig.react.propTypes.shapes.igTreeGridLocale = { 10 | expandTooltipText: PropTypes.string, 11 | collapseTooltipText: PropTypes.string 12 | } 13 | 14 | $.ig.react.propTypes.igTreeGrid = { 15 | id: PropTypes.string.isRequired, 16 | indentation: PropTypes.string, 17 | initialIndentationLevel: PropTypes.number, 18 | showExpansionIndicator: PropTypes.bool, 19 | expandTooltipText: PropTypes.string, 20 | collapseTooltipText: PropTypes.string, 21 | foreignKey: PropTypes.string, 22 | initialExpandDepth: PropTypes.number, 23 | foreignKeyRootValue: PropTypes.oneOfType([ 24 | PropTypes.number, 25 | PropTypes.string 26 | ]), 27 | renderExpansionIndicatorColumn: PropTypes.bool, 28 | renderFirstDataCellFunction: PropTypes.oneOfType([ 29 | PropTypes.string, 30 | PropTypes.object 31 | ]), 32 | childDataKey: PropTypes.string, 33 | renderExpansionCellFunction: PropTypes.oneOfType([ 34 | PropTypes.string, 35 | PropTypes.object 36 | ]), 37 | enableRemoteLoadOnDemand: PropTypes.bool, 38 | dataSourceSettings: PropTypes.shape( 39 | $.ig.react.propTypes.shapes.igTreeGridDataSourceSettings 40 | ), 41 | locale: PropTypes.shape( 42 | $.ig.react.propTypes.shapes.igTreeGridLocale 43 | ), 44 | virtualizationMode: PropTypes.string, 45 | width: PropTypes.oneOfType([ 46 | PropTypes.string, 47 | PropTypes.number 48 | ]), 49 | height: PropTypes.oneOfType([ 50 | PropTypes.string, 51 | PropTypes.number 52 | ]), 53 | autoAdjustHeight: PropTypes.bool, 54 | defaultColumnWidth: PropTypes.oneOfType([ 55 | PropTypes.string, 56 | PropTypes.number 57 | ]), 58 | autoGenerateColumns: PropTypes.bool, 59 | virtualization: PropTypes.bool, 60 | rowVirtualization: PropTypes.bool, 61 | virtualizationMouseWheelStep: PropTypes.number, 62 | adjustVirtualHeights: PropTypes.bool, 63 | templatingEngine: PropTypes.oneOf([ 64 | "infragistics", 65 | "jsRender" 66 | ]), 67 | columns: PropTypes.arrayOf( 68 | PropTypes.shape($.ig.react.propTypes.shapes.igGridColumn) 69 | ), 70 | dataSource: PropTypes.oneOfType([ 71 | PropTypes.array, 72 | PropTypes.object, 73 | PropTypes.string 74 | ]), 75 | dataSourceUrl: PropTypes.string, 76 | dataSourceType: PropTypes.string, 77 | responseDataKey: PropTypes.string, 78 | responseTotalRecCountKey: PropTypes.string, 79 | requestType: PropTypes.string, 80 | responseContentType: PropTypes.string, 81 | showHeader: PropTypes.bool, 82 | showFooter: PropTypes.bool, 83 | fixedHeaders: PropTypes.bool, 84 | fixedFooters: PropTypes.bool, 85 | caption: PropTypes.string, 86 | features: PropTypes.arrayOf( 87 | PropTypes.shape($.ig.react.propTypes.shapes.igGridFeature) 88 | ), 89 | tabIndex: PropTypes.number, 90 | localSchemaTransform: PropTypes.bool, 91 | primaryKey: PropTypes.string, 92 | serializeTransactionLog: PropTypes.bool, 93 | autoCommit: PropTypes.bool, 94 | aggregateTransactions: PropTypes.bool, 95 | autoFormat: PropTypes.oneOfType([ 96 | PropTypes.string, 97 | PropTypes.bool 98 | ]), 99 | renderCheckboxes: PropTypes.bool, 100 | updateUrl: PropTypes.string, 101 | alternateRowStyles: PropTypes.bool, 102 | autofitLastColumn: PropTypes.bool, 103 | enableHoverStyles: PropTypes.bool, 104 | enableUTCDates: PropTypes.bool, 105 | mergeUnboundColumns: PropTypes.bool, 106 | jsonpRequest: PropTypes.bool, 107 | enableResizeContainerCheck: PropTypes.bool, 108 | featureChooserIconDisplay: PropTypes.oneOf([ 109 | "none", 110 | "desktopOnly", 111 | "always" 112 | ]), 113 | scrollSettings: PropTypes.shape( 114 | $.ig.react.propTypes.shapes.igGridScrollSettings 115 | ) 116 | } 117 | -------------------------------------------------------------------------------- /samples/ig-financial-state/src/components/MainComponent.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import EditorsBox from './EditorsBox.js'; 3 | import ChartsBox from './ChartsBox.js'; 4 | import GaugesBox from './GaugesBox.js'; 5 | import TotalBox from './TotalBox.js'; 6 | 7 | // Ignite UI Required Combined JavaScript Files 8 | import "@infragistics/ignite-ui-full/en/js/infragistics.core.js"; 9 | import "@infragistics/ignite-ui-full/en/js/infragistics.lob.js"; 10 | import "@infragistics/ignite-ui-full/en/js/infragistics.dv.js"; 11 | 12 | // CSS files 13 | import "@infragistics/ignite-ui-full/en/css/structure/infragistics.css"; 14 | import "@infragistics/ignite-ui-full/en/css/themes/infragistics/infragistics.theme.css"; 15 | import '../sample.css'; 16 | 17 | class MainComponent extends React.Component { 18 | generateData = () => { 19 | var num = 12, data = [], rand1, rand2, rand3, 20 | mnths = this.getShortMonthNames(); 21 | 22 | 23 | for (var i = 0; i < num; i++) { 24 | rand1 = Math.random() * 50.0; 25 | rand2 = Math.random() * 40.0; 26 | rand3 = rand1 - rand2; 27 | data[i] = { 28 | index: i, 29 | month: mnths[i], 30 | revenue: rand1, 31 | expenses: rand2, 32 | profit: rand3 33 | }; 34 | } 35 | return { data: data }; 36 | }; 37 | 38 | changeMonth = (index) => { 39 | this.setState({ month: index, update: "month" }); 40 | }; 41 | 42 | changeRevenue = (value) => { 43 | var data = this.state.data; 44 | data.data[this.state.month].revenue = value; 45 | data.data[this.state.month].profit = value - data.data[this.state.month].expenses; 46 | this.setState({ data: data, update: "revenue" }); 47 | }; 48 | 49 | changeExpenses = (value) => { 50 | var data = this.state.data; 51 | data.data[this.state.month].expenses = value; 52 | data.data[this.state.month].profit = data.data[this.state.month].revenue - value; 53 | this.setState({ data: data, update: "expenses" }); 54 | }; 55 | 56 | changeProfit = (value) => { 57 | var data = this.state.data; 58 | data.data[this.state.month].profit = value; 59 | data.data[this.state.month].revenue = value + data.data[this.state.month].expenses; 60 | this.setState({ data: data, update: "profit" }); 61 | }; 62 | 63 | getMonths = () => { 64 | return { 65 | months: [ 66 | { value: 0, text: "January"}, { value: 1, text: "February"}, { value: 2, text: "March"}, 67 | { value: 3, text: "April"}, { value: 4, text: "May"}, { value: 5, text: "June"}, 68 | { value: 6, text: "July"}, { value: 7, text: "August"}, { value: 8, text: "September"}, 69 | { value: 9, text: "October"}, { value: 10, text: "November"}, { value: 11, text: "December"} 70 | ]}; 71 | }; 72 | 73 | getRandomInt = (max) => { 74 | return Math.floor(Math.random() * Math.floor(max)); 75 | }; 76 | 77 | getShortMonthNames = () => { 78 | return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 79 | }; 80 | 81 | state = { 82 | month: this.getRandomInt(12), 83 | data: this.generateData(), 84 | update: null, 85 | months: this.getMonths() 86 | }; 87 | 88 | render() { 89 | return ( 90 |
91 | 99 |
100 | 102 | 108 |
109 | 113 |
114 | ); 115 | } 116 | } 117 | 118 | export default MainComponent; -------------------------------------------------------------------------------- /src/props/igUpload.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igUploadLocale = { 2 | labelUploadButton: PropTypes.string, 3 | labelAddButton: PropTypes.string, 4 | labelClearAllButton: PropTypes.string, 5 | labelSummaryTemplate: PropTypes.string, 6 | labelSummaryProgressBarTemplate: PropTypes.string, 7 | labelShowDetails: PropTypes.string, 8 | labelHideDetails: PropTypes.string, 9 | labelSummaryProgressButtonCancel: PropTypes.string, 10 | labelSummaryProgressButtonContinue: PropTypes.string, 11 | labelSummaryProgressButtonDone: PropTypes.string, 12 | labelProgressBarFileNameContinue: PropTypes.string, 13 | errorMessageFileSizeExceeded: PropTypes.string, 14 | errorMessageGetFileStatus: PropTypes.string, 15 | errorMessageCancelUpload: PropTypes.string, 16 | errorMessageNoSuchFile: PropTypes.string, 17 | errorMessageOther: PropTypes.string, 18 | errorMessageValidatingFileExtension: PropTypes.string, 19 | errorMessageAJAXRequestFileSize: PropTypes.string, 20 | errorMessageMaxUploadedFiles: PropTypes.string, 21 | errorMessageMaxSimultaneousFiles: PropTypes.string, 22 | errorMessageTryToRemoveNonExistingFile: PropTypes.string, 23 | errorMessageTryToStartNonExistingFile: PropTypes.string, 24 | errorMessageDropMultipleFilesWhenSingleModel: PropTypes.string, 25 | titleUploadFileButtonInit: PropTypes.string, 26 | titleAddFileButton: PropTypes.string, 27 | titleCancelUploadButton: PropTypes.string, 28 | titleSummaryProgressButtonContinue: PropTypes.string, 29 | titleClearUploaded: PropTypes.string, 30 | titleShowDetailsButton: PropTypes.string, 31 | titleHideDetailsButton: PropTypes.string, 32 | titleSummaryProgressButtonCancel: PropTypes.string, 33 | titleSummaryProgressButtonDone: PropTypes.string, 34 | titleSingleUploadButtonContinue: PropTypes.string, 35 | titleClearAllButton: PropTypes.string 36 | } 37 | 38 | $.ig.react.propTypes.shapes.igUploadFileExtensionIcons = { 39 | ext: PropTypes.array, 40 | css: PropTypes.string, 41 | def: PropTypes.bool 42 | } 43 | 44 | $.ig.react.propTypes.igUpload = { 45 | id: PropTypes.string.isRequired, 46 | width: PropTypes.oneOfType([ 47 | PropTypes.number, 48 | PropTypes.string 49 | ]), 50 | height: PropTypes.oneOfType([ 51 | PropTypes.number, 52 | PropTypes.string 53 | ]), 54 | autostartupload: PropTypes.bool, 55 | labelUploadButton: PropTypes.string, 56 | labelAddButton: PropTypes.string, 57 | labelClearAllButton: PropTypes.string, 58 | labelSummaryTemplate: PropTypes.string, 59 | labelSummaryProgressBarTemplate: PropTypes.string, 60 | labelShowDetails: PropTypes.string, 61 | labelHideDetails: PropTypes.string, 62 | labelSummaryProgressButtonCancel: PropTypes.string, 63 | labelSummaryProgressButtonContinue: PropTypes.string, 64 | labelSummaryProgressButtonDone: PropTypes.string, 65 | labelProgressBarFileNameContinue: PropTypes.string, 66 | errorMessageMaxFileSizeExceeded: PropTypes.string, 67 | errorMessageGetFileStatus: PropTypes.string, 68 | errorMessageCancelUpload: PropTypes.string, 69 | errorMessageNoSuchFile: PropTypes.string, 70 | errorMessageOther: PropTypes.string, 71 | errorMessageValidatingFileExtension: PropTypes.string, 72 | errorMessageAJAXRequestFileSize: PropTypes.string, 73 | errorMessageTryToRemoveNonExistingFile: PropTypes.string, 74 | errorMessageTryToStartNonExistingFile: PropTypes.string, 75 | errorMessageMaxUploadedFiles: PropTypes.string, 76 | errorMessageMaxSimultaneousFiles: PropTypes.string, 77 | errorMessageDropMultipleFilesWhenSingleModel: PropTypes.string, 78 | locale: PropTypes.shape( 79 | $.ig.react.propTypes.shapes.igUploadLocale 80 | ), 81 | uploadUrl: PropTypes.string, 82 | progressUrl: PropTypes.string, 83 | allowedExtensions: PropTypes.array, 84 | showFileExtensionIcon: PropTypes.bool, 85 | css: PropTypes.object, 86 | fileExtensionIcons: PropTypes.shape( 87 | $.ig.react.propTypes.shapes.igUploadFileExtensionIcons 88 | ), 89 | mode: PropTypes.any, 90 | multipleFiles: PropTypes.bool, 91 | maxUploadedFiles: PropTypes.number, 92 | maxSimultaneousFilesUploads: PropTypes.number, 93 | fileSizeMetric: PropTypes.any, 94 | controlId: PropTypes.string, 95 | fileSizeDecimalDisplay: PropTypes.number, 96 | maxFileSize: PropTypes.object, 97 | useSingleRequest: PropTypes.bool 98 | } 99 | -------------------------------------------------------------------------------- /src/props/igRadialGauge.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igRadialGaugeRange = { 2 | name: PropTypes.string, 3 | startValue: PropTypes.number, 4 | endValue: PropTypes.number, 5 | outerStartExtent: PropTypes.number, 6 | outerEndExtent: PropTypes.number, 7 | innerStartExtent: PropTypes.number, 8 | innerEndExtent: PropTypes.number, 9 | brush: PropTypes.string, 10 | outline: PropTypes.string, 11 | strokeThickness: PropTypes.number, 12 | remove: PropTypes.bool 13 | } 14 | 15 | $.ig.react.propTypes.igRadialGauge = { 16 | id: PropTypes.string.isRequired, 17 | width: PropTypes.oneOfType([ 18 | PropTypes.string, 19 | PropTypes.number 20 | ]), 21 | height: PropTypes.oneOfType([ 22 | PropTypes.string, 23 | PropTypes.number 24 | ]), 25 | ranges: PropTypes.arrayOf( 26 | PropTypes.shape($.ig.react.propTypes.shapes.igRadialGaugeRange) 27 | ), 28 | rangeBrushes: PropTypes.object, 29 | rangeOutlines: PropTypes.object, 30 | minimumValue: PropTypes.number, 31 | maximumValue: PropTypes.number, 32 | interval: PropTypes.number, 33 | centerX: PropTypes.number, 34 | centerY: PropTypes.number, 35 | value: PropTypes.number, 36 | scaleStartAngle: PropTypes.number, 37 | scaleEndAngle: PropTypes.number, 38 | scaleSweepDirection: PropTypes.oneOf([ 39 | "counterclockwise", 40 | "clockwise" 41 | ]), 42 | transitionDuration: PropTypes.number, 43 | transitionEasingFunction: PropTypes.object, 44 | needleBrush: PropTypes.string, 45 | needleOutline: PropTypes.string, 46 | needleStartExtent: PropTypes.number, 47 | needleEndExtent: PropTypes.number, 48 | needleShape: PropTypes.oneOf([ 49 | "none", 50 | "rectangle", 51 | "triangle", 52 | "needle", 53 | "trapezoid", 54 | "rectangleWithBulb", 55 | "triangleWithBulb", 56 | "needleWithBulb", 57 | "trapezoidWithBulb" 58 | ]), 59 | needleStartWidthRatio: PropTypes.number, 60 | needleEndWidthRatio: PropTypes.number, 61 | needleBaseFeatureWidthRatio: PropTypes.number, 62 | needleBaseFeatureExtent: PropTypes.number, 63 | needlePointFeatureWidthRatio: PropTypes.number, 64 | needlePointFeatureExtent: PropTypes.number, 65 | needlePivotWidthRatio: PropTypes.number, 66 | needlePivotInnerWidthRatio: PropTypes.number, 67 | needlePivotShape: PropTypes.oneOf([ 68 | "none", 69 | "circle", 70 | "circleWithHole", 71 | "circleOverlay", 72 | "circleOverlayWithHole", 73 | "circleUnderlay", 74 | "circleUnderlayWithHole" 75 | ]), 76 | scaleStartExtent: PropTypes.number, 77 | needlePivotBrush: PropTypes.string, 78 | needlePivotOutline: PropTypes.string, 79 | needleStrokeThickness: PropTypes.number, 80 | needlePivotStrokeThickness: PropTypes.number, 81 | scaleEndExtent: PropTypes.number, 82 | labelExtent: PropTypes.number, 83 | labelInterval: PropTypes.number, 84 | tickStartExtent: PropTypes.number, 85 | tickEndExtent: PropTypes.number, 86 | tickStrokeThickness: PropTypes.number, 87 | tickBrush: PropTypes.string, 88 | fontBrush: PropTypes.string, 89 | minorTickStartExtent: PropTypes.number, 90 | minorTickEndExtent: PropTypes.number, 91 | minorTickStrokeThickness: PropTypes.number, 92 | minorTickBrush: PropTypes.string, 93 | minorTickCount: PropTypes.number, 94 | scaleBrush: PropTypes.string, 95 | backingBrush: PropTypes.string, 96 | backingOutline: PropTypes.string, 97 | backingStrokeThickness: PropTypes.number, 98 | backingOuterExtent: PropTypes.number, 99 | backingOversweep: PropTypes.number, 100 | scaleOversweep: PropTypes.number, 101 | scaleOversweepShape: PropTypes.oneOf([ 102 | "auto", 103 | "circular", 104 | "fitted" 105 | ]), 106 | backingCornerRadius: PropTypes.number, 107 | backingInnerExtent: PropTypes.number, 108 | backingShape: PropTypes.oneOf([ 109 | "circular", 110 | "fitted" 111 | ]), 112 | radiusMultiplier: PropTypes.number, 113 | duplicateLabelOmissionStrategy: PropTypes.oneOf([ 114 | "omitLast", 115 | "omitFirst", 116 | "omitNeither", 117 | "omitBoth" 118 | ]), 119 | isNeedleDraggingEnabled: PropTypes.bool, 120 | isNeedleDraggingConstrained: PropTypes.bool, 121 | font: PropTypes.string, 122 | transitionProgress: PropTypes.number, 123 | pixelScalingRatio: PropTypes.number 124 | } 125 | -------------------------------------------------------------------------------- /src/props/igCombo.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igComboLocale = { 2 | noMatchFoundText: PropTypes.object, 3 | dropDownButtonTitle: PropTypes.object, 4 | clearButtonTitle: PropTypes.object, 5 | placeHolder: PropTypes.object 6 | } 7 | 8 | $.ig.react.propTypes.shapes.igComboLoadOnDemandSettings = { 9 | enabled: PropTypes.bool, 10 | pageSize: PropTypes.number 11 | } 12 | 13 | $.ig.react.propTypes.shapes.igComboMultiSelection = { 14 | enabled: PropTypes.bool, 15 | addWithKeyModifier: PropTypes.bool, 16 | showCheckboxes: PropTypes.bool, 17 | itemSeparator: PropTypes.string 18 | } 19 | 20 | $.ig.react.propTypes.shapes.igComboGrouping = { 21 | key: PropTypes.string, 22 | dir: PropTypes.oneOf([ 23 | "asc", 24 | "desc" 25 | ]) 26 | } 27 | 28 | $.ig.react.propTypes.shapes.igComboInitialSelectedItem = { 29 | index: PropTypes.number, 30 | value: PropTypes.object 31 | } 32 | 33 | $.ig.react.propTypes.igCombo = { 34 | id: PropTypes.string.isRequired, 35 | width: PropTypes.oneOfType([ 36 | PropTypes.string, 37 | PropTypes.number 38 | ]), 39 | height: PropTypes.oneOfType([ 40 | PropTypes.string, 41 | PropTypes.number 42 | ]), 43 | dropDownWidth: PropTypes.oneOfType([ 44 | PropTypes.string, 45 | PropTypes.number 46 | ]), 47 | dataSource: PropTypes.object, 48 | dataSourceType: PropTypes.string, 49 | dataSourceUrl: PropTypes.string, 50 | responseTotalRecCountKey: PropTypes.string, 51 | responseDataKey: PropTypes.string, 52 | responseDataType: PropTypes.oneOf([ 53 | "json", 54 | "xml", 55 | "html", 56 | "script", 57 | "jsonp", 58 | "text" 59 | ]), 60 | responseContentType: PropTypes.string, 61 | requestType: PropTypes.string, 62 | valueKey: PropTypes.string, 63 | textKey: PropTypes.string, 64 | itemTemplate: PropTypes.string, 65 | headerTemplate: PropTypes.string, 66 | footerTemplate: PropTypes.string, 67 | inputName: PropTypes.string, 68 | animationShowDuration: PropTypes.number, 69 | animationHideDuration: PropTypes.number, 70 | dropDownAttachedToBody: PropTypes.bool, 71 | filteringType: PropTypes.oneOf([ 72 | "remote", 73 | "local", 74 | "none" 75 | ]), 76 | filterExprUrlKey: PropTypes.string, 77 | filteringCondition: PropTypes.oneOf([ 78 | "contains", 79 | "doesNotContain", 80 | "startsWith", 81 | "endsWith", 82 | "greaterThan", 83 | "lessThan", 84 | "greaterThanOrEqualTo", 85 | "lessThanOrEqualTo", 86 | "equals", 87 | "doesNotEqual" 88 | ]), 89 | filteringLogic: PropTypes.oneOf([ 90 | "OR", 91 | "AND" 92 | ]), 93 | noMatchFoundText: PropTypes.string, 94 | dropDownButtonTitle: PropTypes.string, 95 | clearButtonTitle: PropTypes.string, 96 | placeHolder: PropTypes.string, 97 | locale: PropTypes.shape( 98 | $.ig.react.propTypes.shapes.igComboLocale 99 | ), 100 | loadOnDemandSettings: PropTypes.shape( 101 | $.ig.react.propTypes.shapes.igComboLoadOnDemandSettings 102 | ), 103 | visibleItemsCount: PropTypes.number, 104 | mode: PropTypes.oneOf([ 105 | "editable", 106 | "dropdown", 107 | "readonlylist", 108 | "readonly" 109 | ]), 110 | virtualization: PropTypes.bool, 111 | multiSelection: PropTypes.shape( 112 | $.ig.react.propTypes.shapes.igComboMultiSelection 113 | ), 114 | grouping: PropTypes.shape( 115 | $.ig.react.propTypes.shapes.igComboGrouping 116 | ), 117 | validatorOptions: PropTypes.object, 118 | highlightMatchesMode: PropTypes.oneOf([ 119 | "multi", 120 | "contains", 121 | "startsWith", 122 | "full" 123 | ]), 124 | caseSensitive: PropTypes.bool, 125 | autoSelectFirstMatch: PropTypes.bool, 126 | autoComplete: PropTypes.bool, 127 | allowCustomValue: PropTypes.bool, 128 | closeDropDownOnBlur: PropTypes.bool, 129 | delayInputChangeProcessing: PropTypes.number, 130 | tabIndex: PropTypes.number, 131 | dropDownOnFocus: PropTypes.bool, 132 | closeDropDownOnSelect: PropTypes.bool, 133 | selectItemBySpaceKey: PropTypes.bool, 134 | initialSelectedItems: PropTypes.arrayOf( 135 | PropTypes.shape($.ig.react.propTypes.shapes.igComboInitialSelectedItem) 136 | ), 137 | preventSubmitOnEnter: PropTypes.bool, 138 | format: PropTypes.string, 139 | suppressKeyboard: PropTypes.bool, 140 | enableClearButton: PropTypes.bool, 141 | dropDownOrientation: PropTypes.oneOf([ 142 | "auto", 143 | "bottom", 144 | "top" 145 | ]) 146 | } 147 | -------------------------------------------------------------------------------- /samples/ig-grid/src/components/IgEditBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import createReactClass from 'create-react-class'; 3 | import IgTextEditor from 'igniteui-react-wrappers/ui/igTextEditor.js'; 4 | import IgNumericEditor from 'igniteui-react-wrappers/ui/igNumericEditor.js'; 5 | import IgButton from 'igniteui-react-wrappers/ui/igButton.js'; 6 | import '../sample.css'; 7 | import $ from 'jquery'; 8 | 9 | var IgEditBox = createReactClass({ 10 | render: function () { 11 | var rowId = this.props.rowId, 12 | v = rowId > -1; 13 | return ( 14 |
15 |

Change values in row with ID {this.props.rowId}:

16 |
17 |
18 | 19 |
20 | 26 |
27 |
28 |
29 | 30 |
31 | 38 |
39 |
40 |
41 | 42 |
43 | 50 |
51 |
52 |
53 |
54 |
55 |
56 | 57 |
58 |
59 | ); 60 | }, 61 | handleTextEditorKeyPress: function (e, args) { 62 | if (args.key === $.ui.keyCode.ENTER) { 63 | this.handleButtonUpdateClick(e); 64 | } 65 | }, 66 | handleTextEditorKeyDown: function (e) { 67 | if (e.keyCode === $.ui.keyCode.ENTER) { 68 | this.handleButtonUpdateClick(e); 69 | } 70 | }, 71 | handleButtonDeleteClick: function (e) { 72 | var func = this.props.btnDeleteClicked; 73 | if (func) { 74 | func(e, this.props.rowId); 75 | } 76 | }, 77 | handleButtonUpdateClick: function (e) { 78 | var func = this.props.btnUpdateClicked; 79 | if (func) { 80 | func(e, 81 | this.props.rowId, 82 | this.refs.editorName.igControl.value(), 83 | this.refs.editorStock.igControl.value(), 84 | this.refs.editorPrice.igControl.value()); 85 | } 86 | } 87 | }); 88 | 89 | export default IgEditBox; -------------------------------------------------------------------------------- /src/props/igVideoPlayer.js: -------------------------------------------------------------------------------- 1 | $.ig.react.propTypes.shapes.igVideoPlayerBookmark = { 2 | time: PropTypes.number, 3 | title: PropTypes.string, 4 | disabled: PropTypes.bool 5 | } 6 | 7 | $.ig.react.propTypes.shapes.igVideoPlayerRelatedVideo = { 8 | imageUrl: PropTypes.string, 9 | title: PropTypes.string, 10 | width: PropTypes.number, 11 | height: PropTypes.number, 12 | link: PropTypes.string, 13 | sources: PropTypes.array, 14 | css: PropTypes.string 15 | } 16 | 17 | $.ig.react.propTypes.shapes.igVideoPlayerBanner = { 18 | imageUrl: PropTypes.string, 19 | times: PropTypes.array, 20 | closeBanner: PropTypes.bool, 21 | animate: PropTypes.bool, 22 | visible: PropTypes.bool, 23 | duration: PropTypes.number, 24 | autohide: PropTypes.bool, 25 | hidedelay: PropTypes.number, 26 | link: PropTypes.string, 27 | width: PropTypes.oneOfType([ 28 | PropTypes.number, 29 | PropTypes.string 30 | ]), 31 | height: PropTypes.oneOfType([ 32 | PropTypes.number, 33 | PropTypes.string 34 | ]), 35 | css: PropTypes.string 36 | } 37 | 38 | $.ig.react.propTypes.shapes.igVideoPlayerCommercialsLinkedCommercial = { 39 | sources: PropTypes.array, 40 | startTime: PropTypes.number, 41 | link: PropTypes.string, 42 | title: PropTypes.string 43 | } 44 | 45 | $.ig.react.propTypes.shapes.igVideoPlayerCommercialsEmbeddedCommercial = { 46 | startTime: PropTypes.number, 47 | endTime: PropTypes.number, 48 | link: PropTypes.string, 49 | title: PropTypes.string 50 | } 51 | 52 | $.ig.react.propTypes.shapes.igVideoPlayerCommercialsAdMessage = { 53 | animate: PropTypes.bool, 54 | autoHide: PropTypes.bool, 55 | hideDelay: PropTypes.number, 56 | animationDuration: PropTypes.number 57 | } 58 | 59 | $.ig.react.propTypes.shapes.igVideoPlayerCommercials = { 60 | linkedCommercials: PropTypes.arrayOf( 61 | PropTypes.shape($.ig.react.propTypes.shapes.igVideoPlayerCommercialsLinkedCommercial) 62 | ), 63 | embeddedCommercials: PropTypes.arrayOf( 64 | PropTypes.shape($.ig.react.propTypes.shapes.igVideoPlayerCommercialsEmbeddedCommercial) 65 | ), 66 | alwaysPlayCommercials: PropTypes.bool, 67 | showBookmarks: PropTypes.bool, 68 | adMessage: PropTypes.shape( 69 | $.ig.react.propTypes.shapes.igVideoPlayerCommercialsAdMessage 70 | ) 71 | } 72 | 73 | $.ig.react.propTypes.shapes.igVideoPlayerLocale = { 74 | liveStream: PropTypes.bool, 75 | live: PropTypes.bool, 76 | paused: PropTypes.bool, 77 | playing: PropTypes.bool, 78 | play: PropTypes.bool, 79 | volume: PropTypes.bool, 80 | progressLabelLongFormat: PropTypes.bool, 81 | progressLabelShortFormat: PropTypes.bool, 82 | enterFullscreen: PropTypes.bool, 83 | exitFullscreen: PropTypes.bool, 84 | skipTo: PropTypes.bool, 85 | buffering: PropTypes.bool, 86 | adMessage: PropTypes.bool, 87 | adMessageLong: PropTypes.bool, 88 | adMessageNoDuration: PropTypes.bool, 89 | adNewWindowTip: PropTypes.bool, 90 | relatedVideos: PropTypes.bool, 91 | replayButton: PropTypes.bool, 92 | replayTooltip: PropTypes.bool 93 | } 94 | 95 | $.ig.react.propTypes.igVideoPlayer = { 96 | id: PropTypes.string.isRequired, 97 | sources: PropTypes.array, 98 | width: PropTypes.oneOfType([ 99 | PropTypes.string, 100 | PropTypes.number 101 | ]), 102 | height: PropTypes.oneOfType([ 103 | PropTypes.string, 104 | PropTypes.number 105 | ]), 106 | posterUrl: PropTypes.string, 107 | preload: PropTypes.bool, 108 | autoplay: PropTypes.bool, 109 | autohide: PropTypes.bool, 110 | volumeAutohideDelay: PropTypes.number, 111 | centerButtonHideDelay: PropTypes.number, 112 | loop: PropTypes.bool, 113 | browserControls: PropTypes.bool, 114 | fullscreen: PropTypes.bool, 115 | volume: PropTypes.number, 116 | muted: PropTypes.bool, 117 | title: PropTypes.string, 118 | showSeekTime: PropTypes.bool, 119 | progressLabelFormat: PropTypes.string, 120 | bookmarks: PropTypes.arrayOf( 121 | PropTypes.shape($.ig.react.propTypes.shapes.igVideoPlayerBookmark) 122 | ), 123 | relatedVideos: PropTypes.arrayOf( 124 | PropTypes.shape($.ig.react.propTypes.shapes.igVideoPlayerRelatedVideo) 125 | ), 126 | banners: PropTypes.arrayOf( 127 | PropTypes.shape($.ig.react.propTypes.shapes.igVideoPlayerBanner) 128 | ), 129 | commercials: PropTypes.shape( 130 | $.ig.react.propTypes.shapes.igVideoPlayerCommercials 131 | ), 132 | locale: PropTypes.shape( 133 | $.ig.react.propTypes.shapes.igVideoPlayerLocale 134 | ) 135 | } 136 | -------------------------------------------------------------------------------- /samples/ig-grid/src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ' 45 | ); 46 | }); 47 | } else { 48 | // Is not local host. Just register service worker 49 | registerValidSW(swUrl); 50 | } 51 | }); 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing; 61 | installingWorker.onstatechange = () => { 62 | if (installingWorker.state === 'installed') { 63 | if (navigator.serviceWorker.controller) { 64 | // At this point, the old content will have been purged and 65 | // the fresh content will have been added to the cache. 66 | // It's the perfect time to display a "New content is 67 | // available; please refresh." message in your web app. 68 | console.log('New content is available; please refresh.'); 69 | } else { 70 | // At this point, everything has been precached. 71 | // It's the perfect time to display a 72 | // "Content is cached for offline use." message. 73 | console.log('Content is cached for offline use.'); 74 | } 75 | } 76 | }; 77 | }; 78 | }) 79 | .catch(error => { 80 | console.error('Error during service worker registration:', error); 81 | }); 82 | } 83 | 84 | function checkValidServiceWorker(swUrl) { 85 | // Check if the service worker can be found. If it can't reload the page. 86 | fetch(swUrl) 87 | .then(response => { 88 | // Ensure service worker exists, and that we really are getting a JS file. 89 | if ( 90 | response.status === 404 || 91 | response.headers.get('content-type').indexOf('javascript') === -1 92 | ) { 93 | // No service worker found. Probably a different app. Reload the page. 94 | navigator.serviceWorker.ready.then(registration => { 95 | registration.unregister().then(() => { 96 | window.location.reload(); 97 | }); 98 | }); 99 | } else { 100 | // Service worker found. Proceed as normal. 101 | registerValidSW(swUrl); 102 | } 103 | }) 104 | .catch(() => { 105 | console.log( 106 | 'No internet connection found. App is running in offline mode.' 107 | ); 108 | }); 109 | } 110 | 111 | export function unregister() { 112 | if ('serviceWorker' in navigator) { 113 | navigator.serviceWorker.ready.then(registration => { 114 | registration.unregister(); 115 | }); 116 | } 117 | } 118 | --------------------------------------------------------------------------------