import React from 'react'; import DataGrid, { Column, Sorting, Paging, Pager, } from 'devextreme-react/data-grid'; import { weekData } from './data.ts'; import DiffCell from './DiffCell.tsx'; import ChartCell from './ChartCell.tsx'; const App = () => ( <DataGrid id="gridContainer" dataSource={weekData} keyExpr="date" showRowLines={true} showColumnLines={false} showBorders={true}> <Sorting mode="none" /> <Paging defaultPageSize={10} /> <Pager visible={true} /> <Column dataField="date" width={110} dataType="date" /> <Column caption="Open" cellRender={DiffCell} /> <Column caption="Close" cellRender={DiffCell} /> <Column caption="Dynamics" minWidth={320} cellRender={ChartCell} /> <Column caption="High" cellRender={DiffCell} /> <Column caption="Low" cellRender={DiffCell} /> </DataGrid> ); export default App;
import React from 'react'; import DataGrid, { Column, Sorting, Paging, Pager, } from 'devextreme-react/data-grid'; import { weekData } from './data.js'; import DiffCell from './DiffCell.js'; import ChartCell from './ChartCell.js'; const App = () => ( <DataGrid id="gridContainer" dataSource={weekData} keyExpr="date" showRowLines={true} showColumnLines={false} showBorders={true} > <Sorting mode="none" /> <Paging defaultPageSize={10} /> <Pager visible={true} /> <Column dataField="date" width={110} dataType="date" /> <Column caption="Open" cellRender={DiffCell} /> <Column caption="Close" cellRender={DiffCell} /> <Column caption="Dynamics" minWidth={320} cellRender={ChartCell} /> <Column caption="High" cellRender={DiffCell} /> <Column caption="Low" cellRender={DiffCell} /> </DataGrid> ); export default App;
import React from 'react'; import Sparkline, { Size, Tooltip } from 'devextreme-react/sparkline'; import { type DataGridTypes } from 'devextreme-react/data-grid'; const ChartCell = (cellData: DataGridTypes.ColumnCellTemplateData) => ( <div className="chart-cell"> <Sparkline dataSource={cellData.data.dayClose} argumentField="date" valueField="close" type="line" showMinMax={true} minColor="#f00" maxColor="#2ab71b" pointSize={6}> <Size width={290} height={40} /> <Tooltip enabled={false} /> </Sparkline> </div> ); export default ChartCell;
import React from 'react'; import { formatNumber } from 'devextreme-react/common/core/localization'; import { type DataGridTypes } from 'devextreme-react/data-grid'; const getGridCellData = (gridData: DataGridTypes.ColumnCellTemplateData) => gridData.data[gridData.column.caption.toLowerCase()]; const DiffCell = (cellData: DataGridTypes.ColumnCellTemplateData) => { const gridCellData = getGridCellData(cellData); return ( <div className={gridCellData.diff > 0 ? 'inc' : 'dec'}> <div className="current-value">{formatNumber(gridCellData.value, { type: 'currency', currency: 'USD', precision: 2 })}</div> <div className="diff">{Math.abs(gridCellData.diff).toFixed(2)}</div> </div> ); }; export default DiffCell;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.tsx'; ReactDOM.render( <App />, document.getElementById('app'), );
export const weekData = [{ date: new Date('2013/12/23'), open: { value: 3563.19, diff: 92.76, }, high: { value: 3591.31, diff: 50.34, }, low: { value: 3552.3, diff: 129.44, }, close: { value: 3574.02, diff: 42.83, }, volume: 1254340000, adjClose: 3574.02, dayClose: [{ close: 3569.4, date: new Date('2013/12/23'), }, { close: 3572.8, date: new Date('2013/12/24'), }, { close: 3584.58, date: new Date('2013/12/26'), }, { close: 3574.02, date: new Date('2013/12/27'), }], }, { date: new Date('2013/12/16'), open: { value: 3470.43, diff: -45.24, }, high: { value: 3540.97, diff: 16.96, }, low: { value: 3422.86, diff: -26.88, }, close: { value: 3531.19, diff: 74.79, }, volume: 2261352000, adjClose: 3531.19, dayClose: [{ close: 3475.79, date: new Date('2013/12/16'), }, { close: 3469.32, date: new Date('2013/12/17'), }, { close: 3509.63, date: new Date('2013/12/18'), }, { close: 3498.63, date: new Date('2013/12/19'), }, { close: 3531.19, date: new Date('2013/12/20'), }], }, { date: new Date('2013/12/09'), open: { value: 3515.67, diff: 19.48, }, high: { value: 3524.01, diff: 12.91, }, low: { value: 3449.74, diff: -3.48, }, close: { value: 3456.4, diff: -47.86, }, volume: 1802822000, adjClose: 3456.4, dayClose: [{ close: 3516.17, date: new Date('2013/12/09'), }, { close: 3514.2, date: new Date('2013/12/10'), }, { close: 3468.99, date: new Date('2013/12/11'), }, { close: 3460.29, date: new Date('2013/12/12'), }, { close: 3456.4, date: new Date('2013/12/13'), }], }, { date: new Date('2013/12/02'), open: { value: 3496.19, diff: 62.27, }, high: { value: 3511.1, diff: 15.13, }, low: { value: 3453.22, diff: 32.86, }, close: { value: 3504.26, diff: 16.44, }, volume: 1810088000, adjClose: 3504.26, dayClose: [{ close: 3481.15, date: new Date('2013/12/02'), }, { close: 3479.34, date: new Date('2013/12/03'), }, { close: 3483.01, date: new Date('2013/12/04'), }, { close: 3477.73, date: new Date('2013/12/05'), }, { close: 3504.26, date: new Date('2013/12/06'), }], }, { date: new Date('2013/11/25'), open: { value: 3433.92, diff: 10.45, }, high: { value: 3495.97, diff: 66.77, }, low: { value: 3420.36, diff: 61.05, }, close: { value: 3487.82, diff: 65.8, }, volume: 1508490000, adjClose: 3487.82, dayClose: [{ close: 3427.49, date: new Date('2013/11/25'), }, { close: 3445.76, date: new Date('2013/11/26'), }, { close: 3470.48, date: new Date('2013/11/27'), }, { close: 3487.82, date: new Date('2013/11/29'), }], }, { date: new Date('2013/11/18'), open: { value: 3423.47, diff: 63.64, }, high: { value: 3429.2, diff: 6.62, }, low: { value: 3359.31, diff: 12.9, }, close: { value: 3422.02, diff: -0.56, }, volume: 1742680000, adjClose: 3422.02, dayClose: [{ close: 3388.87, date: new Date('2013/11/18'), }, { close: 3378.13, date: new Date('2013/11/19'), }, { close: 3367.17, date: new Date('2013/11/20'), }, { close: 3402.74, date: new Date('2013/11/21'), }, { close: 3422.02, date: new Date('2013/11/22'), }], }, { date: new Date('2013/11/11'), open: { value: 3359.83, diff: -28.87, }, high: { value: 3422.58, diff: 21.31, }, low: { value: 3346.41, diff: 28.01, }, close: { value: 3422.58, diff: 55.74, }, volume: 1812784000, adjClose: 3422.58, dayClose: [{ close: 3362.98, date: new Date('2013/11/11'), }, { close: 3365.23, date: new Date('2013/11/12'), }, { close: 3405.56, date: new Date('2013/11/13'), }, { close: 3415.14, date: new Date('2013/11/14'), }, { close: 3422.58, date: new Date('2013/11/15'), }], }, { date: new Date('2013/11/04'), open: { value: 3388.7, diff: 6.52, }, high: { value: 3401.27, diff: -7.01, }, low: { value: 3318.4, diff: -46.25, }, close: { value: 3366.84, diff: -12.92, }, volume: 2011546000, adjClose: 3366.84, dayClose: [{ close: 3384.75, date: new Date('2013/11/04'), }, { close: 3388.82, date: new Date('2013/11/05'), }, { close: 3385.38, date: new Date('2013/11/06'), }, { close: 3321.41, date: new Date('2013/11/07'), }, { close: 3366.84, date: new Date('2013/11/08'), }], }, { date: new Date('2013/10/28'), open: { value: 3382.18, diff: 20.42, }, high: { value: 3408.28, diff: 8.24, }, low: { value: 3364.65, diff: 34.45, }, close: { value: 3379.76, diff: -4.07, }, volume: 1962860000, adjClose: 3379.76, dayClose: [{ close: 3382.68, date: new Date('2013/10/28'), }, { close: 3391.75, date: new Date('2013/10/29'), }, { close: 3385.38, date: new Date('2013/10/30'), }, { close: 3377.73, date: new Date('2013/10/31'), }, { close: 3379.76, date: new Date('2013/11/01'), }], }, { date: new Date('2013/10/21'), open: { value: 3361.76, diff: 148.38, }, high: { value: 3400.04, diff: 44.41, }, low: { value: 3330.2, diff: 118.15, }, close: { value: 3383.83, diff: 29.95, }, volume: 1952026000, adjClose: 3383.83, dayClose: [{ close: 3361.18, date: new Date('2013/10/21'), }, { close: 3366.93, date: new Date('2013/10/22'), }, { close: 3346.05, date: new Date('2013/10/23'), }, { close: 3362.38, date: new Date('2013/10/24'), }, { close: 3383.83, date: new Date('2013/10/25'), }], }, { date: new Date('2013/10/14'), open: { value: 3213.38, diff: -2.39, }, high: { value: 3355.63, diff: 115.52, }, low: { value: 3212.05, diff: 94.36, }, close: { value: 3353.88, diff: 120.05, }, volume: 1772590000, adjClose: 3353.88, dayClose: [{ close: 3256.02, date: new Date('2013/10/14'), }, { close: 3244.66, date: new Date('2013/10/15'), }, { close: 3281.67, date: new Date('2013/10/16'), }, { close: 3301.28, date: new Date('2013/10/17'), }, { close: 3353.88, date: new Date('2013/10/18'), }], }, { date: new Date('2013/10/07'), open: { value: 3215.77, diff: 25.37, }, high: { value: 3240.11, diff: -16.6, }, low: { value: 3117.69, diff: -69.17, }, close: { value: 3233.83, diff: -8.74, }, volume: 1891806000, adjClose: 3233.83, dayClose: [{ close: 3215.69, date: new Date('2013/10/07'), }, { close: 3153.87, date: new Date('2013/10/08'), }, { close: 3142.54, date: new Date('2013/10/09'), }, { close: 3210.84, date: new Date('2013/10/10'), }, { close: 3233.83, date: new Date('2013/10/11'), }], }, { date: new Date('2013/09/30'), open: { value: 3190.4, diff: -51.92, }, high: { value: 3256.71, diff: 13.28, }, low: { value: 3186.86, diff: -15.89, }, close: { value: 3242.57, diff: 12.27, }, volume: 1793200000, adjClose: 3242.57, dayClose: [{ close: 3218.2, date: new Date('2013/09/30'), }, { close: 3253.05, date: new Date('2013/10/01'), }, { close: 3253.26, date: new Date('2013/10/02'), }, { close: 3213.83, date: new Date('2013/10/03'), }, { close: 3242.57, date: new Date('2013/10/04'), }], }, { date: new Date('2013/09/23'), open: { value: 3242.32, diff: 39.13, }, high: { value: 3243.43, diff: -5.09, }, low: { value: 3202.75, diff: 39.62, }, close: { value: 3230.3, diff: 5.57, }, volume: 1775808000, adjClose: 3230.3, dayClose: [{ close: 3219.34, date: new Date('2013/09/23'), }, { close: 3218.66, date: new Date('2013/09/24'), }, { close: 3208.55, date: new Date('2013/09/25'), }, { close: 3234.04, date: new Date('2013/09/26'), }, { close: 3230.3, date: new Date('2013/09/27'), }], }, { date: new Date('2013/09/16'), open: { value: 3203.19, diff: 57.17, }, high: { value: 3248.52, diff: 59.28, }, low: { value: 3163.13, diff: 17.11, }, close: { value: 3224.73, diff: 46.45, }, volume: 1839474000, adjClose: 3224.73, dayClose: [{ close: 3168.69, date: new Date('2013/09/16'), }, { close: 3190.83, date: new Date('2013/09/17'), }, { close: 3231.31, date: new Date('2013/09/18'), }, { close: 3237.61, date: new Date('2013/09/19'), }, { close: 3224.73, date: new Date('2013/09/20'), }], }, { date: new Date('2013/09/09'), open: { value: 3146.02, diff: 48.37, }, high: { value: 3189.24, diff: 40.25, }, low: { value: 3146.02, diff: 68.89, }, close: { value: 3178.28, diff: 44.9, }, volume: 1668658000, adjClose: 3178.28, dayClose: [{ close: 3169.93, date: new Date('2013/09/09'), }, { close: 3185.07, date: new Date('2013/09/10'), }, { close: 3179.86, date: new Date('2013/09/11'), }, { close: 3175.57, date: new Date('2013/09/12'), }, { close: 3178.28, date: new Date('2013/09/13'), }], }, { date: new Date('2013/09/03'), open: { value: 3097.65, diff: -29.36, }, high: { value: 3148.99, diff: 1.12, }, low: { value: 3077.13, diff: 23.87, }, close: { value: 3133.38, diff: 59.57, }, volume: 1670570000, adjClose: 3133.38, dayClose: [{ close: 3091.76, date: new Date('2013/09/03'), }, { close: 3124.54, date: new Date('2013/09/04'), }, { close: 3129.94, date: new Date('2013/09/05'), }, { close: 3133.38, date: new Date('2013/09/06'), }], }, { date: new Date('2013/08/26'), open: { value: 3127.01, diff: 52.63, }, high: { value: 3147.87, diff: 20.82, }, low: { value: 3053.26, diff: -8.16, }, close: { value: 3073.81, diff: -50.46, }, volume: 1417628000, adjClose: 3073.81, dayClose: [{ close: 3122.67, date: new Date('2013/08/26'), }, { close: 3059.58, date: new Date('2013/08/27'), }, { close: 3072.17, date: new Date('2013/08/28'), }, { close: 3093.36, date: new Date('2013/08/29'), }, { close: 3073.81, date: new Date('2013/08/30'), }], }, { date: new Date('2013/08/19'), open: { value: 3074.38, diff: -32.68, }, high: { value: 3127.05, diff: -22.19, }, low: { value: 3061.42, diff: -6.65, }, close: { value: 3124.27, diff: 50.36, }, volume: 1305026000, adjClose: 3124.27, dayClose: [{ close: 3069.76, date: new Date('2013/08/19'), }, { close: 3082.17, date: new Date('2013/08/20'), }, { close: 3071.47, date: new Date('2013/08/21'), }, { close: 3101.82, date: new Date('2013/08/22'), }, { close: 3124.27, date: new Date('2013/08/23'), }], }, { date: new Date('2013/08/12'), open: { value: 3107.06, diff: -29.71, }, high: { value: 3149.24, diff: 3.99, }, low: { value: 3068.07, diff: -28.34, }, close: { value: 3073.91, diff: -44.66, }, volume: 1563892000, adjClose: 3073.91, dayClose: [{ close: 3125.93, date: new Date('2013/08/12'), }, { close: 3141.06, date: new Date('2013/08/13'), }, { close: 3129.45, date: new Date('2013/08/14'), }, { close: 3076.23, date: new Date('2013/08/15'), }, { close: 3073.91, date: new Date('2013/08/16'), }], }, { date: new Date('2013/08/05'), open: { value: 3136.77, diff: 69.29, }, high: { value: 3145.25, diff: 1.73, }, low: { value: 3096.41, diff: 33.5, }, close: { value: 3118.57, diff: -24.95, }, volume: 1565072000, adjClose: 3118.57, dayClose: [{ close: 3143.19, date: new Date('2013/08/05'), }, { close: 3122.2, date: new Date('2013/08/06'), }, { close: 3118.69, date: new Date('2013/08/07'), }, { close: 3130.13, date: new Date('2013/08/08'), }, { close: 3118.57, date: new Date('2013/08/09'), }], }, { date: new Date('2013/07/29'), open: { value: 3067.48, diff: 5.98, }, high: { value: 3143.52, diff: 67.29, }, low: { value: 3062.91, diff: 33.84, }, close: { value: 3143.52, diff: 67.29, }, volume: 1759648000, adjClose: 3143.52, dayClose: [{ close: 3068.95, date: new Date('2013/07/29'), }, { close: 3085.33, date: new Date('2013/07/30'), }, { close: 3090.19, date: new Date('2013/07/31'), }, { close: 3126.3, date: new Date('2013/08/01'), }, { close: 3143.52, date: new Date('2013/08/02'), }], }, { date: new Date('2013/07/22'), open: { value: 3061.5, diff: -15.52, }, high: { value: 3076.23, diff: -14.98, }, low: { value: 3029.07, diff: -6.92, }, close: { value: 3076.23, diff: 31.3, }, volume: 1796810000, adjClose: 3076.23, dayClose: [{ close: 3055.23, date: new Date('2013/07/22'), }, { close: 3031.4, date: new Date('2013/07/23'), }, { close: 3041.16, date: new Date('2013/07/24'), }, { close: 3061.67, date: new Date('2013/07/25'), }, { close: 3076.23, date: new Date('2013/07/26'), }], }, { date: new Date('2013/07/15'), open: { value: 3077.02, diff: 100.41, }, high: { value: 3091.21, diff: 12.14, }, low: { value: 3035.99, diff: 80.62, }, close: { value: 3044.93, diff: -34.14, }, volume: 1621772000, adjClose: 3044.93, dayClose: [{ close: 3079.85, date: new Date('2013/07/15'), }, { close: 3077.47, date: new Date('2013/07/16'), }, { close: 3085.28, date: new Date('2013/07/17'), }, { close: 3077.82, date: new Date('2013/07/18'), }, { close: 3044.93, date: new Date('2013/07/19'), }], }, { date: new Date('2013/07/08'), open: { value: 2976.61, diff: 43.13, }, high: { value: 3079.07, diff: 115.25, }, low: { value: 2955.37, diff: 41.89, }, close: { value: 3079.07, diff: 115.85, }, volume: 1616522000, adjClose: 3079.07, dayClose: [{ close: 2966.13, date: new Date('2013/07/08'), }, { close: 2984.32, date: new Date('2013/07/09'), }, { close: 3000.66, date: new Date('2013/07/10'), }, { close: 3059.46, date: new Date('2013/07/11'), }, { close: 3079.07, date: new Date('2013/07/12'), }], }, { date: new Date('2013/07/01'), open: { value: 2933.48, diff: 80.83, }, high: { value: 2963.82, diff: 36.33, }, low: { value: 2913.48, diff: 88.3, }, close: { value: 2963.22, diff: 53.62, }, volume: 1365580000, adjClose: 2963.22, dayClose: [{ close: 2927.35, date: new Date('2013/07/01'), }, { close: 2929.63, date: new Date('2013/07/02'), }, { close: 2941.41, date: new Date('2013/07/03'), }, { close: 2963.22, date: new Date('2013/07/05'), }], }, { date: new Date('2013/06/24'), open: { value: 2852.65, diff: -114.68, }, high: { value: 2927.49, diff: -74.4, }, low: { value: 2825.18, diff: -28.51, }, close: { value: 2909.6, diff: 31.66, }, volume: 2135946000, adjClose: 2909.6, dayClose: [{ close: 2848.2, date: new Date('2013/06/24'), }, { close: 2866.5, date: new Date('2013/06/25'), }, { close: 2893.85, date: new Date('2013/06/26'), }, { close: 2906.84, date: new Date('2013/06/27'), }, { close: 2909.6, date: new Date('2013/06/28'), }], }, { date: new Date('2013/06/17'), open: { value: 2967.33, diff: -27.7, }, high: { value: 3001.89, diff: -2.78, }, low: { value: 2853.69, diff: -60.51, }, close: { value: 2877.94, diff: -65.92, }, volume: 1973904000, adjClose: 2877.94, dayClose: [{ close: 2971.26, date: new Date('2013/06/17'), }, { close: 2996.09, date: new Date('2013/06/18'), }, { close: 2959.5, date: new Date('2013/06/19'), }, { close: 2890.33, date: new Date('2013/06/20'), }, { close: 2877.94, date: new Date('2013/06/21'), }], }, { date: new Date('2013/06/10'), open: { value: 2995.03, diff: 10.44, }, high: { value: 3004.67, diff: -2.63, }, low: { value: 2914.2, diff: 2.26, }, close: { value: 2943.86, diff: -47.01, }, volume: 1557972000, adjClose: 2943.86, dayClose: [{ close: 2990.49, date: new Date('2013/06/10'), }, { close: 2959.84, date: new Date('2013/06/11'), }, { close: 2926.14, date: new Date('2013/06/12'), }, { close: 2962.9, date: new Date('2013/06/13'), }, { close: 2943.86, date: new Date('2013/06/14'), }], }, { date: new Date('2013/06/03'), open: { value: 2984.59, diff: -39.79, }, high: { value: 3007.3, diff: -29.7, }, low: { value: 2911.94, diff: -67.96, }, close: { value: 2990.87, diff: 9.11, }, volume: 1837828000, adjClose: 2990.87, dayClose: [{ close: 2990.79, date: new Date('2013/06/03'), }, { close: 2973.69, date: new Date('2013/06/04'), }, { close: 2937.14, date: new Date('2013/06/05'), }, { close: 2950.3, date: new Date('2013/06/06'), }, { close: 2990.87, date: new Date('2013/06/07'), }], }, { date: new Date('2013/05/28'), open: { value: 3024.38, diff: 5.1, }, high: { value: 3037, diff: -16.51, }, low: { value: 2979.9, diff: 14.6, }, close: { value: 2981.76, diff: -9.26, }, volume: 1812077500, adjClose: 2981.76, dayClose: [{ close: 3011.94, date: new Date('2013/05/28'), }, { close: 2994.82, date: new Date('2013/05/29'), }, { close: 3011.83, date: new Date('2013/05/30'), }, { close: 2981.76, date: new Date('2013/05/31'), }], }, { date: new Date('2013/05/20'), open: { value: 3019.28, diff: 46.32, }, high: { value: 3053.51, diff: 24.55, }, low: { value: 2965.3, diff: -6.43, }, close: { value: 2991.02, diff: -37.94, }, volume: 1794250000, adjClose: 2991.02, dayClose: [{ close: 3020.97, date: new Date('2013/05/20'), }, { close: 3026.45, date: new Date('2013/05/21'), }, { close: 2999.13, date: new Date('2013/05/22'), }, { close: 2991.45, date: new Date('2013/05/23'), }, { close: 2991.02, date: new Date('2013/05/24'), }], }, { date: new Date('2013/05/13'), open: { value: 2972.96, diff: 24.06, }, high: { value: 3028.96, diff: 47.94, }, low: { value: 2971.73, diff: 29.48, }, close: { value: 3028.96, diff: 47.94, }, volume: 1810862000, adjClose: 3028.96, dayClose: [{ close: 2982.09, date: new Date('2013/05/13'), }, { close: 2996.05, date: new Date('2013/05/14'), }, { close: 3002.62, date: new Date('2013/05/15'), }, { close: 2999.34, date: new Date('2013/05/16'), }, { close: 3028.96, date: new Date('2013/05/17'), }], }, { date: new Date('2013/05/06'), open: { value: 2948.9, diff: 99.36, }, high: { value: 2981.02, diff: 28.8, }, low: { value: 2942.25, diff: 93.21, }, close: { value: 2981.02, diff: 36.43, }, volume: 1696512000, adjClose: 2981.02, dayClose: [{ close: 2955.36, date: new Date('2013/05/06'), }, { close: 2952.88, date: new Date('2013/05/07'), }, { close: 2968.24, date: new Date('2013/05/08'), }, { close: 2961.12, date: new Date('2013/05/09'), }, { close: 2981.02, date: new Date('2013/05/10'), }], }, { date: new Date('2013/04/29'), open: { value: 2849.54, diff: 57.77, }, high: { value: 2952.22, diff: 91.53, }, low: { value: 2849.04, diff: 68.22, }, close: { value: 2944.59, diff: 104.04, }, volume: 1793206000, adjClose: 2944.59, dayClose: [{ close: 2866.95, date: new Date('2013/04/29'), }, { close: 2887.44, date: new Date('2013/04/30'), }, { close: 2873.35, date: new Date('2013/05/01'), }, { close: 2911.14, date: new Date('2013/05/02'), }, { close: 2944.59, date: new Date('2013/05/03'), }], }, { date: new Date('2013/04/22'), open: { value: 2791.77, diff: -49.49, }, high: { value: 2860.69, diff: 11.53, }, low: { value: 2780.82, diff: 49.85, }, close: { value: 2840.55, diff: 60.09, }, volume: 1757180000, adjClose: 2840.55, dayClose: [{ close: 2810.07, date: new Date('2013/04/22'), }, { close: 2835.37, date: new Date('2013/04/23'), }, { close: 2834.12, date: new Date('2013/04/24'), }, { close: 2848.66, date: new Date('2013/04/25'), }, { close: 2840.55, date: new Date('2013/04/26'), }], }, { date: new Date('2013/04/15'), open: { value: 2841.26, diff: 68.96, }, high: { value: 2849.16, diff: -14.5, }, low: { value: 2730.97, diff: -33.37, }, close: { value: 2780.46, diff: -76.02, }, volume: 1740460000, adjClose: 2780.46, dayClose: [{ close: 2797.47, date: new Date('2013/04/15'), }, { close: 2838.41, date: new Date('2013/04/16'), }, { close: 2781.98, date: new Date('2013/04/17'), }, { close: 2741.95, date: new Date('2013/04/18'), }, { close: 2780.46, date: new Date('2013/04/19'), }], }, { date: new Date('2013/04/08'), open: { value: 2772.3, diff: -47.48, }, high: { value: 2863.66, diff: 35.02, }, low: { value: 2764.34, diff: 20.08, }, close: { value: 2856.48, diff: 84.73, }, volume: 1578374000, adjClose: 2856.48, dayClose: [{ close: 2786.13, date: new Date('2013/04/08'), }, { close: 2804.67, date: new Date('2013/04/09'), }, { close: 2859.21, date: new Date('2013/04/10'), }, { close: 2859.07, date: new Date('2013/04/11'), }, { close: 2856.48, date: new Date('2013/04/12'), }], }, { date: new Date('2013/04/01'), open: { value: 2819.78, diff: 9.03, }, high: { value: 2828.64, diff: 7.97, }, low: { value: 2744.26, diff: -34.52, }, close: { value: 2771.75, diff: -46.94, }, volume: 1589176000, adjClose: 2771.75, dayClose: [{ close: 2797.07, date: new Date('2013/04/01'), }, { close: 2820.62, date: new Date('2013/04/02'), }, { close: 2795.04, date: new Date('2013/04/03'), }, { close: 2794.92, date: new Date('2013/04/04'), }, { close: 2771.75, date: new Date('2013/04/05'), }], }, { date: new Date('2013/03/25'), open: { value: 2810.75, diff: 39.22, }, high: { value: 2820.67, diff: 9.19, }, low: { value: 2778.78, diff: 15.66, }, close: { value: 2818.69, diff: 17.88, }, volume: 1541860000, adjClose: 2818.69, dayClose: [{ close: 2789.45, date: new Date('2013/03/25'), }, { close: 2806.5, date: new Date('2013/03/26'), }, { close: 2809.98, date: new Date('2013/03/27'), }, { close: 2818.69, date: new Date('2013/03/28'), }], }, { date: new Date('2013/03/18'), open: { value: 2771.53, diff: -26.6, }, high: { value: 2811.48, diff: -0.81, }, low: { value: 2763.12, diff: -24.6, }, close: { value: 2800.81, diff: 1.4, }, volume: 1642786000, adjClose: 2800.81, dayClose: [{ close: 2792.3, date: new Date('2013/03/18'), }, { close: 2787.27, date: new Date('2013/03/19'), }, { close: 2805.91, date: new Date('2013/03/20'), }, { close: 2774.85, date: new Date('2013/03/21'), }, { close: 2800.81, date: new Date('2013/03/22'), }], }, { date: new Date('2013/03/11'), open: { value: 2798.13, diff: 59.92, }, high: { value: 2812.29, diff: -0.44, }, low: { value: 2787.72, diff: 52.8, }, close: { value: 2799.41, diff: -4.7, }, volume: 1767280000, adjClose: 2799.41, dayClose: [{ close: 2811.86, date: new Date('2013/03/11'), }, { close: 2800.81, date: new Date('2013/03/12'), }, { close: 2798.68, date: new Date('2013/03/13'), }, { close: 2807.3, date: new Date('2013/03/14'), }, { close: 2799.41, date: new Date('2013/03/15'), }], }, { date: new Date('2013/03/04'), open: { value: 2738.21, diff: -17.98, }, high: { value: 2812.73, diff: 48.77, }, low: { value: 2734.92, diff: 45.09, }, close: { value: 2804.11, diff: 56.36, }, volume: 1732232000, adjClose: 2804.11, dayClose: [{ close: 2759.53, date: new Date('2013/03/04'), }, { close: 2799.25, date: new Date('2013/03/05'), }, { close: 2792.56, date: new Date('2013/03/06'), }, { close: 2799.49, date: new Date('2013/03/07'), }, { close: 2804.11, date: new Date('2013/03/08'), }], }, { date: new Date('2013/02/25'), open: { value: 2756.19, diff: -14.51, }, high: { value: 2763.96, diff: -18.9, }, low: { value: 2689.83, diff: -10.49, }, close: { value: 2747.75, diff: 10.47, }, volume: 1879756000, adjClose: 2747.75, dayClose: [{ close: 2700.97, date: new Date('2013/02/25'), }, { close: 2713.02, date: new Date('2013/02/26'), }, { close: 2741.26, date: new Date('2013/02/27'), }, { close: 2738.58, date: new Date('2013/02/28'), }, { close: 2747.75, date: new Date('2013/03/01'), }], }, { date: new Date('2013/02/19'), open: { value: 2770.7, diff: -3.74, }, high: { value: 2782.86, diff: -0.33, }, low: { value: 2700.32, diff: -56.11, }, close: { value: 2737.28, diff: -27.39, }, volume: 1869942500, adjClose: 2737.28, dayClose: [{ close: 2782.86, date: new Date('2013/02/19'), }, { close: 2739.99, date: new Date('2013/02/20'), }, { close: 2711.51, date: new Date('2013/02/21'), }, { close: 2737.28, date: new Date('2013/02/22'), }], }, { date: new Date('2013/02/11'), open: { value: 2774.44, diff: 25.04, }, high: { value: 2783.19, diff: 3.06, }, low: { value: 2756.43, diff: 40.92, }, close: { value: 2764.67, diff: -10.89, }, volume: 1788838000, adjClose: 2764.67, dayClose: [{ close: 2774.64, date: new Date('2013/02/11'), }, { close: 2762.62, date: new Date('2013/02/12'), }, { close: 2773.77, date: new Date('2013/02/13'), }, { close: 2771.43, date: new Date('2013/02/14'), }, { close: 2764.67, date: new Date('2013/02/15'), }], }, { date: new Date('2013/02/04'), open: { value: 2749.4, diff: 11.78, }, high: { value: 2780.13, diff: 11.5, }, low: { value: 2715.51, diff: -7.01, }, close: { value: 2775.56, diff: 11.6, }, volume: 1960002000, adjClose: 2775.56, dayClose: [{ close: 2715.68, date: new Date('2013/02/04'), }, { close: 2754.99, date: new Date('2013/02/05'), }, { close: 2746.35, date: new Date('2013/02/06'), }, { close: 2746.5, date: new Date('2013/02/07'), }, { close: 2775.56, date: new Date('2013/02/08'), }], }, { date: new Date('2013/01/28'), open: { value: 2737.62, diff: -6.65, }, high: { value: 2768.63, diff: -0.68, }, low: { value: 2722.52, diff: 2.69, }, close: { value: 2763.96, diff: 27.23, }, volume: 2040876000, adjClose: 2763.96, dayClose: [{ close: 2742.43, date: new Date('2013/01/28'), }, { close: 2743.58, date: new Date('2013/01/29'), }, { close: 2738.71, date: new Date('2013/01/30'), }, { close: 2731.53, date: new Date('2013/01/31'), }, { close: 2763.96, date: new Date('2013/02/01'), }], }, { date: new Date('2013/01/22'), open: { value: 2744.27, diff: 10.81, }, high: { value: 2769.31, diff: 12.63, }, low: { value: 2719.83, diff: 9.03, }, close: { value: 2736.73, diff: -6.51, }, volume: 1864040000, adjClose: 2736.73, dayClose: [{ close: 2746.19, date: new Date('2013/01/22'), }, { close: 2762.17, date: new Date('2013/01/23'), }, { close: 2723.53, date: new Date('2013/01/24'), }, { close: 2736.73, date: new Date('2013/01/25'), }], }, { date: new Date('2013/01/14'), open: { value: 2733.46, diff: 20.02, }, high: { value: 2756.68, diff: 7.32, }, low: { value: 2710.8, diff: 7.05, }, close: { value: 2743.24, diff: -5.02, }, volume: 1809576000, adjClose: 2743.24, dayClose: [{ close: 2735.7, date: new Date('2013/01/14'), }, { close: 2722.98, date: new Date('2013/01/15'), }, { close: 2734.73, date: new Date('2013/01/16'), }, { close: 2747.15, date: new Date('2013/01/17'), }, { close: 2743.24, date: new Date('2013/01/18'), }], }, { date: new Date('2013/01/07'), open: { value: 2713.44, diff: -14.23, }, high: { value: 2749.36, diff: -1.46, }, low: { value: 2703.75, diff: -12.29, }, close: { value: 2748.26, diff: 23.77, }, volume: 1741254000, adjClose: 2748.26, dayClose: [{ close: 2724.22, date: new Date('2013/01/07'), }, { close: 2718.72, date: new Date('2013/01/08'), }, { close: 2727.65, date: new Date('2013/01/09'), }, { close: 2744.18, date: new Date('2013/01/10'), }, { close: 2748.26, date: new Date('2013/01/11'), }], }];
window.exports = window.exports || {}; window.config = { transpiler: 'ts', typescriptOptions: { module: 'system', emitDecoratorMetadata: true, experimentalDecorators: true, jsx: 'react', }, meta: { 'react': { 'esModule': true, }, 'typescript': { 'exports': 'ts', }, 'devextreme/time_zone_utils.js': { 'esModule': true, }, 'devextreme/localization.js': { 'esModule': true, }, 'devextreme/viz/palette.js': { 'esModule': true, }, 'openai': { 'esModule': true, }, }, paths: { 'npm:': 'https://cdn.jsdelivr.net/npm/', 'bundles:': '../../../../bundles/', 'externals:': '../../../../bundles/externals/', }, defaultExtension: 'js', map: { 'ts': 'npm:plugin-typescript@8.0.0/lib/plugin.js', 'typescript': 'npm:typescript@4.2.4/lib/typescript.js', 'jszip': 'npm:jszip@3.10.1/dist/jszip.min.js', 'react': 'npm:react@17.0.2/umd/react.development.js', 'react-dom': 'npm:react-dom@17.0.2/umd/react-dom.development.js', 'prop-types': 'npm:prop-types/prop-types.js', 'rrule': 'npm:rrule@2.6.4/dist/es5/rrule.js', 'luxon': 'npm:luxon@3.4.4/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign', 'devextreme': 'npm:devextreme@25.1.4/cjs', 'devextreme-react': 'npm:devextreme-react@25.1.4/cjs', 'devextreme-quill': 'npm:devextreme-quill@1.7.3/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.2.19/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.62/dist/dx-gantt.js', 'inferno': 'npm:inferno@8.2.3/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@8.2.3/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras/dist/inferno-extras.min.js', '@preact/signals-core': 'npm:@preact/signals-core@1.8.0/dist/signals-core.min.js', 'devextreme-cldr-data': 'npm:devextreme-cldr-data@1.0.3', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js', // Prettier 'prettier/standalone': 'npm:prettier@2.8.8/standalone.js', 'prettier/parser-html': 'npm:prettier@2.8.8/parser-html.js', }, packages: { 'devextreme': { defaultExtension: 'js', }, 'devextreme-react': { main: 'index.js', }, 'devextreme-react/common': { main: 'index.js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/common/core/events/utils': { main: 'index', }, 'devextreme/localization/messages': { format: 'json', defaultExtension: 'json', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', ], babelOptions: { sourceMaps: false, stage0: true, react: true, }, }; System.config(window.config);
import React from 'react'; import Sparkline, { Size, Tooltip } from 'devextreme-react/sparkline'; const ChartCell = (cellData) => ( <div className="chart-cell"> <Sparkline dataSource={cellData.data.dayClose} argumentField="date" valueField="close" type="line" showMinMax={true} minColor="#f00" maxColor="#2ab71b" pointSize={6} > <Size width={290} height={40} /> <Tooltip enabled={false} /> </Sparkline> </div> ); export default ChartCell;
import React from 'react'; import { formatNumber } from 'devextreme-react/common/core/localization'; const getGridCellData = (gridData) => gridData.data[gridData.column.caption.toLowerCase()]; const DiffCell = (cellData) => { const gridCellData = getGridCellData(cellData); return ( <div className={gridCellData.diff > 0 ? 'inc' : 'dec'}> <div className="current-value"> {formatNumber(gridCellData.value, { type: 'currency', currency: 'USD', precision: 2 })} </div> <div className="diff">{Math.abs(gridCellData.diff).toFixed(2)}</div> </div> ); }; export default DiffCell;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render(<App />, document.getElementById('app'));
export const weekData = [ { date: new Date('2013/12/23'), open: { value: 3563.19, diff: 92.76, }, high: { value: 3591.31, diff: 50.34, }, low: { value: 3552.3, diff: 129.44, }, close: { value: 3574.02, diff: 42.83, }, volume: 1254340000, adjClose: 3574.02, dayClose: [ { close: 3569.4, date: new Date('2013/12/23'), }, { close: 3572.8, date: new Date('2013/12/24'), }, { close: 3584.58, date: new Date('2013/12/26'), }, { close: 3574.02, date: new Date('2013/12/27'), }, ], }, { date: new Date('2013/12/16'), open: { value: 3470.43, diff: -45.24, }, high: { value: 3540.97, diff: 16.96, }, low: { value: 3422.86, diff: -26.88, }, close: { value: 3531.19, diff: 74.79, }, volume: 2261352000, adjClose: 3531.19, dayClose: [ { close: 3475.79, date: new Date('2013/12/16'), }, { close: 3469.32, date: new Date('2013/12/17'), }, { close: 3509.63, date: new Date('2013/12/18'), }, { close: 3498.63, date: new Date('2013/12/19'), }, { close: 3531.19, date: new Date('2013/12/20'), }, ], }, { date: new Date('2013/12/09'), open: { value: 3515.67, diff: 19.48, }, high: { value: 3524.01, diff: 12.91, }, low: { value: 3449.74, diff: -3.48, }, close: { value: 3456.4, diff: -47.86, }, volume: 1802822000, adjClose: 3456.4, dayClose: [ { close: 3516.17, date: new Date('2013/12/09'), }, { close: 3514.2, date: new Date('2013/12/10'), }, { close: 3468.99, date: new Date('2013/12/11'), }, { close: 3460.29, date: new Date('2013/12/12'), }, { close: 3456.4, date: new Date('2013/12/13'), }, ], }, { date: new Date('2013/12/02'), open: { value: 3496.19, diff: 62.27, }, high: { value: 3511.1, diff: 15.13, }, low: { value: 3453.22, diff: 32.86, }, close: { value: 3504.26, diff: 16.44, }, volume: 1810088000, adjClose: 3504.26, dayClose: [ { close: 3481.15, date: new Date('2013/12/02'), }, { close: 3479.34, date: new Date('2013/12/03'), }, { close: 3483.01, date: new Date('2013/12/04'), }, { close: 3477.73, date: new Date('2013/12/05'), }, { close: 3504.26, date: new Date('2013/12/06'), }, ], }, { date: new Date('2013/11/25'), open: { value: 3433.92, diff: 10.45, }, high: { value: 3495.97, diff: 66.77, }, low: { value: 3420.36, diff: 61.05, }, close: { value: 3487.82, diff: 65.8, }, volume: 1508490000, adjClose: 3487.82, dayClose: [ { close: 3427.49, date: new Date('2013/11/25'), }, { close: 3445.76, date: new Date('2013/11/26'), }, { close: 3470.48, date: new Date('2013/11/27'), }, { close: 3487.82, date: new Date('2013/11/29'), }, ], }, { date: new Date('2013/11/18'), open: { value: 3423.47, diff: 63.64, }, high: { value: 3429.2, diff: 6.62, }, low: { value: 3359.31, diff: 12.9, }, close: { value: 3422.02, diff: -0.56, }, volume: 1742680000, adjClose: 3422.02, dayClose: [ { close: 3388.87, date: new Date('2013/11/18'), }, { close: 3378.13, date: new Date('2013/11/19'), }, { close: 3367.17, date: new Date('2013/11/20'), }, { close: 3402.74, date: new Date('2013/11/21'), }, { close: 3422.02, date: new Date('2013/11/22'), }, ], }, { date: new Date('2013/11/11'), open: { value: 3359.83, diff: -28.87, }, high: { value: 3422.58, diff: 21.31, }, low: { value: 3346.41, diff: 28.01, }, close: { value: 3422.58, diff: 55.74, }, volume: 1812784000, adjClose: 3422.58, dayClose: [ { close: 3362.98, date: new Date('2013/11/11'), }, { close: 3365.23, date: new Date('2013/11/12'), }, { close: 3405.56, date: new Date('2013/11/13'), }, { close: 3415.14, date: new Date('2013/11/14'), }, { close: 3422.58, date: new Date('2013/11/15'), }, ], }, { date: new Date('2013/11/04'), open: { value: 3388.7, diff: 6.52, }, high: { value: 3401.27, diff: -7.01, }, low: { value: 3318.4, diff: -46.25, }, close: { value: 3366.84, diff: -12.92, }, volume: 2011546000, adjClose: 3366.84, dayClose: [ { close: 3384.75, date: new Date('2013/11/04'), }, { close: 3388.82, date: new Date('2013/11/05'), }, { close: 3385.38, date: new Date('2013/11/06'), }, { close: 3321.41, date: new Date('2013/11/07'), }, { close: 3366.84, date: new Date('2013/11/08'), }, ], }, { date: new Date('2013/10/28'), open: { value: 3382.18, diff: 20.42, }, high: { value: 3408.28, diff: 8.24, }, low: { value: 3364.65, diff: 34.45, }, close: { value: 3379.76, diff: -4.07, }, volume: 1962860000, adjClose: 3379.76, dayClose: [ { close: 3382.68, date: new Date('2013/10/28'), }, { close: 3391.75, date: new Date('2013/10/29'), }, { close: 3385.38, date: new Date('2013/10/30'), }, { close: 3377.73, date: new Date('2013/10/31'), }, { close: 3379.76, date: new Date('2013/11/01'), }, ], }, { date: new Date('2013/10/21'), open: { value: 3361.76, diff: 148.38, }, high: { value: 3400.04, diff: 44.41, }, low: { value: 3330.2, diff: 118.15, }, close: { value: 3383.83, diff: 29.95, }, volume: 1952026000, adjClose: 3383.83, dayClose: [ { close: 3361.18, date: new Date('2013/10/21'), }, { close: 3366.93, date: new Date('2013/10/22'), }, { close: 3346.05, date: new Date('2013/10/23'), }, { close: 3362.38, date: new Date('2013/10/24'), }, { close: 3383.83, date: new Date('2013/10/25'), }, ], }, { date: new Date('2013/10/14'), open: { value: 3213.38, diff: -2.39, }, high: { value: 3355.63, diff: 115.52, }, low: { value: 3212.05, diff: 94.36, }, close: { value: 3353.88, diff: 120.05, }, volume: 1772590000, adjClose: 3353.88, dayClose: [ { close: 3256.02, date: new Date('2013/10/14'), }, { close: 3244.66, date: new Date('2013/10/15'), }, { close: 3281.67, date: new Date('2013/10/16'), }, { close: 3301.28, date: new Date('2013/10/17'), }, { close: 3353.88, date: new Date('2013/10/18'), }, ], }, { date: new Date('2013/10/07'), open: { value: 3215.77, diff: 25.37, }, high: { value: 3240.11, diff: -16.6, }, low: { value: 3117.69, diff: -69.17, }, close: { value: 3233.83, diff: -8.74, }, volume: 1891806000, adjClose: 3233.83, dayClose: [ { close: 3215.69, date: new Date('2013/10/07'), }, { close: 3153.87, date: new Date('2013/10/08'), }, { close: 3142.54, date: new Date('2013/10/09'), }, { close: 3210.84, date: new Date('2013/10/10'), }, { close: 3233.83, date: new Date('2013/10/11'), }, ], }, { date: new Date('2013/09/30'), open: { value: 3190.4, diff: -51.92, }, high: { value: 3256.71, diff: 13.28, }, low: { value: 3186.86, diff: -15.89, }, close: { value: 3242.57, diff: 12.27, }, volume: 1793200000, adjClose: 3242.57, dayClose: [ { close: 3218.2, date: new Date('2013/09/30'), }, { close: 3253.05, date: new Date('2013/10/01'), }, { close: 3253.26, date: new Date('2013/10/02'), }, { close: 3213.83, date: new Date('2013/10/03'), }, { close: 3242.57, date: new Date('2013/10/04'), }, ], }, { date: new Date('2013/09/23'), open: { value: 3242.32, diff: 39.13, }, high: { value: 3243.43, diff: -5.09, }, low: { value: 3202.75, diff: 39.62, }, close: { value: 3230.3, diff: 5.57, }, volume: 1775808000, adjClose: 3230.3, dayClose: [ { close: 3219.34, date: new Date('2013/09/23'), }, { close: 3218.66, date: new Date('2013/09/24'), }, { close: 3208.55, date: new Date('2013/09/25'), }, { close: 3234.04, date: new Date('2013/09/26'), }, { close: 3230.3, date: new Date('2013/09/27'), }, ], }, { date: new Date('2013/09/16'), open: { value: 3203.19, diff: 57.17, }, high: { value: 3248.52, diff: 59.28, }, low: { value: 3163.13, diff: 17.11, }, close: { value: 3224.73, diff: 46.45, }, volume: 1839474000, adjClose: 3224.73, dayClose: [ { close: 3168.69, date: new Date('2013/09/16'), }, { close: 3190.83, date: new Date('2013/09/17'), }, { close: 3231.31, date: new Date('2013/09/18'), }, { close: 3237.61, date: new Date('2013/09/19'), }, { close: 3224.73, date: new Date('2013/09/20'), }, ], }, { date: new Date('2013/09/09'), open: { value: 3146.02, diff: 48.37, }, high: { value: 3189.24, diff: 40.25, }, low: { value: 3146.02, diff: 68.89, }, close: { value: 3178.28, diff: 44.9, }, volume: 1668658000, adjClose: 3178.28, dayClose: [ { close: 3169.93, date: new Date('2013/09/09'), }, { close: 3185.07, date: new Date('2013/09/10'), }, { close: 3179.86, date: new Date('2013/09/11'), }, { close: 3175.57, date: new Date('2013/09/12'), }, { close: 3178.28, date: new Date('2013/09/13'), }, ], }, { date: new Date('2013/09/03'), open: { value: 3097.65, diff: -29.36, }, high: { value: 3148.99, diff: 1.12, }, low: { value: 3077.13, diff: 23.87, }, close: { value: 3133.38, diff: 59.57, }, volume: 1670570000, adjClose: 3133.38, dayClose: [ { close: 3091.76, date: new Date('2013/09/03'), }, { close: 3124.54, date: new Date('2013/09/04'), }, { close: 3129.94, date: new Date('2013/09/05'), }, { close: 3133.38, date: new Date('2013/09/06'), }, ], }, { date: new Date('2013/08/26'), open: { value: 3127.01, diff: 52.63, }, high: { value: 3147.87, diff: 20.82, }, low: { value: 3053.26, diff: -8.16, }, close: { value: 3073.81, diff: -50.46, }, volume: 1417628000, adjClose: 3073.81, dayClose: [ { close: 3122.67, date: new Date('2013/08/26'), }, { close: 3059.58, date: new Date('2013/08/27'), }, { close: 3072.17, date: new Date('2013/08/28'), }, { close: 3093.36, date: new Date('2013/08/29'), }, { close: 3073.81, date: new Date('2013/08/30'), }, ], }, { date: new Date('2013/08/19'), open: { value: 3074.38, diff: -32.68, }, high: { value: 3127.05, diff: -22.19, }, low: { value: 3061.42, diff: -6.65, }, close: { value: 3124.27, diff: 50.36, }, volume: 1305026000, adjClose: 3124.27, dayClose: [ { close: 3069.76, date: new Date('2013/08/19'), }, { close: 3082.17, date: new Date('2013/08/20'), }, { close: 3071.47, date: new Date('2013/08/21'), }, { close: 3101.82, date: new Date('2013/08/22'), }, { close: 3124.27, date: new Date('2013/08/23'), }, ], }, { date: new Date('2013/08/12'), open: { value: 3107.06, diff: -29.71, }, high: { value: 3149.24, diff: 3.99, }, low: { value: 3068.07, diff: -28.34, }, close: { value: 3073.91, diff: -44.66, }, volume: 1563892000, adjClose: 3073.91, dayClose: [ { close: 3125.93, date: new Date('2013/08/12'), }, { close: 3141.06, date: new Date('2013/08/13'), }, { close: 3129.45, date: new Date('2013/08/14'), }, { close: 3076.23, date: new Date('2013/08/15'), }, { close: 3073.91, date: new Date('2013/08/16'), }, ], }, { date: new Date('2013/08/05'), open: { value: 3136.77, diff: 69.29, }, high: { value: 3145.25, diff: 1.73, }, low: { value: 3096.41, diff: 33.5, }, close: { value: 3118.57, diff: -24.95, }, volume: 1565072000, adjClose: 3118.57, dayClose: [ { close: 3143.19, date: new Date('2013/08/05'), }, { close: 3122.2, date: new Date('2013/08/06'), }, { close: 3118.69, date: new Date('2013/08/07'), }, { close: 3130.13, date: new Date('2013/08/08'), }, { close: 3118.57, date: new Date('2013/08/09'), }, ], }, { date: new Date('2013/07/29'), open: { value: 3067.48, diff: 5.98, }, high: { value: 3143.52, diff: 67.29, }, low: { value: 3062.91, diff: 33.84, }, close: { value: 3143.52, diff: 67.29, }, volume: 1759648000, adjClose: 3143.52, dayClose: [ { close: 3068.95, date: new Date('2013/07/29'), }, { close: 3085.33, date: new Date('2013/07/30'), }, { close: 3090.19, date: new Date('2013/07/31'), }, { close: 3126.3, date: new Date('2013/08/01'), }, { close: 3143.52, date: new Date('2013/08/02'), }, ], }, { date: new Date('2013/07/22'), open: { value: 3061.5, diff: -15.52, }, high: { value: 3076.23, diff: -14.98, }, low: { value: 3029.07, diff: -6.92, }, close: { value: 3076.23, diff: 31.3, }, volume: 1796810000, adjClose: 3076.23, dayClose: [ { close: 3055.23, date: new Date('2013/07/22'), }, { close: 3031.4, date: new Date('2013/07/23'), }, { close: 3041.16, date: new Date('2013/07/24'), }, { close: 3061.67, date: new Date('2013/07/25'), }, { close: 3076.23, date: new Date('2013/07/26'), }, ], }, { date: new Date('2013/07/15'), open: { value: 3077.02, diff: 100.41, }, high: { value: 3091.21, diff: 12.14, }, low: { value: 3035.99, diff: 80.62, }, close: { value: 3044.93, diff: -34.14, }, volume: 1621772000, adjClose: 3044.93, dayClose: [ { close: 3079.85, date: new Date('2013/07/15'), }, { close: 3077.47, date: new Date('2013/07/16'), }, { close: 3085.28, date: new Date('2013/07/17'), }, { close: 3077.82, date: new Date('2013/07/18'), }, { close: 3044.93, date: new Date('2013/07/19'), }, ], }, { date: new Date('2013/07/08'), open: { value: 2976.61, diff: 43.13, }, high: { value: 3079.07, diff: 115.25, }, low: { value: 2955.37, diff: 41.89, }, close: { value: 3079.07, diff: 115.85, }, volume: 1616522000, adjClose: 3079.07, dayClose: [ { close: 2966.13, date: new Date('2013/07/08'), }, { close: 2984.32, date: new Date('2013/07/09'), }, { close: 3000.66, date: new Date('2013/07/10'), }, { close: 3059.46, date: new Date('2013/07/11'), }, { close: 3079.07, date: new Date('2013/07/12'), }, ], }, { date: new Date('2013/07/01'), open: { value: 2933.48, diff: 80.83, }, high: { value: 2963.82, diff: 36.33, }, low: { value: 2913.48, diff: 88.3, }, close: { value: 2963.22, diff: 53.62, }, volume: 1365580000, adjClose: 2963.22, dayClose: [ { close: 2927.35, date: new Date('2013/07/01'), }, { close: 2929.63, date: new Date('2013/07/02'), }, { close: 2941.41, date: new Date('2013/07/03'), }, { close: 2963.22, date: new Date('2013/07/05'), }, ], }, { date: new Date('2013/06/24'), open: { value: 2852.65, diff: -114.68, }, high: { value: 2927.49, diff: -74.4, }, low: { value: 2825.18, diff: -28.51, }, close: { value: 2909.6, diff: 31.66, }, volume: 2135946000, adjClose: 2909.6, dayClose: [ { close: 2848.2, date: new Date('2013/06/24'), }, { close: 2866.5, date: new Date('2013/06/25'), }, { close: 2893.85, date: new Date('2013/06/26'), }, { close: 2906.84, date: new Date('2013/06/27'), }, { close: 2909.6, date: new Date('2013/06/28'), }, ], }, { date: new Date('2013/06/17'), open: { value: 2967.33, diff: -27.7, }, high: { value: 3001.89, diff: -2.78, }, low: { value: 2853.69, diff: -60.51, }, close: { value: 2877.94, diff: -65.92, }, volume: 1973904000, adjClose: 2877.94, dayClose: [ { close: 2971.26, date: new Date('2013/06/17'), }, { close: 2996.09, date: new Date('2013/06/18'), }, { close: 2959.5, date: new Date('2013/06/19'), }, { close: 2890.33, date: new Date('2013/06/20'), }, { close: 2877.94, date: new Date('2013/06/21'), }, ], }, { date: new Date('2013/06/10'), open: { value: 2995.03, diff: 10.44, }, high: { value: 3004.67, diff: -2.63, }, low: { value: 2914.2, diff: 2.26, }, close: { value: 2943.86, diff: -47.01, }, volume: 1557972000, adjClose: 2943.86, dayClose: [ { close: 2990.49, date: new Date('2013/06/10'), }, { close: 2959.84, date: new Date('2013/06/11'), }, { close: 2926.14, date: new Date('2013/06/12'), }, { close: 2962.9, date: new Date('2013/06/13'), }, { close: 2943.86, date: new Date('2013/06/14'), }, ], }, { date: new Date('2013/06/03'), open: { value: 2984.59, diff: -39.79, }, high: { value: 3007.3, diff: -29.7, }, low: { value: 2911.94, diff: -67.96, }, close: { value: 2990.87, diff: 9.11, }, volume: 1837828000, adjClose: 2990.87, dayClose: [ { close: 2990.79, date: new Date('2013/06/03'), }, { close: 2973.69, date: new Date('2013/06/04'), }, { close: 2937.14, date: new Date('2013/06/05'), }, { close: 2950.3, date: new Date('2013/06/06'), }, { close: 2990.87, date: new Date('2013/06/07'), }, ], }, { date: new Date('2013/05/28'), open: { value: 3024.38, diff: 5.1, }, high: { value: 3037, diff: -16.51, }, low: { value: 2979.9, diff: 14.6, }, close: { value: 2981.76, diff: -9.26, }, volume: 1812077500, adjClose: 2981.76, dayClose: [ { close: 3011.94, date: new Date('2013/05/28'), }, { close: 2994.82, date: new Date('2013/05/29'), }, { close: 3011.83, date: new Date('2013/05/30'), }, { close: 2981.76, date: new Date('2013/05/31'), }, ], }, { date: new Date('2013/05/20'), open: { value: 3019.28, diff: 46.32, }, high: { value: 3053.51, diff: 24.55, }, low: { value: 2965.3, diff: -6.43, }, close: { value: 2991.02, diff: -37.94, }, volume: 1794250000, adjClose: 2991.02, dayClose: [ { close: 3020.97, date: new Date('2013/05/20'), }, { close: 3026.45, date: new Date('2013/05/21'), }, { close: 2999.13, date: new Date('2013/05/22'), }, { close: 2991.45, date: new Date('2013/05/23'), }, { close: 2991.02, date: new Date('2013/05/24'), }, ], }, { date: new Date('2013/05/13'), open: { value: 2972.96, diff: 24.06, }, high: { value: 3028.96, diff: 47.94, }, low: { value: 2971.73, diff: 29.48, }, close: { value: 3028.96, diff: 47.94, }, volume: 1810862000, adjClose: 3028.96, dayClose: [ { close: 2982.09, date: new Date('2013/05/13'), }, { close: 2996.05, date: new Date('2013/05/14'), }, { close: 3002.62, date: new Date('2013/05/15'), }, { close: 2999.34, date: new Date('2013/05/16'), }, { close: 3028.96, date: new Date('2013/05/17'), }, ], }, { date: new Date('2013/05/06'), open: { value: 2948.9, diff: 99.36, }, high: { value: 2981.02, diff: 28.8, }, low: { value: 2942.25, diff: 93.21, }, close: { value: 2981.02, diff: 36.43, }, volume: 1696512000, adjClose: 2981.02, dayClose: [ { close: 2955.36, date: new Date('2013/05/06'), }, { close: 2952.88, date: new Date('2013/05/07'), }, { close: 2968.24, date: new Date('2013/05/08'), }, { close: 2961.12, date: new Date('2013/05/09'), }, { close: 2981.02, date: new Date('2013/05/10'), }, ], }, { date: new Date('2013/04/29'), open: { value: 2849.54, diff: 57.77, }, high: { value: 2952.22, diff: 91.53, }, low: { value: 2849.04, diff: 68.22, }, close: { value: 2944.59, diff: 104.04, }, volume: 1793206000, adjClose: 2944.59, dayClose: [ { close: 2866.95, date: new Date('2013/04/29'), }, { close: 2887.44, date: new Date('2013/04/30'), }, { close: 2873.35, date: new Date('2013/05/01'), }, { close: 2911.14, date: new Date('2013/05/02'), }, { close: 2944.59, date: new Date('2013/05/03'), }, ], }, { date: new Date('2013/04/22'), open: { value: 2791.77, diff: -49.49, }, high: { value: 2860.69, diff: 11.53, }, low: { value: 2780.82, diff: 49.85, }, close: { value: 2840.55, diff: 60.09, }, volume: 1757180000, adjClose: 2840.55, dayClose: [ { close: 2810.07, date: new Date('2013/04/22'), }, { close: 2835.37, date: new Date('2013/04/23'), }, { close: 2834.12, date: new Date('2013/04/24'), }, { close: 2848.66, date: new Date('2013/04/25'), }, { close: 2840.55, date: new Date('2013/04/26'), }, ], }, { date: new Date('2013/04/15'), open: { value: 2841.26, diff: 68.96, }, high: { value: 2849.16, diff: -14.5, }, low: { value: 2730.97, diff: -33.37, }, close: { value: 2780.46, diff: -76.02, }, volume: 1740460000, adjClose: 2780.46, dayClose: [ { close: 2797.47, date: new Date('2013/04/15'), }, { close: 2838.41, date: new Date('2013/04/16'), }, { close: 2781.98, date: new Date('2013/04/17'), }, { close: 2741.95, date: new Date('2013/04/18'), }, { close: 2780.46, date: new Date('2013/04/19'), }, ], }, { date: new Date('2013/04/08'), open: { value: 2772.3, diff: -47.48, }, high: { value: 2863.66, diff: 35.02, }, low: { value: 2764.34, diff: 20.08, }, close: { value: 2856.48, diff: 84.73, }, volume: 1578374000, adjClose: 2856.48, dayClose: [ { close: 2786.13, date: new Date('2013/04/08'), }, { close: 2804.67, date: new Date('2013/04/09'), }, { close: 2859.21, date: new Date('2013/04/10'), }, { close: 2859.07, date: new Date('2013/04/11'), }, { close: 2856.48, date: new Date('2013/04/12'), }, ], }, { date: new Date('2013/04/01'), open: { value: 2819.78, diff: 9.03, }, high: { value: 2828.64, diff: 7.97, }, low: { value: 2744.26, diff: -34.52, }, close: { value: 2771.75, diff: -46.94, }, volume: 1589176000, adjClose: 2771.75, dayClose: [ { close: 2797.07, date: new Date('2013/04/01'), }, { close: 2820.62, date: new Date('2013/04/02'), }, { close: 2795.04, date: new Date('2013/04/03'), }, { close: 2794.92, date: new Date('2013/04/04'), }, { close: 2771.75, date: new Date('2013/04/05'), }, ], }, { date: new Date('2013/03/25'), open: { value: 2810.75, diff: 39.22, }, high: { value: 2820.67, diff: 9.19, }, low: { value: 2778.78, diff: 15.66, }, close: { value: 2818.69, diff: 17.88, }, volume: 1541860000, adjClose: 2818.69, dayClose: [ { close: 2789.45, date: new Date('2013/03/25'), }, { close: 2806.5, date: new Date('2013/03/26'), }, { close: 2809.98, date: new Date('2013/03/27'), }, { close: 2818.69, date: new Date('2013/03/28'), }, ], }, { date: new Date('2013/03/18'), open: { value: 2771.53, diff: -26.6, }, high: { value: 2811.48, diff: -0.81, }, low: { value: 2763.12, diff: -24.6, }, close: { value: 2800.81, diff: 1.4, }, volume: 1642786000, adjClose: 2800.81, dayClose: [ { close: 2792.3, date: new Date('2013/03/18'), }, { close: 2787.27, date: new Date('2013/03/19'), }, { close: 2805.91, date: new Date('2013/03/20'), }, { close: 2774.85, date: new Date('2013/03/21'), }, { close: 2800.81, date: new Date('2013/03/22'), }, ], }, { date: new Date('2013/03/11'), open: { value: 2798.13, diff: 59.92, }, high: { value: 2812.29, diff: -0.44, }, low: { value: 2787.72, diff: 52.8, }, close: { value: 2799.41, diff: -4.7, }, volume: 1767280000, adjClose: 2799.41, dayClose: [ { close: 2811.86, date: new Date('2013/03/11'), }, { close: 2800.81, date: new Date('2013/03/12'), }, { close: 2798.68, date: new Date('2013/03/13'), }, { close: 2807.3, date: new Date('2013/03/14'), }, { close: 2799.41, date: new Date('2013/03/15'), }, ], }, { date: new Date('2013/03/04'), open: { value: 2738.21, diff: -17.98, }, high: { value: 2812.73, diff: 48.77, }, low: { value: 2734.92, diff: 45.09, }, close: { value: 2804.11, diff: 56.36, }, volume: 1732232000, adjClose: 2804.11, dayClose: [ { close: 2759.53, date: new Date('2013/03/04'), }, { close: 2799.25, date: new Date('2013/03/05'), }, { close: 2792.56, date: new Date('2013/03/06'), }, { close: 2799.49, date: new Date('2013/03/07'), }, { close: 2804.11, date: new Date('2013/03/08'), }, ], }, { date: new Date('2013/02/25'), open: { value: 2756.19, diff: -14.51, }, high: { value: 2763.96, diff: -18.9, }, low: { value: 2689.83, diff: -10.49, }, close: { value: 2747.75, diff: 10.47, }, volume: 1879756000, adjClose: 2747.75, dayClose: [ { close: 2700.97, date: new Date('2013/02/25'), }, { close: 2713.02, date: new Date('2013/02/26'), }, { close: 2741.26, date: new Date('2013/02/27'), }, { close: 2738.58, date: new Date('2013/02/28'), }, { close: 2747.75, date: new Date('2013/03/01'), }, ], }, { date: new Date('2013/02/19'), open: { value: 2770.7, diff: -3.74, }, high: { value: 2782.86, diff: -0.33, }, low: { value: 2700.32, diff: -56.11, }, close: { value: 2737.28, diff: -27.39, }, volume: 1869942500, adjClose: 2737.28, dayClose: [ { close: 2782.86, date: new Date('2013/02/19'), }, { close: 2739.99, date: new Date('2013/02/20'), }, { close: 2711.51, date: new Date('2013/02/21'), }, { close: 2737.28, date: new Date('2013/02/22'), }, ], }, { date: new Date('2013/02/11'), open: { value: 2774.44, diff: 25.04, }, high: { value: 2783.19, diff: 3.06, }, low: { value: 2756.43, diff: 40.92, }, close: { value: 2764.67, diff: -10.89, }, volume: 1788838000, adjClose: 2764.67, dayClose: [ { close: 2774.64, date: new Date('2013/02/11'), }, { close: 2762.62, date: new Date('2013/02/12'), }, { close: 2773.77, date: new Date('2013/02/13'), }, { close: 2771.43, date: new Date('2013/02/14'), }, { close: 2764.67, date: new Date('2013/02/15'), }, ], }, { date: new Date('2013/02/04'), open: { value: 2749.4, diff: 11.78, }, high: { value: 2780.13, diff: 11.5, }, low: { value: 2715.51, diff: -7.01, }, close: { value: 2775.56, diff: 11.6, }, volume: 1960002000, adjClose: 2775.56, dayClose: [ { close: 2715.68, date: new Date('2013/02/04'), }, { close: 2754.99, date: new Date('2013/02/05'), }, { close: 2746.35, date: new Date('2013/02/06'), }, { close: 2746.5, date: new Date('2013/02/07'), }, { close: 2775.56, date: new Date('2013/02/08'), }, ], }, { date: new Date('2013/01/28'), open: { value: 2737.62, diff: -6.65, }, high: { value: 2768.63, diff: -0.68, }, low: { value: 2722.52, diff: 2.69, }, close: { value: 2763.96, diff: 27.23, }, volume: 2040876000, adjClose: 2763.96, dayClose: [ { close: 2742.43, date: new Date('2013/01/28'), }, { close: 2743.58, date: new Date('2013/01/29'), }, { close: 2738.71, date: new Date('2013/01/30'), }, { close: 2731.53, date: new Date('2013/01/31'), }, { close: 2763.96, date: new Date('2013/02/01'), }, ], }, { date: new Date('2013/01/22'), open: { value: 2744.27, diff: 10.81, }, high: { value: 2769.31, diff: 12.63, }, low: { value: 2719.83, diff: 9.03, }, close: { value: 2736.73, diff: -6.51, }, volume: 1864040000, adjClose: 2736.73, dayClose: [ { close: 2746.19, date: new Date('2013/01/22'), }, { close: 2762.17, date: new Date('2013/01/23'), }, { close: 2723.53, date: new Date('2013/01/24'), }, { close: 2736.73, date: new Date('2013/01/25'), }, ], }, { date: new Date('2013/01/14'), open: { value: 2733.46, diff: 20.02, }, high: { value: 2756.68, diff: 7.32, }, low: { value: 2710.8, diff: 7.05, }, close: { value: 2743.24, diff: -5.02, }, volume: 1809576000, adjClose: 2743.24, dayClose: [ { close: 2735.7, date: new Date('2013/01/14'), }, { close: 2722.98, date: new Date('2013/01/15'), }, { close: 2734.73, date: new Date('2013/01/16'), }, { close: 2747.15, date: new Date('2013/01/17'), }, { close: 2743.24, date: new Date('2013/01/18'), }, ], }, { date: new Date('2013/01/07'), open: { value: 2713.44, diff: -14.23, }, high: { value: 2749.36, diff: -1.46, }, low: { value: 2703.75, diff: -12.29, }, close: { value: 2748.26, diff: 23.77, }, volume: 1741254000, adjClose: 2748.26, dayClose: [ { close: 2724.22, date: new Date('2013/01/07'), }, { close: 2718.72, date: new Date('2013/01/08'), }, { close: 2727.65, date: new Date('2013/01/09'), }, { close: 2744.18, date: new Date('2013/01/10'), }, { close: 2748.26, date: new Date('2013/01/11'), }, ], }, ];
<!DOCTYPE html> <html lang="en"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/25.1.4/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="https://cdn.jsdelivr.net/npm/core-js@2.6.12/client/shim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import("./index.tsx"); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
#gridContainer td { vertical-align: middle; } #gridContainer .chart-cell { overflow: visible; } #gridContainer .current-value { display: inline-block; } #gridContainer .diff { position: relative; display: table-cell; font-size: 16px; } #gridContainer .inc .diff { color: #2ab71b; } #gridContainer .inc .diff::before { content: '+'; } #gridContainer .dec .diff::before { content: '-'; } #gridContainer .dec .diff { color: #f00; } #gridContainer .inc .diff::after, #gridContainer .dec .diff::after { content: ''; display: block; height: 10px; width: 10px; position: absolute; right: -12px; top: 6px; background-repeat: no-repeat; background-size: 10px 10px; } #gridContainer .inc .diff::after { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADKSURBVHjaYtTaLs1ABEiG0nPRJa56PEHhsxBhmCUQT4OyrwHxcXyKmQgYJgHE64CYDYrXQcXIMhCbAcgWkGzgNKh38QUB0QamIUUErkhKI9ZAGyCeTERkTYaqxWsgKA2txhdG6GGsvUNGGpeBRMUiGhCFGsqGzUBQQJsxkA5AemaiG5hDIBIIgQSgK0FmMDACs549kN5FZLjhA7+A2A2U9YSAOBeLAk4gnoBDczoOcSFGPIUDPxB/wCHHiKtwYGKgMhg1cBAaCBBgAJTUIL3ToPZfAAAAAElFTkSuQmCC'); } #gridContainer .dec .diff::after { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADJSURBVHjaYvzPgBfgkhYA4o8QFahKmBioDEYNHIQGsgBxIBCLkqgvAYi/g1mMjMjir0EJzR6If/6HpChKMMgMe3DKBeIcKhiY8x/MYoDj+RQYNgdkGLqBbEB8kgzDToL1YjEQhKWB+BUJhj0H64Eahs1AELYhMpJ+gtUiGYbLQBBOI8LANLBaIg1kAAc0vkiAqSPBQFAkHcNi2DGoHMkGgrAENOCRI0ECRQ2JBoKwJTQCfkLZDPgMZPxPXN5NhtJzMSsJVBMAAgwAyWSY2svfmrwAAAAASUVORK5CYII='); }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4