Giter VIP home page Giter VIP logo

visactor / vtable Goto Github PK

View Code? Open in Web Editor NEW
1.2K 18.0 78.0 143.99 MB

VTable is not just a high-performance multidimensional data analysis table, but also a grid artist that creates art between rows and columns.

Home Page: https://visactor.io/vtable

License: MIT License

JavaScript 1.38% Shell 0.01% TypeScript 98.51% HTML 0.03% CSS 0.08%
datagrid grid javescript list-table pivot-chart pivot-grid pivot-tables table visualization data-analysis

vtable's Introduction

VTable

VTable is not just a high-performance multidimensional data analysis table, but also a grid artist that creates art between rows and columns.

IntroductiondemoTutorialAPI

npm Version npm Download license

English| 简体中文

(video)

Introduction

VTable is based on visual rendering engine VRender.

The core capabilities are as follows:

  1. Extreme performance: Supports fast computation and rendering of millions of data points.
  2. Multidimensional analysis: Automatically analyzes and presents multidimensional data.
  3. Strong expressiveness: Provides flexible and powerful graphic capabilities, seamlessly integrating with charts of VChart.

Repository Introduction

This repository includes the following packages:

  1. packages/vtable: The core code repository of VTable
  2. docs: Include VTable site tutorials, demos,apis and options, and also contains all Chinese and English documents.

Usage

Installation

npm package

// npm
npm install @visactor/vtable

// yarn
yarn add @visactor/vtable

Quick Start

// this demo you can run on codesanbox https://codesandbox.io/s/vtable-simple-demo-g8q738
import * as VTable from '@visactor/vtable';

const columns = [
  {
    field: 'Order ID',
    caption: 'Order ID'
  },
  {
    field: 'Customer ID',
    caption: 'Customer ID'
  },
  {
    field: 'Product Name',
    caption: 'Product Name'
  },
  {
    field: 'Sales',
    caption: 'Sales'
  },
  {
    field: 'Profit',
    caption: 'Profit'
  }
];

const option = {
  container: document.getElementById(CONTAINER_ID),
  records: [
    {
      'Order ID': 'CA-2018-156720',
      'Customer ID': 'JM-15580',
      'Product Name': 'Bagged Rubber Bands',
      Sales: '3.024',
      Profit: '-0.605'
    },
    {
      'Order ID': 'CA-2018-115427',
      'Customer ID': 'EB-13975',
      'Product Name': 'GBC Binding covers',
      Sales: '20.72',
      Profit: '6.475'
    }
    // ...
  ],
  columns
};
const tableInstance = new VTable.ListTable(option);

More demos and detailed tutorials

⌨️ Development

First of all, please install @microsoft/rush

$ npm i --global @microsoft/rush

Then clone locally:

# clone
$ git clone [email protected]:VisActor/VTable.git
$ cd VTable
# install dependencies
$ rush update
# start vtable demo
$ cd packages/vtable
# execute in file path: ./packages/vtable
$ rushx demo
# start site development server, execute in file path: ./
$ rush docs
# after execut git commit, please run the following command to update the change log. Please execute in file path: ./
$ rush change-all

📖 Documents

After installation & clone & update, run docs to preview VTable documents locally.

# start vtable document server. execute in file path: ./
$ rush docs

🔗 Related Links

💫 Ecosystem

Project Description
React-VTable VTable in React component

⭐️ Star History

Star History Chart

🤝 Contribution

If you would like to contribute, please read the Code of Conduct and Guide first。

Small streams converge to make great rivers and seas!

License

MIT License

vtable's People

Contributors

amoonkin avatar chenbin12138 avatar creasy2010 avatar cwtuan avatar fangsmile avatar github-actions[bot] avatar huangjiahui2233 avatar l1xnan avatar martesi avatar rui-sun avatar skie1997 avatar viz1997 avatar x-smart avatar xiaoosnggao avatar xuanhun avatar zamhown avatar zuopf769 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vtable's Issues

[refactor] add custom eLement type of 'Line'

What problem does this feature solve?

add custom eLement type of 'Line'

What does the proposed API look like?

export interface LineElement extends Omit<baseElement, 'x' | 'y'> {
  type: 'line';
  stroke?: string | ((value: string) => string);
  points: { x: number; y: number }[];
  lineWidth?: number;
}

[refactor] add stopPropagation for wheel event

What problem does this feature solve?

refactor: menu dom should add stopPropagation for wheel event。so allow menu dom has itself scroll interaction
111

What does the proposed API look like?

event.stopPropagation()

