@bpd-library/utilities 1.2.8-beta.9 → 1.2.8

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 (297) hide show
  1. package/dist/api-utilities/compose-exclude-string.d.ts +3 -0
  2. package/dist/api-utilities/compose-exclude-string.js +5 -0
  3. package/dist/api-utilities/compose-exclude-string.js.map +1 -0
  4. package/dist/esm/api/http.js +120 -0
  5. package/dist/esm/api/http.js.map +1 -0
  6. package/dist/esm/api/index.js +11 -0
  7. package/dist/esm/api/index.js.map +1 -0
  8. package/dist/esm/api-utilities/compose-exclude-string.js +6 -0
  9. package/dist/esm/api-utilities/compose-exclude-string.js.map +1 -0
  10. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js +13 -0
  11. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js.map +1 -0
  12. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js +29 -0
  13. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js.map +1 -0
  14. package/dist/esm/api-utilities/district-status.js +14 -0
  15. package/dist/esm/api-utilities/district-status.js.map +1 -0
  16. package/dist/esm/api-utilities/find-filter.js +41 -0
  17. package/dist/esm/api-utilities/find-filter.js.map +1 -0
  18. package/dist/esm/api-utilities/get/coordinates.js +31 -0
  19. package/dist/esm/api-utilities/get/coordinates.js.map +1 -0
  20. package/dist/esm/api-utilities/get/layer-raster.js +4 -0
  21. package/dist/esm/api-utilities/get/layer-raster.js.map +1 -0
  22. package/dist/esm/api-utilities/show-mortgage-price.js +11 -0
  23. package/dist/esm/api-utilities/show-mortgage-price.js.map +1 -0
  24. package/dist/esm/api-utilities/show-price.js +13 -0
  25. package/dist/esm/api-utilities/show-price.js.map +1 -0
  26. package/dist/esm/constants/index.js +7 -0
  27. package/dist/esm/constants/index.js.map +1 -0
  28. package/dist/esm/date.js +11 -0
  29. package/dist/esm/date.js.map +1 -0
  30. package/dist/esm/debounce.js +25 -0
  31. package/dist/esm/debounce.js.map +1 -0
  32. package/dist/esm/dom/dom.js +9 -0
  33. package/dist/esm/dom/dom.js.map +1 -0
  34. package/dist/esm/environment.js +27 -0
  35. package/dist/esm/environment.js.map +1 -0
  36. package/dist/esm/extended-api-models/excluded-properties.js +36 -0
  37. package/dist/esm/extended-api-models/excluded-properties.js.map +1 -0
  38. package/dist/esm/extended-api-models/extended-area-projects.js +12 -0
  39. package/dist/esm/extended-api-models/extended-area-projects.js.map +1 -0
  40. package/dist/esm/extended-api-models/extended-area.js +182 -0
  41. package/dist/esm/extended-api-models/extended-area.js.map +1 -0
  42. package/dist/esm/extended-api-models/status/apartment-building-status.js +60 -0
  43. package/dist/esm/extended-api-models/status/apartment-building-status.js.map +1 -0
  44. package/dist/esm/extended-api-models/status/construction-number-status.js +20 -0
  45. package/dist/esm/extended-api-models/status/construction-number-status.js.map +1 -0
  46. package/dist/esm/extended-api-models/status/property-type-status.js +60 -0
  47. package/dist/esm/extended-api-models/status/property-type-status.js.map +1 -0
  48. package/dist/esm/extended-api-models/utilities/apartment-building-view.js +5 -0
  49. package/dist/esm/extended-api-models/utilities/apartment-building-view.js.map +1 -0
  50. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js +37 -0
  51. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js.map +1 -0
  52. package/dist/esm/extended-api-models/utilities/find-extended-object.js +23 -0
  53. package/dist/esm/extended-api-models/utilities/find-extended-object.js.map +1 -0
  54. package/dist/esm/extended-api-models/utilities/is-apartment.js +14 -0
  55. package/dist/esm/extended-api-models/utilities/is-apartment.js.map +1 -0
  56. package/dist/esm/function-is-true.js +13 -0
  57. package/dist/esm/function-is-true.js.map +1 -0
  58. package/dist/esm/generated/bpd-client.js +53 -0
  59. package/dist/esm/generated/bpd-client.js.map +1 -0
  60. package/dist/esm/geometry/country-bounding-box.js +14 -0
  61. package/dist/esm/geometry/country-bounding-box.js.map +1 -0
  62. package/dist/esm/geometry/geometry.js +65 -0
  63. package/dist/esm/geometry/geometry.js.map +1 -0
  64. package/dist/esm/hooks/use-click-outside.js +34 -0
  65. package/dist/esm/hooks/use-click-outside.js.map +1 -0
  66. package/dist/esm/hooks/use-form-changes.js +30 -0
  67. package/dist/esm/hooks/use-form-changes.js.map +1 -0
  68. package/dist/esm/hooks/use-history.js +15 -0
  69. package/dist/esm/hooks/use-history.js.map +1 -0
  70. package/dist/esm/hooks/use-keyboard-focus.js +14 -0
  71. package/dist/esm/hooks/use-keyboard-focus.js.map +1 -0
  72. package/dist/esm/hooks/use-lazy.js +47 -0
  73. package/dist/esm/hooks/use-lazy.js.map +1 -0
  74. package/dist/esm/hooks/use-map-storage.js +16 -0
  75. package/dist/esm/hooks/use-map-storage.js.map +1 -0
  76. package/dist/esm/hooks/use-scroll-position.js +23 -0
  77. package/dist/esm/hooks/use-scroll-position.js.map +1 -0
  78. package/dist/esm/hooks/use-scroll-to.js +66 -0
  79. package/dist/esm/hooks/use-scroll-to.js.map +1 -0
  80. package/dist/esm/hooks/use-stylesheet.js +8 -0
  81. package/dist/esm/hooks/use-stylesheet.js.map +1 -0
  82. package/dist/esm/hooks/use-url-params.js +31 -0
  83. package/dist/esm/hooks/use-url-params.js.map +1 -0
  84. package/dist/esm/index.js +40 -0
  85. package/dist/esm/index.js.map +1 -0
  86. package/dist/esm/is-touch.js +32 -0
  87. package/dist/esm/is-touch.js.map +1 -0
  88. package/dist/esm/media-query/breakpoints.js +29 -0
  89. package/dist/esm/media-query/breakpoints.js.map +1 -0
  90. package/dist/esm/media-query/media-query.js +39 -0
  91. package/dist/esm/media-query/media-query.js.map +1 -0
  92. package/dist/esm/media-query/utils/index.js +35 -0
  93. package/dist/esm/media-query/utils/index.js.map +1 -0
  94. package/dist/esm/raf-throttle.js +24 -0
  95. package/dist/esm/raf-throttle.js.map +1 -0
  96. package/dist/esm/throttle.js +23 -0
  97. package/dist/esm/throttle.js.map +1 -0
  98. package/dist/esm/to-currency.js +26 -0
  99. package/dist/esm/to-currency.js.map +1 -0
  100. package/dist/extended-api-models/excluded-properties.d.ts +5 -0
  101. package/dist/extended-api-models/excluded-properties.js +35 -0
  102. package/dist/extended-api-models/excluded-properties.js.map +1 -0
  103. package/dist/geometry/country-bounding-box.d.ts +1 -1
  104. package/dist/geometry/country-bounding-box.js.map +1 -1
  105. package/dist/hooks/use-stylesheet.d.ts +1 -0
  106. package/dist/hooks/use-stylesheet.js +5 -0
  107. package/dist/hooks/use-stylesheet.js.map +1 -0
  108. package/dist/lib/api/http.js +117 -0
  109. package/dist/lib/api/http.js.map +1 -0
  110. package/dist/lib/api/index.js +8 -0
  111. package/dist/lib/api/index.js.map +1 -0
  112. package/dist/lib/api-utilities/api-utilities.js +9 -0
  113. package/dist/lib/api-utilities/api-utilities.js.map +1 -0
  114. package/dist/lib/api-utilities/api-utilities.test.js +122 -0
  115. package/dist/lib/api-utilities/api-utilities.test.js.map +1 -0
  116. package/dist/lib/api-utilities/api-utilities.types.js +1 -0
  117. package/dist/lib/api-utilities/api-utilities.types.js.map +1 -0
  118. package/dist/lib/api-utilities/compose-exclude-string.js +5 -0
  119. package/dist/lib/api-utilities/compose-exclude-string.js.map +1 -0
  120. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js +12 -0
  121. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js.map +1 -0
  122. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js +27 -0
  123. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js.map +1 -0
  124. package/dist/lib/api-utilities/district-status.js +13 -0
  125. package/dist/lib/api-utilities/district-status.js.map +1 -0
  126. package/dist/lib/api-utilities/find-filter.js +40 -0
  127. package/dist/lib/api-utilities/find-filter.js.map +1 -0
  128. package/dist/lib/api-utilities/get/coordinates.js +29 -0
  129. package/dist/lib/api-utilities/get/coordinates.js.map +1 -0
  130. package/dist/lib/api-utilities/get/layer-raster.js +3 -0
  131. package/dist/lib/api-utilities/get/layer-raster.js.map +1 -0
  132. package/dist/lib/api-utilities/index.js +2 -0
  133. package/dist/lib/api-utilities/index.js.map +1 -0
  134. package/dist/lib/api-utilities/show-mortgage-price.js +10 -0
  135. package/dist/lib/api-utilities/show-mortgage-price.js.map +1 -0
  136. package/dist/lib/api-utilities/show-price.js +12 -0
  137. package/dist/lib/api-utilities/show-price.js.map +1 -0
  138. package/dist/lib/constants/index.js +5 -0
  139. package/dist/lib/constants/index.js.map +1 -0
  140. package/dist/lib/date.js +10 -0
  141. package/dist/lib/date.js.map +1 -0
  142. package/dist/lib/debounce.js +23 -0
  143. package/dist/lib/debounce.js.map +1 -0
  144. package/dist/lib/dom/dom.js +7 -0
  145. package/dist/lib/dom/dom.js.map +1 -0
  146. package/dist/lib/dom/index.js +2 -0
  147. package/dist/lib/dom/index.js.map +1 -0
  148. package/dist/lib/environment.js +25 -0
  149. package/dist/lib/environment.js.map +1 -0
  150. package/dist/lib/extended-api-models/excluded-properties.js +35 -0
  151. package/dist/lib/extended-api-models/excluded-properties.js.map +1 -0
  152. package/dist/lib/extended-api-models/extended-area-projects.js +10 -0
  153. package/dist/lib/extended-api-models/extended-area-projects.js.map +1 -0
  154. package/dist/lib/extended-api-models/extended-area.js +179 -0
  155. package/dist/lib/extended-api-models/extended-area.js.map +1 -0
  156. package/dist/lib/extended-api-models/index.js +7 -0
  157. package/dist/lib/extended-api-models/index.js.map +1 -0
  158. package/dist/lib/extended-api-models/status/apartment-building-status.js +58 -0
  159. package/dist/lib/extended-api-models/status/apartment-building-status.js.map +1 -0
  160. package/dist/lib/extended-api-models/status/construction-number-status.js +19 -0
  161. package/dist/lib/extended-api-models/status/construction-number-status.js.map +1 -0
  162. package/dist/lib/extended-api-models/status/property-type-status.js +58 -0
  163. package/dist/lib/extended-api-models/status/property-type-status.js.map +1 -0
  164. package/dist/lib/extended-api-models/utilities/apartment-building-view.js +4 -0
  165. package/dist/lib/extended-api-models/utilities/apartment-building-view.js.map +1 -0
  166. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js +35 -0
  167. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js.map +1 -0
  168. package/dist/lib/extended-api-models/utilities/find-extended-object.js +21 -0
  169. package/dist/lib/extended-api-models/utilities/find-extended-object.js.map +1 -0
  170. package/dist/lib/extended-api-models/utilities/is-apartment.js +13 -0
  171. package/dist/lib/extended-api-models/utilities/is-apartment.js.map +1 -0
  172. package/dist/lib/function-is-true.js +11 -0
  173. package/dist/lib/function-is-true.js.map +1 -0
  174. package/dist/lib/generated/bpd-client.js +50 -0
  175. package/dist/lib/generated/bpd-client.js.map +1 -0
  176. package/dist/lib/generated/index.js +2 -0
  177. package/dist/lib/generated/index.js.map +1 -0
  178. package/dist/lib/geometry/country-bounding-box.js +12 -0
  179. package/dist/lib/geometry/country-bounding-box.js.map +1 -0
  180. package/dist/lib/geometry/geometry.js +64 -0
  181. package/dist/lib/geometry/geometry.js.map +1 -0
  182. package/dist/lib/geometry/geometry.test.js +87 -0
  183. package/dist/lib/geometry/geometry.test.js.map +1 -0
  184. package/dist/lib/geometry/index.js +3 -0
  185. package/dist/lib/geometry/index.js.map +1 -0
  186. package/dist/lib/hooks/index.js +11 -0
  187. package/dist/lib/hooks/index.js.map +1 -0
  188. package/dist/lib/hooks/use-click-outside.js +32 -0
  189. package/dist/lib/hooks/use-click-outside.js.map +1 -0
  190. package/dist/lib/hooks/use-delegate-listen.js +10 -0
  191. package/dist/lib/hooks/use-delegate-listen.js.map +1 -0
  192. package/dist/lib/hooks/use-form-changes.js +27 -0
  193. package/dist/lib/hooks/use-form-changes.js.map +1 -0
  194. package/dist/lib/hooks/use-history.js +13 -0
  195. package/dist/lib/hooks/use-history.js.map +1 -0
  196. package/dist/lib/hooks/use-input.js +28 -0
  197. package/dist/lib/hooks/use-input.js.map +1 -0
  198. package/dist/lib/hooks/use-keyboard-focus.js +11 -0
  199. package/dist/lib/hooks/use-keyboard-focus.js.map +1 -0
  200. package/dist/lib/hooks/use-lazy.js +44 -0
  201. package/dist/lib/hooks/use-lazy.js.map +1 -0
  202. package/dist/lib/hooks/use-map-storage.js +14 -0
  203. package/dist/lib/hooks/use-map-storage.js.map +1 -0
  204. package/dist/lib/hooks/use-scroll-position.js +20 -0
  205. package/dist/lib/hooks/use-scroll-position.js.map +1 -0
  206. package/dist/lib/hooks/use-scroll-to.js +64 -0
  207. package/dist/lib/hooks/use-scroll-to.js.map +1 -0
  208. package/dist/lib/hooks/use-stylesheet.js +5 -0
  209. package/dist/lib/hooks/use-stylesheet.js.map +1 -0
  210. package/dist/lib/hooks/use-text.js +16 -0
  211. package/dist/lib/hooks/use-text.js.map +1 -0
  212. package/dist/lib/hooks/use-url-params.js +28 -0
  213. package/dist/lib/hooks/use-url-params.js.map +1 -0
  214. package/dist/lib/index.js +18 -0
  215. package/dist/lib/index.js.map +1 -0
  216. package/dist/lib/is-touch.js +30 -0
  217. package/dist/lib/is-touch.js.map +1 -0
  218. package/dist/lib/media-query/breakpoints.js +27 -0
  219. package/dist/lib/media-query/breakpoints.js.map +1 -0
  220. package/dist/lib/media-query/index.js +2 -0
  221. package/dist/lib/media-query/index.js.map +1 -0
  222. package/dist/lib/media-query/media-query.js +36 -0
  223. package/dist/lib/media-query/media-query.js.map +1 -0
  224. package/dist/lib/media-query/media-query.types.js +1 -0
  225. package/dist/lib/media-query/media-query.types.js.map +1 -0
  226. package/dist/lib/media-query/utils/index.js +32 -0
  227. package/dist/lib/media-query/utils/index.js.map +1 -0
  228. package/dist/lib/raf-throttle.js +22 -0
  229. package/dist/lib/raf-throttle.js.map +1 -0
  230. package/dist/lib/throttle.js +22 -0
  231. package/dist/lib/throttle.js.map +1 -0
  232. package/dist/lib/to-currency.js +24 -0
  233. package/dist/lib/to-currency.js.map +1 -0
  234. package/dist/types/api/http.d.ts +47 -0
  235. package/dist/types/api/index.d.ts +2 -0
  236. package/dist/types/api-utilities/api-utilities.d.ts +8 -0
  237. package/dist/types/api-utilities/api-utilities.test.d.ts +1 -0
  238. package/dist/types/api-utilities/api-utilities.types.d.ts +46 -0
  239. package/dist/types/api-utilities/compose-exclude-string.d.ts +3 -0
  240. package/dist/types/api-utilities/decimal-range/merge-decimal-range.d.ts +3 -0
  241. package/dist/types/api-utilities/decimal-range/merge-specification-range.d.ts +13 -0
  242. package/dist/types/api-utilities/district-status.d.ts +3 -0
  243. package/dist/types/api-utilities/find-filter.d.ts +32 -0
  244. package/dist/types/api-utilities/get/coordinates.d.ts +6 -0
  245. package/dist/types/api-utilities/get/layer-raster.d.ts +3 -0
  246. package/dist/types/api-utilities/index.d.ts +1 -0
  247. package/dist/types/api-utilities/show-mortgage-price.d.ts +3 -0
  248. package/dist/types/api-utilities/show-price.d.ts +7 -0
  249. package/dist/types/constants/index.d.ts +4 -0
  250. package/dist/types/date.d.ts +3 -0
  251. package/dist/types/debounce.d.ts +5 -0
  252. package/dist/types/dom/dom.d.ts +6 -0
  253. package/dist/types/dom/index.d.ts +1 -0
  254. package/dist/types/environment.d.ts +9 -0
  255. package/dist/types/extended-api-models/excluded-properties.d.ts +5 -0
  256. package/dist/types/extended-api-models/extended-area-projects.d.ts +3 -0
  257. package/dist/types/extended-api-models/extended-area.d.ts +13 -0
  258. package/dist/types/extended-api-models/index.d.ts +6 -0
  259. package/dist/types/extended-api-models/status/apartment-building-status.d.ts +3 -0
  260. package/dist/types/extended-api-models/status/construction-number-status.d.ts +3 -0
  261. package/dist/types/extended-api-models/status/property-type-status.d.ts +4 -0
  262. package/dist/types/extended-api-models/utilities/apartment-building-view.d.ts +4 -0
  263. package/dist/types/extended-api-models/utilities/extended-model-price-range.d.ts +4 -0
  264. package/dist/types/extended-api-models/utilities/find-extended-object.d.ts +4 -0
  265. package/dist/types/extended-api-models/utilities/is-apartment.d.ts +11 -0
  266. package/dist/types/function-is-true.d.ts +1 -0
  267. package/dist/types/generated/bpd-client.d.ts +808 -0
  268. package/dist/types/generated/index.d.ts +1 -0
  269. package/dist/types/geometry/country-bounding-box.d.ts +6 -0
  270. package/dist/types/geometry/geometry.d.ts +11 -0
  271. package/dist/types/geometry/geometry.test.d.ts +8 -0
  272. package/dist/types/geometry/index.d.ts +2 -0
  273. package/dist/types/hooks/index.d.ts +10 -0
  274. package/dist/types/hooks/use-click-outside.d.ts +6 -0
  275. package/dist/types/hooks/use-delegate-listen.d.ts +6 -0
  276. package/dist/types/hooks/use-form-changes.d.ts +12 -0
  277. package/dist/types/hooks/use-history.d.ts +4 -0
  278. package/dist/types/hooks/use-input.d.ts +41 -0
  279. package/dist/types/hooks/use-keyboard-focus.d.ts +6 -0
  280. package/dist/types/hooks/use-lazy.d.ts +21 -0
  281. package/dist/types/hooks/use-map-storage.d.ts +6 -0
  282. package/dist/types/hooks/use-scroll-position.d.ts +10 -0
  283. package/dist/types/hooks/use-scroll-to.d.ts +8 -0
  284. package/dist/types/hooks/use-stylesheet.d.ts +1 -0
  285. package/dist/types/hooks/use-text.d.ts +1 -0
  286. package/dist/types/hooks/use-url-params.d.ts +5 -0
  287. package/dist/types/index.d.ts +17 -0
  288. package/dist/types/is-touch.d.ts +8 -0
  289. package/dist/types/media-query/breakpoints.d.ts +26 -0
  290. package/dist/types/media-query/index.d.ts +1 -0
  291. package/dist/types/media-query/media-query.d.ts +13 -0
  292. package/dist/types/media-query/media-query.types.d.ts +14 -0
  293. package/dist/types/media-query/utils/index.d.ts +3 -0
  294. package/dist/types/raf-throttle.d.ts +4 -0
  295. package/dist/types/throttle.d.ts +2 -0
  296. package/dist/types/to-currency.d.ts +3 -0
  297. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,32 @@
