@bpd-library/utilities 1.2.4-beta.1 → 1.2.4-beta.2

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 (301) hide show
  1. package/coverage/base.css +224 -0
  2. package/coverage/block-navigation.js +79 -0
  3. package/coverage/index.html +95 -0
  4. package/coverage/lcov.info +0 -0
  5. package/coverage/prettify.css +1 -0
  6. package/coverage/prettify.js +2 -0
  7. package/coverage/sort-arrow-sprite.png +0 -0
  8. package/coverage/sorter.js +170 -0
  9. package/dist/extended-api-models/included-properties.d.ts +1 -1
  10. package/dist/extended-api-models/included-properties.js +2 -0
  11. package/dist/extended-api-models/included-properties.js.map +1 -1
  12. package/dist/hooks/use-stylesheet.d.ts +15 -1
  13. package/dist/hooks/use-stylesheet.js +79 -3
  14. package/dist/hooks/use-stylesheet.js.map +1 -1
  15. package/package.json +3 -3
  16. package/yarn-error.log +8117 -0
  17. package/dist/esm/api/http.js +0 -120
  18. package/dist/esm/api/http.js.map +0 -1
  19. package/dist/esm/api/index.js +0 -11
  20. package/dist/esm/api/index.js.map +0 -1
  21. package/dist/esm/api-utilities/compose-exclude-string.js +0 -6
  22. package/dist/esm/api-utilities/compose-exclude-string.js.map +0 -1
  23. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js +0 -13
  24. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  25. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js +0 -29
  26. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  27. package/dist/esm/api-utilities/district-status.js +0 -14
  28. package/dist/esm/api-utilities/district-status.js.map +0 -1
  29. package/dist/esm/api-utilities/find-filter.js +0 -41
  30. package/dist/esm/api-utilities/find-filter.js.map +0 -1
  31. package/dist/esm/api-utilities/get/coordinates.js +0 -31
  32. package/dist/esm/api-utilities/get/coordinates.js.map +0 -1
  33. package/dist/esm/api-utilities/get/layer-raster.js +0 -4
  34. package/dist/esm/api-utilities/get/layer-raster.js.map +0 -1
  35. package/dist/esm/api-utilities/show-mortgage-price.js +0 -11
  36. package/dist/esm/api-utilities/show-mortgage-price.js.map +0 -1
  37. package/dist/esm/api-utilities/show-price.js +0 -13
  38. package/dist/esm/api-utilities/show-price.js.map +0 -1
  39. package/dist/esm/constants/index.js +0 -7
  40. package/dist/esm/constants/index.js.map +0 -1
  41. package/dist/esm/date.js +0 -11
  42. package/dist/esm/date.js.map +0 -1
  43. package/dist/esm/debounce.js +0 -25
  44. package/dist/esm/debounce.js.map +0 -1
  45. package/dist/esm/dom/dom.js +0 -9
  46. package/dist/esm/dom/dom.js.map +0 -1
  47. package/dist/esm/environment.js +0 -27
  48. package/dist/esm/environment.js.map +0 -1
  49. package/dist/esm/extended-api-models/excluded-properties.js +0 -36
  50. package/dist/esm/extended-api-models/excluded-properties.js.map +0 -1
  51. package/dist/esm/extended-api-models/extended-area-projects.js +0 -12
  52. package/dist/esm/extended-api-models/extended-area-projects.js.map +0 -1
  53. package/dist/esm/extended-api-models/extended-area.js +0 -182
  54. package/dist/esm/extended-api-models/extended-area.js.map +0 -1
  55. package/dist/esm/extended-api-models/status/apartment-building-status.js +0 -60
  56. package/dist/esm/extended-api-models/status/apartment-building-status.js.map +0 -1
  57. package/dist/esm/extended-api-models/status/construction-number-status.js +0 -20
  58. package/dist/esm/extended-api-models/status/construction-number-status.js.map +0 -1
  59. package/dist/esm/extended-api-models/status/property-type-status.js +0 -60
  60. package/dist/esm/extended-api-models/status/property-type-status.js.map +0 -1
  61. package/dist/esm/extended-api-models/utilities/apartment-building-view.js +0 -5
  62. package/dist/esm/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  63. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js +0 -37
  64. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  65. package/dist/esm/extended-api-models/utilities/find-extended-object.js +0 -23
  66. package/dist/esm/extended-api-models/utilities/find-extended-object.js.map +0 -1
  67. package/dist/esm/extended-api-models/utilities/is-apartment.js +0 -14
  68. package/dist/esm/extended-api-models/utilities/is-apartment.js.map +0 -1
  69. package/dist/esm/function-is-true.js +0 -13
  70. package/dist/esm/function-is-true.js.map +0 -1
  71. package/dist/esm/generated/bpd-client.js +0 -53
  72. package/dist/esm/generated/bpd-client.js.map +0 -1
  73. package/dist/esm/geometry/country-bounding-box.js +0 -14
  74. package/dist/esm/geometry/country-bounding-box.js.map +0 -1
  75. package/dist/esm/geometry/geometry.js +0 -65
  76. package/dist/esm/geometry/geometry.js.map +0 -1
  77. package/dist/esm/hooks/use-click-outside.js +0 -34
  78. package/dist/esm/hooks/use-click-outside.js.map +0 -1
  79. package/dist/esm/hooks/use-form-changes.js +0 -30
  80. package/dist/esm/hooks/use-form-changes.js.map +0 -1
  81. package/dist/esm/hooks/use-history.js +0 -15
  82. package/dist/esm/hooks/use-history.js.map +0 -1
  83. package/dist/esm/hooks/use-keyboard-focus.js +0 -14
  84. package/dist/esm/hooks/use-keyboard-focus.js.map +0 -1
  85. package/dist/esm/hooks/use-lazy.js +0 -47
  86. package/dist/esm/hooks/use-lazy.js.map +0 -1
  87. package/dist/esm/hooks/use-map-storage.js +0 -16
  88. package/dist/esm/hooks/use-map-storage.js.map +0 -1
  89. package/dist/esm/hooks/use-scroll-position.js +0 -23
  90. package/dist/esm/hooks/use-scroll-position.js.map +0 -1
  91. package/dist/esm/hooks/use-scroll-to.js +0 -66
  92. package/dist/esm/hooks/use-scroll-to.js.map +0 -1
  93. package/dist/esm/hooks/use-stylesheet.js +0 -8
  94. package/dist/esm/hooks/use-stylesheet.js.map +0 -1
  95. package/dist/esm/hooks/use-url-params.js +0 -31
  96. package/dist/esm/hooks/use-url-params.js.map +0 -1
  97. package/dist/esm/index.js +0 -40
  98. package/dist/esm/index.js.map +0 -1
  99. package/dist/esm/is-touch.js +0 -32
  100. package/dist/esm/is-touch.js.map +0 -1
  101. package/dist/esm/media-query/breakpoints.js +0 -29
  102. package/dist/esm/media-query/breakpoints.js.map +0 -1
  103. package/dist/esm/media-query/media-query.js +0 -39
  104. package/dist/esm/media-query/media-query.js.map +0 -1
  105. package/dist/esm/media-query/utils/index.js +0 -35
  106. package/dist/esm/media-query/utils/index.js.map +0 -1
  107. package/dist/esm/raf-throttle.js +0 -24
  108. package/dist/esm/raf-throttle.js.map +0 -1
  109. package/dist/esm/throttle.js +0 -23
  110. package/dist/esm/throttle.js.map +0 -1
  111. package/dist/esm/to-currency.js +0 -26
  112. package/dist/esm/to-currency.js.map +0 -1
  113. package/dist/lib/api/http.js +0 -117
  114. package/dist/lib/api/http.js.map +0 -1
  115. package/dist/lib/api/index.js +0 -8
  116. package/dist/lib/api/index.js.map +0 -1
  117. package/dist/lib/api-utilities/api-utilities.js +0 -9
  118. package/dist/lib/api-utilities/api-utilities.js.map +0 -1
  119. package/dist/lib/api-utilities/api-utilities.test.js +0 -122
  120. package/dist/lib/api-utilities/api-utilities.test.js.map +0 -1
  121. package/dist/lib/api-utilities/api-utilities.types.js +0 -1
  122. package/dist/lib/api-utilities/api-utilities.types.js.map +0 -1
  123. package/dist/lib/api-utilities/compose-exclude-string.js +0 -5
  124. package/dist/lib/api-utilities/compose-exclude-string.js.map +0 -1
  125. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js +0 -12
  126. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  127. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js +0 -27
  128. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  129. package/dist/lib/api-utilities/district-status.js +0 -13
  130. package/dist/lib/api-utilities/district-status.js.map +0 -1
  131. package/dist/lib/api-utilities/find-filter.js +0 -40
  132. package/dist/lib/api-utilities/find-filter.js.map +0 -1
  133. package/dist/lib/api-utilities/get/coordinates.js +0 -29
  134. package/dist/lib/api-utilities/get/coordinates.js.map +0 -1
  135. package/dist/lib/api-utilities/get/layer-raster.js +0 -3
  136. package/dist/lib/api-utilities/get/layer-raster.js.map +0 -1
  137. package/dist/lib/api-utilities/index.js +0 -2
  138. package/dist/lib/api-utilities/index.js.map +0 -1
  139. package/dist/lib/api-utilities/show-mortgage-price.js +0 -10
  140. package/dist/lib/api-utilities/show-mortgage-price.js.map +0 -1
  141. package/dist/lib/api-utilities/show-price.js +0 -12
  142. package/dist/lib/api-utilities/show-price.js.map +0 -1
  143. package/dist/lib/constants/index.js +0 -5
  144. package/dist/lib/constants/index.js.map +0 -1
  145. package/dist/lib/date.js +0 -10
  146. package/dist/lib/date.js.map +0 -1
  147. package/dist/lib/debounce.js +0 -23
  148. package/dist/lib/debounce.js.map +0 -1
  149. package/dist/lib/dom/dom.js +0 -7
  150. package/dist/lib/dom/dom.js.map +0 -1
  151. package/dist/lib/dom/index.js +0 -2
  152. package/dist/lib/dom/index.js.map +0 -1
  153. package/dist/lib/environment.js +0 -25
  154. package/dist/lib/environment.js.map +0 -1
  155. package/dist/lib/extended-api-models/excluded-properties.js +0 -35
  156. package/dist/lib/extended-api-models/excluded-properties.js.map +0 -1
  157. package/dist/lib/extended-api-models/extended-area-projects.js +0 -10
  158. package/dist/lib/extended-api-models/extended-area-projects.js.map +0 -1
  159. package/dist/lib/extended-api-models/extended-area.js +0 -179
  160. package/dist/lib/extended-api-models/extended-area.js.map +0 -1
  161. package/dist/lib/extended-api-models/index.js +0 -7
  162. package/dist/lib/extended-api-models/index.js.map +0 -1
  163. package/dist/lib/extended-api-models/status/apartment-building-status.js +0 -58
  164. package/dist/lib/extended-api-models/status/apartment-building-status.js.map +0 -1
  165. package/dist/lib/extended-api-models/status/construction-number-status.js +0 -19
  166. package/dist/lib/extended-api-models/status/construction-number-status.js.map +0 -1
  167. package/dist/lib/extended-api-models/status/property-type-status.js +0 -58
  168. package/dist/lib/extended-api-models/status/property-type-status.js.map +0 -1
  169. package/dist/lib/extended-api-models/utilities/apartment-building-view.js +0 -4
  170. package/dist/lib/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  171. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js +0 -35
  172. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  173. package/dist/lib/extended-api-models/utilities/find-extended-object.js +0 -21
  174. package/dist/lib/extended-api-models/utilities/find-extended-object.js.map +0 -1
  175. package/dist/lib/extended-api-models/utilities/is-apartment.js +0 -13
  176. package/dist/lib/extended-api-models/utilities/is-apartment.js.map +0 -1
  177. package/dist/lib/function-is-true.js +0 -11
  178. package/dist/lib/function-is-true.js.map +0 -1
  179. package/dist/lib/generated/bpd-client.js +0 -50
  180. package/dist/lib/generated/bpd-client.js.map +0 -1
  181. package/dist/lib/generated/index.js +0 -2
  182. package/dist/lib/generated/index.js.map +0 -1
  183. package/dist/lib/geometry/country-bounding-box.js +0 -12
  184. package/dist/lib/geometry/country-bounding-box.js.map +0 -1
  185. package/dist/lib/geometry/geometry.js +0 -64
  186. package/dist/lib/geometry/geometry.js.map +0 -1
  187. package/dist/lib/geometry/geometry.test.js +0 -87
  188. package/dist/lib/geometry/geometry.test.js.map +0 -1
  189. package/dist/lib/geometry/index.js +0 -3
  190. package/dist/lib/geometry/index.js.map +0 -1
  191. package/dist/lib/hooks/index.js +0 -11
  192. package/dist/lib/hooks/index.js.map +0 -1
  193. package/dist/lib/hooks/use-click-outside.js +0 -32
  194. package/dist/lib/hooks/use-click-outside.js.map +0 -1
  195. package/dist/lib/hooks/use-delegate-listen.js +0 -10
  196. package/dist/lib/hooks/use-delegate-listen.js.map +0 -1
  197. package/dist/lib/hooks/use-form-changes.js +0 -27
  198. package/dist/lib/hooks/use-form-changes.js.map +0 -1
  199. package/dist/lib/hooks/use-history.js +0 -13
  200. package/dist/lib/hooks/use-history.js.map +0 -1
  201. package/dist/lib/hooks/use-input.js +0 -28
  202. package/dist/lib/hooks/use-input.js.map +0 -1
  203. package/dist/lib/hooks/use-keyboard-focus.js +0 -11
  204. package/dist/lib/hooks/use-keyboard-focus.js.map +0 -1
  205. package/dist/lib/hooks/use-lazy.js +0 -44
  206. package/dist/lib/hooks/use-lazy.js.map +0 -1
  207. package/dist/lib/hooks/use-map-storage.js +0 -14
  208. package/dist/lib/hooks/use-map-storage.js.map +0 -1
  209. package/dist/lib/hooks/use-scroll-position.js +0 -20
  210. package/dist/lib/hooks/use-scroll-position.js.map +0 -1
  211. package/dist/lib/hooks/use-scroll-to.js +0 -64
  212. package/dist/lib/hooks/use-scroll-to.js.map +0 -1
  213. package/dist/lib/hooks/use-stylesheet.js +0 -5
  214. package/dist/lib/hooks/use-stylesheet.js.map +0 -1
  215. package/dist/lib/hooks/use-text.js +0 -16
  216. package/dist/lib/hooks/use-text.js.map +0 -1
  217. package/dist/lib/hooks/use-url-params.js +0 -28
  218. package/dist/lib/hooks/use-url-params.js.map +0 -1
  219. package/dist/lib/index.js +0 -18
  220. package/dist/lib/index.js.map +0 -1
  221. package/dist/lib/is-touch.js +0 -30
  222. package/dist/lib/is-touch.js.map +0 -1
  223. package/dist/lib/media-query/breakpoints.js +0 -27
  224. package/dist/lib/media-query/breakpoints.js.map +0 -1
  225. package/dist/lib/media-query/index.js +0 -2
  226. package/dist/lib/media-query/index.js.map +0 -1
  227. package/dist/lib/media-query/media-query.js +0 -36
  228. package/dist/lib/media-query/media-query.js.map +0 -1
  229. package/dist/lib/media-query/media-query.types.js +0 -1
  230. package/dist/lib/media-query/media-query.types.js.map +0 -1
  231. package/dist/lib/media-query/utils/index.js +0 -32
  232. package/dist/lib/media-query/utils/index.js.map +0 -1
  233. package/dist/lib/raf-throttle.js +0 -22
  234. package/dist/lib/raf-throttle.js.map +0 -1
  235. package/dist/lib/throttle.js +0 -22
  236. package/dist/lib/throttle.js.map +0 -1
  237. package/dist/lib/to-currency.js +0 -24
  238. package/dist/lib/to-currency.js.map +0 -1
  239. package/dist/types/api/http.d.ts +0 -47
  240. package/dist/types/api/index.d.ts +0 -2
  241. package/dist/types/api-utilities/api-utilities.d.ts +0 -8
  242. package/dist/types/api-utilities/api-utilities.test.d.ts +0 -1
  243. package/dist/types/api-utilities/api-utilities.types.d.ts +0 -46
  244. package/dist/types/api-utilities/compose-exclude-string.d.ts +0 -3
  245. package/dist/types/api-utilities/decimal-range/merge-decimal-range.d.ts +0 -3
  246. package/dist/types/api-utilities/decimal-range/merge-specification-range.d.ts +0 -13
  247. package/dist/types/api-utilities/district-status.d.ts +0 -3
  248. package/dist/types/api-utilities/find-filter.d.ts +0 -32
  249. package/dist/types/api-utilities/get/coordinates.d.ts +0 -6
  250. package/dist/types/api-utilities/get/layer-raster.d.ts +0 -3
  251. package/dist/types/api-utilities/index.d.ts +0 -1
  252. package/dist/types/api-utilities/show-mortgage-price.d.ts +0 -3
  253. package/dist/types/api-utilities/show-price.d.ts +0 -7
  254. package/dist/types/constants/index.d.ts +0 -4
  255. package/dist/types/date.d.ts +0 -3
  256. package/dist/types/debounce.d.ts +0 -5
  257. package/dist/types/dom/dom.d.ts +0 -6
  258. package/dist/types/dom/index.d.ts +0 -1
  259. package/dist/types/environment.d.ts +0 -9
  260. package/dist/types/extended-api-models/excluded-properties.d.ts +0 -5
  261. package/dist/types/extended-api-models/extended-area-projects.d.ts +0 -3
  262. package/dist/types/extended-api-models/extended-area.d.ts +0 -13
  263. package/dist/types/extended-api-models/index.d.ts +0 -6
  264. package/dist/types/extended-api-models/status/apartment-building-status.d.ts +0 -3
  265. package/dist/types/extended-api-models/status/construction-number-status.d.ts +0 -3
  266. package/dist/types/extended-api-models/status/property-type-status.d.ts +0 -4
  267. package/dist/types/extended-api-models/utilities/apartment-building-view.d.ts +0 -4
  268. package/dist/types/extended-api-models/utilities/extended-model-price-range.d.ts +0 -4
  269. package/dist/types/extended-api-models/utilities/find-extended-object.d.ts +0 -4
  270. package/dist/types/extended-api-models/utilities/is-apartment.d.ts +0 -11
  271. package/dist/types/function-is-true.d.ts +0 -1
  272. package/dist/types/generated/bpd-client.d.ts +0 -808
  273. package/dist/types/generated/index.d.ts +0 -1
  274. package/dist/types/geometry/country-bounding-box.d.ts +0 -6
  275. package/dist/types/geometry/geometry.d.ts +0 -11
  276. package/dist/types/geometry/geometry.test.d.ts +0 -8
  277. package/dist/types/geometry/index.d.ts +0 -2
  278. package/dist/types/hooks/index.d.ts +0 -10
  279. package/dist/types/hooks/use-click-outside.d.ts +0 -6
  280. package/dist/types/hooks/use-delegate-listen.d.ts +0 -6
  281. package/dist/types/hooks/use-form-changes.d.ts +0 -12
  282. package/dist/types/hooks/use-history.d.ts +0 -4
  283. package/dist/types/hooks/use-input.d.ts +0 -41
  284. package/dist/types/hooks/use-keyboard-focus.d.ts +0 -6
  285. package/dist/types/hooks/use-lazy.d.ts +0 -21
  286. package/dist/types/hooks/use-map-storage.d.ts +0 -6
  287. package/dist/types/hooks/use-scroll-position.d.ts +0 -10
  288. package/dist/types/hooks/use-scroll-to.d.ts +0 -8
  289. package/dist/types/hooks/use-stylesheet.d.ts +0 -1
  290. package/dist/types/hooks/use-text.d.ts +0 -1
  291. package/dist/types/hooks/use-url-params.d.ts +0 -5
  292. package/dist/types/index.d.ts +0 -17
  293. package/dist/types/is-touch.d.ts +0 -8
  294. package/dist/types/media-query/breakpoints.d.ts +0 -26
  295. package/dist/types/media-query/index.d.ts +0 -1
  296. package/dist/types/media-query/media-query.d.ts +0 -13
  297. package/dist/types/media-query/media-query.types.d.ts +0 -14
  298. package/dist/types/media-query/utils/index.d.ts +0 -3
  299. package/dist/types/raf-throttle.d.ts +0 -4
  300. package/dist/types/throttle.d.ts +0 -2
  301. package/dist/types/to-currency.d.ts +0 -3
