@operato/data-grist 2.0.0-alpha.2 → 2.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/dist/src/accumulator/accumulator.js +4 -4
  3. package/dist/src/accumulator/accumulator.js.map +1 -1
  4. package/dist/src/configure/rows-option-builder.js +2 -1
  5. package/dist/src/configure/rows-option-builder.js.map +1 -1
  6. package/dist/src/configure/zero-config.js +1 -0
  7. package/dist/src/configure/zero-config.js.map +1 -1
  8. package/dist/src/data-card/event-handlers/record-card-click-handler.js +1 -1
  9. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  10. package/dist/src/data-grid/data-grid-accum-field.js +3 -2
  11. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  12. package/dist/src/data-grid/data-grid-body.js +3 -1
  13. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  14. package/dist/src/data-grid/data-grid-header.d.ts +1 -0
  15. package/dist/src/data-grid/data-grid-header.js +16 -14
  16. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  17. package/dist/src/data-grist.d.ts +225 -3
  18. package/dist/src/data-grist.js +195 -3
  19. package/dist/src/data-grist.js.map +1 -1
  20. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +1 -1
  21. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  22. package/dist/src/data-manipulator.d.ts +6 -4
  23. package/dist/src/data-manipulator.js +91 -21
  24. package/dist/src/data-manipulator.js.map +1 -1
  25. package/dist/src/editors/ox-grist-editor-number.js +2 -2
  26. package/dist/src/editors/ox-grist-editor-number.js.map +1 -1
  27. package/dist/src/editors/ox-grist-editor.js +5 -1
  28. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  29. package/dist/src/editors/ox-input-tree.js +1 -1
  30. package/dist/src/editors/ox-input-tree.js.map +1 -1
  31. package/dist/src/handlers/contextmenu-tree-mutation.js +1 -19
  32. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  33. package/dist/src/renderers/ox-grist-renderer-tree.js +1 -1
  34. package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -1
  35. package/dist/src/types.d.ts +435 -4
  36. package/dist/src/types.js +9 -0
  37. package/dist/src/types.js.map +1 -1
  38. package/dist/stories/accumulator.stories.js +10 -5
  39. package/dist/stories/accumulator.stories.js.map +1 -1
  40. package/dist/stories/dynamic-editable.stories.js +10 -0
  41. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  42. package/dist/stories/fixed-column.stories.js +3 -3
  43. package/dist/stories/fixed-column.stories.js.map +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/docs/gutter/gutter.md +7 -0
  46. package/package.json +5 -5
  47. package/src/accumulator/accumulator.ts +4 -4
  48. package/src/configure/rows-option-builder.ts +11 -1
  49. package/src/configure/zero-config.ts +1 -0
  50. package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
  51. package/src/data-grid/data-grid-accum-field.ts +3 -2
  52. package/src/data-grid/data-grid-body.ts +3 -1
  53. package/src/data-grid/data-grid-header.ts +22 -18
  54. package/src/data-grist.ts +250 -3
  55. package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
  56. package/src/data-manipulator.ts +113 -22
  57. package/src/editors/ox-grist-editor-number.ts +3 -2
  58. package/src/editors/ox-grist-editor.ts +5 -1
  59. package/src/editors/ox-input-tree.ts +1 -1
  60. package/src/handlers/contextmenu-tree-mutation.ts +1 -19
  61. package/src/renderers/ox-grist-renderer-tree.ts +1 -1
  62. package/src/types.ts +443 -4
  63. package/stories/accumulator.stories.ts +10 -5
  64. package/stories/dynamic-editable.stories.ts +10 -0
  65. package/stories/fixed-column.stories.ts +3 -3
  66. package/themes/grist-theme.css +1 -1
  67. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler copy.d.ts +0 -7
  68. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler copy.js +0 -19
  69. package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler copy.js.map +0 -1
  70. package/dist/src/handlers/contextmenu-tree.d.ts +0 -3
  71. package/dist/src/handlers/contextmenu-tree.js +0 -30
  72. package/dist/src/handlers/contextmenu-tree.js.map +0 -1
  73. package/dist/src/handlers/move-up copy.d.ts +0 -3
  74. package/dist/src/handlers/move-up copy.js +0 -26
  75. package/dist/src/handlers/move-up copy.js.map +0 -1
