Skip to content

Commit

Permalink
feat: ✨ refactor the s2 based on new data-process (#235)
Browse files Browse the repository at this point in the history
* feat: ✨ add a demo page for test

* Feat update g4.0 & optimize project config (#7)

* feat: core first commit and update g-4.0 and lint fix

* feat: add test demo & optimize scroll

* feat: remove antv/util and process build script

* feat: change entry name & rename dist

* feat: make spec more readable

* feat: add helper utils

* perf: optimize scroll

* fix: canvas blur when DPR changed (#10)

* fix: cannot get current row data when click cell text (#12)

* chore: add lint check for pre commit and push (#13)

* chore: add lint check for pre commit and push

* chore: ci adjust

* refactor: ♻️  sync the logic of drill down (#16)

* refactor: ♻️ sync the logic of drill down

* fix: 💚  fix lint and change the rules of eslint'

* chore:🛠 update lint rules and test stage (#17)

* refactor: ♻️ sync the logic of drill down

* fix: 💚  fix lint and change the rules of eslint'

* feat: 🌱 add option builder

* chore: 👷 fix lint

* chore: 🔧 add test stage pre-push

* feat: tooltip refactor (#11)

* feat: tooltip refactor

* feat: modify comment

* feat: modify tooltip classname and change components

* feat: add intTooltip in options

* fix: initTooltip's use

* feat: delete normal-tooltip and strategy-tooltip class and decoupling calculation logic

* fix: strategy-sheet initTooltip and some code refactor

* refactor: some code type

* refactor: code lint

* refactor: code lint

* style: code lint

* style: change css of operator

* feat: add tooltipComponent in options

Co-authored-by: 蒺藜 <[email protected]>

* tooltip: fix TooltipCallback return type & add test & change to new way to use & add docs (#19)

* feat: tooltip refactor

* feat: modify comment

* feat: modify tooltip classname and change components

* feat: add intTooltip in options

* fix: initTooltip's use

* feat: delete normal-tooltip and strategy-tooltip class and decoupling calculation logic

* fix: strategy-sheet initTooltip and some code refactor

* refactor: some code type

* refactor: code lint

* refactor: code lint

* style: code lint

* style: change css of operator

* feat: add tooltipComponent in options

* fix: tooltipCallback return type

* test: add tooltip test

* feat: delete old way of show tooltip and change to new way

* docs: add tooltip options

Co-authored-by: 蒺藜 <[email protected]>

* Optimize render logic (#18)

* fix: empty icon condition take place extra the area

* fix: safety config and  drill-down logic optimized

* fix: drill-down tooltip

* fix: filter null fieldValue

* fix: calculate col width correctly

* fix: remove code annotation header

* feat: add max scroll bar height limit (#21)

* fix: optimize warn lint (#23)

* fix: optimize warn lint

* fix: text file lint fix

* fix: parse int scroll offset for resolve text shake close #20 (#24)

* fix: parse int scroll offset for resolve text shake close #20

* fix: parseint x and y

* fix: replace chinese comment

* tree row header not allow null/undefined node (#26)

* fix: tre row header not allow null/undefined node

* fix: fix lint warn

* fix: format header label and add default col hierarchy height (#27)

* fix: show table structure when miss cols/values (#28)

* fix: show table structure when miss cols/values

* fix: lint optimize

* feat: ✨ Add the export and header components  (#29)

* feat: ✨ Allow users to customize the drill-down level

* fix: 🐛 Replace the default id separator of node

* feat: ✨ Export the mouse event for cell click events

* feat: ✨ Add the header component

* feat: ✨ Add export components

* chore: 💡 translate the comments

* fix: resolve table blur when browser zoom (#35)

* fix: measure number text width not correct (#37)

* fix: error type fixed (#38)

* fix: error type fixed

* fix: upgrade lint config

* fix: optimize the type

* fix: cannot get correctly row data for tree hierarchy type (#39)

* chore: add ding talk pr notify (#42)

* fix: get wrong thumb offset top when container height changed (#43)

* fix: get wrong thumb offset top when container height changed

* fix: lint warning

* fix: remove useless notify option (#44)

* fix: adjust pr notify event (#45)

* feat: adjust tree menu layout (#47)

* fix: disable mobile rerender for zoom (#46)

* fix: 🐛 solve the issue of copy failure of detail table without  c… (#48)

* fix: 🐛 solve the issue of copy failure of detail table without  column.

this close #32, close #31

* fix: 💩 [export]replace the success message with the error message

* fix: [export] solve the type error (#49)

* fix: 🐛 solve the issue of copy failure of detail table without  column.

this close #32, close #31

* fix: 💩 [export]replace the success message with the error message

* fix: 💩 [export] solve the type error

* refactor: ♻️  add the function to get the state of derivedData (#50)

* feat: ✨ enable users to customize the layout by specific rows or columns header labels (#51)

* feat: ✨ enable users to customize the layout by specific rows or columns header labels

* test: ✅ add a test for the feautre of custom layout

* revert: ⏪ revert bd740b9

This reverts commit bd740b9.

* refactor: 🏗️ reorganize the file structure of components (#52)

* refactor: 🏗️ reorganize the file structure of components

* chore: 🔧 set alias for webpack, jest and tsconfig

* feat: make render more rational (#55)

* fix: remove place-holder related logic

* fix: unregister scrollbar event listener

* feat: render cell with delay and unregister wheel event correctly

* fix: cells don't need cache&remove cells in panelGroup when leave the screen

* feat: ✨ enable users to customize the layout by specific rows or columns header labels (#57)

* feat: ✨ enable users to customize the layout by specific rows or columns header labels

* test: ✅ add a test for the feautre of custom layout

* test: ✅ update the test for cutom header cell

* chore: 🔧 update webpack4 to webpack5 (#58)

* chore: 🔧 update webpack4 to webpack5

* chore: 🔧 update the lint.yml

* fix(cell): 🐛 text max width calculate error (#59)

* feat: refactor the interaction (#14)

* feature: interaction first

* feat: interaction first

* feat: 取消HoverBox

* feat: 建立stateShape来统一管理show或者hide

* feat: del hover box

* feat: del cell-hover

* feat: cell-selection

* feat: corner-header-text-click 改为event监听

* feat: delHeaderHover

* feat: resize

* feat: col-selection

* feat: row-header-text-click

* feat: del _

* feat: event独立

* feat: events抽离 and datacell-muti-selection

* feat: events抽离 and datacell-muti-selection

* feat: col-row-select

* change summary to summaries and add some mock data (#30)

* feat: tooltip refactor

* feat: modify comment

* feat: modify tooltip classname and change components

* feat: add intTooltip in options

* fix: initTooltip's use

* feat: delete normal-tooltip and strategy-tooltip class and decoupling calculation logic

* fix: strategy-sheet initTooltip and some code refactor

* refactor: some code type

* refactor: code lint

* refactor: code lint

* style: code lint

* style: change css of operator

* feat: add tooltipComponent in options

* fix: tooltipCallback return type

* test: add tooltip test

* feat: delete old way of show tooltip and change to new way

* docs: add tooltip options

* feat: change summary to summaries and add some mock data

Co-authored-by: 蒺藜 <[email protected]>

* feat: cell-click and col row click  tooltip

* feat: col-muti-tooltip

* feat: tooltip适配

* feat: tooltip

* feat: 适配挂行头

* fix: interceptevent控制放在base-spread-sheet

* fix: lint

* feat: keep-hover state以及 hover独立拆分

* feat: getAllPanelCells修复为过滤不在视图内的cell, hover的十字样式

* feat: test

* feat: test

* feat: 准备把cellIndex改为colIndex

* feat: fix some commit and 准备调试draw

* fix: 修复格式问题,准备适配keep-hover

* fix: fix som commits

* fix: 修复一些commit问题

* fix: 修复commit问题

* fix: lint

* fix: lint

* feat: add todo

Co-authored-by: maosong.wz <[email protected]>
Co-authored-by: yangzhanmei <[email protected]>
Co-authored-by: 蒺藜 <[email protected]>

* optimize core logic  (#60)

* fix: remove strategy related things

* feat: convergence S2Options & S2DataConfig

* feat: convergence S2Options & S2DataConfig

* feat: adapt freezeRowHeader and mode with better logic

* feat: merge interaction core codes

* fix: adjust some logic

* fix: adjust some logic

* feat: ✨ add pagination (#61)

* feat: ✨ add pagination

* fix: 🐛 import LruCache

* ci: 💚 fix ci

* ci: 💚 delete useless values

* fix: 🐛 stop automatically changing numbers to dates when copying … (#64)

* fix: 🐛 stop automatically changing numbers to dates when copying data

* refactor: ♻️ code optimization

* fix: new data transform and fetch

* feat: merge data-set and pivot into data-set

* feat: add pivot-data-set

* feat: only keep SpreadSheet(old files will deleted when covered)

* feat: move valueInCols to Fields

* feat: reconstruct facet logic

* fix: visible cell min index

* feat: render pressure in 100W and 10W data

* feat: adapt all data scene in single measure

* fix: tree mode error

* feat: re-design header layout

* feat: adjust file structure

* feat: data-set get data need be array

* feat: ✨ add the tabular mode (#65)

* feat: ✨ add tabular sheet

* feat: ✨ draw custom data cell for tabular sheet

* fix: 🐛 enable the tooltip to render custom element

* refactor: ♻️ redefine the interface and constant for interaction

* fix: 🐛 solved the issue that the wwidth of the data cell could not be adpative

* feat: ✨ draw the background of merged cells

* feat: ✨ add Class of MergedCells

* feat: ✨ add events for the MergedCells

* feat: ✨ draw text for merged cells

* feat: ✨ draw merged cells by setting options

* chore: 🔧 update the lerna configuration

* chore: 🔧 update the package.json

* chore: 💚 fix ci

* chore: ✅ add the test case for cells merging

* chore: 💚 fix ci

* feat: complete data accuracy

* feat: add getMultiData to get row/col data

* feat: update derived values config

* feat: new layout design

* fix: fix some type problem

* fix: fix undefined

* refactor: 🏗️ reorganize the file structure of interface (#69)

* Rename S2Options.ts to s2Options.ts

* Rename S2DataConfig.ts to s2DataConfig.ts

* fix: get multi data add isTotals to query

* feat: remove all backup files

* feat: adjust grand total node key field

* fix: lint error

* fix: lint error

* feat: get cell data only return a single data

* test: ✅  add unit test for pivot dataset (#70)

* chore: add test config

* test: add test for pivotDataset

* fix: row tree type cell wrong leaf nodes

* fix: row tree type cell wrong leaf nodes

* test: ✅ add more unit test (#71)

* chore: add test config

* test: add test for pivotDataset

* chore: add test script

* chore: refine package.json, remove duplicated config

* test: add test for i18n

* test: add test for store

* chore: refine test structure

* test: ✅  add unit test for pivot dataset (#70)

* chore: add test config

* test: add test for pivotDataset

* fix: row tree type cell wrong leaf nodes

* fix: row tree type cell wrong leaf nodes

* chore: update test regex

* chore: add test script

* chore: refine package.json, remove duplicated config

* test: add test for i18n

* test: add test for store

* chore: refine test structure

* test: ✅  add unit test for pivot dataset (#70)

* chore: add test config

* test: add test for pivotDataset

* chore: update test regex

Co-authored-by: brucetoo <[email protected]>

* fix: cannot get correct row data (#72)

* chore: ✅  add unit test for state (#73)

* fix: fix test files path in scripts

* test: add test for state

* fix: add colRealWidthInfo type in StoreKey, remove corresponding constant variable

* test: 增加交互式测试脚本 (#74)

* chore: update test-live script (#75)

* Tree row support part drill down (#76)

* feat: prepare drill-down spec

* feat: add drill-down support

* feat: handle tree row collapse state

* feat: limit drill down data by drillItemsNum

* fix: lint error

* fix: add rowNode cell test

* feat: remove something

* fix: cr problems

* fix: cr problems

* fix: cr problem

* feat: hide measure col (#82)

* fix: all lint error(for use)

* feat: hide measure in col

* fix: path import order

* fix: total node rows use origin rows config

* refactor: optimize base sheet type (#85)

* refactor: optimize base sheet type

* refactor: add events constant file

* feat: 增加lodash.get类型判断 (#91)

* add sort feature and test (#81)

* feat: add sort

* test: add sort spread test

* fix: compat sort and data-set

* test: add some sort tests

* style: lodash import change

* feat: add totalData in pviot data set

* test: add total test in pviot data set

* fix: get values of row tree

* test: complete pivot data set test

* test: add data sort's totalData

* refactor: rename sortByField to sortByMeasure

* feat: add measure is total col or row when sort and refactor some function

* refactor: optimize sort action function

* test: add data-set-operate test and sort action test

* test: add totalData item

* test: optimize sort sheet test

* test: optimize pivot sort data test about query muilty data with total value

* test: add pivot sort data unit test

* refactor: totalData safety

* refactor: add comments about sort priority

* refactor: merge add extra value of data and totalData

* refactor: rename pivot data set test

* refactor: change sortByMeasure to TOTAL_VALUE when sort by total

* fix: change node's isTotals when row tree hierarchy

* style: lint

* refactor: optimize data set code (#94)

* test: optimize data accuracy test (#95)

* feat: row header support custom tree (#100)

* feat: support custom row tree

* feat: optimize custom tree process

* feat: optimize code logic

* feat: optimize code logic

* 明细表基本流程 (#99)

* fix: using rollup-typescript2

* feat: detail table refactor

* feat: delete unused table mode file

* feat: add series number for table mode

* feat: update package-lock.json

* feat: 合并最新代码

* feat: add unit test and fix pr

* fix: table hierarchy unit test

Co-authored-by: xinhui.zxh <[email protected]>

* refactor(scroll): 🚀 optimize scroll performace (#101)

* refactor(scroll): 🚀 optimize scroll performace

* fix: cannot scroll

* fix: optimize test

* refactor: optimize scroll performace for scroll bar

* fix: type issue

* fix: wheel types (#107)

* ✨ 迁移指标切换组件 (#108)

* feat: 迁移 dimension switch 组件

* fix: 样式修改

* refactor: unify classnames

* refactor: add className props

* test: add ut for dimension switch

* test: add ut for dimension switch hook

* feat: ✨ refactor the default theme and add new themes (#109)

* refactor: 🏗️ reorgnaize the file structure of the constant

* refactor: ♻️ redefine the theme token

* refactor: ♻️ replace the theme token for pivot table

* fix: 🐛 replace the new theme token

* fix: 🐛 solve the issue that the canvas draw empty cells

* refactor: ♻️ redesign the theme tokon based on the palette

* chore: 💚 fix some lint issues

* feat: ✨ add the opacity for the theme token

* style: 💄 tweak the style of the corner cell

* feat: ✨ allow custom the text alignment in grid mode

* chore: ✅ add the test for the text util

* refactor: update the theme interface

* style: 💄 tweak the default style

* style: 💄 tweak the style of the colHeader

* chore: ✅ add the test for theme switch

* feat: ✨ add the simple-blue palette

* fix: 🐛 tweak the style of interaction

* fix: ✏️ tweak the corner width

* test: ✅ fix test error

* fix: 🐛 fix the test crush

* fix: ✏️ fix the theme type

* chore: 💬 update the anotation of the palettesemantic

* chore: fix some issues of code style

* refactor: fix the type define of padding

* Refact layout hooks (#112)

* feat: refactor layout hooks

* fix: table spec not work

* feat: adapt layout hooks and add spec

* feat: add spec

* feat: support tree/grid mode

* fix: change to GetCellMeta

* fix: merge data process

* fix: coordinate hook use 70px

* fix: fix pr problems

* fix: global jest dep AND scroll bug (#114)

* fix: global jest dep AND scroll bug

* fix: merge data-process

Co-authored-by: wengyidong.wyd <[email protected]>

* 明细表适配主题 (#115)

* fix: table mode number align

* fix: cell and sheet type circular references

* fix: 明细表适配 theme

* fix: update build-table-hierarchy-spec snapshot && fix corner style

* fix: update d.ts file path

* fix: 明细表主题适配调整

Co-authored-by: xinhui.zxh <[email protected]>

* fix: data coordinate wrong (#116)

* refactor: ♻️ optimize type definitions and the theme map of the interation (#117)

* refactor: ♻️ optimize type definitions and the theme map of the interaction

* refactor: 💬 rename the CellTypes

* refactor: ♻️ optimize the getCellType function

* refactor: ♻️ unified the constant naming

* fix: 🐛 solve the state error of  interaction (#119)

* refactor: ♻️ optimize type definitions and the theme map of the interaction

* refactor: 💬 rename the CellTypes

* refactor: ♻️ optimize the getCellType function

* refactor: ♻️ unified the constant naming

* fix: 🐛 fix the type error

* style: 💄 tweak the style of interaction state

* fix: 🐛 solved the issue of generating wrong colIndex

* chore: 🎨 optimize the code logic

* chore: ✏️ fix typos and reorgnize the constant of the interaction

* fix: prettier all files (#121)

Co-authored-by: wengyidong.wyd <[email protected]>

* feat: sort action process (#122)

* refactor: ♻️ merge the state into the store as an attribute (#124)

* refactore: ♻️ merger the state class into the store as an attribute

* chore: ✅ add the test for the state-controller util

* refactor: ♻️ reorganize the file struncture of event type

* fix: 🐛 replace the wrong refer (#125)

* feat: prettier files (#123)

* feat: prettier files

* chore: fix lint

* chore: run lint globally

Co-authored-by: yingying.xwy <[email protected]>

* feat: add copy feat and add S2Range interface (#120)

* feat: add copy feat and add S2Range interface

* fix: 工具函数移动 以及修复空cell导致的问题

* fix: 工具函数移动 以及修复空cell导致的问题

* fix: delete useless code

* fix: 二维数组格式优化

* fix: add enable switch

* fix: change name 'S2Range' to 'S2CellBrushRange'

Co-authored-by: wengyidong.wyd <[email protected]>

* feat: add standard data (#126)

* feat: add standard data process

* fix: remove some words

* feat: ✨  add the hover event for the row cell and the col cell (#128)

* feat: ✨ add hover event for the row cell and the col cell

* refactor: ♻️ optimize the code

* fix: circular dependency (#130)

* feat(interaction): ✨ selected cells spotlight (#129)

* feat(interaction): selected cells spotlight

* fix: remove console

* refactor(interfaction): 置灰非选中项 适配 单/多/刷选, 行列头批量选中

* refactor(interfaction): 交互层从 Spreadsheet 独立出来

* refactor(interfaction): 交互层从 Spreadsheet 独立出来

* refactor: 初步移除 derivedValues 配置 (#113)

* fix: fix typo

* fix: fieldValue类型重命名

* test: add test file

* feat: 初步干掉 derivedValues配置

* test: 为 condition 添加单测

* refactor: 重命名衍生指标字段

* refactor: 适配 theme

* refactor: 移除单元格绘制部分的衍生指标逻辑

* test: 修复单测配置更新方式

* fix: 修复icon在右侧时margin计算

* refactor: change import path

* refactor: 移除无用文件

* refactor: 修复测试报错

* refactor: 移除sheet中衍生指标方法

* refactor: refine layout logic

* fix: fix content content area logic

* test: add ut for sheet usage

* fix: rename getIconPosition to getIconLayoutPoistion

* fix: fix text condition logic

* refactor: extract icon into constant file

* feat: add cb for filter display item

* feat: add mapding callback for tooltio display

* refactor: deal with multiple data item when shows tooltip

* refactor: simplify facet config declaration

* test: correct test datacfg

* fix: fix import issue in detal row cell

* refactor: remove unused cfg, add annotation for util function

* refactor(types): optimize code and large type errors (#132)

* refactor(types): optimize large type errors

* refactor(types): rename theme cell unselect => outOfTheSpotlight

* refactor(types): remove type

* refactor(types): modify name and type

* refactor(tooltip): remove tooltip repeat funcs (#135)

* refactor(tooltip): remove tooltip repeat funcs

* refactor(tooltip): i18n

* refactor(tooltip): group tooltip options

* refactor(tooltip): dont't calculate when disable tooltip

* refactor(tooltip): rename ev => event

* refactor: ♻️ reorganize the logic of the state switching (#138)

* refactor: ♻️ reorganize the logic of the interaction state change and adapted the click event

* refactor: ♻️ add type definition and optimize the brush selection

* fix(theme): ✏️ fix type error

* refactor: 🎨 optimize the state change of row-column-click

* fix: 🐛 solve the issue that the  incomplete multi-select cells in the row and column headers

* refactor: 🎨 optimaze the logic of data-cell-multi-selection

* fix: 🐛 solve the issue that the col-row-multi-selection doesn't work

* fix: 🐛 solve the hover interaction state changing for the  rowHeader and colHeader

* feat: ✨ highlight all the header cells to which the hovering cell belongs

* refactor: art: optimize the call logic of some state-contronller functions

* fea: ✨ add hover highlight switcher

* refactor(interfaction): rewrite brush selection close #118 (#139)

* refactor(interfaction): rewrite brush selection close #118

* refactor(interfaction): remove chunk

* fix(interfaction): cannot stop brush when get cell info faild

* fix(interfaction): remove draw

* fix(interfaction): resolve conflect

* fix(interfaction): rename brush stage

* fix: 🐛 fix the hover highlighting error for the detail table (#142)

* feat(interaction): support unselect cell by esc keyborad (#143)

* feat(interaction): support unselect cell by esc keyborad

* fix(interaction): remove annotation

* fix(interaction): miss keyborad key

* fix(interaction): remove useless import

* fix(interaction): optimize init  prepare select mask

* fix: table mode sort icon and linkFieldIds (#137)

* fix: add table data cell for links and fix sort icon

* fix: build table hierarchy test

* fix: ts error

* fix: rm duplicate type

* fix: rm console and update render method

* fix: revert code

* refactor: extract renderIcon func

* fix: icon re-selectin

Co-authored-by: xinhui.zxh <[email protected]>

* refactor(cell): unify cell functions (#136)

* refactor: fix updateShapeAttr type define

* refactor: refine getCellType to getter

* refactor: add header cell class

* refactor: rename detail row cell to detail data cell

* refactor: refine function declaration in data cell

* refactor: refine merge cell constructor

* refactor: unify stateShapes

* refactor: refactor render util function

* refactor: unify interaction state

* refactor: extract link text variable to theme config

* refactor: rename interactive shape

* chore: close loop for test:live

* fix: remove blue color, add link field color into brand colors

* fix: 🐛 optimize some details of the interaction when scrolling (#148)

* fix: 🐛 keep the selected state when the selected data cells scroll out of the viewport

* fix: 🐛 hde the tooltip when scrolling

* fix: 🐛 cancel the hover state of header cells when scrolling

* fix: 🎨 optimize the highlight state for the row header cells in tree mode

* fix: 🐛 fix the test of merge-cells-spec

* feat(interaction): support brush selection mouse slides off the table (#146)

* fix(interaction): support brush selection mouse slides off the table

* fix(interaction): rename

* fix(interaction): add common resizer func

* fix(interaction): add brush selection intercept

* fix(interaction): update mouse on the tooltip judgement

* fix(interaction): remove useless vars

* fix(interaction): remove useless store key

* feat: add unselected style for conditions (#149)

* refactor: fix updateShapeAttr type define

* refactor: refine getCellType to getter

* refactor: add header cell class

* refactor: rename detail row cell to detail data cell

* refactor: refine function declaration in data cell

* refactor: refine merge cell constructor

* refactor: unify stateShapes

* refactor: refactor render util function

* refactor: unify interaction state

* refactor: extract link text variable to theme config

* refactor: rename interactive shape

* chore: close loop for test:live

* fix: remove blue color, add link field color into brand colors

* refactor(condition): extract condition type into single file

* refactor(condition): extract condition class

* fix(interaction):  brush selection shake (#152)

* fix(interaction): fix brush selection cell shake

* fix(interaction): remove console

* chore: no console (#153)

* chore: 🔥 remove useless color schema (#155)

* fix: brush selection range mask not show when rerender (#156)

* refactor: ♻️ refactor the render logic of series-number (#151)

* refactor: ♻️ refactor the render logic of  series-number

* fix: 🐛 fix the error theme referrence of the border of series number cell

* refactor: 🎨 simplify the render condition for  series-number cells

* feat: adapt condition arch (#157)

Co-authored-by: xinhui.zxh <[email protected]>

* feat: hd adapter (#154)

* feat: hd adapter

* fix: mouse on the canvas compatible with hd mode

* fix: remove pagination const

* fix: update tooltip class prefix

* fix: add common class prefix

* fix: alias

* fix(interaction): unbind all interaction event when destroyed (#160)

* fix(interaction): unbind all interaction event when destroyed

* fix(interaction): remove extra deps

* fix(interaction): remove useless var

* fix(dataset): getDimensionValues return empty when second field in compact mode. (#162)

* refactor(intetraction): optimize interfaction event implement (#164)

* feat: get tooltip data of new interaction and optimize tooltip display, add spread-sheet tooltip test (#158)

* refactor: optimize summary display

* fix: change tooltip get data of new interaction

* docs: add todo message in util/tooltip

* refactor: optimize tooltip's display

* feat: get tooltip data of new interaction

* test: spread-sheet add tooltip test

* refactor: code optimize

* test: add tooltip demo checked

* refactor: optimize tooltip data get and test

* refactor: optimize code in tooltip util

* refactor: optimize precision and import write

* fix: display name when field is in values

* refactor: add new line in basic

* Complete internal table sort (#167)

* feat: quick sort for table fact AND make eventemitter typesafe

* fix: complete eventemitter type AND add RANGE_SORTED event emit

* fix: some PR issue

* fix: some PR issue

Co-authored-by: wengyidong.wyd <[email protected]>

* fix: fix some error emitter type (#170)

* feat: ✨ add selected state for the header cells (#165)

* fix: 🐛 fix the wrong selected cells numbers in detail table mode

* fix: 🎨 cancle the selected state when users click the column cells or row cells again

* refactor: 🎨 optimize the logic of hover state for header cells

* feat: ✨ add selected state for the header celss

* refactor: ♻️ merge the col-row-multi-selection into the row-column-click event

* chore: 🔥 remove the col-row-multi-selection

* fix: 🐛 fix the wrong selected state theme of header cells

* refactor: ⚡ reading the cells from the cache when clear all the interaction state style

* fix: 🐛 change the state for all the selected header cells including rendered and not rendered

* fix: 🐛 fix the multi-select

* chore: 🎨 optimize the code logic of multi-click

* fix: proofread scroll offset before each render (#171)

* feat: refine drawText logic (#163)

* refactor: rename defaultConditionValues

* feat: make icon follow text

* test: add test for text and icon alignment

* fix: fix condition priority for indicate values

* refactor: reorganize file structure

* feat: refine drawTextShape logic

* feat: compatible with table mode

* chore: add annotation

* test: fix unit test

* fix: custom cell use getFormattedFieldValue instead of getData

* refactor: unify import path, rename icon function

* fix: import type

* refactor: update annotation

* feat: ✨ enable user to register custom interaction & refactor the interaction (#174)

* refactor: 🏗️ reorganize the file struncture of interaction

* refactor: ♻️ rename the constant and interface of interaction

* feat: ✨ enable user to register custom interaction

* style: 🎨 optimaiz the code style

* chore: ♻️ rename the InterceptInteraction to Intercept

* test(cross-table): tests for data-process  (#172)

* test: add transform indexes data test

* test:交叉表核心数据流程测试

* test(cross-table): 交叉表核心数据流程测试

* fix: rm useless file

* test(spreadsheet): 修改数据引用方式

* fix: table mode scroll error (#175)

Co-authored-by: xinhui.zxh <[email protected]>

* refactor: group event (#173)

* refactor: group event

* fix: some import error

* fix: rename interaction name

* fix: miss InterceptType

* fix: move to basic

* fix: import error

* fix: add base event abstract

* fix: correct corner cell width (#179)

* chore:  change the sort event name  (#183)

* fix: sort event name change

* fix: sort event name change

Co-authored-by: wengyidong.wyd <[email protected]>

* refactor(list-table): rm table facet row hierarchy (#182)

* chore: 🏗️ move the tooltip and hd-adapter into the ui and update the LICENSE (#180)

* chore: 📄 update the LICENSE

* chore: 🏗️ move the tooltip and hd-adapter into the ui

* chore: 📝 add i18n for the group order

* feat: add prettierrc in eslintrc file (#184)

* feat: add prettierrc in eslintrc file

* fix: lock prettier version

* fix: 2.3.2

Co-authored-by: wengyidong.wyd <[email protected]>

* refactor: optimize interaction and cell logic (#185)

* refactor: optimize interaction and cell logic

* refactor: optimize text padding logic

* fix: theme issue for table mode  (#181)

* fix: table mode scroll error

* fix: table mode theme

* fix: table row cell style

* fix: rm console

Co-authored-by: xinhui.zxh <[email protected]>

* feat: refine interval condition (#178)

* feat: add interval condition for data cell

* test: add unit test for condition state controller

* fix: fix interval max scale

* refactor: refactor code style according to feedback

* fix: restrict scale range

* refactor: extract mini chart fill color into palette

* test: add test for conditions

* fix: no overlap when drawing multiple lines in corner cell

* fix: fix interactive bg stroke uncover issue

* fix: 🐛 fix some rendering issues (#192)

* fix(spread-sheet-spec):bug: correct the wrong param of valueInCols

* fix: :bug: fix the wrong color schema of the canves background

* fix: :bug: fix the empty error

* feat: :sparkles: add the background for the row header and column header

* style: :lipstick: tweak the position of the text of corner cells

* test(list-table): add table mode spreadsheet spec (#189)

* test(list-table): add list-table data process spec

* test(list-table): add table mode spreadsheet spec

* fix(list-table): rm test script

* feat:click or multi click row or col show total by values (#190)

* refactor: get selected data and summaries

* fix: get selected indexes when row

* fix: multi click show tooltip when value in row

* refactor: change any type to unknow

Co-authored-by: 蒺藜 <[email protected]>

* fix(pivot-table): invalid valueInCol config (#194)

* fix(pivot-table): invalid valueInCol config

* fix(pivot-table): not rerender data

* fix(pivot-table): revert readonly

* fix(pivot-table): revert readonly

* fix(pivot-table): reduce optinal

* fix(pivot-table): optmize render func logic

* fix(pivot-table): fix cannot select row data cells in tree mode (#197)

* fix(pivot-table): fix cannot select row data cells in tree mode

* fix(pivot-table): revert default hierarchy type

* fix(pivot-table): rename

* fix(pivot-table): only select current row data cell

* feat: add  link field interaction (#196)

* feat: add interaction for linked row text

* feat: gray link field shape when unselected it

* feat: add interaction for linked table row cell

* fix: fix update options issue when merge with array

* test: add tree mode

* refactor: extract variable

* feat(interaction): remove useless corrner cell click interaction (#203)

* refactor(list-table): rm table facet row hierarchy (#207)

* style: 💄  tweak the style of total cells and subTotal cells (#204)

* feat: ✨ add total params for the node

* chore: 🔥 remove the useless file

* style: 💄 adust the coordina for the row header cells

* fix: 🐛 change the cell type for the table-series-cell

* style: 💄 ajust the coordinate for the total nodes in column header

* style: 💄 tweak the style of total cells

* style: 💄 tewak the style for subTotal cells

* fix(theme-spec): 🐛 fix the wrong param

* fix: 🐛 remove the header background

* chore(pivot-facet): 🎨 optimize the function

* fix(interaction): optimize brush selection empty data cell effect (#206)

* fix(interaction): optimize brush selection empty data cell effect

* fix(interaction): remove console

* feat: ✨ add hover state for the resize area (#208)

* chore: ✅ merge the theme-spec into spread-sheet-spec

* feat: ✨ add the interface definition for the resizeArea

* feat: ✨ add hover state for the resize area

* style: ⚡ opimaize the code style

* style: 🎨 optimize the code style

* feat(pivot-mode): compate with total data in raw data scene (#202)

* feat(pivot-mode): compate with total data in raw data scene

* fix(pivot-mode): mainly totaldata

* feat:  get tooltip data compatible with table (#201)

* refactor: get selected data and summaries

* fix: get selected indexes when row

* fix: multi click show tooltip when value in row

* refactor: change any type to unknow

* feat: get tooltip data compatible with table

* refactor: code write

* refactor: merge name

* refactor: modify state style's value

* refactor: handle name in getSummaryName

Co-authored-by: 蒺藜 <[email protected]>

* fix(interaction): support empty data cell & calc count (#209)

* feat: frozen Cols and Rows for table mode (#200)

* feat: add forzen api

* feat: add frozen col impl

* feat: add trailing col and row

* feat: revert comment

* feat: add colTrailingGrou[

* feat: update tableCornerCell

* feat: fix else in tooltip

* feat: fix import err

* feat: use splitLine style for table mode

* feat: extract addCell

* fix: extract method to table facet

* fix: add clip

* feat: extract facet util

* fix: rm red bg for col

* fix: prettier files

* fix: prettier tests

* fix: revert row change

* fix: cr issues

Co-authored-by: xinhui.zxh <[email protected]>

* refactor(scrollBar): scroll bar theme and scroll behavior (#210)

* fix: ✅ fix some tests error

* tests(data-process): fix error spec (#211)

* fix: frozen util test (#214)

Co-authored-by: xinhui.zxh <[email protected]>

* test: fix unit test (#213)

* fix: fix some type and lint error (#212)

* fix: fix some type and lint error

* fix: remove at all

* fix: cache node modules

* fix: remove lock file

* chore: upgrade jest version (#216)

* chore: upgrade jest version

* chore: extract jest config file from package.json

* chore: remove redundant file

* chore: optimize bundle size (#217)

* chore: optimize bundle size

* fix: error theme name

* test: add interaction test (#218)

* chore(tests): fix the failed tests (#219)

* chore(tests): ✅ fix the failed testes and rename the tests to __tests__

* fix: 🐛 solved the wrong hover state of column header cells

* chore: 🔧 update the assignee-reviewers

* chore: 🔧 update the reviewer assignees

* chore: simpify sheet live demo test (#221)

* chore: upgrade jest version

* chore: extract jest config file from package.json

* chore: remove redundant file

* test: remove unused mock data files

* test: simpify link field test

* test: remove meaningless test file

* test: remove unused files

* test: simplify interaction test

* test: simplify other pivot sheet

* chore: update the README (#222)

* fix: fix row and corner cell text alignment in tree and grid mode (#223)

* refactor: reduce time cost in data process (#227)

* test: add brush selection test (#228)

* fix: correct mapping condition (#231)

* chore: update the README (#234)

* chore: update the README

* chore: update options

* fix: 🐛  solve the issue of the interaction and close #230 (#233)

* fix: 🐛 close #230

* style: 🎨 opitimize the code logic

* chore: 📝 update the README

* fix: correct unit test (#236)

Co-authored-by: Bruce too <[email protected]>
Co-authored-by: Jinke Li <[email protected]>
Co-authored-by: yangzhanmei <[email protected]>
Co-authored-by: 蒺藜 <[email protected]>
Co-authored-by: visaWang <[email protected]>
Co-authored-by: maosong.wz <[email protected]>
Co-authored-by: brucetoo <[email protected]>
Co-authored-by: Wenjun Xu <[email protected]>
Co-authored-by: Xinhui <[email protected]>
Co-authored-by: xinhui.zxh <[email protected]>
Co-authored-by: YardWill <[email protected]>
Co-authored-by: wengyidong.wyd <[email protected]>
Co-authored-by: qubaomingg <[email protected]>
  • Loading branch information
14 people authored Sep 8, 2021
1 parent ce66363 commit 31dd6a0
Show file tree
Hide file tree
Showing 323 changed files with 40,209 additions and 241,074 deletions.
3 changes: 1 addition & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@ packgaes/s2-core/esm
packgaes/s2-core/dist/node_modules
node_modules
.cache


package.json
27 changes: 22 additions & 5 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"plugin:react/recommended",
"plugin:import/typescript",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended"
],
"env": {
"es6": true,
Expand All @@ -15,22 +15,39 @@
"jest": true
},
"parser": "@typescript-eslint/parser",
"plugins": ["prettier", "@typescript-eslint", "import"],
"plugins": ["prettier", "@typescript-eslint", "import", "react-hooks"],
"settings": {
"jest": {
"version": 26
},
"react": {
"version": "detect"
"version": "detect"
}
},
"rules": {
"react-hooks/exhaustive-deps": "warn",
"react-hooks/rules-of-hooks": "error",
"prettier/prettier": [
1,
{
"endOfLine": "lf",
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80,
"proseWrap": "never",
"overrides": [
{ "files": ".eslintrc", "options": { "parser": "json" } },
{ "files": ".prettierrc", "options": { "parser": "json" } }
]
}
],
"import/order": 2,
"import/no-default-export": 1,
"prettier/prettier": 2,
"no-restricted-syntax": 0,
"semi": 0,
"no-console": 0,
"no-console": 2,
"no-multi-spaces": 0,
"consistent-return": 0,
"import/no-extraneous-dependencies": 0,
Expand Down
22 changes: 21 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,36 @@ jobs:

steps:
- uses: actions/checkout@v2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}

- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm run bootstrap:ci

- name: Lint scripts
run: npm run lint

- name: Lint type
run: npm run core:tsc

- name: Build
run: npm run core:build

- name: Lint core bundle size
run: npm run bundlesize
run: npm run core:bundlesize
2 changes: 1 addition & 1 deletion .github/workflows/pr-auto-assign-reviewer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ jobs:
actions: 'add-assignees'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.pull_request.number }}
assignees: 'xingwanying,yangzhanmei,brucetoo,wjgogogo,zxc0328'
assignees: 'xingwanying,qubaomingg,yangzhanmei,YardWill,lijinke666,wjgogogo,zxc0328'
2 changes: 1 addition & 1 deletion .github/workflows/pr-notify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ jobs:
uses: lijinke666/ding-talk-pr-notify@main
with:
ding_talk_token: ${{ secrets.DING_TALK_ACCESS_TOKEN}}
at_all: true
at_all: false
38 changes: 38 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Test

on: [push]

jobs:
build:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
strategy:
matrix:
node-version: [12.x, 14.x]

steps:
- uses: actions/checkout@v2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}

- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm run bootstrap:ci

- name: Test
run: npm run core:test
2 changes: 1 addition & 1 deletion .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

cd ./packages/s2-core && npm run test
cd ./packages/s2-core && npm run tsc
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
.eslintrc
.eslintignore
.stylelintrc.json
lerna.json
yarn.lock
yarn-error.log
npm-debug.log
lerna-debug.log
package.json
tsconfig.json
tslint.json
CNAME
LICENSE
s2-site/.cache
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License
The MIT License (MIT)

Copyright (c) 2020 AntV team
Copyright (c) 2021 AntV

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
191 changes: 191 additions & 0 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
<img src="https://gw.alipayobjects.com/zos/antfincdn/R8sN%24GNdh6/language.svg" width="18"> [简体中文](./README.md)
English

<h1 align="center">@antv/s2</h1>

<div align="center">

Data-driven multi-dimensional analysis table.

<p>
<a href="https://www.npmjs.com/package/@antv/s2" target="_blank">
<img alt="Version" src="https://img.shields.io/npm/v/@antv/s2.svg">
</a>
<a href="https://codecov.io/gh/@antv/s2" target="_blank">
<img src="https://codecov.io/gh/@antv/s2/branch/master/graph/badge.svg" />
</a>
<a href="https://david-dm.org/@antv/s2" target="_blank">
<img src="https://david-dm.org/@antv/s2/status.svg"/>
</a>
<a href="#" target="_blank" target="_blank">
<img alt="npm bundle size" src="https://img.shields.io/bundlephobia/minzip/@antv/s2?style=flat-square"/>
</a>
<a href="#" target="_blank" target="_blank">
<img alt="License: MIT@AntV" src="https://img.shields.io/badge/[email protected]" />
</a>
<a href="https://github.com/antvis/S2/actions" target="_blank">
<img src="https://github.com/antvis/S2/workflows/CI/badge.svg" />
</a>
</p>

</div>

S2 is a solution in multi-dimensional cross-analysis tables, which provides data-driven analysis table components and analysis components.
It fills up the vacancy in this field in the industry. By providing the core library, essential components,
demo components and free expansion capabilities allow developers to choose freely based on their real cases, which can be used out of the box and can be used freely.



<!-- ### 🏠 [Homepage](https://s2.antv.vision) -->

## ✨ Features
1. Multi-dimensional cross-analysis: Say goodbye to a single analysis dimension and fully embrace the free combination analysis of any dimension.
2. High performance: It can support rendering in less than 8s under the total amount of millions of data and achieve second-level rendering through partial drilling.
3. High scalability: Support any custom extensions (including but not limited to layout, style, interaction, data hook flow, etc.).
4. Out of the box: Provide out-of-the-box react table components and supporting analysis components in different analysis scenarios. You only need a simple configuration to realize the table rendering of complex scenes quickly.
5. High interaction: support rich interaction forms (single selection, circle selection, row selection, column selection, freeze line header, width and height dragging, custom interaction, etc.)

## 📦 Installation

```bash
$ npm install @antv/s2
```

## 🔨 Getting Started

### 1. Data Preparation

```ts
const s2DataConfig = {
fields: {
rows: ['province', 'city'],
columns: ['type'],
values: ['price'],
},
meta: [
{
field: 'province',
name: '省份',
},
{
field: 'city',
name: '城市',
},
{
field: 'type',
name: '商品类型',
},
{
field: 'price',
name: '价格',
},
],
data: [
{
province: '浙江',
city: '杭州',
type: '',
price: '1',
},
{
province: '浙江',
city: '杭州',
type: '纸张',
price: '2',
},
{
province: '浙江',
city: '舟山',
type: '',
price: '17',
},
{
province: '浙江',
city: '舟山',
type: '纸张',
price: '0.5',
},
{
province: '吉林',
city: '丹东',
type: '',
price: '8',
},
{
province: '吉林',
city: '白山',
type: '',
price: '9',
},
{
province: '吉林',
city: '丹东',
type: ' 纸张',
price: '3',
},
{
province: '吉林',
city: '白山',
type: '纸张',
price: '1',
},
],
};
```

### 2. Options Preparation

```ts
const s2options = {
width: 800,
height: 600,
hierarchyType: 'grid',
mode: 'pivot',
valueInCols: true,
}
```

### 3. Component Rendering

```html
<div id="container"></div>
```

```ts
import { SpreadSheet } from '@antv/s2';

const container = document.getElementById('container');

const s2 = new SpreadSheet(container, s2DataCfg, s2options)

s2.render()
```

### 4. 结果

![result](https://gw.alipayobjects.com/zos/antfincdn/rPTyWU7Ibr/4c7260b6-dd7b-43e7-bbdd-f27f33ed0faa.png)


## Author

👤 [**@AntV**](https://github.com/orgs/antvis/people)


## 🤝 Contributing
Contributions, issues and feature requests are welcome.
Feel free to check [issues](https://github.com/antvis/S2/issues) page if you want to contribute.


```bash
$ git clone [email protected]:antvis/S2.git

$ cd s2

$ npm run bootstrap

$ npm run core:start
```

## 📄 License

MIT@[AntV](https://github.com/antvis).
Loading

0 comments on commit 31dd6a0

Please sign in to comment.