@nice2dev/ui-graphics 1.3.15 → 1.3.17

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 (294) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/animation/AnimatedPerson.js +470 -143
  3. package/dist/cjs/animation/AnimationEditor.js +289 -101
  4. package/dist/cjs/animation/Audience.js +83 -61
  5. package/dist/cjs/animation/BodyRenderer.js +69 -28
  6. package/dist/cjs/animation/animationHelper.js +281 -288
  7. package/dist/cjs/animation/characterTypes.js +200 -203
  8. package/dist/cjs/animation/choreoDSL.js +205 -219
  9. package/dist/cjs/animation/choreography.js +4 -32
  10. package/dist/cjs/animation/karaokeIntegration.js +68 -77
  11. package/dist/cjs/animation/lottieExport.js +108 -114
  12. package/dist/cjs/animation/motionPath.js +225 -248
  13. package/dist/cjs/animation/physics.js +227 -254
  14. package/dist/cjs/animation/rig/RigPlayer.js +53 -56
  15. package/dist/cjs/animation/rig/RiggedBody.js +71 -26
  16. package/dist/cjs/animation/rig/choreoRigBridge.js +72 -77
  17. package/dist/cjs/animation/rig/ik.js +13 -18
  18. package/dist/cjs/animation/rig/poseOps.js +34 -41
  19. package/dist/cjs/animation/rig/presets.js +64 -72
  20. package/dist/cjs/animation/rig/rigMath.js +25 -32
  21. package/dist/cjs/animation/rig/rigTypes.js +59 -63
  22. package/dist/cjs/animation/shapes/arms.js +31 -13
  23. package/dist/cjs/animation/shapes/eyes.js +129 -47
  24. package/dist/cjs/animation/shapes/hair.js +72 -45
  25. package/dist/cjs/animation/shapes/heads.js +131 -57
  26. package/dist/cjs/animation/shapes/headwear.js +47 -38
  27. package/dist/cjs/animation/shapes/legs.js +31 -13
  28. package/dist/cjs/animation/shapes/mouths.js +120 -44
  29. package/dist/cjs/animation/shapes/noses.js +80 -25
  30. package/dist/cjs/animation/shapes/outfits.js +101 -39
  31. package/dist/cjs/animation/shapes/torsos.js +15 -11
  32. package/dist/cjs/animation/spineExport.js +103 -121
  33. package/dist/cjs/core/LocalUI.js +108 -43
  34. package/dist/cjs/core/NiceBrushEngine.js +758 -552
  35. package/dist/cjs/core/collaboration.js +249 -251
  36. package/dist/cjs/core/colorBlindness.js +100 -115
  37. package/dist/cjs/core/dragDrop.js +155 -158
  38. package/dist/cjs/core/editorAsk.js +51 -41
  39. package/dist/cjs/core/fixes.js +140 -171
  40. package/dist/cjs/core/gridGuides.js +166 -201
  41. package/dist/cjs/core/historyVisual.js +156 -135
  42. package/dist/cjs/core/i18n.js +13 -14
  43. package/dist/cjs/core/integrations.js +238 -249
  44. package/dist/cjs/core/minimap.js +149 -151
  45. package/dist/cjs/core/plugins.js +98 -113
  46. package/dist/cjs/core/rtl.js +71 -83
  47. package/dist/cjs/core/shortcuts.js +196 -225
  48. package/dist/cjs/core/theme.js +142 -149
  49. package/dist/cjs/core/yjsCollaboration.js +232 -293
  50. package/dist/cjs/design/design-tools.js +12 -22
  51. package/dist/cjs/font/NiceFontEditor.js +877 -316
  52. package/dist/cjs/font/fontFormatUtils.js +388 -448
  53. package/dist/cjs/game/GameAsset2dEditor.js +1201 -392
  54. package/dist/cjs/game/GameAsset2dEditor.module.css.js +146 -5
  55. package/dist/cjs/game/gameAssetTypes.js +7 -16
  56. package/dist/cjs/game/gameAssetUtils.js +390 -413
  57. package/dist/cjs/game/useGameAssetEditor.js +820 -763
  58. package/dist/cjs/index.js +81 -84
  59. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  60. package/dist/cjs/node_modules/lib0/array.js +8 -70
  61. package/dist/cjs/node_modules/lib0/binary.js +3 -20
  62. package/dist/cjs/node_modules/lib0/broadcastchannel.js +24 -86
  63. package/dist/cjs/node_modules/lib0/buffer.js +15 -82
  64. package/dist/cjs/node_modules/lib0/conditions.js +3 -16
  65. package/dist/cjs/node_modules/lib0/decoding.js +108 -287
  66. package/dist/cjs/node_modules/lib0/dom.js +14 -44
  67. package/dist/cjs/node_modules/lib0/encoding.js +68 -418
  68. package/dist/cjs/node_modules/lib0/environment.js +26 -92
  69. package/dist/cjs/node_modules/lib0/error.js +5 -29
  70. package/dist/cjs/node_modules/lib0/function.js +27 -66
  71. package/dist/cjs/node_modules/lib0/iterator.js +8 -33
  72. package/dist/cjs/node_modules/lib0/logging.common.js +12 -22
  73. package/dist/cjs/node_modules/lib0/logging.js +32 -71
  74. package/dist/cjs/node_modules/lib0/map.js +16 -86
  75. package/dist/cjs/node_modules/lib0/math.js +3 -32
  76. package/dist/cjs/node_modules/lib0/number.js +4 -15
  77. package/dist/cjs/node_modules/lib0/object.js +14 -88
  78. package/dist/cjs/node_modules/lib0/observable.js +38 -78
  79. package/dist/cjs/node_modules/lib0/pair.js +3 -20
  80. package/dist/cjs/node_modules/lib0/prng.js +8 -77
  81. package/dist/cjs/node_modules/lib0/promise.js +6 -30
  82. package/dist/cjs/node_modules/lib0/random.js +8 -23
  83. package/dist/cjs/node_modules/lib0/schema.js +313 -687
  84. package/dist/cjs/node_modules/lib0/set.js +3 -10
  85. package/dist/cjs/node_modules/lib0/storage.js +20 -55
  86. package/dist/cjs/node_modules/lib0/string.js +17 -72
  87. package/dist/cjs/node_modules/lib0/symbol.js +2 -12
  88. package/dist/cjs/node_modules/lib0/time.js +2 -15
  89. package/dist/cjs/node_modules/lib0/trait/equality.js +3 -28
  90. package/dist/cjs/node_modules/lib0/url.js +4 -18
  91. package/dist/cjs/node_modules/lib0/webcrypto.js +2 -5
  92. package/dist/cjs/node_modules/y-protocols/auth.js +5 -19
  93. package/dist/cjs/node_modules/y-protocols/awareness.js +53 -116
  94. package/dist/cjs/node_modules/y-protocols/sync.js +16 -103
  95. package/dist/cjs/node_modules/y-websocket/src/y-websocket.js +77 -219
  96. package/dist/cjs/node_modules/yjs/dist/yjs.js +2128 -4868
  97. package/dist/cjs/photo/FilterThumb.js +37 -25
  98. package/dist/cjs/photo/NiceAITools.js +679 -467
  99. package/dist/cjs/photo/PhotoEditor.js +34 -20
  100. package/dist/cjs/photo/PhotoEditor.module.css.js +296 -5
  101. package/dist/cjs/photo/PhotoEditorCanvas.js +250 -91
  102. package/dist/cjs/photo/PhotoEditorLeftPanel.js +1086 -224
  103. package/dist/cjs/photo/PhotoEditorToolbar.js +135 -19
  104. package/dist/cjs/photo/photoEditorActions.js +89 -72
  105. package/dist/cjs/photo/photoEditorTypes.js +29 -32
  106. package/dist/cjs/photo/photoFilters.js +959 -985
  107. package/dist/cjs/photo/photoOverlays.js +899 -945
  108. package/dist/cjs/photo/photoSelection.js +427 -499
  109. package/dist/cjs/photo/usePhotoEditor.js +739 -741
  110. package/dist/cjs/pixel/HSVPicker.js +191 -175
  111. package/dist/cjs/pixel/PixelEditor.js +159 -48
  112. package/dist/cjs/pixel/PixelEditor.module.css.js +209 -5
  113. package/dist/cjs/pixel/PixelEditorCanvas.js +29 -16
  114. package/dist/cjs/pixel/PixelEditorMenuBar.js +160 -162
  115. package/dist/cjs/pixel/PixelEditorRightPanel.js +377 -45
  116. package/dist/cjs/pixel/PixelEditorStatusBar.js +47 -20
  117. package/dist/cjs/pixel/PixelEditorTimeline.js +106 -23
  118. package/dist/cjs/pixel/PixelEditorToolbar.js +99 -21
  119. package/dist/cjs/pixel/SpriteGeneratorPanel.js +483 -303
  120. package/dist/cjs/pixel/animalGeneratorPresets.js +776 -601
  121. package/dist/cjs/pixel/asepriteFormat.js +511 -560
  122. package/dist/cjs/pixel/buildingGeneratorPresets.js +693 -520
  123. package/dist/cjs/pixel/characterGeneratorPresets.js +644 -544
  124. package/dist/cjs/pixel/pixel-pro.js +52 -63
  125. package/dist/cjs/pixel/pixelEditorExports.js +388 -428
  126. package/dist/cjs/pixel/pixelEditorTypes.js +91 -108
  127. package/dist/cjs/pixel/pixelEditorUtils.js +519 -561
  128. package/dist/cjs/pixel/spriteGeneratorCore.js +206 -257
  129. package/dist/cjs/pixel/usePixelEditor.js +1321 -1343
  130. package/dist/cjs/texture/Nice3DTexturePainter.js +707 -440
  131. package/dist/cjs/ui/NiceUIDesigner.js +954 -527
  132. package/dist/cjs/vector/NiceSvgToCode.js +586 -446
  133. package/dist/cjs/vector/VectorEditor.js +290 -117
  134. package/dist/cjs/vector/VectorEditor.module.css.js +86 -5
  135. package/dist/cjs/vector/VectorEditorMenuBar.js +333 -275
  136. package/dist/cjs/vector/VectorEditorRightPanel.js +1094 -371
  137. package/dist/cjs/vector/VectorEditorShapeRenderer.js +198 -60
  138. package/dist/cjs/vector/VectorEditorStatusBar.js +39 -13
  139. package/dist/cjs/vector/useVectorEditor.js +848 -889
  140. package/dist/cjs/vector/vectorAnimation.js +110 -137
  141. package/dist/cjs/vector/vectorBooleanOps.js +398 -485
  142. package/dist/cjs/vector/vectorEditorExport.js +201 -203
  143. package/dist/cjs/vector/vectorEditorImport.js +173 -189
  144. package/dist/cjs/vector/vectorEditorTypes.js +42 -49
  145. package/dist/cjs/vector/vectorGradients.js +151 -174
  146. package/dist/cjs/vector/vectorIconExport.js +52 -59
  147. package/dist/cjs/vector/vectorIconImport.js +169 -219
  148. package/dist/esm/animation/AnimatedPerson.js +470 -141
  149. package/dist/esm/animation/AnimationEditor.js +290 -100
  150. package/dist/esm/animation/Audience.js +83 -59
  151. package/dist/esm/animation/BodyRenderer.js +71 -25
  152. package/dist/esm/animation/animationHelper.js +284 -287
  153. package/dist/esm/animation/characterTypes.js +204 -202
  154. package/dist/esm/animation/choreoDSL.js +212 -218
  155. package/dist/esm/animation/choreography.js +8 -31
  156. package/dist/esm/animation/karaokeIntegration.js +74 -76
  157. package/dist/esm/animation/lottieExport.js +112 -113
  158. package/dist/esm/animation/motionPath.js +235 -247
  159. package/dist/esm/animation/physics.js +235 -253
  160. package/dist/esm/animation/rig/RigPlayer.js +53 -54
  161. package/dist/esm/animation/rig/RiggedBody.js +71 -24
  162. package/dist/esm/animation/rig/choreoRigBridge.js +74 -76
  163. package/dist/esm/animation/rig/ik.js +14 -17
  164. package/dist/esm/animation/rig/poseOps.js +37 -40
  165. package/dist/esm/animation/rig/presets.js +70 -71
  166. package/dist/esm/animation/rig/rigMath.js +28 -31
  167. package/dist/esm/animation/rig/rigTypes.js +62 -62
  168. package/dist/esm/animation/shapes/arms.js +32 -12
  169. package/dist/esm/animation/shapes/eyes.js +135 -46
  170. package/dist/esm/animation/shapes/hair.js +80 -44
  171. package/dist/esm/animation/shapes/heads.js +140 -56
  172. package/dist/esm/animation/shapes/headwear.js +54 -37
  173. package/dist/esm/animation/shapes/legs.js +32 -12
  174. package/dist/esm/animation/shapes/mouths.js +127 -43
  175. package/dist/esm/animation/shapes/noses.js +87 -24
  176. package/dist/esm/animation/shapes/outfits.js +106 -38
  177. package/dist/esm/animation/shapes/torsos.js +16 -10
  178. package/dist/esm/animation/spineExport.js +106 -120
  179. package/dist/esm/core/LocalUI.js +111 -42
  180. package/dist/esm/core/NiceBrushEngine.js +761 -551
  181. package/dist/esm/core/collaboration.js +255 -250
  182. package/dist/esm/core/colorBlindness.js +106 -114
  183. package/dist/esm/core/dragDrop.js +157 -157
  184. package/dist/esm/core/editorAsk.js +53 -40
  185. package/dist/esm/core/fixes.js +145 -170
  186. package/dist/esm/core/gridGuides.js +178 -200
  187. package/dist/esm/core/historyVisual.js +158 -134
  188. package/dist/esm/core/i18n.js +15 -13
  189. package/dist/esm/core/integrations.js +244 -248
  190. package/dist/esm/core/minimap.js +151 -150
  191. package/dist/esm/core/plugins.js +102 -112
  192. package/dist/esm/core/rtl.js +77 -82
  193. package/dist/esm/core/shortcuts.js +200 -224
  194. package/dist/esm/core/theme.js +150 -148
  195. package/dist/esm/core/yjsCollaboration.js +240 -292
  196. package/dist/esm/design/design-tools.js +13 -21
  197. package/dist/esm/font/NiceFontEditor.js +880 -315
  198. package/dist/esm/font/fontFormatUtils.js +394 -447
  199. package/dist/esm/game/GameAsset2dEditor.js +1202 -391
  200. package/dist/esm/game/GameAsset2dEditor.module.css.js +146 -3
  201. package/dist/esm/game/gameAssetTypes.js +8 -15
  202. package/dist/esm/game/gameAssetUtils.js +408 -412
  203. package/dist/esm/game/useGameAssetEditor.js +821 -762
  204. package/dist/esm/index.js +332 -69
  205. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  206. package/dist/esm/node_modules/lib0/array.js +15 -69
  207. package/dist/esm/node_modules/lib0/binary.js +14 -19
  208. package/dist/esm/node_modules/lib0/broadcastchannel.js +27 -85
  209. package/dist/esm/node_modules/lib0/buffer.js +20 -80
  210. package/dist/esm/node_modules/lib0/conditions.js +4 -15
  211. package/dist/esm/node_modules/lib0/decoding.js +128 -286
  212. package/dist/esm/node_modules/lib0/dom.js +20 -43
  213. package/dist/esm/node_modules/lib0/encoding.js +90 -415
  214. package/dist/esm/node_modules/lib0/environment.js +33 -91
  215. package/dist/esm/node_modules/lib0/error.js +8 -28
  216. package/dist/esm/node_modules/lib0/function.js +31 -65
  217. package/dist/esm/node_modules/lib0/iterator.js +11 -32
  218. package/dist/esm/node_modules/lib0/logging.common.js +22 -21
  219. package/dist/esm/node_modules/lib0/logging.js +44 -70
  220. package/dist/esm/node_modules/lib0/map.js +21 -85
  221. package/dist/esm/node_modules/lib0/math.js +9 -31
  222. package/dist/esm/node_modules/lib0/number.js +7 -14
  223. package/dist/esm/node_modules/lib0/object.js +26 -87
  224. package/dist/esm/node_modules/lib0/observable.js +40 -77
  225. package/dist/esm/node_modules/lib0/pair.js +5 -19
  226. package/dist/esm/node_modules/lib0/prng.js +15 -76
  227. package/dist/esm/node_modules/lib0/promise.js +7 -29
  228. package/dist/esm/node_modules/lib0/random.js +10 -22
  229. package/dist/esm/node_modules/lib0/schema.js +367 -686
  230. package/dist/esm/node_modules/lib0/set.js +4 -9
  231. package/dist/esm/node_modules/lib0/storage.js +23 -54
  232. package/dist/esm/node_modules/lib0/string.js +26 -71
  233. package/dist/esm/node_modules/lib0/symbol.js +3 -11
  234. package/dist/esm/node_modules/lib0/time.js +3 -14
  235. package/dist/esm/node_modules/lib0/trait/equality.js +5 -27
  236. package/dist/esm/node_modules/lib0/url.js +5 -17
  237. package/dist/esm/node_modules/lib0/webcrypto.js +3 -4
  238. package/dist/esm/node_modules/y-protocols/auth.js +7 -18
  239. package/dist/esm/node_modules/y-protocols/awareness.js +58 -115
  240. package/dist/esm/node_modules/y-protocols/sync.js +26 -102
  241. package/dist/esm/node_modules/y-websocket/src/y-websocket.js +82 -218
  242. package/dist/esm/node_modules/yjs/dist/yjs.js +2263 -4899
  243. package/dist/esm/photo/FilterThumb.js +37 -23
  244. package/dist/esm/photo/NiceAITools.js +685 -466
  245. package/dist/esm/photo/PhotoEditor.js +34 -18
  246. package/dist/esm/photo/PhotoEditor.module.css.js +296 -3
  247. package/dist/esm/photo/PhotoEditorCanvas.js +250 -89
  248. package/dist/esm/photo/PhotoEditorLeftPanel.js +1086 -222
  249. package/dist/esm/photo/PhotoEditorToolbar.js +135 -17
  250. package/dist/esm/photo/photoEditorActions.js +93 -71
  251. package/dist/esm/photo/photoEditorTypes.js +32 -31
  252. package/dist/esm/photo/photoFilters.js +967 -984
  253. package/dist/esm/photo/photoOverlays.js +913 -944
  254. package/dist/esm/photo/photoSelection.js +438 -498
  255. package/dist/esm/photo/usePhotoEditor.js +740 -740
  256. package/dist/esm/pixel/HSVPicker.js +192 -174
  257. package/dist/esm/pixel/PixelEditor.js +160 -47
  258. package/dist/esm/pixel/PixelEditor.module.css.js +209 -3
  259. package/dist/esm/pixel/PixelEditorCanvas.js +29 -14
  260. package/dist/esm/pixel/PixelEditorMenuBar.js +160 -160
  261. package/dist/esm/pixel/PixelEditorRightPanel.js +377 -43
  262. package/dist/esm/pixel/PixelEditorStatusBar.js +47 -18
  263. package/dist/esm/pixel/PixelEditorTimeline.js +106 -21
  264. package/dist/esm/pixel/PixelEditorToolbar.js +99 -19
  265. package/dist/esm/pixel/SpriteGeneratorPanel.js +483 -301
  266. package/dist/esm/pixel/animalGeneratorPresets.js +782 -600
  267. package/dist/esm/pixel/asepriteFormat.js +517 -559
  268. package/dist/esm/pixel/buildingGeneratorPresets.js +699 -519
  269. package/dist/esm/pixel/characterGeneratorPresets.js +650 -543
  270. package/dist/esm/pixel/pixel-pro.js +53 -62
  271. package/dist/esm/pixel/pixelEditorExports.js +397 -427
  272. package/dist/esm/pixel/pixelEditorTypes.js +103 -107
  273. package/dist/esm/pixel/pixelEditorUtils.js +551 -560
  274. package/dist/esm/pixel/spriteGeneratorCore.js +223 -256
  275. package/dist/esm/pixel/usePixelEditor.js +1322 -1342
  276. package/dist/esm/texture/Nice3DTexturePainter.js +709 -439
  277. package/dist/esm/ui/NiceUIDesigner.js +957 -526
  278. package/dist/esm/vector/NiceSvgToCode.js +589 -445
  279. package/dist/esm/vector/VectorEditor.js +291 -116
  280. package/dist/esm/vector/VectorEditor.module.css.js +86 -3
  281. package/dist/esm/vector/VectorEditorMenuBar.js +333 -273
  282. package/dist/esm/vector/VectorEditorRightPanel.js +1094 -369
  283. package/dist/esm/vector/VectorEditorShapeRenderer.js +199 -59
  284. package/dist/esm/vector/VectorEditorStatusBar.js +39 -11
  285. package/dist/esm/vector/useVectorEditor.js +849 -888
  286. package/dist/esm/vector/vectorAnimation.js +115 -136
  287. package/dist/esm/vector/vectorBooleanOps.js +401 -484
  288. package/dist/esm/vector/vectorEditorExport.js +207 -202
  289. package/dist/esm/vector/vectorEditorImport.js +174 -188
  290. package/dist/esm/vector/vectorEditorTypes.js +50 -48
  291. package/dist/esm/vector/vectorGradients.js +158 -173
  292. package/dist/esm/vector/vectorIconExport.js +53 -58
  293. package/dist/esm/vector/vectorIconImport.js +171 -218
  294. package/package.json +9 -15