[Chore] update workflow release

What problem does this feature solve?

update workflow release

What does the proposed API look like?

update workflow release

[Bug] drag header to wrong position width tree pivot

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

show in video

Current Behavior

drag-pivot-tree-bug.mp4

Expected Behavior

can drag to right position

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Bug] select one column error

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

tree expand then click header cell

Current Behavior

when i expand tree table become more length ,but click header cell to select one column length shorter more than expected

Expected Behavior

one column selected

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[chore] pre-release workflow

What problem does this feature solve?

set pre-release workflow

What does the proposed API look like?

set pre-release workflow

[Chore] bundler read external

What problem does this feature solve?

bundler read external

What does the proposed API look like?

bundler read external

[Bug] cell wrong after drag header change position

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

this one demo:
image
after drag header change position , the cell can not show right

Current Behavior

image

Expected Behavior

can show right

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Bug] has blank row

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

demo:one

Current Behavior

image

Expected Behavior

no blank

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Bug] set customRender and transpose,problem is: render all row use same define

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

set customRender and transpose,problem is: render all row use same define

Current Behavior

set customRender and transpose,problem is: render all row use same define

Expected Behavior

set customRender and transpose,problem is: render all row use same define

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[demo] add vtable demo

What problem does this feature solve?

vtable website demo organization

What does the proposed API look like?

vtable website demo organization

[Feature] refactor sparkline's spec

What problem does this feature solve?

The Sparkline's spec is so complicated, I will optimize it.

What does the proposed API look like?

No response

[Bug] fix chart shake after resize column width

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

resize column width

mouse hover chart cell then leave it, chart shake

Current Behavior

chart shake

Expected Behavior

chart don't shake

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Feature] Data lazy loading function

What problem does this feature solve?

Request and process data on demand.

What does the proposed API look like?

const dataSource = new CachedDataSource({
get(index) {
const loadStartIndex = Math.floor(index / 100) * 100;
if (!loadedData[loadStartIndex]) {
const promiseObject = getRecordsWithAjax(loadStartIndex, 100); // return Promise Object
loadedData[loadStartIndex] = promiseObject;
}
return loadedData[loadStartIndex].then((data: any) => {
return data[index - loadStartIndex];
});
},
length: 100000, //all records count
});

[refactor] icon should disapper when mouse leave table,tooltip a

Version

develop

Link to Minimal Reproduction

none

Steps to Reproduce

demo:
image

Current Behavior

image

Expected Behavior

icon should disapper when mouse leave table,tooltip alse;

icon shoud has white bgColor

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Bug] when drag header or resize column width should update chart image.

Version

main

Link to Minimal Reproduction

when drag header or resize column width should update chart image

Steps to Reproduce

when drag header or resize column width should update chart image

Current Behavior

when drag header or resize column width should update chart image

Expected Behavior

when drag header or resize column width should update chart image

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Chore] add chinese readme

What problem does this feature solve?

add chinese readme

What does the proposed API look like?

add chinese readme

[Bug] test for minitor

Version

develop

Link to Minimal Reproduction

f

Steps to Reproduce

f

Current Behavior

f

Expected Behavior

f

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Bug] customLayout set backgroud for group is invalid

Version

main

Link to Minimal Reproduction

custom-cell-layout.md in site-demo Folder

Steps to Reproduce

the 'custom-cell-layout' demo in site-demo ,add backgroud config like this:

const containerRightTop = new VTable.CustomLayout.Container({
          height: percentCalc(50),
          width: percentCalc(100),
          showBounds: false,
          alignContent: 'bottom',
          background:{
            fill:true,
            fillColor:'yellow',
            borderRadius:5
          }
       });

Current Behavior

no backgroud

Expected Behavior

has backgroud

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

[Feature] Tree structure in list table

What problem does this feature solve?

Add tree structure in list table, support line folding display mode.

What does the proposed API look like?

table.toggleHierarchyState(col, row);

[Feature] Tree structure in pivot table

What problem does this feature solve?

Add tree structure in pivot table, support dimension folding display mode.

What does the proposed API look like?

{
rowHierarchyType: 'tree',
rowExpandLevel: 1,
rowHierarchyIndent: 20,
}

[Bug] sparkline render line effect is error when set pointShowRule = 'isolatedPoint'

Version

main

Link to Minimal Reproduction

demo spark-line.ts

Steps to Reproduce

set domin to xField
set data with break item
set pointShowRule: 'isolatedPoint'

Current Behavior

point rendered error
line render effect is error

Expected Behavior

render as expected

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.