@operato/data-grist 0.2.26 → 0.2.31

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 (195) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/custom-elements.json +820 -814
  3. package/demo/data-grist-test.html +464 -0
  4. package/dist/src/configure/column-builder.d.ts +0 -1
  5. package/dist/src/configure/column-builder.js.map +1 -1
  6. package/dist/src/configure/config-builder.d.ts +0 -1
  7. package/dist/src/configure/config-builder.js.map +1 -1
  8. package/dist/src/configure/config-types.d.ts +0 -121
  9. package/dist/src/configure/config-types.js.map +1 -1
  10. package/dist/src/configure/imex-option-builder.d.ts +0 -1
  11. package/dist/src/configure/imex-option-builder.js.map +1 -1
  12. package/dist/src/configure/list-option-builder.d.ts +0 -1
  13. package/dist/src/configure/list-option-builder.js.map +1 -1
  14. package/dist/src/configure/rows-option-builder.d.ts +0 -1
  15. package/dist/src/configure/rows-option-builder.js.map +1 -1
  16. package/dist/src/data-card/data-card-field.d.ts +0 -1
  17. package/dist/src/data-card/data-card-field.js +2 -2
  18. package/dist/src/data-card/data-card-field.js.map +1 -1
  19. package/dist/src/data-card/data-card-gutter-menu.js +1 -1
  20. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  21. package/dist/src/data-card/data-card-gutter.js +2 -2
  22. package/dist/src/data-card/data-card-gutter.js.map +1 -1
  23. package/dist/src/data-card/data-card.d.ts +0 -1
  24. package/dist/src/data-card/data-card.js +2 -2
  25. package/dist/src/data-card/data-card.js.map +1 -1
  26. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  27. package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -1
  28. package/dist/src/data-card/record-card.d.ts +0 -1
  29. package/dist/src/data-card/record-card.js +2 -2
  30. package/dist/src/data-card/record-card.js.map +1 -1
  31. package/dist/src/data-consumer.d.ts +0 -1
  32. package/dist/src/data-consumer.js.map +1 -1
  33. package/dist/src/data-grid/data-grid-body.d.ts +0 -1
  34. package/dist/src/data-grid/data-grid-body.js +5 -5
  35. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  36. package/dist/src/data-grid/data-grid-field.d.ts +0 -1
  37. package/dist/src/data-grid/data-grid-field.js +1 -1
  38. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  39. package/dist/src/data-grid/data-grid-footer.d.ts +0 -1
  40. package/dist/src/data-grid/data-grid-footer.js +2 -2
  41. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  42. package/dist/src/data-grid/data-grid-header.d.ts +0 -1
  43. package/dist/src/data-grid/data-grid-header.js +2 -2
  44. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  45. package/dist/src/data-grid/data-grid.d.ts +0 -1
  46. package/dist/src/data-grid/data-grid.js +1 -1
  47. package/dist/src/data-grid/data-grid.js.map +1 -1
  48. package/dist/src/data-grist.d.ts +1 -2
  49. package/dist/src/data-grist.js +6 -6
  50. package/dist/src/data-grist.js.map +1 -1
  51. package/dist/src/data-list/data-list-field.d.ts +0 -1
  52. package/dist/src/data-list/data-list-field.js +2 -2
  53. package/dist/src/data-list/data-list-field.js.map +1 -1
  54. package/dist/src/data-list/data-list-gutter.js +2 -2
  55. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  56. package/dist/src/data-list/data-list.d.ts +0 -1
  57. package/dist/src/data-list/data-list.js +1 -1
  58. package/dist/src/data-list/data-list.js.map +1 -1
  59. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  60. package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -1
  61. package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -1
  62. package/dist/src/data-list/record-partial.d.ts +0 -1
  63. package/dist/src/data-list/record-partial.js +2 -2
  64. package/dist/src/data-list/record-partial.js.map +1 -1
  65. package/dist/src/data-provider.d.ts +0 -1
  66. package/dist/src/data-provider.js.map +1 -1
  67. package/dist/src/data-report/data-report-body.d.ts +0 -1
  68. package/dist/src/data-report/data-report-body.js +3 -3
  69. package/dist/src/data-report/data-report-body.js.map +1 -1
  70. package/dist/src/data-report/data-report-component.d.ts +0 -1
  71. package/dist/src/data-report/data-report-component.js +1 -1
  72. package/dist/src/data-report/data-report-component.js.map +1 -1
  73. package/dist/src/data-report/data-report-field.d.ts +0 -1
  74. package/dist/src/data-report/data-report-field.js +2 -2
  75. package/dist/src/data-report/data-report-field.js.map +1 -1
  76. package/dist/src/data-report/data-report-header.js +3 -3
  77. package/dist/src/data-report/data-report-header.js.map +1 -1
  78. package/dist/src/data-report.d.ts +0 -1
  79. package/dist/src/data-report.js +15 -6
  80. package/dist/src/data-report.js.map +1 -1
  81. package/dist/src/editors/input-editors.d.ts +0 -1
  82. package/dist/src/editors/input-editors.js +2 -2
  83. package/dist/src/editors/input-editors.js.map +1 -1
  84. package/dist/src/editors/registry.d.ts +0 -1
  85. package/dist/src/editors/registry.js.map +1 -1
  86. package/dist/src/empty-note.d.ts +2 -2
  87. package/dist/src/empty-note.js +1 -1
  88. package/dist/src/empty-note.js.map +1 -1
  89. package/dist/src/gutters/gutter-button.js.map +1 -1
  90. package/dist/src/gutters/gutter-dirty.d.ts +0 -1
  91. package/dist/src/gutters/gutter-dirty.js +1 -1
  92. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  93. package/dist/src/gutters/gutter-row-selector.js.map +1 -1
  94. package/dist/src/gutters/gutter-sequence.js.map +1 -1
  95. package/dist/src/gutters/registry.d.ts +0 -1
  96. package/dist/src/gutters/registry.js.map +1 -1
  97. package/dist/src/handlers/record-view-handler.d.ts +0 -1
  98. package/dist/src/handlers/record-view-handler.js.map +1 -1
  99. package/dist/src/handlers/registry.d.ts +0 -1
  100. package/dist/src/handlers/registry.js.map +1 -1
  101. package/dist/src/handlers/select-row-toggle.d.ts +0 -1
  102. package/dist/src/handlers/select-row-toggle.js.map +1 -1
  103. package/dist/src/handlers/select-row.d.ts +0 -1
  104. package/dist/src/handlers/select-row.js.map +1 -1
  105. package/dist/src/record-view/record-view-body.d.ts +0 -1
  106. package/dist/src/record-view/record-view-body.js +1 -1
  107. package/dist/src/record-view/record-view-body.js.map +1 -1
  108. package/dist/src/record-view/record-view.d.ts +0 -1
  109. package/dist/src/record-view/record-view.js +1 -1
  110. package/dist/src/record-view/record-view.js.map +1 -1
  111. package/dist/src/renderers/boolean-renderer.d.ts +0 -1
  112. package/dist/src/renderers/boolean-renderer.js.map +1 -1
  113. package/dist/src/renderers/color-renderer.d.ts +0 -1
  114. package/dist/src/renderers/color-renderer.js.map +1 -1
  115. package/dist/src/renderers/date-renderer.d.ts +0 -1
  116. package/dist/src/renderers/date-renderer.js.map +1 -1
  117. package/dist/src/renderers/image-renderer.d.ts +0 -1
  118. package/dist/src/renderers/image-renderer.js.map +1 -1
  119. package/dist/src/renderers/json5-renderer.d.ts +0 -1
  120. package/dist/src/renderers/json5-renderer.js.map +1 -1
  121. package/dist/src/renderers/link-renderer.d.ts +0 -1
  122. package/dist/src/renderers/link-renderer.js.map +1 -1
  123. package/dist/src/renderers/password-renderer.d.ts +0 -1
  124. package/dist/src/renderers/password-renderer.js.map +1 -1
  125. package/dist/src/renderers/progress-renderer.d.ts +0 -1
  126. package/dist/src/renderers/progress-renderer.js +1 -1
  127. package/dist/src/renderers/progress-renderer.js.map +1 -1
  128. package/dist/src/renderers/registry.d.ts +0 -1
  129. package/dist/src/renderers/registry.js.map +1 -1
  130. package/dist/src/renderers/select-renderer.d.ts +0 -1
  131. package/dist/src/renderers/select-renderer.js.map +1 -1
  132. package/dist/src/renderers/text-renderer.d.ts +0 -1
  133. package/dist/src/renderers/text-renderer.js.map +1 -1
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +9 -8
  136. package/src/configure/column-builder.ts +0 -1
  137. package/src/configure/config-builder.ts +0 -1
  138. package/src/configure/config-types.ts +0 -145
  139. package/src/configure/imex-option-builder.ts +0 -2
  140. package/src/configure/list-option-builder.ts +1 -1
  141. package/src/configure/rows-option-builder.ts +0 -1
  142. package/src/data-card/data-card-field.ts +2 -3
  143. package/src/data-card/data-card-gutter-menu.ts +1 -3
  144. package/src/data-card/data-card-gutter.ts +2 -3
  145. package/src/data-card/data-card.ts +2 -2
  146. package/src/data-card/event-handlers/record-card-click-handler.ts +0 -1
  147. package/src/data-card/event-handlers/record-card-dblclick-handler.ts +0 -1
  148. package/src/data-card/record-card.ts +2 -2
  149. package/src/data-consumer.ts +0 -2
  150. package/src/data-grid/data-grid-body.ts +5 -5
  151. package/src/data-grid/data-grid-field.ts +2 -2
  152. package/src/data-grid/data-grid-footer.ts +2 -3
  153. package/src/data-grid/data-grid-header.ts +3 -11
  154. package/src/data-grid/data-grid.ts +1 -9
  155. package/src/data-grist.ts +9 -10
  156. package/src/data-list/data-list-field.ts +2 -3
  157. package/src/data-list/data-list-gutter.ts +2 -3
  158. package/src/data-list/data-list.ts +1 -1
  159. package/src/data-list/event-handlers/record-partial-click-handler.ts +0 -1
  160. package/src/data-list/event-handlers/record-partial-dblclick-handler.ts +0 -1
  161. package/src/data-list/event-handlers/record-partial-long-press-handler.ts +0 -1
  162. package/src/data-list/record-partial.ts +2 -2
  163. package/src/data-provider.ts +1 -3
  164. package/src/data-report/data-report-body.ts +3 -3
  165. package/src/data-report/data-report-component.ts +1 -1
  166. package/src/data-report/data-report-field.ts +2 -3
  167. package/src/data-report/data-report-header.ts +3 -3
  168. package/src/data-report.ts +16 -14
  169. package/src/editors/input-editors.ts +2 -2
  170. package/src/editors/registry.ts +0 -1
  171. package/src/empty-note.ts +1 -1
  172. package/src/gutters/gutter-button.ts +0 -2
  173. package/src/gutters/gutter-dirty.ts +1 -3
  174. package/src/gutters/gutter-row-selector.ts +0 -2
  175. package/src/gutters/gutter-sequence.ts +0 -2
  176. package/src/gutters/registry.ts +0 -1
  177. package/src/handlers/record-view-handler.ts +1 -3
  178. package/src/handlers/registry.ts +0 -1
  179. package/src/handlers/select-row-toggle.ts +0 -1
  180. package/src/handlers/select-row.ts +0 -1
  181. package/src/record-view/record-view-body.ts +2 -2
  182. package/src/record-view/record-view.ts +2 -2
  183. package/src/renderers/boolean-renderer.ts +0 -1
  184. package/src/renderers/color-renderer.ts +0 -1
  185. package/src/renderers/date-renderer.ts +0 -2
  186. package/src/renderers/image-renderer.ts +0 -1
  187. package/src/renderers/json5-renderer.ts +0 -1
  188. package/src/renderers/link-renderer.ts +0 -1
  189. package/src/renderers/password-renderer.ts +0 -2
  190. package/src/renderers/progress-renderer.ts +1 -3
  191. package/src/renderers/registry.ts +0 -1
  192. package/src/renderers/select-renderer.ts +0 -2
  193. package/src/renderers/text-renderer.ts +0 -1
  194. package/src/types.d.ts +144 -0
  195. package/yarn-error.log +3149 -2371
