@operato/scene-restful 10.0.0-beta.1 → 10.0.0-beta.30

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/README.md CHANGED
@@ -1,13 +1,33 @@
1
- ## build
1
+ # @operato/scene-restful
2
2
 
3
- `$ yarn build`
3
+ > Restful Client Component for Things Scene
4
4
 
5
- | type | filename | for | tested |
6
- | ---- | -------------------------- | -------------- | ------ |
7
- | UMD | things-scene-restful.js | modern browser | O |
8
- | UMD | things-scene-restful-ie.js | ie 11 | O |
9
- | ESM | things-scene-restful.mjs | modern browser | O |
5
+ <!-- AUTOGEN_BEGIN: do not edit between markers (run scripts/regenerate-readmes.mjs to update) -->
10
6
 
11
- ## publish
7
+ ## Components
12
8
 
13
- `$ yarn publish`
9
+ - `Restful`
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ yarn add @operato/scene-restful
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```ts
20
+ import { Restful } from '@operato/scene-restful'
21
+ ```
22
+
23
+ ## Build
24
+
25
+ ```bash
26
+ yarn build
27
+ ```
28
+
29
+ Output: ESM module at `dist/index.js` (single bundle, no UMD/IE legacy).
30
+
31
+ _Version: 10.0.0-beta.2_
32
+
33
+ <!-- AUTOGEN_END -->
package/dist/restful.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component, ComponentNature, Shape } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Shape } from '@hatiolab/things-scene';
2
2
  declare const Restful_base: (new (...args: any[]) => {
3
3
  _convertDataFormat(data: any, format: any): any;
4
4
  isDataSource(): boolean;
@@ -32,7 +32,7 @@ declare const Restful_base: (new (...args: any[]) => {
32
32
  get disposed(): boolean;
33
33
  isLayer(): boolean;
34
34
  isGroup(): boolean;
35
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
35
+ isContainer(): this is import("@hatiolab/things-scene").Container;
36
36
  isLine(): boolean;
37
37
  isRoot(): boolean;
38
38
  isRootModel(): boolean;
@@ -48,9 +48,9 @@ declare const Restful_base: (new (...args: any[]) => {
48
48
  get(property: any): any;
49
49
  set(props: any, propval?: any): any;
50
50
  getState(property: any): any;
51
- setState(props: any, propval?: any): any;
51
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
52
52
  get model(): any;
53
- get state(): any;
53
+ get state(): import("@hatiolab/things-scene").State;
54
54
  get hierarchy(): any;
55
55
  get volatile(): never[];
56
56
  _applyProps(target: any, props: any, options: any): any;
@@ -92,7 +92,7 @@ declare const Restful_base: (new (...args: any[]) => {
92
92
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
93
93
  render(context: import("@hatiolab/things-scene").SceneRenderContext): void;
94
94
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
95
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
95
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
96
96
  prepareIf(condition: boolean): void;
97
97
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
98
98
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -143,16 +143,16 @@ declare const Restful_base: (new (...args: any[]) => {
143
143
  get started(): boolean;
144
144
  set started(v: boolean): any;
145
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;
146
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
147
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
148
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
149
149
  findAnchor(name: string): any;
150
- isDescendible(container: Component): boolean;
150
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
151
151
  getContext(component?: unknown): any;
152
- get root(): Component;
153
- get rootModel(): Component;
154
- get parent(): Component;
155
- set parent(v: Component): any;
152
+ get root(): import("@hatiolab/things-scene").Component;
153
+ get rootModel(): import("@hatiolab/things-scene").Component;
154
+ get parent(): import("@hatiolab/things-scene").Component;
155
+ set parent(v: import("@hatiolab/things-scene").Component): any;
156
156
  get anchors(): import("@hatiolab/things-scene").Anchor[];
157
157
  get scalable(): boolean;
158
158
  get stuck(): boolean;
@@ -178,20 +178,20 @@ declare const Restful_base: (new (...args: any[]) => {
178
178
  ondropfile(transfered: FileList, files: string[]): void;
179
179
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
180
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;
181
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
182
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
183
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
184
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
185
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
186
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
187
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
188
188
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
189
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;
190
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
191
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
192
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
193
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
194
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
195
195
  on(name: string | object, callback: Function, context?: any): any;
196
196
  off(name?: string | object, callback?: Function, context?: any): any;
197
197
  once(name: string | object, callback: Function, context?: any): any;
@@ -201,24 +201,24 @@ declare const Restful_base: (new (...args: any[]) => {
201
201
  onchange(after: Record<string, any>, before: Record<string, any>): void;
202
202
  calculateBounds?(): void;
203
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[];
204
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
205
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
206
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
207
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
208
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
209
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
210
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
211
211
  resize(): void;
212
212
  fit(type?: string): void;
213
- get components(): Component[] | undefined;
213
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
214
214
  get layout(): any;
215
215
  get auxOverlay(): HTMLElement | undefined;
216
216
  get isReady(): boolean;
217
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;
218
+ get selected(): import("@hatiolab/things-scene").Component[];
219
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
220
+ get focused(): import("@hatiolab/things-scene").Component | null;
221
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
222
222
  get hasSameParentForAllSelected(): boolean;
223
223
  set hasSameParentForAllSelected(_v: boolean): any;
224
224
  get fitMode(): string | undefined;
@@ -275,7 +275,7 @@ declare const Restful_base: (new (...args: any[]) => {
275
275
  get disposed(): boolean;
276
276
  isLayer(): boolean;
277
277
  isGroup(): boolean;
278
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
278
+ isContainer(): this is import("@hatiolab/things-scene").Container;
279
279
  isLine(): boolean;
280
280
  isRoot(): boolean;
281
281
  isRootModel(): boolean;
@@ -291,9 +291,9 @@ declare const Restful_base: (new (...args: any[]) => {
291
291
  get(property: any): any;
292
292
  set(props: any, propval?: any): any;
293
293
  getState(property: any): any;
294
- setState(props: any, propval?: any): any;
294
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
295
295
  get model(): any;
296
- get state(): any;
296
+ get state(): import("@hatiolab/things-scene").State;
297
297
  get hierarchy(): any;
298
298
  get volatile(): never[];
299
299
  _applyProps(target: any, props: any, options: any): any;
@@ -329,7 +329,7 @@ declare const Restful_base: (new (...args: any[]) => {
329
329
  draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
330
330
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
331
331
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
332
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
332
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
333
333
  prepareIf(condition: boolean): void;
334
334
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
335
335
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -380,16 +380,16 @@ declare const Restful_base: (new (...args: any[]) => {
380
380
  get started(): boolean;
381
381
  set started(v: boolean): any;
382
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;
383
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
384
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
385
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
386
386
  findAnchor(name: string): any;
387
- isDescendible(container: Component): boolean;
387
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
388
388
  getContext(component?: unknown): any;
389
- get root(): Component;
390
- get rootModel(): Component;
391
- get parent(): Component;
392
- set parent(v: Component): any;
389
+ get root(): import("@hatiolab/things-scene").Component;
390
+ get rootModel(): import("@hatiolab/things-scene").Component;
391
+ get parent(): import("@hatiolab/things-scene").Component;
392
+ set parent(v: import("@hatiolab/things-scene").Component): any;
393
393
  get scalable(): boolean;
394
394
  get stuck(): boolean;
395
395
  get capturable(): boolean;
@@ -414,20 +414,20 @@ declare const Restful_base: (new (...args: any[]) => {
414
414
  ondropfile(transfered: FileList, files: string[]): void;
415
415
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
416
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;
417
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
418
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
419
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
420
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
421
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
422
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
423
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
424
424
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
425
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;
426
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
427
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
428
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
429
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
430
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
431
431
  on(name: string | object, callback: Function, context?: any): any;
432
432
  off(name?: string | object, callback?: Function, context?: any): any;
433
433
  once(name: string | object, callback: Function, context?: any): any;
@@ -437,24 +437,24 @@ declare const Restful_base: (new (...args: any[]) => {
437
437
  onchange(after: Record<string, any>, before: Record<string, any>): void;
438
438
  calculateBounds?(): void;
439
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[];
440
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
441
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
442
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
443
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
444
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
445
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
446
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
447
447
  resize(): void;
448
448
  fit(type?: string): void;
449
- get components(): Component[] | undefined;
449
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
450
450
  get layout(): any;
451
451
  get auxOverlay(): HTMLElement | undefined;
452
452
  get isReady(): boolean;
453
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;
454
+ get selected(): import("@hatiolab/things-scene").Component[];
455
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
456
+ get focused(): import("@hatiolab/things-scene").Component | null;
457
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
458
458
  get hasSameParentForAllSelected(): boolean;
459
459
  set hasSameParentForAllSelected(_v: boolean): any;
460
460
  get fitMode(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"restful.js","sourceRoot":"","sources":["../src/restful.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, DataSource, RectPath, sceneComponent, Shape, warn } from '@hatiolab/things-scene'\n\nimport jsonp from './jsonp.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'method',\n name: 'method',\n property: {\n options: [\n {\n display: 'GET',\n value: 'GET'\n },\n {\n display: 'POST',\n value: 'POST'\n },\n {\n display: 'PUT',\n value: 'PUT'\n },\n {\n display: 'DELETE',\n value: 'DELETE'\n }\n ]\n }\n },\n {\n type: 'string',\n label: 'url',\n name: 'url'\n },\n {\n type: 'string',\n label: 'authorization',\n name: 'authorization'\n },\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'json',\n value: 'json'\n },\n {\n display: 'jsonp',\n value: 'jsonp'\n },\n {\n display: 'text',\n value: 'text'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'content-type',\n name: 'contentType',\n property: {\n options: [\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'mode',\n name: 'mode',\n property: {\n options: [\n {\n display: 'cors',\n value: 'cors'\n },\n {\n display: 'no-cors',\n value: 'no-cors'\n },\n {\n display: 'same-origin',\n value: 'same-origin'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'credentials',\n name: 'credentials',\n property: {\n options: [\n {\n display: 'same-origin',\n value: 'same-origin'\n },\n {\n display: 'include',\n value: 'include'\n },\n {\n display: 'omit',\n value: 'omit'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'cache',\n name: 'cache',\n property: {\n options: [\n {\n display: 'default',\n value: 'default'\n },\n {\n display: 'no-cache',\n value: 'no-cache'\n },\n {\n display: 'reload',\n value: 'reload'\n },\n {\n display: 'force-cache',\n value: 'force-cache'\n },\n {\n display: 'only-if-cached',\n value: 'only-if-cached'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'redirect',\n name: 'redirect',\n property: {\n options: [\n {\n display: 'follow',\n value: 'follow'\n },\n {\n display: 'manual',\n value: 'manual'\n },\n {\n display: 'error',\n value: 'error'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'referrer-policy',\n name: 'referrerPolicy',\n property: {\n options: [\n {\n display: 'no-referrer-when-downgrade',\n value: 'no-referrer-when-downgrade'\n },\n {\n display: 'no-referrer',\n value: 'no-referrer'\n },\n {\n display: 'origin',\n value: 'origin'\n },\n {\n display: 'origin-when-cross-origin',\n value: 'origin-when-cross-origin'\n },\n {\n display: 'same-origin',\n value: 'same-origin'\n },\n {\n display: 'strict-origin',\n value: 'strict-origin'\n },\n {\n display: 'strict-origin-when-cross-origin',\n value: 'strict-origin-when-cross-origin'\n },\n {\n display: 'unsafe-url',\n value: 'unsafe-url'\n }\n ]\n }\n },\n {\n type: 'key-values',\n label: 'headers',\n name: 'headers'\n },\n {\n type: 'number',\n label: 'period',\n name: 'period',\n placeholder: 'SECONDS'\n },\n {\n type: 'checkbox',\n label: 'fetch-on-load',\n name: 'fetchOnLoad'\n }\n ],\n help: 'scene/component/restful'\n}\n\nconst REST_IMAGE =\n 'data:image/png;base64,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'\n\nconst WARN_NO_URL = 'Valid URL property required'\n\n@sceneComponent('restful')\nexport default class Restful extends DataSource(RectPath(Shape)) {\n static _image: HTMLImageElement\n\n static get image() {\n if (!Restful._image) {\n Restful._image = new Image()\n Restful._image.src = REST_IMAGE\n }\n\n return Restful._image\n }\n\n private _repeatTimer!: number\n private _isStarted = false\n\n get url() {\n return this.getState('url')\n }\n\n set url(url) {\n this.setState('url', url)\n this._initRestful()\n }\n\n get period() {\n return Number(this.state.period) * 1000\n }\n\n set period(period) {\n this.setState('period', Number(period))\n this._initRestful()\n }\n\n get value() {\n return this.state.value\n }\n\n set value(value) {\n this.setState('value', value)\n this._initRestful(true)\n }\n\n get withCredentials() {\n return !!this.getState('withCredentials')\n }\n\n set withCredentials(withCredentials) {\n this.setState('withCredentials', withCredentials)\n this._initRestful()\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 async ready() {\n await super.ready()\n this._initRestful(this.state.fetchOnLoad)\n }\n\n _initRestful(force: boolean = false) {\n if (!this.app.isViewMode) return\n\n if (!this.url) {\n warn(WARN_NO_URL)\n return\n }\n\n this._stopRepeater()\n if (this.period > 0) {\n this._startRepeater()\n } else {\n force && this.fetch()\n }\n }\n\n dispose() {\n super.dispose()\n this._stopRepeater()\n }\n\n _startRepeater() {\n this._isStarted = true\n\n var self = this\n\n function _() {\n if (!self._isStarted) {\n return\n }\n self.fetch()\n\n if (!self.period) {\n self._stopRepeater()\n return\n }\n\n self._repeatTimer = setTimeout(() => {\n requestAnimationFrame(_)\n }, self.period)\n }\n\n requestAnimationFrame(_)\n }\n\n _stopRepeater() {\n this._isStarted = false\n if (this.repeatTimer) {\n clearTimeout(this._repeatTimer)\n }\n }\n\n async fetch() {\n var {\n url,\n method = 'GET',\n mode = 'cors',\n cache = 'default',\n credentials = 'same-origin',\n redirect = 'follow',\n referrerPolicy = 'no-referrer-when-downgrade',\n contentType = 'application/json',\n dataFormat = 'json',\n headers = {},\n value\n } = this.state\n\n if (dataFormat == 'jsonp') {\n if (value && typeof value == 'string') {\n url = value\n }\n\n jsonp(url, {}, (self, data) => {\n if (this._isStarted && data) {\n this.data = data\n }\n })\n\n return\n }\n\n var options: any = {\n method,\n mode,\n cache,\n credentials,\n headers: {\n 'Content-Type': contentType,\n ...headers\n },\n redirect,\n referrerPolicy\n }\n\n if (method != 'GET' && method != 'HEAD') {\n if (contentType == 'application/json') {\n options.body = JSON.stringify(value)\n } else {\n options.body = value\n }\n } else {\n if (value && typeof value == 'string') {\n url = value\n }\n }\n\n const response = await fetch(url, options)\n\n if (!this._isStarted) {\n return\n }\n\n if (dataFormat === 'json') {\n this.data = await response.json()\n } else if (dataFormat === 'text') {\n this.data = await response.text()\n }\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Restful.image, left, top, width, height)\n }\n\n ondblclick(e: Event) {\n if (!this.url) {\n warn(WARN_NO_URL)\n return\n }\n\n this.fetch()\n }\n\n get controls() {\n return []\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
1
+ {"version":3,"file":"restful.js","sourceRoot":"","sources":["../src/restful.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentNature, DataSource, RectPath, sceneComponent, Shape, warn } from '@hatiolab/things-scene'\n\nimport jsonp from './jsonp.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'method',\n name: 'method',\n property: {\n options: [\n {\n display: 'GET',\n value: 'GET'\n },\n {\n display: 'POST',\n value: 'POST'\n },\n {\n display: 'PUT',\n value: 'PUT'\n },\n {\n display: 'DELETE',\n value: 'DELETE'\n }\n ]\n }\n },\n {\n type: 'string',\n label: 'url',\n name: 'url'\n },\n {\n type: 'string',\n label: 'authorization',\n name: 'authorization'\n },\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'json',\n value: 'json'\n },\n {\n display: 'jsonp',\n value: 'jsonp'\n },\n {\n display: 'text',\n value: 'text'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'content-type',\n name: 'contentType',\n property: {\n options: [\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'mode',\n name: 'mode',\n property: {\n options: [\n {\n display: 'cors',\n value: 'cors'\n },\n {\n display: 'no-cors',\n value: 'no-cors'\n },\n {\n display: 'same-origin',\n value: 'same-origin'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'credentials',\n name: 'credentials',\n property: {\n options: [\n {\n display: 'same-origin',\n value: 'same-origin'\n },\n {\n display: 'include',\n value: 'include'\n },\n {\n display: 'omit',\n value: 'omit'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'cache',\n name: 'cache',\n property: {\n options: [\n {\n display: 'default',\n value: 'default'\n },\n {\n display: 'no-cache',\n value: 'no-cache'\n },\n {\n display: 'reload',\n value: 'reload'\n },\n {\n display: 'force-cache',\n value: 'force-cache'\n },\n {\n display: 'only-if-cached',\n value: 'only-if-cached'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'redirect',\n name: 'redirect',\n property: {\n options: [\n {\n display: 'follow',\n value: 'follow'\n },\n {\n display: 'manual',\n value: 'manual'\n },\n {\n display: 'error',\n value: 'error'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'referrer-policy',\n name: 'referrerPolicy',\n property: {\n options: [\n {\n display: 'no-referrer-when-downgrade',\n value: 'no-referrer-when-downgrade'\n },\n {\n display: 'no-referrer',\n value: 'no-referrer'\n },\n {\n display: 'origin',\n value: 'origin'\n },\n {\n display: 'origin-when-cross-origin',\n value: 'origin-when-cross-origin'\n },\n {\n display: 'same-origin',\n value: 'same-origin'\n },\n {\n display: 'strict-origin',\n value: 'strict-origin'\n },\n {\n display: 'strict-origin-when-cross-origin',\n value: 'strict-origin-when-cross-origin'\n },\n {\n display: 'unsafe-url',\n value: 'unsafe-url'\n }\n ]\n }\n },\n {\n type: 'key-values',\n label: 'headers',\n name: 'headers'\n },\n {\n type: 'number',\n label: 'period',\n name: 'period',\n placeholder: 'SECONDS'\n },\n {\n type: 'checkbox',\n label: 'fetch-on-load',\n name: 'fetchOnLoad'\n }\n ],\n help: 'scene/component/restful'\n}\n\nconst REST_IMAGE =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAACWCAMAAABqx6OSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB1WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KAtiABQAAASNQTFRFAAAA/4AA1VUrzE0zyEk3zkU7zEQzz0g40kQ10UE0z0U10UM2zkQ40UU40EU20UQ3z0Q20EQ3z0U30UM30EQ4z0U30EM30UQ3z0M20EM30EQ30EQ30EQ30EQ40EQ30EQ30EQ20EQ30EQ30EQ30EQ30EQ30EQ30EQ30EQ2zDIkzTcpzjoszjstzjwvzz4wzz8xz0Az0EI10EQ30Ec60Uo+0kxA009D1FNI1FZK1FhN1VZL1lxQ119U12NY2Ghe2m5k3HJo3Hdv3Xx04IV+4YqD45OM5JiS5Z6X56Od6aql666p67Ou7Lay7rq27r+78MTA8cfE8cvI8s3K89HO89TS9dfV9tvZ9uDf+Obl+eno+uzr+/Hx/PTz/fj4/vv7/v39////7rizQQAAACl0Uk5TAAIGCg4aHiAiJzA9RE5RU1pha3l8hoyVm6OstLi8wsjO2N3l6Ovv8/j35GbfAAAITUlEQVR42u2caVviPBSGHfV1BkfHbRhXRkQBbZs2DbIpO7jgAggKgqL+/1/xNmlBbAO02tL2uub5pC2kN0nOycnSMzX1T/+kW9OehZW19S2fP7AfDIWC+wG/b2t9bWXBM+0Eum+eX96dQAhRFQrseH95vtnJ931pwx9GYxT2byx9t4dvbnU7iHQquL06N2m+2eWtMDKk8Nby7AQB570B9AkFvPMTAvxptAIHqnLz5wQseNGHviTfosUWvrCDvqydBQsBPZvIFG16LAKcWQshkxRam7HESnaRido1325mvIfIVB16Ta7I+b/IdP011UuuhJAFCq2Y18jryCKtm9TYcz5kmXymRBfze8hC7ZnQIRf2kaXa//JYsxRGFiu89DXC5UNkuQ6XnU74NcaliRBKjJ9u64UQmpBCn7SZ+QM0MR18yvfMBdAEFfiED5/xoYnKZ3ws/IMmrD+GYxs0cRmMe+ZDk0cMGTKZ2V1kg3aNLFd4kS3yGphJHdqDeKh7zjW9i2zSrt410zVkm9b0Ef4I2ocY/KELcRPZqA0n24oBi9lGtmpbR5CIbNbY0PGbz25E3zjH8xPZrnG9cct+xK0xEc6h/YiH884KZA0Ht7MBJyAGRgVly5QvQMASAXM5eqVCyr1lY24bHBdv7+r1erUAzSSEhapU6N1t8RgYct8/tGtMIN18k/WUFMwjFJJPSrHNtJYxPDyYWNX+2MSjUtTbyylvHiJ/+tIr9zGhbZ7VoSOLtp25S7mcTqd1LormIYrieavTkcu+5LQtPWwT7j9NoAiPSTN3ColEDIhm9kURxBKJAoFsHmuqMfjfEMRFbTvHSZcpHfECNNu1QIE/KpFOHteWvTgEcUNbzElXKqObhNY4QJgkxZ9AvZHttJ+CiHv1c8wqxNgztkMKop8e7njCzkEM0/dafyHnIKIlvUsQ9iHSFyZ2nIS4Q7WWgB5EKAAAOI4D7+M/zw2If48+AAd48iHAqQTHIwZo9uIJ6UAUj5OpTDaXy2XSMU525jCVG1CKXBN5NpbO5jKpKCsN7OmcSj0nNgIx5NE59dMgcredrjy6dluVPMTXmcrbgG55MnSkyy3s8p5b1xkeNd5UOmfGIlIngrR1WSGlQmTvBx91g4cu5vbDJR4PwBfP/QtXLLpTI559REwJOtdsf+tCbJAKbDblWOoaihREcD5wIcdpEc91IP6mINL2xfnMKwWxHIlG40UcArzmgIxYOU3JSoiIT+M2frzIpQoXjab03RN846SIh+Mc+VxMHER8zdCivHWd01OQxz+6Hf2IeMlAKDCZJxJIiQTxmuFlQSWAe0wygAesmIxIJPjGURaHTHFG+ZCMGG3j8vNA51SVtgzBnuEi7iPiR0SOmARGqyIZ8WagItg6+RmyB+i3IZfDiB8jdzFCuvYZS1uUoCD6KUEdS6y1DCiIiLmQ/qxHKIgNUq3q4JiGCMq4/ApLCUX9FESN54YcU3hROhwFkb3G9gooiDe4/+YZfiwiAjnc118KDKfxOwEKovqAAR/JXnWJq4NIiygyp9he8qxsLtdHjCzY68DdcoobnIFSEREk7qB7lY2oTWafgqiaFQhpxQXeRdWIFxKPmMFThhpSnE67WpOV5pEoP/ftuZKPvHeRIYhRxSPdp1V3ghRE1fgnDxrdRiky+F2C+FC+uqrjLtBM8mrXLblBacbTu3Sf7zPSEZEQKTVIW1VUnTekA7FKEOtFBNWIvYl1OYZbR4uIICwps+/XSyiORISoWCeIVR2Iqobmsy35KbVjOASxSCxR09DEFURLjVfyqQtuZEMf1+TCWll+fEOrzQVECxXylFtBhXhfLt+2+w5NYy7ys1mYIdX7pKwQ0BEF8pnXSiEKdJgLxemwZBL5mgVqcwFsrEoGC0FBvNGOYSLHEcd/xo1wOllSCSVWn9OhuW5QG+a62QQe/87BcETcJRvvt0a47hrQ6bppJxSZ82EDoMhhB92g1mJ/ZWXw1ogB8JyhPPqv3jCiQA0jcNORTvAkxc9axAjkoGTIInvcUmp6CKISRhT0hhHDg7GnGAVRDiUL6tFFshdQuivEIyyDEvhONz28FmHsyVAwpj+kJYjyilQvGGtJ3pyofApZ6UK7cXNVJ2HvjSCOQDQW0q4YQxQBDiPulWBswHezsc7Av7VeJzGKuPLZ6RX7gC1cjnRwGP2WFj5OryTEeLU/c+lc9MMDgvhMRdQ9vdI1SQU3zWbzjHRvMVaX/i4C9rI5oIeMAOFp8br68FC7LiXY929mpLt3H9fpjE5S9U31hfe4XgTS36IS9/cl4lm0tBKAxQ3Wmajc1YdIneq7YMHEDctOLli8c8ESqAsWkl2wHD98U6N4JFixqSEcFYdtavwyujXUzsfjUbO3hqLxeL5tdGtoxAZb+7F5Zu4G21nzsW18g422TZnsb1N2zd2m7Pa3KZMGtimpm70ZZSKoDgG+utnbCzVaGUObvdQt82ip0pBUM3vLvIZLrZSixrbM3XDwwAXHN1xwCGZqPmw/4ZijRC44kOWGY23Tzj8caP8Ry8Xxr5Hv2Eu4o+MldBcc93XBoWk3HD13wQF+2jxrQtL9GoQLXiZxwys5bnixyQWvh7nhJTs3vKrohhc+p+b2Jkm496nUB85/+dgNr3BLS2UTmmyFF6c+LeenE3BDUgY3pLawPkHIgQnJqJyfZsXiZDUmJexzfsofNyROsij91K7JSfqcn8RrygWp0HBFrpm2BhC0JqEc3mvdMGlVxKq0fGSscXpywyk3pIgkNenwRJuyl3R6ulKyXOH0pK9ydOHw1LmycALisaN3yL4ExIqFOzyNc3/N9EMy7IOAs5Jh/5M79D8U6UTFcE/VFgAAAABJRU5ErkJggg=='\n\nconst WARN_NO_URL = 'Valid URL property required'\n\n@sceneComponent('restful')\nexport default class Restful extends DataSource(RectPath(Shape)) {\n static _image: HTMLImageElement\n\n static get image() {\n if (!Restful._image) {\n Restful._image = new Image()\n Restful._image.src = REST_IMAGE\n }\n\n return Restful._image\n }\n\n private _repeatTimer!: number\n private _isStarted = false\n\n get url() {\n return this.getState('url')\n }\n\n set url(url) {\n this.setState('url', url)\n this._initRestful()\n }\n\n get period() {\n return Number(this.state.period) * 1000\n }\n\n set period(period) {\n this.setState('period', Number(period))\n this._initRestful()\n }\n\n get value() {\n return this.state.value\n }\n\n set value(value) {\n this.setState('value', value)\n this._initRestful(true)\n }\n\n get withCredentials() {\n return !!this.getState('withCredentials')\n }\n\n set withCredentials(withCredentials) {\n this.setState('withCredentials', withCredentials)\n this._initRestful()\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 async ready() {\n await super.ready()\n this._initRestful(this.state.fetchOnLoad)\n }\n\n _initRestful(force: boolean = false) {\n if (!this.app.isViewMode) return\n\n if (!this.url) {\n warn(WARN_NO_URL)\n return\n }\n\n this._stopRepeater()\n if (this.period > 0) {\n this._startRepeater()\n } else {\n force && this.fetch()\n }\n }\n\n dispose() {\n super.dispose()\n this._stopRepeater()\n }\n\n _startRepeater() {\n this._isStarted = true\n\n var self = this\n\n function _() {\n if (!self._isStarted) {\n return\n }\n self.fetch()\n\n if (!self.period) {\n self._stopRepeater()\n return\n }\n\n self._repeatTimer = setTimeout(() => {\n requestAnimationFrame(_)\n }, self.period)\n }\n\n requestAnimationFrame(_)\n }\n\n _stopRepeater() {\n this._isStarted = false\n if (this.repeatTimer) {\n clearTimeout(this._repeatTimer)\n }\n }\n\n async fetch() {\n var {\n url,\n method = 'GET',\n mode = 'cors',\n cache = 'default',\n credentials = 'same-origin',\n redirect = 'follow',\n referrerPolicy = 'no-referrer-when-downgrade',\n contentType = 'application/json',\n dataFormat = 'json',\n headers = {},\n value\n } = this.state\n\n if (dataFormat == 'jsonp') {\n if (value && typeof value == 'string') {\n url = value\n }\n\n jsonp(url, {}, (self, data) => {\n if (this._isStarted && data) {\n this.data = data\n }\n })\n\n return\n }\n\n var options: any = {\n method,\n mode,\n cache,\n credentials,\n headers: {\n 'Content-Type': contentType,\n ...headers\n },\n redirect,\n referrerPolicy\n }\n\n if (method != 'GET' && method != 'HEAD') {\n if (contentType == 'application/json') {\n options.body = JSON.stringify(value)\n } else {\n options.body = value\n }\n } else {\n if (value && typeof value == 'string') {\n url = value\n }\n }\n\n const response = await fetch(url, options)\n\n if (!this._isStarted) {\n return\n }\n\n if (dataFormat === 'json') {\n this.data = await response.json()\n } else if (dataFormat === 'text') {\n this.data = await response.text()\n }\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, Restful.image, left, top, width, height)\n }\n\n ondblclick(e: Event) {\n if (!this.url) {\n warn(WARN_NO_URL)\n return\n }\n\n this.fetch()\n }\n\n get controls() {\n return []\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/scene-restful",
3
3
  "description": "Restful Client Component for Things Scene",
4
4
  "author": "heartyoh",
5
- "version": "10.0.0-beta.1",
5
+ "version": "10.0.0-beta.30",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.js",
@@ -58,5 +58,5 @@
58
58
  "prettier --write"
59
59
  ]
60
60
  },
61
- "gitHead": "bb127dd516b9e962fb2d0a24bc2d8c5e108f06fb"
61
+ "gitHead": "06b35b1726ec4f27ee76657ce341c6c6f3ba1b3a"
62
62
  }