@operato/data-grist 8.0.0-beta.0 → 8.0.0-beta.2

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 (168) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +10 -10
  3. package/.storybook/main.js +0 -3
  4. package/.storybook/preview.js +0 -52
  5. package/.storybook/server.mjs +0 -8
  6. package/demo/data-grist-test.html +0 -468
  7. package/demo/favicon.ico +0 -0
  8. package/demo/index.html +0 -541
  9. package/demo/report-test.html +0 -249
  10. package/src/accumulator/accumulator.ts +0 -63
  11. package/src/configure/column-builder.ts +0 -114
  12. package/src/configure/config-builder.ts +0 -40
  13. package/src/configure/filters-option-builder.ts +0 -8
  14. package/src/configure/imex-option-builder.ts +0 -5
  15. package/src/configure/list-option-builder.ts +0 -9
  16. package/src/configure/rows-option-builder.ts +0 -38
  17. package/src/configure/tree-option-builder.ts +0 -22
  18. package/src/configure/zero-config.ts +0 -83
  19. package/src/const.ts +0 -1
  20. package/src/data-card/data-card-field.ts +0 -94
  21. package/src/data-card/data-card-gutter-menu.ts +0 -94
  22. package/src/data-card/data-card-gutter.ts +0 -103
  23. package/src/data-card/data-card.ts +0 -154
  24. package/src/data-card/event-handlers/record-card-click-handler.ts +0 -34
  25. package/src/data-card/event-handlers/record-card-dblclick-handler.ts +0 -34
  26. package/src/data-card/record-card.ts +0 -298
  27. package/src/data-consumer.ts +0 -11
  28. package/src/data-grid/data-grid-accum-field.ts +0 -109
  29. package/src/data-grid/data-grid-body-style.ts +0 -85
  30. package/src/data-grid/data-grid-body.ts +0 -765
  31. package/src/data-grid/data-grid-field.ts +0 -227
  32. package/src/data-grid/data-grid-footer.ts +0 -119
  33. package/src/data-grid/data-grid-header.ts +0 -578
  34. package/src/data-grid/data-grid.ts +0 -293
  35. package/src/data-grid/event-handlers/data-grid-body-click-handler.ts +0 -69
  36. package/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.ts +0 -32
  37. package/src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts +0 -42
  38. package/src/data-grid/event-handlers/data-grid-body-focus-change-handler.ts +0 -24
  39. package/src/data-grid/event-handlers/data-grid-body-keydown-handler.ts +0 -234
  40. package/src/data-grist.ts +0 -1233
  41. package/src/data-list/data-list-field.ts +0 -82
  42. package/src/data-list/data-list-gutter.ts +0 -108
  43. package/src/data-list/data-list.ts +0 -145
  44. package/src/data-list/event-handlers/record-partial-click-handler.ts +0 -34
  45. package/src/data-list/event-handlers/record-partial-dblclick-handler.ts +0 -33
  46. package/src/data-list/event-handlers/record-partial-long-press-handler.ts +0 -33
  47. package/src/data-list/record-partial.ts +0 -264
  48. package/src/data-manipulator.ts +0 -426
  49. package/src/data-provider.ts +0 -271
  50. package/src/data-report/data-report-body-style.ts +0 -58
  51. package/src/data-report/data-report-body.ts +0 -189
  52. package/src/data-report/data-report-component.ts +0 -138
  53. package/src/data-report/data-report-field.ts +0 -83
  54. package/src/data-report/data-report-header.ts +0 -242
  55. package/src/data-report/event-handlers/data-report-body-click-handler.ts +0 -38
  56. package/src/data-report/event-handlers/data-report-body-dblclick-handler.ts +0 -25
  57. package/src/data-report/event-handlers/data-report-body-keydown-handler.ts +0 -68
  58. package/src/data-report.ts +0 -424
  59. package/src/editors/index.ts +0 -4
  60. package/src/editors/ox-grist-editor-checkbox.ts +0 -28
  61. package/src/editors/ox-grist-editor-color.ts +0 -10
  62. package/src/editors/ox-grist-editor-date.ts +0 -10
  63. package/src/editors/ox-grist-editor-datetime.ts +0 -27
  64. package/src/editors/ox-grist-editor-email.ts +0 -10
  65. package/src/editors/ox-grist-editor-file.ts +0 -28
  66. package/src/editors/ox-grist-editor-image.ts +0 -31
  67. package/src/editors/ox-grist-editor-month.ts +0 -10
  68. package/src/editors/ox-grist-editor-multiple-select.ts +0 -57
  69. package/src/editors/ox-grist-editor-number.ts +0 -27
  70. package/src/editors/ox-grist-editor-password.ts +0 -10
  71. package/src/editors/ox-grist-editor-select.ts +0 -55
  72. package/src/editors/ox-grist-editor-tel.ts +0 -10
  73. package/src/editors/ox-grist-editor-text.ts +0 -14
  74. package/src/editors/ox-grist-editor-textarea.ts +0 -16
  75. package/src/editors/ox-grist-editor-time.ts +0 -10
  76. package/src/editors/ox-grist-editor-tree.ts +0 -27
  77. package/src/editors/ox-grist-editor-varname.ts +0 -36
  78. package/src/editors/ox-grist-editor-week.ts +0 -10
  79. package/src/editors/ox-grist-editor.ts +0 -207
  80. package/src/editors/ox-input-tree.ts +0 -226
  81. package/src/editors/registry.ts +0 -82
  82. package/src/empty-note.ts +0 -46
  83. package/src/filters/filter-checkbox.ts +0 -49
  84. package/src/filters/filter-input-barcode.ts +0 -34
  85. package/src/filters/filter-input.ts +0 -30
  86. package/src/filters/filter-range-date.ts +0 -81
  87. package/src/filters/filter-range-number.ts +0 -64
  88. package/src/filters/filter-select-buttons.ts +0 -60
  89. package/src/filters/filter-select.ts +0 -68
  90. package/src/filters/filter-styles.ts +0 -119
  91. package/src/filters/filters-form.ts +0 -476
  92. package/src/filters/index.ts +0 -10
  93. package/src/filters/registry.ts +0 -56
  94. package/src/formatters/date-formatter.ts +0 -3
  95. package/src/formatters/index.ts +0 -1
  96. package/src/formatters/number-formatter.ts +0 -3
  97. package/src/formatters/registry.ts +0 -30
  98. package/src/formatters/text-formatter.ts +0 -3
  99. package/src/gutters/gutter-button.ts +0 -51
  100. package/src/gutters/gutter-dirty.ts +0 -96
  101. package/src/gutters/gutter-row-selector.ts +0 -89
  102. package/src/gutters/gutter-sequence.ts +0 -54
  103. package/src/gutters/index.ts +0 -1
  104. package/src/gutters/registry.ts +0 -32
  105. package/src/handlers/contextmenu-tree-mutation.ts +0 -80
  106. package/src/handlers/index.ts +0 -1
  107. package/src/handlers/move-down.ts +0 -44
  108. package/src/handlers/move-up.ts +0 -44
  109. package/src/handlers/record-copy.ts +0 -38
  110. package/src/handlers/record-delete.ts +0 -30
  111. package/src/handlers/record-view-handler.ts +0 -27
  112. package/src/handlers/registry.ts +0 -42
  113. package/src/handlers/select-row-toggle.ts +0 -30
  114. package/src/handlers/select-row.ts +0 -27
  115. package/src/index.ts +0 -17
  116. package/src/personalizer/index.ts +0 -1
  117. package/src/personalizer/ox-grist-filter-personalizer.ts +0 -192
  118. package/src/personalizer/ox-grist-personalizer.ts +0 -226
  119. package/src/record-view/event-handlers/record-view-body-click-handler.ts +0 -33
  120. package/src/record-view/event-handlers/record-view-body-keydown-handler.ts +0 -26
  121. package/src/record-view/index.ts +0 -2
  122. package/src/record-view/ox-record-creator.ts +0 -289
  123. package/src/record-view/record-view-body.ts +0 -257
  124. package/src/record-view/record-view-handler.ts +0 -86
  125. package/src/record-view/record-view.ts +0 -122
  126. package/src/renderers/index.ts +0 -14
  127. package/src/renderers/ox-grist-renderer-boolean.ts +0 -43
  128. package/src/renderers/ox-grist-renderer-color.ts +0 -15
  129. package/src/renderers/ox-grist-renderer-date.ts +0 -62
  130. package/src/renderers/ox-grist-renderer-file.ts +0 -31
  131. package/src/renderers/ox-grist-renderer-image.ts +0 -27
  132. package/src/renderers/ox-grist-renderer-json5.ts +0 -36
  133. package/src/renderers/ox-grist-renderer-link.ts +0 -17
  134. package/src/renderers/ox-grist-renderer-password.ts +0 -7
  135. package/src/renderers/ox-grist-renderer-progress.ts +0 -45
  136. package/src/renderers/ox-grist-renderer-select.ts +0 -58
  137. package/src/renderers/ox-grist-renderer-text.ts +0 -16
  138. package/src/renderers/ox-grist-renderer-textarea.ts +0 -7
  139. package/src/renderers/ox-grist-renderer-tree.ts +0 -189
  140. package/src/renderers/ox-grist-renderer.ts +0 -35
  141. package/src/renderers/registry.ts +0 -111
  142. package/src/sorters/sorters-control.ts +0 -143
  143. package/src/types.ts +0 -813
  144. package/src/utils/index.ts +0 -2
  145. package/src/utils/list-param.ts +0 -72
  146. package/src/utils/supports-passive.ts +0 -13
  147. package/stories/accumulator-format.stories.ts +0 -276
  148. package/stories/barcode-input-filter.stories.ts +0 -216
  149. package/stories/bounded-select-filters.stories.ts +0 -333
  150. package/stories/bounded-select-record.stories.ts +0 -336
  151. package/stories/click-event-custom.stories.ts +0 -287
  152. package/stories/click-event.stories.ts +0 -283
  153. package/stories/creatable-only-column.stories.ts +0 -253
  154. package/stories/default-filters.stories.ts +0 -241
  155. package/stories/dynamic-editable.stories.ts +0 -313
  156. package/stories/empty-sorters.stories.ts +0 -180
  157. package/stories/explicit-fetch.stories.ts +0 -186
  158. package/stories/fixed-column.stories.ts +0 -416
  159. package/stories/grid-setting.stories.ts +0 -501
  160. package/stories/grist-modes.stories.ts +0 -451
  161. package/stories/group-header.stories.ts +0 -442
  162. package/stories/record-view.stories.ts +0 -143
  163. package/stories/textarea.stories.ts +0 -261
  164. package/stories/tree-column-with-checkbox.stories.ts +0 -297
  165. package/stories/tree-column.stories.ts +0 -296
  166. package/tsconfig.json +0 -26
  167. package/web-dev-server.config.mjs +0 -27
  168. package/web-test-runner.config.mjs +0 -45