@@ -0,0 +1,464 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-GB">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" />
6
+ <style>
7
+ body {
8
+ /* box-sizing: border-box; */
9
+ margin: 0;
10
+ padding: 0;
11
+ overflow: hidden;
12
+
13
+ /* This is a font-stack that tries to use the system-default sans-serifs first */
14
+ font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
15
+ line-height: 1.5;
16
+ -webkit-font-smoothing: antialiased;
17
+ }
18
+
19
+ #app {
20
+ width: 100vw;
21
+ height: 100vh;
22
+
23
+ display: flex;
24
+ flex-direction: column;
25
+ }
26
+
27
+ #demo {
28
+ flex: 1;
29
+
30
+ display: flex;
31
+ flex-direction: column;
32
+ overflow: hidden;
33
+ }
34
+
35
+ grist-demo {
36
+ flex: 1;
37
+ overflow: auto;
38
+ }
39
+ </style>
40
+ <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
41
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
42
+
43
+ <link href="/themes/app-theme.css" rel="stylesheet" />
44
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
45
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
46
+ </head>
47
+ <body>
48
+ <script type="module">
49
+ import { LitElement, html, css, render } from 'lit'
50
+ import '../dist/index.js'
51
+ import '@operato/popup'
52
+ import '@material/mwc-icon'
53
+
54
+ const fetchHandler = async ({ page, limit, sorters = [] }) => {
55
+ var total = 120993
56
+ var start = (page - 1) * limit
57
+
58
+ await new Promise(resolve => setTimeout(resolve, 500))
59
+
60
+ return {
61
+ total,
62
+ records: Array(limit * page > total ? total % limit : limit)
63
+ .fill()
64
+ .map((item, idx) => {
65
+ return {
66
+ id: idx,
67
+ name: idx % 2 ? `shnam-${start + idx + 1}` : `heartyoh-${start + idx + 1}`,
68
+ description: idx % 2 ? `hatiolab manager-${start + idx + 1}` : `hatiosea manager-${start + idx + 1}`,
69
+ email: idx % 2 ? `shnam-${start + idx + 1}@gmail.com` : `heartyoh-${start + idx + 1}@gmail.com`,
70
+ active: Math.round(Math.random() * 2) % 2 ? true : false,
71
+ barcode: idx % 2 ? `1234567890${start + idx + 1}` : `0987654321${start + idx + 1}`,
72
+ company:
73
+ idx % 2
74
+ ? {
75
+ id: '2',
76
+ name: 'HatioLAB',
77
+ description: `경기도 성남시-${start + idx + 1}`
78
+ }
79
+ : {
80
+ id: '3',
81
+ name: 'HatioSEA',
82
+ description: `말레이시아 세티아알람-${start + idx + 1}`
83
+ },
84
+ image:
85
+ idx % 2
86
+ ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
87
+ : `http://www.hatiolab.com/assets/img/thingsboard-30.png`,
88
+ role: ['admin', 'worker', 'tester'][idx % 3],
89
+ color: idx % 2 ? `#87f018` : `#180f87`,
90
+ rate: Math.round(Math.random() * 100),
91
+ dynamicType: ['text', 'email', 'checkbox', 'color', 'progress', 'barcode'][idx % 5],
92
+ dynamicValue: ['abcdefghijkl', 'heartyoh@hatiolab.com', 'true', 'orange', '50', '1234567890'][idx % 5],
93
+ homepage:
94
+ idx % 2
95
+ ? `http://hatiolab.com/${start + idx + 1}`
96
+ : `http://deadpool.hatiolab.com/${start + idx + 1}`,
97
+ json5: {
98
+ abc: 'abc',
99
+ value: 123
100
+ },
101
+ createdAt: Date.now(),
102
+ updatedAt: Date.now()
103
+ }
104
+ })
105
+ }
106
+ }
107
+
108
+ const config = {
109
+ list: {
110
+ thumbnail: function (record, rowIndex) {
111
+ return html` <img src=${record.image} style="width: 100%; height: 100%;" /> `
112
+ },
113
+ fields: ['name', 'description'],
114
+ details: ['role', 'email']
115
+ },
116
+ columns: [
117
+ {
118
+ type: 'gutter',
119
+ gutterName: 'dirty'
120
+ },
121
+ {
122
+ type: 'gutter',
123
+ gutterName: 'sequence'
124
+ },
125
+ {
126
+ type: 'gutter',
127
+ gutterName: 'row-selector',
128
+ multiple: true
129
+ },
130
+ {
131
+ type: 'gutter',
132
+ gutterName: 'button',
133
+ icon: 'edit',
134
+ handlers: {
135
+ click: function () {
136
+ console.log('clicked')
137
+ }
138
+ }
139
+ },
140
+ {
141
+ type: 'string',
142
+ name: 'id',
143
+ hidden: true
144
+ },
145
+ {
146
+ type: 'link',
147
+ name: 'name',
148
+ label: true,
149
+ header: 'name',
150
+ record: {
151
+ editable: true,
152
+ options: {
153
+ // href: 'http://hatiolab.com',
154
+ href: function (column, record, rowIndex) {
155
+ return record['homepage']
156
+ }
157
+ // target: '_blank'
158
+ }
159
+ },
160
+ sortable: true,
161
+ width: 120
162
+ },
163
+ {
164
+ type: 'string',
165
+ name: 'description',
166
+ header: 'description',
167
+ record: {
168
+ editable: true,
169
+ align: 'left'
170
+ },
171
+ width: 200,
172
+ handlers: {
173
+ dblclick: (columns, data, column, record, rowIndex) => {
174
+ alert(`${column.name} ${record[column.name]}, row : ${rowIndex}`)
175
+ }
176
+ }
177
+ },
178
+ {
179
+ type: 'email',
180
+ name: 'email',
181
+ label: true,
182
+ header: 'email',
183
+ record: {
184
+ editable: true
185
+ },
186
+ sortable: true,
187
+ width: 130,
188
+ validation: function (after, before, record, column) {
189
+ if (after.indexOf('@') == -1) {
190
+ document.dispatchEvent(
191
+ new CustomEvent('notify', {
192
+ detail: {
193
+ type: 'error',
194
+ message: `invalid value - ${after}`
195
+ }
196
+ })
197
+ )
198
+ return false
199
+ }
200
+ return true
201
+ }
202
+ },
203
+ {
204
+ type: 'boolean',
205
+ name: 'active',
206
+ header: 'active',
207
+ record: {
208
+ editable: true
209
+ },
210
+ handlers: {
211
+ dblclick: () => {
212
+ const grist = document.querySelector('ox-grist')
213
+ console.log(grist.dirtyRecords)
214
+ }
215
+ },
216
+ sortable: true,
217
+ width: 60
218
+ },
219
+ {
220
+ type: 'select',
221
+ name: 'role',
222
+ label: true,
223
+ header: 'role',
224
+ record: {
225
+ options: ['admin', 'worker', 'tester'],
226
+ editable: true
227
+ },
228
+ sortable: true,
229
+ width: 120
230
+ },
231
+ {
232
+ type: 'color',
233
+ name: 'color',
234
+ header: 'color',
235
+ record: {
236
+ editable: true
237
+ },
238
+ sortable: true,
239
+ width: 50
240
+ },
241
+ {
242
+ type: 'float',
243
+ name: 'rate',
244
+ header: 'rate',
245
+ record: {
246
+ align: 'right',
247
+ editable: true
248
+ },
249
+ sortable: true,
250
+ width: 50
251
+ },
252
+ {
253
+ type: 'json5',
254
+ name: 'json5',
255
+ header: 'JSON5',
256
+ width: 200
257
+ },
258
+ {
259
+ type: 'datetime',
260
+ name: 'updatedAt',
261
+ header: 'updated at',
262
+ record: {
263
+ editable: true
264
+ },
265
+ sortable: true,
266
+ width: 180
267
+ },
268
+ {
269
+ type: 'datetime',
270
+ name: 'createdAt',
271
+ header: 'created at',
272
+ record: {
273
+ editable: true
274
+ },
275
+ sortable: true,
276
+ width: 180
277
+ }
278
+ ],
279
+ rows: {
280
+ selectable: {
281
+ multiple: true
282
+ },
283
+ handlers: {
284
+ click: 'select-row-toggle'
285
+ },
286
+ classifier: function (record, rowIndex) {
287
+ const rate = record['rate']
288
+ const emphasized =
289
+ rate < 10 ? ['black', 'white'] : rate < 25 ? ['yellow', 'blue'] : rate < 40 ? ['cyan', 'red'] : undefined
290
+ return {
291
+ emphasized
292
+ }
293
+ }
294
+ },
295
+ sorters: [
296
+ {
297
+ name: 'name',
298
+ desc: true
299
+ },
300
+ {
301
+ name: 'email'
302
+ }
303
+ ],
304
+ pagination: {
305
+ pages: [20, 30, 50, 100, 200]
306
+ }
307
+ }
308
+
309
+ class GristDemo extends LitElement {
310
+ static styles = [
311
+ css`
312
+ :host {
313
+ display: flex;
314
+ }
315
+
316
+ ox-grist {
317
+ flex: 1;
318
+ overflow-y: auto;
319
+
320
+ --grid-record-emphasized-background-color: red;
321
+ --grid-record-emphasized-color: yellow;
322
+ }
323
+
324
+ #headroom {
325
+ display: flex;
326
+ flex-direction: column;
327
+ background-color: var(--primary-color);
328
+ height: 200px;
329
+ align-items: center;
330
+ justify-content: center;
331
+ color: var(--theme-white-color);
332
+ }
333
+
334
+ #modes > * {
335
+ padding: var(--padding-narrow);
336
+ font-size: 1.5em;
337
+ opacity: 0.7;
338
+ }
339
+
340
+ #modes > mwc-icon[active] {
341
+ border: 1px solid var(--status-warning-color);
342
+ border-radius: 9px;
343
+ background-color: rgba(0, 0, 0, 0.3);
344
+ opacity: 1;
345
+ }
346
+
347
+ #filters {
348
+ position: absolute;
349
+ left: 10px;
350
+ bottom: 10px;
351
+ width: calc(100% - 20px);
352
+ }
353
+ `
354
+ ]
355
+
356
+ static get properties() {
357
+ return {
358
+ mode: String
359
+ }
360
+ }
361
+
362
+ render() {
363
+ const mode = this.mode || 'CARD'
364
+
365
+ return html`
366
+ <ox-grist .config=${config} .mode=${mode} auto-fetch .fetchHandler=${fetchHandler}>
367
+ <div slot="headroom" id="headroom">
368
+ <h1>HEAD ROOM AREA</h1>
369
+ <div id="modes">
370
+ <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>view_list</mwc-icon>
371
+ <mwc-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>menu</mwc-icon>
372
+ <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>
373
+ </div>
374
+ <div id="tailer">
375
+ <a href="./report-test.html">Report Test</a>|
376
+ <a
377
+ href="#"
378
+ @click=${() => {
379
+ this.renderRoot.querySelector('ox-grist').reset()
380
+ }}
381
+ >Reset</a
382
+ >|
383
+ <a
384
+ href="#"
385
+ @click=${() => {
386
+ this.renderRoot.querySelector('ox-grist').fetch(true)
387
+ }}
388
+ >Fetch</a
389
+ >
390
+ </div>
391
+
392
+ <div id="filters">
393
+ <mwc-icon
394
+ @click=${e => {
395
+ const target = e.currentTarget
396
+ this.renderRoot.querySelector('ox-popup-list').open({
397
+ left: target.offsetLeft,
398
+ top: target.offsetTop + target.offsetHeight
399
+ })
400
+ }}
401
+ >sort</mwc-icon
402
+ >
403
+ <mwc-icon
404
+ @click=${e => {
405
+ const target = e.currentTarget
406
+ this.renderRoot.querySelector('ox-popup-list').open({
407
+ left: target.offsetLeft,
408
+ top: target.offsetTop + target.offsetHeight
409
+ })
410
+ }}
411
+ >more_horiz</mwc-icon
412
+ >
413
+ <mwc-icon
414
+ @click=${e => {
415
+ const target = e.currentTarget
416
+ this.renderRoot.querySelector('ox-popup-list').open({
417
+ left: target.offsetLeft,
418
+ top: target.offsetTop + target.offsetHeight
419
+ })
420
+ }}
421
+ >sort</mwc-icon
422
+ >
423
+
424
+ <ox-popup-list alive-on-select>
425
+ <div
426
+ option
427
+ @click=${function (e) {
428
+ const icon = e.currentTarget.querySelector('mwc-icon')
429
+ icon.innerHTML = icon.innerHTML == 'check' ? '' : 'check'
430
+ }}
431
+ >
432
+ <mwc-icon slot="icon" style="width: 20px;height: 20px;"></mwc-icon>
433
+ <span>click me to toggle</span>
434
+ </div>
435
+ <div
436
+ option
437
+ @click=${function (e) {
438
+ const icon = e.currentTarget.querySelector('mwc-icon')
439
+ icon.innerHTML = icon.innerHTML == 'check' ? '' : 'check'
440
+ }}
441
+ >
442
+ <mwc-icon slot="icon" style="width: 20px;height: 20px;"></mwc-icon>
443
+ <span>click me to toggle</span>
444
+ </div>
445
+ </ox-popup-list>
446
+ </div>
447
+ </div>
448
+ </ox-grist>
449
+ `
450
+ }
451
+ }
452
+
453
+ customElements.define('grist-demo', GristDemo)
454
+
455
+ setTimeout(() => {
456
+ render(html` <grist-demo mode="LIST"></grist-demo> `, document.querySelector('#demo'))
457
+ })
458
+ </script>
459
+
460
+ <div id="app">
461
+ <div id="demo"></div>
462
+ </div>
463
+ </body>
464
+ </html>
@@ -1,2 +1 @@
1
- import { ColumnConfig } from './config-types';
2
1
  export declare const buildColumn: (column: any) => ColumnConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"column-builder.js","sourceRoot":"","sources":["../../../src/configure/column-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAW,EAAgB,EAAE;IACvD,IAAI,QAAQ,GAAiB,EAAE,GAAG,MAAM,EAAE,CAAA;IAE1C,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;QAC3B,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;KACxC;IAED,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAExD,YAAY;IAEZ,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;QAC7B,QAAQ,CAAC,MAAM,GAAG;YAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;SACvB,CAAA;KACF;SAAM;QACL,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;QAE/C,QAAQ,CAAC,MAAM,GAAG;YAChB,GAAG,MAAM;YACT,wCAAwC;SACzC,CAAA;KACF;IAED,WAAW;IACX,IAAI,KAAK,EAAE;QACT,IAAI,IAAI,GAAG,OAAO,KAAK,CAAA;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS;gBACZ,IAAI,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;gBACrD,QAAQ,CAAC,KAAK,GAAG;oBACf,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;iBACtB,CAAA;gBACD,MAAK;YACP,KAAK,QAAQ;gBACX,QAAQ,CAAC,KAAK,GAAG;oBACf,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;iBACtB,CAAA;gBACD,MAAK;YACP;gBACE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;SACzB;KACF;SAAM;QACL,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;KACvB;IAED;;OAEG;IACH,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE7E,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IAE3D,IAAI,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAC5C,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAChC;IAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,UAAU,GAAG,IAAI,CAAA;KAClB;IAED,QAAQ,CAAC,MAAM,GAAG;QAChB,GAAG,MAAM;QACT,UAAU;QACV,QAAQ,EAAE,cAAc;QACxB,MAAM;KACP,CAAA;IAED,aAAa;IACb,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAA;IAExC,QAAQ,CAAC,QAAQ,GAAG;QAClB,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAC3C,QAAQ,EAAE,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC;KACrD,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA","sourcesContent":["import { ColumnConfig } from './config-types'\nimport { NOOP } from '../const'\nimport { generateGutterColumn } from '../gutters'\nimport { getEditor } from '../editors'\nimport { getGristEventHandler } from '../handlers'\nimport { getRenderer } from '../renderers'\n\nexport const buildColumn = (column: any): ColumnConfig => {\n var compiled: ColumnConfig = { ...column }\n\n if (column.type == 'gutter') {\n compiled = generateGutterColumn(column)\n }\n\n var { name, header, record, handlers, label } = compiled\n\n /* header */\n\n if (typeof header == 'string') {\n compiled.header = {\n renderer: () => header\n }\n } else {\n var { renderer: headerRenderer } = header || {}\n\n compiled.header = {\n ...header\n // renderer: getRenderer(headerRenderer)\n }\n }\n\n /* label */\n if (label) {\n let type = typeof label\n switch (type) {\n case 'boolean':\n let title = typeof header == 'string' ? header : name\n compiled.label = {\n renderer: () => title\n }\n break\n case 'string':\n compiled.label = {\n renderer: () => label\n }\n break\n default:\n compiled.label = label\n }\n } else {\n compiled.label = false\n }\n\n /*\n * record\n */\n var { renderer: recordRenderer, editor, editable, classifier } = record || {}\n\n recordRenderer = getRenderer(recordRenderer || column.type)\n\n if (editable && typeof editor !== 'function') {\n editor = getEditor(column.type)\n }\n\n if (typeof classifier !== 'function') {\n classifier = NOOP\n }\n\n compiled.record = {\n ...record,\n classifier,\n renderer: recordRenderer,\n editor\n }\n\n /* handler */\n var { click, dblclick } = handlers || {}\n\n compiled.handlers = {\n click: click && getGristEventHandler(click),\n dblclick: dblclick && getGristEventHandler(dblclick)\n }\n\n return compiled\n}\n"]}
