@nice2dev/ui-graphics 1.3.15 → 1.3.16

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 +9 -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,11 +1,4 @@
1
- 'use strict';
2
-
3
- /**
4
- * Utility module to work with sets.
5
- *
6
- * @module set
7
- */
8
-
9
- const create = () => new Set();
10
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const create = () => /* @__PURE__ */ new Set();
11
4
  exports.create = create;
@@ -1,78 +1,43 @@
1
- 'use strict';
2
-
3
- /* eslint-env browser */
4
-
5
- /**
6
- * Isomorphic variable storage.
7
- *
8
- * Uses LocalStorage in the browser and falls back to in-memory storage.
9
- *
10
- * @module storage
11
- */
12
-
13
- /* c8 ignore start */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
14
3
  class VarStoragePolyfill {
15
- constructor () {
16
- this.map = new Map();
4
+ constructor() {
5
+ this.map = /* @__PURE__ */ new Map();
17
6
  }
18
-
19
7
  /**
20
8
  * @param {string} key
21
9
  * @param {any} newValue
22
10
  */
23
- setItem (key, newValue) {
11
+ setItem(key, newValue) {
24
12
  this.map.set(key, newValue);
25
13
  }
26
-
27
14
  /**
28
15
  * @param {string} key
29
16
  */
30
- getItem (key) {
31
- return this.map.get(key)
17
+ getItem(key) {
18
+ return this.map.get(key);
32
19
  }
33
20
  }
34
- /* c8 ignore stop */
35
-
36
- /**
37
- * @type {any}
38
- */
39
21
  let _localStorage = new VarStoragePolyfill();
40
22
  let usePolyfill = true;
41
-
42
- /* c8 ignore start */
43
23
  try {
44
- // if the same-origin rule is violated, accessing localStorage might thrown an error
45
- if (typeof localStorage !== 'undefined' && localStorage) {
24
+ if (typeof localStorage !== "undefined" && localStorage) {
46
25
  _localStorage = localStorage;
47
26
  usePolyfill = false;
48
27
  }
49
- } catch (e) { }
50
- /* c8 ignore stop */
51
-
52
- /**
53
- * This is basically localStorage in browser, or a polyfill in nodejs
54
- */
55
- /* c8 ignore next */
28
+ } catch (e) {
29
+ }
56
30
  const varStorage = _localStorage;
57
-
58
- /**
59
- * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.
60
- *
61
- * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler
62
- * @function
63
- */
64
- /* c8 ignore next */
65
- const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler));
66
-
67
- /**
68
- * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.
69
- *
70
- * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler
71
- * @function
72
- */
73
- /* c8 ignore next */
74
- const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler));
75
-
31
+ const onChange = (eventHandler) => usePolyfill || addEventListener(
32
+ "storage",
33
+ /** @type {any} */
34
+ eventHandler
35
+ );
36
+ const offChange = (eventHandler) => usePolyfill || removeEventListener(
37
+ "storage",
38
+ /** @type {any} */
39
+ eventHandler
40
+ );
76
41
  exports.offChange = offChange;
77
42
  exports.onChange = onChange;
78
43
  exports.varStorage = varStorage;
@@ -1,88 +1,33 @@
1
- 'use strict';
2
-
3
- var array = require('./array.js');
4
-
5
- /**
6
- * Utility module to work with strings.
7
- *
8
- * @module string
9
- */
10
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const array = require("./array.js");
11
4
  const fromCharCode = String.fromCharCode;
12
-
13
- /**
14
- * @param {string} s
15
- * @return {string}
16
- */
17
- const toLowerCase = s => s.toLowerCase();
18
-
5
+ const toLowerCase = (s) => s.toLowerCase();
19
6
  const trimLeftRegex = /^\s*/g;
20
-
21
- /**
22
- * @param {string} s
23
- * @return {string}
24
- */
25
- const trimLeft = s => s.replace(trimLeftRegex, '');
26
-
7
+ const trimLeft = (s) => s.replace(trimLeftRegex, "");
27
8
  const fromCamelCaseRegex = /([A-Z])/g;
