@operato/scene-table 0.1.1 → 0.1.5

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 CHANGED
@@ -3,116 +3,128 @@
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
- ### [0.1.1](https://github.com/things-scene/operato-scene/compare/v0.1.0...v0.1.1) (2022-01-03)
6
+ ### [0.1.5](https://github.com/things-scene/operato-scene/compare/v0.1.4...v0.1.5) (2022-02-10)
7
7
 
8
8
 
9
- ### :bug: Bug Fix
9
+ ### :rocket: New Features
10
10
 
11
- * [@things-factory](https://github.com/things-factory) 4.0.27 for webpack 5 ([c1b8ce2](https://github.com/things-scene/operato-scene/commit/c1b8ce2a4f069a77b75c82ef8abe2b52974fa5a2))
12
- * @operato/board@0.3.4 ([9f7a868](https://github.com/things-scene/operato-scene/commit/9f7a86820280d24b08dabfd9c9b0f46b4c74feed))
11
+ * move news-ticker to here ([c5e565d](https://github.com/things-scene/operato-scene/commit/c5e565dff6016977766e54b3b74c4f80838f7cd2))
13
12
 
14
13
 
15
14
 
16
- ## [0.1.0](https://github.com/things-scene/operato-scene/compare/v0.0.26...v0.1.0) (2022-01-03)
15
+ ### [0.1.4](https://github.com/things-scene/operato-scene/compare/v0.1.3...v0.1.4) (2022-01-30)
17
16
 
18
17
 
19
18
  ### :rocket: New Features
20
19
 
21
- * applied import.meta.url for native web support ([fe65672](https://github.com/things-scene/operato-scene/commit/fe65672550b15276bd9fa79ab7ac886a8502f8b0))
20
+ * scene-label migrated from things-factory project ([3c9033c](https://github.com/things-scene/operato-scene/commit/3c9033c9af28bdd0377ac4a538ef7d4bfd38d488))
22
21
 
23
22
 
23
+ ### :bug: Bug Fix
24
24
 
25
- ### [0.0.26](https://github.com/things-scene/operato-scene/compare/v0.0.25...v0.0.26) (2022-01-01)
25
+ * applied [@operato](https://github.com/operato) 0.3.24 ([fb4fed0](https://github.com/things-scene/operato-scene/commit/fb4fed0d9fd44d6ae38db6359fdca15fc61f167c))
26
+ * applied [@things-factory](https://github.com/things-factory)@^4.0.40 ([3d4e6cb](https://github.com/things-scene/operato-scene/commit/3d4e6cbe167f605a68333fffe18949adb5247c1d))
27
+ * upgrade [@operato](https://github.com/operato) dependencies ([7d2478e](https://github.com/things-scene/operato-scene/commit/7d2478e72586b662e6c219f0720c78cde5dd7a2d))
28
+ * upgrade [@things-factory](https://github.com/things-factory) and [@operato](https://github.com/operato) ([4d97897](https://github.com/things-scene/operato-scene/commit/4d978970d3c8aba6ecae99e3fa98e431a647e8cb))
26
29
 
27
30
 
28
- ### :bug: Bug Fix
29
31
 
30
- * upgrade [@operato](https://github.com/operato) modules ([ddcb27f](https://github.com/things-scene/operato-scene/commit/ddcb27f7562243d9fc581fed3090c3be42ce1d28))
32
+ ### [0.1.3](https://github.com/things-scene/operato-scene/compare/v0.1.2...v0.1.3) (2022-01-28)
31
33
 
32
34
 
35
+ ### :rocket: New Features
33
36
 
34
- ### [0.0.25](https://github.com/things-scene/operato-scene/compare/v0.0.24...v0.0.25) (2021-12-28)
37
+ * add graphql, mqtt scene component ([e223063](https://github.com/things-scene/operato-scene/commit/e223063b562f6a6a7b6ff12f3e32df30aa920da8))
35
38
 
36
39
 
37
40
  ### :bug: Bug Fix
38
41
 
39
- * @hatiolab/things-scene@2.7.31 ([b0d1706](https://github.com/things-scene/operato-scene/commit/b0d17064bb42ed4a60008a15d48700a328711ab8))
40
- * upgrade [@things-factory](https://github.com/things-factory) dependencies ([0deff8d](https://github.com/things-scene/operato-scene/commit/0deff8dcaba7a7e81061246298b889f6165091d7))
41
-
42
+ * applied [@operato](https://github.com/operato)@^0.3.20 ([9a1dcbd](https://github.com/things-scene/operato-scene/commit/9a1dcbd2d1ca7f95b498503c87242b6d57ee3482))
43
+ * applied [@things-factory](https://github.com/things-factory)@^4.0.38 and [@operato](https://github.com/operato)@^0.3.18 ([d506c2d](https://github.com/things-scene/operato-scene/commit/d506c2d8a58341eee235079eff9b79bfa1fe350f))
42
44
 
43
45
 
44
- ### [0.0.24](https://github.com/things-scene/operato-scene/compare/v0.0.23...v0.0.24) (2021-12-21)
45
46
 
47
+ ### [0.1.2](https://github.com/things-scene/operato-scene/compare/v0.1.1...v0.1.2) (2022-01-13)
46
48
 
47
49
  ### :bug: Bug Fix
48
50
 
49
- * upgrade [@operato](https://github.com/operato) dependencies ([19adafd](https://github.com/things-scene/operato-scene/commit/19adafde63c6a819c905c8b325b8fca6a3ff9e70))
50
-
51
-
52
-
53
- ### [0.0.23](https://github.com/things-scene/operato-scene/compare/v0.0.22...v0.0.23) (2021-12-16)
51
+ - @operato/board upgrade to 0.3.18 ([4c5d232](https://github.com/things-scene/operato-scene/commit/4c5d232d185642624501a369449df21b322384ae))
54
52
 
53
+ ### [0.1.1](https://github.com/things-scene/operato-scene/compare/v0.1.0...v0.1.1) (2022-01-03)
55
54
 
56
55
  ### :bug: Bug Fix
57
56
 
58
- * upgrade dependencies ([3939f9f](https://github.com/things-scene/operato-scene/commit/3939f9f4069f97a5370b616375e3ecf36cf41704))
57
+ - [@things-factory](https://github.com/things-factory) 4.0.38 for webpack 5 ([c1b8ce2](https://github.com/things-scene/operato-scene/commit/c1b8ce2a4f069a77b75c82ef8abe2b52974fa5a2))
58
+ - @operato/board@0.3.4 ([9f7a868](https://github.com/things-scene/operato-scene/commit/9f7a86820280d24b08dabfd9c9b0f46b4c74feed))
59
59
 
60
+ ## [0.1.0](https://github.com/things-scene/operato-scene/compare/v0.0.26...v0.1.0) (2022-01-03)
60
61
 
62
+ ### :rocket: New Features
61
63
 
62
- ### [0.0.22](https://github.com/things-scene/operato-scene/compare/v0.0.21...v0.0.22) (2021-12-14)
64
+ - applied import.meta.url for native web support ([fe65672](https://github.com/things-scene/operato-scene/commit/fe65672550b15276bd9fa79ab7ac886a8502f8b0))
63
65
 
66
+ ### [0.0.26](https://github.com/things-scene/operato-scene/compare/v0.0.25...v0.0.26) (2022-01-01)
64
67
 
65
68
  ### :bug: Bug Fix
66
69
 
67
- * @hatiolab/things-scene upgrade ([7841684](https://github.com/things-scene/operato-scene/commit/78416849b0a336c55450e15f09d3cb58cc5e8e51))
70
+ - upgrade [@operato](https://github.com/operato) modules ([ddcb27f](https://github.com/things-scene/operato-scene/commit/ddcb27f7562243d9fc581fed3090c3be42ce1d28))
68
71
 
72
+ ### [0.0.25](https://github.com/things-scene/operato-scene/compare/v0.0.24...v0.0.25) (2021-12-28)
69
73
 
74
+ ### :bug: Bug Fix
70
75
 
71
- ### [0.0.21](https://github.com/things-scene/operato-scene/compare/v0.0.20...v0.0.21) (2021-12-14)
76
+ - @hatiolab/things-scene@2.7.31 ([b0d1706](https://github.com/things-scene/operato-scene/commit/b0d17064bb42ed4a60008a15d48700a328711ab8))
77
+ - upgrade [@things-factory](https://github.com/things-factory) dependencies ([0deff8d](https://github.com/things-scene/operato-scene/commit/0deff8dcaba7a7e81061246298b889f6165091d7))
72
78
 
79
+ ### [0.0.24](https://github.com/things-scene/operato-scene/compare/v0.0.23...v0.0.24) (2021-12-21)
73
80
 
74
81
  ### :bug: Bug Fix
75
82
 
76
- * @things-factory/operato-board@^4.0.17 ([713a319](https://github.com/things-scene/operato-scene/commit/713a319b55a9d27fca98a1b577898863cf89a765))
83
+ - upgrade [@operato](https://github.com/operato) dependencies ([19adafd](https://github.com/things-scene/operato-scene/commit/19adafde63c6a819c905c8b325b8fca6a3ff9e70))
77
84
 
85
+ ### [0.0.23](https://github.com/things-scene/operato-scene/compare/v0.0.22...v0.0.23) (2021-12-16)
78
86
 
87
+ ### :bug: Bug Fix
79
88
 
80
- ### [0.0.20](https://github.com/things-scene/operato-scene/compare/v0.0.19...v0.0.20) (2021-12-13)
89
+ - upgrade dependencies ([3939f9f](https://github.com/things-scene/operato-scene/commit/3939f9f4069f97a5370b616375e3ecf36cf41704))
81
90
 
91
+ ### [0.0.22](https://github.com/things-scene/operato-scene/compare/v0.0.21...v0.0.22) (2021-12-14)
82
92
 
83
93
  ### :bug: Bug Fix
84
94
 
85
- * upgrade [@operato](https://github.com/operato) version ([fbc79cf](https://github.com/things-scene/operato-scene/commit/fbc79cfcc60f92a5c6c510dc07a42bc92b810777))
95
+ - @hatiolab/things-scene upgrade ([7841684](https://github.com/things-scene/operato-scene/commit/78416849b0a336c55450e15f09d3cb58cc5e8e51))
86
96
 
97
+ ### [0.0.21](https://github.com/things-scene/operato-scene/compare/v0.0.20...v0.0.21) (2021-12-14)
87
98
 
99
+ ### :bug: Bug Fix
88
100
 
89
- ### [0.0.19](https://github.com/things-scene/operato-scene/compare/v0.0.18...v0.0.19) (2021-12-12)
101
+ - @things-factory/operato-board@^4.0.17 ([713a319](https://github.com/things-scene/operato-scene/commit/713a319b55a9d27fca98a1b577898863cf89a765))
90
102
 
103
+ ### [0.0.20](https://github.com/things-scene/operato-scene/compare/v0.0.19...v0.0.20) (2021-12-13)
91
104
 
92
105
  ### :bug: Bug Fix
93
106
 
94
- * upgrade @hatiolab/things-scene, @operato/board,property-editor,data-grist ([e6743bd](https://github.com/things-scene/operato-scene/commit/e6743bda29852fdae779b893a1e825a1cb73f0f9))
107
+ - upgrade [@operato](https://github.com/operato) version ([fbc79cf](https://github.com/things-scene/operato-scene/commit/fbc79cfcc60f92a5c6c510dc07a42bc92b810777))
95
108
 
109
+ ### [0.0.19](https://github.com/things-scene/operato-scene/compare/v0.0.18...v0.0.19) (2021-12-12)
96
110
 
111
+ ### :bug: Bug Fix
97
112
 
98
- ### [0.0.18](https://github.com/things-scene/operato-scene/compare/v0.0.17...v0.0.18) (2021-12-11)
113
+ - upgrade @hatiolab/things-scene, @operato/board,property-editor,data-grist ([e6743bd](https://github.com/things-scene/operato-scene/commit/e6743bda29852fdae779b893a1e825a1cb73f0f9))
99
114
 
115
+ ### [0.0.18](https://github.com/things-scene/operato-scene/compare/v0.0.17...v0.0.18) (2021-12-11)
100
116
 
101
117
  ### :bug: Bug Fix
102
118
 
103
- * indoor-map and table editor interaction pattern ([5447b9b](https://github.com/things-scene/operato-scene/commit/5447b9b36bab108db6845ccd6c82a5c6ece7ffbf))
104
- * upgrade things-factory version ([e7fc142](https://github.com/things-scene/operato-scene/commit/e7fc142a70d3d54b61fdd076522dede8a5908dcd))
105
-
106
-
119
+ - indoor-map and table editor interaction pattern ([5447b9b](https://github.com/things-scene/operato-scene/commit/5447b9b36bab108db6845ccd6c82a5c6ece7ffbf))
120
+ - upgrade things-factory version ([e7fc142](https://github.com/things-scene/operato-scene/commit/e7fc142a70d3d54b61fdd076522dede8a5908dcd))
107
121
 
108
122
  ### [0.0.17](https://github.com/things-scene/operato-scene/compare/v0.0.16...v0.0.17) (2021-12-11)
109
123
 
110
-
111
124
  ### :rocket: New Features
112
125
 
113
- * add @operato/scene-table ([f8a6748](https://github.com/things-scene/operato-scene/commit/f8a6748e23c0195d40c788a92b4e5f9b795d49f4))
114
-
126
+ - add @operato/scene-table ([f8a6748](https://github.com/things-scene/operato-scene/commit/f8a6748e23c0195d40c788a92b4e5f9b795d49f4))
115
127
 
116
128
  ### :bug: Bug Fix
117
129
 
118
- * upgrade operato to 0.2.45 ([0032bad](https://github.com/things-scene/operato-scene/commit/0032bad0914e7fd7eae5e8cc1574df20ce7cb851))
130
+ - upgrade operato to 0.2.45 ([0032bad](https://github.com/things-scene/operato-scene/commit/0032bad0914e7fd7eae5e8cc1574df20ce7cb851))
@@ -1,21 +1,7 @@
1
- import { Component, Style } from '@hatiolab/things-scene';
1
+ import { Component, ComponentNature, Style } from '@hatiolab/things-scene';
2
2
  declare const DataCell_base: typeof Component;
3
3
  export default class DataCell extends DataCell_base {
4
- get nature(): {
5
- mutable: boolean;
6
- resizable: boolean;
7
- rotatable: boolean;
8
- properties: {
9
- type: string;
10
- label: string;
11
- name: string;
12
- property: {
13
- merge: boolean;
14
- split: boolean;
15
- };
16
- }[];
17
- help: string;
18
- };
4
+ get nature(): ComponentNature;
19
5
  _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: Style): void;
20
6
  _draw(context: CanvasRenderingContext2D): void;
21
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-cell.js","sourceRoot":"","sources":["../../src/data-list/data-cell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAS,MAAM,wBAAwB,CAAA;AAInE,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE;gBACR,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;aACb;SACF;KACF;IACD,IAAI,EAAE,2BAA2B;CAClC,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,QAAQ,CAAC,SAAS,CAAC;IACvD,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,OAAiC,EAAE,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,IAAY,EAAE,KAAY;QAC3G,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;YACnE,OAAO,CAAC,SAAS,EAAE,CAAA;YACnB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC1B,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;SACrC;IACH,CAAC;IAED,KAAK,CAAC,OAAiC;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QAEpC,YAAY;QACZ,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtB,aAAa;QACb,IAAI,MAAM,GAAG,IAAI,CAAC,MAAe,CAAA;QACjC,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACrE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE;YAC5B,0DAA0D;YAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;SACvF;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1F,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, RectPath, Style } from '@hatiolab/things-scene'\n\nimport { Table } from '..'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: false,\n split: false\n }\n }\n ],\n help: 'scene/component/data-cell'\n}\n\nexport default class DataCell extends RectPath(Component) {\n get nature() {\n return NATURE\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: Style) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n Component.drawStroke(context, style)\n }\n }\n\n _draw(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n var border = this.model.border || {}\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n this.drawFill(context)\n\n // Border 그리기\n var parent = this.parent as Table\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if ((idx + 1) % columns == 0) {\n /* if this filed is right most, draw right side border. */\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n }\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n}\n\nComponent.register('data-cell', DataCell)\n"]}
1
+ {"version":3,"file":"data-cell.js","sourceRoot":"","sources":["../../src/data-list/data-cell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAmB,QAAQ,EAAS,MAAM,wBAAwB,CAAA;AAIpF,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE;gBACR,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;aACb;SACF;KACF;IACD,IAAI,EAAE,2BAA2B;CAClC,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,QAAQ,CAAC,SAAS,CAAC;IACvD,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,OAAiC,EAAE,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,IAAY,EAAE,KAAY;QAC3G,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;YACnE,OAAO,CAAC,SAAS,EAAE,CAAA;YACnB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC1B,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;SACrC;IACH,CAAC;IAED,KAAK,CAAC,OAAiC;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QAEpC,YAAY;QACZ,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtB,aAAa;QACb,IAAI,MAAM,GAAG,IAAI,CAAC,MAAe,CAAA;QACjC,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACrE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE;YAC5B,0DAA0D;YAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;SACvF;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1F,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, ComponentNature, RectPath, Style } from '@hatiolab/things-scene'\n\nimport { Table } from '../'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: false,\n split: false\n }\n }\n ],\n help: 'scene/component/data-cell'\n}\n\nexport default class DataCell extends RectPath(Component) {\n get nature() {\n return NATURE\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: Style) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n Component.drawStroke(context, style)\n }\n }\n\n _draw(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n var border = this.model.border || {}\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n this.drawFill(context)\n\n // Border 그리기\n var parent = this.parent as Table\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if ((idx + 1) % columns == 0) {\n /* if this filed is right most, draw right side border. */\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n }\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n}\n\nComponent.register('data-cell', DataCell)\n"]}
@@ -1,7 +1,7 @@
1
1
  import './data-cell';
2
2
  import './data-list-layout';
3
- import { WHERE } from '../helper-functions';
4
3
  import { Component, ComponentNature, Container, Control, State, Style } from '@hatiolab/things-scene';
4
+ import { WHERE } from '../helper-functions';
5
5
  export default class DataList extends Container {
6
6
  postrender(context: CanvasRenderingContext2D): void;
7
7
  renderScrollbar(context: CanvasRenderingContext2D): void;
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import './data-cell';
5
5
  import './data-list-layout';
6
- import { CLEAR_STYLE, above, after, array, before, below, buildCopiedCell, buildNewCell, columnControlHandler, isBottomMost, isLeftMost, isRightMost, isTopMost, rowControlHandler, setCellBorder } from '../helper-functions';
7
6
  import { Component, Container, Layout, Model } from '@hatiolab/things-scene';
7
+ import { above, after, array, before, below, buildCopiedCell, buildNewCell, CLEAR_STYLE, columnControlHandler, isBottomMost, isLeftMost, isRightMost, isTopMost, rowControlHandler, setCellBorder } from '../helper-functions';
8
8
  const NATURE = {
9
9
  mutable: false,
10
10
  resizable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"data-list.js","sourceRoot":"","sources":["../../src/data-list/data-list.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './data-cell'\nimport './data-list-layout'\n\nimport {\n CLEAR_STYLE,\n WHERE,\n above,\n after,\n array,\n before,\n below,\n buildCopiedCell,\n buildNewCell,\n columnControlHandler,\n isBottomMost,\n isLeftMost,\n isRightMost,\n isTopMost,\n rowControlHandler,\n setCellBorder\n} from '../helper-functions'\nimport { Component, ComponentNature, Container, Control, Layout, Model, State, Style } from '@hatiolab/things-scene'\n\nimport DataCell from './data-cell'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'columns',\n name: 'columns',\n property: 'columns'\n }\n ],\n 'value-property': 'data',\n help: 'scene/component/data-list'\n}\n\nexport default class DataList extends Container {\n postrender(context: CanvasRenderingContext2D) {\n super.postrender(context)\n\n // child component들을 다 그린 후에 scrollbar를 표현한다.\n if (this.app.isViewMode) {\n this.renderScrollbar(context)\n }\n }\n\n renderScrollbar(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n var { offset = { x: 0, y: 0 }, data } = this.state\n\n var fullHeight = ((data && data.length) || 0) * (this.heights[0] / this.heights_sum) * height\n\n if (fullHeight <= height) {\n return\n }\n\n var start = (-offset.y / fullHeight) * height\n var end = ((-offset.y + height) / fullHeight) * height\n\n context.strokeStyle = 'gray'\n context.lineWidth = 10\n context.globalAlpha = 0.3\n\n context.beginPath()\n context.moveTo(left + width - 10, top + start)\n context.lineTo(left + width - 10, top + end)\n\n context.stroke()\n }\n\n created() {\n this.set('rows', 2)\n\n var rows = 1\n\n var tobeSize = rows * this.columns\n var gap = this.size() - tobeSize\n\n if (this.data) {\n this.setCellsData()\n }\n\n if (gap == 0) {\n return\n } else if (gap > 0) {\n let removals = this.components.slice(gap)\n this.remove(removals)\n } else {\n let newbies = []\n\n for (let i = 0; i < -gap; i++) newbies.push(buildNewCell('data-cell', this.app))\n\n this.add(newbies)\n }\n\n var widths = this.get('widths')\n var heights = this.get('heights')\n\n if (!widths || widths.length < this.columns) this.set('widths', this.widths)\n if (!heights || heights.length < rows) this.set('heights', this.heights)\n }\n\n _onwheel(e: WheelEvent) {\n e.stopPropagation()\n\n var { height } = this.bounds\n var { offset = { x: 0, y: 0 } } = this.state\n\n var recordHeight = (this.heights[0] / this.heights.reduce((sum: number, height: number) => sum + height)) * height\n\n var minX = 0\n var minY = this.data && this.data.length ? Math.min(-recordHeight * this.data.length + height, 0) : 0\n\n /* shiftKey + wheel 은 deltaX 값을 변화시킨다. */\n if (e.deltaY == 0 && e.deltaX == 0) return\n\n var x = e.deltaX + offset.x\n var y = -e.deltaY + offset.y\n\n /* 휠을 밀면.. 화면은 위쪽으로 : scroll down */\n /* 휠을 당기면.. 화면은 아래쪽으로 : scroll up */\n\n this.setState({\n offset: {\n x: Math.max(Math.min(0, x), minX),\n y: Math.max(Math.min(0, y), minY)\n }\n })\n }\n\n private __START_OFFSET?: { x: number; y: number }\n private __START_Y?: number\n\n _ontouchstart(e: DragEvent) {\n this.__START_OFFSET = this.state.offset || {\n x: 0,\n y: 0\n }\n this.__START_Y = e.offsetY\n }\n\n _ontouchmove(e: DragEvent) {\n if (!this.__START_OFFSET) {\n return\n }\n\n var { height } = this.bounds\n\n var recordHeight = (this.heights[0] / this.heights.reduce((sum: number, height: number) => sum + height)) * height\n var minY = this.data && this.data.length ? Math.min(-recordHeight * this.data.length + height, 0) : 0\n\n var x = 0\n var y = this.__START_OFFSET.y + (e.offsetY - this.__START_Y!) / this.rootModel.state.scale.y\n y = Math.max(Math.min(0, y), minY)\n\n var offset = this.state.offset || { x: 0, y: 0 }\n if (offset.x !== x || offset.y !== y) {\n this.setState('offset', {\n x,\n y\n })\n\n e.stopPropagation()\n }\n }\n\n _ontouchend(e: DragEvent) {\n delete this.__START_OFFSET\n delete this.__START_Y\n }\n\n get layout() {\n return Layout.get('data-list')\n }\n\n containable(component: Component) {\n return component.get('type') == 'data-cell'\n }\n\n get focusible() {\n /* 이 컨테이너에는 컴포넌트를 임의로 추가 및 삭제할 수 없도록 함 */\n return false\n }\n\n get widths_sum(): number {\n var widths = this.widths\n return widths\n ? widths\n .filter((width: number, i: number) => i < this.columns)\n .reduce((sum: number, width: number) => sum + width, 0)\n : this.columns\n }\n\n get heights_sum(): number {\n var heights = this.heights\n return heights ? heights.filter((height, i) => i < this.rows).reduce((sum, height) => sum + height, 0) : this.rows\n }\n\n get widths(): number[] {\n var widths = this.get('widths')\n\n if (!widths) return array(1, this.columns)\n\n if (widths.length < this.columns) return widths.concat(array(1, this.columns - widths.length))\n else if (widths.length > this.columns) return widths.slice(0, this.columns)\n\n return widths\n }\n\n get heights(): number[] {\n var heights = this.get('heights')\n var rows = 2\n\n if (!heights) {\n return array(1, rows)\n }\n\n if (heights.length < rows) return heights.concat(array(1, rows - heights.length))\n else if (heights.length > rows) return heights.slice(0, rows)\n\n return heights\n }\n\n get columns() {\n return Number(this.get('columns'))\n }\n\n get rows(): number {\n /* 1 for first record fields, 1 for rest record fields */\n return 2\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n\n get controls(): Control[] {\n var widths = this.widths\n var heights = this.heights\n var inside = this.textBounds\n\n var width_unit = inside.width / this.widths_sum\n var height_unit = inside.height / this.heights_sum\n\n var x = inside.left\n var y = inside.top\n\n var controls: Control[] = []\n\n widths.slice(0, this.columns - 1).forEach(width => {\n x += width * width_unit\n controls.push({\n x: x,\n y: inside.top,\n handler: columnControlHandler\n })\n })\n\n heights.slice(0, this.rows - 1).forEach(height => {\n y += height * height_unit\n controls.push({\n x: inside.left,\n y: y,\n handler: rowControlHandler\n })\n })\n\n return controls\n }\n\n onchange(after: State, before: State) {\n if ('data' in after) {\n this.setCellsData()\n }\n\n if ('columns' in after) {\n let { columns } = this\n\n this.buildCells(columns, Number(before.columns))\n }\n }\n\n get eventMap() {\n return {\n '(self)': {\n '(all)': {\n wheel: this._onwheel,\n touchstart: this._ontouchstart,\n touchmove: this._ontouchmove,\n touchend: this._ontouchend\n }\n }\n }\n }\n\n setCellsData() {\n if (!this.app.isViewMode) {\n return\n }\n\n var data = this.data || []\n if (!(data instanceof Array)) {\n data = [data]\n }\n\n /* 기존의 레코드를 모두 삭제 (템플릿 레코드만 남긴다.) */\n this.remove(this.components.slice(this.columns))\n\n /* template 레코드의 데이타를 클리어시킨다 */\n var templates = this.getCellsByRow(0)\n templates.forEach(field => {\n field.data = ''\n })\n\n /* 데이타의 크기만큼 새로운 레코드를 만든다 */\n if (data.length > 1) {\n let newbies: Component[] = []\n\n for (let i = 1; i < data.length; i++) {\n newbies = newbies.concat(\n templates.map(field => {\n return Model.compile(\n {\n ...field.model,\n id: '',\n data: ''\n },\n this.app\n )\n })\n )\n }\n\n this.add(newbies)\n }\n\n data.forEach((record: any[], idx: number) => {\n let data = {\n _idx: idx,\n ...record\n }\n let row = this.getCellsByRow(idx)\n row.forEach(field => {\n field.data = data\n })\n })\n }\n\n setCellsStyle(cells: Component[], style: Style, where: WHERE) {\n var components = this.components\n var total = components.length\n var columns = this.get('columns')\n\n var indices = cells.map(cell => components.indexOf(cell))\n indices.forEach(i => {\n var cell = components[i]\n\n switch (where) {\n case 'all':\n setCellBorder(cell, style, where)\n\n if (isLeftMost(total, columns, indices, i)) setCellBorder(components[before(columns, i)], style, 'right')\n if (isRightMost(total, columns, indices, i)) setCellBorder(components[after(columns, i)], style, 'left')\n if (isTopMost(total, columns, indices, i)) setCellBorder(components[above(columns, i)], style, 'bottom')\n if (isBottomMost(total, columns, indices, i)) setCellBorder(components[below(columns, i)], style, 'top')\n break\n case 'in':\n if (!isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n }\n if (!isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n }\n if (!isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n }\n if (!isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n }\n break\n case 'out':\n if (isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n setCellBorder(components[before(columns, i)], style, 'right')\n }\n if (isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n setCellBorder(components[after(columns, i)], style, 'left')\n }\n if (isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n setCellBorder(components[above(columns, i)], style, 'bottom')\n }\n if (isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n setCellBorder(components[below(columns, i)], style, 'top')\n }\n break\n case 'left':\n if (isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n setCellBorder(components[before(columns, i)], style, 'right')\n }\n break\n case 'right':\n if (isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n setCellBorder(components[after(columns, i)], style, 'left')\n }\n break\n case 'center':\n if (!isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n }\n if (!isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n }\n break\n case 'middle':\n if (!isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n }\n if (!isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n }\n break\n case 'top':\n if (isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n setCellBorder(components[above(columns, i)], style, 'bottom')\n }\n break\n case 'bottom':\n if (isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n setCellBorder(components[below(columns, i)], style, 'top')\n }\n break\n case 'clear':\n setCellBorder(cell, CLEAR_STYLE, 'all')\n\n if (isLeftMost(total, columns, indices, i))\n setCellBorder(components[before(columns, i)], CLEAR_STYLE, 'right')\n if (isRightMost(total, columns, indices, i)) setCellBorder(components[after(columns, i)], CLEAR_STYLE, 'left')\n if (isTopMost(total, columns, indices, i)) setCellBorder(components[above(columns, i)], CLEAR_STYLE, 'bottom')\n if (isBottomMost(total, columns, indices, i)) setCellBorder(components[below(columns, i)], CLEAR_STYLE, 'top')\n }\n })\n }\n\n buildCells(newcolumns: number, oldcolumns: number) {\n var minrows = 1\n\n if (newcolumns > oldcolumns) {\n for (let r = 0; r < minrows; r++) {\n for (let c = oldcolumns; c < newcolumns; c++) {\n this.insertComponentAt(buildNewCell('data-cell', this.app), r * newcolumns + c)\n }\n }\n } else if (newcolumns < oldcolumns) {\n let removals = []\n\n for (let r = 0; r < minrows; r++) {\n for (let c = newcolumns; c < oldcolumns; c++) {\n removals.push(this.components[r * oldcolumns + c])\n }\n }\n\n this.remove(removals)\n }\n\n this.set({\n widths: this.widths,\n heights: this.heights\n })\n\n this.setCellsData()\n }\n\n getRowColumn(cell: Component) {\n var idx = this.components.indexOf(cell)\n\n return {\n column: idx % this.columns,\n row: Math.floor(idx / this.columns)\n }\n }\n\n getCellsByRow(row: number): Component[] {\n return this.components.slice(row * this.columns, (row + 1) * this.columns)\n }\n\n getCellsByColumn(column: number): Component[] {\n var cells = []\n for (let i = 0; i < this.rows; i++) cells.push(this.components[this.columns * i + column])\n\n return cells\n }\n\n mergeCells(cells: Component[]) {}\n\n splitCells(cells: Component[]) {}\n\n deleteRows(cells: Component[]) {}\n\n deleteColumns(cells: Component[]) {\n // 만약 선택한 셀이 병합된 셀이라면 삭제하지 않는다.\n // if (cells[0].merged == true) return false\n\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n\n columns.forEach(column => {\n var widths = this.widths.slice()\n this.remove(this.getCellsByColumn(column))\n\n widths.splice(column, 1)\n this.model.columns -= 1 // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n this.set('widths', widths)\n })\n }\n\n insertCellsAbove(cells: Component[]) {}\n\n insertCellsBelow(cells: Component[]) {}\n\n insertCellsLeft(cells: Component[]) {\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n\n // 열 2개 이상은 추가 안함. 임시로 막아놓음\n if (columns.length >= 2) return false\n let insertionColumnPosition = columns[0]\n let newbieColumnWidths: number[] = []\n let newbieCells: Component[] = []\n columns.forEach(column => {\n for (let i = 0; i < this.rows; i++)\n newbieCells.push(buildCopiedCell(this.components[column + this.columns * i].model, this.app))\n newbieColumnWidths.push(this.widths[column])\n\n let increasedColumns = this.columns\n let index = this.rows\n newbieCells.reverse().forEach(cell => {\n if (index == 0) {\n index = this.rows\n increasedColumns++\n }\n\n index--\n this.insertComponentAt(cell, insertionColumnPosition + index * increasedColumns)\n })\n\n let widths = this.widths.slice()\n this.model.columns += columns.length // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n\n widths.splice(insertionColumnPosition, 0, ...newbieColumnWidths)\n\n this.set('widths', widths)\n })\n }\n\n insertCellsRight(cells: Component[]) {\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n // 열 2개 이상은 추가 안함. 임시로 막아놓음\n if (columns.length >= 2) return false\n let insertionColumnPosition = columns[columns.length - 1] + 1\n let newbieColumnWidths: number[] = []\n let newbieCells: Component[] = []\n columns.forEach(column => {\n for (let i = 0; i < this.rows; i++)\n newbieCells.push(buildCopiedCell(this.components[column + this.columns * i].model, this.app))\n newbieColumnWidths.push(this.widths[column])\n\n let increasedColumns = this.columns\n let index = this.rows\n newbieCells.reverse().forEach(cell => {\n if (index == 0) {\n index = this.rows\n increasedColumns++\n }\n\n index--\n this.insertComponentAt(cell, insertionColumnPosition + index * increasedColumns)\n })\n\n let widths = this.widths.slice()\n this.model.columns += columns.length // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n\n widths.splice(insertionColumnPosition, 0, ...newbieColumnWidths)\n\n this.set('widths', widths)\n })\n }\n\n distributeHorizontal(cells: Component[]) {\n var columns: number[] = []\n\n cells.forEach(cell => {\n let rowcolumn = this.getRowColumn(cell)\n\n if (-1 == columns.indexOf(rowcolumn.column)) columns.push(rowcolumn.column)\n })\n\n var sum = columns.reduce((sum, column) => {\n return sum + this.widths[column]\n }, 0)\n\n var newval = Math.round((sum / columns.length) * 100) / 100\n var widths = this.widths.slice()\n columns.forEach(column => {\n widths[column] = newval\n })\n\n this.set('widths', widths)\n }\n\n distributeVertical(cells: Component[]) {}\n}\n\nComponent.register('data-list', DataList)\n"]}
1
+ {"version":3,"file":"data-list.js","sourceRoot":"","sources":["../../src/data-list/data-list.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './data-cell'\nimport './data-list-layout'\n\nimport { Component, ComponentNature, Container, Control, Layout, Model, State, Style } from '@hatiolab/things-scene'\n\nimport {\n above,\n after,\n array,\n before,\n below,\n buildCopiedCell,\n buildNewCell,\n CLEAR_STYLE,\n columnControlHandler,\n isBottomMost,\n isLeftMost,\n isRightMost,\n isTopMost,\n rowControlHandler,\n setCellBorder,\n WHERE\n} from '../helper-functions'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'columns',\n name: 'columns',\n property: 'columns'\n }\n ],\n 'value-property': 'data',\n help: 'scene/component/data-list'\n}\n\nexport default class DataList extends Container {\n postrender(context: CanvasRenderingContext2D) {\n super.postrender(context)\n\n // child component들을 다 그린 후에 scrollbar를 표현한다.\n if (this.app.isViewMode) {\n this.renderScrollbar(context)\n }\n }\n\n renderScrollbar(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n var { offset = { x: 0, y: 0 }, data } = this.state\n\n var fullHeight = ((data && data.length) || 0) * (this.heights[0] / this.heights_sum) * height\n\n if (fullHeight <= height) {\n return\n }\n\n var start = (-offset.y / fullHeight) * height\n var end = ((-offset.y + height) / fullHeight) * height\n\n context.strokeStyle = 'gray'\n context.lineWidth = 10\n context.globalAlpha = 0.3\n\n context.beginPath()\n context.moveTo(left + width - 10, top + start)\n context.lineTo(left + width - 10, top + end)\n\n context.stroke()\n }\n\n created() {\n this.set('rows', 2)\n\n var rows = 1\n\n var tobeSize = rows * this.columns\n var gap = this.size() - tobeSize\n\n if (this.data) {\n this.setCellsData()\n }\n\n if (gap == 0) {\n return\n } else if (gap > 0) {\n let removals = this.components.slice(gap)\n this.remove(removals)\n } else {\n let newbies = []\n\n for (let i = 0; i < -gap; i++) newbies.push(buildNewCell('data-cell', this.app))\n\n this.add(newbies)\n }\n\n var widths = this.get('widths')\n var heights = this.get('heights')\n\n if (!widths || widths.length < this.columns) this.set('widths', this.widths)\n if (!heights || heights.length < rows) this.set('heights', this.heights)\n }\n\n _onwheel(e: WheelEvent) {\n e.stopPropagation()\n\n var { height } = this.bounds\n var { offset = { x: 0, y: 0 } } = this.state\n\n var recordHeight = (this.heights[0] / this.heights.reduce((sum: number, height: number) => sum + height)) * height\n\n var minX = 0\n var minY = this.data && this.data.length ? Math.min(-recordHeight * this.data.length + height, 0) : 0\n\n /* shiftKey + wheel 은 deltaX 값을 변화시킨다. */\n if (e.deltaY == 0 && e.deltaX == 0) return\n\n var x = e.deltaX + offset.x\n var y = -e.deltaY + offset.y\n\n /* 휠을 밀면.. 화면은 위쪽으로 : scroll down */\n /* 휠을 당기면.. 화면은 아래쪽으로 : scroll up */\n\n this.setState({\n offset: {\n x: Math.max(Math.min(0, x), minX),\n y: Math.max(Math.min(0, y), minY)\n }\n })\n }\n\n private __START_OFFSET?: { x: number; y: number }\n private __START_Y?: number\n\n _ontouchstart(e: DragEvent) {\n this.__START_OFFSET = this.state.offset || {\n x: 0,\n y: 0\n }\n this.__START_Y = e.offsetY\n }\n\n _ontouchmove(e: DragEvent) {\n if (!this.__START_OFFSET) {\n return\n }\n\n var { height } = this.bounds\n\n var recordHeight = (this.heights[0] / this.heights.reduce((sum: number, height: number) => sum + height)) * height\n var minY = this.data && this.data.length ? Math.min(-recordHeight * this.data.length + height, 0) : 0\n\n var x = 0\n var y = this.__START_OFFSET.y + (e.offsetY - this.__START_Y!) / this.rootModel.state.scale.y\n y = Math.max(Math.min(0, y), minY)\n\n var offset = this.state.offset || { x: 0, y: 0 }\n if (offset.x !== x || offset.y !== y) {\n this.setState('offset', {\n x,\n y\n })\n\n e.stopPropagation()\n }\n }\n\n _ontouchend(e: DragEvent) {\n delete this.__START_OFFSET\n delete this.__START_Y\n }\n\n get layout() {\n return Layout.get('data-list')\n }\n\n containable(component: Component) {\n return component.get('type') == 'data-cell'\n }\n\n get focusible() {\n /* 이 컨테이너에는 컴포넌트를 임의로 추가 및 삭제할 수 없도록 함 */\n return false\n }\n\n get widths_sum(): number {\n var widths = this.widths\n return widths\n ? widths\n .filter((width: number, i: number) => i < this.columns)\n .reduce((sum: number, width: number) => sum + width, 0)\n : this.columns\n }\n\n get heights_sum(): number {\n var heights = this.heights\n return heights ? heights.filter((height, i) => i < this.rows).reduce((sum, height) => sum + height, 0) : this.rows\n }\n\n get widths(): number[] {\n var widths = this.get('widths')\n\n if (!widths) return array(1, this.columns)\n\n if (widths.length < this.columns) return widths.concat(array(1, this.columns - widths.length))\n else if (widths.length > this.columns) return widths.slice(0, this.columns)\n\n return widths\n }\n\n get heights(): number[] {\n var heights = this.get('heights')\n var rows = 2\n\n if (!heights) {\n return array(1, rows)\n }\n\n if (heights.length < rows) return heights.concat(array(1, rows - heights.length))\n else if (heights.length > rows) return heights.slice(0, rows)\n\n return heights\n }\n\n get columns() {\n return Number(this.get('columns'))\n }\n\n get rows(): number {\n /* 1 for first record fields, 1 for rest record fields */\n return 2\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n\n get controls(): Control[] {\n var widths = this.widths\n var heights = this.heights\n var inside = this.textBounds\n\n var width_unit = inside.width / this.widths_sum\n var height_unit = inside.height / this.heights_sum\n\n var x = inside.left\n var y = inside.top\n\n var controls: Control[] = []\n\n widths.slice(0, this.columns - 1).forEach(width => {\n x += width * width_unit\n controls.push({\n x: x,\n y: inside.top,\n handler: columnControlHandler\n })\n })\n\n heights.slice(0, this.rows - 1).forEach(height => {\n y += height * height_unit\n controls.push({\n x: inside.left,\n y: y,\n handler: rowControlHandler\n })\n })\n\n return controls\n }\n\n onchange(after: State, before: State) {\n if ('data' in after) {\n this.setCellsData()\n }\n\n if ('columns' in after) {\n let { columns } = this\n\n this.buildCells(columns, Number(before.columns))\n }\n }\n\n get eventMap() {\n return {\n '(self)': {\n '(all)': {\n wheel: this._onwheel,\n touchstart: this._ontouchstart,\n touchmove: this._ontouchmove,\n touchend: this._ontouchend\n }\n }\n }\n }\n\n setCellsData() {\n if (!this.app.isViewMode) {\n return\n }\n\n var data = this.data || []\n if (!(data instanceof Array)) {\n data = [data]\n }\n\n /* 기존의 레코드를 모두 삭제 (템플릿 레코드만 남긴다.) */\n this.remove(this.components.slice(this.columns))\n\n /* template 레코드의 데이타를 클리어시킨다 */\n var templates = this.getCellsByRow(0)\n templates.forEach(field => {\n field.data = ''\n })\n\n /* 데이타의 크기만큼 새로운 레코드를 만든다 */\n if (data.length > 1) {\n let newbies: Component[] = []\n\n for (let i = 1; i < data.length; i++) {\n newbies = newbies.concat(\n templates.map(field => {\n return Model.compile(\n {\n ...field.model,\n id: '',\n data: ''\n },\n this.app\n )\n })\n )\n }\n\n this.add(newbies)\n }\n\n data.forEach((record: any[], idx: number) => {\n let data = {\n _idx: idx,\n ...record\n }\n let row = this.getCellsByRow(idx)\n row.forEach(field => {\n field.data = data\n })\n })\n }\n\n setCellsStyle(cells: Component[], style: Style, where: WHERE) {\n var components = this.components\n var total = components.length\n var columns = this.get('columns')\n\n var indices = cells.map(cell => components.indexOf(cell))\n indices.forEach(i => {\n var cell = components[i]\n\n switch (where) {\n case 'all':\n setCellBorder(cell, style, where)\n\n if (isLeftMost(total, columns, indices, i)) setCellBorder(components[before(columns, i)], style, 'right')\n if (isRightMost(total, columns, indices, i)) setCellBorder(components[after(columns, i)], style, 'left')\n if (isTopMost(total, columns, indices, i)) setCellBorder(components[above(columns, i)], style, 'bottom')\n if (isBottomMost(total, columns, indices, i)) setCellBorder(components[below(columns, i)], style, 'top')\n break\n case 'in':\n if (!isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n }\n if (!isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n }\n if (!isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n }\n if (!isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n }\n break\n case 'out':\n if (isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n setCellBorder(components[before(columns, i)], style, 'right')\n }\n if (isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n setCellBorder(components[after(columns, i)], style, 'left')\n }\n if (isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n setCellBorder(components[above(columns, i)], style, 'bottom')\n }\n if (isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n setCellBorder(components[below(columns, i)], style, 'top')\n }\n break\n case 'left':\n if (isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n setCellBorder(components[before(columns, i)], style, 'right')\n }\n break\n case 'right':\n if (isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n setCellBorder(components[after(columns, i)], style, 'left')\n }\n break\n case 'center':\n if (!isLeftMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'left')\n }\n if (!isRightMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'right')\n }\n break\n case 'middle':\n if (!isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n }\n if (!isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n }\n break\n case 'top':\n if (isTopMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'top')\n setCellBorder(components[above(columns, i)], style, 'bottom')\n }\n break\n case 'bottom':\n if (isBottomMost(total, columns, indices, i)) {\n setCellBorder(cell, style, 'bottom')\n setCellBorder(components[below(columns, i)], style, 'top')\n }\n break\n case 'clear':\n setCellBorder(cell, CLEAR_STYLE, 'all')\n\n if (isLeftMost(total, columns, indices, i))\n setCellBorder(components[before(columns, i)], CLEAR_STYLE, 'right')\n if (isRightMost(total, columns, indices, i)) setCellBorder(components[after(columns, i)], CLEAR_STYLE, 'left')\n if (isTopMost(total, columns, indices, i)) setCellBorder(components[above(columns, i)], CLEAR_STYLE, 'bottom')\n if (isBottomMost(total, columns, indices, i)) setCellBorder(components[below(columns, i)], CLEAR_STYLE, 'top')\n }\n })\n }\n\n buildCells(newcolumns: number, oldcolumns: number) {\n var minrows = 1\n\n if (newcolumns > oldcolumns) {\n for (let r = 0; r < minrows; r++) {\n for (let c = oldcolumns; c < newcolumns; c++) {\n this.insertComponentAt(buildNewCell('data-cell', this.app), r * newcolumns + c)\n }\n }\n } else if (newcolumns < oldcolumns) {\n let removals = []\n\n for (let r = 0; r < minrows; r++) {\n for (let c = newcolumns; c < oldcolumns; c++) {\n removals.push(this.components[r * oldcolumns + c])\n }\n }\n\n this.remove(removals)\n }\n\n this.set({\n widths: this.widths,\n heights: this.heights\n })\n\n this.setCellsData()\n }\n\n getRowColumn(cell: Component) {\n var idx = this.components.indexOf(cell)\n\n return {\n column: idx % this.columns,\n row: Math.floor(idx / this.columns)\n }\n }\n\n getCellsByRow(row: number): Component[] {\n return this.components.slice(row * this.columns, (row + 1) * this.columns)\n }\n\n getCellsByColumn(column: number): Component[] {\n var cells = []\n for (let i = 0; i < this.rows; i++) cells.push(this.components[this.columns * i + column])\n\n return cells\n }\n\n mergeCells(cells: Component[]) {}\n\n splitCells(cells: Component[]) {}\n\n deleteRows(cells: Component[]) {}\n\n deleteColumns(cells: Component[]) {\n // 만약 선택한 셀이 병합된 셀이라면 삭제하지 않는다.\n // if (cells[0].merged == true) return false\n\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n\n columns.forEach(column => {\n var widths = this.widths.slice()\n this.remove(this.getCellsByColumn(column))\n\n widths.splice(column, 1)\n this.model.columns -= 1 // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n this.set('widths', widths)\n })\n }\n\n insertCellsAbove(cells: Component[]) {}\n\n insertCellsBelow(cells: Component[]) {}\n\n insertCellsLeft(cells: Component[]) {\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n\n // 열 2개 이상은 추가 안함. 임시로 막아놓음\n if (columns.length >= 2) return false\n let insertionColumnPosition = columns[0]\n let newbieColumnWidths: number[] = []\n let newbieCells: Component[] = []\n columns.forEach(column => {\n for (let i = 0; i < this.rows; i++)\n newbieCells.push(buildCopiedCell(this.components[column + this.columns * i].model, this.app))\n newbieColumnWidths.push(this.widths[column])\n\n let increasedColumns = this.columns\n let index = this.rows\n newbieCells.reverse().forEach(cell => {\n if (index == 0) {\n index = this.rows\n increasedColumns++\n }\n\n index--\n this.insertComponentAt(cell, insertionColumnPosition + index * increasedColumns)\n })\n\n let widths = this.widths.slice()\n this.model.columns += columns.length // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n\n widths.splice(insertionColumnPosition, 0, ...newbieColumnWidths)\n\n this.set('widths', widths)\n })\n }\n\n insertCellsRight(cells: Component[]) {\n // 먼저 cells 위치의 열을 구한다.\n let columns: number[] = []\n cells.forEach(cell => {\n let column = this.getRowColumn(cell).column\n if (-1 == columns.indexOf(column)) columns.push(column)\n })\n columns.sort((a, b) => {\n return a - b\n })\n columns.reverse()\n // 열 2개 이상은 추가 안함. 임시로 막아놓음\n if (columns.length >= 2) return false\n let insertionColumnPosition = columns[columns.length - 1] + 1\n let newbieColumnWidths: number[] = []\n let newbieCells: Component[] = []\n columns.forEach(column => {\n for (let i = 0; i < this.rows; i++)\n newbieCells.push(buildCopiedCell(this.components[column + this.columns * i].model, this.app))\n newbieColumnWidths.push(this.widths[column])\n\n let increasedColumns = this.columns\n let index = this.rows\n newbieCells.reverse().forEach(cell => {\n if (index == 0) {\n index = this.rows\n increasedColumns++\n }\n\n index--\n this.insertComponentAt(cell, insertionColumnPosition + index * increasedColumns)\n })\n\n let widths = this.widths.slice()\n this.model.columns += columns.length // 고의적으로, change 이벤트가 발생하지 않도록 set(..)을 사용하지 않음.\n\n widths.splice(insertionColumnPosition, 0, ...newbieColumnWidths)\n\n this.set('widths', widths)\n })\n }\n\n distributeHorizontal(cells: Component[]) {\n var columns: number[] = []\n\n cells.forEach(cell => {\n let rowcolumn = this.getRowColumn(cell)\n\n if (-1 == columns.indexOf(rowcolumn.column)) columns.push(rowcolumn.column)\n })\n\n var sum = columns.reduce((sum, column) => {\n return sum + this.widths[column]\n }, 0)\n\n var newval = Math.round((sum / columns.length) * 100) / 100\n var widths = this.widths.slice()\n columns.forEach(column => {\n widths[column] = newval\n })\n\n this.set('widths', widths)\n }\n\n distributeVertical(cells: Component[]) {}\n}\n\nComponent.register('data-list', DataList)\n"]}
@@ -1,4 +1,4 @@
1
- import { Component } from '@hatiolab/things-scene';
1
+ import { Component, ComponentNature } from '@hatiolab/things-scene';
2
2
  declare type Style = {
3
3
  [style: string]: any;
4
4
  };
@@ -9,26 +9,7 @@ declare const TableCell_base: typeof Component;
9
9
  * 3. 데이타를 받을 수 있음.
10
10
  */
11
11
  export default class TableCell extends TableCell_base {
12
- get nature(): {
13
- mutable: boolean;
14
- resizable: boolean;
15
- rotatable: boolean;
16
- properties: ({
17
- type: string;
18
- label: string;
19
- name: string;
20
- property: {
21
- merge: boolean;
22
- split: boolean;
23
- };
24
- } | {
25
- type: string;
26
- label: string;
27
- name: string;
28
- property: string;
29
- })[];
30
- help: string;
31
- };
12
+ get nature(): ComponentNature;
32
13
  set merged(merged: any);
33
14
  get merged(): any;
34
15
  set rowspan(rowspan: any);
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell.js","sourceRoot":"","sources":["../src/table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Container, Layout, RectPath } from '@hatiolab/things-scene'\n\nimport Table from './table'\n\ntype Style = { [style: string]: any }\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: true,\n split: true\n }\n },\n {\n type: 'string',\n label: 'data-key',\n name: 'dataKey',\n property: 'dataKey'\n },\n {\n type: 'number',\n label: 'data-index',\n name: 'dataIndex',\n property: 'dataIndex'\n }\n ],\n help: 'scene/component/table-cell'\n}\n\nconst EMPTY_BORDER = {}\n\nfunction isBottomMost(idx: number, rows: number, columns: number, components: Component[]) {\n return idx >= (rows - 1) * columns || (components[idx + columns] && components[idx + columns].hidden)\n}\n\nfunction isRightMost(idx: number, rows: number, columns: number, components: Component[]) {\n return (idx + 1) % columns == 0 || (components[idx + 1] && components[idx + 1].hidden)\n}\n\n/**\n * 1. 스타일을 상속 받아야 함. (cascade-style)\n * 2. 스타일을 동적처리할 수 있음. (로직처리)\n * 3. 데이타를 받을 수 있음.\n */\nexport default class TableCell extends RectPath(Component) {\n // export default class TableCell extends Container {\n\n // get layout() {\n // return Layout.get(this.get('layout') || 'card')\n // }\n\n get nature() {\n return NATURE\n }\n\n set merged(merged) {\n this.set('merged', !!merged)\n if (merged) this.set('text', '')\n }\n\n get merged() {\n return this.get('merged')\n }\n\n set rowspan(rowspan) {\n this.set('rowspan', rowspan)\n }\n\n get rowspan() {\n return this.get('rowspan')\n }\n\n set colspan(colspan) {\n this.set('colspan', colspan)\n }\n\n get colspan() {\n return this.get('colspan')\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: Style) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n Component.drawStroke(context, style)\n }\n }\n\n _draw(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.model\n\n var border = this.model.border || {}\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n this.drawFill(context)\n\n // Border 그리기\n var parent = this.parent as Table\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n var rows = parent.rows || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if (isRightMost(idx, rows, columns, parent.components))\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n if (isBottomMost(idx, rows, columns, parent.components))\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n}\n\nComponent.register('table-cell', TableCell)\n"]}
1
+ {"version":3,"file":"table-cell.js","sourceRoot":"","sources":["../src/table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, ComponentNature, RectPath } from '@hatiolab/things-scene'\n\nimport Table from './table'\n\ntype Style = { [style: string]: any }\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: true,\n split: true\n }\n },\n {\n type: 'string',\n label: 'data-key',\n name: 'dataKey',\n property: 'dataKey'\n },\n {\n type: 'number',\n label: 'data-index',\n name: 'dataIndex',\n property: 'dataIndex'\n }\n ],\n help: 'scene/component/table-cell'\n}\n\nconst EMPTY_BORDER = {}\n\nfunction isBottomMost(idx: number, rows: number, columns: number, components: Component[]) {\n return idx >= (rows - 1) * columns || (components[idx + columns] && components[idx + columns].hidden)\n}\n\nfunction isRightMost(idx: number, rows: number, columns: number, components: Component[]) {\n return (idx + 1) % columns == 0 || (components[idx + 1] && components[idx + 1].hidden)\n}\n\n/**\n * 1. 스타일을 상속 받아야 함. (cascade-style)\n * 2. 스타일을 동적처리할 수 있음. (로직처리)\n * 3. 데이타를 받을 수 있음.\n */\nexport default class TableCell extends RectPath(Component) {\n // export default class TableCell extends Container {\n\n // get layout() {\n // return Layout.get(this.get('layout') || 'card')\n // }\n\n get nature() {\n return NATURE\n }\n\n set merged(merged) {\n this.set('merged', !!merged)\n if (merged) this.set('text', '')\n }\n\n get merged() {\n return this.get('merged')\n }\n\n set rowspan(rowspan) {\n this.set('rowspan', rowspan)\n }\n\n get rowspan() {\n return this.get('rowspan')\n }\n\n set colspan(colspan) {\n this.set('colspan', colspan)\n }\n\n get colspan() {\n return this.get('colspan')\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: Style) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n Component.drawStroke(context, style)\n }\n }\n\n _draw(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.model\n\n var border = this.model.border || {}\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n this.drawFill(context)\n\n // Border 그리기\n var parent = this.parent as Table\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n var rows = parent.rows || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if (isRightMost(idx, rows, columns, parent.components))\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n if (isBottomMost(idx, rows, columns, parent.components))\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n}\n\nComponent.register('table-cell', TableCell)\n"]}
package/dist/table.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { WHERE } from './helper-functions';
2
1
  import { Component, ComponentNature, Container, Control, State, Style } from '@hatiolab/things-scene';
2
+ import { WHERE } from './helper-functions';
3
3
  import TableCell from './table-cell';
4
4
  export default class Table extends Container {
5
5
  created(): void;
package/dist/table.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
- import { CLEAR_STYLE, above, after, array, before, below, buildCopiedCell, buildNewCell, columnControlHandler, isBottomMost, isLeftMost, isRightMost, isTopMost, rowControlHandler, setCellBorder } from './helper-functions';
5
4
  import { Component, Container, Layout } from '@hatiolab/things-scene';
5
+ import { above, after, array, before, below, buildCopiedCell, buildNewCell, CLEAR_STYLE, columnControlHandler, isBottomMost, isLeftMost, isRightMost, isTopMost, rowControlHandler, setCellBorder } from './helper-functions';
6
6
  const NATURE = {
7
7
  mutable: false,
8
8
  resizable: true,