@design-core/core 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/.eslintrc.json +14 -7
  2. package/.github/workflows/DesignCoreQA.yml +3 -1
  3. package/README.md +11 -4
  4. package/TODO.md +19 -0
  5. package/core/core/core.js +49 -42
  6. package/core/designCore.js +61 -2
  7. package/core/dimensions/alignedDimension.js +142 -0
  8. package/core/dimensions/angularDimension.js +550 -0
  9. package/core/dimensions/baseCircularDimension.js +244 -0
  10. package/core/dimensions/baseDimension.js +558 -0
  11. package/core/dimensions/baseLinearDimension.js +371 -0
  12. package/core/dimensions/diametricDimension.js +82 -0
  13. package/core/dimensions/dimension.js +298 -0
  14. package/core/dimensions/linearDimension.js +29 -0
  15. package/core/dimensions/radialDimension.js +78 -0
  16. package/core/dimensions/rotatedDimension.js +167 -0
  17. package/core/entities/arc.js +314 -60
  18. package/core/entities/arctext.js +642 -0
  19. package/core/entities/basePolyline.js +553 -94
  20. package/core/entities/circle.js +181 -54
  21. package/core/entities/entity.js +154 -74
  22. package/core/entities/hatch.js +807 -0
  23. package/core/entities/insert.js +200 -39
  24. package/core/entities/line.js +196 -134
  25. package/core/entities/lwpolyline.js +21 -44
  26. package/core/entities/point.js +194 -29
  27. package/core/entities/polyline.js +54 -7
  28. package/core/entities/rectangle.js +43 -13
  29. package/core/entities/solid.js +43 -6
  30. package/core/entities/text.js +324 -181
  31. package/core/lib/boundingBox.js +73 -13
  32. package/core/lib/canvas.js +256 -65
  33. package/core/lib/clipboard.js +198 -0
  34. package/core/lib/colour.js +144 -0
  35. package/core/lib/colours.js +367 -301
  36. package/core/lib/commandLine.js +16 -28
  37. package/core/lib/commandManager.js +115 -58
  38. package/core/lib/constants.js +23 -0
  39. package/core/lib/dxf/dxf.js +249 -34
  40. package/core/lib/dxf/dxfFile.js +23 -38
  41. package/core/lib/dxf/dxfIterator.js +17 -5
  42. package/core/lib/dxf/dxfRead.js +23 -7
  43. package/core/lib/dxf/dxfWrite.js +39 -129
  44. package/core/lib/dxf/handleManager.js +97 -0
  45. package/core/lib/dxf/sections/blocks.js +16 -2
  46. package/core/lib/dxf/sections/entities.js +17 -3
  47. package/core/lib/dxf/sections/header.js +10 -1
  48. package/core/lib/dxf/sections/objects.js +36 -0
  49. package/core/lib/dxf/sections/section.js +43 -5
  50. package/core/lib/dxf/sections/tables.js +17 -3
  51. package/core/lib/entityManager.js +178 -0
  52. package/core/lib/fileio.js +14 -4
  53. package/core/lib/headers.js +229 -0
  54. package/core/lib/input.js +46 -0
  55. package/core/lib/inputManager.js +199 -194
  56. package/core/lib/intersect.js +341 -468
  57. package/core/lib/logging.js +25 -1
  58. package/core/lib/matrix.js +6 -8
  59. package/core/lib/mouse.js +24 -79
  60. package/core/lib/patterns.js +690 -0
  61. package/core/lib/promptOptions.js +133 -0
  62. package/core/lib/scene.js +71 -174
  63. package/core/lib/selectionManager.js +74 -48
  64. package/core/lib/selectionWindow.js +24 -10
  65. package/core/lib/settings.js +18 -11
  66. package/core/lib/snapping.js +129 -21
  67. package/core/lib/stateManager.js +288 -0
  68. package/core/lib/strings.js +57 -5
  69. package/core/lib/utils.js +95 -11
  70. package/core/objects/dictionary.js +43 -0
  71. package/core/objects/dictionaryManager.js +80 -0
  72. package/core/properties/dimType.js +117 -0
  73. package/core/properties/flags.js +66 -0
  74. package/core/properties/property.js +26 -0
  75. package/core/properties/propertyManager.js +65 -19
  76. package/core/tables/appId.js +31 -0
  77. package/core/tables/appIdManager.js +44 -0
  78. package/core/tables/block.js +323 -0
  79. package/core/tables/blockManager.js +48 -0
  80. package/core/tables/blockRecord.js +29 -0
  81. package/core/tables/blockRecordManager.js +37 -0
  82. package/core/tables/dimStyle.js +627 -0
  83. package/core/tables/dimStyleManager.js +187 -0
  84. package/core/tables/endblk.js +28 -0
  85. package/core/tables/layer.js +219 -0
  86. package/core/tables/layerManager.js +47 -0
  87. package/core/tables/ltype.js +85 -0
  88. package/core/tables/ltypeManager.js +65 -0
  89. package/core/tables/style.js +145 -0
  90. package/core/tables/styleManager.js +55 -0
  91. package/core/tables/styleManagerBase.js +110 -0
  92. package/core/tables/tableManagerBase.js +354 -0
  93. package/core/tables/ucs.js +28 -0
  94. package/core/tables/ucsManager.js +44 -0
  95. package/core/tables/view.js +28 -0
  96. package/core/tables/viewManager.js +44 -0
  97. package/core/tables/vport.js +70 -0
  98. package/core/tables/vportManager.js +65 -0
  99. package/core/tools/chamfer.js +343 -0
  100. package/core/tools/chamferFilletBase.js +162 -0
  101. package/core/tools/copy.js +68 -40
  102. package/core/tools/copybase.js +65 -0
  103. package/core/tools/copyclip.js +59 -0
  104. package/core/tools/cornerEntity.js +138 -0
  105. package/core/tools/cutclip.js +72 -0
  106. package/core/tools/distance.js +37 -9
  107. package/core/tools/erase.js +43 -13
  108. package/core/tools/explode.js +117 -0
  109. package/core/tools/extend.js +71 -32
  110. package/core/tools/fillet.js +336 -0
  111. package/core/tools/identify.js +33 -6
  112. package/core/tools/matchProp.js +106 -0
  113. package/core/tools/mirror.js +141 -0
  114. package/core/tools/move.js +65 -32
  115. package/core/tools/offset.js +321 -0
  116. package/core/tools/pan.js +54 -0
  117. package/core/tools/pasteclip.js +93 -0
  118. package/core/tools/purge.js +90 -0
  119. package/core/tools/rotate.js +105 -70
  120. package/core/tools/scale.js +166 -0
  121. package/core/tools/tool.js +14 -4
  122. package/core/tools/trim.js +71 -32
  123. package/core/tools/zoom.js +152 -0
  124. package/package.json +3 -305
  125. package/test/dimensions/alignedDimension.test.js +211 -0
  126. package/test/dimensions/angularDimension.test.js +243 -0
  127. package/test/dimensions/baseDimension.test.js +239 -0
  128. package/test/dimensions/diametricDimension.test.js +203 -0
  129. package/test/dimensions/dimension.test.js +102 -0
  130. package/test/dimensions/radialDimension.test.js +203 -0
  131. package/test/dimensions/rotatedDimension.test.js +224 -0
  132. package/test/entities/arc.test.js +463 -41
  133. package/test/entities/arctext.test.js +329 -0
  134. package/test/entities/basePolyline.test.js +459 -10
  135. package/test/entities/circle.test.js +312 -7
  136. package/test/entities/entity.test.js +28 -9
  137. package/test/entities/hatch.test.js +606 -0
  138. package/test/entities/insert.test.js +90 -0
  139. package/test/entities/line.test.js +182 -6
  140. package/test/entities/point.test.js +375 -37
  141. package/test/entities/solid.test.js +156 -0
  142. package/test/entities/text.test.js +533 -7
  143. package/test/integration/exportIntegration.reference.dxf +1706 -0
  144. package/test/integration/exportIntegration.test.js +186 -0
  145. package/test/integration/importExportIntegration.test.js +126 -0
  146. package/test/integration/intersectionIntegration.test.js +880 -0
  147. package/test/integration/userInputIntegration.reference.dxf +1410 -0
  148. package/test/integration/userInputIntegration.test.js +269 -0
  149. package/test/lib/boundingBox.test.js +26 -2
  150. package/test/lib/canvas.test.js +613 -5
  151. package/test/lib/clipboard.test.js +70 -0
  152. package/test/lib/colour.test.js +114 -0
  153. package/test/lib/colours.test.js +63 -18
  154. package/test/lib/commandLine.test.js +159 -22
  155. package/test/lib/commandManager.test.js +4 -4
  156. package/test/lib/constants.test.js +9 -0
  157. package/test/lib/dxf/dxfFile.test.js +6 -2
  158. package/test/lib/dxf/dxfIterator.test.js +1 -1
  159. package/test/lib/dxf/dxfWrite.test.js +173 -0
  160. package/test/lib/dxf/handleManager.test.js +137 -0
  161. package/test/lib/dxf/sections/blocks.test.js +5 -5
  162. package/test/lib/dxf/sections/entities.test.js +4 -4
  163. package/test/lib/dxf/sections/header.test.js +18 -4
  164. package/test/lib/dxf/sections/objects.test.js +132 -0
  165. package/test/lib/dxf/sections/section.test.js +29 -29
  166. package/test/lib/dxf/sections/tables.test.js +3 -3
  167. package/test/lib/entityManager.test.js +163 -0
  168. package/test/lib/headers.test.js +233 -0
  169. package/test/lib/inputManager.test.js +1144 -5
  170. package/test/lib/intersect.test.js +454 -331
  171. package/test/lib/logging.test.js +1 -1
  172. package/test/lib/matrix.test.js +1 -1
  173. package/test/lib/mouse.test.js +327 -4
  174. package/test/lib/patterns.test.js +105 -0
  175. package/test/lib/promptOptions.test.js +179 -0
  176. package/test/lib/scene.test.js +16 -52
  177. package/test/lib/selectionManager.test.js +17 -5
  178. package/test/lib/settings.test.js +111 -5
  179. package/test/lib/snapping.test.js +142 -4
  180. package/test/lib/stateManager.test.js +155 -0
  181. package/test/lib/utils.test.js +81 -1
  182. package/test/objects/dictionary.test.js +81 -0
  183. package/test/objects/dictionaryManager.test.js +34 -0
  184. package/test/properties/dimType.test.js +62 -0
  185. package/test/properties/flags.test.js +164 -0
  186. package/test/properties/property.test.js +13 -0
  187. package/test/properties/propertyManager.test.js +10 -11
  188. package/test/tables/appId.test.js +46 -0
  189. package/test/tables/appIdManager.test.js +72 -0
  190. package/test/tables/block.test.js +157 -0
  191. package/test/tables/blockManager.test.js +52 -0
  192. package/test/tables/blockRecord.test.js +39 -0
  193. package/test/tables/blockRecordManager.test.js +60 -0
  194. package/test/tables/dimstyle.test.js +72 -0
  195. package/test/tables/endblk.test.js +30 -0
  196. package/test/tables/layer.test.js +95 -0
  197. package/test/tables/layerManager.test.js +172 -0
  198. package/test/{styles → tables}/ltype.test.js +7 -7
  199. package/test/{styles → tables}/ltypeManager.test.js +2 -2
  200. package/test/tables/style.test.js +44 -0
  201. package/test/tables/stylemanagerbase.test.js +220 -0
  202. package/test/tables/tableManagerBase.test.js +194 -0
  203. package/test/tables/ucs.test.js +37 -0
  204. package/test/tables/ucsManager.test.js +48 -0
  205. package/test/tables/view.test.js +37 -0
  206. package/test/tables/viewManager.test.js +48 -0
  207. package/test/tables/vport.test.js +117 -0
  208. package/test/tables/vportManager.test.js +54 -0
  209. package/test/test-helpers/test-helpers.js +66 -0
  210. package/test/tools/chamfer.test.js +970 -0
  211. package/test/tools/chamferFilletBase.test.js +446 -0
  212. package/test/tools/copy.test.js +22 -14
  213. package/test/tools/copybase.test.js +93 -0
  214. package/test/tools/copyclip.test.js +92 -0
  215. package/test/tools/cornerEntity.test.js +201 -0
  216. package/test/tools/cutclip.test.js +94 -0
  217. package/test/tools/distance.test.js +140 -18
  218. package/test/tools/erase.test.js +12 -12
  219. package/test/tools/explode.test.js +45 -0
  220. package/test/tools/extend.test.js +326 -44
  221. package/test/tools/fillet.test.js +831 -0
  222. package/test/tools/identify.test.js +115 -16
  223. package/test/tools/matchProp.test.js +84 -0
  224. package/test/tools/mirror.test.js +475 -0
  225. package/test/tools/move.test.js +75 -19
  226. package/test/tools/offset.test.js +748 -0
  227. package/test/tools/pan.test.js +72 -0
  228. package/test/tools/pasteclip.test.js +100 -0
  229. package/test/tools/purge.test.js +89 -0
  230. package/test/tools/rotate.test.js +89 -23
  231. package/test/tools/scale.test.js +529 -0
  232. package/test/tools/trim.test.js +419 -84
  233. package/test/tools/zoom.test.js +504 -0
  234. package/core/entities/alignedDimension.js +0 -279
  235. package/core/entities/angularDimension.js +0 -194
  236. package/core/entities/baseDimension.js +0 -227
  237. package/core/entities/block.js +0 -247
  238. package/core/entities/diametricDimension.js +0 -133
  239. package/core/entities/dimension.js +0 -202
  240. package/core/entities/radialDimension.js +0 -126
  241. package/core/styles/dimStyle.js +0 -719
  242. package/core/styles/dimStyleManager.js +0 -47
  243. package/core/styles/layer.js +0 -133
  244. package/core/styles/layerManager.js +0 -40
  245. package/core/styles/ltype.js +0 -86
  246. package/core/styles/ltypeManager.js +0 -50
  247. package/core/styles/style.js +0 -158
  248. package/core/styles/styleManager.js +0 -43
  249. package/core/styles/styleManagerBase.js +0 -299
  250. package/test/entities/block.test.js +0 -22
  251. package/test/styles/dimstyle.test.js +0 -19
  252. package/test/styles/layerManager.test.js +0 -150
  253. package/test/styles/style.test.js +0 -33
  254. package/test/styles/stylemanagerbase.test.js +0 -219