1
+ const IS_TOUCH = 'is-touch';
2
+ const WITH_MOUSE = `${IS_TOUCH}--with-mouse`;
3
+ const html = document.documentElement;
4
+ class DetectTouch {
5
+ constructor() {
6
+ this.hasMouse = false;
7
+ this.touch =
8
+ 'ontouchstart' in html ||
9
+ navigator.maxTouchPoints > 0 ||
10
+ navigator.msMaxTouchPoints > 0;
11
+ html.addEventListener('touchstart', () => {
12
+ html.removeEventListener('mousemove', () => this.handleMouseEvent());
13
+ });
14
+ html.addEventListener('mousemove', () => this.handleMouseEvent());
15
+ if (this.touch) {
16
+ html.classList.add(IS_TOUCH);
17
+ }
18
+ }
19
+ get isTouchDevice() {
20
+ return this.touch;
21
+ }
22
+ handleMouseEvent() {
23
+ if (!this.hasMouse && html.classList.contains(IS_TOUCH)) {
24
+ html.classList.add(WITH_MOUSE);
25
+ this.hasMouse = true;
26
+ }
27
+ }
28
+ }
29
+ const detectTouch = new DetectTouch();
30
+
31
+ export { DetectTouch, detectTouch };
32
+ //# sourceMappingURL=is-touch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-touch.js","sources":["../../src/is-touch.ts"],"sourcesContent":["const IS_TOUCH = 'is-touch';\nconst WITH_MOUSE = `${IS_TOUCH}--with-mouse`;\nconst html = document.documentElement;\n\nexport class DetectTouch {\n touch: boolean;\n hasMouse: boolean;\n\n get isTouchDevice() {\n return this.touch;\n }\n\n constructor() {\n this.hasMouse = false;\n this.touch =\n 'ontouchstart' in html ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0;\n\n html.addEventListener('touchstart', () => {\n html.removeEventListener('mousemove', () => this.handleMouseEvent());\n });\n\n html.addEventListener('mousemove', () => this.handleMouseEvent());\n\n if (this.touch) {\n html.classList.add(IS_TOUCH);\n }\n }\n\n handleMouseEvent() {\n if (!this.hasMouse && html.classList.contains(IS_TOUCH)) {\n html.classList.add(WITH_MOUSE);\n this.hasMouse = true;\n }\n }\n}\n\nexport const detectTouch = new DetectTouch();\n"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,UAAU,GAAG,GAAG,QAAQ,cAAc,CAAC;AAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;MAEzB,WAAW;IAQpB;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK;YACN,cAAc,IAAI,IAAI;gBACtB,SAAS,CAAC,cAAc,GAAG,CAAC;gBAC5B,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAChC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAChC;KACJ;IApBD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAoBD,gBAAgB;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;KACJ;CACJ;MAEY,WAAW,GAAG,IAAI,WAAW;;;;"}
@@ -0,0 +1,29 @@
1
+ const breakpoints = {
2
+ mobile: {
3
+ size: 320,
4
+ active: false,
5
+ },
6
+ mobilePlus: {
7
+ size: 480,
8
+ active: false,
9
+ },
10
+ tabletPortrait: {
11
+ size: 768,
12
+ active: false,
13
+ },
14
+ tabletLandscape: {
15
+ size: 1024,
16
+ active: false,
17
+ },
18
+ laptop: {
19
+ size: 1260,
20
+ active: false,
21
+ },
22
+ desktop: {
23
+ size: 1600,
24
+ active: false,
25
+ },
26
+ };
27
+
28
+ export { breakpoints };
29
+ //# sourceMappingURL=breakpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoints.js","sources":["../../../src/media-query/breakpoints.ts"],"sourcesContent":["export const breakpoints = {\n mobile: {\n size: 320,\n active: false,\n },\n mobilePlus: {\n size: 480,\n active: false,\n },\n tabletPortrait: {\n size: 768,\n active: false,\n },\n tabletLandscape: {\n size: 1024,\n active: false,\n },\n laptop: {\n size: 1260,\n active: false,\n },\n desktop: {\n size: 1600,\n active: false,\n },\n};\n"],"names":[],"mappings":"MAAa,WAAW,GAAG;IACvB,MAAM,EAAE;QACJ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACZ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;KAChB;IACD,eAAe,EAAE;QACb,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,KAAK;KAChB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,KAAK;KAChB;;;;;"}
@@ -0,0 +1,39 @@
1
+ import { breakpoints } from './breakpoints.js';
2
+ export { breakpoints } from './breakpoints.js';
3
+ import { getSizeFromBreakpoint, getMediaQueries } from './utils/index.js';
4
+
5
+ const max = (breakpoint) => `(max-width: ${getSizeFromBreakpoint(breakpoint)}px)`;
6
+ const min = (breakpoint) => `(min-width: ${getSizeFromBreakpoint(breakpoint)}px)`;
7
+ const mediaIsMatch = (breakpoint) => window.matchMedia(breakpoint).matches;
8
+ const deviceWidth = {
9
+ isMobilePlusAndSmaller: mediaIsMatch(`${min('mobile')} and ${max('mobilePlus')}`),
10
+ isTabletPortraitAndSmaller: mediaIsMatch(`${min('mobile')} and ${max('tabletPortrait')}`),
11
+ };
12
+ const mediaWatcher = (mediaQuery, layoutChangedCallback) => {
13
+ const mediaQueryListener = window.matchMedia(mediaQuery);
14
+ mediaQueryListener.addListener((e) => layoutChangedCallback(e.matches));
15
+ layoutChangedCallback(mediaQueryListener.matches);
16
+ };
17
+ const getCurrentBreakpoint = () => getMediaQueries().reduce((previous, current) => window.matchMedia(current.query()).matches ? current.breakpoint : previous, undefined);
18
+ const useMedia = (callback) => {
19
+ const breakpointObject = getMediaQueries();
20
+ breakpointObject
21
+ .map((breakpoint) => {
22
+ return {
23
+ listener: window.matchMedia(breakpoint.query()),
24
+ breakpoint: breakpoint.breakpoint,
25
+ };
26
+ })
27
+ .forEach((breakpoint) => breakpoint.listener.addListener((e) => handleMediaListeners(e, breakpoint.breakpoint)));
28
+ function handleMediaListeners(event, key) {
29
+ if (!event.matches)
30
+ return;
31
+ Object.keys(breakpoints).forEach((item) => (breakpoints[item].active =
32
+ item === key ? event.matches : !event.matches));
33
+ callback(breakpoints);
34
+ }
35
+ callback(breakpoints);
36
+ };
37
+
38
+ export { deviceWidth, getCurrentBreakpoint, max, mediaIsMatch, mediaWatcher, min, useMedia };
39
+ //# sourceMappingURL=media-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-query.js","sources":["../../../src/media-query/media-query.ts"],"sourcesContent":["import { breakpoints } from './breakpoints';\nimport { BreakpointFunction, Breakpoints, UseMediaFunction } from './media-query.types';\nimport { getMediaQueries, getSizeFromBreakpoint } from './utils';\n\nconst max: BreakpointFunction = (breakpoint) =>\n `(max-width: ${getSizeFromBreakpoint(breakpoint)}px)`;\n\nconst min: BreakpointFunction = (breakpoint) =>\n `(min-width: ${getSizeFromBreakpoint(breakpoint)}px)`;\n\n/**\n * Check if the given breakpoint is a match\n * @param breakpoint { string }\n */\nexport const mediaIsMatch = (breakpoint: string) => window.matchMedia(breakpoint).matches;\n\nexport const deviceWidth = {\n isMobilePlusAndSmaller: mediaIsMatch(`${min('mobile')} and ${max('mobilePlus')}`),\n isTabletPortraitAndSmaller: mediaIsMatch(`${min('mobile')} and ${max('tabletPortrait')}`),\n};\n\n/**\n * Method that calls a callback everytime a media-query matches\n * mediaWatcher(`(min-width: 600px)`, (matches) => {\n * console.log(matches);\n * });\n * @function mediaWatcher\n * @param mediaQuery { string }\n * @param layoutChangedCallback { callback }\n */\nconst mediaWatcher = (\n mediaQuery: string,\n layoutChangedCallback: (mediaQueryMatches: boolean) => void,\n) => {\n const mediaQueryListener = window.matchMedia(mediaQuery);\n mediaQueryListener.addListener((e) => layoutChangedCallback(e.matches));\n layoutChangedCallback(mediaQueryListener.matches);\n};\n\n/**\n * Returns current active breakpoint\n * @function getCurrentBreakpoint\n */\nconst getCurrentBreakpoint = () =>\n getMediaQueries().reduce(\n (previous, current) =>\n window.matchMedia(current.query()).matches ? current.breakpoint : (previous as any),\n undefined,\n );\n\n/**\n * Returns the breakpoints object in the given callback\n * @function useMedia\n * @param callback returns @type Breakpoints\n */\nconst useMedia = (callback: UseMediaFunction) => {\n const breakpointObject = getMediaQueries();\n\n breakpointObject\n .map((breakpoint) => {\n return {\n listener: window.matchMedia(breakpoint.query()),\n breakpoint: breakpoint.breakpoint,\n };\n })\n .forEach((breakpoint) =>\n breakpoint.listener.addListener((e) => handleMediaListeners(e, breakpoint.breakpoint)),\n );\n\n function handleMediaListeners(event: { matches: boolean; media: string }, key: Breakpoints) {\n if (!event.matches) return;\n\n Object.keys(breakpoints).forEach(\n (item: any) =>\n (breakpoints[item as Breakpoints].active =\n item === key ? event.matches : !event.matches),\n );\n\n callback(breakpoints);\n }\n\n callback(breakpoints);\n};\n\nexport { breakpoints, min, max, useMedia, mediaWatcher, getCurrentBreakpoint, Breakpoints };\n"],"names":[],"mappings":";;;;MAIM,GAAG,GAAuB,CAAC,UAAU,KACvC,eAAe,qBAAqB,CAAC,UAAU,CAAC,MAAM;MAEpD,GAAG,GAAuB,CAAC,UAAU,KACvC,eAAe,qBAAqB,CAAC,UAAU,CAAC,MAAM;MAM7C,YAAY,GAAG,CAAC,UAAkB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ;MAE7E,WAAW,GAAG;IACvB,sBAAsB,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;IACjF,0BAA0B,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;EAC3F;MAWI,YAAY,GAAG,CACjB,UAAkB,EAClB,qBAA2D;IAE3D,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,qBAAqB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACtD,EAAE;MAMI,oBAAoB,GAAG,MACzB,eAAe,EAAE,CAAC,MAAM,CACpB,CAAC,QAAQ,EAAE,OAAO,KACd,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,GAAI,QAAgB,EACvF,SAAS,EACX;MAOA,QAAQ,GAAG,CAAC,QAA0B;IACxC,MAAM,gBAAgB,GAAG,eAAe,EAAE,CAAC;IAE3C,gBAAgB;SACX,GAAG,CAAC,CAAC,UAAU;QACZ,OAAO;YACH,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC/C,UAAU,EAAE,UAAU,CAAC,UAAU;SACpC,CAAC;KACL,CAAC;SACD,OAAO,CAAC,CAAC,UAAU,KAChB,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CACzF,CAAC;IAEN,SAAS,oBAAoB,CAAC,KAA0C,EAAE,GAAgB;QACtF,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO;QAE3B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAC5B,CAAC,IAAS,MACL,WAAW,CAAC,IAAmB,CAAC,CAAC,MAAM;YACpC,IAAI,KAAK,GAAG,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CACzD,CAAC;QAEF,QAAQ,CAAC,WAAW,CAAC,CAAC;KACzB;IAED,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1B;;;;"}
@@ -0,0 +1,35 @@
1
+ import { breakpoints } from '../breakpoints.js';
2
+
3
+ function getSizeFromBreakpoint(breakpointValue) {
4
+ if (breakpoints[breakpointValue].size) {
5
+ return breakpoints[breakpointValue].size;
6
+ }
7
+ else {
8
+ console.error('No valid breakpoint or size specified for media.');
9
+ return '0';
10
+ }
11
+ }
12
+ function getMediaQueries() {
13
+ const breakpointMap = Object.keys(breakpoints);
14
+ return breakpointMap.map((item, index) => {
15
+ const breakpoint = breakpoints[item];
16
+ const breakpointAbove = breakpoints[breakpointMap[index + 1]];
17
+ return {
18
+ breakpoint: item,
19
+ query: () => {
20
+ if (index === 0) {
21
+ return `(max-width: ${breakpointAbove.size - 1}px)`;
22
+ }
23
+ else if (index === breakpointMap.length - 1) {
24
+ return `(min-width: ${breakpoint.size}px)`;
25
+ }
26
+ else {
27
+ return `(max-width: ${breakpointAbove.size - 1}px) and (min-width: ${breakpoint.size}px)`;
28
+ }
29
+ },
30
+ };
31
+ });
32
+ }
33
+
34
+ export { getMediaQueries, getSizeFromBreakpoint };
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/media-query/utils/index.ts"],"sourcesContent":["import { breakpoints } from '../breakpoints';\nimport { Breakpoints, MediaQuery } from '../media-query.types';\n\nexport function getSizeFromBreakpoint(breakpointValue: Breakpoints) {\n if (breakpoints[breakpointValue].size) {\n return breakpoints[breakpointValue].size;\n } else {\n console.error('No valid breakpoint or size specified for media.');\n return '0';\n }\n}\n\nexport function getMediaQueries(): MediaQuery[] {\n const breakpointMap = Object.keys(breakpoints);\n\n return breakpointMap.map((item: any, index: number) => {\n const breakpoint = breakpoints[item as Breakpoints];\n const breakpointAbove = breakpoints[breakpointMap[index + 1] as Breakpoints];\n\n return {\n breakpoint: item,\n query: () => {\n if (index === 0) {\n return `(max-width: ${breakpointAbove.size - 1}px)`;\n } else if (index === breakpointMap.length - 1) {\n return `(min-width: ${breakpoint.size}px)`;\n } else {\n return `(max-width: ${breakpointAbove.size - 1}px) and (min-width: ${\n breakpoint.size\n }px)`;\n }\n },\n };\n });\n}\n"],"names":[],"mappings":";;SAGgB,qBAAqB,CAAC,eAA4B;IAC9D,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE;QACnC,OAAO,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;KAC5C;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;KACd;AACL,CAAC;SAEe,eAAe;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa;QAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAmB,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC,CAAC;QAE7E,OAAO;YACH,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE;gBACH,IAAI,KAAK,KAAK,CAAC,EAAE;oBACb,OAAO,eAAe,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;iBACvD;qBAAM,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,OAAO,eAAe,UAAU,CAAC,IAAI,KAAK,CAAC;iBAC9C;qBAAM;oBACH,OAAO,eAAe,eAAe,CAAC,IAAI,GAAG,CAAC,uBAC1C,UAAU,CAAC,IACf,KAAK,CAAC;iBACT;aACJ;SACJ,CAAC;KACL,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,24 @@
1
+ const rafThrottle = (callback) => {
2
+ let requestId = null;
3
+ let lastArgs = null;
4
+ const wrapperFunction = (...args) => {
5
+ lastArgs = args;
6
+ if (requestId) {
7
+ return;
8
+ }
9
+ requestId = requestAnimationFrame(() => {
10
+ requestId = null;
11
+ callback(...lastArgs);
12
+ });
13
+ };
14
+ wrapperFunction.cancel = () => {
15
+ if (requestId !== null) {
16
+ cancelAnimationFrame(requestId);
17
+ requestId = null;
18
+ }
19
+ };
20
+ return wrapperFunction;
21
+ };
22
+
23
+ export { rafThrottle };
24
+ //# sourceMappingURL=raf-throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raf-throttle.js","sources":["../../src/raf-throttle.ts"],"sourcesContent":["export const rafThrottle = (callback: (...args: any[]) => void) => {\n let requestId: null | number = null;\n\n let lastArgs: any = null;\n\n const wrapperFunction = (...args: any[]) => {\n // Always capture the latest value\n lastArgs = args;\n\n // There is already a frame queued\n if (requestId) {\n return;\n }\n\n // Schedule a new frame\n requestId = requestAnimationFrame(() => {\n requestId = null;\n callback(...lastArgs);\n });\n };\n\n wrapperFunction.cancel = () => {\n if (requestId !== null) {\n cancelAnimationFrame(requestId);\n requestId = null;\n }\n };\n\n return wrapperFunction;\n};\n"],"names":[],"mappings":"MAAa,WAAW,GAAG,CAAC,QAAkC;IAC1D,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,MAAM,eAAe,GAAG,CAAC,GAAG,IAAW;QAEnC,QAAQ,GAAG,IAAI,CAAC;QAGhB,IAAI,SAAS,EAAE;YACX,OAAO;SACV;QAGD,SAAS,GAAG,qBAAqB,CAAC;YAC9B,SAAS,GAAG,IAAI,CAAC;YACjB,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;SACzB,CAAC,CAAC;KACN,CAAC;IAEF,eAAe,CAAC,MAAM,GAAG;QACrB,IAAI,SAAS,KAAK,IAAI,EAAE;YACpB,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC;SACpB;KACJ,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B;;;;"}
@@ -0,0 +1,23 @@
1
+ const throttle = (fn, wait = 300) => {
2
+ let inThrottle, lastFn, lastTime;
3
+ return function () {
4
+ const context = this, args = arguments;
5
+ if (!inThrottle) {
6
+ fn.apply(context, args);
7
+ lastTime = Date.now();
8
+ inThrottle = true;
9
+ }
10
+ else {
11
+ clearTimeout(lastFn);
12
+ lastFn = setTimeout(() => {
13
+ if (Date.now() - lastTime >= wait) {
14
+ fn.apply(context, args);
15
+ lastTime = Date.now();
16
+ }
17
+ }, Math.max(wait - (Date.now() - lastTime), 0));
18
+ }
19
+ };
20
+ };
21
+
22
+ export { throttle };
23
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sources":["../../src/throttle.ts"],"sourcesContent":["const throttle = (fn: Function, wait: number = 300) => {\n let inThrottle: boolean, lastFn: ReturnType<typeof setTimeout>, lastTime: number;\n\n return function (this: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this,\n // eslint-disable-next-line prefer-rest-params\n args = arguments;\n if (!inThrottle) {\n fn.apply(context, args);\n lastTime = Date.now();\n inThrottle = true;\n } else {\n clearTimeout(lastFn);\n lastFn = setTimeout(() => {\n if (Date.now() - lastTime >= wait) {\n fn.apply(context, args);\n lastTime = Date.now();\n }\n }, Math.max(wait - (Date.now() - lastTime), 0));\n }\n };\n};\n\nexport { throttle };\n"],"names":[],"mappings":"MAAM,QAAQ,GAAG,CAAC,EAAY,EAAE,OAAe,GAAG;IAC9C,IAAI,UAAmB,EAAE,MAAqC,EAAE,QAAgB,CAAC;IAEjF,OAAO;QAEH,MAAM,OAAO,GAAG,IAAI,EAEhB,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE;YACb,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM;YACH,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,GAAG,UAAU,CAAC;gBAChB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE;oBAC/B,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACxB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;iBACzB;aACJ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnD;KACJ,CAAC;AACN;;;;"}
@@ -0,0 +1,26 @@
1
+ const round = (value, decimals) => Number(Math.round(value + 'e' + decimals) + 'e-' + decimals).toFixed(decimals);
2
+ const putThousandsSeparators = (value, sep) => {
3
+ let transformedValue = null;
4
+ if (sep == null) {
5
+ sep = '.';
6
+ }
7
+ if (value.toString() === value.toLocaleString()) {
8
+ const parts = value.toString().split(',');
9
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, sep);
10
+ transformedValue = parts[1] ? parts.join(',') : parts[0];
11
+ }
12
+ else {
13
+ transformedValue = value.toLocaleString();
14
+ }
15
+ return transformedValue;
16
+ };
17
+ const toCurrency = (value, decimals = 2) => {
18
+ let transformedValue = null;
19
+ transformedValue = round(Number(value), decimals);
20
+ transformedValue = `${value.toString().replace('.', ',')}`;
21
+ transformedValue = putThousandsSeparators(value);
22
+ return `€ ${transformedValue}`;
23
+ };
24
+
25
+ export { putThousandsSeparators, round, toCurrency };
26
+ //# sourceMappingURL=to-currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-currency.js","sources":["../../src/to-currency.ts"],"sourcesContent":["export const round = (value: number, decimals: number) =>\n Number(Math.round(value + ('e' as any) + decimals) + 'e-' + decimals).toFixed(decimals);\n\nexport const putThousandsSeparators = (value: number | string, sep?: string) => {\n let transformedValue = null;\n\n if (sep == null) {\n sep = '.';\n }\n\n // check if it needs formatting\n if (value.toString() === value.toLocaleString()) {\n // split decimals\n const parts = value.toString().split(',');\n\n // format whole numbers\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep);\n\n // put them back together\n transformedValue = parts[1] ? parts.join(',') : parts[0];\n } else {\n transformedValue = value.toLocaleString();\n }\n\n return transformedValue;\n};\n\nexport const toCurrency = (value: number, decimals = 2) => {\n let transformedValue = null;\n\n transformedValue = round(Number(value), decimals);\n transformedValue = `${value.toString().replace('.', ',')}`;\n transformedValue = putThousandsSeparators(value);\n\n return `€ ${transformedValue}`;\n};\n"],"names":[],"mappings":"MAAa,KAAK,GAAG,CAAC,KAAa,EAAE,QAAgB,KACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAI,GAAW,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;MAE/E,sBAAsB,GAAG,CAAC,KAAsB,EAAE,GAAY;IACvE,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAE5B,IAAI,GAAG,IAAI,IAAI,EAAE;QACb,GAAG,GAAG,GAAG,CAAC;KACb;IAGD,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,cAAc,EAAE,EAAE;QAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAG1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAG1D,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5D;SAAM;QACH,gBAAgB,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;KAC7C;IAED,OAAO,gBAAgB,CAAC;AAC5B,EAAE;MAEW,UAAU,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IAClD,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAE5B,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClD,gBAAgB,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC3D,gBAAgB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEjD,OAAO,KAAK,gBAAgB,EAAE,CAAC;AACnC;;;;"}
@@ -0,0 +1,5 @@
1
+ import { ConstructionNumberModel, ProjectPhaseModel, PropertyTypeModel } from '@/generated';
2
+ declare const EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES: (keyof ConstructionNumberModel)[];
3
+ declare const EXCLUDED_PROPERTY_TYPE_PROPERTIES: (keyof PropertyTypeModel)[];
4
+ declare const EXCLUDED_PROJECT_PHASE_PROPERTIES: (keyof ProjectPhaseModel)[];
5
+ export { EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES, EXCLUDED_PROPERTY_TYPE_PROPERTIES, EXCLUDED_PROJECT_PHASE_PROPERTIES, };
@@ -0,0 +1,35 @@
1
+ const EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES = [
2
+ 'shortDescription',
3
+ 'longDescription',
4
+ 'resources',
5
+ 'gardens',
6
+ 'outbuildings',
7
+ 'groundLease',
8
+ 'floors',
9
+ 'outsideSpace',
10
+ 'extraSpecifications',
11
+ 'landRegistration',
12
+ ];
13
+ const EXCLUDED_PROPERTY_TYPE_PROPERTIES = [
14
+ 'shortDescription',
15
+ 'longDescription',
16
+ 'environmentTypes',
17
+ 'groundLease',
18
+ 'resources',
19
+ 'constructionStartDate',
20
+ 'indicationServiceCosts',
21
+ 'indicationSecurity',
22
+ 'floors',
23
+ 'gardens',
24
+ 'outbuildings',
25
+ 'usp1Title',
26
+ 'usp1Text',
27
+ 'usp2Title',
28
+ 'usp2Text',
29
+ ];
30
+ const EXCLUDED_PROJECT_PHASE_PROPERTIES = [
31
+ 'longDescription',
32
+ 'resources',
33
+ ];
34
+ export { EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES, EXCLUDED_PROPERTY_TYPE_PROPERTIES, EXCLUDED_PROJECT_PHASE_PROPERTIES, };
35
+ //# sourceMappingURL=excluded-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excluded-properties.js","sourceRoot":"","sources":["../../src/extended-api-models/excluded-properties.ts"],"names":[],"mappings":"AAKA,MAAM,uCAAuC,GAAsC;IAC/E,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,SAAS;IACT,cAAc;IACd,aAAa;IACb,QAAQ;IACR,cAAc;IACd,qBAAqB;IACrB,kBAAkB;CACrB,CAAC;AAKF,MAAM,iCAAiC,GAAgC;IACnE,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,uBAAuB;IACvB,wBAAwB;IACxB,oBAAoB;IACpB,QAAQ;IACR,SAAS;IACT,cAAc;IACd,WAAW;IACX,UAAU;IACV,WAAW;IACX,UAAU;CACb,CAAC;AAKF,MAAM,iCAAiC,GAAgC;IACnE,iBAAiB;IACjB,WAAW;CACd,CAAC;AAEF,OAAO,EACH,uCAAuC,EACvC,iCAAiC,EACjC,iCAAiC,GACpC,CAAC","sourcesContent":["import { ConstructionNumberModel, ProjectPhaseModel, PropertyTypeModel } from '@/generated';\n\n/*\n THE EXCLUDED VALUES ALSO NEED TO BE CHANGED IN api-utilitites.types.ts\n*/\nconst EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES: (keyof ConstructionNumberModel)[] = [\n 'shortDescription',\n 'longDescription',\n 'resources',\n 'gardens',\n 'outbuildings',\n 'groundLease',\n 'floors',\n 'outsideSpace',\n 'extraSpecifications',\n 'landRegistration',\n];\n\n/*\n THE EXCLUDED VALUES ALSO NEED TO BE CHANGED IN api-utilitites.types.ts\n*/\nconst EXCLUDED_PROPERTY_TYPE_PROPERTIES: (keyof PropertyTypeModel)[] = [\n 'shortDescription',\n 'longDescription',\n 'environmentTypes',\n 'groundLease',\n 'resources',\n 'constructionStartDate',\n 'indicationServiceCosts',\n 'indicationSecurity',\n 'floors',\n 'gardens',\n 'outbuildings',\n 'usp1Title',\n 'usp1Text',\n 'usp2Title',\n 'usp2Text',\n];\n\n/*\n THE EXCLUDED VALUES ALSO NEED TO BE CHANGED IN api-utilitites.types.ts\n*/\nconst EXCLUDED_PROJECT_PHASE_PROPERTIES: (keyof ProjectPhaseModel)[] = [\n 'longDescription',\n 'resources',\n];\n\nexport {\n EXCLUDED_CONSTRUCTION_NUMBER_PROPERTIES,\n EXCLUDED_PROPERTY_TYPE_PROPERTIES,\n EXCLUDED_PROJECT_PHASE_PROPERTIES,\n};\n"]}
@@ -2,5 +2,5 @@ import { BoundingBox } from '@bpd-library/types';
2
2
  declare const COUNTRY_BBOX: {
3
3
  [key: string]: BoundingBox;
4
4
  };
5
- declare const getCountryBoundingBox: (countryIsoCodes: ('de' | 'nl' | 'be' | 'lu')[]) => BoundingBox;
5
+ declare const getCountryBoundingBox: (countryIsoCodes: ('de' | 'nl')[]) => BoundingBox;
6
6
  export { COUNTRY_BBOX, getCountryBoundingBox };
@@ -1 +1 @@
1
- {"version":3,"file":"country-bounding-box.js","sourceRoot":"","sources":["../../src/geometry/country-bounding-box.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,YAAY,GAEd;IACA,EAAE,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAC5E,EAAE,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;CAClE,CAAC;AAOF,MAAM,qBAAqB,GAAG,CAAC,eAA8C,EAAe,EAAE;IAC1F,MAAM,aAAa,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAC/B,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAE5D,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import { BoundingBox } from '@bpd-library/types';\n\nimport { mergeBoundingBoxes } from './geometry';\n\nconst COUNTRY_BBOX: {\n [key: string]: BoundingBox;\n} = {\n nl: [3.33390071158434, 50.7503661060614, 7.22749998189678, 53.6436329908026],\n de: [5.98865807458, 47.3024876979, 15.0169958839, 54.983104153],\n};\n\n/**\n * @description Returns a merged bounding box for an array of countries\n * @param {(('de' | 'nl' | 'be' | 'lu')[])} countryIsoCodes\n * @return {*} BoundingBox\n */\nconst getCountryBoundingBox = (countryIsoCodes: ('de' | 'nl' | 'be' | 'lu')[]): BoundingBox => {\n const boundingBoxes = countryIsoCodes\n ?.map((countryIsoCode) => COUNTRY_BBOX[countryIsoCode])\n .filter((bbox) => !!bbox);\n\n const mergedBoundingBox = mergeBoundingBoxes(boundingBoxes);\n\n return mergedBoundingBox;\n};\n\nexport { COUNTRY_BBOX, getCountryBoundingBox };\n"]}
1
+ {"version":3,"file":"country-bounding-box.js","sourceRoot":"","sources":["../../src/geometry/country-bounding-box.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,YAAY,GAEd;IACA,EAAE,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAC5E,EAAE,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;CAClE,CAAC;AAOF,MAAM,qBAAqB,GAAG,CAAC,eAAgC,EAAe,EAAE;IAC5E,MAAM,aAAa,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAC/B,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAE5D,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import { BoundingBox } from '@bpd-library/types';\n\nimport { mergeBoundingBoxes } from './geometry';\n\nconst COUNTRY_BBOX: {\n [key: string]: BoundingBox;\n} = {\n nl: [3.33390071158434, 50.7503661060614, 7.22749998189678, 53.6436329908026],\n de: [5.98865807458, 47.3024876979, 15.0169958839, 54.983104153],\n};\n\n/**\n * @description Returns a merged bounding box for an array of countries\n * @param {(('de' | 'nl')[])} countryIsoCodes\n * @return {*} BoundingBox\n */\nconst getCountryBoundingBox = (countryIsoCodes: ('de' | 'nl')[]): BoundingBox => {\n const boundingBoxes = countryIsoCodes\n ?.map((countryIsoCode) => COUNTRY_BBOX[countryIsoCode])\n .filter((bbox) => !!bbox);\n\n const mergedBoundingBox = mergeBoundingBoxes(boundingBoxes);\n\n return mergedBoundingBox;\n};\n\nexport { COUNTRY_BBOX, getCountryBoundingBox };\n"]}
@@ -0,0 +1 @@
1
+ export declare function useStylesheet(style: string): void;
@@ -0,0 +1,5 @@
1
+ import { unsafeCSS, useStyles } from '@atomify/hooks';
2
+ export function useStylesheet(style) {
3
+ useStyles(() => unsafeCSS(style));
4
+ }
5
+ //# sourceMappingURL=use-stylesheet.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,117 @@
1
+ import qs from 'qs';
2
+ export class HttpError extends Error {
3
+ constructor(input) {
4
+ super(input.message);
5
+ this.response = input.response;
6
+ this.statusCode = input.statusCode;
7
+ this.body = input.body;
8
+ this.name = 'HttpError';
9
+ }
10
+ }
11
+ export class HttpClient {
12
+ constructor(config = {}) {
13
+ this.defaultConfig = {
14
+ returnType: 'json',
15
+ };
16
+ this.config = {};
17
+ this.get = this.createRequest('GET');
18
+ this.post = this.createRequest('POST');
19
+ this.put = this.createRequest('PUT');
20
+ this.patch = this.createRequest('PATCH');
21
+ this.delete = this.createRequest('DELETE');
22
+ this.setToken = (token) => (this.token = token);
23
+ this.setAbortController = (config) => {
24
+ const { createAbort } = config;
25
+ if (createAbort) {
26
+ if (typeof AbortController !== undefined) {
27
+ const controller = new AbortController();
28
+ const { signal } = controller;
29
+ config.signal = signal;
30
+ createAbort(controller.abort.bind(controller));
31
+ }
32
+ else {
33
+ createAbort(() => console.log('The AbortController api isnt available in your browser'));
34
+ }
35
+ }
36
+ };
37
+ this.config = Object.assign(Object.assign({}, this.defaultConfig), config);
38
+ }
39
+ createRequest(method) {
40
+ return (url, data, config) => {
41
+ if (method === 'GET') {
42
+ let getUrl = url;
43
+ if (data) {
44
+ getUrl = url + '?' + qs.stringify(data);
45
+ }
46
+ return this.request(getUrl, Object.assign(Object.assign({}, config), { method: 'GET' }));
47
+ }
48
+ const contentType = config && config.headers && config.headers['Content-Type'];
49
+ return this.request(url, Object.assign(Object.assign({}, config), { method, body: this.createBody(data, contentType) }));
50
+ };
51
+ }
52
+ setAuthenticationHeaders(config) {
53
+ if (this.token) {
54
+ config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: `Bearer ${this.token}` });
55
+ }
56
+ }
57
+ async request(url, requestConfig = {}) {
58
+ const { beforeHook } = this.config;
59
+ const config = Object.assign(Object.assign({}, this.config), requestConfig);
60
+ const { baseUrl = '' } = config;
61
+ this.setAbortController(config);
62
+ if (beforeHook) {
63
+ await beforeHook(this);
64
+ }
65
+ this.setAuthenticationHeaders(config);
66
+ const requestFn = fetch(baseUrl + url, config)
67
+ .then(this.handleError)
68
+ .then(res => this.handleSuccess(res, config));
69
+ return requestFn.catch(err => this.onError(err, () => this.request(url, requestConfig)));
70
+ }
71
+ handleSuccess(res, config) {
72
+ const { returnType = 'json' } = config;
73
+ if (res.status === 204 || res.status === 201 || !res[returnType]) {
74
+ return res;
75
+ }
76
+ return res[returnType]();
77
+ }
78
+ async onError(err, requestFn) {
79
+ const { onError } = this.config;
80
+ if (onError) {
81
+ return onError(err, requestFn);
82
+ }
83
+ throw err;
84
+ }
85
+ createBody(body, contentType) {
86
+ switch (contentType) {
87
+ case 'application/json':
88
+ return JSON.stringify(body);
89
+ case 'application/x-www-form-urlencoded':
90
+ return new URLSearchParams(body);
91
+ default:
92
+ return JSON.stringify(body);
93
+ }
94
+ }
95
+ async handleError(response) {
96
+ if (response.ok) {
97
+ return response;
98
+ }
99
+ const responseBody = await response.text();
100
+ let body = response;
101
+ try {
102
+ body = JSON.parse(responseBody);
103
+ }
104
+ catch (err) {
105
+ body = responseBody;
106
+ }
107
+ const error = {
108
+ message: `HttpError: ${response.status} - ${response.statusText}`,
109
+ statusCode: response.status,
110
+ response,
111
+ body,
112
+ };
113
+ console.error(error);
114
+ throw new HttpError(error);
115
+ }
116
+ }
117
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/api/http.ts"],"names":[],"mappings":"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","sourcesContent":["import qs from 'qs';\n\nexport interface HttpErrorInput {\n message: string;\n statusCode: number;\n response?: Response;\n body?: any;\n}\n\nexport class HttpError extends Error {\n statusCode: number;\n response?: Response;\n body?: any;\n\n constructor(input: HttpErrorInput) {\n super(input.message);\n this.response = input.response;\n this.statusCode = input.statusCode;\n this.body = input.body;\n this.name = 'HttpError';\n }\n}\n\nexport type AbortFunction = () => void;\ntype Token = string | undefined;\ntype RequestFn = <T = any, I = any>(url: string, data: I, config?: RequestConfig) => Promise<T>;\ntype RequestGetFn = <T = any, I = any>(url: string, data?: I, config?: RequestConfig) => Promise<T>;\ntype BeforeHook = (client: HttpClient) => Promise<void> | void;\ntype ErrorHook = <T = any>(err: HttpError, request: () => Promise<T>) => any;\ntype HttpClientInit = RequestInit & {\n baseUrl?: string;\n returnType?: 'json' | 'text' | 'blob';\n /** This function is called before every request. This is where you would check if your token is still valid */\n beforeHook?: BeforeHook;\n /** Function that is called if an error occurs */\n onError?: ErrorHook;\n};\nexport type RequestConfig = HttpClientInit & {\n createAbort?: (abortFunction: AbortFunction) => void;\n};\n\n/**\n * Wrapper around fetch\n */\nexport class HttpClient {\n private defaultConfig: RequestConfig = {\n returnType: 'json',\n };\n\n private config: RequestConfig = {};\n private token: Token;\n\n constructor(config: HttpClientInit = {}) {\n this.config = {\n ...this.defaultConfig,\n ...config,\n };\n }\n\n /**\n *\n *\n * @private\n * @param {'GET'} method\n * @returns {RequestGetFn}\n * @memberof HttpClient\n */\n private createRequest(method: 'GET'): RequestGetFn;\n private createRequest(method: string): RequestFn;\n private createRequest(method: 'GET' | string): RequestFn {\n return (url, data, config) => {\n if (method === 'GET') {\n let getUrl = url;\n if (data) {\n getUrl = url + '?' + qs.stringify(data);\n }\n\n return this.request(getUrl, {\n ...config,\n method: 'GET',\n });\n }\n\n const contentType = config && config.headers && (config.headers as any)['Content-Type'];\n\n return this.request(url, {\n ...config,\n method,\n body: this.createBody(data, contentType),\n });\n };\n }\n\n public get = this.createRequest('GET');\n public post = this.createRequest('POST');\n public put = this.createRequest('PUT');\n public patch = this.createRequest('PATCH');\n public delete = this.createRequest('DELETE');\n\n public setToken = (token: Token) => (this.token = token);\n\n private setAuthenticationHeaders(config: RequestConfig) {\n // if authenticated set bearer token\n if (this.token) {\n config.headers = {\n ...config.headers,\n Authorization: `Bearer ${this.token}`,\n };\n }\n }\n\n /**\n *\n *\n * @private\n * @memberof HttpClient\n */\n private setAbortController = (config: RequestConfig) => {\n const { createAbort } = config;\n if (createAbort) {\n if (typeof AbortController !== undefined) {\n const controller = new AbortController();\n const { signal } = controller;\n config.signal = signal;\n createAbort(controller.abort.bind(controller));\n } else {\n createAbort(() =>\n console.log('The AbortController api isnt available in your browser'),\n );\n }\n }\n };\n\n /**\n *\n *\n * @template T\n * @param {(string | URL)} url\n * @param {RequestConfig} [requestConfig={}]\n * @returns {Promise<T>}\n * @memberof HttpClient\n */\n public async request<T>(url: string | URL, requestConfig: RequestConfig = {}): Promise<T> {\n const { beforeHook } = this.config;\n\n const config: RequestConfig = {\n ...this.config,\n ...requestConfig,\n };\n\n const { baseUrl = '' } = config;\n\n this.setAbortController(config);\n\n if (beforeHook) {\n await beforeHook(this);\n }\n\n this.setAuthenticationHeaders(config);\n\n const requestFn = fetch(baseUrl + url, config)\n .then(this.handleError)\n .then(res => this.handleSuccess(res, config)) as Promise<T>;\n\n return requestFn.catch(err => this.onError<T>(err, () => this.request(url, requestConfig)));\n }\n\n /**\n *\n *\n * @private\n * @param {Response} res\n * @param {RequestConfig} config\n * @returns\n * @memberof HttpClient\n */\n private handleSuccess(res: Response, config: RequestConfig) {\n const { returnType = 'json' } = config;\n\n if (res.status === 204 || res.status === 201 || !res[returnType]) {\n return res;\n }\n\n return res[returnType]();\n }\n\n private async onError<T = any>(err: HttpError, requestFn: () => Promise<T>) {\n const { onError } = this.config;\n\n if (onError) {\n return onError(err, requestFn);\n }\n\n throw err;\n }\n\n /**\n * createBody is responsible for creating a body based on the content type\n *\n * @param body The body\n * @param contentType The content type\n */\n private createBody(body: any, contentType: string): any {\n switch (contentType) {\n case 'application/json':\n return JSON.stringify(body);\n case 'application/x-www-form-urlencoded':\n return new URLSearchParams(body);\n default:\n return JSON.stringify(body);\n }\n }\n\n /**\n * Handles the errors if the fetch request fails and throws a HttpError\n * @param response\n */\n private async handleError(response: Response) {\n if (response.ok) {\n return response;\n }\n\n const responseBody = await response.text();\n let body: any = response;\n\n try {\n body = JSON.parse(responseBody);\n } catch (err) {\n body = responseBody;\n }\n\n const error = {\n message: `HttpError: ${response.status} - ${response.statusText}`,\n statusCode: response.status,\n response,\n body,\n };\n\n console.error(error);\n throw new HttpError(error);\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { HttpClient } from './http';
2
+ export const APIClient = new HttpClient({
3
+ baseUrl: window.__ENVIRONMENT_DETAILS__.apiBaseUrl,
4
+ headers: {
5
+ 'Content-Type': 'application/json',
6
+ },
7
+ });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,uBAAuB,CAAC,UAAU;IAClD,OAAO,EAAE;QACL,cAAc,EAAE,kBAAkB;KACrC;CACJ,CAAC,CAAC","sourcesContent":["import { HttpClient } from './http';\n\nexport const APIClient = new HttpClient({\n baseUrl: window.__ENVIRONMENT_DETAILS__.apiBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n },\n});\n"]}
@@ -0,0 +1,9 @@
1
+ export * from './api-utilities.types';
2
+ export * from './district-status';
3
+ export * from './find-filter';
4
+ export * from './show-price';
5
+ export * from './get/coordinates';
6
+ export * from './get/layer-raster';
7
+ export * from './decimal-range/merge-decimal-range';
8
+ export * from './decimal-range/merge-specification-range';
9
+ //# sourceMappingURL=api-utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-utilities.js","sourceRoot":"","sources":["../../../src/api-utilities/api-utilities.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC","sourcesContent":["export * from './api-utilities.types';\n\nexport * from './district-status';\nexport * from './find-filter';\nexport * from './show-price';\n\nexport * from './get/coordinates';\nexport * from './get/layer-raster';\n\nexport * from './decimal-range/merge-decimal-range';\nexport * from './decimal-range/merge-specification-range';\n"]}