@operato/scene-grist 1.0.0-alpha.6 → 1.0.0
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.
- package/CHANGELOG.md +290 -6
- package/assets/favicon.ico +0 -0
- package/assets/images/spinner.png +0 -0
- package/dist/grist-action.d.ts +1 -2
- package/dist/grist-action.js +4 -9
- package/dist/grist-action.js.map +1 -1
- package/dist/grist.d.ts +1 -1
- package/dist/grist.js +5 -1
- package/dist/grist.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/helps/scene/component/grist.ko.md +14 -2
- package/helps/scene/component/grist.md +14 -2
- package/helps/scene/component/grist.zh.md +13 -1
- package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +15 -0
- package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +15 -0
- package/logs/application-2022-06-10-11.log +12 -0
- package/logs/connections-2022-06-10-11.log +70 -0
- package/package.json +6 -8
- package/src/grist-action.ts +6 -9
- package/src/grist.ts +10 -5
- package/tsconfig.tsbuildinfo +1 -1
- package/src/uuid.d.ts +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,33 +3,317 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [1.0.0
|
|
6
|
+
## [1.0.0](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.38...v1.0.0) (2022-07-24)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### :bug: Bug Fix
|
|
10
10
|
|
|
11
|
-
*
|
|
11
|
+
* latest dependencies ([b435b97](https://github.com/things-scene/operato-scene/commit/b435b970f86f7e81d820a7656ecd6e0d4878ec42))
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
## [1.0.0-alpha.
|
|
15
|
+
## [1.0.0-alpha.38](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.37...v1.0.0-alpha.38) (2022-07-20)
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
### :bug: Bug Fix
|
|
19
19
|
|
|
20
|
-
*
|
|
20
|
+
* latest dependencies ([668aed1](https://github.com/things-scene/operato-scene/commit/668aed12552b08366230dbfab77ac2cbf4785c95))
|
|
21
|
+
* latest dependencies ([8a4cf6b](https://github.com/things-scene/operato-scene/commit/8a4cf6bfc9eed2bdb991eb77df9dba4b42de45e7))
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
## [1.0.0-alpha.
|
|
25
|
+
## [1.0.0-alpha.37](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.36...v1.0.0-alpha.37) (2022-07-17)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### :bug: Bug Fix
|
|
29
|
+
|
|
30
|
+
* latest dependencies ([cb2e928](https://github.com/things-scene/operato-scene/commit/cb2e92871da17a11ac9c68b3c4ead5df59429973))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [1.0.0-alpha.36](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.35...v1.0.0-alpha.36) (2022-07-17)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### :bug: Bug Fix
|
|
38
|
+
|
|
39
|
+
* integration use @operato/graphql client and subscribe ([d184eb3](https://github.com/things-scene/operato-scene/commit/d184eb35c9447ef1ecb6f5abe88ee1677345f487))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## [1.0.0-alpha.35](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.34...v1.0.0-alpha.35) (2022-07-15)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### :bug: Bug Fix
|
|
47
|
+
|
|
48
|
+
* latest dependencies ([f5ea226](https://github.com/things-scene/operato-scene/commit/f5ea2264cde9ee6a0e20586ce9e86e47a3d8d922))
|
|
49
|
+
* latest dependencies ([7438dd3](https://github.com/things-scene/operato-scene/commit/7438dd3de9bdef939051ff72aad4c1b5608b6ab9))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## [1.0.0-alpha.34](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.33...v1.0.0-alpha.34) (2022-07-11)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### :bug: Bug Fix
|
|
57
|
+
|
|
58
|
+
* latest [@things-factory](https://github.com/things-factory) ([03247f1](https://github.com/things-scene/operato-scene/commit/03247f188183fd784721521ff06ef49c440849bf))
|
|
59
|
+
* latest dependencies ([a9f062a](https://github.com/things-scene/operato-scene/commit/a9f062a08e4b3ffc89e7b99f3043520a5caea78b))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## [1.0.0-alpha.33](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.32...v1.0.0-alpha.33) (2022-07-09)
|
|
64
|
+
|
|
65
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## [1.0.0-alpha.32](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.31...v1.0.0-alpha.32) (2022-07-09)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### :bug: Bug Fix
|
|
75
|
+
|
|
76
|
+
* latest [@operato](https://github.com/operato) ([d033339](https://github.com/things-scene/operato-scene/commit/d033339f50bea249cdd9af22b2b9950c72045d7d))
|
|
77
|
+
* latest [@things-factory](https://github.com/things-factory) ([a5ea8ba](https://github.com/things-scene/operato-scene/commit/a5ea8ba70af7ac74e7cdee77fb74a152a0079366))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## [1.0.0-alpha.31](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.30...v1.0.0-alpha.31) (2022-07-07)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### :bug: Bug Fix
|
|
85
|
+
|
|
86
|
+
* latest [@operato](https://github.com/operato) ([b35d293](https://github.com/things-scene/operato-scene/commit/b35d29370478f340e9f450034357697b9263fe10))
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## [1.0.0-alpha.30](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.29...v1.0.0-alpha.30) (2022-07-05)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
### :bug: Bug Fix
|
|
94
|
+
|
|
95
|
+
* latest [@things-factory](https://github.com/things-factory) ([dac17fa](https://github.com/things-scene/operato-scene/commit/dac17faebadfd2bd2efb7192a3b1f3aafdac0cbd))
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
## [1.0.0-alpha.29](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.28...v1.0.0-alpha.29) (2022-07-03)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
### :bug: Bug Fix
|
|
103
|
+
|
|
104
|
+
* latest [@operato](https://github.com/operato) ([b9f14d8](https://github.com/things-scene/operato-scene/commit/b9f14d8838943093e65175b80f515281011089ed))
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
## [1.0.0-alpha.28](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.27...v1.0.0-alpha.28) (2022-07-03)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
### :bug: Bug Fix
|
|
112
|
+
|
|
113
|
+
* latest [@operato](https://github.com/operato) [@things-factory](https://github.com/things-factory) ([6ef27eb](https://github.com/things-scene/operato-scene/commit/6ef27eba820d7641e6c7cc3cedf815c0af74a6c7))
|
|
114
|
+
* latest @hatiolab/things-scene [@operato](https://github.com/operato) ([353d090](https://github.com/things-scene/operato-scene/commit/353d0900a24a96aabde48405ee6ec18b1b227e09))
|
|
115
|
+
* latest dependencies ([4ad53db](https://github.com/things-scene/operato-scene/commit/4ad53db21b0f88856f93fcbc3a12b80011d73a1b))
|
|
116
|
+
* latest dependencies ([7328b85](https://github.com/things-scene/operato-scene/commit/7328b85c151feb718ca1bcdaf9ac36f9f721ed57))
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## [1.0.0-alpha.27](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) (2022-06-22)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
### :bug: Bug Fix
|
|
124
|
+
|
|
125
|
+
* latest @hatiolab/things-scene ([5f7e8b6](https://github.com/things-scene/operato-scene/commit/5f7e8b6f40e7b73ac874be1d473eff847f14afe2))
|
|
126
|
+
* latest @hatiolab/things-scene ([1bb48f0](https://github.com/things-scene/operato-scene/commit/1bb48f0259044085f690c817dbe0383a44b15f9b))
|
|
127
|
+
* latest @hatiolab/things-scene [@operato](https://github.com/operato) ([ed2b7b8](https://github.com/things-scene/operato-scene/commit/ed2b7b83f0fd06780e6b9841cc6a1702b834e4ac))
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
## [1.0.0-alpha.26](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.25...v1.0.0-alpha.26) (2022-06-20)
|
|
132
|
+
|
|
133
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
## [1.0.0-alpha.25](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.24...v1.0.0-alpha.25) (2022-06-20)
|
|
140
|
+
|
|
141
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
## [1.0.0-alpha.24](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.23...v1.0.0-alpha.24) (2022-06-20)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
### :bug: Bug Fix
|
|
151
|
+
|
|
152
|
+
* latest [@operato](https://github.com/operato) ([1a59e6f](https://github.com/things-scene/operato-scene/commit/1a59e6f0ced18902fee98b88933650e23f9ad420))
|
|
153
|
+
* latest dependencies ([9ee4519](https://github.com/things-scene/operato-scene/commit/9ee4519adfe49e2eac8433f31ad5dea9257a1fca))
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
## [1.0.0-alpha.23](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.22...v1.0.0-alpha.23) (2022-06-16)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
### :bug: Bug Fix
|
|
161
|
+
|
|
162
|
+
* latest [@operato](https://github.com/operato) ([45a542f](https://github.com/things-scene/operato-scene/commit/45a542f484a4fe552533a35eb90f2b100e01249f))
|
|
163
|
+
* latest [@operato](https://github.com/operato) ([d4020ee](https://github.com/things-scene/operato-scene/commit/d4020eefc797da03d43b73708dcfd8541f5b30af))
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## [1.0.0-alpha.22](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.21...v1.0.0-alpha.22) (2022-06-16)
|
|
25
168
|
|
|
26
169
|
|
|
27
170
|
### :bug: Bug Fix
|
|
28
171
|
|
|
29
|
-
*
|
|
172
|
+
* latest @hatiolab/things-scene ([0928090](https://github.com/things-scene/operato-scene/commit/09280903b4b0280ee8a76a4d1c2a0bf8d0997563))
|
|
30
173
|
|
|
31
174
|
|
|
32
175
|
|
|
176
|
+
## [1.0.0-alpha.21](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.20...v1.0.0-alpha.21) (2022-06-16)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
### :bug: Bug Fix
|
|
180
|
+
|
|
181
|
+
* latest [@operato](https://github.com/operato) ([8384a79](https://github.com/things-scene/operato-scene/commit/8384a79c616db7c5fb437a480bb8c8337b75db84))
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
## [1.0.0-alpha.20](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.19...v1.0.0-alpha.20) (2022-06-10)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
### :bug: Bug Fix
|
|
189
|
+
|
|
190
|
+
* remove 'uuid' dependency from scene-grist ([f09e4bb](https://github.com/things-scene/operato-scene/commit/f09e4bbb1406cc3b8c54a294182df470b788b23b))
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
## [1.0.0-alpha.19](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.18...v1.0.0-alpha.19) (2022-06-09)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
### :bug: Bug Fix
|
|
198
|
+
|
|
199
|
+
* data-grist help ([5ea51ed](https://github.com/things-scene/operato-scene/commit/5ea51ed3046bd9fd45a62c0479750ee735556842))
|
|
200
|
+
* latest [@operato](https://github.com/operato) [@things-factory](https://github.com/things-factory) ([c6a5475](https://github.com/things-scene/operato-scene/commit/c6a54751a3af539840fd57d031e09ee1552a7b4c))
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
## [1.0.0-alpha.18](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.17...v1.0.0-alpha.18) (2022-05-30)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
### :bug: Bug Fix
|
|
208
|
+
|
|
209
|
+
* latest dependencies ([5fae24c](https://github.com/things-scene/operato-scene/commit/5fae24ce2e7d17b5e2e85fae4cee04cfca690549))
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
## [1.0.0-alpha.17](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.16...v1.0.0-alpha.17) (2022-05-29)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
### :bug: Bug Fix
|
|
217
|
+
|
|
218
|
+
* default client for graphql ([d13b1e4](https://github.com/things-scene/operato-scene/commit/d13b1e4a7afecedd72ec0e39827c2bf8b4ef3a1f))
|
|
219
|
+
* latest things-scene & [@things-factory](https://github.com/things-factory) ([485bcce](https://github.com/things-scene/operato-scene/commit/485bccead07ccc5065088f1d458175f84083f9a5))
|
|
220
|
+
* update [@operato](https://github.com/operato) [@things-factory](https://github.com/things-factory) ([8552127](https://github.com/things-scene/operato-scene/commit/8552127bdda3282ac74e86b936342caa085f6bea))
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
## [1.0.0-alpha.16](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.15...v1.0.0-alpha.16) (2022-05-23)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
### :rocket: New Features
|
|
228
|
+
|
|
229
|
+
* migrate data-transform from [@things-factory](https://github.com/things-factory) ([2b7c5d3](https://github.com/things-scene/operato-scene/commit/2b7c5d34027d611c5e8210cada8cd15272944fa5))
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
### :bug: Bug Fix
|
|
233
|
+
|
|
234
|
+
* update dependencies ([8ef917f](https://github.com/things-scene/operato-scene/commit/8ef917f41e83126495d3b75ae3042bbd66cf12c3))
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
## [1.0.0-alpha.15](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.14...v1.0.0-alpha.15) (2022-05-13)
|
|
239
|
+
|
|
240
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
## [1.0.0-alpha.14](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.13...v1.0.0-alpha.14) (2022-05-01)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
### :bug: Bug Fix
|
|
250
|
+
|
|
251
|
+
* apply @hatiolab/things-scene 3.0.6 - memory free ([5778610](https://github.com/things-scene/operato-scene/commit/5778610aa6456709cb931a3185b189f1d3bd1ff9))
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
## [1.0.0-alpha.13](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.12...v1.0.0-alpha.13) (2022-04-24)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
### :bug: Bug Fix
|
|
259
|
+
|
|
260
|
+
* "@hatiolab/things-scene": "^3.0.2" ([13057dd](https://github.com/things-scene/operato-scene/commit/13057dd2f8bbb3859abb479516c3483bcc15354b))
|
|
261
|
+
* @hatiolab/things-scene 3.0.5 and [@operato](https://github.com/operato) 1.0.0-beta.7 ([bd69bf1](https://github.com/things-scene/operato-scene/commit/bd69bf134c1fe6789f4964f0e6525f728eee8275))
|
|
262
|
+
* things-scene 3.0.1 ([288f953](https://github.com/things-scene/operato-scene/commit/288f953947d73ffa3f6e8743f8326570d1dace80))
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
## [1.0.0-alpha.12](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.11...v1.0.0-alpha.12) (2022-04-18)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
### :bug: Bug Fix
|
|
270
|
+
|
|
271
|
+
* @hatiolab/things-scene 3.0.0 ([29021a5](https://github.com/things-scene/operato-scene/commit/29021a511e5dc1e91b337b155817d846883ceff7))
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
## [1.0.0-alpha.11](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.10...v1.0.0-alpha.11) (2022-04-17)
|
|
276
|
+
|
|
277
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
## [1.0.0-alpha.10](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.9...v1.0.0-alpha.10) (2022-04-10)
|
|
284
|
+
|
|
285
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
286
|
+
|
|
287
|
+
## [1.0.0-alpha.9](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2022-04-07)
|
|
288
|
+
|
|
289
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
290
|
+
|
|
291
|
+
## [1.0.0-alpha.8](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.7...v1.0.0-alpha.8) (2022-04-07)
|
|
292
|
+
|
|
293
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
294
|
+
|
|
295
|
+
## [1.0.0-alpha.7](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.6...v1.0.0-alpha.7) (2022-04-06)
|
|
296
|
+
|
|
297
|
+
**Note:** Version bump only for package @operato/scene-grist
|
|
298
|
+
|
|
299
|
+
## [1.0.0-alpha.6](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.5...v1.0.0-alpha.6) (2022-04-05)
|
|
300
|
+
|
|
301
|
+
### :bug: Bug Fix
|
|
302
|
+
|
|
303
|
+
- [@things-factory](https://github.com/things-factory) 5.0.0-alpha.36 ([459ce88](https://github.com/things-scene/operato-scene/commit/459ce884942ab11bcd1e9b9c6af7bf045b580a41))
|
|
304
|
+
|
|
305
|
+
## [1.0.0-alpha.5](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.4...v1.0.0-alpha.5) (2022-04-03)
|
|
306
|
+
|
|
307
|
+
### :bug: Bug Fix
|
|
308
|
+
|
|
309
|
+
- upgrade lit and operato, things-factory ([f056300](https://github.com/things-scene/operato-scene/commit/f056300c0e2f85c41715d3178f12c39bf3110a34))
|
|
310
|
+
|
|
311
|
+
## [1.0.0-alpha.4](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.3...v1.0.0-alpha.4) (2022-03-13)
|
|
312
|
+
|
|
313
|
+
### :bug: Bug Fix
|
|
314
|
+
|
|
315
|
+
- [@operato](https://github.com/operato) 1.0.0-alpha.17 ([a8a147c](https://github.com/things-scene/operato-scene/commit/a8a147c972ed571e35d210feb3bfbc7cd31f280b))
|
|
316
|
+
|
|
33
317
|
## [1.0.0-alpha.3](https://github.com/things-scene/operato-scene/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2022-03-13)
|
|
34
318
|
|
|
35
319
|
### :bug: Bug Fix
|
|
Binary file
|
|
Binary file
|
package/dist/grist-action.d.ts
CHANGED
|
@@ -17,9 +17,8 @@ declare const GristAction_base: (new (...args: any[]) => {
|
|
|
17
17
|
animOnValueChange(value: number, animFromBase: boolean, base: number): void;
|
|
18
18
|
}) & typeof Component;
|
|
19
19
|
export default class GristAction extends GristAction_base {
|
|
20
|
-
static get nature(): ComponentNature;
|
|
21
|
-
private uuid;
|
|
22
20
|
private _data;
|
|
21
|
+
get nature(): ComponentNature;
|
|
23
22
|
ready(): void;
|
|
24
23
|
dispose(): void;
|
|
25
24
|
onclick(): void;
|
package/dist/grist-action.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* grist 컴포넌트를 보조하여 grist의 각종 동작을 수행하는 컴포넌트.
|
|
5
5
|
*/
|
|
6
|
-
import uuid from 'uuid';
|
|
7
6
|
import { Component, RectPath, ValueHolder } from '@hatiolab/things-scene';
|
|
8
7
|
export var ACTIONS;
|
|
9
8
|
(function (ACTIONS) {
|
|
@@ -90,12 +89,7 @@ const NATURE = {
|
|
|
90
89
|
help: 'scene/component/grist-action'
|
|
91
90
|
};
|
|
92
91
|
export default class GristAction extends ValueHolder(RectPath(Component)) {
|
|
93
|
-
|
|
94
|
-
super(...arguments);
|
|
95
|
-
// grist의 fetchHandler를 사용할 때 이 컴포넌트를 판별할 ID
|
|
96
|
-
this.uuid = uuid.v4();
|
|
97
|
-
}
|
|
98
|
-
static get nature() {
|
|
92
|
+
get nature() {
|
|
99
93
|
return NATURE;
|
|
100
94
|
}
|
|
101
95
|
ready() {
|
|
@@ -120,15 +114,16 @@ export default class GristAction extends ValueHolder(RectPath(Component)) {
|
|
|
120
114
|
// action 값이 바뀌면 getPageInfo인지 확인하고 grist에 fetchHandler를 등록하거나 폐기함
|
|
121
115
|
if ('action' in after) {
|
|
122
116
|
const gristComponent = this.targetGristComponent;
|
|
117
|
+
const { refid } = this.state;
|
|
123
118
|
if (gristComponent) {
|
|
124
119
|
if (after.action == ACTIONS.GET_PAGE_INFO) {
|
|
125
|
-
gristComponent.beforeFetchFuncs[
|
|
120
|
+
gristComponent.beforeFetchFuncs[refid] = (fetchedData) => {
|
|
126
121
|
this.data = this.getPageInfoFrom(null, fetchedData);
|
|
127
122
|
this.doDataMap();
|
|
128
123
|
};
|
|
129
124
|
}
|
|
130
125
|
else {
|
|
131
|
-
delete gristComponent.beforeFetchFuncs[
|
|
126
|
+
delete gristComponent.beforeFetchFuncs[refid];
|
|
132
127
|
}
|
|
133
128
|
}
|
|
134
129
|
}
|
package/dist/grist-action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grist-action.js","sourceRoot":"","sources":["../src/grist-action.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n *\n * grist 컴포넌트를 보조하여 grist의 각종 동작을 수행하는 컴포넌트.\n */\n\nimport uuid from 'uuid'\n\nimport { Component, ComponentNature, Properties, RectPath, ValueHolder } from '@hatiolab/things-scene'\nimport { DataGrist } from '@operato/data-grist'\nimport { GristData, GristRecord, SorterConfig } from '@operato/data-grist/src/types.js'\n\nimport SceneGrist from './grist'\n\nexport enum ACTIONS {\n GET_ALL_ROWS = 'getAllRows',\n COMMIT = 'commit',\n GET_SELECTED = 'getSelectedRows',\n GET_DIRTY = 'getDirtyRows',\n ADD_ROW = 'addRow',\n DELETE_SELECTED_ROWS = 'deleteSelectedRowsSoftly',\n GET_PAGE_INFO = 'getPageInfo'\n}\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n // 대상 Grist\n type: 'id-input',\n label: 'target-grist',\n name: 'target',\n property: {\n component: 'grist'\n }\n },\n {\n // 동작\n type: 'select',\n label: 'action',\n name: 'action',\n property: {\n options: [\n {\n // 페이지네이션 정보 가져오기\n display: 'Get page information',\n value: ACTIONS.GET_PAGE_INFO\n },\n {\n // 모든 레코드 데이터 가져오기\n display: 'Get all rows',\n value: ACTIONS.GET_ALL_ROWS\n },\n {\n // 체크된 레코드 데이터 가져오기\n display: 'Get selected rows',\n value: ACTIONS.GET_SELECTED\n },\n {\n // 변경 사항이 있는 데이터 가져오기\n display: 'Get dirty rows',\n value: ACTIONS.GET_DIRTY\n },\n {\n // 행 추가\n display: 'Add a row',\n value: ACTIONS.ADD_ROW\n },\n {\n // 선택 행 삭제\n display: 'Delete selected rows',\n value: ACTIONS.DELETE_SELECTED_ROWS\n },\n {\n // 변경 사항을 데이터에 적용\n display: 'Commit',\n value: ACTIONS.COMMIT\n }\n ]\n }\n },\n {\n // 뷰어 시작 시 자동 실행 여부\n type: 'checkbox',\n label: 'run-at-startup',\n name: 'runAtStartup'\n },\n {\n // 행 추가 시의 포맷\n type: 'textarea',\n label: 'record-adder-format',\n name: 'recordFormat'\n }\n ],\n help: 'scene/component/grist-action'\n}\n\nexport default class GristAction extends ValueHolder(RectPath(Component)) {\n static get nature() {\n return NATURE\n }\n\n // grist의 fetchHandler를 사용할 때 이 컴포넌트를 판별할 ID\n private uuid = uuid.v4()\n private _data: any\n\n ready() {\n // 뷰어 시작시에도 action 값이 getPageInfo로 되어 있을 경우 fetchHandler를 등록하기 위해 onchange를 호출함\n this.onchange({ action: this.state.action })\n if (this.state.runAtStartup) {\n setTimeout(() => this.doAction(), 100)\n }\n }\n\n dispose() {\n super.dispose()\n }\n\n onclick() {\n // 컴포넌트 클릭 시 동작\n this.doAction()\n }\n\n onchange(after: Properties) {\n // value 값이 바뀌면 동작\n if ('value' in after) {\n this.doAction()\n }\n\n // action 값이 바뀌면 getPageInfo인지 확인하고 grist에 fetchHandler를 등록하거나 폐기함\n if ('action' in after) {\n const gristComponent = this.targetGristComponent\n\n if (gristComponent) {\n if (after.action == ACTIONS.GET_PAGE_INFO) {\n gristComponent.beforeFetchFuncs[this.uuid] = (fetchedData: {\n page: number\n limit: number\n total: number\n records: GristRecord[]\n }) => {\n this.data = this.getPageInfoFrom(null, fetchedData)\n this.doDataMap()\n }\n } else {\n delete gristComponent.beforeFetchFuncs[this.uuid]\n }\n }\n }\n }\n\n // 데이터 매핑을 수동으로 실행하기 위해 기존의 메소드를 무효화\n executeMappings() {\n console.debug(\n \"[@operato/data-grist] The method 'executeMappings' is overriden in the component 'grist-action', because of to prevent executing when initialize.\"\n )\n }\n\n // 데이터 매핑을 수동으로 조작하기 위한 새 메소드\n doDataMap() {\n super.executeMappings()\n }\n\n // action 값에 따라 동작\n doAction(action?: ACTIONS) {\n if (!this.app.isViewMode) {\n return\n }\n\n // 파라미터가 명시되어있지 않으면 컴포넌트 속성에서 action 값을 가져옴\n var { action: storedAction } = this.state\n action = action || storedAction\n\n // 대상 Grist 컴포넌트\n var grist = this.targetGristElement\n if (!grist) return\n\n var data\n switch (action) {\n case ACTIONS.GET_ALL_ROWS:\n data = grist.grist.data\n break\n case ACTIONS.COMMIT:\n grist.commit()\n break\n case ACTIONS.GET_SELECTED:\n data = {\n patches: this.buildPatches(grist.selected),\n original: grist.selected\n }\n break\n case ACTIONS.GET_DIRTY:\n data = this.assortDirties(grist)\n break\n case ACTIONS.ADD_ROW:\n {\n var records = grist.dirtyData.records || []\n\n let recordFormat\n try {\n recordFormat = eval(`(${this.state.recordFormat})`)\n } catch (e) {\n console.log('Invalid JSON format. It will be assumed as empty object.\\n', e)\n recordFormat = {}\n }\n records.push({ ...recordFormat, __dirty__: '+' })\n this.refreshGrist(grist)\n }\n break\n case ACTIONS.DELETE_SELECTED_ROWS:\n {\n var records = grist.dirtyData.records || []\n\n records.forEach((record, idx) => {\n if (record['__selected__']) {\n if (record['__dirty__'] == '+') delete records[idx]\n else record['__dirty__'] = '-'\n }\n })\n grist.dirtyData.records = records.flat()\n this.refreshGrist(grist)\n }\n break\n case ACTIONS.GET_PAGE_INFO:\n data = this.getPageInfoFrom(grist)\n break\n }\n\n // 이 컴포넌트의 data 값이 바뀌는 동작은 데이터 매핑까지 실행함\n if (data) {\n this.data = data\n this.doDataMap()\n }\n }\n\n // 대상 grist 컴포넌트의 레코드를 새로고침\n refreshGrist(grist: DataGrist) {\n grist = grist || this.targetGristElement\n if (!grist) return\n\n grist.refresh()\n // grist.dataProvider.onRecordChange()\n grist.grist.data = { ...grist.dirtyData }\n }\n\n // 변경 사항이 있는 레코드의 경우, CUD를 분류해서 반환함\n assortDirties(grist: DataGrist) {\n const dirties = grist.dirtyRecords\n var patches = this.buildPatches(dirties)\n var records = {\n original: dirties,\n patches,\n created: [] as GristRecord[],\n updated: [] as GristRecord[],\n deleted: [] as GristRecord[]\n }\n\n patches.forEach((record: GristRecord) => {\n switch (record['cuFlag']) {\n case 'M':\n records.updated.push(record)\n break\n case '+':\n records.created.push(record)\n break\n case '-':\n records.deleted.push(record)\n break\n }\n })\n return records\n }\n\n // 페이지네이션 정보를 가져옴\n getPageInfoFrom(grist: DataGrist | null, fetchedData?: GristData) {\n // @ts-ignore\n var { page = 1, limit = 20, sorters = [] } = fetchedData || (grist && grist.dataProvider) || pagination(grist!)\n\n sorters = sorters.map((sorter: SorterConfig) => {\n sorter.desc = sorter.desc ? true : false\n return sorter\n })\n return { page, limit, sorters }\n\n function pagination(grist: DataGrist) {\n var config = grist && grist.config && grist.config.pagination\n if (config)\n return {\n page: config.page,\n limit: config.limit || (config.pages && config.pages[0])\n }\n else return {}\n }\n }\n\n // 레코드들을 서버 공통 resolver에 맞는 포맷으로 만듦\n buildPatches(patches: GristRecord[]): GristRecord[] {\n return patches.map(patch => {\n let patchField: { [key: string]: any } = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n }\n\n render(context: CanvasRenderingContext2D) {\n var { top, left, height, width, fillStyle = 'transparent' } = this.model\n\n // background의 색상\n context.beginPath()\n context.rect(left, top, width, height)\n\n context.fillStyle = fillStyle\n context.fill()\n\n // value의 색상\n context.beginPath()\n\n var drawValue = width - (width * Math.max(Math.min(this.animValue, 100), 0)) / 100\n drawValue = Math.max(Math.min(drawValue, width), 0)\n\n context.rect(left + drawValue, top, width - drawValue, height)\n\n this.drawFill(context)\n\n context.closePath()\n\n context.beginPath()\n\n context.rect(left, top, width, height)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawStroke(context)\n this.drawText(context)\n }\n\n get controls() {\n return []\n }\n\n get targetGristComponent(): SceneGrist {\n var { target } = this.state\n return this.root.findById(target) as SceneGrist\n }\n\n get targetGristElement(): DataGrist | undefined {\n return this.targetGristComponent?.grist\n }\n\n get data() {\n return this._data\n }\n\n set data(data) {\n this._data = data\n }\n}\n\nComponent.register('grist-action', GristAction)\n"]}
|
|
1
|
+
{"version":3,"file":"grist-action.js","sourceRoot":"","sources":["../src/grist-action.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n *\n * grist 컴포넌트를 보조하여 grist의 각종 동작을 수행하는 컴포넌트.\n */\n\nimport { Component, ComponentNature, Properties, RectPath, ValueHolder } from '@hatiolab/things-scene'\nimport { DataGrist } from '@operato/data-grist'\nimport { GristData, GristRecord, SorterConfig } from '@operato/data-grist/src/types.js'\n\nimport SceneGrist from './grist'\n\nexport enum ACTIONS {\n GET_ALL_ROWS = 'getAllRows',\n COMMIT = 'commit',\n GET_SELECTED = 'getSelectedRows',\n GET_DIRTY = 'getDirtyRows',\n ADD_ROW = 'addRow',\n DELETE_SELECTED_ROWS = 'deleteSelectedRowsSoftly',\n GET_PAGE_INFO = 'getPageInfo'\n}\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n // 대상 Grist\n type: 'id-input',\n label: 'target-grist',\n name: 'target',\n property: {\n component: 'grist'\n }\n },\n {\n // 동작\n type: 'select',\n label: 'action',\n name: 'action',\n property: {\n options: [\n {\n // 페이지네이션 정보 가져오기\n display: 'Get page information',\n value: ACTIONS.GET_PAGE_INFO\n },\n {\n // 모든 레코드 데이터 가져오기\n display: 'Get all rows',\n value: ACTIONS.GET_ALL_ROWS\n },\n {\n // 체크된 레코드 데이터 가져오기\n display: 'Get selected rows',\n value: ACTIONS.GET_SELECTED\n },\n {\n // 변경 사항이 있는 데이터 가져오기\n display: 'Get dirty rows',\n value: ACTIONS.GET_DIRTY\n },\n {\n // 행 추가\n display: 'Add a row',\n value: ACTIONS.ADD_ROW\n },\n {\n // 선택 행 삭제\n display: 'Delete selected rows',\n value: ACTIONS.DELETE_SELECTED_ROWS\n },\n {\n // 변경 사항을 데이터에 적용\n display: 'Commit',\n value: ACTIONS.COMMIT\n }\n ]\n }\n },\n {\n // 뷰어 시작 시 자동 실행 여부\n type: 'checkbox',\n label: 'run-at-startup',\n name: 'runAtStartup'\n },\n {\n // 행 추가 시의 포맷\n type: 'textarea',\n label: 'record-adder-format',\n name: 'recordFormat'\n }\n ],\n help: 'scene/component/grist-action'\n}\n\nexport default class GristAction extends ValueHolder(RectPath(Component)) {\n private _data: any\n\n get nature() {\n return NATURE\n }\n\n ready() {\n // 뷰어 시작시에도 action 값이 getPageInfo로 되어 있을 경우 fetchHandler를 등록하기 위해 onchange를 호출함\n this.onchange({ action: this.state.action })\n if (this.state.runAtStartup) {\n setTimeout(() => this.doAction(), 100)\n }\n }\n\n dispose() {\n super.dispose()\n }\n\n onclick() {\n // 컴포넌트 클릭 시 동작\n this.doAction()\n }\n\n onchange(after: Properties) {\n // value 값이 바뀌면 동작\n if ('value' in after) {\n this.doAction()\n }\n\n // action 값이 바뀌면 getPageInfo인지 확인하고 grist에 fetchHandler를 등록하거나 폐기함\n if ('action' in after) {\n const gristComponent = this.targetGristComponent\n const { refid } = this.state\n\n if (gristComponent) {\n if (after.action == ACTIONS.GET_PAGE_INFO) {\n gristComponent.beforeFetchFuncs[refid] = (fetchedData: {\n page: number\n limit: number\n total: number\n records: GristRecord[]\n }) => {\n this.data = this.getPageInfoFrom(null, fetchedData)\n this.doDataMap()\n }\n } else {\n delete gristComponent.beforeFetchFuncs[refid]\n }\n }\n }\n }\n\n // 데이터 매핑을 수동으로 실행하기 위해 기존의 메소드를 무효화\n executeMappings() {\n console.debug(\n \"[@operato/data-grist] The method 'executeMappings' is overriden in the component 'grist-action', because of to prevent executing when initialize.\"\n )\n }\n\n // 데이터 매핑을 수동으로 조작하기 위한 새 메소드\n doDataMap() {\n super.executeMappings()\n }\n\n // action 값에 따라 동작\n doAction(action?: ACTIONS) {\n if (!this.app.isViewMode) {\n return\n }\n\n // 파라미터가 명시되어있지 않으면 컴포넌트 속성에서 action 값을 가져옴\n var { action: storedAction } = this.state\n action = action || storedAction\n\n // 대상 Grist 컴포넌트\n var grist = this.targetGristElement\n if (!grist) return\n\n var data\n switch (action) {\n case ACTIONS.GET_ALL_ROWS:\n data = grist.grist.data\n break\n case ACTIONS.COMMIT:\n grist.commit()\n break\n case ACTIONS.GET_SELECTED:\n data = {\n patches: this.buildPatches(grist.selected),\n original: grist.selected\n }\n break\n case ACTIONS.GET_DIRTY:\n data = this.assortDirties(grist)\n break\n case ACTIONS.ADD_ROW:\n {\n var records = grist.dirtyData.records || []\n\n let recordFormat\n try {\n recordFormat = eval(`(${this.state.recordFormat})`)\n } catch (e) {\n console.log('Invalid JSON format. It will be assumed as empty object.\\n', e)\n recordFormat = {}\n }\n records.push({ ...recordFormat, __dirty__: '+' })\n this.refreshGrist(grist)\n }\n break\n case ACTIONS.DELETE_SELECTED_ROWS:\n {\n var records = grist.dirtyData.records || []\n\n records.forEach((record, idx) => {\n if (record['__selected__']) {\n if (record['__dirty__'] == '+') delete records[idx]\n else record['__dirty__'] = '-'\n }\n })\n grist.dirtyData.records = records.flat()\n this.refreshGrist(grist)\n }\n break\n case ACTIONS.GET_PAGE_INFO:\n data = this.getPageInfoFrom(grist)\n break\n }\n\n // 이 컴포넌트의 data 값이 바뀌는 동작은 데이터 매핑까지 실행함\n if (data) {\n this.data = data\n this.doDataMap()\n }\n }\n\n // 대상 grist 컴포넌트의 레코드를 새로고침\n refreshGrist(grist: DataGrist) {\n grist = grist || this.targetGristElement\n if (!grist) return\n\n grist.refresh()\n // grist.dataProvider.onRecordChange()\n grist.grist.data = { ...grist.dirtyData }\n }\n\n // 변경 사항이 있는 레코드의 경우, CUD를 분류해서 반환함\n assortDirties(grist: DataGrist) {\n const dirties = grist.dirtyRecords\n var patches = this.buildPatches(dirties)\n var records = {\n original: dirties,\n patches,\n created: [] as GristRecord[],\n updated: [] as GristRecord[],\n deleted: [] as GristRecord[]\n }\n\n patches.forEach((record: GristRecord) => {\n switch (record['cuFlag']) {\n case 'M':\n records.updated.push(record)\n break\n case '+':\n records.created.push(record)\n break\n case '-':\n records.deleted.push(record)\n break\n }\n })\n return records\n }\n\n // 페이지네이션 정보를 가져옴\n getPageInfoFrom(grist: DataGrist | null, fetchedData?: GristData) {\n // @ts-ignore\n var { page = 1, limit = 20, sorters = [] } = fetchedData || (grist && grist.dataProvider) || pagination(grist!)\n\n sorters = sorters.map((sorter: SorterConfig) => {\n sorter.desc = sorter.desc ? true : false\n return sorter\n })\n return { page, limit, sorters }\n\n function pagination(grist: DataGrist) {\n var config = grist && grist.config && grist.config.pagination\n if (config)\n return {\n page: config.page,\n limit: config.limit || (config.pages && config.pages[0])\n }\n else return {}\n }\n }\n\n // 레코드들을 서버 공통 resolver에 맞는 포맷으로 만듦\n buildPatches(patches: GristRecord[]): GristRecord[] {\n return patches.map(patch => {\n let patchField: { [key: string]: any } = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n }\n\n render(context: CanvasRenderingContext2D) {\n var { top, left, height, width, fillStyle = 'transparent' } = this.model\n\n // background의 색상\n context.beginPath()\n context.rect(left, top, width, height)\n\n context.fillStyle = fillStyle\n context.fill()\n\n // value의 색상\n context.beginPath()\n\n var drawValue = width - (width * Math.max(Math.min(this.animValue, 100), 0)) / 100\n drawValue = Math.max(Math.min(drawValue, width), 0)\n\n context.rect(left + drawValue, top, width - drawValue, height)\n\n this.drawFill(context)\n\n context.closePath()\n\n context.beginPath()\n\n context.rect(left, top, width, height)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawStroke(context)\n this.drawText(context)\n }\n\n get controls() {\n return []\n }\n\n get targetGristComponent(): SceneGrist {\n var { target } = this.state\n return this.root.findById(target) as SceneGrist\n }\n\n get targetGristElement(): DataGrist | undefined {\n return this.targetGristComponent?.grist\n }\n\n get data() {\n return this._data\n }\n\n set data(data) {\n this._data = data\n }\n}\n\nComponent.register('grist-action', GristAction)\n"]}
|
package/dist/grist.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import '@operato/data-grist';
|
|
|
2
2
|
import { ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene';
|
|
3
3
|
import { DataGrist } from '@operato/data-grist';
|
|
4
4
|
export default class SceneGrist extends HTMLOverlayElement {
|
|
5
|
-
static get nature(): ComponentNature;
|
|
6
5
|
beforeFetchFuncs: any;
|
|
7
6
|
private __value;
|
|
8
7
|
private _listenTo?;
|
|
9
8
|
private _listener?;
|
|
10
9
|
grist?: DataGrist;
|
|
10
|
+
get nature(): ComponentNature;
|
|
11
11
|
ready(): void;
|
|
12
12
|
removed(): void;
|
|
13
13
|
createElement(): void;
|
package/dist/grist.js
CHANGED
|
@@ -22,6 +22,10 @@ const NATURE = {
|
|
|
22
22
|
display: 'List',
|
|
23
23
|
value: 'LIST'
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
display: 'Card',
|
|
27
|
+
value: 'CARD'
|
|
28
|
+
},
|
|
25
29
|
{
|
|
26
30
|
display: 'Depends on device',
|
|
27
31
|
value: 'DEVICE'
|
|
@@ -84,7 +88,7 @@ export default class SceneGrist extends HTMLOverlayElement {
|
|
|
84
88
|
this.beforeFetchFuncs = {};
|
|
85
89
|
this.__value = {};
|
|
86
90
|
}
|
|
87
|
-
|
|
91
|
+
get nature() {
|
|
88
92
|
return NATURE;
|
|
89
93
|
}
|
|
90
94
|
ready() {
|
package/dist/grist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grist.js","sourceRoot":"","sources":["../src/grist.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport '@operato/data-grist'\n\nimport { Component, ComponentNature, HTMLOverlayElement, Properties, error } from '@hatiolab/things-scene'\nimport { DataGrist, FetchResult } from '@operato/data-grist'\nimport { FetchOption, GristRecord } from '@operato/data-grist/dist/src/types'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'grist-mode',\n name: 'mode',\n property: {\n options: [\n {\n display: 'Grid',\n value: 'GRID'\n },\n {\n display: 'List',\n value: 'LIST'\n },\n {\n display: 'Depends on device',\n value: 'DEVICE'\n }\n ]\n }\n },\n {\n type: 'textarea',\n label: 'config',\n name: 'config'\n },\n {\n type: 'checkbox',\n label: 'appendable',\n name: 'appendable'\n },\n {\n type: 'checkbox',\n label: 'paginatable',\n name: 'paginatable'\n },\n {\n type: 'number',\n label: 'content-scale',\n name: 'contentScale',\n property: {\n step: 0.1,\n min: 0.1\n }\n },\n {\n type: 'select',\n label: 'bound-data',\n name: 'boundData',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'Focused Row',\n value: 'focused-row'\n },\n {\n display: 'Selected Rows',\n value: 'selected-rows'\n }\n ]\n }\n }\n ],\n help: 'scene/component/grist'\n}\n\nconst isMobileDevice = () => false\n\nexport default class SceneGrist extends HTMLOverlayElement {\n static get nature() {\n return NATURE\n }\n\n public beforeFetchFuncs: any = {}\n\n private __value: any = {}\n private _listenTo?: any\n private _listener?: any\n\n public grist?: DataGrist\n\n ready() {\n super.ready()\n\n if (this.rootModel) {\n this._listenTo = this.rootModel\n this._listener = function (this: SceneGrist, after: Properties) {\n after.scale && this.rescale()\n }.bind(this)\n this.rootModel.on('change', this._listener)\n }\n }\n\n removed() {\n if (this._listenTo) {\n this._listenTo.off('change', this._listener)\n\n delete this._listenTo\n delete this._listener\n }\n }\n\n createElement() {\n super.createElement()\n\n this.grist = document.createElement('ox-grist') as DataGrist\n this.grist.style.setProperty('--grist-padding', '0')\n\n this.element.appendChild(this.grist)\n\n this.rescale()\n\n const grist = this.grist\n\n this.setGristConfig(grist)\n\n grist.fetchHandler = async ({ page, limit, sorters, options }: FetchOption): Promise<FetchResult> => {\n Object.values(this.beforeFetchFuncs).forEach((func: any) => func({ page, limit, sorters, options }))\n var { total = 0, records = [] } = grist.data || {}\n\n return {\n page,\n limit,\n total,\n records\n }\n }\n\n grist.addEventListener('select-record-change', e => {\n if (this.state.boundData === 'selected-rows') {\n this.data = (e.target as DataGrist)?.selected || []\n }\n })\n\n grist.addEventListener('select-all-change', e => {\n if (this.state.boundData === 'selected-rows') {\n this.data = (e.target as DataGrist)?.selected || []\n }\n })\n\n grist.addEventListener('focus-change', (e: Event) => {\n if (this.state.boundData === 'focused-row') {\n this.data = ((e.target as DataGrist)?.data?.records || [])[(e as CustomEvent).detail.row]\n }\n })\n }\n\n get value() {\n return this.__value\n }\n\n set value(value) {\n this.__value = value\n if (!this.grist || typeof value !== 'object') return\n\n var { page, limit } = this.config.pagination || {}\n\n this.grist.data =\n value instanceof Array\n ? {\n page,\n limit,\n ...this.grist._data,\n total: value.length,\n records: Array.from(value)\n }\n : {\n page,\n limit,\n ...this.grist._data,\n ...value\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('mode' in after || 'appendable' in after || 'paginatable' in after || 'config' in after) {\n this.setGristConfig(this.grist)\n }\n\n this.rescale()\n }\n\n dispose() {\n super.dispose()\n\n delete this.grist\n }\n\n /*\n * 컴포넌트의 생성 또는 속성 변화 시에 호출되며,\n * 그에 따른 html element의 반영이 필요한 부분을 구현한다.\n *\n * ThingsComponent state => HTML element properties\n */\n setElementProperties(grist: DataGrist) {\n this.rescale()\n }\n\n setGristConfig(grist: DataGrist | undefined) {\n if (!grist) {\n return\n }\n\n var { mode } = this.state\n\n if (mode != 'DEVICE') {\n grist.mode = mode\n } else {\n grist.mode = isMobileDevice() ? 'LIST' : 'GRID'\n }\n\n grist.config = this.config\n }\n\n /*\n * 컴포넌트가 ready 상태가 되거나, 컴포넌트의 속성이 변화될 시 setElementProperties 뒤에 호출된다.\n * 변화에 따른 기본적인 html 속성이 super.reposition()에서 진행되고, 그 밖의 작업이 필요할 때, 오버라이드 한다.\n */\n reposition() {\n super.reposition()\n }\n\n /*\n * grist는 부모의 스케일의 역으로 transform해서, scale을 1로 맞춘다.\n */\n rescale() {\n var grist = this.grist\n if (!grist) {\n return\n }\n\n const scale = this.getState('contentScale') || 1\n\n const sx = scale\n const sy = scale\n\n const transform = `scale(${sx}, ${sy})`\n\n ;['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach((prefix: string) => {\n grist!.style.setProperty(prefix + 'transform', transform)\n grist!.style.setProperty(prefix + 'transform-origin', '0px 0px')\n })\n\n const { width, height } = this.state\n grist.style.width = Math.round(width / scale) + 'px'\n grist.style.height = Math.round(height / scale) + 'px'\n }\n\n get config() {\n var { config, appendable, paginatable } = this.state\n\n if (typeof config !== 'object') {\n try {\n config = eval(`(${config})`)\n } catch (e) {\n error(e)\n }\n }\n\n if (paginatable) {\n if (config.pagination && !config.pagination.limit && config.pagination.pages && config.pagination.pages.length) {\n config.pagination.limit = config.pagination.pages[0]\n }\n }\n\n config.pagination = {\n ...config.pagination,\n infinite: !paginatable\n }\n\n config.rows = {\n ...config.rows,\n appendable: !!appendable\n }\n\n return config\n }\n\n get tagName() {\n return 'div'\n }\n}\n\nComponent.register('grist', SceneGrist)\n"]}
|
|
1
|
+
{"version":3,"file":"grist.js","sourceRoot":"","sources":["../src/grist.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport '@operato/data-grist'\n\nimport { Component, ComponentNature, HTMLOverlayElement, Properties, error } from '@hatiolab/things-scene'\nimport { DataGrist, FetchResult } from '@operato/data-grist'\n\nimport { FetchOption } from '@operato/data-grist/dist/src/types'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'grist-mode',\n name: 'mode',\n property: {\n options: [\n {\n display: 'Grid',\n value: 'GRID'\n },\n {\n display: 'List',\n value: 'LIST'\n },\n {\n display: 'Card',\n value: 'CARD'\n },\n {\n display: 'Depends on device',\n value: 'DEVICE'\n }\n ]\n }\n },\n {\n type: 'textarea',\n label: 'config',\n name: 'config'\n },\n {\n type: 'checkbox',\n label: 'appendable',\n name: 'appendable'\n },\n {\n type: 'checkbox',\n label: 'paginatable',\n name: 'paginatable'\n },\n {\n type: 'number',\n label: 'content-scale',\n name: 'contentScale',\n property: {\n step: 0.1,\n min: 0.1\n }\n },\n {\n type: 'select',\n label: 'bound-data',\n name: 'boundData',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'Focused Row',\n value: 'focused-row'\n },\n {\n display: 'Selected Rows',\n value: 'selected-rows'\n }\n ]\n }\n }\n ],\n help: 'scene/component/grist'\n}\n\nconst isMobileDevice = () => false\n\nexport default class SceneGrist extends HTMLOverlayElement {\n public beforeFetchFuncs: any = {}\n\n private __value: any = {}\n private _listenTo?: any\n private _listener?: any\n\n public grist?: DataGrist\n\n get nature() {\n return NATURE\n }\n\n ready() {\n super.ready()\n\n if (this.rootModel) {\n this._listenTo = this.rootModel\n this._listener = function (this: SceneGrist, after: Properties) {\n after.scale && this.rescale()\n }.bind(this)\n this.rootModel.on('change', this._listener)\n }\n }\n\n removed() {\n if (this._listenTo) {\n this._listenTo.off('change', this._listener)\n\n delete this._listenTo\n delete this._listener\n }\n }\n\n createElement() {\n super.createElement()\n\n this.grist = document.createElement('ox-grist') as DataGrist\n this.grist.style.setProperty('--grist-padding', '0')\n\n this.element.appendChild(this.grist)\n\n this.rescale()\n\n const grist = this.grist\n\n this.setGristConfig(grist)\n\n grist.fetchHandler = async ({ page, limit, sorters, options }: FetchOption): Promise<FetchResult> => {\n Object.values(this.beforeFetchFuncs).forEach((func: any) => func({ page, limit, sorters, options }))\n var { total = 0, records = [] } = grist.data || {}\n\n return {\n page,\n limit,\n total,\n records\n }\n }\n\n grist.addEventListener('select-record-change', e => {\n if (this.state.boundData === 'selected-rows') {\n this.data = (e.target as DataGrist)?.selected || []\n }\n })\n\n grist.addEventListener('select-all-change', e => {\n if (this.state.boundData === 'selected-rows') {\n this.data = (e.target as DataGrist)?.selected || []\n }\n })\n\n grist.addEventListener('focus-change', (e: Event) => {\n if (this.state.boundData === 'focused-row') {\n this.data = ((e.target as DataGrist)?.data?.records || [])[(e as CustomEvent).detail.row]\n }\n })\n }\n\n get value() {\n return this.__value\n }\n\n set value(value) {\n this.__value = value\n if (!this.grist || typeof value !== 'object') return\n\n var { page, limit } = this.config.pagination || {}\n\n this.grist.data =\n value instanceof Array\n ? {\n page,\n limit,\n ...this.grist._data,\n total: value.length,\n records: Array.from(value)\n }\n : {\n page,\n limit,\n ...this.grist._data,\n ...value\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('mode' in after || 'appendable' in after || 'paginatable' in after || 'config' in after) {\n this.setGristConfig(this.grist)\n }\n\n this.rescale()\n }\n\n dispose() {\n super.dispose()\n\n delete this.grist\n }\n\n /*\n * 컴포넌트의 생성 또는 속성 변화 시에 호출되며,\n * 그에 따른 html element의 반영이 필요한 부분을 구현한다.\n *\n * ThingsComponent state => HTML element properties\n */\n setElementProperties(grist: DataGrist) {\n this.rescale()\n }\n\n setGristConfig(grist: DataGrist | undefined) {\n if (!grist) {\n return\n }\n\n var { mode } = this.state\n\n if (mode != 'DEVICE') {\n grist.mode = mode\n } else {\n grist.mode = isMobileDevice() ? 'LIST' : 'GRID'\n }\n\n grist.config = this.config\n }\n\n /*\n * 컴포넌트가 ready 상태가 되거나, 컴포넌트의 속성이 변화될 시 setElementProperties 뒤에 호출된다.\n * 변화에 따른 기본적인 html 속성이 super.reposition()에서 진행되고, 그 밖의 작업이 필요할 때, 오버라이드 한다.\n */\n reposition() {\n super.reposition()\n }\n\n /*\n * grist는 부모의 스케일의 역으로 transform해서, scale을 1로 맞춘다.\n */\n rescale() {\n var grist = this.grist\n if (!grist) {\n return\n }\n\n const scale = this.getState('contentScale') || 1\n\n const sx = scale\n const sy = scale\n\n const transform = `scale(${sx}, ${sy})`\n\n ;['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach((prefix: string) => {\n grist!.style.setProperty(prefix + 'transform', transform)\n grist!.style.setProperty(prefix + 'transform-origin', '0px 0px')\n })\n\n const { width, height } = this.state\n grist.style.width = Math.round(width / scale) + 'px'\n grist.style.height = Math.round(height / scale) + 'px'\n }\n\n get config() {\n var { config, appendable, paginatable } = this.state\n\n if (typeof config !== 'object') {\n try {\n config = eval(`(${config})`)\n } catch (e) {\n error(e)\n }\n }\n\n if (paginatable) {\n if (config.pagination && !config.pagination.limit && config.pagination.pages && config.pagination.pages.length) {\n config.pagination.limit = config.pagination.pages[0]\n }\n }\n\n config.pagination = {\n ...config.pagination,\n infinite: !paginatable\n }\n\n config.rows = {\n ...config.rows,\n appendable: !!appendable\n }\n\n return config\n }\n\n get tagName() {\n return 'div'\n }\n}\n\nComponent.register('grist', SceneGrist)\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,12 +4,24 @@
|
|
|
4
4
|
데이타그리드는 웹어플리케이션 UI에 적합한 형태이며, 데이타리스트는 모바일 앱에 적합한 형태이다.
|
|
5
5
|
이는 grist mode 속성으로 설정할 수 있다.
|
|
6
6
|
|
|
7
|
+
grist 컴포넌트의 value 속성에 다음과 같은 형태의 데이타를 바인딩하면, grist에서 데이타를 각 레코드에 렌더링하는 것을 볼 수 있다.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
[
|
|
11
|
+
{ name: "name 1", description: "record 1", ... },
|
|
12
|
+
{ name: "name 2", description: "record 2", ... },
|
|
13
|
+
{ name: "name 3", description: "record 3", ... },
|
|
14
|
+
{ name: "name 4", description: "record 4", ... },
|
|
15
|
+
]
|
|
16
|
+
```
|
|
17
|
+
|
|
7
18
|
## Properties
|
|
8
19
|
|
|
9
20
|
- grist mode
|
|
10
21
|
- Grid: 멀티컬럼을 테이블형태로 구성하는 데이타그리드 형태
|
|
11
|
-
-
|
|
12
|
-
-
|
|
22
|
+
- List: 멀티컬럼 정보를 아이템 블록 형태로 구성하는 데이타리스트 형태
|
|
23
|
+
- Card: 카드 스타일의 리스트 형태
|
|
24
|
+
- Depends on device : 현재 디스플레이에 따라 Grid 또는 List 형태로 자동 선택된다
|
|
13
25
|
- config
|
|
14
26
|
- grist 구성을 위한 컨피규레이션
|
|
15
27
|
- 컬럼정보, 헤더정보, 레코드 정보, 페이지네이션 정보로 구성된다.
|
|
@@ -4,12 +4,24 @@ It is a component that expresses multiple record data in the form of a data grid
|
|
|
4
4
|
Data grid is suitable for web application UI, and data list is suitable for mobile application.
|
|
5
5
|
This can be set with the grist mode attribute.
|
|
6
6
|
|
|
7
|
+
If you bind the following type of data to the value property of the grist component, you can see that the data is rendered in each record in grist.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
[
|
|
11
|
+
{ name: "name 1", description: "record 1", ... },
|
|
12
|
+
{ name: "name 2", description: "record 2", ... },
|
|
13
|
+
{ name: "name 3", description: "record 3", ... },
|
|
14
|
+
{ name: "name 4", description: "record 4", ... },
|
|
15
|
+
]
|
|
16
|
+
```
|
|
17
|
+
|
|
7
18
|
## Properties
|
|
8
19
|
|
|
9
20
|
- grist mode
|
|
10
21
|
- Grid: Data grid format that organizes multi-columns in a table format
|
|
11
|
-
-
|
|
12
|
-
-
|
|
22
|
+
- List: Data list format that composes multi-column information in the form of an item block
|
|
23
|
+
- Card: Data list format that composes multi-column information in the form of an item block
|
|
24
|
+
- Depends on device : Depending on the current display, it is automatically selected in the form of a Grid or a List.
|
|
13
25
|
- config
|
|
14
26
|
- Configuration for grist
|
|
15
27
|
- It consists of column, header, record and pagination information.
|