@@ -79,7 +79,8 @@ const config = {
79
79
  },
80
80
  filter: 'search',
81
81
  sortable: true,
82
- width: 120
82
+ width: 120,
83
+ fixed: true
83
84
  },
84
85
  {
85
86
  type: 'string',
@@ -105,6 +106,10 @@ const config = {
105
106
  align: 'right'
106
107
  },
107
108
  accumulator: 'avg',
109
+ // accumulator: {
110
+ // type: 'avg',
111
+ // tag: true
112
+ // },
108
113
  sortable: true,
109
114
  width: 130
110
115
  },
@@ -115,7 +120,10 @@ const config = {
115
120
  header: 'accval2',
116
121
  record: {
117
122
  editable: true,
118
- align: 'right'
123
+ align: 'right',
124
+ renderer: (value: any, column: any, record: any) => {
125
+ return value && Intl.NumberFormat('en-US').format(value)
126
+ }
119
127
  },
120
128
  accumulator: {
121
129
  type: 'sum',
@@ -162,9 +170,6 @@ const config = {
162
170
  {
163
171
  name: 'name',
164
172
  desc: true
165
- },
166
- {
167
- name: 'email'
168
173
  }
169
174
  ],
170
175
  pagination: {
@@ -24,6 +24,7 @@ const fetchHandler: FetchHandler = async ({ sorters = [], filters, page, limit }
24
24
  name: idx % 2 ? `shnam-${start + idx + 1}` : `heartyoh-${start + idx + 1}`,
25
25
  description: idx % 2 ? `hatiolabmanager${start + idx + 1}1234567890` : `hatiosea manager-${start + idx + 1}`,
26
26
  number: idx,
27
+ float: 1.3,
27
28
  date: '2023-09-20',
28
29
  routing: {
29
30
  id: '006dc64d-4fb9-4afc-a9ea-962bd1b9e110',
@@ -117,6 +118,15 @@ function buildConfig({ headerFilter }: { headerFilter: boolean }) {
117
118
  },
118
119
  width: 80
119
120
  },
121
+ {
122
+ type: 'float',
123
+ name: 'float',
124
+ header: 'float',
125
+ record: {
126
+ editable: true
127
+ },
128
+ width: 80
129
+ },
120
130
  {
121
131
  type: 'date',
122
132
  name: 'date',
@@ -144,8 +144,7 @@ const config = {
144
144
  },
145
145
  filter: 'search',
146
146
  sortable: true,
147
- width: 120,
148
- fixed: true
147
+ width: 120
149
148
  },
150
149
  {
151
150
  type: 'string',
@@ -161,7 +160,8 @@ const config = {
161
160
  click: (columns, data, column, record, rowIndex, target) => {
162
161
  alert(`${column!.name} ${record![column!.name]}, row : ${rowIndex}`)
163
162
  }
164
- } as GristEventHandlerSet
163
+ } as GristEventHandlerSet,
164
+ fixed: true
165
165
  },
166
166
  {
167
167
  type: 'email',
@@ -41,7 +41,7 @@ body {
41
41
 
42
42
  --grid-record-background-color: var(--theme-white-color);
43
43
  --grid-record-odd-background-color: #f9f7f5;
44
- --grid-record-padding: 0 0 0 var(--padding-default);
44
+ --grid-record-padding: 0 5px 0 5px;
45
45
  --grid-record-color: var(--secondary-color);
46
46
  --grid-record-color-hover: var(--primary-color);
47
47
  --grid-record-wide-fontsize: var(--fontsize-small);
@@ -1,7 +0,0 @@
1
- import { DataGridBody } from '../data-grid-body';
2
- /**
3
- * ox-grid-body 의 focus-change handler
4
- *
5
- * - handler의 this 는 ox-grid-body임.
6
- */
7
- export declare function dataGridBodyFocusChangeHandler(this: DataGridBody, e: Event): Promise<void>;
@@ -1,19 +0,0 @@
1
- /**
2
- * ox-grid-body 의 focus-change handler
3
- *
4
- * - handler의 this 는 ox-grid-body임.
5
- */
6
- export async function dataGridBodyFocusChangeHandler(e) {
7
- const { row: rowIndex, column: columnIndex } = e.detail;
8
- const target = this.getFieldByIndex(rowIndex, columnIndex);
9
- var { column, record } = target || {};
10
- /* do column focus handler */
11
- if (column) {
12
- var { focus } = column.handlers;
13
- focus && focus(this.columns, this.data, column, record, rowIndex, target);
14
- }
15
- /* do rows focus handler */
16
- var { focus: rowsFocus } = this.config.rows.handlers;
17
- rowsFocus && rowsFocus(this.columns, this.data, column, record, rowIndex, target);
18
- }
19
- //# sourceMappingURL=data-grid-body-focus-change-handler%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-grid-body-focus-change-handler copy.js","sourceRoot":"","sources":["../../../../src/data-grid/event-handlers/data-grid-body-focus-change-handler copy.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAqB,CAAQ;IAC/E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,GAAI,CAAiB,CAAC,MAAM,CAAA;IAExE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAE1D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAErC,6BAA6B;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC3E,CAAC;IAED,2BAA2B;IAC3B,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IACpD,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACnF,CAAC","sourcesContent":["import { DataGridBody } from '../data-grid-body'\n\n/**\n * ox-grid-body 의 focus-change handler\n *\n * - handler의 this 는 ox-grid-body임.\n */\nexport async function dataGridBodyFocusChangeHandler(this: DataGridBody, e: Event): Promise<void> {\n const { row: rowIndex, column: columnIndex } = (e as CustomEvent).detail\n\n const target = this.getFieldByIndex(rowIndex, columnIndex)\n\n var { column, record } = target || {}\n\n /* do column focus handler */\n if (column) {\n var { focus } = column.handlers\n focus && focus(this.columns, this.data, column, record, rowIndex, target)\n }\n\n /* do rows focus handler */\n var { focus: rowsFocus } = this.config.rows.handlers\n rowsFocus && rowsFocus(this.columns, this.data, column, record, rowIndex, target)\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { DataGridField } from '../data-grid/data-grid-field';
2
- import { ColumnConfig, GristData, GristRecord } from '../types';
3
- export declare const ContextMenuTree: (columns: ColumnConfig[], data: GristData, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) => void;
@@ -1,30 +0,0 @@
1
- /*
2
- * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,
3
- * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.
4
- */
5
- export const ContextMenuTree = function (columns, data, column, record, rowIndex, field) {
6
- // var moveTo = rowIndex - 1
7
- // var length = data.records.length
8
- // if (rowIndex >= length || moveTo < 0 || moveTo >= length) {
9
- // return
10
- // }
11
- // data.records.splice(rowIndex, 1)
12
- // data.records.splice(moveTo, 0, record)
13
- // field.dispatchEvent(
14
- // new CustomEvent('record-change', {
15
- // bubbles: true,
16
- // composed: true
17
- // })
18
- // )
19
- // field.dispatchEvent(
20
- // new CustomEvent('focus-change', {
21
- // bubbles: true,
22
- // composed: true,
23
- // detail: {
24
- // row: moveTo,
25
- // column: column
26
- // }
27
- // })
28
- // )
29
- };
30
- //# sourceMappingURL=contextmenu-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contextmenu-tree.js","sourceRoot":"","sources":["../../../src/handlers/contextmenu-tree.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,UAC7B,OAAuB,EACvB,IAAe,EACf,MAAoB,EACpB,MAAmB,EACnB,QAAgB,EAChB,KAAoB;IAEpB,4BAA4B;IAC5B,mCAAmC;IACnC,8DAA8D;IAC9D,WAAW;IACX,IAAI;IACJ,mCAAmC;IACnC,yCAAyC;IACzC,uBAAuB;IACvB,uCAAuC;IACvC,qBAAqB;IACrB,qBAAqB;IACrB,OAAO;IACP,IAAI;IACJ,uBAAuB;IACvB,sCAAsC;IACtC,qBAAqB;IACrB,sBAAsB;IACtB,gBAAgB;IAChB,qBAAqB;IACrB,uBAAuB;IACvB,QAAQ;IACR,OAAO;IACP,IAAI;AACN,CAAC,CAAA","sourcesContent":["import { DataGridField } from '../data-grid/data-grid-field'\nimport { ColumnConfig, GristData, GristRecord } from '../types'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const ContextMenuTree = function (\n columns: ColumnConfig[],\n data: GristData,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n): void {\n // var moveTo = rowIndex - 1\n // var length = data.records.length\n // if (rowIndex >= length || moveTo < 0 || moveTo >= length) {\n // return\n // }\n // data.records.splice(rowIndex, 1)\n // data.records.splice(moveTo, 0, record)\n // field.dispatchEvent(\n // new CustomEvent('record-change', {\n // bubbles: true,\n // composed: true\n // })\n // )\n // field.dispatchEvent(\n // new CustomEvent('focus-change', {\n // bubbles: true,\n // composed: true,\n // detail: {\n // row: moveTo,\n // column: column\n // }\n // })\n // )\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { DataGridField } from '../data-grid/data-grid-field';
2
- import { ColumnConfig, GristData, GristRecord } from '../types';
3
- export declare const MoveUp: (columns: ColumnConfig[], data: GristData, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) => void;
@@ -1,26 +0,0 @@
1
- /*
2
- * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,
3
- * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.
4
- */
5
- export const MoveUp = function (columns, data, column, record, rowIndex, field) {
6
- var moveTo = rowIndex - 1;
7
- var length = data.records.length;
8
- if (rowIndex >= length || moveTo < 0 || moveTo >= length) {
9
- return;
10
- }
11
- data.records.splice(rowIndex, 1);
12
- data.records.splice(moveTo, 0, record);
13
- field.dispatchEvent(new CustomEvent('record-change', {
14
- bubbles: true,
15
- composed: true
16
- }));
17
- field.dispatchEvent(new CustomEvent('focus-change', {
18
- bubbles: true,
19
- composed: true,
20
- detail: {
21
- row: moveTo,
22
- column: column
23
- }
24
- }));
25
- };
26
- //# sourceMappingURL=move-up%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"move-up copy.js","sourceRoot":"","sources":["../../../src/handlers/move-up copy.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,UACpB,OAAuB,EACvB,IAAe,EACf,MAAoB,EACpB,MAAmB,EACnB,QAAgB,EAChB,KAAoB;IAEpB,IAAI,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAA;IACzB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAEhC,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACzD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IAEtC,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,eAAe,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAA;IAED,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;QAC9B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,MAAM;SACf;KACF,CAAC,CACH,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { DataGridField } from '../data-grid/data-grid-field'\nimport { ColumnConfig, GristData, GristRecord } from '../types'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const MoveUp = function (\n columns: ColumnConfig[],\n data: GristData,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n): void {\n var moveTo = rowIndex - 1\n var length = data.records.length\n\n if (rowIndex >= length || moveTo < 0 || moveTo >= length) {\n return\n }\n\n data.records.splice(rowIndex, 1)\n data.records.splice(moveTo, 0, record)\n\n field.dispatchEvent(\n new CustomEvent('record-change', {\n bubbles: true,\n composed: true\n })\n )\n\n field.dispatchEvent(\n new CustomEvent('focus-change', {\n bubbles: true,\n composed: true,\n detail: {\n row: moveTo,\n column: column\n }\n })\n )\n}\n"]}