@@ -1,105 +1,35 @@
1
- 'use strict';
2
-
3
- /**
4
- * Utility module to work with key-value stores.
5
- *
6
- * @module map
7
- */
8
-
9
- /**
10
- * @template K
11
- * @template V
12
- * @typedef {Map<K,V>} GlobalMap
13
- */
14
-
15
- /**
16
- * Creates a new Map instance.
17
- *
18
- * @function
19
- * @return {Map<any, any>}
20
- *
21
- * @function
22
- */
23
- const create = () => new Map();
24
-
25
- /**
26
- * Copy a Map object into a fresh Map object.
27
- *
28
- * @function
29
- * @template K,V
30
- * @param {Map<K,V>} m
31
- * @return {Map<K,V>}
32
- */
33
- const copy = m => {
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const create = () => /* @__PURE__ */ new Map();
4
+ const copy = (m) => {
34
5
  const r = create();
35
- m.forEach((v, k) => { r.set(k, v); });
36
- return r
6
+ m.forEach((v, k) => {
7
+ r.set(k, v);
8
+ });
9
+ return r;
37
10
  };
38
-
39
- /**
40
- * Get map property. Create T if property is undefined and set T on map.
41
- *
42
- * ```js
43
- * const listeners = map.setIfUndefined(events, 'eventName', set.create)
44
- * listeners.add(listener)
45
- * ```
46
- *
47
- * @function
48
- * @template {Map<any, any>} MAP
49
- * @template {MAP extends Map<any,infer V> ? function():V : unknown} CF
50
- * @param {MAP} map
51
- * @param {MAP extends Map<infer K,any> ? K : unknown} key
52
- * @param {CF} createT
53
- * @return {ReturnType<CF>}
54
- */
55
- const setIfUndefined = (map, key, createT) => {
56
- let set = map.get(key);
57
- if (set === undefined) {
58
- map.set(key, set = createT());
11
+ const setIfUndefined = (map2, key, createT) => {
12
+ let set = map2.get(key);
13
+ if (set === void 0) {
14
+ map2.set(key, set = createT());
59
15
  }
60
- return set
16
+ return set;
61
17
  };
62
-
63
- /**
64
- * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.
65
- *
66
- * @function
67
- * @template K
68
- * @template V
69
- * @template R
70
- * @param {Map<K,V>} m
71
- * @param {function(V,K):R} f
72
- * @return {Array<R>}
73
- */
74
18
  const map = (m, f) => {
75
19
  const res = [];
76
20
  for (const [key, value] of m) {
77
21
  res.push(f(value, key));
78
22
  }
79
- return res
23
+ return res;
80
24
  };
81
-
82
- /**
83
- * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.
84
- *
85
- * @todo should rename to some - similarly to Array.some
86
- *
87
- * @function
88
- * @template K
89
- * @template V
90
- * @param {Map<K,V>} m
91
- * @param {function(V,K):boolean} f
92
- * @return {boolean}
93
- */
94
25
  const any = (m, f) => {
95
26
  for (const [key, value] of m) {
96
27
  if (f(value, key)) {
97
- return true
28
+ return true;
98
29
  }
99
30
  }
100
- return false
31
+ return false;
101
32
  };
102
-
103
33
  exports.any = any;
104
34
  exports.copy = copy;
105
35
  exports.create = create;
@@ -1,40 +1,11 @@
1
- 'use strict';
2
-
3
- /**
4
- * Common Math expressions.
5
- *
6
- * @module math
7
- */
8
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
3
  const floor = Math.floor;
10
4
  const abs = Math.abs;
11
-
12
- /**
13
- * @function
14
- * @param {number} a
15
- * @param {number} b
16
- * @return {number} The smaller element of a and b
17
- */
18
5
  const min = (a, b) => a < b ? a : b;
19
-
20
- /**
21
- * @function
22
- * @param {number} a
23
- * @param {number} b
24
- * @return {number} The bigger element of a and b
25
- */
26
6
  const max = (a, b) => a > b ? a : b;
27
-
28
7
  const pow = Math.pow;
29
-
30
- /**
31
- * Check whether n is negative, while considering the -0 edge case. While `-0 < 0` is false, this
32
- * function returns true for -0,-1,,.. and returns false for 0,1,2,...
33
- * @param {number} n
34
- * @return {boolean} Wether n is negative. This function also distinguishes between -0 and +0
35
- */
36
- const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0;
37
-
8
+ const isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
38
9
  exports.abs = abs;
39
10
  exports.floor = floor;
40
11
  exports.isNegativeZero = isNegativeZero;
@@ -1,20 +1,9 @@
1
- 'use strict';
2
-
3
- var math = require('./math.js');
4
-
5
- /**
6
- * Utility helpers for working with numbers.
7
- *
8
- * @module number
9
- */
10
-
11
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const math = require("./math.js");
12
4
  const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
13
5
  const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
14
-
15
- /* c8 ignore next */
16
- const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num);
17
-
6
+ const isInteger = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && math.floor(num) === num);
18
7
  exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
19
8
  exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
20
9
  exports.isInteger = isInteger;
@@ -1,122 +1,48 @@
1
- 'use strict';
2
-
3
- var equality = require('./trait/equality.js');
4
-
5
- /**
6
- * @param {any} o
7
- * @return {o is { [k:string]:any }}
8
- */
9
- const isObject = o => typeof o === 'object';
10
-
11
- /**
12
- * Object.assign
13
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const equality = require("./trait/equality.js");
4
+ const isObject = (o) => typeof o === "object";
14
5
  const assign = Object.assign;
15
-
16
- /**
17
- * @param {Object<string,any>} obj
18
- */
19
6
  const keys = Object.keys;
20
-
21
- /**
22
- * @template V
23
- * @param {{[k:string]:V}} obj
24
- * @param {function(V,string):any} f
25
- */
26
7
  const forEach = (obj, f) => {
27
8
  for (const key in obj) {
28
9
  f(obj[key], key);
29
10
  }
30
11
  };
31
-
32
- /**
33
- * @todo implement mapToArray & map
34
- *
35
- * @template R
36
- * @param {Object<string,any>} obj
37
- * @param {function(any,string):R} f
38
- * @return {Array<R>}
39
- */
40
12
  const map = (obj, f) => {
41
13
  const results = [];
42
14
  for (const key in obj) {
43
15
  results.push(f(obj[key], key));
44
16
  }
45
- return results
17
+ return results;
46
18
  };
47
-
48
- /**
49
- * @param {Object<string,any>} obj
50
- * @return {number}
51
- */
52
- const size = obj => keys(obj).length;
53
-
54
- /**
55
- * @param {Object|null|undefined} obj
56
- */
57
- const isEmpty = obj => {
58
- // eslint-disable-next-line no-unreachable-loop
19
+ const size = (obj) => keys(obj).length;
20
+ const isEmpty = (obj) => {
59
21
  for (const _k in obj) {
60
- return false
22
+ return false;
61
23
  }
62
- return true
24
+ return true;
63
25
  };
64
-
65
- /**
66
- * @template {{ [key:string|number|symbol]: any }} T
67
- * @param {T} obj
68
- * @param {(v:T[keyof T],k:keyof T)=>boolean} f
69
- * @return {boolean}
70
- */
71
26
  const every = (obj, f) => {
72
27
  for (const key in obj) {
73
28
  if (!f(obj[key], key)) {
74
- return false
29
+ return false;
75
30
  }
76
31
  }
77
- return true
32
+ return true;
78
33
  };
79
-
80
- /**
81
- * Calls `Object.prototype.hasOwnProperty`.
82
- *
83
- * @param {any} obj
84
- * @param {string|number|symbol} key
85
- * @return {boolean}
86
- */
87
34
  const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
88
-
89
- /**
90
- * @param {Object<string,any>} a
91
- * @param {Object<string,any>} b
92
- * @return {boolean}
93
- */
94
- const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && equality.equals(b[key], val)));
95
-
96
- /**
97
- * Make an object immutable. This hurts performance and is usually not needed if you perform good
98
- * coding practices.
99
- */
35
+ const equalFlat = (a, b) => a === b || size(a) === size(b) && every(a, (val, key) => (val !== void 0 || hasProperty(b, key)) && equality.equals(b[key], val));
100
36
  const freeze = Object.freeze;
