@operato/scene-graphql 9.1.1 → 10.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,466 @@
1
- import 'ses';
2
- import { ComponentNature, Properties, Shape } from '@hatiolab/things-scene';
1
+ import { Component, ComponentNature, Properties, Shape } from '@hatiolab/things-scene';
3
2
  declare const GraphQLQuery_base: (new (...args: any[]) => {
3
+ _convertDataFormat(data: any, format: any): any;
4
4
  isDataSource(): boolean;
5
- _convertDataFormat(data: any, format: "json" | "text" | "jsonp" | string): any;
5
+ _app: any;
6
+ _model: any;
7
+ _state: any;
8
+ _delta: any;
9
+ _animation: any;
10
+ _animate: any;
11
+ _parent: any;
12
+ _disposed: any;
13
+ _textHidden: any;
14
+ _text_substitutor: any;
15
+ _value_substitutor: any;
16
+ _mappings: any;
17
+ _realObject: import("@hatiolab/things-scene").IRealObject | undefined;
18
+ _cachedState: any;
19
+ updatedAt: any;
20
+ fontSize: any;
21
+ __cache__: any;
22
+ created(): void;
23
+ added(parent: any): void;
24
+ removed(parent: any): void;
25
+ ready(): Promise<void>;
26
+ touch(): void;
27
+ clearCache(...attrs: any[]): void;
28
+ removeSelf(completely: any): void;
29
+ resetAnimation(): void;
30
+ dispose(): void;
31
+ get nature(): import("@hatiolab/things-scene").ComponentNature;
32
+ get disposed(): boolean;
33
+ isLayer(): boolean;
34
+ isGroup(): boolean;
35
+ isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
36
+ isLine(): boolean;
37
+ isRoot(): boolean;
38
+ isRootModel(): boolean;
39
+ is3dish(): boolean;
40
+ get is3dMode(): boolean;
41
+ isIn3DSpace(): boolean;
42
+ isTemplate(): boolean;
43
+ isHTMLElement(): boolean;
44
+ isConnectable(): boolean;
45
+ isIdentifiable(): boolean;
46
+ isPositionable(): boolean;
47
+ replaceRefids(replaceMap: any): void;
48
+ get(property: any): any;
49
+ set(props: any, propval?: any): any;
50
+ getState(property: any): any;
51
+ setState(props: any, propval?: any): any;
52
+ get model(): any;
53
+ get state(): any;
54
+ get hierarchy(): any;
55
+ get volatile(): never[];
56
+ _applyProps(target: any, props: any, options: any): any;
57
+ contains(x: number, y: number): boolean;
58
+ move(offset: {
59
+ x: number;
60
+ y: number;
61
+ }, ...args: boolean[]): void;
62
+ symmetryX(x?: number): void;
63
+ symmetryY(y: number): void;
64
+ adjustResize(bounds: import("@hatiolab/things-scene").BOUNDS, origin_bounds: import("@hatiolab/things-scene").BOUNDS, diagonal: boolean): {
65
+ left: any;
66
+ top: any;
67
+ width: any;
68
+ height: any;
69
+ };
70
+ adjustRotation(rotation: number, step: boolean): number;
71
+ outline(progress: number): any;
72
+ get bounds(): import("@hatiolab/things-scene").BOUNDS;
73
+ set bounds(b: import("@hatiolab/things-scene").BOUNDS): any;
74
+ get center(): import("@hatiolab/things-scene").POINT;
75
+ set center(p: import("@hatiolab/things-scene").POINT): any;
76
+ get location(): import("@hatiolab/things-scene").POINT;
77
+ set location(l: import("@hatiolab/things-scene").POINT): any;
78
+ get rotate(): import("@hatiolab/things-scene").POINT;
79
+ set rotate(r: import("@hatiolab/things-scene").POINT): any;
80
+ get dimension(): import("@hatiolab/things-scene").DIMENSION;
81
+ set dimension(d: import("@hatiolab/things-scene").DIMENSION): any;
82
+ get path(): import("@hatiolab/things-scene").POINT[];
83
+ set path(p: import("@hatiolab/things-scene").POINT[]): any;
84
+ get drawPath(): import("@hatiolab/things-scene").POINT[];
85
+ get rotatePoint(): import("@hatiolab/things-scene").POINT;
86
+ get mutable(): boolean;
87
+ get resizable(): boolean;
88
+ get rotatable(): boolean;
89
+ buildRealObject(): import("@hatiolab/things-scene").IRealObject | undefined;
90
+ get realObject(): import("@hatiolab/things-scene").IRealObject | undefined;
91
+ draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
92
+ prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
93
+ render(context: import("@hatiolab/things-scene").SceneRenderContext): void;
94
+ postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
95
+ prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
96
+ prepareIf(condition: boolean): void;
97
+ drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
98
+ drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
99
+ drawFill(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
100
+ get strokeStyle(): any;
101
+ set strokeStyle(v: any): any;
102
+ get fillStyle(): any;
103
+ set fillStyle(v: any): any;
104
+ get fontColor(): string;
105
+ set fontColor(v: string): any;
106
+ get rotation(): number;
107
+ set rotation(v: number): any;
108
+ get decorators(): string[];
109
+ get decotag(): string;
110
+ get hidden(): boolean;
111
+ set hidden(v: boolean): any;
112
+ get tag(): string;
113
+ set tag(v: string): any;
114
+ get appendum(): any;
115
+ set appendum(v: any): any;
116
+ defaultTextSubstitutor(): string;
117
+ textLines(context?: import("@hatiolab/things-scene").SceneRenderContext): any[][];
118
+ get font(): string;
119
+ get lineHeight(): number;
120
+ get textSubstitutor(): () => string;
121
+ get text(): string;
122
+ set text(v: string): any;
123
+ get textBounds(): import("@hatiolab/things-scene").BOUNDS;
124
+ get textRotation(): number;
125
+ get textHidden(): boolean;
126
+ set textHidden(v: boolean): any;
127
+ get hasTextProperty(): boolean;
128
+ animate(opts: import("@hatiolab/things-scene").AnimationConfig): any;
129
+ effect(context: import("@hatiolab/things-scene").SceneRenderContext, model: any): void;
130
+ serialize(...others: any[]): string;
131
+ trim(): void;
132
+ closeScene(data: any): void;
133
+ delta(attr?: string | object, value?: any): any;
134
+ invalidate(): void;
135
+ get value(): any;
136
+ set value(v: any): any;
137
+ get data(): any;
138
+ set data(v: any): any;
139
+ set tap(v: any): any;
140
+ get mappings(): any[];
141
+ get retention(): number;
142
+ get animation(): import("@hatiolab/things-scene").AnimationController | undefined;
143
+ get started(): boolean;
144
+ set started(v: boolean): any;
145
+ get controls(): import("@hatiolab/things-scene").Control[] | undefined;
146
+ findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
147
+ findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
148
+ capture(x: number, y: number, except?: (c: Component) => boolean): any;
149
+ findAnchor(name: string): any;
150
+ isDescendible(container: Component): boolean;
151
+ getContext(component?: unknown): any;
152
+ get root(): Component;
153
+ get rootModel(): Component;
154
+ get parent(): Component;
155
+ set parent(v: Component): any;
156
+ get anchors(): import("@hatiolab/things-scene").Anchor[];
157
+ get scalable(): boolean;
158
+ get stuck(): boolean;
159
+ get capturable(): boolean;
160
+ get position(): string;
161
+ get origin(): string;
162
+ get offset(): import("@hatiolab/things-scene").POINT;
163
+ get app(): import("@hatiolab/things-scene").ApplicationContext;
164
+ drawEffect(context: import("@hatiolab/things-scene").SceneRenderContext): void;
165
+ prepareFill(resolve: Function, reject: Function): void;
166
+ prepareFillIf(condition: boolean): void;
167
+ onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
168
+ drawImage(context: import("@hatiolab/things-scene").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
169
+ mutateBounds(logic: ((bounds: import("@hatiolab/things-scene").BOUNDS) => import("@hatiolab/things-scene").BOUNDS | void) | null, context?: any): void;
170
+ mutatePath(beforeLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, afterLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, context?: any): void;
171
+ access(accessor: string): any;
172
+ substitute(template: string, data: any): string | undefined;
173
+ onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
174
+ onchangeData(after: Record<string, any>, before: Record<string, any>): void;
175
+ buildMappings(): void;
176
+ executeMappings(force?: boolean): void;
177
+ disposeMappings(): void;
178
+ ondropfile(transfered: FileList, files: string[]): void;
179
+ transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
180
+ transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
181
+ transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
182
+ transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
183
+ transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
184
+ transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
185
+ transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
186
+ transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
187
+ transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
188
+ toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
189
+ fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
190
+ toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
191
+ fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
192
+ toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
193
+ toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
194
+ toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
195
+ on(name: string | object, callback: Function, context?: any): any;
196
+ off(name?: string | object, callback?: Function, context?: any): any;
197
+ once(name: string | object, callback: Function, context?: any): any;
198
+ trigger(name: string, ...args: any[]): any;
199
+ delegate_on(delegator: any): any;
200
+ delegate_off(delegator: any): any;
201
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
202
+ calculateBounds?(): void;
203
+ oncreate_element?(element: HTMLElement): void;
204
+ removeComponent(component: Component, ghost?: boolean): void;
205
+ addComponent(component: Component, ghost?: boolean): void;
206
+ insertComponentAt(component: Component, index: number, ghost?: boolean): void;
207
+ getOverlay(component: Component): HTMLElement | undefined;
208
+ findById(id: string): Component | undefined;
209
+ findByRefid(ref: string | number): Component | undefined;
210
+ findAllById(id: string): Component[];
211
+ resize(): void;
212
+ fit(type?: string): void;
213
+ get components(): Component[] | undefined;
214
+ get layout(): any;
215
+ get auxOverlay(): HTMLElement | undefined;
216
+ get isReady(): boolean;
217
+ get unitScale(): number;
218
+ get selected(): Component[];
219
+ set selected(_v: Component[]): any;
220
+ get focused(): Component | null;
221
+ set focused(_v: Component | null): any;
222
+ get hasSameParentForAllSelected(): boolean;
223
+ set hasSameParentForAllSelected(_v: boolean): any;
224
+ get fitMode(): string | undefined;
225
+ set fitMode(_v: string | undefined): any;
226
+ get element(): HTMLElement | null;
227
+ set element(_v: HTMLElement | null): any;
228
+ }) & (new (...args: any[]) => {
229
+ contains(x: number, y: number): boolean;
230
+ get path(): {
231
+ x: any;
232
+ y: any;
233
+ }[];
234
+ set path(path: {
235
+ x: any;
236
+ y: any;
237
+ }[]): any;
238
+ get anchors(): {
239
+ name: string;
240
+ position: {
241
+ x: any;
242
+ y: any;
243
+ };
244
+ }[];
245
+ get bounds(): any;
246
+ set bounds(bounds: any): any;
247
+ render(ctx: CanvasRenderingContext2D): void;
248
+ _app: any;
249
+ _model: any;
250
+ _state: any;
251
+ _delta: any;
252
+ _animation: any;
253
+ _animate: any;
254
+ _parent: any;
255
+ _disposed: any;
256
+ _textHidden: any;
257
+ _text_substitutor: any;
258
+ _value_substitutor: any;
259
+ _mappings: any;
260
+ _realObject: import("@hatiolab/things-scene").IRealObject | undefined;
261
+ _cachedState: any;
262
+ updatedAt: any;
263
+ fontSize: any;
264
+ __cache__: any;
265
+ created(): void;
266
+ added(parent: any): void;
267
+ removed(parent: any): void;
268
+ ready(): Promise<void>;
269
+ touch(): void;
270
+ clearCache(...attrs: any[]): void;
271
+ removeSelf(completely: any): void;
272
+ resetAnimation(): void;
273
+ dispose(): void;
274
+ get nature(): import("@hatiolab/things-scene").ComponentNature;
275
+ get disposed(): boolean;
276
+ isLayer(): boolean;
277
+ isGroup(): boolean;
278
+ isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
279
+ isLine(): boolean;
280
+ isRoot(): boolean;
281
+ isRootModel(): boolean;
282
+ is3dish(): boolean;
283
+ get is3dMode(): boolean;
284
+ isIn3DSpace(): boolean;
285
+ isTemplate(): boolean;
286
+ isHTMLElement(): boolean;
287
+ isConnectable(): boolean;
288
+ isIdentifiable(): boolean;
289
+ isPositionable(): boolean;
290
+ replaceRefids(replaceMap: any): void;
291
+ get(property: any): any;
292
+ set(props: any, propval?: any): any;
293
+ getState(property: any): any;
294
+ setState(props: any, propval?: any): any;
295
+ get model(): any;
296
+ get state(): any;
297
+ get hierarchy(): any;
298
+ get volatile(): never[];
299
+ _applyProps(target: any, props: any, options: any): any;
300
+ move(offset: {
301
+ x: number;
302
+ y: number;
303
+ }, ...args: boolean[]): void;
304
+ symmetryX(x?: number): void;
305
+ symmetryY(y: number): void;
306
+ adjustResize(bounds: import("@hatiolab/things-scene").BOUNDS, origin_bounds: import("@hatiolab/things-scene").BOUNDS, diagonal: boolean): {
307
+ left: any;
308
+ top: any;
309
+ width: any;
310
+ height: any;
311
+ };
312
+ adjustRotation(rotation: number, step: boolean): number;
313
+ outline(progress: number): any;
314
+ get center(): import("@hatiolab/things-scene").POINT;
315
+ set center(p: import("@hatiolab/things-scene").POINT): any;
316
+ get location(): import("@hatiolab/things-scene").POINT;
317
+ set location(l: import("@hatiolab/things-scene").POINT): any;
318
+ get rotate(): import("@hatiolab/things-scene").POINT;
319
+ set rotate(r: import("@hatiolab/things-scene").POINT): any;
320
+ get dimension(): import("@hatiolab/things-scene").DIMENSION;
321
+ set dimension(d: import("@hatiolab/things-scene").DIMENSION): any;
322
+ get drawPath(): import("@hatiolab/things-scene").POINT[];
323
+ get rotatePoint(): import("@hatiolab/things-scene").POINT;
324
+ get mutable(): boolean;
325
+ get resizable(): boolean;
326
+ get rotatable(): boolean;
327
+ buildRealObject(): import("@hatiolab/things-scene").IRealObject | undefined;
328
+ get realObject(): import("@hatiolab/things-scene").IRealObject | undefined;
329
+ draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
330
+ prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
331
+ postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
332
+ prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
333
+ prepareIf(condition: boolean): void;
334
+ drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
335
+ drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
336
+ drawFill(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
337
+ get strokeStyle(): any;
338
+ set strokeStyle(v: any): any;
339
+ get fillStyle(): any;
340
+ set fillStyle(v: any): any;
341
+ get fontColor(): string;
342
+ set fontColor(v: string): any;
343
+ get rotation(): number;
344
+ set rotation(v: number): any;
345
+ get decorators(): string[];
346
+ get decotag(): string;
347
+ get hidden(): boolean;
348
+ set hidden(v: boolean): any;
349
+ get tag(): string;
350
+ set tag(v: string): any;
351
+ get appendum(): any;
352
+ set appendum(v: any): any;
353
+ defaultTextSubstitutor(): string;
354
+ textLines(context?: import("@hatiolab/things-scene").SceneRenderContext): any[][];
355
+ get font(): string;
356
+ get lineHeight(): number;
357
+ get textSubstitutor(): () => string;
358
+ get text(): string;
359
+ set text(v: string): any;
360
+ get textBounds(): import("@hatiolab/things-scene").BOUNDS;
361
+ get textRotation(): number;
362
+ get textHidden(): boolean;
363
+ set textHidden(v: boolean): any;
364
+ get hasTextProperty(): boolean;
365
+ animate(opts: import("@hatiolab/things-scene").AnimationConfig): any;
366
+ effect(context: import("@hatiolab/things-scene").SceneRenderContext, model: any): void;
367
+ serialize(...others: any[]): string;
368
+ trim(): void;
369
+ closeScene(data: any): void;
370
+ delta(attr?: string | object, value?: any): any;
371
+ invalidate(): void;
372
+ get value(): any;
373
+ set value(v: any): any;
374
+ get data(): any;
375
+ set data(v: any): any;
376
+ set tap(v: any): any;
377
+ get mappings(): any[];
378
+ get retention(): number;
379
+ get animation(): import("@hatiolab/things-scene").AnimationController | undefined;
380
+ get started(): boolean;
381
+ set started(v: boolean): any;
382
+ get controls(): import("@hatiolab/things-scene").Control[] | undefined;
383
+ findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
384
+ findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
385
+ capture(x: number, y: number, except?: (c: Component) => boolean): any;
386
+ findAnchor(name: string): any;
387
+ isDescendible(container: Component): boolean;
388
+ getContext(component?: unknown): any;
389
+ get root(): Component;
390
+ get rootModel(): Component;
391
+ get parent(): Component;
392
+ set parent(v: Component): any;
393
+ get scalable(): boolean;
394
+ get stuck(): boolean;
395
+ get capturable(): boolean;
396
+ get position(): string;
397
+ get origin(): string;
398
+ get offset(): import("@hatiolab/things-scene").POINT;
399
+ get app(): import("@hatiolab/things-scene").ApplicationContext;
400
+ drawEffect(context: import("@hatiolab/things-scene").SceneRenderContext): void;
401
+ prepareFill(resolve: Function, reject: Function): void;
402
+ prepareFillIf(condition: boolean): void;
403
+ onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
404
+ drawImage(context: import("@hatiolab/things-scene").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
405
+ mutateBounds(logic: ((bounds: import("@hatiolab/things-scene").BOUNDS) => import("@hatiolab/things-scene").BOUNDS | void) | null, context?: any): void;
406
+ mutatePath(beforeLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, afterLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, context?: any): void;
407
+ access(accessor: string): any;
408
+ substitute(template: string, data: any): string | undefined;
409
+ onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
410
+ onchangeData(after: Record<string, any>, before: Record<string, any>): void;
411
+ buildMappings(): void;
412
+ executeMappings(force?: boolean): void;
413
+ disposeMappings(): void;
414
+ ondropfile(transfered: FileList, files: string[]): void;
415
+ transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
416
+ transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
417
+ transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
418
+ transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
419
+ transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
420
+ transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
421
+ transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
422
+ transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
423
+ transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
424
+ toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
425
+ fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
426
+ toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
427
+ fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
428
+ toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
429
+ toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
430
+ toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
431
+ on(name: string | object, callback: Function, context?: any): any;
432
+ off(name?: string | object, callback?: Function, context?: any): any;
433
+ once(name: string | object, callback: Function, context?: any): any;
434
+ trigger(name: string, ...args: any[]): any;
435
+ delegate_on(delegator: any): any;
436
+ delegate_off(delegator: any): any;
437
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
438
+ calculateBounds?(): void;
439
+ oncreate_element?(element: HTMLElement): void;
440
+ removeComponent(component: Component, ghost?: boolean): void;
441
+ addComponent(component: Component, ghost?: boolean): void;
442
+ insertComponentAt(component: Component, index: number, ghost?: boolean): void;
443
+ getOverlay(component: Component): HTMLElement | undefined;
444
+ findById(id: string): Component | undefined;
445
+ findByRefid(ref: string | number): Component | undefined;
446
+ findAllById(id: string): Component[];
447
+ resize(): void;
448
+ fit(type?: string): void;
449
+ get components(): Component[] | undefined;
450
+ get layout(): any;
451
+ get auxOverlay(): HTMLElement | undefined;
452
+ get isReady(): boolean;
453
+ get unitScale(): number;
454
+ get selected(): Component[];
455
+ set selected(_v: Component[]): any;
456
+ get focused(): Component | null;
457
+ set focused(_v: Component | null): any;
458
+ get hasSameParentForAllSelected(): boolean;
459
+ set hasSameParentForAllSelected(_v: boolean): any;
460
+ get fitMode(): string | undefined;
461
+ set fitMode(_v: string | undefined): any;
462
+ get element(): HTMLElement | null;
463
+ set element(_v: HTMLElement | null): any;
6
464
  }) & typeof Shape;
7
465
  declare class GraphQLQuery extends GraphQLQuery_base {
8
466
  private _repeatTimer?;
@@ -19,7 +477,7 @@ declare class GraphQLQuery extends GraphQLQuery_base {
19
477
  get source(): any;
20
478
  set source(source: any);
21
479
  dispose(): void;
22
- ready(): void;
480
+ ready(): Promise<void>;
23
481
  _initGraphqlQuery(): void;
24
482
  _stopRepeater(): void;
25
483
  _startRepeater(): void;
@@ -1,6 +1,5 @@
1
1
  var Mutation_1;
2
2
  import { __decorate } from "tslib";
3
- import 'ses';
4
3
  import gql from 'graphql-tag';
5
4
  import { Component, DataSource, RectPath, Shape, sceneComponent } from '@hatiolab/things-scene';
6
5
  import { buildArgs, client as localClient } from '@operato/graphql';
@@ -39,10 +38,8 @@ const NATURE = {
39
38
  help: 'scene/component/graphql'
40
39
  };
41
40
  let GraphQLQuery = class GraphQLQuery extends DataSource(RectPath(Shape)) {
42
- constructor() {
43
- super(...arguments);
44
- this._isStarted = false;
45
- }
41
+ _repeatTimer;
42
+ _isStarted = false;
46
43
  get nature() {
47
44
  return NATURE;
48
45
  }
@@ -83,8 +80,7 @@ let GraphQLQuery = class GraphQLQuery extends DataSource(RectPath(Shape)) {
83
80
  var changedQuery = (Component.buildSubstitutor(_query, this, objToVal) || (() => _query))();
84
81
  try {
85
82
  changedQuery = changedQuery.replace(/\(.*\)/gi, params => {
86
- const c = new Compartment({ console });
87
- let paramObject = c.evaluate(`({${params.slice(1, -1)}})`);
83
+ let paramObject = new Function('console', `return ({${params.slice(1, -1)}})`)(console);
88
84
  return '(' + buildArgs(paramObject) + ')';
89
85
  });
90
86
  }
@@ -103,8 +99,8 @@ let GraphQLQuery = class GraphQLQuery extends DataSource(RectPath(Shape)) {
103
99
  super.dispose();
104
100
  this._stopRepeater();
105
101
  }
106
- ready() {
107
- super.ready();
102
+ async ready() {
103
+ await super.ready();
108
104
  if (this.autoStart) {
109
105
  this._initGraphqlQuery();
110
106
  }
@@ -139,14 +135,13 @@ let GraphQLQuery = class GraphQLQuery extends DataSource(RectPath(Shape)) {
139
135
  requestAnimationFrame(_);
140
136
  }
141
137
  async requestData() {
142
- var _a;
143
138
  if (!this.app.isViewMode)
144
139
  return;
145
140
  var { client } = this.state;
146
141
  var query = this.query;
147
142
  var variables = this.value;
148
143
  if (query) {
149
- const graphqlClient = (client && ((_a = this.root.findById(client)) === null || _a === void 0 ? void 0 : _a.client)) || localClient;
144
+ const graphqlClient = (client && this.root.findById?.(client)?.client) || localClient;
150
145
  var response;
151
146
  if (typeof variables === 'object') {
152
147
  response = await graphqlClient.query({
@@ -173,6 +168,7 @@ GraphQLQuery = __decorate([
173
168
  sceneComponent('graphql-query')
174
169
  ], GraphQLQuery);
175
170
  export class Query extends GraphQLQuery {
171
+ static _image;
176
172
  static get image() {
177
173
  if (!Query._image) {
178
174
  Query._image = new Image();
@@ -186,7 +182,9 @@ export class Query extends GraphQLQuery {
186
182
  this.drawImage(context, Query.image, left, top, width, height);
187
183
  }
188
184
  }
189
- let Mutation = Mutation_1 = class Mutation extends GraphQLQuery {
185
+ let Mutation = class Mutation extends GraphQLQuery {
186
+ static { Mutation_1 = this; }
187
+ static _image;
190
188
  static get image() {
191
189
  if (!Mutation_1._image) {
192
190
  Mutation_1._image = new Image();
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-query-and-mutation.js","sourceRoot":"","sources":["../src/graphql-query-and-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import 'ses'\nimport gql from 'graphql-tag'\n\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client/core/index.js'\nimport {\n Component,\n ComponentNature,\n DataSource,\n Properties,\n RectPath,\n Shape,\n sceneComponent\n} from '@hatiolab/things-scene'\nimport { buildArgs, client as localClient } from '@operato/graphql'\n\nimport GraphqlClient from './graphql-client.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'id-input',\n label: 'client',\n name: 'client',\n placeholder: 'leave blank to use origin server',\n property: {\n component: 'graphql-client' // component의 type (null or undefined이면 모든 컴포넌트)\n }\n },\n {\n type: 'number',\n label: 'period',\n name: 'period',\n placeholder: 'SECONDS'\n },\n {\n type: 'graphql',\n label: 'query',\n name: 'query'\n },\n {\n type: 'checkbox',\n label: 'auto-start',\n name: 'autoStart'\n }\n ],\n 'value-property': 'value',\n help: 'scene/component/graphql'\n}\n\n@sceneComponent('graphql-query')\nclass GraphQLQuery extends DataSource(RectPath(Shape)) {\n private _repeatTimer?: number\n private _isStarted: boolean = false\n\n get nature() {\n return NATURE\n }\n\n onchange(after: Properties, before: Properties) {\n if ('value' in after) {\n if (after.value) this.requestData()\n }\n }\n\n get period() {\n return this.state.period * 1000\n }\n\n set period(period) {\n this.setState('period', period)\n this._initGraphqlQuery()\n }\n\n get repeatTimer() {\n return this._repeatTimer\n }\n\n set repeatTimer(repeatTimer) {\n this._stopRepeater()\n this._repeatTimer = repeatTimer\n }\n\n get autoStart() {\n return this.state.autoStart\n }\n\n set autoStart(autoStart) {\n this.setState('autoStart', autoStart)\n }\n\n get query() {\n var _query = this.state.query\n var objToVal = (exp: any) => {\n if (typeof exp === 'string') return exp\n else return JSON.stringify(exp)\n }\n var changedQuery: string | undefined = (Component.buildSubstitutor(_query, this, objToVal) || (() => _query))()\n try {\n changedQuery = changedQuery!.replace(/\\(.*\\)/gi, params => {\n const c = new Compartment({ console })\n let paramObject = c.evaluate(`({${params.slice(1, -1)}})`)\n return '(' + buildArgs(paramObject) + ')'\n })\n } catch (e) {\n console.log(e)\n }\n\n return changedQuery\n }\n\n get source() {\n return this.getState('source')\n }\n\n set source(source) {\n this.setState('source', source)\n }\n\n dispose() {\n super.dispose()\n this._stopRepeater()\n }\n\n ready() {\n super.ready()\n if (this.autoStart) {\n this._initGraphqlQuery()\n }\n }\n\n _initGraphqlQuery() {\n if (!this.app.isViewMode) return\n\n this._stopRepeater()\n this._startRepeater()\n }\n\n _stopRepeater() {\n if (this.repeatTimer !== undefined) {\n clearTimeout(this._repeatTimer!)\n delete this._repeatTimer\n }\n\n this._isStarted = false\n }\n\n _startRepeater() {\n this._isStarted = true\n\n // requestAnimationFrame 이 호출되지 않을 때는 requestData 호출도 하지 않도록 함.\n var _ = () => {\n if (!this._isStarted) {\n return\n }\n this.requestData()\n if (!Number.isNaN(this.period) && this.period > 0) {\n this._repeatTimer = setTimeout(() => {\n requestAnimationFrame(_)\n }, this.period)\n }\n }\n requestAnimationFrame(_)\n }\n\n async requestData() {\n if (!this.app.isViewMode) return\n var { client } = this.state\n var query = this.query\n var variables = this.value\n\n if (query) {\n const graphqlClient: ApolloClient<NormalizedCacheObject> =\n (client && (this.root.findById(client) as GraphqlClient)?.client) || localClient\n\n var response\n\n if (typeof variables === 'object') {\n response = await graphqlClient.query({\n query: gql`\n ${query}\n `,\n variables: variables\n })\n } else {\n response = await graphqlClient.query({\n query: gql`\n ${query}\n `,\n errorPolicy: 'all'\n })\n }\n\n console.log('response', response)\n this.data = response\n }\n }\n}\n\nexport class Query extends GraphQLQuery {\n private static _image: HTMLImageElement\n\n static get image() {\n if (!Query._image) {\n Query._image = new Image()\n Query._image.src = new URL('../icons/symbol-graphql-query.png', import.meta.url).href\n }\n\n return Query._image\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Query.image, left, top, width, height)\n }\n}\n\n@sceneComponent('graphql-mutation')\nexport class Mutation extends GraphQLQuery {\n private static _image: HTMLImageElement\n\n static get image() {\n if (!Mutation._image) {\n Mutation._image = new Image()\n Mutation._image.src = new URL('../icons/symbol-graphql-mutation.png', import.meta.url).href\n }\n\n return Mutation._image\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Mutation.image, left, top, width, height)\n }\n}\n"]}
1
+ {"version":3,"file":"graphql-query-and-mutation.js","sourceRoot":"","sources":["../src/graphql-query-and-mutation.ts"],"names":[],"mappings":";;AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAG7B,OAAO,EACL,SAAS,EAET,UAAU,EAEV,QAAQ,EACR,KAAK,EACL,cAAc,EACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAInE,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE;gBACR,SAAS,EAAE,gBAAgB,CAAC,gDAAgD;aAC7E;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,SAAS;SACvB;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;SACd;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,WAAW;SAClB;KACF;IACD,gBAAgB,EAAE,OAAO;IACzB,IAAI,EAAE,yBAAyB;CAChC,CAAA;AAGD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,YAAY,CAAS;IACrB,UAAU,GAAY,KAAK,CAAA;IAEnC,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,KAAiB,EAAE,MAAkB;QAC5C,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,KAAK;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,IAAI,SAAS,CAAC,SAAS;QACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,KAAK;QACP,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;QAC7B,IAAI,QAAQ,GAAG,CAAC,GAAQ,EAAE,EAAE;YAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAA;;gBAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC,CAAA;QACD,IAAI,YAAY,GAAuB,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;QAC/G,IAAI,CAAC;YACH,YAAY,GAAG,YAAa,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;gBACxD,IAAI,WAAW,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;gBACvF,OAAO,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,GAAG,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACjC,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAM;QAEhC,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC,YAAa,CAAC,CAAA;YAChC,OAAO,IAAI,CAAC,YAAY,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;IACzB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAEtB,+DAA+D;QAC/D,IAAI,CAAC,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,qBAAqB,CAAC,CAAC,CAAC,CAAA;gBAC1B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;QACH,CAAC,CAAA;QACD,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAM;QAChC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAE1B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,aAAa,GACjB,CAAC,MAAM,IAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAmB,EAAE,MAAM,CAAC,IAAI,WAAW,CAAA;YAEpF,IAAI,QAAQ,CAAA;YAEZ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;oBACnC,KAAK,EAAE,GAAG,CAAA;cACN,KAAK;WACR;oBACD,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC;oBACnC,KAAK,EAAE,GAAG,CAAA;cACN,KAAK;WACR;oBACD,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACjC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QACtB,CAAC;IACH,CAAC;CACF,CAAA;AAjJK,YAAY;IADjB,cAAc,CAAC,eAAe,CAAC;GAC1B,YAAY,CAiJjB;AAED,MAAM,OAAO,KAAM,SAAQ,YAAY;IAC7B,MAAM,CAAC,MAAM,CAAkB;IAEvC,MAAM,KAAK,KAAK;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QACvF,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;CACF;AAGM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,YAAY;;IAChC,MAAM,CAAC,MAAM,CAAkB;IAEvC,MAAM,KAAK,KAAK;QACd,IAAI,CAAC,UAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,UAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;YAC7B,UAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAC7F,CAAC;QAED,OAAO,UAAQ,CAAC,MAAM,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;CACF,CAAA;AAlBY,QAAQ;IADpB,cAAc,CAAC,kBAAkB,CAAC;GACtB,QAAQ,CAkBpB","sourcesContent":["import gql from 'graphql-tag'\n\nimport { ApolloClient, NormalizedCacheObject } from '@apollo/client/core/index.js'\nimport {\n Component,\n ComponentNature,\n DataSource,\n Properties,\n RectPath,\n Shape,\n sceneComponent\n} from '@hatiolab/things-scene'\nimport { buildArgs, client as localClient } from '@operato/graphql'\n\nimport GraphqlClient from './graphql-client.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'id-input',\n label: 'client',\n name: 'client',\n placeholder: 'leave blank to use origin server',\n property: {\n component: 'graphql-client' // component의 type (null or undefined이면 모든 컴포넌트)\n }\n },\n {\n type: 'number',\n label: 'period',\n name: 'period',\n placeholder: 'SECONDS'\n },\n {\n type: 'graphql',\n label: 'query',\n name: 'query'\n },\n {\n type: 'checkbox',\n label: 'auto-start',\n name: 'autoStart'\n }\n ],\n 'value-property': 'value',\n help: 'scene/component/graphql'\n}\n\n@sceneComponent('graphql-query')\nclass GraphQLQuery extends DataSource(RectPath(Shape)) {\n private _repeatTimer?: number\n private _isStarted: boolean = false\n\n get nature() {\n return NATURE\n }\n\n onchange(after: Properties, before: Properties) {\n if ('value' in after) {\n if (after.value) this.requestData()\n }\n }\n\n get period() {\n return this.state.period * 1000\n }\n\n set period(period) {\n this.setState('period', period)\n this._initGraphqlQuery()\n }\n\n get repeatTimer() {\n return this._repeatTimer\n }\n\n set repeatTimer(repeatTimer) {\n this._stopRepeater()\n this._repeatTimer = repeatTimer\n }\n\n get autoStart() {\n return this.state.autoStart\n }\n\n set autoStart(autoStart) {\n this.setState('autoStart', autoStart)\n }\n\n get query() {\n var _query = this.state.query\n var objToVal = (exp: any) => {\n if (typeof exp === 'string') return exp\n else return JSON.stringify(exp)\n }\n var changedQuery: string | undefined = (Component.buildSubstitutor(_query, this, objToVal) || (() => _query))()\n try {\n changedQuery = changedQuery!.replace(/\\(.*\\)/gi, params => {\n let paramObject = new Function('console', `return ({${params.slice(1, -1)}})`)(console)\n return '(' + buildArgs(paramObject) + ')'\n })\n } catch (e) {\n console.log(e)\n }\n\n return changedQuery\n }\n\n get source() {\n return this.getState('source')\n }\n\n set source(source) {\n this.setState('source', source)\n }\n\n dispose() {\n super.dispose()\n this._stopRepeater()\n }\n\n async ready() {\n await super.ready()\n if (this.autoStart) {\n this._initGraphqlQuery()\n }\n }\n\n _initGraphqlQuery() {\n if (!this.app.isViewMode) return\n\n this._stopRepeater()\n this._startRepeater()\n }\n\n _stopRepeater() {\n if (this.repeatTimer !== undefined) {\n clearTimeout(this._repeatTimer!)\n delete this._repeatTimer\n }\n\n this._isStarted = false\n }\n\n _startRepeater() {\n this._isStarted = true\n\n // requestAnimationFrame 이 호출되지 않을 때는 requestData 호출도 하지 않도록 함.\n var _ = () => {\n if (!this._isStarted) {\n return\n }\n this.requestData()\n if (!Number.isNaN(this.period) && this.period > 0) {\n this._repeatTimer = setTimeout(() => {\n requestAnimationFrame(_)\n }, this.period)\n }\n }\n requestAnimationFrame(_)\n }\n\n async requestData() {\n if (!this.app.isViewMode) return\n var { client } = this.state\n var query = this.query\n var variables = this.value\n\n if (query) {\n const graphqlClient: ApolloClient<NormalizedCacheObject> =\n (client && (this.root.findById?.(client) as GraphqlClient)?.client) || localClient\n\n var response\n\n if (typeof variables === 'object') {\n response = await graphqlClient.query({\n query: gql`\n ${query}\n `,\n variables: variables\n })\n } else {\n response = await graphqlClient.query({\n query: gql`\n ${query}\n `,\n errorPolicy: 'all'\n })\n }\n\n console.log('response', response)\n this.data = response\n }\n }\n}\n\nexport class Query extends GraphQLQuery {\n private static _image: HTMLImageElement\n\n static get image() {\n if (!Query._image) {\n Query._image = new Image()\n Query._image.src = new URL('../icons/symbol-graphql-query.png', import.meta.url).href\n }\n\n return Query._image\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Query.image, left, top, width, height)\n }\n}\n\n@sceneComponent('graphql-mutation')\nexport class Mutation extends GraphQLQuery {\n private static _image: HTMLImageElement\n\n static get image() {\n if (!Mutation._image) {\n Mutation._image = new Image()\n Mutation._image.src = new URL('../icons/symbol-graphql-mutation.png', import.meta.url).href\n }\n\n return Mutation._image\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Mutation.image, left, top, width, height)\n }\n}\n"]}