28
-
29
- /**
30
- * @param {string} s
31
- * @param {string} separator
32
- * @return {string}
33
- */
34
- const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`));
35
-
36
- /**
37
- * @param {string} str
38
- * @return {Uint8Array<ArrayBuffer>}
39
- */
40
- const _encodeUtf8Polyfill = str => {
9
+ const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, (match) => `${separator}${toLowerCase(match)}`));
10
+ const _encodeUtf8Polyfill = (str) => {
41
11
  const encodedString = unescape(encodeURIComponent(str));
42
12
  const len = encodedString.length;
43
13
  const buf = new Uint8Array(len);
44
14
  for (let i = 0; i < len; i++) {
45
- buf[i] = /** @type {number} */ (encodedString.codePointAt(i));
15
+ buf[i] = /** @type {number} */
16
+ encodedString.codePointAt(i);
46
17
  }
47
- return buf
18
+ return buf;
48
19
  };
49
-
50
- /* c8 ignore next */
51
- const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null);
52
-
53
- /**
54
- * @param {string} str
55
- * @return {Uint8Array<ArrayBuffer>}
56
- */
57
- const _encodeUtf8Native = str => utf8TextEncoder.encode(str);
58
-
59
- /**
60
- * @param {string} str
61
- * @return {Uint8Array}
62
- */
63
- /* c8 ignore next */
20
+ const utf8TextEncoder = (
21
+ /** @type {TextEncoder} */
22
+ typeof TextEncoder !== "undefined" ? new TextEncoder() : null
23
+ );
24
+ const _encodeUtf8Native = (str) => utf8TextEncoder.encode(str);
64
25
  const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill;
65
-
66
- /* c8 ignore next */
67
- exports.utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
68
-
69
- /* c8 ignore start */
26
+ exports.utf8TextDecoder = typeof TextDecoder === "undefined" ? null : new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
70
27
  if (exports.utf8TextDecoder && exports.utf8TextDecoder.decode(new Uint8Array()).length === 1) {
71
- // Safari doesn't handle BOM correctly.
72
- // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.
73
- // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and
74
- // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call
75
- // Another issue is that from then on no BOM chars are recognized anymore
76
- /* c8 ignore next */
77
28
  exports.utf8TextDecoder = null;
78
29
  }
79
-
80
- /**
81
- * @param {string} source
82
- * @param {number} n
83
- */
84
- const repeat = (source, n) => array.unfold(n, () => source).join('');
85
-
30
+ const repeat = (source, n) => array.unfold(n, () => source).join("");
86
31
  exports._encodeUtf8Native = _encodeUtf8Native;
87
32
  exports._encodeUtf8Polyfill = _encodeUtf8Polyfill;
88
33
  exports.encodeUtf8 = encodeUtf8;
@@ -1,14 +1,4 @@
1
- 'use strict';
2
-
3
- /**
4
- * Utility module to work with EcmaScript Symbols.
5
- *
6
- * @module symbol
7
- */
8
-
9
- /**
10
- * Return fresh symbol.
11
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
12
3
  const create = Symbol;
13
-
14
4
  exports.create = create;
@@ -1,17 +1,4 @@
1
- 'use strict';
2
-
3
- /**
4
- * Utility module to work with time.
5
- *
6
- * @module time
7
- */
8
-
9
-
10
- /**
11
- * Return current unix time.
12
- *
13
- * @return {number}
14
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
15
3
  const getUnixTime = Date.now;
16
-
17
4
  exports.getUnixTime = getUnixTime;
@@ -1,31 +1,6 @@
1
- 'use strict';
2
-
3
- const EqualityTraitSymbol = Symbol('Equality');
4
-
5
- /**
6
- * @typedef {{ [EqualityTraitSymbol]:(other:EqualityTrait)=>boolean }} EqualityTrait
7
- */
8
-
9
- /**
10
- *
11
- * Utility function to compare any two objects.
12
- *
13
- * Note that it is expected that the first parameter is more specific than the latter one.
14
- *
15
- * @example js
16
- * class X { [traits.EqualityTraitSymbol] (other) { return other === this } }
17
- * class X2 { [traits.EqualityTraitSymbol] (other) { return other === this }, x2 () { return 2 } }
18
- * // this is fine
19
- * traits.equals(new X2(), new X())
20
- * // this is not, because the left type is less specific than the right one
21
- * traits.equals(new X(), new X2())
22
- *
23
- * @template {EqualityTrait} T
24
- * @param {NoInfer<T>} a
25
- * @param {T} b
26
- * @return {boolean}
27
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const EqualityTraitSymbol = Symbol("Equality");
28
4
  const equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
29
-
30
5
  exports.EqualityTraitSymbol = EqualityTraitSymbol;
31
6
  exports.equals = equals;
@@ -1,19 +1,5 @@
1
- 'use strict';
2
-
3
- var object = require('./object.js');
4
-
5
- /**
6
- * Utility module to work with urls.
7
- *
8
- * @module url
9
- */
10
-
11
-
12
- /**
13
- * @param {Object<string,string>} params
14
- * @return {string}
15
- */
16
- const encodeQueryParams = params =>
17
- object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&');
18
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const object = require("./object.js");
4
+ const encodeQueryParams = (params) => object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join("&");
19
5
  exports.encodeQueryParams = encodeQueryParams;
@@ -1,7 +1,4 @@
1
- 'use strict';
2
-
3
- /* eslint-env browser */
4
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
3
  const getRandomValues = crypto.getRandomValues.bind(crypto);
6
-
7
4
  exports.getRandomValues = getRandomValues;
@@ -1,26 +1,12 @@
1
- 'use strict';
2
-
3
- var decoding = require('../lib0/decoding.js');
4
-
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const decoding = require("../lib0/decoding.js");
5
4
  const messagePermissionDenied = 0;
6
-
7
- /**
8
- * @callback PermissionDeniedHandler
9
- * @param {any} y
10
- * @param {string} reason
11
- */
12
-
13
- /**
14
- *
15
- * @param {decoding.Decoder} decoder
16
- * @param {Y.Doc} y
17
- * @param {PermissionDeniedHandler} permissionDeniedHandler
18
- */
19
5
  const readAuthMessage = (decoder, y, permissionDeniedHandler) => {
20
6
  switch (decoding.readVarUint(decoder)) {
21
- case messagePermissionDenied: permissionDeniedHandler(y, decoding.readVarString(decoder));
7
+ case messagePermissionDenied:
8
+ permissionDeniedHandler(y, decoding.readVarString(decoder));
22
9
  }
23
10
  };
24
-
25
11
  exports.messagePermissionDenied = messagePermissionDenied;
26
12
  exports.readAuthMessage = readAuthMessage;
@@ -1,72 +1,29 @@
1
- 'use strict';
2
-
3
- var encoding = require('../lib0/encoding.js');
4
- var decoding = require('../lib0/decoding.js');
5
- var time = require('../lib0/time.js');
6
- var math = require('../lib0/math.js');
7
- var observable = require('../lib0/observable.js');
8
- var _function = require('../lib0/function.js');
9
-
10
- /**
11
- * @module awareness-protocol
12
- */
13
-
14
-
15
- const outdatedTimeout = 30000;
16
-
17
- /**
18
- * @typedef {Object} MetaClientState
19
- * @property {number} MetaClientState.clock
20
- * @property {number} MetaClientState.lastUpdated unix timestamp
21
- */
22
-
23
- /**
24
- * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information
25
- * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of
26
- * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.
27
- *
28
- * Each client is identified by a unique client id (something we borrow from `doc.clientID`). A client can override
29
- * its own state by propagating a message with an increasing timestamp (`clock`). If such a message is received, it is
30
- * applied if the known state of that client is older than the new state (`clock < newClock`). If a client thinks that
31
- * a remote client is offline, it may propagate a message with
32
- * `{ clock: currentClientClock, state: null, client: remoteClient }`. If such a
33
- * message is received, and the known clock of that client equals the received clock, it will override the state with `null`.
34
- *
35
- * Before a client disconnects, it should propagate a `null` state with an updated clock.
36
- *
37
- * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.
38
- *
39
- * @extends {Observable<string>}
40
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const encoding = require("../lib0/encoding.js");
4
+ const decoding = require("../lib0/decoding.js");
5
+ const time = require("../lib0/time.js");
6
+ const math = require("../lib0/math.js");
7
+ const observable = require("../lib0/observable.js");
8
+ const _function = require("../lib0/function.js");
9
+ const outdatedTimeout = 3e4;
41
10
  class Awareness extends observable.Observable {
42
11
  /**
43
12
  * @param {Y.Doc} doc
44
13
  */
45
- constructor (doc) {
14
+ constructor(doc) {
46
15
  super();
47
16
  this.doc = doc;
48
- /**
49
- * @type {number}
50
- */
51
17
  this.clientID = doc.clientID;
52
- /**
53
- * Maps from client id to client state
54
- * @type {Map<number, Object<string, any>>}
55
- */
56
- this.states = new Map();
57
- /**
58
- * @type {Map<number, MetaClientState>}
59
- */
60
- this.meta = new Map();
61
- this._checkInterval = /** @type {any} */ (setInterval(() => {
18
+ this.states = /* @__PURE__ */ new Map();
19
+ this.meta = /* @__PURE__ */ new Map();
20
+ this._checkInterval = /** @type {any} */
21
+ setInterval(() => {
62
22
  const now = time.getUnixTime();
63
- if (this.getLocalState() !== null && (outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */ (this.meta.get(this.clientID)).lastUpdated)) {
64
- // renew local clock
23
+ if (this.getLocalState() !== null && outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */
24
+ this.meta.get(this.clientID).lastUpdated) {
65
25
  this.setLocalState(this.getLocalState());
66
26
  }
67
- /**
68
- * @type {Array<number>}
69
- */
70
27
  const remove = [];
71
28
  this.meta.forEach((meta, clientid) => {
72
29
  if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {
@@ -74,36 +31,33 @@ class Awareness extends observable.Observable {
74
31
  }
75
32
  });
76
33
  if (remove.length > 0) {
77
- removeAwarenessStates(this, remove, 'timeout');
34
+ removeAwarenessStates(this, remove, "timeout");
78
35
  }
79
- }, math.floor(outdatedTimeout / 10)));
80
- doc.on('destroy', () => {
36
+ }, math.floor(outdatedTimeout / 10));
37
+ doc.on("destroy", () => {
81
38
  this.destroy();
82
39
  });
83
40
  this.setLocalState({});
84
41
  }
85
-
86
- destroy () {
87
- this.emit('destroy', [this]);
42
+ destroy() {
43
+ this.emit("destroy", [this]);
88
44
  this.setLocalState(null);
89
45
  super.destroy();
90
46
  clearInterval(this._checkInterval);
91
47
  }
92
-
93
48
  /**
94
49
  * @return {Object<string,any>|null}
95
50
  */
96
- getLocalState () {
97
- return this.states.get(this.clientID) || null
51
+ getLocalState() {
52
+ return this.states.get(this.clientID) || null;
98
53
  }
99
-
100
54
  /**
101
55
  * @param {Object<string,any>|null} state
102
56
  */
103
- setLocalState (state) {
57
+ setLocalState(state) {
104
58
  const clientID = this.clientID;
105
59
  const currLocalMeta = this.meta.get(clientID);
106
- const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1;
60
+ const clock = currLocalMeta === void 0 ? 0 : currLocalMeta.clock + 1;
107
61
  const prevState = this.states.get(clientID);
108
62
  if (state === null) {
109
63
  this.states.delete(clientID);
@@ -131,16 +85,15 @@ class Awareness extends observable.Observable {
131
85
  }
132
86
  }
133
87
  if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
134
- this.emit('change', [{ added, updated: filteredUpdated, removed }, 'local']);
88
+ this.emit("change", [{ added, updated: filteredUpdated, removed }, "local"]);
135
89
  }
136
- this.emit('update', [{ added, updated, removed }, 'local']);
90
+ this.emit("update", [{ added, updated, removed }, "local"]);
137
91
  }
138
-
139
92
  /**
140
93
  * @param {string} field
141
94
  * @param {any} value
142
95
  */
143
- setLocalStateField (field, value) {
96
+ setLocalStateField(field, value) {
144
97
  const state = this.getLocalState();
145
98
  if (state !== null) {
146
99
  this.setLocalState({
@@ -149,23 +102,13 @@ class Awareness extends observable.Observable {
149
102
  });
150
103
  }
151
104
  }
152
-
153
105
  /**
154
106
  * @return {Map<number,Object<string,any>>}
155
107
  */
156
- getStates () {
157
- return this.states
108
+ getStates() {
109
+ return this.states;
158
110
  }
159
111
  }
160
-
161
- /**
162
- * Mark (remote) clients as inactive and remove them from the list of active peers.
163
- * This change will be propagated to remote clients.
164
- *
165
- * @param {Awareness} awareness
166
- * @param {Array<number>} clients
167
- * @param {any} origin
168
- */
169
112
  const removeAwarenessStates = (awareness, clients, origin) => {
170
113
  const removed = [];
171
114
  for (let i = 0; i < clients.length; i++) {
@@ -173,7 +116,10 @@ const removeAwarenessStates = (awareness, clients, origin) => {
173
116
  if (awareness.states.has(clientID)) {
174
117
  awareness.states.delete(clientID);
175
118
  if (clientID === awareness.clientID) {
176
- const curMeta = /** @type {MetaClientState} */ (awareness.meta.get(clientID));
119
+ const curMeta = (
120
+ /** @type {MetaClientState} */
121
+ awareness.meta.get(clientID)
122
+ );
177
123
  awareness.meta.set(clientID, {
178
124
  clock: curMeta.clock + 1,
179
125
  lastUpdated: time.getUnixTime()
@@ -183,16 +129,10 @@ const removeAwarenessStates = (awareness, clients, origin) => {
183
129
  }
184
130
  }
185
131
  if (removed.length > 0) {
186
- awareness.emit('change', [{ added: [], updated: [], removed }, origin]);
187
- awareness.emit('update', [{ added: [], updated: [], removed }, origin]);
132
+ awareness.emit("change", [{ added: [], updated: [], removed }, origin]);
133
+ awareness.emit("update", [{ added: [], updated: [], removed }, origin]);
188
134
  }
189
135
  };
190
-
191
- /**
192
- * @param {Awareness} awareness
193
- * @param {Array<number>} clients
194
- * @return {Uint8Array}
195
- */
196
136
  const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
197
137
  const len = clients.length;
198
138
  const encoder = encoding.createEncoder();
@@ -200,19 +140,16 @@ const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) =>
200
140
  for (let i = 0; i < len; i++) {
201
141
  const clientID = clients[i];
202
142
  const state = states.get(clientID) || null;
203
- const clock = /** @type {MetaClientState} */ (awareness.meta.get(clientID)).clock;
143
+ const clock = (
144
+ /** @type {MetaClientState} */
145
+ awareness.meta.get(clientID).clock
146
+ );
204
147
  encoding.writeVarUint(encoder, clientID);
205
148
  encoding.writeVarUint(encoder, clock);
206
149
  encoding.writeVarString(encoder, JSON.stringify(state));
207
150
  }
208
- return encoding.toUint8Array(encoder)
151
+ return encoding.toUint8Array(encoder);
209
152
  };
210
-
211
- /**
212
- * @param {Awareness} awareness
213
- * @param {Uint8Array} update
214
- * @param {any} origin This will be added to the emitted change event
215
- */
216
153
  const applyAwarenessUpdate = (awareness, update, origin) => {
217
154
  const decoder = decoding.createDecoder(update);
218
155
  const timestamp = time.getUnixTime();
@@ -227,13 +164,10 @@ const applyAwarenessUpdate = (awareness, update, origin) => {
227
164
  const state = JSON.parse(decoding.readVarString(decoder));
228
165
  const clientMeta = awareness.meta.get(clientID);
229
166
  const prevState = awareness.states.get(clientID);
230
- const currClock = clientMeta === undefined ? 0 : clientMeta.clock;
231
- if (currClock < clock || (currClock === clock && state === null && awareness.states.has(clientID))) {
167
+ const currClock = clientMeta === void 0 ? 0 : clientMeta.clock;
168
+ if (currClock < clock || currClock === clock && state === null && awareness.states.has(clientID)) {
232
169
  if (state === null) {
233
- // never let a remote client remove this local state
234
170
  if (clientID === awareness.clientID && awareness.getLocalState() != null) {
235
- // remote client removed the local state. Do not remote state. Broadcast a message indicating
236
- // that this client still exists by increasing the clock
237
171
  clock++;
238
172
  } else {
239
173
  awareness.states.delete(clientID);
@@ -245,9 +179,9 @@ const applyAwarenessUpdate = (awareness, update, origin) => {
245
179
  clock,
246
180
  lastUpdated: timestamp
247
181
  });
248
- if (clientMeta === undefined && state !== null) {
182
+ if (clientMeta === void 0 && state !== null) {
249
183
  added.push(clientID);
250
- } else if (clientMeta !== undefined && state === null) {
184
+ } else if (clientMeta !== void 0 && state === null) {
251
185
  removed.push(clientID);
252
186
  } else if (state !== null) {
253
187
  if (!_function.equalityDeep(state, prevState)) {
@@ -258,17 +192,20 @@ const applyAwarenessUpdate = (awareness, update, origin) => {
258
192
  }
259
193
  }
260
194
  if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
261
- awareness.emit('change', [{
262
- added, updated: filteredUpdated, removed
195
+ awareness.emit("change", [{
196
+ added,
197
+ updated: filteredUpdated,
198
+ removed
263
199
  }, origin]);
264
200
  }
265
201
  if (added.length > 0 || updated.length > 0 || removed.length > 0) {
266
- awareness.emit('update', [{
267
- added, updated, removed
202
+ awareness.emit("update", [{
203
+ added,
204
+ updated,
205
+ removed
268
206
  }, origin]);
269
207
  }
270
208
  };
271
-
272
209
  exports.Awareness = Awareness;
273
210
  exports.applyAwarenessUpdate = applyAwarenessUpdate;
274
211
  exports.encodeAwarenessUpdate = encodeAwarenessUpdate;