101
-
102
- /**
103
- * Make an object and all its children immutable.
104
- * This *really* hurts performance and is usually not needed if you perform good coding practices.
105
- *
106
- * @template {any} T
107
- * @param {T} o
108
- * @return {Readonly<T>}
109
- */
110
37
  const deepFreeze = (o) => {
111
38
  for (const key in o) {
112
39
  const c = o[key];
113
- if (typeof c === 'object' || typeof c === 'function') {
40
+ if (typeof c === "object" || typeof c === "function") {
114
41
  deepFreeze(o[key]);
115
42
  }
116
43
  }
117
- return freeze(o)
44
+ return freeze(o);
118
45
  };
119
-
120
46
  exports.assign = assign;
121
47
  exports.deepFreeze = deepFreeze;
122
48
  exports.equalFlat = equalFlat;
@@ -1,75 +1,60 @@
1
- 'use strict';
2
-
3
- var map = require('./map.js');
4
- var set = require('./set.js');
5
- var array = require('./array.js');
6
-
7
- /**
8
- * Observable class prototype.
9
- *
10
- * @module observable
11
- */
12
-
13
-
14
- /**
15
- * Handles named events.
16
- * @experimental
17
- *
18
- * This is basically a (better typed) duplicate of Observable, which will replace Observable in the
19
- * next release.
20
- *
21
- * @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS
22
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const map = require("./map.js");
4
+ const set = require("./set.js");
5
+ const array = require("./array.js");
23
6
  class ObservableV2 {
24
- constructor () {
25
- /**
26
- * Some desc.
27
- * @type {Map<string, Set<any>>}
28
- */
7
+ constructor() {
29
8
  this._observers = map.create();
30
9
  }
31
-
32
10
  /**
33
11
  * @template {keyof EVENTS & string} NAME
34
12
  * @param {NAME} name
35
13
  * @param {EVENTS[NAME]} f
36
14
  */
37
- on (name, f) {
38
- map.setIfUndefined(this._observers, /** @type {string} */ (name), set.create).add(f);
39
- return f
15
+ on(name, f) {
16
+ map.setIfUndefined(
17
+ this._observers,
18
+ /** @type {string} */
19
+ name,
20
+ set.create
21
+ ).add(f);
22
+ return f;
40
23
  }
41
-
42
24
  /**
43
25
  * @template {keyof EVENTS & string} NAME
44
26
  * @param {NAME} name
45
27
  * @param {EVENTS[NAME]} f
46
28
  */
47
- once (name, f) {
48
- /**
49
- * @param {...any} args
50
- */
29
+ once(name, f) {
51
30
  const _f = (...args) => {
52
- this.off(name, /** @type {any} */ (_f));
31
+ this.off(
32
+ name,
33
+ /** @type {any} */
34
+ _f
35
+ );
53
36
  f(...args);
54
37
  };
55
- this.on(name, /** @type {any} */ (_f));
38
+ this.on(
39
+ name,
40
+ /** @type {any} */
41
+ _f
42
+ );
56
43
  }
57
-
58
44
  /**
59
45
  * @template {keyof EVENTS & string} NAME
60
46
  * @param {NAME} name
61
47
  * @param {EVENTS[NAME]} f
62
48
  */
63
- off (name, f) {
49
+ off(name, f) {
64
50
  const observers = this._observers.get(name);
65
- if (observers !== undefined) {
51
+ if (observers !== void 0) {
66
52
  observers.delete(f);
67
53
  if (observers.size === 0) {
68
54
  this._observers.delete(name);
69
55
  }
70
56
  }
71
57
  }
72
-
73
58
  /**
74
59
  * Emit a named event. All registered event listeners that listen to the
75
60
  * specified name will receive the event.
@@ -80,69 +65,48 @@ class ObservableV2 {
80
65
  * @param {NAME} name The event name.
81
66
  * @param {Parameters<EVENTS[NAME]>} args The arguments that are applied to the event listener.
82
67
  */
83
- emit (name, args) {
84
- // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.
85
- return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))
68
+ emit(name, args) {
69
+ return array.from((this._observers.get(name) || map.create()).values()).forEach((f) => f(...args));
86
70
  }
87
-
88
- destroy () {
71
+ destroy() {
89
72
  this._observers = map.create();
90
73
  }
91
74
  }
92
-
93
- /* c8 ignore start */
94
- /**
95
- * Handles named events.
96
- *
97
- * @deprecated
98
- * @template N
99
- */
100
75
  class Observable {
101
- constructor () {
102
- /**
103
- * Some desc.
104
- * @type {Map<N, any>}
105
- */
76
+ constructor() {
106
77
  this._observers = map.create();
107
78
  }
108
-
109
79
  /**
110
80
  * @param {N} name
111
81
  * @param {function} f
112
82
  */
113
- on (name, f) {
83
+ on(name, f) {
114
84
  map.setIfUndefined(this._observers, name, set.create).add(f);
115
85
  }
116
-
117
86
  /**
118
87
  * @param {N} name
119
88
  * @param {function} f
120
89
  */
121
- once (name, f) {
122
- /**
123
- * @param {...any} args
124
- */
90
+ once(name, f) {
125
91
  const _f = (...args) => {
126
92
  this.off(name, _f);
127
93
  f(...args);
128
94
  };
129
95
  this.on(name, _f);
130
96
  }
131
-
132
97
  /**
133
98
  * @param {N} name
134
99
  * @param {function} f
135
100
  */
136
- off (name, f) {
101
+ off(name, f) {
137
102
  const observers = this._observers.get(name);
138
- if (observers !== undefined) {
103
+ if (observers !== void 0) {
139
104
  observers.delete(f);
140
105
  if (observers.size === 0) {
141
106
  this._observers.delete(name);
142
107
  }
143
108
  }
144
109
  }
145
-
146
110
  /**
147
111
  * Emit a named event. All registered event listeners that listen to the
148
112
  * specified name will receive the event.
@@ -152,16 +116,12 @@ class Observable {
152
116
  * @param {N} name The event name.
153
117
  * @param {Array<any>} args The arguments that are applied to the event listener.
154
118
  */
155
- emit (name, args) {
156
- // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.
157
- return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))
119
+ emit(name, args) {
120
+ return array.from((this._observers.get(name) || map.create()).values()).forEach((f) => f(...args));
158
121
  }
159
-
160
- destroy () {
122
+ destroy() {
161
123
  this._observers = map.create();
162
124
  }
163
125
  }
164
- /* c8 ignore end */
165
-
166
126
  exports.Observable = Observable;
167
127
  exports.ObservableV2 = ObservableV2;
@@ -1,32 +1,15 @@
1
- 'use strict';
2
-
3
- /**
4
- * Working with value pairs.
5
- *
6
- * @module pair
7
- */
8
-
9
- /**
10
- * @template L,R
11
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
12
3
  class Pair {
13
4
  /**
14
5
  * @param {L} left
15
6
  * @param {R} right
16
7
  */
17
- constructor (left, right) {
8
+ constructor(left, right) {
18
9
  this.left = left;
19
10
  this.right = right;
20
11
  }
21
12
  }
22
-
23
- /**
24
- * @template L,R
25
- * @param {L} left
26
- * @param {R} right
27
- * @return {Pair<L,R>}
28
- */
29
13
  const create = (left, right) => new Pair(left, right);
30
-
31
14
  exports.Pair = Pair;
32
15
  exports.create = create;
@@ -1,90 +1,21 @@
1
- 'use strict';
2
-
3
- var string = require('./string.js');
4
- var math = require('./math.js');
5
-
6
- /**
7
- * Fast Pseudo Random Number Generators.
8
- *
9
- * Given a seed a PRNG generates a sequence of numbers that cannot be reasonably predicted.
10
- * Two PRNGs must generate the same random sequence of numbers if given the same seed.
11
- *
12
- * @module prng
13
- */
14
-
15
-
16
- /**
17
- * Generates a single random bool.
18
- *
19
- * @param {PRNG} gen A random number generator.
20
- * @return {Boolean} A random boolean
21
- */
22
- const bool = gen => (gen.next() >= 0.5);
23
-
24
- /**
25
- * Generates a random integer with 53 bit resolution.
26
- *
27
- * @param {PRNG} gen A random number generator.
28
- * @param {Number} min The lower bound of the allowed return values (inclusive).
29
- * @param {Number} max The upper bound of the allowed return values (inclusive).
30
- * @return {Number} A random integer on [min, max]
31
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const string = require("./string.js");
4
+ const math = require("./math.js");
5
+ const bool = (gen) => gen.next() >= 0.5;
32
6
  const int53 = (gen, min, max) => math.floor(gen.next() * (max + 1 - min) + min);
33
-
34
- /**
35
- * Generates a random integer with 32 bit resolution.
36
- *
37
- * @param {PRNG} gen A random number generator.
38
- * @param {Number} min The lower bound of the allowed return values (inclusive).
39
- * @param {Number} max The upper bound of the allowed return values (inclusive).
40
- * @return {Number} A random integer on [min, max]
41
- */
42
7
  const int32 = (gen, min, max) => math.floor(gen.next() * (max + 1 - min) + min);
43
-
44
- /**
45
- * @deprecated
46
- * Optimized version of prng.int32. It has the same precision as prng.int32, but should be preferred when
47
- * openaring on smaller ranges.
48
- *
49
- * @param {PRNG} gen A random number generator.
50
- * @param {Number} min The lower bound of the allowed return values (inclusive).
51
- * @param {Number} max The upper bound of the allowed return values (inclusive). The max inclusive number is `binary.BITS31-1`
52
- * @return {Number} A random integer on [min, max]
53
- */
54
8
  const int31 = (gen, min, max) => int32(gen, min, max);
55
-
56
- /**
57
- * @param {PRNG} gen
58
- * @return {string} A single letter (a-z)
59
- */
60
- const letter = gen => string.fromCharCode(int31(gen, 97, 122));
61
-
62
- /**
63
- * @param {PRNG} gen
64
- * @param {number} [minLen=0]
65
- * @param {number} [maxLen=20]
66
- * @return {string} A random word (0-20 characters) without spaces consisting of letters (a-z)
67
- */
9
+ const letter = (gen) => string.fromCharCode(int31(gen, 97, 122));
68
10
  const word = (gen, minLen = 0, maxLen = 20) => {
69
11
  const len = int31(gen, minLen, maxLen);
70
- let str = '';
12
+ let str = "";
71
13
  for (let i = 0; i < len; i++) {
72
14
  str += letter(gen);
73
15
  }
74
- return str
16
+ return str;
75
17
  };
76
-
77
- /**
78
- * Returns one element of a given array.
79
- *
80
- * @param {PRNG} gen A random number generator.
81
- * @param {Array<T>} array Non empty Array of possible values.
82
- * @return {T} One of the values of the supplied Array.
83
- * @template T
84
- */
85
18
  const oneOf = (gen, array) => array[int31(gen, 0, array.length - 1)];
86
- /* c8 ignore stop */
87
-
88
19
  exports.bool = bool;
89
20
  exports.int31 = int31;
90
21
  exports.int32 = int32;
@@ -1,32 +1,8 @@
1
- 'use strict';
2
-
3
- /**
4
- * Utility helpers to work with promises.
5
- *
6
- * @module promise
7
- */
8
-
9
-
10
- /**
11
- * @template T
12
- * @callback PromiseResolve
13
- * @param {T|PromiseLike<T>} [result]
14
- */
15
-
16
- /**
17
- * @template T
18
- * @param {function(PromiseResolve<T>,function(Error):void):any} f
19
- * @return {Promise<T>}
20
- */
21
- const create = f => /** @type {Promise<T>} */ (new Promise(f));
22
-
23
- /**
24
- * `Promise.all` wait for all promises in the array to resolve and return the result
25
- * @template {unknown[] | []} PS
26
- *
27
- * @param {PS} ps
28
- * @return {Promise<{ -readonly [P in keyof PS]: Awaited<PS[P]> }>}
29
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const create = (f) => (
4
+ /** @type {Promise<T>} */
5
+ new Promise(f)
6
+ );
30
7
  Promise.all.bind(Promise);
31
-
32
8
  exports.create = create;