@rws-framework/client 2.13.1 → 2.13.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 (288) hide show
  1. package/.bin/add-v.sh +9 -9
  2. package/.bin/emerge.sh +15 -15
  3. package/.emerge-fast.yaml +46 -46
  4. package/.emerge-typescript-template.yaml +23 -23
  5. package/.emerge-vis-output/fast-element/emerge-file_result_dependency_graph.graphml +693 -693
  6. package/.emerge-vis-output/fast-element/emerge-filesystem_graph.graphml +705 -705
  7. package/.emerge-vis-output/fast-element/emerge-statistics-metrics.txt +440 -440
  8. package/.emerge-vis-output/fast-element/html/emerge.html +500 -500
  9. package/.emerge-vis-output/fast-element/html/jsconfig.json +8 -8
  10. package/.emerge-vis-output/fast-element/html/resources/css/custom.css +211 -211
  11. package/.emerge-vis-output/fast-element/html/resources/js/emerge_common.js +44 -44
  12. package/.emerge-vis-output/fast-element/html/resources/js/emerge_data.js +13 -13
  13. package/.emerge-vis-output/fast-element/html/resources/js/emerge_git.js +1413 -1413
  14. package/.emerge-vis-output/fast-element/html/resources/js/emerge_graph.js +539 -539
  15. package/.emerge-vis-output/fast-element/html/resources/js/emerge_heatmap.js +219 -219
  16. package/.emerge-vis-output/fast-element/html/resources/js/emerge_hull.js +179 -179
  17. package/.emerge-vis-output/fast-element/html/resources/js/emerge_main.js +1002 -1002
  18. package/.emerge-vis-output/fast-element/html/resources/js/emerge_search.js +71 -71
  19. package/.emerge-vis-output/fast-element/html/resources/js/emerge_ui.js +199 -199
  20. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-grid.css +4123 -4123
  21. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-grid.min.css +6 -6
  22. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-grid.rtl.css +4122 -4122
  23. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-grid.rtl.min.css +6 -6
  24. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-reboot.css +487 -487
  25. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-reboot.min.css +6 -6
  26. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-reboot.rtl.css +484 -484
  27. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-reboot.rtl.min.css +6 -6
  28. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-utilities.css +4265 -4265
  29. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-utilities.min.css +6 -6
  30. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-utilities.rtl.css +4256 -4256
  31. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap-utilities.rtl.min.css +6 -6
  32. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap.css +10877 -10877
  33. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap.min.css +6 -6
  34. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap.rtl.css +10841 -10841
  35. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/css/bootstrap.rtl.min.css +6 -6
  36. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.bundle.js +7075 -7075
  37. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.bundle.min.js +6 -6
  38. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.esm.js +5202 -5202
  39. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.esm.min.js +6 -6
  40. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.js +5249 -5249
  41. package/.emerge-vis-output/fast-element/html/vendors/bootstrap/js/bootstrap.min.js +6 -6
  42. package/.emerge-vis-output/fast-element/html/vendors/d3/d3.v7.8.4.min.js +2 -2
  43. package/.emerge-vis-output/fast-element/html/vendors/d3/d3.v7.min.js +2 -2
  44. package/.emerge-vis-output/fast-element/html/vendors/dark-mode-switch/css/dark-mode.css +148 -148
  45. package/.emerge-vis-output/fast-element/html/vendors/daterangepicker/daterangepicker.min.js +7 -7
  46. package/.emerge-vis-output/fast-element/html/vendors/daterangepicker/moment.min.js +6 -6
  47. package/.emerge-vis-output/fast-element/html/vendors/hull/hull.js +373 -373
  48. package/.emerge-vis-output/fast-element/html/vendors/jquery/jquery-3.6.0.min.js +2 -2
  49. package/.emerge-vis-output/fast-element/html/vendors/popper/popper.min.js +6 -6
  50. package/.emerge-vis-output/fast-element/html/vendors/simpleheat/simpleheat.js +141 -141
  51. package/.emerge-vis-output/fast-foundation/emerge-file_result_dependency_graph.graphml +4043 -4043
  52. package/.emerge-vis-output/fast-foundation/emerge-filesystem_graph.graphml +4538 -4538
  53. package/.emerge-vis-output/fast-foundation/emerge-statistics-metrics.txt +2510 -2510
  54. package/.emerge-vis-output/fast-foundation/html/emerge.html +500 -500
  55. package/.emerge-vis-output/fast-foundation/html/jsconfig.json +8 -8
  56. package/.emerge-vis-output/fast-foundation/html/resources/css/custom.css +211 -211
  57. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_common.js +44 -44
  58. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_data.js +13 -13
  59. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_git.js +1413 -1413
  60. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_graph.js +539 -539
  61. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_heatmap.js +219 -219
  62. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_hull.js +179 -179
  63. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_main.js +1002 -1002
  64. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_search.js +71 -71
  65. package/.emerge-vis-output/fast-foundation/html/resources/js/emerge_ui.js +199 -199
  66. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-grid.css +4123 -4123
  67. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-grid.min.css +6 -6
  68. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-grid.rtl.css +4122 -4122
  69. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-grid.rtl.min.css +6 -6
  70. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-reboot.css +487 -487
  71. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-reboot.min.css +6 -6
  72. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-reboot.rtl.css +484 -484
  73. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-reboot.rtl.min.css +6 -6
  74. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-utilities.css +4265 -4265
  75. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-utilities.min.css +6 -6
  76. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-utilities.rtl.css +4256 -4256
  77. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap-utilities.rtl.min.css +6 -6
  78. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap.css +10877 -10877
  79. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap.min.css +6 -6
  80. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap.rtl.css +10841 -10841
  81. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/css/bootstrap.rtl.min.css +6 -6
  82. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.bundle.js +7075 -7075
  83. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.bundle.min.js +6 -6
  84. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.esm.js +5202 -5202
  85. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.esm.min.js +6 -6
  86. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.js +5249 -5249
  87. package/.emerge-vis-output/fast-foundation/html/vendors/bootstrap/js/bootstrap.min.js +6 -6
  88. package/.emerge-vis-output/fast-foundation/html/vendors/d3/d3.v7.8.4.min.js +2 -2
  89. package/.emerge-vis-output/fast-foundation/html/vendors/d3/d3.v7.min.js +2 -2
  90. package/.emerge-vis-output/fast-foundation/html/vendors/dark-mode-switch/css/dark-mode.css +148 -148
  91. package/.emerge-vis-output/fast-foundation/html/vendors/daterangepicker/daterangepicker.min.js +7 -7
  92. package/.emerge-vis-output/fast-foundation/html/vendors/daterangepicker/moment.min.js +6 -6
  93. package/.emerge-vis-output/fast-foundation/html/vendors/hull/hull.js +373 -373
  94. package/.emerge-vis-output/fast-foundation/html/vendors/jquery/jquery-3.6.0.min.js +2 -2
  95. package/.emerge-vis-output/fast-foundation/html/vendors/popper/popper.min.js +6 -6
  96. package/.emerge-vis-output/fast-foundation/html/vendors/simpleheat/simpleheat.js +141 -141
  97. package/.emerge-vis-output/rws-client/emerge-file_result_dependency_graph.graphml +1143 -1143
  98. package/.emerge-vis-output/rws-client/emerge-filesystem_graph.graphml +1003 -1003
  99. package/.emerge-vis-output/rws-client/emerge-statistics-metrics.txt +655 -655
  100. package/.emerge-vis-output/rws-client/html/emerge.html +500 -500
  101. package/.emerge-vis-output/rws-client/html/jsconfig.json +8 -8
  102. package/.emerge-vis-output/rws-client/html/resources/css/custom.css +211 -211
  103. package/.emerge-vis-output/rws-client/html/resources/js/emerge_common.js +44 -44
  104. package/.emerge-vis-output/rws-client/html/resources/js/emerge_data.js +13 -13
  105. package/.emerge-vis-output/rws-client/html/resources/js/emerge_git.js +1413 -1413
  106. package/.emerge-vis-output/rws-client/html/resources/js/emerge_graph.js +539 -539
  107. package/.emerge-vis-output/rws-client/html/resources/js/emerge_heatmap.js +219 -219
  108. package/.emerge-vis-output/rws-client/html/resources/js/emerge_hull.js +179 -179
  109. package/.emerge-vis-output/rws-client/html/resources/js/emerge_main.js +1002 -1002
  110. package/.emerge-vis-output/rws-client/html/resources/js/emerge_search.js +71 -71
  111. package/.emerge-vis-output/rws-client/html/resources/js/emerge_ui.js +199 -199
  112. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-grid.css +4123 -4123
  113. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-grid.min.css +6 -6
  114. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-grid.rtl.css +4122 -4122
  115. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-grid.rtl.min.css +6 -6
  116. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-reboot.css +487 -487
  117. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-reboot.min.css +6 -6
  118. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-reboot.rtl.css +484 -484
  119. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-reboot.rtl.min.css +6 -6
  120. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-utilities.css +4265 -4265
  121. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-utilities.min.css +6 -6
  122. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-utilities.rtl.css +4256 -4256
  123. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap-utilities.rtl.min.css +6 -6
  124. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap.css +10877 -10877
  125. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap.min.css +6 -6
  126. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap.rtl.css +10841 -10841
  127. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/css/bootstrap.rtl.min.css +6 -6
  128. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.bundle.js +7075 -7075
  129. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.bundle.min.js +6 -6
  130. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.esm.js +5202 -5202
  131. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.esm.min.js +6 -6
  132. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.js +5249 -5249
  133. package/.emerge-vis-output/rws-client/html/vendors/bootstrap/js/bootstrap.min.js +6 -6
  134. package/.emerge-vis-output/rws-client/html/vendors/d3/d3.v7.8.4.min.js +2 -2
  135. package/.emerge-vis-output/rws-client/html/vendors/d3/d3.v7.min.js +2 -2
  136. package/.emerge-vis-output/rws-client/html/vendors/dark-mode-switch/css/dark-mode.css +148 -148
  137. package/.emerge-vis-output/rws-client/html/vendors/daterangepicker/daterangepicker.min.js +7 -7
  138. package/.emerge-vis-output/rws-client/html/vendors/daterangepicker/moment.min.js +6 -6
  139. package/.emerge-vis-output/rws-client/html/vendors/hull/hull.js +373 -373
  140. package/.emerge-vis-output/rws-client/html/vendors/jquery/jquery-3.6.0.min.js +2 -2
  141. package/.emerge-vis-output/rws-client/html/vendors/popper/popper.min.js +6 -6
  142. package/.emerge-vis-output/rws-client/html/vendors/simpleheat/simpleheat.js +141 -141
  143. package/.eslintrc.json +51 -51
  144. package/.gitmodules +2 -2
  145. package/.setup/.eslintrc.json +11 -11
  146. package/.setup/_base.eslintrc.json +48 -48
  147. package/.setup/tsconfig.json +28 -28
  148. package/PLUGINS.MD +188 -188
  149. package/README.md +1023 -1023
  150. package/_tools.js +396 -396
  151. package/builder/vite/index.ts +4 -4
  152. package/{cfg/build_steps → builder}/vite/loaders/html.ts +11 -11
  153. package/{cfg/build_steps → builder}/vite/loaders/index.ts +8 -8
  154. package/{cfg/build_steps → builder}/vite/loaders/loader.type.ts +27 -27
  155. package/{cfg/build_steps → builder}/vite/loaders/scss.ts +32 -32
  156. package/{cfg/build_steps → builder}/vite/loaders/ts.ts +309 -312
  157. package/builder/vite/rws.vite.config.ts +56 -49
  158. package/{cfg/build_steps → builder}/vite/rws_scss_plugin.ts +61 -60
  159. package/{cfg/build_steps → builder}/vite/scss/_compiler.ts +95 -94
  160. package/{cfg/build_steps → builder}/vite/scss/_fonts.ts +80 -80
  161. package/{cfg/build_steps → builder}/vite/scss/_fs.ts +83 -81
  162. package/{cfg/build_steps → builder}/vite/scss/_import.ts +191 -184
  163. package/builder/webpack/after/copy.js +78 -78
  164. package/builder/webpack/after/sw.js +13 -13
  165. package/builder/webpack/index.js +10 -10
  166. package/builder/webpack/loaders/rws_fast_html_loader.js +17 -17
  167. package/builder/webpack/loaders/rws_fast_scss_loader.js +43 -43
  168. package/builder/webpack/loaders/rws_fast_ts_loader.js +96 -96
  169. package/builder/webpack/loaders/ts/html_error.js +19 -19
  170. package/builder/webpack/rws.webpack.config.js +169 -169
  171. package/builder/webpack/rws_scss_plugin.js +62 -62
  172. package/builder/webpack/rws_webpack_plugin.js +137 -137
  173. package/builder/webpack/scss/_compiler.js +97 -97
  174. package/builder/webpack/scss/_fonts.js +80 -80
  175. package/builder/webpack/scss/_fs.js +84 -84
  176. package/builder/webpack/scss/_import.js +186 -186
  177. package/cfg/_default.cfg.js +26 -26
  178. package/cfg/_storage.d.ts +22 -22
  179. package/cfg/_storage.js +42 -42
  180. package/cfg/build_steps/vite/_build_config.ts +105 -105
  181. package/cfg/build_steps/vite/_env_defines.ts +17 -17
  182. package/cfg/build_steps/vite/_loaders.ts +187 -184
  183. package/cfg/build_steps/vite/index.ts +2 -2
  184. package/cfg/build_steps/vite/types.ts +7 -7
  185. package/cfg/build_steps/webpack/_actions.js +85 -85
  186. package/cfg/build_steps/webpack/_aliases.js +9 -9
  187. package/cfg/build_steps/webpack/_build_config.js +76 -76
  188. package/cfg/build_steps/webpack/_cache.js +98 -98
  189. package/cfg/build_steps/webpack/_component_handling.js +60 -60
  190. package/cfg/build_steps/webpack/_dev_servers.js +14 -14
  191. package/cfg/build_steps/webpack/_env_defines.js +18 -18
  192. package/cfg/build_steps/webpack/_info.js +18 -18
  193. package/cfg/build_steps/webpack/_loaders.js +223 -223
  194. package/cfg/build_steps/webpack/_plugins.js +102 -102
  195. package/cfg/build_steps/webpack/_production.js +37 -37
  196. package/cfg/build_steps/webpack/_rws_externals.js +68 -68
  197. package/cfg/build_steps/webpack/_timing.js +52 -52
  198. package/cfg/build_steps/webpack/_webpack_config.js +58 -58
  199. package/cfg/tsconfigSetup.js +150 -150
  200. package/console.js +86 -86
  201. package/docs/assets/26e93147f10415a0ed4a.svg +6 -6
  202. package/docs/assets/75c9471662e97ee24f29.svg +7 -7
  203. package/docs/assets/db90e4df2373980c497d.svg +9 -9
  204. package/docs/assets/highlight.css +127 -127
  205. package/docs/assets/main.js +59 -59
  206. package/docs/assets/style.css +1414 -1414
  207. package/docs/classes/ApiServiceInstance.html +25 -25
  208. package/docs/classes/ConfigServiceInstance.html +21 -21
  209. package/docs/classes/DOMServiceInstance.html +17 -17
  210. package/docs/classes/NotifyServiceInstance.html +15 -15
  211. package/docs/classes/RWSClientInstance.html +45 -45
  212. package/docs/classes/RWSPlugin.html +13 -13
  213. package/docs/classes/RWSService.html +10 -10
  214. package/docs/classes/RWSViewComponent.html +1022 -1022
  215. package/docs/classes/ServiceWorkerServiceInstance.html +13 -13
  216. package/docs/classes/UtilsServiceInstance.html +13 -13
  217. package/docs/functions/attr.html +5 -5
  218. package/docs/functions/observable.html +3 -3
  219. package/docs/index.html +179 -179
  220. package/docs/interfaces/HTMLTag.html +3 -3
  221. package/docs/interfaces/IRWSConfig.html +20 -20
  222. package/docs/interfaces/IRWSDecoratorOptions.html +5 -5
  223. package/docs/interfaces/IRWSHttpRoute.html +2 -2
  224. package/docs/interfaces/IRWSPrefixedHTTProutes.html +2 -2
  225. package/docs/interfaces/IRWSUser.html +5 -5
  226. package/docs/modules.html +45 -45
  227. package/foundation/index.js +1 -1
  228. package/foundation/rws-foundation.d.ts +7 -7
  229. package/foundation/rws-foundation.js +7 -7
  230. package/package.json +108 -108
  231. package/service_worker/src/_service_worker.ts +83 -83
  232. package/service_worker/tsconfig.json +20 -20
  233. package/service_worker/webpack.config.js +66 -66
  234. package/src/client/components.ts +67 -67
  235. package/src/client/config.ts +165 -165
  236. package/src/client/services.ts +27 -27
  237. package/src/client.ts +212 -212
  238. package/src/components/_attrs/_default_observable_accessor.ts +8 -8
  239. package/src/components/_attrs/_extended_accessor.ts +40 -40
  240. package/src/components/_attrs/_external_handler.ts +7 -7
  241. package/src/components/_attrs/_external_observable_accessor.ts +8 -8
  242. package/src/components/_attrs/angular-attr.ts +34 -34
  243. package/src/components/_attrs/external-attr.ts +59 -59
  244. package/src/components/_attrs/external-observable.ts +52 -52
  245. package/src/components/_attrs/sanitize-html.ts +80 -80
  246. package/src/components/_component.ts +245 -245
  247. package/src/components/_container.ts +15 -15
  248. package/src/components/_decorator.ts +122 -122
  249. package/src/components/_decorators/RWSFillBuild.ts +54 -54
  250. package/src/components/_decorators/RWSInject.ts +49 -49
  251. package/src/components/_decorators/RWSService.ts +11 -11
  252. package/src/components/_decorators/_di.ts +15 -15
  253. package/src/components/_definitions.ts +64 -64
  254. package/src/components/_event_handling.ts +40 -40
  255. package/src/components/index.ts +14 -14
  256. package/src/components/loader/component.ts +12 -12
  257. package/src/components/loader/styles/layout.scss +13 -13
  258. package/src/components/progress/component.ts +54 -54
  259. package/src/components/progress/styles/layout.scss +90 -90
  260. package/src/components/progress/template.html +24 -24
  261. package/src/components/uploader/component.ts +83 -83
  262. package/src/components/uploader/styles/layout.scss +130 -130
  263. package/src/components/uploader/template.html +16 -16
  264. package/src/index.ts +93 -93
  265. package/src/plugins/_builder.js +31 -31
  266. package/src/plugins/_plugin.ts +63 -63
  267. package/src/services/ApiService.ts +242 -242
  268. package/src/services/ConfigService.ts +134 -134
  269. package/src/services/DOMService.ts +100 -100
  270. package/src/services/NotifyService.ts +47 -47
  271. package/src/services/ServiceWorkerService.ts +60 -60
  272. package/src/services/UtilsService.ts +60 -60
  273. package/src/services/_service.ts +64 -64
  274. package/src/styles/_darkreader.scss +30 -30
  275. package/src/styles/_grid.scss +75 -75
  276. package/src/styles/_misc.scss +8 -8
  277. package/src/styles/_scrollbars.scss +40 -40
  278. package/src/styles/includes.scss +4 -4
  279. package/src/types/IRWSConfig.ts +30 -30
  280. package/src/types/IRWSPlugin.ts +18 -18
  281. package/src/types/IRWSUser.ts +6 -6
  282. package/src/types/IRWSViewComponent.ts +36 -36
  283. package/src/types/RWSNotify.ts +6 -6
  284. package/src/types/RWSWindow.ts +41 -41
  285. package/tsconfig.json +30 -30
  286. package/typedoc.json +13 -13
  287. package/types/declarations.d.ts +8 -8
  288. package/types/docs-typings.d.ts +15 -15