@@ -1,219 +0,0 @@
1
- import {Core} from '../../core/core/core.js';
2
- import {StyleManagerBase} from '../../core/styles/styleManagerBase';
3
-
4
-
5
- // mock createStyle method
6
- StyleManagerBase.prototype.createStyle = function(style) {
7
- return {name: style.name};
8
- };
9
-
10
- // mock addStandardStyles method
11
- StyleManagerBase.prototype.addStandardStyles = function() {
12
- this.addStyle({'name': 'TEST'});
13
- };
14
-
15
- // initialise core
16
- new Core();
17
- const styleManager = new StyleManagerBase();
18
-
19
- test('Test StyleManagerBase.getStyles', () => {
20
- // add some style to the styles array property
21
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
22
-
23
- // test getStyles
24
- expect(styleManager.getStyles()).toHaveLength(2);
25
- });
26
-
27
- test('Test StyleManagerBase.styleCount', () => {
28
- // add some style to the styles array property
29
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
30
-
31
- // test styleCount
32
- expect(styleManager.styleCount()).toBe(2);
33
- });
34
-
35
- test('Test StyleManagerBase.newStyle', () => {
36
- // add some style to the styles array property
37
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
38
-
39
- // Add new style
40
- styleManager.newStyle();
41
-
42
- expect(styleManager.styleCount()).toBe(3);
43
- });
44
-
45
- test('Test StyleManagerBase.getUniqueName', () => {
46
- // add some style to the styles array property
47
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
48
-
49
- // check existing style name
50
- expect(styleManager.getUniqueName('styleOne')).toBe('styleOne_1');
51
- expect(styleManager.getUniqueName('sTyLeOnE')).toBe('sTyLeOnE_1');
52
-
53
- // check new style name
54
- expect(styleManager.getUniqueName('styleThree')).toBe('styleThree');
55
- });
56
-
57
- test('Test StyleManagerBase.addStyle', () => {
58
- // add some style to the styles array property
59
- styleManager.styles = [{name: 'styleOne'}];
60
-
61
- // Add new style
62
- styleManager.addStyle({name: 'styleTwo'});
63
- expect(styleManager.styleCount()).toBe(2);
64
-
65
- // Try and add existing style
66
- styleManager.addStyle({name: 'styleOne'});
67
- expect(styleManager.styleCount()).toBe(2);
68
-
69
- // OverWrite existing style
70
- styleManager.addStyle({name: 'styleone'}, true);
71
- expect(styleManager.styleCount()).toBe(2);
72
- expect(styleManager.styles[0].name).toBe('styleone');
73
- });
74
-
75
- test('Test StyleManagerBase.deleteStyle', () => {
76
- // add some style to the styles array property
77
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}], {name: 'Standard'};
78
- styleManager.indelibleStyles = ['Standard'];
79
-
80
- // Delete style
81
- styleManager.deleteStyle(1);
82
- expect(styleManager.styleCount(1)).toBe(1);
83
-
84
- // Try and delete an non-existant index
85
- styleManager.deleteStyle(10);
86
- expect(styleManager.styleCount()).toBe(1);
87
-
88
-
89
- // Check style name
90
- const styleIndex = styleManager.getStyleIndex('Standard');
91
-
92
- // Try and delete an indelible styles
93
- styleManager.deleteStyle(styleIndex);
94
- expect(styleManager.styleCount()).toBe(1);
95
- });
96
-
97
-
98
- test('Test StyleManagerBase.getCstyle', () => {
99
- expect(styleManager.getCstyle()).toBe('TEST');
100
- });
101
-
102
- test('Test StyleManagerBase.setCstyle', () => {
103
- // add some style to the styles array property
104
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
105
-
106
- styleManager.setCstyle('styleOne');
107
- expect(styleManager.getCstyle()).toBe('styleOne');
108
-
109
- expect(() => {
110
- styleManager.setCstyle('Non-Existent');
111
- }).toThrow();
112
- // styleManager.setCstyle('Non-Existent');
113
- expect(styleManager.getCstyle()).toBe('styleOne');
114
- });
115
-
116
- test('Test StyleManagerBase.styleExists', () => {
117
- // add some style to the styles array property
118
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
119
-
120
- expect(styleManager.styleExists('styleOne')).toBe(true);
121
- expect(styleManager.styleExists('styleTwo')).toBe(true);
122
- expect(styleManager.styleExists('Non-Existent')).toBe(false);
123
- });
124
-
125
- test('Test StyleManagerBase.checkStyles', () => {
126
- // clear all styles
127
- styleManager.styles = [];
128
-
129
- expect(styleManager.styleCount()).toBe(0);
130
-
131
- styleManager.checkStyles();
132
- expect(styleManager.styleCount()).toBe(1);
133
- });
134
-
135
- test('Test StyleManagerBase.addStandardStyles', () => {
136
- // clear all styles
137
- styleManager.styles = [];
138
-
139
- expect(styleManager.styleCount()).toBe(0);
140
-
141
- styleManager.addStandardStyles();
142
- expect(styleManager.styleCount()).toBe(1);
143
-
144
- // check standard styles can't be added multiple times
145
- styleManager.addStandardStyles();
146
- expect(styleManager.styleCount()).toBe(1);
147
- });
148
-
149
- test('Test StyleManagerBase.getStyleByName', () => {
150
- // add some style to the styles array property
151
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
152
-
153
- expect(styleManager.getStyleByName('styleOne').name).toBe('styleOne');
154
- expect(() => {
155
- styleManager.getStyleByName('Non-Existent');
156
- }).toThrow();
157
- // expect(styleManager.getStyleByName('Non-Existent')).toBeUndefined();
158
- });
159
-
160
- test('Test StyleManagerBase.getStyleByIndex', () => {
161
- // add some style to the styles array property
162
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
163
-
164
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOne');
165
- expect(styleManager.getStyleByIndex(20)).toBeUndefined();
166
- });
167
-
168
- test('Test StyleManagerBase.renameStyle', () => {
169
- // add some style to the styles array property
170
- styleManager.styles = [{name: 'styleOne'}, {name: 'styleTwo'}];
171
- styleManager.indelibleStyles = ['Standard'];
172
-
173
- // check index name
174
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOne');
175
-
176
- // try and rename to STANDARD
177
- styleManager.renameStyle(0, 'STANDARD');
178
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOne');
179
-
180
- // valid rename
181
- styleManager.renameStyle(0, 'styleOneRenamed');
182
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOneRenamed');
183
-
184
- // try and rename to current name - no change
185
- styleManager.renameStyle(0, 'styleOneRenamed');
186
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOneRenamed');
187
-
188
- // try and rename current style
189
- styleManager.setCstyle('styleTwo');
190
- styleManager.renameStyle(1, 'styleTwoRenamed');
191
- expect(styleManager.getStyleByIndex(1).name).toBe('styleTwoRenamed');
192
- expect(styleManager.getCstyle()).toBe('styleTwoRenamed');
193
- });
194
-
195
-
196
- test('Test StyleManagerBase.updateStyle', () => {
197
- // add some style to the styles array property
198
- styleManager.styles = [{name: 'styleOne', textHeight: 2}, {name: 'styleTwo', textHeight: 3}];
199
-
200
- // update non-existent style index
201
- expect(() => {
202
- styleManager.updateStyle(10, 'Non-Existent-property', 'value');
203
- }).toThrow();
204
-
205
-
206
- // update non-existent style property
207
- expect(() => {
208
- styleManager.updateStyle(1, 'Non-Existent-property', 'value');
209
- }).toThrow();
210
-
211
- // update style name
212
- styleManager.updateStyle(0, 'name', 'styleOneRenamed');
213
- expect(styleManager.getStyleByIndex(0).name).toBe('styleOneRenamed');
214
-
215
-
216
- // update style text height
217
- styleManager.updateStyle(0, 'textHeight', 20);
218
- expect(styleManager.getStyleByIndex(0).textHeight).toBe(20);
219
- });