1
+ {"version":3,"file":"column-builder.js","sourceRoot":"","sources":["../../../src/configure/column-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAW,EAAgB,EAAE;IACvD,IAAI,QAAQ,GAAiB,EAAE,GAAG,MAAM,EAAE,CAAA;IAE1C,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;QAC3B,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;KACxC;IAED,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAExD,YAAY;IAEZ,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;QAC7B,QAAQ,CAAC,MAAM,GAAG;YAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;SACvB,CAAA;KACF;SAAM;QACL,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;QAE/C,QAAQ,CAAC,MAAM,GAAG;YAChB,GAAG,MAAM;YACT,wCAAwC;SACzC,CAAA;KACF;IAED,WAAW;IACX,IAAI,KAAK,EAAE;QACT,IAAI,IAAI,GAAG,OAAO,KAAK,CAAA;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS;gBACZ,IAAI,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;gBACrD,QAAQ,CAAC,KAAK,GAAG;oBACf,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;iBACtB,CAAA;gBACD,MAAK;YACP,KAAK,QAAQ;gBACX,QAAQ,CAAC,KAAK,GAAG;oBACf,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;iBACtB,CAAA;gBACD,MAAK;YACP;gBACE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;SACzB;KACF;SAAM;QACL,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;KACvB;IAED;;OAEG;IACH,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE7E,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IAE3D,IAAI,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAC5C,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAChC;IAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,UAAU,GAAG,IAAI,CAAA;KAClB;IAED,QAAQ,CAAC,MAAM,GAAG;QAChB,GAAG,MAAM;QACT,UAAU;QACV,QAAQ,EAAE,cAAc;QACxB,MAAM;KACP,CAAA;IAED,aAAa;IACb,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAA;IAExC,QAAQ,CAAC,QAAQ,GAAG;QAClB,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAC3C,QAAQ,EAAE,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC;KACrD,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA","sourcesContent":["import { NOOP } from '../const'\nimport { generateGutterColumn } from '../gutters'\nimport { getEditor } from '../editors'\nimport { getGristEventHandler } from '../handlers'\nimport { getRenderer } from '../renderers'\n\nexport const buildColumn = (column: any): ColumnConfig => {\n var compiled: ColumnConfig = { ...column }\n\n if (column.type == 'gutter') {\n compiled = generateGutterColumn(column)\n }\n\n var { name, header, record, handlers, label } = compiled\n\n /* header */\n\n if (typeof header == 'string') {\n compiled.header = {\n renderer: () => header\n }\n } else {\n var { renderer: headerRenderer } = header || {}\n\n compiled.header = {\n ...header\n // renderer: getRenderer(headerRenderer)\n }\n }\n\n /* label */\n if (label) {\n let type = typeof label\n switch (type) {\n case 'boolean':\n let title = typeof header == 'string' ? header : name\n compiled.label = {\n renderer: () => title\n }\n break\n case 'string':\n compiled.label = {\n renderer: () => label\n }\n break\n default:\n compiled.label = label\n }\n } else {\n compiled.label = false\n }\n\n /*\n * record\n */\n var { renderer: recordRenderer, editor, editable, classifier } = record || {}\n\n recordRenderer = getRenderer(recordRenderer || column.type)\n\n if (editable && typeof editor !== 'function') {\n editor = getEditor(column.type)\n }\n\n if (typeof classifier !== 'function') {\n classifier = NOOP\n }\n\n compiled.record = {\n ...record,\n classifier,\n renderer: recordRenderer,\n editor\n }\n\n /* handler */\n var { click, dblclick } = handlers || {}\n\n compiled.handlers = {\n click: click && getGristEventHandler(click),\n dblclick: dblclick && getGristEventHandler(dblclick)\n }\n\n return compiled\n}\n"]}
@@ -1,2 +1 @@
1
- import { GristConfig } from './config-types';
2
1
  export declare const buildConfig: (config: any) => GristConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config-builder.js","sourceRoot":"","sources":["../../../src/configure/config-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAW,EAAe,EAAE;IACtD,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEzE,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5B,UAAU;QACV,OAAO;QACP,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5B,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;KAC7B,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { GristConfig } from './config-types'\nimport { buildColumn } from './column-builder'\nimport { buildImexOptions } from './imex-option-builder'\nimport { buildListOptions } from './list-option-builder'\nimport { buildRowsOptions } from './rows-option-builder'\n\nexport const buildConfig = (config: any): GristConfig => {\n var { columns = [], rows = {}, pagination, sorters, list, imex } = config\n\n return {\n ...config,\n columns: columns.map((column: any) => buildColumn(column)),\n rows: buildRowsOptions(rows),\n pagination,\n sorters,\n list: buildListOptions(list),\n imex: buildImexOptions(imex)\n }\n}\n"]}
1
+ {"version":3,"file":"config-builder.js","sourceRoot":"","sources":["../../../src/configure/config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAW,EAAe,EAAE;IACtD,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEzE,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5B,UAAU;QACV,OAAO;QACP,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5B,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;KAC7B,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { buildColumn } from './column-builder'\nimport { buildImexOptions } from './imex-option-builder'\nimport { buildListOptions } from './list-option-builder'\nimport { buildRowsOptions } from './rows-option-builder'\n\nexport const buildConfig = (config: any): GristConfig => {\n var { columns = [], rows = {}, pagination, sorters, list, imex } = config\n\n return {\n ...config,\n columns: columns.map((column: any) => buildColumn(column)),\n rows: buildRowsOptions(rows),\n pagination,\n sorters,\n list: buildListOptions(list),\n imex: buildImexOptions(imex)\n }\n}\n"]}
@@ -18,124 +18,3 @@ export declare const ZERO_PAGINATION: {
18
18
  limit: number;
19
19
  total: number;
20
20
  };
21
- export declare type GristConfig = {
22
- columns: ColumnConfig[];
23
- rows: RowsConfig;
24
- list: ListConfig;
25
- pagination?: PaginationConfig;
26
- sorters?: SortersConfig;
27
- };
28
- export declare type SorterConfig = {
29
- name: string;
30
- desc?: boolean;
31
- };
32
- export declare type SortersConfig = SorterConfig[];
33
- export declare type PaginationConfig = {
34
- page?: number;
35
- limit?: number;
36
- pages: number[];
37
- infinite?: boolean;
38
- };
39
- export declare type GristEventHandler = (columns: ColumnConfig[], data?: GristData, column?: ColumnConfig, record?: GristRecord, rowIndex?: number, target?: any) => void;
40
- export declare type ColumnConfig = {
41
- type: string;
42
- name: string;
43
- gutterName?: string;
44
- header: HeaderConfig;
45
- record: RecordConfig;
46
- handlers: GristEventHandlerSet;
47
- label: LabelConfig;
48
- hidden?: boolean;
49
- sortable?: boolean;
50
- resizable?: boolean;
51
- width?: number | string | ColumnWidthCallback;
52
- forList?: boolean;
53
- validation?: ValidationCallback;
54
- imex?: ImexConfig;
55
- multiple?: boolean;
56
- };
57
- export declare type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean;
58
- export declare type LabelConfig = string | boolean | {
59
- renderer: LabelRenderer;
60
- };
61
- export declare type LabelRenderer = () => void;
62
- export declare type ColumnWidthCallback = (column: ColumnConfig) => string;
63
- export declare type HeaderConfig = {
64
- renderer: HeaderRenderer;
65
- };
66
- export declare type HeaderRenderer = (column: ColumnConfig) => any;
67
- export declare type RecordConfig = {
68
- renderer: FieldRenderer;
69
- editor?: FieldEditor;
70
- editable?: boolean;
71
- classifier: GristClassifier;
72
- align?: 'left' | 'right' | 'center';
73
- options: {
74
- [key: string]: any;
75
- };
76
- rowOptionField?: string;
77
- };
78
- export declare type FieldRenderer = (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, owner: any) => any;
79
- export declare type FieldEditor = (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, owner: any) => any;
80
- export declare type FieldThumbnailRenderer = (record: GristRecord, rowIndex: number) => any;
81
- export declare type GristEventHandlerSet = {
82
- click?: GristEventHandler;
83
- dblclick?: GristEventHandler;
84
- };
85
- export declare type ListConfig = {
86
- thumbnail: FieldThumbnailRenderer;
87
- fields: string[];
88
- details: string[];
89
- };
90
- export declare type ImexConfig = {
91
- header: string;
92
- key: string;
93
- width: number;
94
- type: string;
95
- };
96
- export declare type RowsConfig = {
97
- appendable: boolean;
98
- insertable: boolean;
99
- selectable?: RowSelectableConfig;
100
- groups: GroupConfig[];
101
- totals: string[];
102
- classifier: GristClassifier;
103
- handlers: GristEventHandlerSet;
104
- };
105
- export declare type GristClassifier = (record: GristRecord, rowIndex: number) => {
106
- emphasized?: boolean | string | string[];
107
- [key: string]: any;
108
- } | void;
109
- export declare type GroupConfig = {
110
- align: string;
111
- titleColumn?: ColumnConfig;
112
- title: string;
113
- value?: string;
114
- groupName?: string;
115
- row?: number;
116
- column: string | number;
117
- rowspan: number;
118
- colspan?: number;
119
- };
120
- export declare type RowSelectableConfig = {
121
- multiple?: boolean;
122
- };
123
- export declare type GristRecord = {
124
- id?: string;
125
- name?: string;
126
- __seq__?: number;
127
- __dirty__?: string;
128
- __selected__?: boolean;
129
- __changes__?: object[];
130
- __dirtyfields__?: {
131
- [key: string]: any;
132
- };
133
- __origin__?: any;
134
- [key: string]: any;
135
- };
136
- export declare type GristData = {
137
- page?: number;
138
- total?: number;
139
- limit?: number;
140
- records: GristRecord[];
141
- };
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/configure/config-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAE,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAE,CAAC,CAAA;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,MAAmB,EAAE,QAAgB,IAAG,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;CACpB,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAmB,EAAE,CAAA;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAkB,EAAE,CAAA;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAO,EAAE,CAAA;AACjC,MAAM,CAAC,MAAM,UAAU,GAAgB,KAAK,CAAA;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAE,CAAC;KACvB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,EAAE;KACZ;IACD,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,UAAU;CAClB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,oBAAoB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;IAC5C,OAAO,EAAE,EAAE;CACZ,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,CAAA;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAkB,EAAE,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,YAAY;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;CACT,CAAA","sourcesContent":["export const ZERO_CLASSIFIER: GristClassifier = (record, rowIndex) => {}\nexport const ZERO_FIELD_RENDERER: FieldRenderer = (value, column, record, rowIndex, owner) => {}\nexport const ZERO_THUMBNAIL_TEMPLATE = function (record: GristRecord, rowIndex: number) {}\n\nexport const ZERO_EVENTHANDLERSET: GristEventHandlerSet = {\n click: undefined,\n dblclick: undefined\n}\nexport const ZERO_COLUMNS: ColumnConfig[] = []\nexport const ZERO_GROUPS: GroupConfig[] = []\nexport const ZERO_TOTALS: [] = []\nexport const ZERO_LABEL: LabelConfig = false\n\nexport const ZERO_COLUMN: ColumnConfig = {\n type: '',\n name: '',\n header: {\n renderer: column => {}\n },\n record: {\n renderer: ZERO_FIELD_RENDERER,\n classifier: ZERO_CLASSIFIER,\n options: {}\n },\n handlers: ZERO_EVENTHANDLERSET,\n label: ZERO_LABEL\n}\n\nexport const ZERO_ROWS: RowsConfig = {\n appendable: false,\n insertable: false,\n groups: ZERO_GROUPS,\n totals: ZERO_TOTALS,\n classifier: ZERO_CLASSIFIER,\n handlers: ZERO_EVENTHANDLERSET\n}\n\nexport const ZERO_LIST: ListConfig = {\n thumbnail: ZERO_THUMBNAIL_TEMPLATE,\n fields: ['name', 'description', 'updatedAt'],\n details: []\n}\n\nexport const ZERO_CONFIG: GristConfig = {\n columns: ZERO_COLUMNS,\n rows: ZERO_ROWS,\n list: ZERO_LIST\n}\n\nexport const ZERO_RECORD: GristRecord = {}\nexport const ZERO_RECORDS: GristRecord[] = []\n\nexport const ZERO_DATA: GristData = {\n records: ZERO_RECORDS\n}\n\nexport const ZERO_PAGINATION = {\n page: 1,\n limit: 20,\n total: 0\n}\n\nexport type GristConfig = {\n columns: ColumnConfig[]\n rows: RowsConfig\n list: ListConfig\n pagination?: PaginationConfig\n sorters?: SortersConfig\n}\n\nexport type SorterConfig = { name: string; desc?: boolean }\nexport type SortersConfig = SorterConfig[]\n\nexport type PaginationConfig = {\n page?: number\n limit?: number\n pages: number[]\n infinite?: boolean\n}\n\nexport type GristEventHandler = (\n columns: ColumnConfig[],\n data?: GristData,\n column?: ColumnConfig,\n record?: GristRecord,\n rowIndex?: number,\n target?: any\n) => void\n\nexport type ColumnConfig = {\n type: string\n name: string\n gutterName?: string\n header: HeaderConfig\n record: RecordConfig\n handlers: GristEventHandlerSet\n label: LabelConfig\n hidden?: boolean\n sortable?: boolean\n resizable?: boolean\n width?: number | string | ColumnWidthCallback\n forList?: boolean\n validation?: ValidationCallback\n imex?: ImexConfig\n multiple?: boolean\n}\n\nexport type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean\n\nexport type LabelConfig =\n | string\n | boolean\n | {\n renderer: LabelRenderer\n }\n\nexport type LabelRenderer = () => void\n\nexport type ColumnWidthCallback = (column: ColumnConfig) => string\n\nexport type HeaderConfig = {\n renderer: HeaderRenderer\n}\nexport type HeaderRenderer = (column: ColumnConfig) => any\n\nexport type RecordConfig = {\n renderer: FieldRenderer\n editor?: FieldEditor\n editable?: boolean\n classifier: GristClassifier\n align?: 'left' | 'right' | 'center'\n options: { [key: string]: any }\n rowOptionField?: string\n}\n\nexport type FieldRenderer = (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, owner: any) => any\nexport type FieldEditor = (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, owner: any) => any\nexport type FieldThumbnailRenderer = (record: GristRecord, rowIndex: number) => any\n\nexport type GristEventHandlerSet = {\n click?: GristEventHandler\n dblclick?: GristEventHandler\n}\n\nexport type ListConfig = {\n thumbnail: FieldThumbnailRenderer\n fields: string[]\n details: string[]\n}\n\nexport type ImexConfig = {\n header: string\n key: string\n width: number\n type: string\n}\n\nexport type RowsConfig = {\n appendable: boolean\n insertable: boolean\n selectable?: RowSelectableConfig\n groups: GroupConfig[]\n totals: string[]\n classifier: GristClassifier\n handlers: GristEventHandlerSet\n}\n\nexport type GristClassifier = (\n record: GristRecord,\n rowIndex: number\n) => { emphasized?: boolean | string | string[]; [key: string]: any } | void\n\nexport type GroupConfig = {\n align: string\n titleColumn?: ColumnConfig\n title: string\n value?: string\n groupName?: string\n row?: number\n column: string | number\n rowspan: number\n colspan?: number\n}\n\nexport type RowSelectableConfig = {\n multiple?: boolean\n}\n\nexport type GristRecord = {\n id?: string\n name?: string\n __seq__?: number\n __dirty__?: string\n __selected__?: boolean\n __changes__?: object[]\n __dirtyfields__?: { [key: string]: any }\n __origin__?: any\n [key: string]: any\n}\n\nexport type GristData = {\n page?: number\n total?: number\n limit?: number\n records: GristRecord[]\n}\n"]}
1
+ {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/configure/config-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAE,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAE,CAAC,CAAA;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,MAAmB,EAAE,QAAgB,IAAG,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;CACpB,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAmB,EAAE,CAAA;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAkB,EAAE,CAAA;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAO,EAAE,CAAA;AACjC,MAAM,CAAC,MAAM,UAAU,GAAgB,KAAK,CAAA;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAE,CAAC;KACvB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,EAAE;KACZ;IACD,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,UAAU;CAClB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,oBAAoB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;IAC5C,OAAO,EAAE,EAAE;CACZ,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,CAAA;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAkB,EAAE,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,YAAY;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;CACT,CAAA","sourcesContent":["export const ZERO_CLASSIFIER: GristClassifier = (record, rowIndex) => {}\nexport const ZERO_FIELD_RENDERER: FieldRenderer = (value, column, record, rowIndex, owner) => {}\nexport const ZERO_THUMBNAIL_TEMPLATE = function (record: GristRecord, rowIndex: number) {}\n\nexport const ZERO_EVENTHANDLERSET: GristEventHandlerSet = {\n click: undefined,\n dblclick: undefined\n}\nexport const ZERO_COLUMNS: ColumnConfig[] = []\nexport const ZERO_GROUPS: GroupConfig[] = []\nexport const ZERO_TOTALS: [] = []\nexport const ZERO_LABEL: LabelConfig = false\n\nexport const ZERO_COLUMN: ColumnConfig = {\n type: '',\n name: '',\n header: {\n renderer: column => {}\n },\n record: {\n renderer: ZERO_FIELD_RENDERER,\n classifier: ZERO_CLASSIFIER,\n options: {}\n },\n handlers: ZERO_EVENTHANDLERSET,\n label: ZERO_LABEL\n}\n\nexport const ZERO_ROWS: RowsConfig = {\n appendable: false,\n insertable: false,\n groups: ZERO_GROUPS,\n totals: ZERO_TOTALS,\n classifier: ZERO_CLASSIFIER,\n handlers: ZERO_EVENTHANDLERSET\n}\n\nexport const ZERO_LIST: ListConfig = {\n thumbnail: ZERO_THUMBNAIL_TEMPLATE,\n fields: ['name', 'description', 'updatedAt'],\n details: []\n}\n\nexport const ZERO_CONFIG: GristConfig = {\n columns: ZERO_COLUMNS,\n rows: ZERO_ROWS,\n list: ZERO_LIST\n}\n\nexport const ZERO_RECORD: GristRecord = {}\nexport const ZERO_RECORDS: GristRecord[] = []\n\nexport const ZERO_DATA: GristData = {\n records: ZERO_RECORDS\n}\n\nexport const ZERO_PAGINATION = {\n page: 1,\n limit: 20,\n total: 0\n}\n"]}
@@ -1,2 +1 @@
1
- import { ImexConfig } from './config-types';
2
1
  export declare const buildImexOptions: (imex: any) => ImexConfig | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"imex-option-builder.js","sourceRoot":"","sources":["../../../src/configure/imex-option-builder.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAA0B,EAAE;IACpE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA","sourcesContent":["import { ImexConfig } from './config-types'\n\nexport const buildImexOptions = (imex: any): ImexConfig | undefined => {\n return imex\n}\n"]}
1
+ {"version":3,"file":"imex-option-builder.js","sourceRoot":"","sources":["../../../src/configure/imex-option-builder.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAA0B,EAAE;IACpE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA","sourcesContent":["export const buildImexOptions = (imex: any): ImexConfig | undefined => {\n return imex\n}\n"]}
@@ -1,2 +1 @@
1
- import { ListConfig } from './config-types';
2
1
  export declare const buildListOptions: (list: ListConfig | undefined) => ListConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"list-option-builder.js","sourceRoot":"","sources":["../../../src/configure/list-option-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA4B,EAAc,EAAE;IAC3E,OAAO;QACL,SAAS,EAAE,uBAAuB;QAClC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;QAC5C,OAAO,EAAE,EAAE;QACX,GAAG,IAAI;KACR,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { ListConfig, ZERO_THUMBNAIL_TEMPLATE } from './config-types'\n\nexport const buildListOptions = (list: ListConfig | undefined): ListConfig => {\n return {\n thumbnail: ZERO_THUMBNAIL_TEMPLATE,\n fields: ['name', 'description', 'updatedAt'],\n details: [],\n ...list\n }\n}\n"]}
1
+ {"version":3,"file":"list-option-builder.js","sourceRoot":"","sources":["../../../src/configure/list-option-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA4B,EAAc,EAAE;IAC3E,OAAO;QACL,SAAS,EAAE,uBAAuB;QAClC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;QAC5C,OAAO,EAAE,EAAE;QACX,GAAG,IAAI;KACR,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { ZERO_THUMBNAIL_TEMPLATE } from './config-types'\n\nexport const buildListOptions = (list: ListConfig | undefined): ListConfig => {\n return {\n thumbnail: ZERO_THUMBNAIL_TEMPLATE,\n fields: ['name', 'description', 'updatedAt'],\n details: [],\n ...list\n }\n}\n"]}
@@ -1,2 +1 @@
1
- import { RowsConfig } from './config-types';
2
1
  export declare const buildRowsOptions: (rows: any) => RowsConfig;