Commit Graph

193 Commits

Author SHA1 Message Date
anranruye
b8658549e6 Merge 0.8.2 to feature 2021-06-18 16:09:13 +08:00
anranruye
3117e72344 fix(module: table): fix selection clear (#1632)
* fix(module:table): fix selection issues

* allow SetSeletion(null) when there is not a Selection column

* allow change selection by setting RowDate.Selected
2021-06-15 18:22:07 +08:00
anranruye
6cd8482292 fix(module: table): add RemoteDataSource (#1558)
* feat(module:table): add PaginationMode parameter

* fix(module:table): fix pagination

* docs(module:table): add doc for PaginationMode attribute

* add a demo file

* docs(module:table): add demo for pagination mode

* feat(module:table): add RemoteDataSource property

* delete the demo for PaginationMode

* Update Table.razor.cs

* add `ajax` demo

* Update ajax.md

* Update Ajax.razor

* fix demo

* clear demo

* fotmat demo

* delete StateHasChanged

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2021-06-15 16:13:06 +08:00
anranruye
dc02db39da fix(module: table): fix wrong compare operator, remove input components for unary filter operators (#1596)
* fix(module:table): fix wrong compare operator

* remove whitespace

* fix(module:table): remove input component for 'is null' and 'is not null' table filter

* Update Column.razor

* fix(module:table): allow remove first filter

* remove whitespace

* Update Column.razor

* Update Column.razor

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-06-09 16:14:41 +08:00
anranruye
8157f61e84 refactor(module: table): restore Table.Filters to IEnumerable<TableFilter<TData>> type (#1608) 2021-06-08 16:51:30 +08:00
anranruye
0577db8a5c fix(module: table): fix filter not applied (#1594) 2021-06-08 00:04:12 +08:00
anranruye
840184fd51 fix(module: table): fix filter icon wrong highlight, fix filter behavior when there is no input value (#1592)
* fix(module:table): fix filter icon wrong highlight

* Update Column.razor

* fix(module:table): fix filter for no input
2021-06-07 23:47:03 +08:00
anranruye
fca845ab00 fix(module: table): fix can not close filter by confirm button (#1602) 2021-06-05 23:51:29 +08:00
anranruye
ce55fc0f1d refactor(module: table): optimize render fragments (#1597) 2021-06-05 23:35:04 +08:00
anranruye
477c57f9db feat(module: table): filter enhancement (#1563)
* feat(module: table): allow access to filter operator and condition

* feat(module: table): allow access to filter operator and condition

* feat(module:table): allow remove the first filter

* Update Column.razor

* feat(module:table): modify closing button position

* feat(module:table): match new style

* feat(module:table): add header column divider

* fix(module:table): apply filter when close the filter panel by clicking the filter icon

* Update Column.razor

* style(module:table): trim Column.razor

* Update Column.razor

* Update Column.razor

* Update Column.razor

* Update Column.razor

* fix(module:overlaytrigger): fix overlay not close after overlay size changes

* unify muiltiple filter popup containers to one
2021-06-03 18:54:41 +08:00
James Yeung
c181916dea chore: sync ant-design v4.16.0 (#1569) 2021-05-25 10:01:53 +08:00
James Yeung
bfb5e4f396 merge 0.8.1 to feature 2021-05-16 19:58:03 +08:00
anranruye
c92b9566f1 fix(module: table): fix built-in filter select option width (#1500) 2021-05-11 14:15:35 +08:00
Zonciu Liang
d77da6c003 fix(module: table): set DisplayName to null if MemberExpression is not found in the DataIndex expression tree (#1488) 2021-05-08 13:03:07 +08:00
anranruye
aa3114f643 feat(module: table): add built-in filter for enum types, support null value for List filter type (#1439)
* feat(module:table): add built-in filter for not composable enum types, support null value for List filter type

* feat(module:table): throw an exception for composable enum types when use built-in filter

* Revert "feat(module:table): throw an exception for composable enum types when use built-in filter"

This reverts commit 0e04ed91f58e23b93a441ac2aa00a794ae1a9b46.

* feat(module:table): add support for null value localization

* docs(module: table): update for enum build-in filter

* feat(module:table): add built-in filter for composable enum types

* docs(module: table): update for enum built-in filter

* feat(module: table): add enum built-in filter

* feat: add static constructor to EnumHelper

Co-authored-by: 令远 孔 <lingyuan.kong@outlook.com>
2021-05-08 13:00:52 +08:00
Zonciu Liang
d98b402b10 fix(module: table): exception is thrown when the DataIndex ends with the get_Item method. (#1485) 2021-05-08 01:47:41 +08:00
anranruye
20c4926615 fix(module: table): fix spell mistake for TableFilterType.FieldType (#1442)
* style(module:table): fix spell mistake for TableFilterType.FieldType

* style(module:table): fix spell mistake for TableFilterType.FieldType
2021-05-01 03:40:05 +08:00
anranruye
202220dcd7 fix(module: table): fix wrong spell for TableFilterCompareOperator.EndsWith (#1434)
* fix(module: table): remove an redundant whitespace

* fix(module: table): fix wrong spell

* fix(module: table): fix wrong spell

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-28 15:14:21 +00:00
James Yeung
bcb9effc75 fix(module: table): check null in set sorter method (#1423) 2021-04-27 16:37:19 +08:00
ldsenow
7b7ab782c6 feat(module: table): add Hidden for columns (#1410) 2021-04-26 17:35:01 +08:00
ldsenow
64979aef3c feat(module: table): add pagination template (#1409) 2021-04-25 14:09:24 +08:00
Zonciu Liang
d0e40fbdfd refactor: replace PropertyAccessHelper to PathHelper (#1386)
* feat(module: core): add member path helper

* refactor(module: table): replace PropertyAccessHelper to PathHelper

* docs: replace path-based-property-access to member-path-helper

* refactor(module: select): replace SelectItemPropertyHelper to PathHelpe
2021-04-24 13:07:27 +08:00
anranruye
3abec5f4ba fix(module: table): column header sorter not refresh after ClearSorter is called (#1385)
* fix(module:table): column header sorter not refresh after ClearSorter is called

* add judgment condition for calling StateHasChanged in IFieldColumn.ClearSorter()
2021-04-19 15:07:36 +08:00
anranruye
fb3d5b8d5b fix(module: table): can not use DataIndex nullable mode with not nullable property (#1382) 2021-04-18 20:53:57 +08:00
Zonciu Liang
4a680e6b76 fix(module: table): Unify FieldName, add DisplayAttribute for DiplayName, fix Filter for DataIndex (#1372)
* fix(module: table): Unify FieldName value

* fix(module: table): Get column name from DisplayAttribute

* fix(module: table): Filter for DataIndex

* docs(module: table): Intuitive sorterCompare for Filter demo

* fix(module: table): fix header title doesn't display when Sortable is false

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-17 16:27:52 +00:00
James Yeung
d4cbc6d4e0 feat: add element component (#1378)
* refactor: rename `HtmlElement` property case

* rename the directory name for overlay

* add element component
2021-04-17 22:14:01 +08:00
James Yeung
fe0be94b55 fix(module: table): ellipsis can't work (#1376) 2021-04-17 18:52:15 +08:00
James Yeung
4292201125 fix(module: table): incorrect bool filter (#1361) 2021-04-16 09:18:57 +08:00
Andrzej Bakun
b2a729af82 fix(module: table): locale fix (#1356) 2021-04-16 00:08:28 +08:00
ElderJames
433d376739 merge master into feature 2021-04-15 12:55:36 +08:00
Andrzej Bakun
941f58cc65 fix(module: table): Table tree children limit remove (#1345) 2021-04-14 10:45:45 +08:00
YMohd
9ff708eb31 feat(module: table): add build-in filters (#1267)
* tablefilter-moreoptions

* tablefilter-moreoptions

* tablefilter-moreoptions

* tablefilter-moreoptions

* tablefilter-moreoptions

* fix demo and docs

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-11 01:11:19 +08:00
Andrzej Bakun
7b5b08c95b fix(module: table): bring PR1208 to PR1303 merge master into feature (#1326) 2021-04-09 00:49:20 +08:00
ElderJames
aaff88adf7 merge master into feature 2021-04-08 22:32:48 +08:00
Zonciu Liang
8476eccd30 fix(module: table): fix table re-render when ScrollX is set (#1311) 2021-04-04 21:02:47 +08:00
Andrzej Bakun
a9a0f2e937 fix(module: table): perf optimization & data source change issue (#1304)
* chore: add GitHub Actions for auto preview (#1205)

* chore: add github actions for auto preview

* fix setup job

* chore: add GitHub Actions for auto preview (#1205)

* fix(module:table): guard against false entries in _dataSourceCache

* fix(module:table): perf - double to single render on datasource change

* fix(module:table): perf optimization to avoid multiple renders

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-03 18:40:23 +00:00
Zonciu Liang
3bf616b735 fix(module: table): fix DataIndex Column with incorrect sorting and filter (#1295)
* refactor(module: table): Unify the behavior of Field and DataIndex

* fix(module: table): Fix DataIndex Column doesn't refresh

* doc(module: table): add DataIndex column filter demo

* doc(module: table): fix Blazor table

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-02 15:54:56 +00:00
Magehernan
71f49c5c15 fix(module: table): ExpandableRow not working with ActionColumn #1284 (#1285)
* (fix) Table ExpandableRow not working with ActionColumn #1284

* Add Tree Button Expand on Action Columm.

Check the position of Selection Column when calculate the position for expand button on tree mode and expand mode.
2021-04-01 12:50:30 +08:00
James Yeung
469bbc511b chore: sync ant-design v4.14.0 (#1249) 2021-03-31 19:23:29 +08:00
James Yeung
d2e9c4b247 feat(module: config-provider): support RTL (#1238)
* feat(module: config-provider): support RTL

* add rtl for each component

* fix rtl for pagination

* add rtl for overlay
2021-03-31 19:23:26 +08:00
Zonciu Liang
d7ce701daa refactor(module: pagination): cover the apis of react (#1220) 2021-03-31 19:03:00 +08:00
James Yeung
1181673273 feat(module: table): add summary (#1218)
* feat(module: table): add summary row

* feat: add fixed summary cell
2021-03-31 19:02:57 +08:00
Andrzej Bakun
d1f1227a4f feat(module: table): add OnExpand event (#1208) 2021-03-31 19:02:55 +08:00
James Yeung
16f56f7e9d feat(module: table): add a method to get query model (#1202) 2021-03-31 19:02:52 +08:00
笨木头
1a86a88002 fix(module: table): clicking outside couldn't close filter panel (#1232) 2021-03-10 20:03:55 +08:00
James Yeung
853eef8244 fix(module: table): invoke OnChange twice on pagination was changed (#1211)
* fix(module: table): invoke OnChange twice on pagination was changed

* fix preview ci
2021-03-06 10:20:41 +08:00
James Yeung
ad99e38fce fix(module: table): bring OnRowClick back (#1200) 2021-03-04 17:31:48 +08:00
James Yeung
1aadcecf35 fix(module: table): fix doesn't refresh when expand row (#1199) 2021-03-04 17:30:52 +08:00
James Yeung
b65c11ae61 fix(module: table): tree data error (#1188) 2021-03-02 00:46:03 +08:00
qinhuaihe
cc4a7bbf13 feat(module: table): add on row and cell (#1175)
* fix(module:table): set selectedRows exception

* fix(module:table): set selectedRows exception

* fix(module: tree) selected highlight confusion

* Revert "fix(module: tree) selected highlight confusion"

This reverts commit 91300ac664f8dcebc20f1a96e21f8afc1fac079d.

* fix(module: tree): remove the IsFixed attribute

* feat(module: table): add table onrow method

* feat(module: table) add onrow method to table column

* feat(module: table) add onrow method to table column

* feat(module: table) add onheaderrow and onheadercell methods to table

* feat(module: table) fix doc encoding

* fix demo

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-03-01 23:47:16 +08:00
James Yeung
a49da1ffed chore: sync ant-design v4.13.0 (#1181) 2021-02-28 22:41:28 +08:00
James Yeung
28ffc2d184 fix(module: table): show empty status when there are no data (#1180) 2021-02-28 12:51:36 +08:00
James Yeung
4065869806 feat(module: table): add filters (#1178)
* feat: add table filter

* add filter buttons

* fix filter menu

* make filter work

* support multiple filters

* delete the old files

* support single select
2021-02-27 23:55:48 +08:00
James Yeung
0c13eb7198 docs(module: table): add editable cell/row demo (#1152)
* feat(module: table): add editable cell demo

* add editable row de
2021-02-22 11:29:56 +08:00
zmayor
b8522e27de fix(module: table): set selectedRows exception (#1148)
* fix(module:table): set selectedRows exception

* fix(module:table): set selectedRows exception
2021-02-20 17:50:27 +08:00
James Yeung
597133363a fix(module: table): support more generic units for scroll x/y (#1137) 2021-02-14 20:15:53 +08:00
James Yeung
af300c6ecc fix(module: table): missing value for the sort property of SortModel (#1105) 2021-02-06 00:55:46 +08:00
James Yeung
82031e0a66 fix(module: table): fix the scroll position calc method (#1063) 2021-02-01 23:42:54 +08:00
Kane
a84382f64b fix(module: table): sorter was blocked (#1061) 2021-02-01 23:17:54 +08:00
Zonciu Liang
ea412b24ec feat(core): access object's property by path-based string (#1056)
* fix: DataIndex access maybe null object

* feat: access object's property by path-based string

* doc: update Table DataIndex demo

* doc: correct Table/demo/custom-row-style.md file encoding

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-01-31 01:25:25 +08:00
James Yeung
50cb65956a fix(module: table): mistaken sortable (#1058) 2021-01-30 22:21:26 +08:00
Andrzej Bakun
e7b01d509c fix(module: table): table exception on refresh (#1040)
* fix(module:overlay): remove obsolete js call

check for Ref.Id before any js operation on it

* fix(module:table): js interop exceptions on dispose

* docs(module:slider): typo fix

* docs(module:spider): typ
2021-01-25 12:53:19 +08:00
James Yeung
d65ffabdc7 chore: sync ant-design v4.11.1 (#1039) 2021-01-25 08:31:53 +08:00
matt
e40f93127d feat(module: table): add RowClassName (#1031)
* feat(module: table): add row styling

* docs: add RowClassName to docs

* docs: add custom row style subtext

* feat(module: table): add ExpandedRowClassName

* remove RowClassName for expand row

* add chinese doc

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2021-01-24 13:56:27 +08:00
cqgis
080d4dda43 feat(module: table): add sort directions and default sort order (#778)
* feat: table  column sort add sortway support singleness or mutiple

* fix: error method name

* add sort directions

* delete useless property

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2021-01-24 13:52:57 +08:00
James Yeung
8d50b1cb1a fix(module: table): selection was broken with scroll y (#1020) 2021-01-22 09:56:51 +08:00
James Yeung
bbc69f25af feat(module: table): support multiple sorter (#1019) 2021-01-22 00:45:15 +08:00
Andrzej Bakun
152a574577 feat(module: overlay): OverlayTrigger not bound to a div (#937)
* feat(module:overlay): OverlayTrigger not bound to a div

* feat(module:overlay): OverlayTrigger not bound to a div

* feat(module:overlay): Logic transfer to single Overlay

* feat(module:overlay): remove obsolete duplication

* feat(module:Tooltip): Add for unbounded oncontextmenu event handler

* feat(module:tooltip): unbound js event listeners remove

* docs(module:tooltip): unbound explanation

* fix(module:button): attach Ref to top level html element @ref

* feat(module:dropdown&tooltip&popconfirm&popover): Overlay not bound to a div

* docs(module:dropdown&tooltip&popconfirm&popover): unbound explanation

* feat(module:OverlayTrigger): common logic relocation

* feat(module:overlaytrigger): Overlay not bound to a div

* feat(module:DatePicker): Overlay not bound to a div

* feat(module:select): Overlay not boud to div

* fix(module:select): onclickarrow event relocation

* fix(module:select): rename Show to OnArrowClick

* feat(module:avatar): Overlay not bound to a div

* docs(module:avatar): demo switch to unbound version

* feat(module:autocomplete): partial OverlayTrigger not bound to a div

* feat(module:slider): tooltip

* docs(module:slider): tooltip

* fix(module:overlay): add SetVisible method

* feat: set Ref where missing, performance

components register Ref when missing
IsFixed flag for CascadeValue changed
hard-code sequence numbers when using RenderTreeBuilder
Rate component use Tooltip Unbound version
Tabs test fix

* fix: revert changes (accidental)

* feat(module:upload): tooltip with unbound usage

* feat(module:table): column use of unbound tooltip

* feat(module:autocomplete):overlay unbound from div

* fix(module:upload): missing div restore

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-01-21 17:20:10 +08:00
fan0217
90e98e5487 feat(module: table): specific the position of the expand button (#1002)
* Table增加属性ExpandIconColumnIndex

* Table增加属性ExpandIconColumnIndex

* 调整Table的ExpandIconColumnIndex属性默认值为0

* 处理Table的Expand展开按钮和Tree展开按钮冲突的问题

* fix icon column index for expand row

* fix style

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2021-01-21 14:56:20 +08:00
Zonciu Liang
a09a8e6ac3 feat(module: table): add DataIndex support (#999)
* docs: correct parameter name

* feat(module: table): add data index

* refactor(module: table): make DataIndex expression cached

* refactor(module: core): recursive method for PropertyAccessHelper.GetRootParameterExpression

* refactor(module: table): make DataIndex feature clearer

* feat(module: table): support DataIndex format

* fix: sort column style

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2021-01-20 23:35:57 +08:00
Magehernan
3a6360524d fix(module: table): incorrect no data style with ExpandTemplate (#985) 2021-01-13 23:20:10 +08:00
Zonciu Liang
9d9506bb5c feat(module: table): add SorterCompare parameter for sorter (#969)
* feat(module: table): add custom comparer

* docs: keep the DataSource of Table's blazor demo unchanged

* Update custom-sort.md

* refactor(module: table): change Comparer to SorterCompare

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-01-12 00:39:40 +08:00
James Yeung
d266f77346 fix(module: table): exception if field is null (#965) 2021-01-11 22:36:06 +08:00
James Yeung
d24c7a5325 fix(module: table): sorter works incorrectly (#962)
* fix(module: table): sorter works incorrectly

* docs: delete the jsx block
2021-01-11 13:39:02 +08:00
James Yeung
1a2866cf9d feat(module: table): add ellipsis column (#957) 2021-01-10 21:44:25 +08:00
James Yeung
43664736f7 feat(module: table): fixed header & columns (#954)
* feat(module: table): support fixed header & columns

* fix layout of the fixed columns & header

* fix scrollbar hidding

* header and body sync scroll

* fix column width calc

* fix demo pagesize

* fix docs
2021-01-09 23:57:31 +08:00
James Yeung
56dfae7f62 chore: sync ant-design v4.10.0 (#943) 2021-01-09 09:07:02 +08:00
James Yeung
dc208f6491 fix(module: table): tree data doesn't work in asynchrony (#929) 2020-12-26 22:06:16 +08:00
fan0217
b8a6062f6f fix(module: table): add header style and fix the table size (#909)
* rename to header style

* fix selection and action

* delete  useless style

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2020-12-23 00:47:35 +08:00
Elliot
4ba4a301fb feat(module: table): add TitleTemplate for column title (#857)
* feat(module: table): add TitleTemplate for column title

* fix: action column templated title and add a demo

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2020-12-05 18:44:38 +08:00
James Yeung
df99bad7e5 chore: sync ant-design v4.9.0 (#842) 2020-12-01 11:02:28 +08:00
Alex Friedman
456c0819ba feat(module: table): add OnRowClick to Table component (#785)
* Add OnRowClick to Table component

This adds a new Parameter to the Table component called OnRowClick that will trigger whenever a user clicks on any of the rows in the table.

* Updated Table row click to pass RowData

* refactor: clean code

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2020-11-18 17:10:35 +08:00
James Yeung
fcd8393742 feat(module: table): support for tree data (#771)
* feat(module: table): support for tree data

* feat(module: table): support for tree data

* fix: tests
2020-11-09 22:17:27 +08:00
James Yeung
fec86ed11b feat(module: table): support for expand row (#768)
* feat(module: table): support for expand row

* feat(module: table): add RowExpandable
2020-11-08 23:29:05 +08:00
James Yeung
c3484dd846 fix(module: table): pagination didn't change while pageindex was changed (#767) 2020-11-08 16:55:34 +08:00
James Yeung
c71501109a fix(module: table): header col mistake (#689) 2020-11-03 13:31:22 +08:00
老九
2d2652317d fix(module: table): make _waitingReload alaways is true in DataSource setter (#746) 2020-10-30 22:40:19 +08:00
James Yeung
428255086e chore: sync ant-design v4.7.3 (#719) 2020-10-25 23:07:27 +08:00
老九
b1bbe30323 perf(module: table): use hash-code comparison for all the parameters to control UI rendering (#716)
* 为组件增加GetParametersHashCode()扩展方法,以支持控制组件的渲染方式;
为Table组件增加RenderMode的渲染模式参数;

* fix: translate the comments

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2020-10-25 18:31:31 +08:00
老九
1b53d1a425 fix(module: table): incorrect SetSortType method (#709) 2020-10-23 21:52:15 +08:00
James Yeung
66f6183e0f feat(module: avatar): add avatar group (#677)
feat: add max count style

feat(module: avatar): add avatar group
2020-10-14 13:56:59 +08:00
James Yeung
3fb5998d19 chore: sync ant-design v4.7.0 (#675) 2020-10-14 13:31:22 +08:00
bingbingtalk
0930f79da8 feat(module: table): add colspan & rowspan (#649)
* feat(module: table): add colspan & rowspan

* fix: unit test

* test: add colspan and rowspan case

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2020-09-28 16:06:02 +08:00
James Yeung
a8d04b6237 chore: sync ant-design v4.6.5 (#633) 2020-09-20 14:53:20 +08:00
TimChen
cbc5e823f0 refactor(module: all): separate the normal and template parameters (#552)
* fix: card title template

* fix: template:badge,collapse

* fix: comment refactor template

* fix: ribbonTests

* feat: descriptions refactor template

* feat: empty refactor template

* feat: list refactor template

* feat: menu refactor template

* feat: confirm add question icon

* feat: pageHeader and statistic refactor template

* feat: popconfirm refactor template

* feat: popver refactor template

* feat: result refactor template

* feat: step refactor template

* feat: switch refactor template

* feat: table refactor template

* feat: transfer refactor template

* feat: optimized code

* fix: pageheader

* refactor(module: empty): remove empty image constant images

Co-authored-by: ElderJames <shunjiey@hotmail.com>
2020-09-16 13:58:16 +08:00
James Yeung
5af08ef933 chore: sync ant-design v4.6.4 (#596) 2020-09-13 22:16:12 +08:00
James Yeung
19bfe1bfff chore: sync ant-design v4.6.3 (#577) 2020-09-11 15:44:34 +08:00
James Yeung
95df2c811d fix(module: table): the sorter doesn't work (#582) 2020-09-08 17:13:26 +08:00
James Yeung
bd34858efd feat: support for globalization & localization (#578)
* feat: add locale

* feat: add locale interfaces

* fix: add locale interfaces for components

* fix: use local classes instead of interfaces

* feat: implement the locale provider

* feat: make some components to support localization

* fix: default language

* fix: test

* chore: remove the useless reference
2020-09-07 22:46:50 +08:00
James Yeung
58504bba1b refactor(formatter): merge the special method of timespan into formatter (#575)
* refactor(formatter): merge the special method of timespan into formatter

* test: add test for formatte
2020-09-06 15:31:40 +08:00