@@ -1,373 +1,373 @@
1
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.hull = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
- function _cross(o, a, b) {
3
- return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
4
- }
5
-
6
- function _upperTangent(pointset) {
7
- const lower = [];
8
- for (let l = 0; l < pointset.length; l++) {
9
- while (lower.length >= 2 && (_cross(lower[lower.length - 2], lower[lower.length - 1], pointset[l]) <= 0)) {
10
- lower.pop();
11
- }
12
- lower.push(pointset[l]);
13
- }
14
- lower.pop();
15
- return lower;
16
- }
17
-
18
- function _lowerTangent(pointset) {
19
- const reversed = pointset.reverse(),
20
- upper = [];
21
- for (let u = 0; u < reversed.length; u++) {
22
- while (upper.length >= 2 && (_cross(upper[upper.length - 2], upper[upper.length - 1], reversed[u]) <= 0)) {
23
- upper.pop();
24
- }
25
- upper.push(reversed[u]);
26
- }
27
- upper.pop();
28
- return upper;
29
- }
30
-
31
- // pointset has to be sorted by X
32
- function convex(pointset) {
33
- const upper = _upperTangent(pointset),
34
- lower = _lowerTangent(pointset);
35
- const convex = lower.concat(upper);
36
- convex.push(pointset[0]);
37
- return convex;
38
- }
39
-
40
- module.exports = convex;
41
-
42
- },{}],2:[function(require,module,exports){
43
- module.exports = {
44
-
45
- toXy: function(pointset, format) {
46
- if (format === undefined) {
47
- return pointset.slice();
48
- }
49
- return pointset.map(function(pt) {
50
- /*jslint evil: true */
51
- const _getXY = new Function('pt', 'return [pt' + format[0] + ',' + 'pt' + format[1] + '];');
52
- return _getXY(pt);
53
- });
54
- },
55
-
56
- fromXy: function(pointset, format) {
57
- if (format === undefined) {
58
- return pointset.slice();
59
- }
60
- return pointset.map(function(pt) {
61
- /*jslint evil: true */
62
- const _getObj = new Function('pt', 'const o = {}; o' + format[0] + '= pt[0]; o' + format[1] + '= pt[1]; return o;');
63
- return _getObj(pt);
64
- });
65
- }
66
-
67
- }
68
- },{}],3:[function(require,module,exports){
69
- function Grid(points, cellSize) {
70
- this._cells = [];
71
- this._cellSize = cellSize;
72
- this._reverseCellSize = 1 / cellSize;
73
-
74
- for (let i = 0; i < points.length; i++) {
75
- const point = points[i];
76
- const x = this.coordToCellNum(point[0]);
77
- const y = this.coordToCellNum(point[1]);
78
- if (!this._cells[x]) {
79
- const array = [];
80
- array[y] = [point];
81
- this._cells[x] = array;
82
- } else if (!this._cells[x][y]) {
83
- this._cells[x][y] = [point];
84
- } else {
85
- this._cells[x][y].push(point);
86
- }
87
- }
88
- }
89
-
90
- Grid.prototype = {
91
- cellPoints: function(x, y) { // (Number, Number) -> Array
92
- return (this._cells[x] !== undefined && this._cells[x][y] !== undefined) ? this._cells[x][y] : [];
93
- },
94
-
95
- rangePoints: function(bbox) { // (Array) -> Array
96
- const tlCellX = this.coordToCellNum(bbox[0]);
97
- const tlCellY = this.coordToCellNum(bbox[1]);
98
- const brCellX = this.coordToCellNum(bbox[2]);
99
- const brCellY = this.coordToCellNum(bbox[3]);
100
- const points = [];
101
-
102
- for (let x = tlCellX; x <= brCellX; x++) {
103
- for (let y = tlCellY; y <= brCellY; y++) {
104
- // replaced Array.prototype.push.apply to avoid hitting stack size limit on larger arrays.
105
- for (let i = 0; i < this.cellPoints(x, y).length; i++) {
106
- points.push(this.cellPoints(x, y)[i]);
107
- }
108
- }
109
- }
110
-
111
- return points;
112
- },
113
-
114
- removePoint: function(point) { // (Array) -> Array
115
- const cellX = this.coordToCellNum(point[0]);
116
- const cellY = this.coordToCellNum(point[1]);
117
- const cell = this._cells[cellX][cellY];
118
- let pointIdxInCell;
119
-
120
- for (let i = 0; i < cell.length; i++) {
121
- if (cell[i][0] === point[0] && cell[i][1] === point[1]) {
122
- pointIdxInCell = i;
123
- break;
124
- }
125
- }
126
-
127
- cell.splice(pointIdxInCell, 1);
128
-
129
- return cell;
130
- },
131
-
132
- trunc: Math.trunc || function(val) { // (number) -> number
133
- return val - val % 1;
134
- },
135
-
136
- coordToCellNum: function(x) { // (number) -> number
137
- return this.trunc(x * this._reverseCellSize);
138
- },
139
-
140
- extendBbox: function(bbox, scaleFactor) { // (Array, Number) -> Array
141
- return [
142
- bbox[0] - (scaleFactor * this._cellSize),
143
- bbox[1] - (scaleFactor * this._cellSize),
144
- bbox[2] + (scaleFactor * this._cellSize),
145
- bbox[3] + (scaleFactor * this._cellSize)
146
- ];
147
- }
148
- };
149
-
150
- function grid(points, cellSize) {
151
- return new Grid(points, cellSize);
152
- }
153
-
154
- module.exports = grid;
155
- },{}],4:[function(require,module,exports){
156
- /*
157
- (c) 2014-2020, Andrii Heonia
158
- Hull.js, a JavaScript library for concave hull generation by set of points.
159
- https://github.com/AndriiHeonia/hull
160
- */
161
-
162
- 'use strict';
163
-
164
- const intersect = require('./intersect.js');
165
- const grid = require('./grid.js');
166
- const formatUtil = require('./format.js');
167
- const convexHull = require('./convex.js');
168
-
169
- function _filterDuplicates(pointset) {
170
- const unique = [pointset[0]];
171
- let lastPoint = pointset[0];
172
- for (let i = 1; i < pointset.length; i++) {
173
- const currentPoint = pointset[i];
174
- if (lastPoint[0] !== currentPoint[0] || lastPoint[1] !== currentPoint[1]) {
175
- unique.push(currentPoint);
176
- }
177
- lastPoint = currentPoint;
178
- }
179
- return unique;
180
- }
181
-
182
- function _sortByX(pointset) {
183
- return pointset.sort(function(a, b) {
184
- return (a[0] - b[0]) || (a[1] - b[1]);
185
- });
186
- }
187
-
188
- function _sqLength(a, b) {
189
- return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2);
190
- }
191
-
192
- function _cos(o, a, b) {
193
- const aShifted = [a[0] - o[0], a[1] - o[1]],
194
- bShifted = [b[0] - o[0], b[1] - o[1]],
195
- sqALen = _sqLength(o, a),
196
- sqBLen = _sqLength(o, b),
197
- dot = aShifted[0] * bShifted[0] + aShifted[1] * bShifted[1];
198
-
199
- return dot / Math.sqrt(sqALen * sqBLen);
200
- }
201
-
202
- function _intersect(segment, pointset) {
203
- for (let i = 0; i < pointset.length - 1; i++) {
204
- const seg = [pointset[i], pointset[i + 1]];
205
- if (segment[0][0] === seg[0][0] && segment[0][1] === seg[0][1] ||
206
- segment[0][0] === seg[1][0] && segment[0][1] === seg[1][1]) {
207
- continue;
208
- }
209
- if (intersect(segment, seg)) {
210
- return true;
211
- }
212
- }
213
- return false;
214
- }
215
-
216
- function _occupiedArea(pointset) {
217
- let minX = Infinity;
218
- let minY = Infinity;
219
- let maxX = -Infinity;
220
- let maxY = -Infinity;
221
-
222
- for (let i = pointset.length - 1; i >= 0; i--) {
223
- if (pointset[i][0] < minX) {
224
- minX = pointset[i][0];
225
- }
226
- if (pointset[i][1] < minY) {
227
- minY = pointset[i][1];
228
- }
229
- if (pointset[i][0] > maxX) {
230
- maxX = pointset[i][0];
231
- }
232
- if (pointset[i][1] > maxY) {
233
- maxY = pointset[i][1];
234
- }
235
- }
236
-
237
- return [
238
- maxX - minX, // width
239
- maxY - minY // height
240
- ];
241
- }
242
-
243
- function _bBoxAround(edge) {
244
- return [
245
- Math.min(edge[0][0], edge[1][0]), // left
246
- Math.min(edge[0][1], edge[1][1]), // top
247
- Math.max(edge[0][0], edge[1][0]), // right
248
- Math.max(edge[0][1], edge[1][1]) // bottom
249
- ];
250
- }
251
-
252
- function _midPoint(edge, innerPoints, convex) {
253
- let point = null,
254
- angle1Cos = MAX_CONCAVE_ANGLE_COS,
255
- angle2Cos = MAX_CONCAVE_ANGLE_COS,
256
- a1Cos, a2Cos;
257
-
258
- for (let i = 0; i < innerPoints.length; i++) {
259
- a1Cos = _cos(edge[0], edge[1], innerPoints[i]);
260
- a2Cos = _cos(edge[1], edge[0], innerPoints[i]);
261
-
262
- if (a1Cos > angle1Cos && a2Cos > angle2Cos &&
263
- !_intersect([edge[0], innerPoints[i]], convex) &&
264
- !_intersect([edge[1], innerPoints[i]], convex)) {
265
-
266
- angle1Cos = a1Cos;
267
- angle2Cos = a2Cos;
268
- point = innerPoints[i];
269
- }
270
- }
271
-
272
- return point;
273
- }
274
-
275
- function _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList) {
276
- let midPointInserted = false;
277
-
278
- for (let i = 0; i < convex.length - 1; i++) {
279
- const edge = [convex[i], convex[i + 1]];
280
- // generate a key in the format X0,Y0,X1,Y1
281
- const keyInSkipList = edge[0][0] + ',' + edge[0][1] + ',' + edge[1][0] + ',' + edge[1][1];
282
-
283
- if (_sqLength(edge[0], edge[1]) < maxSqEdgeLen ||
284
- edgeSkipList.has(keyInSkipList)) { continue; }
285
-
286
- let scaleFactor = 0;
287
- let bBoxAround = _bBoxAround(edge);
288
- let bBoxWidth;
289
- let bBoxHeight;
290
- let midPoint;
291
- do {
292
- bBoxAround = grid.extendBbox(bBoxAround, scaleFactor);
293
- bBoxWidth = bBoxAround[2] - bBoxAround[0];
294
- bBoxHeight = bBoxAround[3] - bBoxAround[1];
295
-
296
- midPoint = _midPoint(edge, grid.rangePoints(bBoxAround), convex);
297
- scaleFactor++;
298
- } while (midPoint === null && (maxSearchArea[0] > bBoxWidth || maxSearchArea[1] > bBoxHeight));
299
-
300
- if (bBoxWidth >= maxSearchArea[0] && bBoxHeight >= maxSearchArea[1]) {
301
- edgeSkipList.add(keyInSkipList);
302
- }
303
-
304
- if (midPoint !== null) {
305
- convex.splice(i + 1, 0, midPoint);
306
- grid.removePoint(midPoint);
307
- midPointInserted = true;
308
- }
309
- }
310
-
311
- if (midPointInserted) {
312
- return _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList);
313
- }
314
-
315
- return convex;
316
- }
317
-
318
- function hull(pointset, concavity, format) {
319
- let maxEdgeLen = concavity || 20;
320
-
321
- const points = _filterDuplicates(_sortByX(formatUtil.toXy(pointset, format)));
322
-
323
- if (points.length < 4) {
324
- return points.concat([points[0]]);
325
- }
326
-
327
- const occupiedArea = _occupiedArea(points);
328
- const maxSearchArea = [
329
- occupiedArea[0] * MAX_SEARCH_BBOX_SIZE_PERCENT,
330
- occupiedArea[1] * MAX_SEARCH_BBOX_SIZE_PERCENT
331
- ];
332
-
333
- const convex = convexHull(points);
334
- const innerPoints = points.filter(function(pt) {
335
- return convex.indexOf(pt) < 0;
336
- });
337
-
338
- const cellSize = Math.ceil(1 / (points.length / (occupiedArea[0] * occupiedArea[1])));
339
-
340
- const concave = _concave(
341
- convex, Math.pow(maxEdgeLen, 2),
342
- maxSearchArea, grid(innerPoints, cellSize), new Set());
343
-
344
- if (format) {
345
- return formatUtil.fromXy(concave, format);
346
- } else {
347
- return concave;
348
- }
349
- }
350
-
351
- const MAX_CONCAVE_ANGLE_COS = Math.cos(90 / (180 / Math.PI)); // angle = 90 deg
352
- const MAX_SEARCH_BBOX_SIZE_PERCENT = 0.6;
353
-
354
- module.exports = hull;
355
-
356
- },{"./convex.js":1,"./format.js":2,"./grid.js":3,"./intersect.js":5}],5:[function(require,module,exports){
357
- function ccw(x1, y1, x2, y2, x3, y3) {
358
- const cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));
359
- return cw > 0 ? true : cw < 0 ? false : true; // colinear
360
- }
361
-
362
- function intersect(seg1, seg2) {
363
- const x1 = seg1[0][0], y1 = seg1[0][1],
364
- x2 = seg1[1][0], y2 = seg1[1][1],
365
- x3 = seg2[0][0], y3 = seg2[0][1],
366
- x4 = seg2[1][0], y4 = seg2[1][1];
367
-
368
- return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) && ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);
369
- }
370
-
371
- module.exports = intersect;
372
- },{}]},{},[4])(4)
373
- });
1
+ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.hull = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
+ function _cross(o, a, b) {
3
+ return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
4
+ }
5
+
6
+ function _upperTangent(pointset) {
7
+ const lower = [];
8
+ for (let l = 0; l < pointset.length; l++) {
9
+ while (lower.length >= 2 && (_cross(lower[lower.length - 2], lower[lower.length - 1], pointset[l]) <= 0)) {
10
+ lower.pop();
11
+ }
12
+ lower.push(pointset[l]);
13
+ }
14
+ lower.pop();
15
+ return lower;
16
+ }
17
+
18
+ function _lowerTangent(pointset) {
19
+ const reversed = pointset.reverse(),
20
+ upper = [];
21
+ for (let u = 0; u < reversed.length; u++) {
22
+ while (upper.length >= 2 && (_cross(upper[upper.length - 2], upper[upper.length - 1], reversed[u]) <= 0)) {
23
+ upper.pop();
24
+ }
25
+ upper.push(reversed[u]);
26
+ }
27
+ upper.pop();
28
+ return upper;
29
+ }
30
+
31
+ // pointset has to be sorted by X
32
+ function convex(pointset) {
33
+ const upper = _upperTangent(pointset),
34
+ lower = _lowerTangent(pointset);
35
+ const convex = lower.concat(upper);
36
+ convex.push(pointset[0]);
37
+ return convex;
38
+ }
39
+
40
+ module.exports = convex;
41
+
42
+ },{}],2:[function(require,module,exports){
43
+ module.exports = {
44
+
45
+ toXy: function(pointset, format) {
46
+ if (format === undefined) {
47
+ return pointset.slice();
48
+ }
49
+ return pointset.map(function(pt) {
50
+ /*jslint evil: true */
51
+ const _getXY = new Function('pt', 'return [pt' + format[0] + ',' + 'pt' + format[1] + '];');
52
+ return _getXY(pt);
53
+ });
54
+ },
55
+
56
+ fromXy: function(pointset, format) {
57
+ if (format === undefined) {
58
+ return pointset.slice();
59
+ }
60
+ return pointset.map(function(pt) {
61
+ /*jslint evil: true */
62
+ const _getObj = new Function('pt', 'const o = {}; o' + format[0] + '= pt[0]; o' + format[1] + '= pt[1]; return o;');
63
+ return _getObj(pt);
64
+ });
65
+ }
66
+
67
+ }
68
+ },{}],3:[function(require,module,exports){
69
+ function Grid(points, cellSize) {
70
+ this._cells = [];
71
+ this._cellSize = cellSize;
72
+ this._reverseCellSize = 1 / cellSize;
73
+
74
+ for (let i = 0; i < points.length; i++) {
75
+ const point = points[i];
76
+ const x = this.coordToCellNum(point[0]);
77
+ const y = this.coordToCellNum(point[1]);
78
+ if (!this._cells[x]) {
79
+ const array = [];
80
+ array[y] = [point];
81
+ this._cells[x] = array;
82
+ } else if (!this._cells[x][y]) {
83
+ this._cells[x][y] = [point];
84
+ } else {
85
+ this._cells[x][y].push(point);
86
+ }
87
+ }
88
+ }
89
+
90
+ Grid.prototype = {
91
+ cellPoints: function(x, y) { // (Number, Number) -> Array
92
+ return (this._cells[x] !== undefined && this._cells[x][y] !== undefined) ? this._cells[x][y] : [];
93
+ },
94
+
95
+ rangePoints: function(bbox) { // (Array) -> Array
96
+ const tlCellX = this.coordToCellNum(bbox[0]);
97
+ const tlCellY = this.coordToCellNum(bbox[1]);
98
+ const brCellX = this.coordToCellNum(bbox[2]);
99
+ const brCellY = this.coordToCellNum(bbox[3]);
100
+ const points = [];
101
+
102
+ for (let x = tlCellX; x <= brCellX; x++) {
103
+ for (let y = tlCellY; y <= brCellY; y++) {
104
+ // replaced Array.prototype.push.apply to avoid hitting stack size limit on larger arrays.
105
+ for (let i = 0; i < this.cellPoints(x, y).length; i++) {
106
+ points.push(this.cellPoints(x, y)[i]);
107
+ }
108
+ }
109
+ }
110
+
111
+ return points;
112
+ },
113
+
114
+ removePoint: function(point) { // (Array) -> Array
115
+ const cellX = this.coordToCellNum(point[0]);
116
+ const cellY = this.coordToCellNum(point[1]);
117
+ const cell = this._cells[cellX][cellY];
118
+ let pointIdxInCell;
119
+
120
+ for (let i = 0; i < cell.length; i++) {
121
+ if (cell[i][0] === point[0] && cell[i][1] === point[1]) {
122
+ pointIdxInCell = i;
123
+ break;
124
+ }
125
+ }
126
+
127
+ cell.splice(pointIdxInCell, 1);
128
+
129
+ return cell;
130
+ },
131
+
132
+ trunc: Math.trunc || function(val) { // (number) -> number
133
+ return val - val % 1;
134
+ },
135
+
136
+ coordToCellNum: function(x) { // (number) -> number
137
+ return this.trunc(x * this._reverseCellSize);
138
+ },
139
+
140
+ extendBbox: function(bbox, scaleFactor) { // (Array, Number) -> Array
141
+ return [
142
+ bbox[0] - (scaleFactor * this._cellSize),
143
+ bbox[1] - (scaleFactor * this._cellSize),
144
+ bbox[2] + (scaleFactor * this._cellSize),
145
+ bbox[3] + (scaleFactor * this._cellSize)
146
+ ];
147
+ }
148
+ };
149
+
150
+ function grid(points, cellSize) {
151
+ return new Grid(points, cellSize);
152
+ }
153
+
154
+ module.exports = grid;
155
+ },{}],4:[function(require,module,exports){
156
+ /*
157
+ (c) 2014-2020, Andrii Heonia
158
+ Hull.js, a JavaScript library for concave hull generation by set of points.
159
+ https://github.com/AndriiHeonia/hull
160
+ */
161
+
162
+ 'use strict';
163
+
164
+ const intersect = require('./intersect.js');
165
+ const grid = require('./grid.js');
166
+ const formatUtil = require('./format.js');
167
+ const convexHull = require('./convex.js');
168
+
169
+ function _filterDuplicates(pointset) {
170
+ const unique = [pointset[0]];
171
+ let lastPoint = pointset[0];
172
+ for (let i = 1; i < pointset.length; i++) {
173
+ const currentPoint = pointset[i];
174
+ if (lastPoint[0] !== currentPoint[0] || lastPoint[1] !== currentPoint[1]) {
175
+ unique.push(currentPoint);
176
+ }
177
+ lastPoint = currentPoint;
178
+ }
179
+ return unique;
180
+ }
181
+
182
+ function _sortByX(pointset) {
183
+ return pointset.sort(function(a, b) {
184
+ return (a[0] - b[0]) || (a[1] - b[1]);
185
+ });
186
+ }
187
+
188
+ function _sqLength(a, b) {
189
+ return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2);
190
+ }
191
+
192
+ function _cos(o, a, b) {
193
+ const aShifted = [a[0] - o[0], a[1] - o[1]],
194
+ bShifted = [b[0] - o[0], b[1] - o[1]],
195
+ sqALen = _sqLength(o, a),
196
+ sqBLen = _sqLength(o, b),
197
+ dot = aShifted[0] * bShifted[0] + aShifted[1] * bShifted[1];
198
+
199
+ return dot / Math.sqrt(sqALen * sqBLen);
200
+ }
201
+
202
+ function _intersect(segment, pointset) {
203
+ for (let i = 0; i < pointset.length - 1; i++) {
204
+ const seg = [pointset[i], pointset[i + 1]];
205
+ if (segment[0][0] === seg[0][0] && segment[0][1] === seg[0][1] ||
206
+ segment[0][0] === seg[1][0] && segment[0][1] === seg[1][1]) {
207
+ continue;
208
+ }
209
+ if (intersect(segment, seg)) {
210
+ return true;
211
+ }
212
+ }
213
+ return false;
214
+ }
215
+
216
+ function _occupiedArea(pointset) {
217
+ let minX = Infinity;
218
+ let minY = Infinity;
219
+ let maxX = -Infinity;
220
+ let maxY = -Infinity;
221
+
222
+ for (let i = pointset.length - 1; i >= 0; i--) {
223
+ if (pointset[i][0] < minX) {
224
+ minX = pointset[i][0];
225
+ }
226
+ if (pointset[i][1] < minY) {
227
+ minY = pointset[i][1];
228
+ }
229
+ if (pointset[i][0] > maxX) {
230
+ maxX = pointset[i][0];
231
+ }
232
+ if (pointset[i][1] > maxY) {
233
+ maxY = pointset[i][1];
234
+ }
235
+ }
236
+
237
+ return [
238
+ maxX - minX, // width
239
+ maxY - minY // height
240
+ ];
241
+ }
242
+
243
+ function _bBoxAround(edge) {
244
+ return [
245
+ Math.min(edge[0][0], edge[1][0]), // left
246
+ Math.min(edge[0][1], edge[1][1]), // top
247
+ Math.max(edge[0][0], edge[1][0]), // right
248
+ Math.max(edge[0][1], edge[1][1]) // bottom
249
+ ];
250
+ }
251
+
252
+ function _midPoint(edge, innerPoints, convex) {
253
+ let point = null,
254
+ angle1Cos = MAX_CONCAVE_ANGLE_COS,
255
+ angle2Cos = MAX_CONCAVE_ANGLE_COS,
256
+ a1Cos, a2Cos;
257
+
258
+ for (let i = 0; i < innerPoints.length; i++) {
259
+ a1Cos = _cos(edge[0], edge[1], innerPoints[i]);
260
+ a2Cos = _cos(edge[1], edge[0], innerPoints[i]);
261
+
262
+ if (a1Cos > angle1Cos && a2Cos > angle2Cos &&
263
+ !_intersect([edge[0], innerPoints[i]], convex) &&
264
+ !_intersect([edge[1], innerPoints[i]], convex)) {
265
+
266
+ angle1Cos = a1Cos;
267
+ angle2Cos = a2Cos;
268
+ point = innerPoints[i];
269
+ }
270
+ }
271
+
272
+ return point;
273
+ }
274
+
275
+ function _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList) {
276
+ let midPointInserted = false;
277
+
278
+ for (let i = 0; i < convex.length - 1; i++) {
279
+ const edge = [convex[i], convex[i + 1]];
280
+ // generate a key in the format X0,Y0,X1,Y1
281
+ const keyInSkipList = edge[0][0] + ',' + edge[0][1] + ',' + edge[1][0] + ',' + edge[1][1];
282
+
283
+ if (_sqLength(edge[0], edge[1]) < maxSqEdgeLen ||
284
+ edgeSkipList.has(keyInSkipList)) { continue; }
285
+
286
+ let scaleFactor = 0;
287
+ let bBoxAround = _bBoxAround(edge);
288
+ let bBoxWidth;
289
+ let bBoxHeight;
290
+ let midPoint;
291
+ do {
292
+ bBoxAround = grid.extendBbox(bBoxAround, scaleFactor);
293
+ bBoxWidth = bBoxAround[2] - bBoxAround[0];
294
+ bBoxHeight = bBoxAround[3] - bBoxAround[1];
295
+
296
+ midPoint = _midPoint(edge, grid.rangePoints(bBoxAround), convex);
297
+ scaleFactor++;
298
+ } while (midPoint === null && (maxSearchArea[0] > bBoxWidth || maxSearchArea[1] > bBoxHeight));
299
+
300
+ if (bBoxWidth >= maxSearchArea[0] && bBoxHeight >= maxSearchArea[1]) {
301
+ edgeSkipList.add(keyInSkipList);
302
+ }
303
+
304
+ if (midPoint !== null) {
305
+ convex.splice(i + 1, 0, midPoint);
306
+ grid.removePoint(midPoint);
307
+ midPointInserted = true;
308
+ }
309
+ }
310
+
311
+ if (midPointInserted) {
312
+ return _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList);
313
+ }
314
+
315
+ return convex;
316
+ }
317
+
318
+ function hull(pointset, concavity, format) {
319
+ let maxEdgeLen = concavity || 20;
320
+
321
+ const points = _filterDuplicates(_sortByX(formatUtil.toXy(pointset, format)));
322
+
323
+ if (points.length < 4) {
324
+ return points.concat([points[0]]);
325
+ }
326
+
327
+ const occupiedArea = _occupiedArea(points);
328
+ const maxSearchArea = [
329
+ occupiedArea[0] * MAX_SEARCH_BBOX_SIZE_PERCENT,
330
+ occupiedArea[1] * MAX_SEARCH_BBOX_SIZE_PERCENT
331
+ ];
332
+
333
+ const convex = convexHull(points);
334
+ const innerPoints = points.filter(function(pt) {
335
+ return convex.indexOf(pt) < 0;
336
+ });
337
+
338
+ const cellSize = Math.ceil(1 / (points.length / (occupiedArea[0] * occupiedArea[1])));
339
+
340
+ const concave = _concave(
341
+ convex, Math.pow(maxEdgeLen, 2),
342
+ maxSearchArea, grid(innerPoints, cellSize), new Set());
343
+
344
+ if (format) {
345
+ return formatUtil.fromXy(concave, format);
346
+ } else {
347
+ return concave;
348
+ }
349
+ }
350
+
351
+ const MAX_CONCAVE_ANGLE_COS = Math.cos(90 / (180 / Math.PI)); // angle = 90 deg
352
+ const MAX_SEARCH_BBOX_SIZE_PERCENT = 0.6;
353
+
354
+ module.exports = hull;
355
+
356
+ },{"./convex.js":1,"./format.js":2,"./grid.js":3,"./intersect.js":5}],5:[function(require,module,exports){
357
+ function ccw(x1, y1, x2, y2, x3, y3) {
358
+ const cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));
359
+ return cw > 0 ? true : cw < 0 ? false : true; // colinear
360
+ }
361
+
362
+ function intersect(seg1, seg2) {
363
+ const x1 = seg1[0][0], y1 = seg1[0][1],
364
+ x2 = seg1[1][0], y2 = seg1[1][1],
365
+ x3 = seg2[0][0], y3 = seg2[0][1],
366
+ x4 = seg2[1][0], y4 = seg2[1][1];
367
+
368
+ return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) && ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);
369
+ }
370
+
371
+ module.exports = intersect;
372
+ },{}]},{},[4])(4)
373
+ });