@@ -1,296 +0,0 @@
1
- import '../src/index.js'
2
- import '../src/filters/filters-form.js'
3
- import '../src/sorters/sorters-control.js'
4
- import '../src/record-view/ox-record-creator.js'
5
- import '@operato/popup/ox-popup-list.js'
6
- import '@material/web/icon/icon.js'
7
-
8
- import { html, TemplateResult } from 'lit'
9
- import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
10
-
11
- import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
12
-
13
- import {
14
- ColumnConfig,
15
- FetchHandler,
16
- GristClassifier,
17
- GristEventHandlerSet,
18
- GristRecord,
19
- ValidationCallback
20
- } from '../src/types.js'
21
-
22
- const fetchHandler: FetchHandler = async ({ page, limit }) => {
23
- var total = 120993
24
- var start = (page! - 1) * limit!
25
-
26
- await new Promise(resolve => setTimeout(resolve, 500))
27
-
28
- var records = Array(limit! * page! > total ? total % limit! : limit)
29
- .fill('')
30
- .map((item, idx) => {
31
- return {
32
- id: String(idx),
33
- name: idx % 2 ? `shnam-${start + idx + 1}` : `heartyoh-${start + idx + 1}`,
34
- description: idx % 2 ? `hatiolabmanager${start + idx + 1}1234567890` : `hatiosea manager-${start + idx + 1}`,
35
- active: Math.round(Math.random() * 2) % 2 ? true : false,
36
- accval: Math.random(),
37
- createdAt: Date.now(),
38
- updatedAt: Date.now(),
39
- children: [
40
- ...Array.from({ length: 3 }, (_, idx) => {
41
- return {
42
- id: `sub:${idx}`,
43
- name: 'subitem' + idx,
44
- description: 'sub items...',
45
- active: Math.round(Math.random() * 2) % 2 ? true : false,
46
- accval: Math.random(),
47
- children: [
48
- ...Array.from({ length: 3 }, (_, idx2) => {
49
- return {
50
- id: `sub-sub:${idx}:${idx2}`,
51
- name: 'sub-subitem:' + idx2,
52
- description: 'sub sub items...',
53
- active: Math.round(Math.random() * 2) % 2 ? true : false,
54
- accval: Math.random(),
55
- children: [],
56
- createdAt: Date.now(),
57
- updatedAt: Date.now()
58
- }
59
- })
60
- ],
61
- createdAt: Date.now(),
62
- updatedAt: Date.now()
63
- }
64
- })
65
- ]
66
- }
67
- })
68
-
69
- return {
70
- total,
71
- records
72
- }
73
- }
74
-
75
- const config = {
76
- list: {
77
- thumbnail: 'thumbnail',
78
- fields: ['name', 'description'],
79
- details: ['role', 'email']
80
- },
81
- columns: [
82
- {
83
- type: 'gutter',
84
- gutterName: 'dirty',
85
- fixed: true
86
- },
87
- // {
88
- // type: 'gutter',
89
- // gutterName: 'sequence',
90
- // fixed: true
91
- // },
92
- {
93
- type: 'tree',
94
- name: 'name',
95
- label: true,
96
- header: 'name',
97
- record: {
98
- editable: true,
99
- options: {
100
- selectable: false
101
- }
102
- },
103
- filter: 'search',
104
- sortable: true,
105
- width: 200,
106
- fixed: true,
107
- handlers: {
108
- contextmenu: 'contextmenu-tree-mutation'
109
- }
110
- },
111
- {
112
- type: 'gutter',
113
- gutterName: 'row-selector',
114
- multiple: true
115
- },
116
- {
117
- type: 'string',
118
- name: 'description',
119
- header: 'description',
120
- filter: 'search',
121
- record: {
122
- editable: true,
123
- align: 'left'
124
- },
125
- width: 200
126
- },
127
- {
128
- type: 'boolean',
129
- name: 'active',
130
- header: 'active',
131
- record: {
132
- editable: true
133
- },
134
- filter: true,
135
- sortable: true,
136
- width: 60
137
- },
138
- {
139
- type: 'number',
140
- name: 'accval',
141
- label: true,
142
- header: 'accval',
143
- record: {
144
- editable: true,
145
- align: 'right'
146
- },
147
- accumulator: 'sum',
148
- sortable: true,
149
- width: 130
150
- },
151
- {
152
- type: 'datetime',
153
- name: 'updatedAt',
154
- header: 'updated at',
155
- record: {
156
- editable: true,
157
- defaultValue: {
158
- name: 'now'
159
- }
160
- },
161
- filter: 'between',
162
- sortable: true,
163
- width: 180
164
- }
165
- ],
166
- rows: {
167
- appendable: false,
168
- selectable: {
169
- multiple: true
170
- },
171
- handlers: {
172
- // focus: 'select-row-toggle'
173
- },
174
- classifier: function (record, rowIndex) {
175
- const rate = record['rate']
176
- const emphasized =
177
- rate < 10 ? ['black', 'white'] : rate < 25 ? ['yellow', 'blue'] : rate < 40 ? ['cyan', 'red'] : undefined
178
- return {
179
- emphasized
180
- }
181
- } as GristClassifier,
182
- accumulator: true
183
- },
184
- sorters: [
185
- {
186
- name: 'name',
187
- desc: true
188
- },
189
- {
190
- name: 'email'
191
- }
192
- ],
193
- pagination: {
194
- pages: [20, 30, 50, 100, 200]
195
- },
196
- tree: {
197
- childrenProperty: 'children'
198
- }
199
- }
200
-
201
- export default {
202
- title: 'tree column',
203
- component: 'ox-grist',
204
- argTypes: {
205
- config: { control: 'object' }
206
- }
207
- }
208
-
209
- interface Story<T> {
210
- (args: T): TemplateResult
211
- args?: Partial<T>
212
- argTypes?: Record<string, unknown>
213
- }
214
-
215
- interface ArgTypes {
216
- config: object
217
- }
218
-
219
- const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
220
- html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
221
-
222
- <link href="/themes/light.css" rel="stylesheet" />
223
- <link href="/themes/dark.css" rel="stylesheet" />
224
- <link href="/themes/spacing.css" rel="stylesheet" />
225
- <link href="/themes/grist-theme.css" rel="stylesheet" />
226
-
227
- <link
228
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
229
- rel="stylesheet"
230
- />
231
- <link
232
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
233
- rel="stylesheet"
234
- />
235
- <link
236
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
237
- rel="stylesheet"
238
- />
239
-
240
- <style>
241
- ${MDTypeScaleStyles.cssText}
242
- </style>
243
-
244
- <style>
245
- ${CommonGristStyles.cssText}
246
- ${CommonHeaderStyles.cssText}
247
- </style>
248
-
249
- <style>
250
- ox-grist {
251
- height: 600px;
252
- }
253
-
254
- ox-filters-form {
255
- flex: 1;
256
- }
257
- </style>
258
-
259
- <ox-grist
260
- mode="GRID"
261
- .config=${config}
262
- .fetchHandler=${fetchHandler}
263
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
264
- >
265
- <div slot="headroom" class="header">
266
- <div class="filters">
267
- <ox-filters-form autofocus></ox-filters-form>
268
-
269
- <div id="sorters">
270
- Sort
271
- <md-icon
272
- @click=${(e: Event) => {
273
- const target = e.currentTarget as HTMLElement
274
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
275
- right: 0,
276
- top: target.offsetTop + target.offsetHeight
277
- })
278
- }}
279
- >expand_more</md-icon
280
- >
281
- <ox-popup id="sorter-control">
282
- <ox-sorters-control> </ox-sorters-control>
283
- </ox-popup>
284
- </div>
285
-
286
- <ox-record-creator id="add" light-popup>
287
- <button><md-icon>add</md-icon></button>
288
- </ox-record-creator>
289
- </div>
290
- </div>
291
- </ox-grist>`
292
-
293
- export const Regular = Template.bind({})
294
- Regular.args = {
295
- config
296
- }
package/tsconfig.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2018",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "noEmitOnError": true,
7
- "lib": ["es2017", "dom"],
8
- "strict": true,
9
- "esModuleInterop": true,
10
- "allowSyntheticDefaultImports": true,
11
- "allowJs": true,
12
- "experimentalDecorators": true,
13
- "useDefineForClassFields": false,
14
- "importHelpers": true,
15
- "outDir": "dist",
16
- "sourceMap": true,
17
- "inlineSources": true,
18
- "rootDir": "./",
19
- "declaration": true,
20
- "incremental": true,
21
- "skipLibCheck": true,
22
- "types": ["node", "mocha"]
23
- },
24
- "include": ["**/*.ts", "*.d.ts"],
25
- "exclude": ["dist", "node_modules"]
26
- }
@@ -1,27 +0,0 @@
1
- // import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
2
-
3
- /** Use Hot Module replacement by adding --hmr to the start command */
4
- const hmr = process.argv.includes('--hmr')
5
-
6
- export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
7
- open: '/demo/',
8
- /** Use regular watch mode if HMR is not enabled. */
9
- watch: !hmr,
10
- /** Resolve bare module imports */
11
- nodeResolve: {
12
- exportConditions: ['browser', 'development']
13
- },
14
-
15
- /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
16
- // esbuildTarget: 'auto'
17
-
18
- /** Set appIndex to enable SPA routing */
19
- // appIndex: 'demo/index.html',
20
-
21
- plugins: [
22
- /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
23
- // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
24
- ]
25
-
26
- // See documentation for all available options
27
- })
@@ -1,45 +0,0 @@
1
- // import { playwrightLauncher } from '@web/test-runner-playwright';
2
-
3
- const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode']
4
-
5
- export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
6
- files: 'dist/test/**/*.test.js',
7
-
8
- /** Resolve bare module imports */
9
- nodeResolve: {
10
- exportConditions: ['browser', 'development']
11
- },
12
-
13
- /** Filter out lit dev mode logs */
14
- filterBrowserLogs(log) {
15
- for (const arg of log.args) {
16
- if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
17
- return false
18
- }
19
- }
20
- return true
21
- }
22
-
23
- /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
24
- // esbuildTarget: 'auto',
25
-
26
- /** Confgure bare import resolve plugin */
27
- // nodeResolve: {
28
- // exportConditions: ['browser', 'development']
29
- // },
30
-
31
- /** Amount of browsers to run concurrently */
32
- // concurrentBrowsers: 2,
33
-
34
- /** Amount of test files per browser to test concurrently */
35
- // concurrency: 1,
36
-
37
- /** Browsers to run tests on */
38
- // browsers: [
39
- // playwrightLauncher({ product: 'chromium' }),
40
- // playwrightLauncher({ product: 'firefox' }),
41
- // playwrightLauncher({ product: 'webkit' }),
42
- // ],
43
-
44
- // See documentation for all available options
45
- })