@@ -1,64 +0,0 @@
1
- const DEGREE_PER_KM = 0.0089;
2
- const calculateBoundingBox = (coordinates) => {
3
- let minX, minY, maxX, maxY;
4
- coordinates.flat(1).forEach(([x, y]) => {
5
- minX = !minX || x < minX ? x : minX;
6
- minY = !minY || y < minY ? y : minY;
7
- maxX = !maxX || x > maxX ? x : maxX;
8
- maxY = !maxY || y > maxY ? y : maxY;
9
- });
10
- return [minX || 0, minY || 0, maxX || 0, maxY || 0];
11
- };
12
- const concatMapDataCoordinates = (mapData) => mapData.reduce((coordinates, item) => coordinates.concat(item.coordinates), []);
13
- const calculateMapDataBoundingBox = (mapData) => {
14
- const coordinates = concatMapDataCoordinates(mapData);
15
- return calculateBoundingBox(coordinates);
16
- };
17
- const calculateMapDataCenter = (mapData) => {
18
- const coordinates = concatMapDataCoordinates(mapData);
19
- return calculateCenter(coordinates);
20
- };
21
- const calculateBoundingBoxCenter = ([minX, minY, maxX, maxY]) => {
22
- return [(minX + maxX) / 2, (minY + maxY) / 2];
23
- };
24
- const calculateCenter = (coordinates) => {
25
- return calculateBoundingBoxCenter(calculateBoundingBox(coordinates));
26
- };
27
- const mergeBoundingBoxes = (boundingBoxes) => {
28
- const mergedBoundingBox = boundingBoxes.reduce((merged, boundingBox) => {
29
- merged[0] = merged[0] < boundingBox[0] ? merged[0] : boundingBox[0];
30
- merged[1] = merged[1] < boundingBox[1] ? merged[1] : boundingBox[1];
31
- merged[2] = merged[2] > boundingBox[2] ? merged[2] : boundingBox[2];
32
- merged[3] = merged[3] > boundingBox[3] ? merged[3] : boundingBox[3];
33
- return merged;
34
- }, boundingBoxes[0]);
35
- return mergedBoundingBox;
36
- };
37
- const expandBoundingBox = ([minX, minY, maxX, maxY], km) => {
38
- const degreePadding = DEGREE_PER_KM * km;
39
- minX -= degreePadding;
40
- minY -= degreePadding;
41
- maxX += degreePadding;
42
- maxY += degreePadding;
43
- return [minX, minY, maxX, maxY];
44
- };
45
- const withinBoundingBox = (coordinates, boundingBox, kmPadding = 0) => {
46
- if (kmPadding) {
47
- boundingBox = expandBoundingBox(boundingBox, kmPadding);
48
- }
49
- const flatCoordinates = coordinates.flat(1);
50
- const [minX, minY, maxX, maxY] = boundingBox;
51
- for (let i = 0; i < flatCoordinates.length; i++) {
52
- const [x, y] = flatCoordinates[i];
53
- if (x < maxX && x > minX && y < maxY && y > minY)
54
- return true;
55
- }
56
- return false;
57
- };
58
- const calculateDistance = (pointA, pointB) => {
59
- const distanceX = (pointA[0] - pointB[0]) ** 2;
60
- const distanceY = (pointA[1] - pointB[1]) ** 2;
61
- return Math.sqrt(distanceX + distanceY);
62
- };
63
- export { calculateBoundingBox, calculateBoundingBoxCenter, calculateCenter, calculateDistance, calculateMapDataBoundingBox, calculateMapDataCenter, withinBoundingBox, expandBoundingBox, mergeBoundingBoxes, };
64
- //# sourceMappingURL=geometry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/geometry/geometry.ts"],"names":[],"mappings":"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","sourcesContent":["import { BoundingBox, Coordinates, MapData } from '@bpd-library/types';\n\nconst DEGREE_PER_KM = 0.0089;\n\nconst calculateBoundingBox = (coordinates: Coordinates): [number, number, number, number] => {\n let minX: number | undefined,\n minY: number | undefined,\n maxX: number | undefined,\n maxY: number | undefined;\n\n coordinates.flat(1).forEach(([x, y]) => {\n minX = !minX || x < minX ? x : minX;\n minY = !minY || y < minY ? y : minY;\n maxX = !maxX || x > maxX ? x : maxX;\n maxY = !maxY || y > maxY ? y : maxY;\n });\n\n return [minX || 0, minY || 0, maxX || 0, maxY || 0];\n};\n\nconst concatMapDataCoordinates = (mapData: MapData): Coordinates =>\n mapData.reduce<Coordinates>((coordinates, item) => coordinates.concat(item.coordinates), []);\n\nconst calculateMapDataBoundingBox = (mapData: MapData): BoundingBox => {\n const coordinates = concatMapDataCoordinates(mapData);\n\n return calculateBoundingBox(coordinates);\n};\n\nconst calculateMapDataCenter = (mapData: MapData): [number, number] => {\n const coordinates = concatMapDataCoordinates(mapData);\n\n return calculateCenter(coordinates);\n};\n\nconst calculateBoundingBoxCenter = ([minX, minY, maxX, maxY]: [number, number, number, number]): [\n number,\n number,\n] => {\n return [(minX + maxX) / 2, (minY + maxY) / 2];\n};\n\nconst calculateCenter = (coordinates: Coordinates): [number, number] => {\n return calculateBoundingBoxCenter(calculateBoundingBox(coordinates));\n};\n\nconst mergeBoundingBoxes = (boundingBoxes: BoundingBox[]) => {\n const mergedBoundingBox = boundingBoxes.reduce<BoundingBox>((merged, boundingBox) => {\n merged[0] = merged[0] < boundingBox[0] ? merged[0] : boundingBox[0];\n merged[1] = merged[1] < boundingBox[1] ? merged[1] : boundingBox[1];\n merged[2] = merged[2] > boundingBox[2] ? merged[2] : boundingBox[2];\n merged[3] = merged[3] > boundingBox[3] ? merged[3] : boundingBox[3];\n\n return merged;\n }, boundingBoxes[0]);\n\n return mergedBoundingBox;\n};\n\nconst expandBoundingBox = ([minX, minY, maxX, maxY]: BoundingBox, km: number): BoundingBox => {\n const degreePadding = DEGREE_PER_KM * km;\n\n minX -= degreePadding;\n minY -= degreePadding;\n maxX += degreePadding;\n maxY += degreePadding;\n\n return [minX, minY, maxX, maxY];\n};\n\nconst withinBoundingBox = (\n coordinates: Coordinates,\n boundingBox: BoundingBox,\n kmPadding: number = 0,\n): boolean => {\n if (kmPadding) {\n boundingBox = expandBoundingBox(boundingBox, kmPadding);\n }\n\n const flatCoordinates = coordinates.flat(1);\n const [minX, minY, maxX, maxY] = boundingBox;\n\n for (let i = 0; i < flatCoordinates.length; i++) {\n const [x, y] = flatCoordinates[i];\n\n if (x < maxX && x > minX && y < maxY && y > minY) return true;\n }\n\n return false;\n};\n\nconst calculateDistance = (pointA: [number, number], pointB: [number, number]): number => {\n const distanceX = (pointA[0] - pointB[0]) ** 2;\n const distanceY = (pointA[1] - pointB[1]) ** 2;\n\n return Math.sqrt(distanceX + distanceY);\n};\n\nexport {\n calculateBoundingBox,\n calculateBoundingBoxCenter,\n calculateCenter,\n calculateDistance,\n calculateMapDataBoundingBox,\n calculateMapDataCenter,\n withinBoundingBox,\n expandBoundingBox,\n mergeBoundingBoxes,\n};\n"]}
@@ -1,87 +0,0 @@
1
- import { calculateBoundingBox, calculateBoundingBoxCenter, calculateCenter, calculateDistance, calculateMapDataCenter, expandBoundingBox, withinBoundingBox, } from './geometry';
2
- export const TEST_GEOMETRY = {
3
- coordinates: [
4
- [
5
- [1, 2],
6
- [3, 4],
7
- [1.5, 2.5],
8
- ],
9
- [
10
- [1, 2],
11
- [3, 4],
12
- [1.5, 2.5],
13
- ],
14
- ],
15
- boundingBox: [1, 2, 3, 4],
16
- center: [2, 3],
17
- apiGeometry: [
18
- {
19
- coordinates: [
20
- [1, 2],
21
- [3, 4],
22
- [1.5, 2.5],
23
- ],
24
- },
25
- {
26
- coordinates: [
27
- [1, 2],
28
- [3, 4],
29
- [1.5, 2.5],
30
- ],
31
- },
32
- ],
33
- };
34
- const MAP_DATA = [
35
- {
36
- id: '1',
37
- coordinates: TEST_GEOMETRY.coordinates,
38
- variant: 'default',
39
- },
40
- {
41
- id: '2',
42
- coordinates: [
43
- [
44
- [5, 6],
45
- [5, 1],
46
- ],
47
- [
48
- [1, 2],
49
- [8, 9],
50
- ],
51
- ],
52
- variant: 'default',
53
- },
54
- ];
55
- describe('Geometry', function () {
56
- it('Calculates the correct coordinates boundingBox', function () {
57
- expect(calculateBoundingBox(TEST_GEOMETRY.coordinates)).toEqual(TEST_GEOMETRY.boundingBox);
58
- });
59
- it('Calculates the correct bounding box center', function () {
60
- expect(calculateBoundingBoxCenter(calculateBoundingBox(TEST_GEOMETRY.coordinates))).toEqual(TEST_GEOMETRY.center);
61
- });
62
- it('Calculates the correct coordinate center', function () {
63
- expect(calculateCenter(TEST_GEOMETRY.coordinates)).toEqual(TEST_GEOMETRY.center);
64
- });
65
- it('Expands bounding box with 1 km', function () {
66
- const DEGREE_PER_KM = 0.0089;
67
- const expandedBoundingBox = [
68
- 1 - DEGREE_PER_KM,
69
- 2 - DEGREE_PER_KM,
70
- 3 + DEGREE_PER_KM,
71
- 4 + DEGREE_PER_KM,
72
- ];
73
- expect(expandBoundingBox(TEST_GEOMETRY.boundingBox, 1)).toEqual(expandedBoundingBox);
74
- });
75
- it('Boundingbox is within boundingbox', function () {
76
- expect(withinBoundingBox(TEST_GEOMETRY.coordinates, [0.9, 1.9, 3.1, 4.1])).toBe(true);
77
- });
78
- it('Calculates the correct distance between vectors', function () {
79
- const VECTOR_A = [1, 1];
80
- const VECTOR_B = [2, 2];
81
- expect(calculateDistance(VECTOR_A, VECTOR_B)).toEqual(1.4142135623730951);
82
- });
83
- it('Calculates correct mapData center', function () {
84
- expect(calculateMapDataCenter(MAP_DATA)).toEqual([4.5, 5]);
85
- });
86
- });
87
- //# sourceMappingURL=geometry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"geometry.test.js","sourceRoot":"","sources":["../../../src/geometry/geometry.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { BoundingBox, Coordinates, MapData } from '@bpd-library/types';\n\nimport { PolygonModel } from '../generated';\nimport {\n calculateBoundingBox,\n calculateBoundingBoxCenter,\n calculateCenter,\n calculateDistance,\n calculateMapDataCenter,\n expandBoundingBox,\n withinBoundingBox,\n} from './geometry';\n\nexport const TEST_GEOMETRY: {\n coordinates: Coordinates;\n boundingBox: BoundingBox;\n center: [number, number];\n apiGeometry: PolygonModel[];\n} = {\n coordinates: [\n [\n [1, 2],\n [3, 4],\n [1.5, 2.5],\n ],\n [\n [1, 2],\n [3, 4],\n [1.5, 2.5],\n ],\n ],\n boundingBox: [1, 2, 3, 4],\n center: [2, 3],\n apiGeometry: [\n {\n coordinates: [\n [1, 2],\n [3, 4],\n [1.5, 2.5],\n ],\n },\n {\n coordinates: [\n [1, 2],\n [3, 4],\n [1.5, 2.5],\n ],\n },\n ],\n};\n\nconst MAP_DATA: MapData = [\n {\n id: '1',\n coordinates: TEST_GEOMETRY.coordinates,\n variant: 'default',\n },\n {\n id: '2',\n coordinates: [\n [\n [5, 6],\n [5, 1],\n ],\n [\n [1, 2],\n [8, 9],\n ],\n ],\n variant: 'default',\n },\n];\n\ndescribe('Geometry', function () {\n it('Calculates the correct coordinates boundingBox', function () {\n expect(calculateBoundingBox(TEST_GEOMETRY.coordinates)).toEqual(TEST_GEOMETRY.boundingBox);\n });\n\n it('Calculates the correct bounding box center', function () {\n expect(calculateBoundingBoxCenter(calculateBoundingBox(TEST_GEOMETRY.coordinates))).toEqual(\n TEST_GEOMETRY.center,\n );\n });\n\n it('Calculates the correct coordinate center', function () {\n expect(calculateCenter(TEST_GEOMETRY.coordinates)).toEqual(TEST_GEOMETRY.center);\n });\n\n it('Expands bounding box with 1 km', function () {\n const DEGREE_PER_KM = 0.0089;\n const expandedBoundingBox = [\n 1 - DEGREE_PER_KM,\n 2 - DEGREE_PER_KM,\n 3 + DEGREE_PER_KM,\n 4 + DEGREE_PER_KM,\n ];\n\n expect(expandBoundingBox(TEST_GEOMETRY.boundingBox, 1)).toEqual(expandedBoundingBox);\n });\n\n it('Boundingbox is within boundingbox', function () {\n expect(withinBoundingBox(TEST_GEOMETRY.coordinates, [0.9, 1.9, 3.1, 4.1])).toBe(true);\n });\n\n it('Calculates the correct distance between vectors', function () {\n const VECTOR_A: [number, number] = [1, 1];\n const VECTOR_B: [number, number] = [2, 2];\n\n expect(calculateDistance(VECTOR_A, VECTOR_B)).toEqual(1.4142135623730951);\n });\n\n it('Calculates correct mapData center', function () {\n expect(calculateMapDataCenter(MAP_DATA)).toEqual([4.5, 5]);\n });\n});\n"]}
@@ -1,3 +0,0 @@
1
- export * from './geometry';
2
- export * from './country-bounding-box';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './geometry';\nexport * from './country-bounding-box';\n"]}
@@ -1,11 +0,0 @@
1
- export * from './use-scroll-position';
2
- export * from './use-stylesheet';
3
- export * from './use-click-outside';
4
- export * from './use-history';
5
- export * from './use-scroll-to';
6
- export * from './use-url-params';
7
- export * from './use-map-storage';
8
- export * from './use-lazy';
9
- export * from './use-keyboard-focus';
10
- export * from './use-form-changes';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './use-scroll-position';\nexport * from './use-stylesheet';\nexport * from './use-click-outside';\nexport * from './use-history';\nexport * from './use-scroll-to';\nexport * from './use-url-params';\nexport * from './use-map-storage';\nexport * from './use-lazy';\nexport * from './use-keyboard-focus';\nexport * from './use-form-changes';\n"]}
@@ -1,32 +0,0 @@
1
- const defaultOptions = {
2
- removeListener: false,
3
- };
4
- const isNodeList = (target) => NodeList.prototype.isPrototypeOf(target);
5
- const isHTMLElement = (target) => HTMLElement.prototype.isPrototypeOf(target);
6
- const isHTMLCollection = (target) => HTMLCollection.prototype.isPrototypeOf(target);
7
- export function useClickOutside(selector, callback, options) {
8
- const theOptions = Object.assign(Object.assign({}, defaultOptions), options);
9
- const listener = (event) => {
10
- if (isNodeList(selector) || isHTMLCollection(selector)) {
11
- if (Array.from(selector).some(selection => selection.contains(event.target))) {
12
- return callback(false);
13
- }
14
- }
15
- else if (isHTMLElement(selector)) {
16
- if (selector.contains(event.target)) {
17
- return callback(false);
18
- }
19
- }
20
- else {
21
- console.warn('Undefined type of', selector);
22
- return callback(null);
23
- }
24
- if (theOptions.removeListener) {
25
- document.removeEventListener('click', listener);
26
- }
27
- return callback(true);
28
- };
29
- document.addEventListener('click', listener);
30
- return listener;
31
- }
32
- //# sourceMappingURL=use-click-outside.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-click-outside.js","sourceRoot":"","sources":["../../../src/hooks/use-click-outside.ts"],"names":[],"mappings":"AAMA,MAAM,cAAc,GAAY;IAC5B,cAAc,EAAE,KAAK;CACxB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAW,EAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtF,MAAM,aAAa,GAAG,CAAC,MAAW,EAAW,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5F,MAAM,gBAAgB,GAAG,CAAC,MAAW,EAAW,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAElG,MAAM,UAAU,eAAe,CAC3B,QAAkB,EAClB,QAAkB,EAClB,OAAiB;IAEjB,MAAM,UAAU,mCAAQ,cAAc,GAAK,OAAO,CAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;QAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YACpD,IACI,KAAK,CAAC,IAAI,CAAC,QAAqC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC/D,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAC3C,EACH;gBACE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC1B;SACJ;aAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAK,QAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC1B;SACJ;aAAM;YACH,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;SACzB;QAED,IAAI,UAAU,CAAC,cAAc,EAAE;YAC3B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACnD;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE7C,OAAO,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["export type Selector = HTMLElement | HTMLCollection | NodeList | HTMLInputElement;\nexport type Options = {\n removeListener: boolean;\n};\nexport type Callback = (state: boolean | null) => void;\n\nconst defaultOptions: Options = {\n removeListener: false,\n};\n\nconst isNodeList = (target: any): boolean => NodeList.prototype.isPrototypeOf(target);\nconst isHTMLElement = (target: any): boolean => HTMLElement.prototype.isPrototypeOf(target);\nconst isHTMLCollection = (target: any): boolean => HTMLCollection.prototype.isPrototypeOf(target);\n\nexport function useClickOutside(\n selector: Selector,\n callback: Callback,\n options?: Options,\n): EventListener {\n const theOptions = { ...defaultOptions, ...options };\n\n const listener = (event: Event) => {\n if (isNodeList(selector) || isHTMLCollection(selector)) {\n if (\n Array.from(selector as HTMLCollection | NodeList).some(selection =>\n selection.contains(event.target as Node),\n )\n ) {\n return callback(false);\n }\n } else if (isHTMLElement(selector)) {\n if ((selector as HTMLElement).contains(event.target as Node)) {\n return callback(false);\n }\n } else {\n console.warn('Undefined type of', selector);\n return callback(null);\n }\n\n if (theOptions.removeListener) {\n document.removeEventListener('click', listener);\n }\n\n return callback(true);\n };\n\n document.addEventListener('click', listener);\n\n return listener;\n}\n"]}
@@ -1,10 +0,0 @@
1
- import { delegate } from '@atomify/core';
2
- export const useDelegateListen = (selector, type, callback, options = {}) => {
3
- delegate({
4
- target: options.target || document,
5
- selector,
6
- type,
7
- callback,
8
- });
9
- };
10
- //# sourceMappingURL=use-delegate-listen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-delegate-listen.js","sourceRoot":"","sources":["../../../src/hooks/use-delegate-listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,QAAgB,EAChB,IAAY,EACZ,QAA4B,EAC5B,UAA2B,EAAE,EAC/B,EAAE;IACA,QAAQ,CAAC;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;QAClC,QAAQ;QACR,IAAI;QACJ,QAAQ;KACX,CAAC,CAAC;AACP,CAAC,CAAC","sourcesContent":["import { delegate } from '@atomify/core';\ninterface DelegateOptions {\n target?: EventTarget;\n useCapture?: boolean;\n}\nexport const useDelegateListen = (\n selector: string,\n type: string,\n callback: (e: Event) => void,\n options: DelegateOptions = {},\n) => {\n delegate({\n target: options.target || document,\n selector,\n type,\n callback,\n });\n};\n"]}
@@ -1,27 +0,0 @@
1
- import { useListen } from '@atomify/hooks';
2
- let previousState = [];
3
- function setPreviousState(form) {
4
- previousState = [];
5
- if (form.current) {
6
- const entries = new FormData(form.current).entries();
7
- for (const [key, value] of entries) {
8
- previousState.push({ key, value });
9
- }
10
- }
11
- }
12
- export function useFormChanges(form, callback) {
13
- useListen(form, 'change', () => {
14
- if (form.current) {
15
- const entries = new FormData(form.current).entries();
16
- const currentState = [];
17
- for (const [key, value] of entries) {
18
- currentState.push({ key, value });
19
- }
20
- const additions = currentState.filter((itemA) => !previousState.find((itemB) => itemB.key === itemA.key && itemB.value === itemA.value));
21
- const deletions = previousState.filter((itemA) => !currentState.find((itemB) => itemB.key === itemA.key && itemB.value === itemA.value));
22
- setPreviousState(form);
23
- callback({ additions, deletions });
24
- }
25
- });
26
- }
27
- //# sourceMappingURL=use-form-changes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-form-changes.js","sourceRoot":"","sources":["../../../src/hooks/use-form-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAY3C,IAAI,aAAa,GAAe,EAAE,CAAC;AAEnC,SAAS,gBAAgB,CAAC,IAAyC;IAC/D,aAAa,GAAG,EAAE,CAAC;IACnB,IAAI,IAAI,CAAC,OAAO,EAAE;QACd,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YAChC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SACtC;KACJ;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,IAAyC,EACzC,QAAgE;IAEhE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,YAAY,GAAe,EAAE,CAAC;YAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;gBAChC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;aACrC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,EAAE,CACN,CAAC,aAAa,CAAC,IAAI,CACf,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CACpE,CACR,CAAC;YAEF,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,EAAE,CACN,CAAC,YAAY,CAAC,IAAI,CACd,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CACpE,CACR,CAAC;YAEF,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEvB,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;SACtC;IACL,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { useListen } from '@atomify/hooks';\n\ntype FormItem = {\n key: string;\n value: FormDataEntryValue;\n};\n\ntype FormChangeCallback = {\n additions: FormItem[];\n deletions: FormItem[];\n};\n\nlet previousState: FormItem[] = [];\n\nfunction setPreviousState(form: { current: HTMLFormElement | null }) {\n previousState = [];\n if (form.current) {\n const entries = new FormData(form.current).entries();\n for (const [key, value] of entries) {\n previousState.push({ key, value });\n }\n }\n}\n\nexport function useFormChanges(\n form: { current: HTMLFormElement | null },\n callback: ({ additions, deletions }: FormChangeCallback) => void,\n) {\n useListen(form, 'change', () => {\n if (form.current) {\n const entries = new FormData(form.current).entries();\n const currentState: FormItem[] = [];\n\n for (const [key, value] of entries) {\n currentState.push({ key, value });\n }\n\n const additions = currentState.filter(\n (itemA) =>\n !previousState.find(\n (itemB) => itemB.key === itemA.key && itemB.value === itemA.value,\n ),\n );\n\n const deletions = previousState.filter(\n (itemA) =>\n !currentState.find(\n (itemB) => itemB.key === itemA.key && itemB.value === itemA.value,\n ),\n );\n\n setPreviousState(form);\n\n callback({ additions, deletions });\n }\n });\n}\n"]}
@@ -1,13 +0,0 @@
1
- export const useHistory = () => {
2
- function pushHistory(url) {
3
- window.history.pushState({}, document.title, url);
4
- }
5
- function replaceHistory(url) {
6
- window.history.replaceState({}, document.title, url);
7
- }
8
- return {
9
- push: pushHistory,
10
- replace: replaceHistory,
11
- };
12
- };
13
- //# sourceMappingURL=use-history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-history.js","sourceRoot":"","sources":["../../../src/hooks/use-history.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC3B,SAAS,WAAW,CAAC,GAAW;QAC5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,cAAc,CAAC,GAAW;QAC/B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KAC1B,CAAC;AACN,CAAC,CAAC","sourcesContent":["export const useHistory = () => {\n function pushHistory(url: string) {\n window.history.pushState({}, document.title, url);\n }\n\n function replaceHistory(url: string) {\n window.history.replaceState({}, document.title, url);\n }\n\n return {\n push: pushHistory,\n replace: replaceHistory,\n };\n};\n"]}
@@ -1,28 +0,0 @@
1
- import { useBindMethod, useElement, useElements, useEvent, useListen } from '@atomify/hooks';
2
- export const useInput = ({ inputElements, errorTarget, inputLabelTarget = '', onInputChange = () => null, onInputFocus = () => null, onInputBlur = () => null, onInputInput = () => null, onInputFocusout = () => null, resetInput = () => null, onRebindValue = () => null, onValidate, }) => {
3
- const inputs = useElements(inputElements);
4
- const errorHolder = useElement(errorTarget);
5
- const inputLabel = inputLabelTarget
6
- ? useElement(inputLabelTarget)
7
- : { current: null };
8
- const bindValueChanged = useEvent({ eventName: 'bindValueChanged' });
9
- const inputValidate = useEvent({
10
- eventName: 'input-validate',
11
- });
12
- useListen(inputs, 'change', onInputChange);
13
- useListen(inputs, 'focus', onInputFocus);
14
- useListen(inputs, 'blur', onInputBlur);
15
- useListen(inputs, 'input', onInputInput);
16
- useListen(inputs, 'focusout', onInputFocusout);
17
- useBindMethod('resetInput', resetInput);
18
- useBindMethod('rebindValue', onRebindValue);
19
- useBindMethod('validate', onValidate);
20
- return {
21
- inputs,
22
- errorHolder,
23
- inputLabel,
24
- bindValueChanged,
25
- inputValidate,
26
- };
27
- };
28
- //# sourceMappingURL=use-input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-input.js","sourceRoot":"","sources":["../../../src/hooks/use-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAsB7F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACrB,aAAa,EACb,WAAW,EACX,gBAAgB,GAAG,EAAE,EACrB,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,EACzB,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,EACxB,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,EACzB,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,EAC5B,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,EACvB,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,UAAU,GACH,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,WAAW,CAAqB,aAAa,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAc,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,gBAAgB;QAC/B,CAAC,CAAC,UAAU,CAAmB,gBAAgB,CAAC;QAChD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExB,MAAM,gBAAgB,GAAG,QAAQ,CAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,QAAQ,CAK3B;QACC,SAAS,EAAE,gBAAgB;KAC9B,CAAC,CAAC;IAEH,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAE/C,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAKxC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAM5C,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtC,OAAO;QACH,MAAM;QACN,WAAW;QACX,UAAU;QACV,gBAAgB;QAChB,aAAa;KAChB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useBindMethod, useElement, useElements, useEvent, useListen } from '@atomify/hooks';\n\ninterface UseInput {\n inputElements: string;\n errorTarget: string;\n inputLabelTarget?: string;\n onRebindValue?: (value: any) => void;\n onValidate: () => void;\n onInputChange?: (e?: any) => void;\n onInputFocus?: (e?: any) => void;\n onInputBlur?: (e?: any) => void;\n onInputInput?: (e?: any) => void;\n onInputFocusout?: (e?: any) => void;\n resetInput?: () => void;\n}\n\nexport interface UseInputElement {\n rebindValue: (value: any) => void;\n validate: () => boolean;\n resetInput?: () => void;\n}\n\nexport const useInput = ({\n inputElements,\n errorTarget,\n inputLabelTarget = '',\n onInputChange = () => null,\n onInputFocus = () => null,\n onInputBlur = () => null,\n onInputInput = () => null,\n onInputFocusout = () => null,\n resetInput = () => null,\n onRebindValue = () => null,\n onValidate,\n}: UseInput) => {\n const inputs = useElements<HTMLInputElement[]>(inputElements);\n const errorHolder = useElement<HTMLElement>(errorTarget);\n const inputLabel = inputLabelTarget\n ? useElement<HTMLLabelElement>(inputLabelTarget)\n : { current: null };\n\n const bindValueChanged = useEvent<any>({ eventName: 'bindValueChanged' });\n const inputValidate = useEvent<{\n errorMessage: string;\n value: any;\n isValid: boolean;\n input: HTMLInputElement;\n }>({\n eventName: 'input-validate',\n });\n\n useListen(inputs, 'change', onInputChange);\n useListen(inputs, 'focus', onInputFocus);\n useListen(inputs, 'blur', onInputBlur);\n useListen(inputs, 'input', onInputInput);\n useListen(inputs, 'focusout', onInputFocusout);\n\n useBindMethod('resetInput', resetInput);\n\n /**\n * Adds a rebindValue function to the input component\n */\n useBindMethod('rebindValue', onRebindValue);\n\n /**\n * Adds a validate function to the input component\n * It validates the component based upon validation types and the value.\n */\n useBindMethod('validate', onValidate);\n\n return {\n inputs,\n errorHolder,\n inputLabel,\n bindValueChanged,\n inputValidate,\n };\n};\n"]}
@@ -1,11 +0,0 @@
1
- import { useListen, useRef, useWatch } from '@atomify/hooks';
2
- export const useUsingKeyboard = ({ defaultUsingKeyboard = false, className = 'using-keyboard', }) => {
3
- const usingKeyboard = useRef(defaultUsingKeyboard);
4
- useListen({ current: document.body }, 'mousedown', () => (usingKeyboard.current = false));
5
- useListen({ current: document.body }, 'keydown', () => (usingKeyboard.current = true));
6
- useWatch(() => {
7
- const action = usingKeyboard.current ? 'add' : 'remove';
8
- document.body.classList[action](className);
9
- });
10
- };
11
- //# sourceMappingURL=use-keyboard-focus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-keyboard-focus.js","sourceRoot":"","sources":["../../../src/hooks/use-keyboard-focus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC7B,oBAAoB,GAAG,KAAK,EAC5B,SAAS,GAAG,gBAAgB,GACX,EAAE,EAAE;IACrB,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEnD,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvF,QAAQ,CAAC,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC","sourcesContent":["import { useListen, useRef, useWatch } from '@atomify/hooks';\ninterface UsingKeyBoardProps {\n defaultUsingKeyboard?: boolean;\n className?: string;\n}\n\nexport const useUsingKeyboard = ({\n defaultUsingKeyboard = false,\n className = 'using-keyboard',\n}: UsingKeyBoardProps) => {\n const usingKeyboard = useRef(defaultUsingKeyboard);\n\n useListen({ current: document.body }, 'mousedown', () => (usingKeyboard.current = false));\n useListen({ current: document.body }, 'keydown', () => (usingKeyboard.current = true));\n\n useWatch(() => {\n const action = usingKeyboard.current ? 'add' : 'remove';\n document.body.classList[action](className);\n });\n};\n"]}
@@ -1,44 +0,0 @@
1
- import { useElement, useRef } from '@atomify/hooks';
2
- export const LAZY_HOOKS = {
3
- LAZY_LOADING_HOOK: 'data-lazy-loading',
4
- LAZY_ERROR_HOOK: 'data-lazy-error',
5
- LAZY_SUCCESS_HOOK: 'data-lazy-success',
6
- };
7
- export const LAZY_STATES = {
8
- ERROR: 'error',
9
- LOADING: 'loading',
10
- SUCCESS: 'success',
11
- };
12
- export const useLazy = ({ fetcher, loadingResult, errorResult, successResult, }) => {
13
- const LazyResult = useRef(loadingResult);
14
- const lazyLoadingResult = useElement(`[${LAZY_HOOKS.LAZY_LOADING_HOOK}]`);
15
- const lazyErrorResult = useElement(`${[LAZY_HOOKS.LAZY_ERROR_HOOK]}`);
16
- const lazySuccessResult = useElement(`${[LAZY_HOOKS.LAZY_SUCCESS_HOOK]}`);
17
- const response = useRef(null);
18
- const state = useRef(LAZY_STATES.LOADING);
19
- async function initFetcher() {
20
- const activeChild = lazyLoadingResult.current ||
21
- lazySuccessResult.current ||
22
- lazyErrorResult.current ||
23
- false;
24
- if (state.current !== LAZY_STATES.LOADING) {
25
- state.current = LAZY_STATES.LOADING;
26
- }
27
- try {
28
- const data = await fetcher();
29
- response.current = data;
30
- if (activeChild && activeChild.parentNode) {
31
- activeChild.parentNode.replaceChild(successResult(data), activeChild);
32
- }
33
- state.current = LAZY_STATES.SUCCESS;
34
- }
35
- catch (error) {
36
- if (activeChild && activeChild.parentNode) {
37
- activeChild.parentNode.replaceChild(errorResult(), activeChild);
38
- }
39
- state.current = LAZY_STATES.ERROR;
40
- }
41
- }
42
- return [LazyResult.current, initFetcher, response, state];
43
- };
44
- //# sourceMappingURL=use-lazy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-lazy.js","sourceRoot":"","sources":["../../../src/hooks/use-lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAmBpD,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAU,EAC7B,OAAO,EACP,aAAa,EACb,WAAW,EACX,aAAa,GACC,EAAiB,EAAE;IACjC,MAAM,UAAU,GAAG,MAAM,CAAmB,aAAa,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GAAG,UAAU,CAAc,IAAI,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,UAAU,CAAc,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,UAAU,CAAc,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,CAAW,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAS,WAAW,CAAC,OAAO,CAAC,CAAC;IAElD,KAAK,UAAU,WAAW;QACtB,MAAM,WAAW,GACb,iBAAiB,CAAC,OAAO;YACzB,iBAAiB,CAAC,OAAO;YACzB,eAAe,CAAC,OAAO;YACvB,KAAK,CAAC;QAEV,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;YACvC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;SACvC;QAED,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAE7B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAExB,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE;gBACvC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;aACzE;YAED,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE;gBACvC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;aACnE;YAED,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;SACrC;IACL,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC","sourcesContent":["import { useElement, useRef } from '@atomify/hooks';\nimport { MutableRefObject } from '@atomify/hooks/dist/hooks';\n\ntype LazyResult = HTMLElement;\n\ninterface UseLazyProps<T> {\n fetcher: () => Promise<T>;\n loadingResult: () => LazyResult;\n errorResult: () => LazyResult;\n successResult: (data?: T) => LazyResult;\n}\n\ntype LazyReturn<T> = [\n () => LazyResult,\n () => Promise<void>,\n MutableRefObject<T | null>,\n MutableRefObject<string>,\n];\n\nexport const LAZY_HOOKS = {\n LAZY_LOADING_HOOK: 'data-lazy-loading',\n LAZY_ERROR_HOOK: 'data-lazy-error',\n LAZY_SUCCESS_HOOK: 'data-lazy-success',\n};\n\nexport const LAZY_STATES = {\n ERROR: 'error',\n LOADING: 'loading',\n SUCCESS: 'success',\n};\n\nexport const useLazy = <T = any>({\n fetcher,\n loadingResult,\n errorResult,\n successResult,\n}: UseLazyProps<T>): LazyReturn<T> => {\n const LazyResult = useRef<() => LazyResult>(loadingResult);\n const lazyLoadingResult = useElement<HTMLElement>(`[${LAZY_HOOKS.LAZY_LOADING_HOOK}]`);\n const lazyErrorResult = useElement<HTMLElement>(`${[LAZY_HOOKS.LAZY_ERROR_HOOK]}`);\n const lazySuccessResult = useElement<HTMLElement>(`${[LAZY_HOOKS.LAZY_SUCCESS_HOOK]}`);\n const response = useRef<T | null>(null);\n const state = useRef<string>(LAZY_STATES.LOADING);\n\n async function initFetcher() {\n const activeChild =\n lazyLoadingResult.current ||\n lazySuccessResult.current ||\n lazyErrorResult.current ||\n false;\n\n if (state.current !== LAZY_STATES.LOADING) {\n state.current = LAZY_STATES.LOADING;\n }\n\n try {\n const data = await fetcher();\n\n response.current = data;\n\n if (activeChild && activeChild.parentNode) {\n activeChild.parentNode.replaceChild(successResult(data), activeChild);\n }\n\n state.current = LAZY_STATES.SUCCESS;\n } catch (error) {\n if (activeChild && activeChild.parentNode) {\n activeChild.parentNode.replaceChild(errorResult(), activeChild);\n }\n\n state.current = LAZY_STATES.ERROR;\n }\n }\n\n return [LazyResult.current, initFetcher, response, state];\n};\n"]}
@@ -1,14 +0,0 @@
1
- export const useMapStorage = () => {
2
- const mapStorage = new Map();
3
- const setItem = (key, value) => mapStorage.set(key, value);
4
- const getItem = (key) => mapStorage.get(key);
5
- const hasItem = (key) => mapStorage.has(key);
6
- const deleteItem = (key) => mapStorage.delete(key);
7
- return {
8
- setItem,
9
- getItem,
10
- hasItem,
11
- deleteItem,
12
- };
13
- };
14
- //# sourceMappingURL=use-map-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-map-storage.js","sourceRoot":"","sources":["../../../src/hooks/use-map-storage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAqB,EAAE;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAQ,CAAC;IAEnC,MAAM,OAAO,GAAG,CAAC,GAAM,EAAE,KAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,CAAC,GAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,CAAC,GAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,CAAC,GAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO;QACH,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;KACb,CAAC;AACN,CAAC,CAAC","sourcesContent":["export const useMapStorage = <T = any, V = any>() => {\n const mapStorage = new Map<T, V>();\n\n const setItem = (key: T, value: V) => mapStorage.set(key, value);\n\n const getItem = (key: T) => mapStorage.get(key);\n\n const hasItem = (key: T) => mapStorage.has(key);\n\n const deleteItem = (key: T) => mapStorage.delete(key);\n\n return {\n setItem,\n getItem,\n hasItem,\n deleteItem,\n };\n};\n"]}
@@ -1,20 +0,0 @@
1
- import { useListen, useRef } from '@atomify/hooks';
2
- import { rafThrottle } from '../raf-throttle';
3
- export const useScrollPosition = (callback, useWindow) => {
4
- const position = useRef(getScrollPosition(useWindow));
5
- function setScrollPosition() {
6
- const currentPosition = getScrollPosition(useWindow);
7
- callback({ prevPosition: position.current, currentPosition });
8
- position.current = currentPosition;
9
- }
10
- const throttle = rafThrottle(setScrollPosition);
11
- useListen(window, 'scroll', throttle);
12
- };
13
- function getScrollPosition(useWindow) {
14
- const target = document.body;
15
- const position = target.getBoundingClientRect();
16
- return useWindow
17
- ? { x: window.scrollX, y: window.scrollY }
18
- : { x: position.left, y: position.top };
19
- }
20
- //# sourceMappingURL=use-scroll-position.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-scroll-position.js","sourceRoot":"","sources":["../../../src/hooks/use-scroll-position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAoB9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,QAAqE,EACrE,SAAmB,EACrB,EAAE;IACA,MAAM,QAAQ,GAAG,MAAM,CAAiB,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtE,SAAS,iBAAiB;QACtB,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrD,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC9D,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAEhD,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAOF,SAAS,iBAAiB,CAAC,SAA8B;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAEhD,OAAO,SAAS;QACZ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE;QAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChD,CAAC","sourcesContent":["import { useListen, useRef } from '@atomify/hooks';\n\nimport { rafThrottle } from '../raf-throttle';\n\ntype ScrollPosition = { x: number; y: number };\nexport type ScrollCallback = {\n prevPosition: ScrollPosition;\n currentPosition: ScrollPosition;\n};\n\n/**\n * Hook that returns the browser viewport X and Y scroll position.\n * @param {({\n * currentPosition,\n * prevPosition,\n * }: {\n * prevPosition: ScrollPosition;\n * currentPosition: ScrollPosition;\n * }) => void} callback\n * @param {boolean} [useWindow]\n * @param {number} [wait]\n */\nexport const useScrollPosition = (\n callback: ({ currentPosition, prevPosition }: ScrollCallback) => void,\n useWindow?: boolean,\n) => {\n const position = useRef<ScrollPosition>(getScrollPosition(useWindow));\n\n function setScrollPosition() {\n const currentPosition = getScrollPosition(useWindow);\n callback({ prevPosition: position.current, currentPosition });\n position.current = currentPosition;\n }\n\n const throttle = rafThrottle(setScrollPosition);\n\n useListen(window, 'scroll', throttle);\n};\n\n/**\n * Returns the current scroll position\n * @param {(boolean | undefined)} useWindow\n * @returns\n */\nfunction getScrollPosition(useWindow: boolean | undefined) {\n const target = document.body;\n const position = target.getBoundingClientRect();\n\n return useWindow\n ? { x: window.scrollX, y: window.scrollY }\n : { x: position.left, y: position.top };\n}\n"]}
@@ -1,64 +0,0 @@
1
- const ST_DURATION = 500;
2
- const ST_OFFSET = 50;
3
- export const useScrollTo = (options = {}) => {
4
- function to(target) {
5
- const scrollConfig = {
6
- position: target.getBoundingClientRect(),
7
- offset: options.offset || ST_OFFSET,
8
- duration: options.duration || ST_DURATION,
9
- scrollElement: options.scrollElement || null,
10
- delay: options.delay || 0,
11
- };
12
- return scrollTo(scrollConfig);
13
- }
14
- return to;
15
- };
16
- function scrollTo({ position, offset, duration, scrollElement, delay, }) {
17
- return new Promise(resolve => {
18
- const scrollPosition = window.scrollY === undefined ? window.pageYOffset : window.scrollY;
19
- const to = parseInt((position.top + scrollPosition - offset).toFixed(0), 10);
20
- const start = scrollElement
21
- ? scrollElement.scrollTop
22
- : Math.max(document.body.scrollTop, document.documentElement.scrollTop);
23
- const change = to - start;
24
- let currentTime = 0;
25
- const increment = 10;
26
- const direction = to > start ? 1 : 0;
27
- let timeout;
28
- const animate = () => {
29
- currentTime += increment;
30
- const val = parseInt(easeInOutQuad(currentTime, start, change, duration).toFixed(0), 10);
31
- if (scrollElement) {
32
- scrollElement.scrollTop = val;
33
- }
34
- else {
35
- document.body.scrollTop = val;
36
- document.documentElement.scrollTop = val;
37
- }
38
- if ((val >= to && direction === 1) || (val <= to && direction === 0)) {
39
- resolve();
40
- }
41
- else {
42
- requestAnimationFrame(animate);
43
- }
44
- };
45
- if (delay > 0) {
46
- timeout = setTimeout(() => {
47
- animate();
48
- clearTimeout(timeout);
49
- }, delay);
50
- }
51
- else {
52
- animate();
53
- }
54
- });
55
- }
56
- function easeInOutQuad(t, b, c, d) {
57
- t /= d / 2;
58
- if (t < 1) {
59
- return (c / 2) * t * t + b;
60
- }
61
- t--;
62
- return (-c / 2) * (t * (t - 2) - 1) + b;
63
- }
64
- //# sourceMappingURL=use-scroll-to.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-scroll-to.js","sourceRoot":"","sources":["../../../src/hooks/use-scroll-to.ts"],"names":[],"mappings":"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","sourcesContent":["const ST_DURATION = 500;\nconst ST_OFFSET = 50;\n\ninterface ScrollOptions {\n offset?: number;\n duration?: number;\n scrollElement?: HTMLElement;\n delay?: number;\n}\n\nexport const useScrollTo = (options: ScrollOptions = {}) => {\n function to(target: HTMLElement) {\n const scrollConfig = {\n position: target.getBoundingClientRect(),\n offset: options.offset || ST_OFFSET,\n duration: options.duration || ST_DURATION,\n scrollElement: options.scrollElement || null,\n delay: options.delay || 0,\n };\n\n return scrollTo(scrollConfig);\n }\n\n return to;\n};\n\n/**\n * Scrolls to an element\n * @param {({\n * position: DOMRect;\n * offset: number;\n * duration: number;\n * scrollElement: HTMLElement | null;\n * })} {\n * position,\n * offset,\n * duration,\n * scrollElement,\n * }\n * @returns\n */\nfunction scrollTo({\n position,\n offset,\n duration,\n scrollElement,\n delay,\n}: {\n position: DOMRect;\n offset: number;\n duration: number;\n scrollElement: HTMLElement | null;\n delay: number;\n}) {\n return new Promise(resolve => {\n const scrollPosition = window.scrollY === undefined ? window.pageYOffset : window.scrollY;\n const to = parseInt((position.top + scrollPosition - offset).toFixed(0), 10);\n const start = scrollElement\n ? scrollElement.scrollTop\n : Math.max(document.body.scrollTop, document.documentElement.scrollTop);\n const change = to - start;\n let currentTime = 0;\n const increment = 10;\n const direction = to > start ? 1 : 0;\n\n let timeout: any;\n\n const animate = () => {\n currentTime += increment;\n const val = parseInt(\n easeInOutQuad(currentTime, start, change, duration).toFixed(0),\n 10,\n );\n\n if (scrollElement) {\n scrollElement.scrollTop = val;\n } else {\n document.body.scrollTop = val;\n document.documentElement.scrollTop = val;\n }\n\n if ((val >= to && direction === 1) || (val <= to && direction === 0)) {\n resolve();\n } else {\n requestAnimationFrame(animate);\n }\n };\n\n if (delay > 0) {\n timeout = setTimeout(() => {\n animate();\n clearTimeout(timeout);\n }, delay);\n } else {\n animate();\n }\n });\n}\n\nfunction easeInOutQuad(t: number, b: number, c: number, d: number) {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * t * t + b;\n }\n t--;\n return (-c / 2) * (t * (t - 2) - 1) + b;\n}\n"]}
@@ -1,5 +0,0 @@
1
- import { unsafeCSS, useStyles } from '@atomify/hooks';
2
- export function useStylesheet(style) {
3
- useStyles(() => unsafeCSS(style));
4
- }
5
- //# sourceMappingURL=use-stylesheet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-stylesheet.js","sourceRoot":"","sources":["../../../src/hooks/use-stylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMtD,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import { unsafeCSS, useStyles } from '@atomify/hooks';\n/**\n * Add styling through imported css files (Webpack)\n * @export\n * @param {string} style\n */\nexport function useStylesheet(style: string) {\n useStyles(() => unsafeCSS(style));\n}\n"]}
@@ -1,16 +0,0 @@
1
- export function useText(initialValue) {
2
- const text = new Text();
3
- Object.defineProperty(text, 'toString', {
4
- value() {
5
- return this.textContent;
6
- },
7
- });
8
- function setText(value) {
9
- text.textContent = value;
10
- }
11
- if (initialValue != null) {
12
- setText(initialValue);
13
- }
14
- return [text, setText];
15
- }
16
- //# sourceMappingURL=use-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-text.js","sourceRoot":"","sources":["../../../src/hooks/use-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,YAAqB;IACzC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;QACpC,KAAK;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;KACJ,CAAC,CAAC;IACH,SAAS,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,IAAI,YAAY,IAAI,IAAI,EAAE;QACtB,OAAO,CAAC,YAAY,CAAC,CAAC;KACzB;IACD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAU,CAAC;AACpC,CAAC","sourcesContent":["export function useText(initialValue?: string) {\n const text = new Text();\n Object.defineProperty(text, 'toString', {\n value() {\n return this.textContent;\n },\n });\n function setText(value: string) {\n text.textContent = value;\n }\n if (initialValue != null) {\n setText(initialValue);\n }\n return [text, setText] as const;\n}\n"]}