@bpd-library/utilities 1.3.2-beta.2 → 1.3.2-beta.5

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/extended-api-models/extended-area.js +0 -6
  2. package/dist/extended-api-models/extended-area.js.map +1 -1
  3. package/package.json +3 -3
  4. package/dist/api-utilities/compose-exclude-string.d.ts +0 -3
  5. package/dist/api-utilities/compose-exclude-string.js +0 -5
  6. package/dist/api-utilities/compose-exclude-string.js.map +0 -1
  7. package/dist/esm/api/http.js +0 -120
  8. package/dist/esm/api/http.js.map +0 -1
  9. package/dist/esm/api/index.js +0 -11
  10. package/dist/esm/api/index.js.map +0 -1
  11. package/dist/esm/api-utilities/compose-exclude-string.js +0 -6
  12. package/dist/esm/api-utilities/compose-exclude-string.js.map +0 -1
  13. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js +0 -13
  14. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  15. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js +0 -29
  16. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  17. package/dist/esm/api-utilities/district-status.js +0 -14
  18. package/dist/esm/api-utilities/district-status.js.map +0 -1
  19. package/dist/esm/api-utilities/find-filter.js +0 -41
  20. package/dist/esm/api-utilities/find-filter.js.map +0 -1
  21. package/dist/esm/api-utilities/get/coordinates.js +0 -31
  22. package/dist/esm/api-utilities/get/coordinates.js.map +0 -1
  23. package/dist/esm/api-utilities/get/layer-raster.js +0 -4
  24. package/dist/esm/api-utilities/get/layer-raster.js.map +0 -1
  25. package/dist/esm/api-utilities/show-mortgage-price.js +0 -11
  26. package/dist/esm/api-utilities/show-mortgage-price.js.map +0 -1
  27. package/dist/esm/api-utilities/show-price.js +0 -13
  28. package/dist/esm/api-utilities/show-price.js.map +0 -1
  29. package/dist/esm/constants/index.js +0 -7
  30. package/dist/esm/constants/index.js.map +0 -1
  31. package/dist/esm/date.js +0 -11
  32. package/dist/esm/date.js.map +0 -1
  33. package/dist/esm/debounce.js +0 -25
  34. package/dist/esm/debounce.js.map +0 -1
  35. package/dist/esm/dom/dom.js +0 -9
  36. package/dist/esm/dom/dom.js.map +0 -1
  37. package/dist/esm/environment.js +0 -27
  38. package/dist/esm/environment.js.map +0 -1
  39. package/dist/esm/extended-api-models/excluded-properties.js +0 -36
  40. package/dist/esm/extended-api-models/excluded-properties.js.map +0 -1
  41. package/dist/esm/extended-api-models/extended-area-projects.js +0 -12
  42. package/dist/esm/extended-api-models/extended-area-projects.js.map +0 -1
  43. package/dist/esm/extended-api-models/extended-area.js +0 -182
  44. package/dist/esm/extended-api-models/extended-area.js.map +0 -1
  45. package/dist/esm/extended-api-models/status/apartment-building-status.js +0 -60
  46. package/dist/esm/extended-api-models/status/apartment-building-status.js.map +0 -1
  47. package/dist/esm/extended-api-models/status/construction-number-status.js +0 -20
  48. package/dist/esm/extended-api-models/status/construction-number-status.js.map +0 -1
  49. package/dist/esm/extended-api-models/status/property-type-status.js +0 -60
  50. package/dist/esm/extended-api-models/status/property-type-status.js.map +0 -1
  51. package/dist/esm/extended-api-models/utilities/apartment-building-view.js +0 -5
  52. package/dist/esm/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  53. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js +0 -37
  54. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  55. package/dist/esm/extended-api-models/utilities/find-extended-object.js +0 -23
  56. package/dist/esm/extended-api-models/utilities/find-extended-object.js.map +0 -1
  57. package/dist/esm/extended-api-models/utilities/is-apartment.js +0 -14
  58. package/dist/esm/extended-api-models/utilities/is-apartment.js.map +0 -1
  59. package/dist/esm/function-is-true.js +0 -13
  60. package/dist/esm/function-is-true.js.map +0 -1
  61. package/dist/esm/generated/bpd-client.js +0 -53
  62. package/dist/esm/generated/bpd-client.js.map +0 -1
  63. package/dist/esm/geometry/country-bounding-box.js +0 -14
  64. package/dist/esm/geometry/country-bounding-box.js.map +0 -1
  65. package/dist/esm/geometry/geometry.js +0 -65
  66. package/dist/esm/geometry/geometry.js.map +0 -1
  67. package/dist/esm/hooks/use-click-outside.js +0 -34
  68. package/dist/esm/hooks/use-click-outside.js.map +0 -1
  69. package/dist/esm/hooks/use-form-changes.js +0 -30
  70. package/dist/esm/hooks/use-form-changes.js.map +0 -1
  71. package/dist/esm/hooks/use-history.js +0 -15
  72. package/dist/esm/hooks/use-history.js.map +0 -1
  73. package/dist/esm/hooks/use-keyboard-focus.js +0 -14
  74. package/dist/esm/hooks/use-keyboard-focus.js.map +0 -1
  75. package/dist/esm/hooks/use-lazy.js +0 -47
  76. package/dist/esm/hooks/use-lazy.js.map +0 -1
  77. package/dist/esm/hooks/use-map-storage.js +0 -16
  78. package/dist/esm/hooks/use-map-storage.js.map +0 -1
  79. package/dist/esm/hooks/use-scroll-position.js +0 -23
  80. package/dist/esm/hooks/use-scroll-position.js.map +0 -1
  81. package/dist/esm/hooks/use-scroll-to.js +0 -66
  82. package/dist/esm/hooks/use-scroll-to.js.map +0 -1
  83. package/dist/esm/hooks/use-stylesheet.js +0 -8
  84. package/dist/esm/hooks/use-stylesheet.js.map +0 -1
  85. package/dist/esm/hooks/use-url-params.js +0 -31
  86. package/dist/esm/hooks/use-url-params.js.map +0 -1
  87. package/dist/esm/index.js +0 -40
  88. package/dist/esm/index.js.map +0 -1
  89. package/dist/esm/is-touch.js +0 -32
  90. package/dist/esm/is-touch.js.map +0 -1
  91. package/dist/esm/media-query/breakpoints.js +0 -29
  92. package/dist/esm/media-query/breakpoints.js.map +0 -1
  93. package/dist/esm/media-query/media-query.js +0 -39
  94. package/dist/esm/media-query/media-query.js.map +0 -1
  95. package/dist/esm/media-query/utils/index.js +0 -35
  96. package/dist/esm/media-query/utils/index.js.map +0 -1
  97. package/dist/esm/raf-throttle.js +0 -24
  98. package/dist/esm/raf-throttle.js.map +0 -1
  99. package/dist/esm/throttle.js +0 -23
  100. package/dist/esm/throttle.js.map +0 -1
  101. package/dist/esm/to-currency.js +0 -26
  102. package/dist/esm/to-currency.js.map +0 -1
  103. package/dist/extended-api-models/excluded-properties.d.ts +0 -5
  104. package/dist/extended-api-models/excluded-properties.js +0 -35
  105. package/dist/extended-api-models/excluded-properties.js.map +0 -1
  106. package/dist/hooks/use-stylesheet.d.ts +0 -1
  107. package/dist/hooks/use-stylesheet.js +0 -5
  108. package/dist/hooks/use-stylesheet.js.map +0 -1
  109. package/dist/lib/api/http.js +0 -117
  110. package/dist/lib/api/http.js.map +0 -1
  111. package/dist/lib/api/index.js +0 -8
  112. package/dist/lib/api/index.js.map +0 -1
  113. package/dist/lib/api-utilities/api-utilities.js +0 -9
  114. package/dist/lib/api-utilities/api-utilities.js.map +0 -1
  115. package/dist/lib/api-utilities/api-utilities.test.js +0 -122
  116. package/dist/lib/api-utilities/api-utilities.test.js.map +0 -1
  117. package/dist/lib/api-utilities/api-utilities.types.js +0 -1
  118. package/dist/lib/api-utilities/api-utilities.types.js.map +0 -1
  119. package/dist/lib/api-utilities/compose-exclude-string.js +0 -5
  120. package/dist/lib/api-utilities/compose-exclude-string.js.map +0 -1
  121. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js +0 -12
  122. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  123. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js +0 -27
  124. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  125. package/dist/lib/api-utilities/district-status.js +0 -13
  126. package/dist/lib/api-utilities/district-status.js.map +0 -1
  127. package/dist/lib/api-utilities/find-filter.js +0 -40
  128. package/dist/lib/api-utilities/find-filter.js.map +0 -1
  129. package/dist/lib/api-utilities/get/coordinates.js +0 -29
  130. package/dist/lib/api-utilities/get/coordinates.js.map +0 -1
  131. package/dist/lib/api-utilities/get/layer-raster.js +0 -3
  132. package/dist/lib/api-utilities/get/layer-raster.js.map +0 -1
  133. package/dist/lib/api-utilities/index.js +0 -2
  134. package/dist/lib/api-utilities/index.js.map +0 -1
  135. package/dist/lib/api-utilities/show-mortgage-price.js +0 -10
  136. package/dist/lib/api-utilities/show-mortgage-price.js.map +0 -1
  137. package/dist/lib/api-utilities/show-price.js +0 -12
  138. package/dist/lib/api-utilities/show-price.js.map +0 -1
  139. package/dist/lib/constants/index.js +0 -5
  140. package/dist/lib/constants/index.js.map +0 -1
  141. package/dist/lib/date.js +0 -10
  142. package/dist/lib/date.js.map +0 -1
  143. package/dist/lib/debounce.js +0 -23
  144. package/dist/lib/debounce.js.map +0 -1
  145. package/dist/lib/dom/dom.js +0 -7
  146. package/dist/lib/dom/dom.js.map +0 -1
  147. package/dist/lib/dom/index.js +0 -2
  148. package/dist/lib/dom/index.js.map +0 -1
  149. package/dist/lib/environment.js +0 -25
  150. package/dist/lib/environment.js.map +0 -1
  151. package/dist/lib/extended-api-models/excluded-properties.js +0 -35
  152. package/dist/lib/extended-api-models/excluded-properties.js.map +0 -1
  153. package/dist/lib/extended-api-models/extended-area-projects.js +0 -10
  154. package/dist/lib/extended-api-models/extended-area-projects.js.map +0 -1
  155. package/dist/lib/extended-api-models/extended-area.js +0 -179
  156. package/dist/lib/extended-api-models/extended-area.js.map +0 -1
  157. package/dist/lib/extended-api-models/index.js +0 -7
  158. package/dist/lib/extended-api-models/index.js.map +0 -1
  159. package/dist/lib/extended-api-models/status/apartment-building-status.js +0 -58
  160. package/dist/lib/extended-api-models/status/apartment-building-status.js.map +0 -1
  161. package/dist/lib/extended-api-models/status/construction-number-status.js +0 -19
  162. package/dist/lib/extended-api-models/status/construction-number-status.js.map +0 -1
  163. package/dist/lib/extended-api-models/status/property-type-status.js +0 -58
  164. package/dist/lib/extended-api-models/status/property-type-status.js.map +0 -1
  165. package/dist/lib/extended-api-models/utilities/apartment-building-view.js +0 -4
  166. package/dist/lib/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  167. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js +0 -35
  168. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  169. package/dist/lib/extended-api-models/utilities/find-extended-object.js +0 -21
  170. package/dist/lib/extended-api-models/utilities/find-extended-object.js.map +0 -1
  171. package/dist/lib/extended-api-models/utilities/is-apartment.js +0 -13
  172. package/dist/lib/extended-api-models/utilities/is-apartment.js.map +0 -1
  173. package/dist/lib/function-is-true.js +0 -11
  174. package/dist/lib/function-is-true.js.map +0 -1
  175. package/dist/lib/generated/bpd-client.js +0 -50
  176. package/dist/lib/generated/bpd-client.js.map +0 -1
  177. package/dist/lib/generated/index.js +0 -2
  178. package/dist/lib/generated/index.js.map +0 -1
  179. package/dist/lib/geometry/country-bounding-box.js +0 -12
  180. package/dist/lib/geometry/country-bounding-box.js.map +0 -1
  181. package/dist/lib/geometry/geometry.js +0 -64
  182. package/dist/lib/geometry/geometry.js.map +0 -1
  183. package/dist/lib/geometry/geometry.test.js +0 -87
  184. package/dist/lib/geometry/geometry.test.js.map +0 -1
  185. package/dist/lib/geometry/index.js +0 -3
  186. package/dist/lib/geometry/index.js.map +0 -1
  187. package/dist/lib/hooks/index.js +0 -11
  188. package/dist/lib/hooks/index.js.map +0 -1
  189. package/dist/lib/hooks/use-click-outside.js +0 -32
  190. package/dist/lib/hooks/use-click-outside.js.map +0 -1
  191. package/dist/lib/hooks/use-delegate-listen.js +0 -10
  192. package/dist/lib/hooks/use-delegate-listen.js.map +0 -1
  193. package/dist/lib/hooks/use-form-changes.js +0 -27
  194. package/dist/lib/hooks/use-form-changes.js.map +0 -1
  195. package/dist/lib/hooks/use-history.js +0 -13
  196. package/dist/lib/hooks/use-history.js.map +0 -1
  197. package/dist/lib/hooks/use-input.js +0 -28
  198. package/dist/lib/hooks/use-input.js.map +0 -1
  199. package/dist/lib/hooks/use-keyboard-focus.js +0 -11
  200. package/dist/lib/hooks/use-keyboard-focus.js.map +0 -1
  201. package/dist/lib/hooks/use-lazy.js +0 -44
  202. package/dist/lib/hooks/use-lazy.js.map +0 -1
  203. package/dist/lib/hooks/use-map-storage.js +0 -14
  204. package/dist/lib/hooks/use-map-storage.js.map +0 -1
  205. package/dist/lib/hooks/use-scroll-position.js +0 -20
  206. package/dist/lib/hooks/use-scroll-position.js.map +0 -1
  207. package/dist/lib/hooks/use-scroll-to.js +0 -64
  208. package/dist/lib/hooks/use-scroll-to.js.map +0 -1
  209. package/dist/lib/hooks/use-stylesheet.js +0 -5
  210. package/dist/lib/hooks/use-stylesheet.js.map +0 -1
  211. package/dist/lib/hooks/use-text.js +0 -16
  212. package/dist/lib/hooks/use-text.js.map +0 -1
  213. package/dist/lib/hooks/use-url-params.js +0 -28
  214. package/dist/lib/hooks/use-url-params.js.map +0 -1
  215. package/dist/lib/index.js +0 -18
  216. package/dist/lib/index.js.map +0 -1
  217. package/dist/lib/is-touch.js +0 -30
  218. package/dist/lib/is-touch.js.map +0 -1
  219. package/dist/lib/media-query/breakpoints.js +0 -27
  220. package/dist/lib/media-query/breakpoints.js.map +0 -1
  221. package/dist/lib/media-query/index.js +0 -2
  222. package/dist/lib/media-query/index.js.map +0 -1
  223. package/dist/lib/media-query/media-query.js +0 -36
  224. package/dist/lib/media-query/media-query.js.map +0 -1
  225. package/dist/lib/media-query/media-query.types.js +0 -1
  226. package/dist/lib/media-query/media-query.types.js.map +0 -1
  227. package/dist/lib/media-query/utils/index.js +0 -32
  228. package/dist/lib/media-query/utils/index.js.map +0 -1
  229. package/dist/lib/raf-throttle.js +0 -22
  230. package/dist/lib/raf-throttle.js.map +0 -1
  231. package/dist/lib/throttle.js +0 -22
  232. package/dist/lib/throttle.js.map +0 -1
  233. package/dist/lib/to-currency.js +0 -24
  234. package/dist/lib/to-currency.js.map +0 -1
  235. package/dist/types/api/http.d.ts +0 -47
  236. package/dist/types/api/index.d.ts +0 -2
  237. package/dist/types/api-utilities/api-utilities.d.ts +0 -8
  238. package/dist/types/api-utilities/api-utilities.test.d.ts +0 -1
  239. package/dist/types/api-utilities/api-utilities.types.d.ts +0 -46
  240. package/dist/types/api-utilities/compose-exclude-string.d.ts +0 -3
  241. package/dist/types/api-utilities/decimal-range/merge-decimal-range.d.ts +0 -3
  242. package/dist/types/api-utilities/decimal-range/merge-specification-range.d.ts +0 -13
  243. package/dist/types/api-utilities/district-status.d.ts +0 -3
  244. package/dist/types/api-utilities/find-filter.d.ts +0 -32
  245. package/dist/types/api-utilities/get/coordinates.d.ts +0 -6
  246. package/dist/types/api-utilities/get/layer-raster.d.ts +0 -3
  247. package/dist/types/api-utilities/index.d.ts +0 -1
  248. package/dist/types/api-utilities/show-mortgage-price.d.ts +0 -3
  249. package/dist/types/api-utilities/show-price.d.ts +0 -7
  250. package/dist/types/constants/index.d.ts +0 -4
  251. package/dist/types/date.d.ts +0 -3
  252. package/dist/types/debounce.d.ts +0 -5
  253. package/dist/types/dom/dom.d.ts +0 -6
  254. package/dist/types/dom/index.d.ts +0 -1
  255. package/dist/types/environment.d.ts +0 -9
  256. package/dist/types/extended-api-models/excluded-properties.d.ts +0 -5
  257. package/dist/types/extended-api-models/extended-area-projects.d.ts +0 -3
  258. package/dist/types/extended-api-models/extended-area.d.ts +0 -13
  259. package/dist/types/extended-api-models/index.d.ts +0 -6
  260. package/dist/types/extended-api-models/status/apartment-building-status.d.ts +0 -3
  261. package/dist/types/extended-api-models/status/construction-number-status.d.ts +0 -3
  262. package/dist/types/extended-api-models/status/property-type-status.d.ts +0 -4
  263. package/dist/types/extended-api-models/utilities/apartment-building-view.d.ts +0 -4
  264. package/dist/types/extended-api-models/utilities/extended-model-price-range.d.ts +0 -4
  265. package/dist/types/extended-api-models/utilities/find-extended-object.d.ts +0 -4
  266. package/dist/types/extended-api-models/utilities/is-apartment.d.ts +0 -11
  267. package/dist/types/function-is-true.d.ts +0 -1
  268. package/dist/types/generated/bpd-client.d.ts +0 -808
  269. package/dist/types/generated/index.d.ts +0 -1
  270. package/dist/types/geometry/country-bounding-box.d.ts +0 -6
  271. package/dist/types/geometry/geometry.d.ts +0 -11
  272. package/dist/types/geometry/geometry.test.d.ts +0 -8
  273. package/dist/types/geometry/index.d.ts +0 -2
  274. package/dist/types/hooks/index.d.ts +0 -10
  275. package/dist/types/hooks/use-click-outside.d.ts +0 -6
  276. package/dist/types/hooks/use-delegate-listen.d.ts +0 -6
  277. package/dist/types/hooks/use-form-changes.d.ts +0 -12
  278. package/dist/types/hooks/use-history.d.ts +0 -4
  279. package/dist/types/hooks/use-input.d.ts +0 -41
  280. package/dist/types/hooks/use-keyboard-focus.d.ts +0 -6
  281. package/dist/types/hooks/use-lazy.d.ts +0 -21
  282. package/dist/types/hooks/use-map-storage.d.ts +0 -6
  283. package/dist/types/hooks/use-scroll-position.d.ts +0 -10
  284. package/dist/types/hooks/use-scroll-to.d.ts +0 -8
  285. package/dist/types/hooks/use-stylesheet.d.ts +0 -1
  286. package/dist/types/hooks/use-text.d.ts +0 -1
  287. package/dist/types/hooks/use-url-params.d.ts +0 -5
  288. package/dist/types/index.d.ts +0 -17
  289. package/dist/types/is-touch.d.ts +0 -8
  290. package/dist/types/media-query/breakpoints.d.ts +0 -26
  291. package/dist/types/media-query/index.d.ts +0 -1
  292. package/dist/types/media-query/media-query.d.ts +0 -13
  293. package/dist/types/media-query/media-query.types.d.ts +0 -14
  294. package/dist/types/media-query/utils/index.d.ts +0 -3
  295. package/dist/types/raf-throttle.d.ts +0 -4
  296. package/dist/types/throttle.d.ts +0 -2
  297. package/dist/types/to-currency.d.ts +0 -3
@@ -16,7 +16,6 @@ const ExtendedAreaModelsUtility = () => {
16
16
  originalData = await fetchData(areaId);
17
17
  setSessionStorageData(areaId, originalData);
18
18
  }
19
- console.log('CONTROLLER ORIGINAL DATA', Object.assign({}, originalData));
20
19
  originalData = filterObjectsWithImages(originalData);
21
20
  areaState[areaId].extendedData = extendModels(originalData);
22
21
  setLoaded(areaId);
@@ -30,16 +29,11 @@ const ExtendedAreaModelsUtility = () => {
30
29
  }
31
30
  const state = areaState[areaId];
32
31
  if (!state.extendedData) {
33
- console.log('GET DATA - NO DATA', JSON.stringify(state));
34
32
  return new Promise((res) => {
35
33
  state.resolveArray.push(res);
36
- console.log('GET DATA - PUSHED RESOLVER', JSON.stringify(state));
37
34
  });
38
35
  }
39
36
  else {
40
- console.log('GET DATA - HAS DATA IMMEDIATE', {
41
- projectPhases: [...state.extendedData.projectPhases],
42
- });
43
37
  return state.extendedData;
44
38
  }
45
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extended-area.js","sourceRoot":"","sources":["../../src/extended-api-models/extended-area.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ExtendedApartmentBuilding,\n ExtendedAreaProject,\n ExtendedConstructionNumber,\n ExtendedDistrict,\n ExtendedProjectPhase,\n ExtendedPropertyType,\n filterConstructionNumbers,\n filterPropertyTypes,\n findProjectPhase,\n findPropertyType,\n getDistrictStatus,\n} from '../api-utilities';\nimport { environmentDetails } from '../environment';\nimport {\n ApartmentBuildingModel,\n apartmentBuildingQuery,\n areaProjectGetById,\n AreaProjectModel,\n ConstructionNumberModel,\n constructionNumberQuery,\n DistrictModel,\n districtQuery,\n ProjectPhaseModel,\n projectPhaseQuery,\n PropertyTypeModel,\n propertyTypeQuery,\n} from '../generated';\nimport { COMPOSED_INCLUDE_STRINGS } from './included-properties';\nimport { getApartmentBuildingStatus } from './status/apartment-building-status';\nimport { constructionNumberStatus } from './status/construction-number-status';\nimport { getPropertyTypeStatus } from './status/property-type-status';\n\ninterface OriginalAreaModels {\n constructionNumbers: ConstructionNumberModel[];\n propertyTypes: PropertyTypeModel[];\n apartmentBuildings: ApartmentBuildingModel[];\n projectPhases: ProjectPhaseModel[];\n districts: DistrictModel[];\n areaProject: AreaProjectModel;\n}\n\ninterface ExtendedAreaModels {\n constructionNumbers: ExtendedConstructionNumber[];\n propertyTypes: ExtendedPropertyType[];\n apartmentBuildings: ExtendedApartmentBuilding[];\n projectPhases: ExtendedProjectPhase[];\n districts: ExtendedDistrict[];\n areaProject: ExtendedAreaProject;\n}\ninterface FilterFunctions {\n constructionNumber?: (constructionNumber: ConstructionNumberModel) => boolean;\n propertyType?: (propertyType: PropertyTypeModel) => boolean;\n apartmentBuilding?: (apartmentBuilding: ApartmentBuildingModel) => boolean;\n projectPhase?: (projectPhase: ProjectPhaseModel) => boolean;\n district?: (district: DistrictModel) => boolean;\n}\n\nconst ExtendedAreaModelsUtility = () => {\n const areaState: {\n [areaId: string]: {\n extendedData?: ExtendedAreaModels;\n resolveArray: Function[];\n filterFunctions?: FilterFunctions;\n };\n } = {};\n\n async function controller(areaId: string) {\n let originalData: OriginalAreaModels;\n\n if (hasSessionStorageData(areaId)) {\n originalData = fetchSessionStorageData(areaId)!;\n } else {\n originalData = await fetchData(areaId);\n setSessionStorageData(areaId, originalData);\n }\n console.log('CONTROLLER ORIGINAL DATA', { ...originalData });\n\n // Objects without images, should not be shown on the website\n originalData = filterObjectsWithImages(originalData);\n\n areaState[areaId].extendedData = extendModels(originalData);\n\n setLoaded(areaId);\n }\n\n async function getData(areaId: string): Promise<ExtendedAreaModels> {\n if (!areaState[areaId]) {\n areaState[areaId] = {\n resolveArray: [],\n };\n\n // Controller handles fetching + extending of data\n controller(areaId);\n }\n\n const state = areaState[areaId];\n\n if (!state.extendedData) {\n /*\n if no extendedData is found, it means it's being fetched.\n Promises will be resolved after data is loaded\n */\n console.log('GET DATA - NO DATA', JSON.stringify(state));\n return new Promise((res) => {\n state.resolveArray.push(res);\n console.log('GET DATA - PUSHED RESOLVER', JSON.stringify(state));\n });\n } else {\n // if no extendedData is found, it comes from sessionStorage\n console.log('GET DATA - HAS DATA IMMEDIATE', {\n projectPhases: [...state.extendedData.projectPhases],\n });\n\n return state.extendedData;\n }\n }\n\n async function getCurrentAreaData(): Promise<ExtendedAreaModels> {\n return getData(environmentDetails.areaId!);\n }\n\n function setLoaded(areaId: string) {\n areaState[areaId].resolveArray.forEach((res) => {\n res(areaState[areaId].extendedData);\n });\n }\n\n function filterObjectsWithImages(data: OriginalAreaModels): OriginalAreaModels {\n return {\n ...data,\n constructionNumbers: data.constructionNumbers.filter(\n ({ mainImage }) => !!mainImage?.url,\n ),\n propertyTypes: data.propertyTypes.filter(({ mainImage }) => !!mainImage?.url),\n apartmentBuildings: data.apartmentBuildings.filter(({ image }) => !!image?.url),\n };\n }\n\n function sessionStorageId(areaId: string) {\n return `AreaObjects::${areaId}`;\n }\n\n function sessionStorageData(areaId: string) {\n return sessionStorage.getItem(sessionStorageId(areaId));\n }\n\n function hasSessionStorageData(areaId: string) {\n return !!sessionStorageData(areaId);\n }\n\n function fetchSessionStorageData(areaId: string) {\n if (hasSessionStorageData(areaId)) {\n return JSON.parse(sessionStorageData(areaId)!) as OriginalAreaModels;\n } else {\n return;\n }\n }\n\n function setSessionStorageData(areaId: string, originalData: OriginalAreaModels) {\n sessionStorage.setItem(sessionStorageId(areaId), JSON.stringify(originalData));\n }\n\n async function fetchData(areaId: string) {\n const propertyTypes = propertyTypeQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.propertyType,\n });\n const constructionNumbers = constructionNumberQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.constructionNumber,\n });\n const projectPhases = projectPhaseQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.projectPhase,\n });\n const apartmentBuildings = apartmentBuildingQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.apartmentBuilding,\n });\n const districts = districtQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.district,\n });\n const areaProject = areaProjectGetById(areaId, {\n include: COMPOSED_INCLUDE_STRINGS.areaProject,\n });\n\n return {\n propertyTypes: await propertyTypes,\n constructionNumbers: await constructionNumbers,\n projectPhases: await projectPhases,\n apartmentBuildings: await apartmentBuildings,\n districts: await districts,\n areaProject: await areaProject,\n };\n }\n\n function extendModels(data: OriginalAreaModels): ExtendedAreaModels {\n const {\n constructionNumbers,\n propertyTypes,\n apartmentBuildings,\n projectPhases,\n districts,\n areaProject,\n } = data as ExtendedAreaModels;\n\n /*\n Extend constructionNumbers object\n */\n constructionNumbers.forEach((constructionNumber) => {\n const { propertyTypeId, projectPhaseId } = constructionNumber;\n\n constructionNumber.areaProject = areaProject;\n\n if (propertyTypeId) {\n constructionNumber.propertyType = findPropertyType(propertyTypes, {\n id: propertyTypeId,\n });\n }\n\n if (projectPhaseId) {\n constructionNumber.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n constructionNumber.apartmentBuilding = apartmentBuildings.find((s) =>\n s.constructionNumberIds?.includes(constructionNumber.id),\n );\n\n constructionNumber.status = constructionNumberStatus(constructionNumber);\n\n constructionNumber.objectType = 'constructionNumber';\n });\n\n /*\n Extend propertTypes object\n */\n propertyTypes.forEach((propertyType) => {\n const { projectPhaseId, id } = propertyType;\n\n if (projectPhaseId) {\n propertyType.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n propertyType.constructionNumbers = filterConstructionNumbers(constructionNumbers, {\n propertyTypeId: id,\n });\n\n if (propertyType.projectPhase) {\n propertyType.status = getPropertyTypeStatus(\n propertyType.projectPhase,\n propertyType.constructionNumbers,\n );\n }\n\n propertyType.apartmentBuildings = apartmentBuildings.filter((s) =>\n s.propertyTypeIds?.includes(propertyType.id),\n );\n\n propertyType.objectType = 'propertyType';\n });\n\n /*\n Extend projectPhase object\n */\n projectPhases.forEach((projectPhase) => {\n const { id } = projectPhase;\n\n projectPhase.propertyTypes = filterPropertyTypes(propertyTypes, {\n projectPhaseId: id,\n });\n projectPhase.constructionNumbers = filterConstructionNumbers(constructionNumbers, {\n projectPhaseId: id,\n });\n\n projectPhase.objectType = 'projectPhase';\n });\n\n /*\n Extend apartmentBuilding object\n */\n apartmentBuildings.forEach((apartmentBuilding) => {\n const { propertyTypeIds, constructionNumberIds, projectPhaseId } = apartmentBuilding;\n\n if (propertyTypeIds) {\n apartmentBuilding.propertyTypes = propertyTypes.filter(({ id }) =>\n propertyTypeIds?.includes(id),\n );\n }\n\n if (constructionNumberIds) {\n apartmentBuilding.constructionNumbers = constructionNumbers.filter(({ id }) =>\n constructionNumberIds?.includes(id),\n );\n }\n\n if (projectPhaseId) {\n apartmentBuilding.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n if (apartmentBuilding.projectPhase) {\n apartmentBuilding.status = getApartmentBuildingStatus(\n apartmentBuilding.projectPhase,\n apartmentBuilding.constructionNumbers,\n );\n }\n\n apartmentBuilding.objectType = 'apartmentBuilding';\n });\n\n /*\n Extend district object\n */\n districts.forEach((district) => {\n district.status = getDistrictStatus(district, projectPhases);\n district.objectType = 'district';\n });\n\n return {\n constructionNumbers,\n propertyTypes,\n apartmentBuildings,\n projectPhases,\n districts,\n areaProject,\n };\n }\n\n return {\n getData,\n getCurrentAreaData,\n };\n};\n\nconst extendedArea = ExtendedAreaModelsUtility();\n\nexport { extendedArea, ExtendedAreaModels };\n"]}
1
+ {"version":3,"file":"extended-area.js","sourceRoot":"","sources":["../../src/extended-api-models/extended-area.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAEH,sBAAsB,EACtB,kBAAkB,EAGlB,uBAAuB,EAEvB,aAAa,EAEb,iBAAiB,EAEjB,iBAAiB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AA2BtE,MAAM,yBAAyB,GAAG,GAAG,EAAE;IACnC,MAAM,SAAS,GAMX,EAAE,CAAC;IAEP,KAAK,UAAU,UAAU,CAAC,MAAc;QACpC,IAAI,YAAgC,CAAC;QAErC,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC/B,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAE,CAAC;SACnD;aAAM;YACH,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAC/C;QAED,YAAY,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAErD,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAE5D,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,MAAc;QACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACpB,SAAS,CAAC,MAAM,CAAC,GAAG;gBAChB,YAAY,EAAE,EAAE;aACnB,CAAC;YAGF,UAAU,CAAC,MAAM,CAAC,CAAC;SACtB;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAKrB,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;aAAM;YAEH,OAAO,KAAK,CAAC,YAAY,CAAC;SAC7B;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB;QAC7B,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAO,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,SAAS,CAAC,MAAc;QAC7B,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,uBAAuB,CAAC,IAAwB;QACrD,uCACO,IAAI,KACP,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAChD,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAA,CACtC,EACD,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAA,CAAC,EAC7E,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAA,CAAC,IACjF;IACN,CAAC;IAED,SAAS,gBAAgB,CAAC,MAAc;QACpC,OAAO,gBAAgB,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,SAAS,kBAAkB,CAAC,MAAc;QACtC,OAAO,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,qBAAqB,CAAC,MAAc;QACzC,OAAO,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,uBAAuB,CAAC,MAAc;QAC3C,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAE,CAAuB,CAAC;SACxE;aAAM;YACH,OAAO;SACV;IACL,CAAC;IAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,YAAgC;QAC3E,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,MAAc;QACnC,MAAM,aAAa,GAAG,iBAAiB,CAAC;YACpC,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,wBAAwB,CAAC,YAAY;SACjD,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;YAChD,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,wBAAwB,CAAC,kBAAkB;SACvD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,iBAAiB,CAAC;YACpC,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,wBAAwB,CAAC,YAAY;SACjD,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;YAC9C,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,wBAAwB,CAAC,iBAAiB;SACtD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,aAAa,CAAC;YAC5B,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,wBAAwB,CAAC,QAAQ;SAC7C,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,EAAE;YAC3C,OAAO,EAAE,wBAAwB,CAAC,WAAW;SAChD,CAAC,CAAC;QAEH,OAAO;YACH,aAAa,EAAE,MAAM,aAAa;YAClC,mBAAmB,EAAE,MAAM,mBAAmB;YAC9C,aAAa,EAAE,MAAM,aAAa;YAClC,kBAAkB,EAAE,MAAM,kBAAkB;YAC5C,SAAS,EAAE,MAAM,SAAS;YAC1B,WAAW,EAAE,MAAM,WAAW;SACjC,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CAAC,IAAwB;QAC1C,MAAM,EACF,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,WAAW,GACd,GAAG,IAA0B,CAAC;QAK/B,mBAAmB,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC/C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC;YAE9D,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAC;YAE7C,IAAI,cAAc,EAAE;gBAChB,kBAAkB,CAAC,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE;oBAC9D,EAAE,EAAE,cAAc;iBACrB,CAAC,CAAC;aACN;YAED,IAAI,cAAc,EAAE;gBAChB,kBAAkB,CAAC,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE;oBAC9D,EAAE,EAAE,cAAc;iBACrB,CAAC,CAAC;aACN;YAED,kBAAkB,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,wBACjE,CAAC,CAAC,qBAAqB,0CAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAC,CAC3D,CAAC;YAEF,kBAAkB,CAAC,MAAM,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;YAEzE,kBAAkB,CAAC,UAAU,GAAG,oBAAoB,CAAC;QACzD,CAAC,CAAC,CAAC;QAKH,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACnC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC;YAE5C,IAAI,cAAc,EAAE;gBAChB,YAAY,CAAC,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE;oBACxD,EAAE,EAAE,cAAc;iBACrB,CAAC,CAAC;aACN;YAED,YAAY,CAAC,mBAAmB,GAAG,yBAAyB,CAAC,mBAAmB,EAAE;gBAC9E,cAAc,EAAE,EAAE;aACrB,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,YAAY,EAAE;gBAC3B,YAAY,CAAC,MAAM,GAAG,qBAAqB,CACvC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,mBAAmB,CACnC,CAAC;aACL;YAED,YAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,wBAC9D,CAAC,CAAC,eAAe,0CAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAC,CAC/C,CAAC;YAEF,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;QAKH,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACnC,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC;YAE5B,YAAY,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,EAAE;gBAC5D,cAAc,EAAE,EAAE;aACrB,CAAC,CAAC;YACH,YAAY,CAAC,mBAAmB,GAAG,yBAAyB,CAAC,mBAAmB,EAAE;gBAC9E,cAAc,EAAE,EAAE;aACrB,CAAC,CAAC;YAEH,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;QAKH,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;YAC7C,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;YAErF,IAAI,eAAe,EAAE;gBACjB,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAC9D,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,CAAC,CAChC,CAAC;aACL;YAED,IAAI,qBAAqB,EAAE;gBACvB,iBAAiB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAC1E,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,QAAQ,CAAC,EAAE,CAAC,CACtC,CAAC;aACL;YAED,IAAI,cAAc,EAAE;gBAChB,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE;oBAC7D,EAAE,EAAE,cAAc;iBACrB,CAAC,CAAC;aACN;YAED,IAAI,iBAAiB,CAAC,YAAY,EAAE;gBAChC,iBAAiB,CAAC,MAAM,GAAG,0BAA0B,CACjD,iBAAiB,CAAC,YAAY,EAC9B,iBAAiB,CAAC,mBAAmB,CACxC,CAAC;aACL;YAED,iBAAiB,CAAC,UAAU,GAAG,mBAAmB,CAAC;QACvD,CAAC,CAAC,CAAC;QAKH,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,QAAQ,CAAC,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC7D,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,mBAAmB;YACnB,aAAa;YACb,kBAAkB;YAClB,aAAa;YACb,SAAS;YACT,WAAW;SACd,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO;QACP,kBAAkB;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAsB,CAAC","sourcesContent":["import {\n ExtendedApartmentBuilding,\n ExtendedAreaProject,\n ExtendedConstructionNumber,\n ExtendedDistrict,\n ExtendedProjectPhase,\n ExtendedPropertyType,\n filterConstructionNumbers,\n filterPropertyTypes,\n findProjectPhase,\n findPropertyType,\n getDistrictStatus,\n} from '../api-utilities';\nimport { environmentDetails } from '../environment';\nimport {\n ApartmentBuildingModel,\n apartmentBuildingQuery,\n areaProjectGetById,\n AreaProjectModel,\n ConstructionNumberModel,\n constructionNumberQuery,\n DistrictModel,\n districtQuery,\n ProjectPhaseModel,\n projectPhaseQuery,\n PropertyTypeModel,\n propertyTypeQuery,\n} from '../generated';\nimport { COMPOSED_INCLUDE_STRINGS } from './included-properties';\nimport { getApartmentBuildingStatus } from './status/apartment-building-status';\nimport { constructionNumberStatus } from './status/construction-number-status';\nimport { getPropertyTypeStatus } from './status/property-type-status';\n\ninterface OriginalAreaModels {\n constructionNumbers: ConstructionNumberModel[];\n propertyTypes: PropertyTypeModel[];\n apartmentBuildings: ApartmentBuildingModel[];\n projectPhases: ProjectPhaseModel[];\n districts: DistrictModel[];\n areaProject: AreaProjectModel;\n}\n\ninterface ExtendedAreaModels {\n constructionNumbers: ExtendedConstructionNumber[];\n propertyTypes: ExtendedPropertyType[];\n apartmentBuildings: ExtendedApartmentBuilding[];\n projectPhases: ExtendedProjectPhase[];\n districts: ExtendedDistrict[];\n areaProject: ExtendedAreaProject;\n}\ninterface FilterFunctions {\n constructionNumber?: (constructionNumber: ConstructionNumberModel) => boolean;\n propertyType?: (propertyType: PropertyTypeModel) => boolean;\n apartmentBuilding?: (apartmentBuilding: ApartmentBuildingModel) => boolean;\n projectPhase?: (projectPhase: ProjectPhaseModel) => boolean;\n district?: (district: DistrictModel) => boolean;\n}\n\nconst ExtendedAreaModelsUtility = () => {\n const areaState: {\n [areaId: string]: {\n extendedData?: ExtendedAreaModels;\n resolveArray: Function[];\n filterFunctions?: FilterFunctions;\n };\n } = {};\n\n async function controller(areaId: string) {\n let originalData: OriginalAreaModels;\n\n if (hasSessionStorageData(areaId)) {\n originalData = fetchSessionStorageData(areaId)!;\n } else {\n originalData = await fetchData(areaId);\n setSessionStorageData(areaId, originalData);\n }\n // Objects without images, should not be shown on the website\n originalData = filterObjectsWithImages(originalData);\n\n areaState[areaId].extendedData = extendModels(originalData);\n\n setLoaded(areaId);\n }\n\n async function getData(areaId: string): Promise<ExtendedAreaModels> {\n if (!areaState[areaId]) {\n areaState[areaId] = {\n resolveArray: [],\n };\n\n // Controller handles fetching + extending of data\n controller(areaId);\n }\n\n const state = areaState[areaId];\n\n if (!state.extendedData) {\n /*\n if no extendedData is found, it means it's being fetched.\n Promises will be resolved after data is loaded\n */\n return new Promise((res) => {\n state.resolveArray.push(res);\n });\n } else {\n // if no extendedData is found, it comes from sessionStorage\n return state.extendedData;\n }\n }\n\n async function getCurrentAreaData(): Promise<ExtendedAreaModels> {\n return getData(environmentDetails.areaId!);\n }\n\n function setLoaded(areaId: string) {\n areaState[areaId].resolveArray.forEach((res) => {\n res(areaState[areaId].extendedData);\n });\n }\n\n function filterObjectsWithImages(data: OriginalAreaModels): OriginalAreaModels {\n return {\n ...data,\n constructionNumbers: data.constructionNumbers.filter(\n ({ mainImage }) => !!mainImage?.url,\n ),\n propertyTypes: data.propertyTypes.filter(({ mainImage }) => !!mainImage?.url),\n apartmentBuildings: data.apartmentBuildings.filter(({ image }) => !!image?.url),\n };\n }\n\n function sessionStorageId(areaId: string) {\n return `AreaObjects::${areaId}`;\n }\n\n function sessionStorageData(areaId: string) {\n return sessionStorage.getItem(sessionStorageId(areaId));\n }\n\n function hasSessionStorageData(areaId: string) {\n return !!sessionStorageData(areaId);\n }\n\n function fetchSessionStorageData(areaId: string) {\n if (hasSessionStorageData(areaId)) {\n return JSON.parse(sessionStorageData(areaId)!) as OriginalAreaModels;\n } else {\n return;\n }\n }\n\n function setSessionStorageData(areaId: string, originalData: OriginalAreaModels) {\n sessionStorage.setItem(sessionStorageId(areaId), JSON.stringify(originalData));\n }\n\n async function fetchData(areaId: string) {\n const propertyTypes = propertyTypeQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.propertyType,\n });\n const constructionNumbers = constructionNumberQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.constructionNumber,\n });\n const projectPhases = projectPhaseQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.projectPhase,\n });\n const apartmentBuildings = apartmentBuildingQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.apartmentBuilding,\n });\n const districts = districtQuery({\n AreaProjectId: areaId,\n include: COMPOSED_INCLUDE_STRINGS.district,\n });\n const areaProject = areaProjectGetById(areaId, {\n include: COMPOSED_INCLUDE_STRINGS.areaProject,\n });\n\n return {\n propertyTypes: await propertyTypes,\n constructionNumbers: await constructionNumbers,\n projectPhases: await projectPhases,\n apartmentBuildings: await apartmentBuildings,\n districts: await districts,\n areaProject: await areaProject,\n };\n }\n\n function extendModels(data: OriginalAreaModels): ExtendedAreaModels {\n const {\n constructionNumbers,\n propertyTypes,\n apartmentBuildings,\n projectPhases,\n districts,\n areaProject,\n } = data as ExtendedAreaModels;\n\n /*\n Extend constructionNumbers object\n */\n constructionNumbers.forEach((constructionNumber) => {\n const { propertyTypeId, projectPhaseId } = constructionNumber;\n\n constructionNumber.areaProject = areaProject;\n\n if (propertyTypeId) {\n constructionNumber.propertyType = findPropertyType(propertyTypes, {\n id: propertyTypeId,\n });\n }\n\n if (projectPhaseId) {\n constructionNumber.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n constructionNumber.apartmentBuilding = apartmentBuildings.find((s) =>\n s.constructionNumberIds?.includes(constructionNumber.id),\n );\n\n constructionNumber.status = constructionNumberStatus(constructionNumber);\n\n constructionNumber.objectType = 'constructionNumber';\n });\n\n /*\n Extend propertTypes object\n */\n propertyTypes.forEach((propertyType) => {\n const { projectPhaseId, id } = propertyType;\n\n if (projectPhaseId) {\n propertyType.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n propertyType.constructionNumbers = filterConstructionNumbers(constructionNumbers, {\n propertyTypeId: id,\n });\n\n if (propertyType.projectPhase) {\n propertyType.status = getPropertyTypeStatus(\n propertyType.projectPhase,\n propertyType.constructionNumbers,\n );\n }\n\n propertyType.apartmentBuildings = apartmentBuildings.filter((s) =>\n s.propertyTypeIds?.includes(propertyType.id),\n );\n\n propertyType.objectType = 'propertyType';\n });\n\n /*\n Extend projectPhase object\n */\n projectPhases.forEach((projectPhase) => {\n const { id } = projectPhase;\n\n projectPhase.propertyTypes = filterPropertyTypes(propertyTypes, {\n projectPhaseId: id,\n });\n projectPhase.constructionNumbers = filterConstructionNumbers(constructionNumbers, {\n projectPhaseId: id,\n });\n\n projectPhase.objectType = 'projectPhase';\n });\n\n /*\n Extend apartmentBuilding object\n */\n apartmentBuildings.forEach((apartmentBuilding) => {\n const { propertyTypeIds, constructionNumberIds, projectPhaseId } = apartmentBuilding;\n\n if (propertyTypeIds) {\n apartmentBuilding.propertyTypes = propertyTypes.filter(({ id }) =>\n propertyTypeIds?.includes(id),\n );\n }\n\n if (constructionNumberIds) {\n apartmentBuilding.constructionNumbers = constructionNumbers.filter(({ id }) =>\n constructionNumberIds?.includes(id),\n );\n }\n\n if (projectPhaseId) {\n apartmentBuilding.projectPhase = findProjectPhase(projectPhases, {\n id: projectPhaseId,\n });\n }\n\n if (apartmentBuilding.projectPhase) {\n apartmentBuilding.status = getApartmentBuildingStatus(\n apartmentBuilding.projectPhase,\n apartmentBuilding.constructionNumbers,\n );\n }\n\n apartmentBuilding.objectType = 'apartmentBuilding';\n });\n\n /*\n Extend district object\n */\n districts.forEach((district) => {\n district.status = getDistrictStatus(district, projectPhases);\n district.objectType = 'district';\n });\n\n return {\n constructionNumbers,\n propertyTypes,\n apartmentBuildings,\n projectPhases,\n districts,\n areaProject,\n };\n }\n\n return {\n getData,\n getCurrentAreaData,\n };\n};\n\nconst extendedArea = ExtendedAreaModelsUtility();\n\nexport { extendedArea, ExtendedAreaModels };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpd-library/utilities",
3
- "version": "1.3.2-beta.2",
3
+ "version": "1.3.2-beta.5",
4
4
  "description": "Description",
5
5
  "url": "https://github.com/{repo name}",
6
6
  "license": "MIT",
@@ -45,13 +45,13 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "ecf25b8434525dbb141c528d719ca0fb796a98df",
48
+ "gitHead": "f4fb2206c015be6c99087af99da63889de6b8a35",
49
49
  "dependencies": {
50
50
  "@atomify/core": "2.4.1",
51
51
  "@atomify/hooks": "1.1.11",
52
52
  "@atomify/jsx": "1.7.1",
53
53
  "@atomify/kit": "1.1.11",
54
- "@bpd-library/types": "^1.3.2-beta.2",
54
+ "@bpd-library/types": "^1.3.2-beta.5",
55
55
  "qs": "^6.9.4",
56
56
  "query-string": "5"
57
57
  }
@@ -1,3 +0,0 @@
1
- import { ApartmentBuildingModel, AreaProjectModel, ConstructionNumberModel, DistrictModel, ProjectPhaseModel, PropertyTypeModel } from '../generated';
2
- declare const composeExcludeString: (keys: (keyof ConstructionNumberModel | keyof PropertyTypeModel | keyof ApartmentBuildingModel | keyof ProjectPhaseModel | keyof DistrictModel | keyof AreaProjectModel)[]) => string;
3
- export { composeExcludeString };
@@ -1,5 +0,0 @@
1
- const composeExcludeString = (keys) => {
2
- return keys.join(',');
3
- };
4
- export { composeExcludeString };
5
- //# sourceMappingURL=compose-exclude-string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compose-exclude-string.js","sourceRoot":"","sources":["../../src/api-utilities/compose-exclude-string.ts"],"names":[],"mappings":"AASA,MAAM,oBAAoB,GAAG,CACzB,IAOG,EACL,EAAE;IACA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC","sourcesContent":["import {\n ApartmentBuildingModel,\n AreaProjectModel,\n ConstructionNumberModel,\n DistrictModel,\n ProjectPhaseModel,\n PropertyTypeModel,\n} from '../generated';\n\nconst composeExcludeString = (\n keys: (\n | keyof ConstructionNumberModel\n | keyof PropertyTypeModel\n | keyof ApartmentBuildingModel\n | keyof ProjectPhaseModel\n | keyof DistrictModel\n | keyof AreaProjectModel\n )[],\n) => {\n return keys.join(',');\n};\n\nexport { composeExcludeString };\n"]}
@@ -1,120 +0,0 @@
1
- import qs from 'qs';
2
-
3
- class HttpError extends Error {
4
- constructor(input) {
5
- super(input.message);
6
- this.response = input.response;
7
- this.statusCode = input.statusCode;
8
- this.body = input.body;
9
- this.name = 'HttpError';
10
- }
11
- }
12
- class HttpClient {
13
- constructor(config = {}) {
14
- this.defaultConfig = {
15
- returnType: 'json',
16
- };
17
- this.config = {};
18
- this.get = this.createRequest('GET');
19
- this.post = this.createRequest('POST');
20
- this.put = this.createRequest('PUT');
21
- this.patch = this.createRequest('PATCH');
22
- this.delete = this.createRequest('DELETE');
23
- this.setToken = (token) => (this.token = token);
24
- this.setAbortController = (config) => {
25
- const { createAbort } = config;
26
- if (createAbort) {
27
- if (typeof AbortController !== undefined) {
28
- const controller = new AbortController();
29
- const { signal } = controller;
30
- config.signal = signal;
31
- createAbort(controller.abort.bind(controller));
32
- }
33
- else {
34
- createAbort(() => console.log('The AbortController api isnt available in your browser'));
35
- }
36
- }
37
- };
38
- this.config = Object.assign(Object.assign({}, this.defaultConfig), config);
39
- }
40
- createRequest(method) {
41
- return (url, data, config) => {
42
- if (method === 'GET') {
43
- let getUrl = url;
44
- if (data) {
45
- getUrl = url + '?' + qs.stringify(data);
46
- }
47
- return this.request(getUrl, Object.assign(Object.assign({}, config), { method: 'GET' }));
48
- }
49
- const contentType = config && config.headers && config.headers['Content-Type'];
50
- return this.request(url, Object.assign(Object.assign({}, config), { method, body: this.createBody(data, contentType) }));
51
- };
52
- }
53
- setAuthenticationHeaders(config) {
54
- if (this.token) {
55
- config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: `Bearer ${this.token}` });
56
- }
57
- }
58
- async request(url, requestConfig = {}) {
59
- const { beforeHook } = this.config;
60
- const config = Object.assign(Object.assign({}, this.config), requestConfig);
61
- const { baseUrl = '' } = config;
62
- this.setAbortController(config);
63
- if (beforeHook) {
64
- await beforeHook(this);
65
- }
66
- this.setAuthenticationHeaders(config);
67
- const requestFn = fetch(baseUrl + url, config)
68
- .then(this.handleError)
69
- .then(res => this.handleSuccess(res, config));
70
- return requestFn.catch(err => this.onError(err, () => this.request(url, requestConfig)));
71
- }
72
- handleSuccess(res, config) {
73
- const { returnType = 'json' } = config;
74
- if (res.status === 204 || res.status === 201 || !res[returnType]) {
75
- return res;
76
- }
77
- return res[returnType]();
78
- }
79
- async onError(err, requestFn) {
80
- const { onError } = this.config;
81
- if (onError) {
82
- return onError(err, requestFn);
83
- }
84
- throw err;
85
- }
86
- createBody(body, contentType) {
87
- switch (contentType) {
88
- case 'application/json':
89
- return JSON.stringify(body);
90
- case 'application/x-www-form-urlencoded':
91
- return new URLSearchParams(body);
92
- default:
93
- return JSON.stringify(body);
94
- }
95
- }
96
- async handleError(response) {
97
- if (response.ok) {
98
- return response;
99
- }
100
- const responseBody = await response.text();
101
- let body = response;
102
- try {
103
- body = JSON.parse(responseBody);
104
- }
105
- catch (err) {
106
- body = responseBody;
107
- }
108
- const error = {
109
- message: `HttpError: ${response.status} - ${response.statusText}`,
110
- statusCode: response.status,
111
- response,
112
- body,
113
- };
114
- console.error(error);
115
- throw new HttpError(error);
116
- }
117
- }
118
-
119
- export { HttpClient, HttpError };
120
- //# sourceMappingURL=http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sources":["../../../src/api/http.ts"],"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"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { HttpClient } from './http.js';
2
-
3
- const APIClient = new HttpClient({
4
- baseUrl: window.__ENVIRONMENT_DETAILS__.apiBaseUrl,
5
- headers: {
6
- 'Content-Type': 'application/json',
7
- },
8
- });
9
-
10
- export { APIClient };
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/api/index.ts"],"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"],"names":[],"mappings":";;MAEa,SAAS,GAAG,IAAI,UAAU,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,uBAAuB,CAAC,UAAU;IAClD,OAAO,EAAE;QACL,cAAc,EAAE,kBAAkB;KACrC;CACJ;;;;"}
@@ -1,6 +0,0 @@
1
- const composeExcludeString = (keys) => {
2
- return keys.join(',');
3
- };
4
-
5
- export { composeExcludeString };
6
- //# sourceMappingURL=compose-exclude-string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compose-exclude-string.js","sources":["../../../src/api-utilities/compose-exclude-string.ts"],"sourcesContent":["import {\n ApartmentBuildingModel,\n AreaProjectModel,\n ConstructionNumberModel,\n DistrictModel,\n ProjectPhaseModel,\n PropertyTypeModel,\n} from '../generated';\n\nconst composeExcludeString = (\n keys: (\n | keyof ConstructionNumberModel\n | keyof PropertyTypeModel\n | keyof ApartmentBuildingModel\n | keyof ProjectPhaseModel\n | keyof DistrictModel\n | keyof AreaProjectModel\n )[],\n) => {\n return keys.join(',');\n};\n\nexport { composeExcludeString };\n"],"names":[],"mappings":"MASM,oBAAoB,GAAG,CACzB,IAOG;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B;;;;"}
@@ -1,13 +0,0 @@
1
- const filterNumbers = (values) => values.filter(Number.isInteger);
2
- const mergeDecimalRange = ({ from: fromA, to: toA }, { from: fromB, to: toB }) => {
3
- const mergedRange = {};
4
- const filteredNumbers = filterNumbers([fromA, toA, fromB, toB]);
5
- if (!filteredNumbers.length)
6
- return {};
7
- mergedRange.from = Math.min(...filteredNumbers);
8
- mergedRange.to = Math.max(...filteredNumbers);
9
- return mergedRange;
10
- };
11
-
12
- export { mergeDecimalRange };
13
- //# sourceMappingURL=merge-decimal-range.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-decimal-range.js","sources":["../../../../src/api-utilities/decimal-range/merge-decimal-range.ts"],"sourcesContent":["import { DecimalRange } from '../../generated';\n\nconst filterNumbers = (values: (number | null | undefined)[]): number[] =>\n values.filter(Number.isInteger) as number[];\n\nconst mergeDecimalRange = (\n { from: fromA, to: toA }: DecimalRange,\n { from: fromB, to: toB }: DecimalRange,\n) => {\n const mergedRange: DecimalRange = {};\n const filteredNumbers = filterNumbers([fromA, toA, fromB, toB]);\n\n if (!filteredNumbers.length) return {};\n\n mergedRange.from = Math.min(...filteredNumbers);\n mergedRange.to = Math.max(...filteredNumbers);\n\n return mergedRange;\n};\n\nexport { mergeDecimalRange };\n"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,CAAC,MAAqC,KACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAa,CAAC;MAE1C,iBAAiB,GAAG,CACtB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAgB,EACtC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAgB;IAEtC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,eAAe,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IAE9C,OAAO,WAAW,CAAC;AACvB;;;;"}
@@ -1,29 +0,0 @@
1
- import { mergeDecimalRange } from './merge-decimal-range.js';
2
-
3
- const mergeSpecification = (range, key, specifications) => {
4
- if (specifications && specifications[key]) {
5
- return mergeDecimalRange(range, specifications[key]);
6
- }
7
- return range;
8
- };
9
- const mergePropertySpecification = ({ propertyTypes, projectPhases, }, key) => {
10
- if (propertyTypes) {
11
- return propertyTypes.reduce((range, propertyType) => {
12
- return mergeSpecification(range, key, propertyType.specifications);
13
- }, {});
14
- }
15
- if (projectPhases) {
16
- return projectPhases.reduce((range, projectPhase) => {
17
- return mergeSpecification(range, key, projectPhase.propertySpecifications);
18
- }, {});
19
- }
20
- return {};
21
- };
22
- const mergeConstructionNumberSpecification = (constructionNumbers, key) => {
23
- return constructionNumbers.reduce((range, constructionNumber) => {
24
- return mergeSpecification(range, key, constructionNumber.specifications);
25
- }, {});
26
- };
27
-
28
- export { mergeConstructionNumberSpecification, mergePropertySpecification };
29
- //# sourceMappingURL=merge-specification-range.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-specification-range.js","sources":["../../../../src/api-utilities/decimal-range/merge-specification-range.ts"],"sourcesContent":["import {\n ConstructionNumberModel,\n ConstructionNumberSpecifications,\n DecimalRange,\n ProjectPhaseModel,\n PropertySpecifications,\n PropertyTypeModel,\n} from '../../generated';\nimport { mergeDecimalRange } from './merge-decimal-range';\n\ntype PropertyKeys = keyof PropertySpecifications;\n\ninterface MergeSpecificationRange {\n (obj: { propertyTypes: PropertyTypeModel[] }, key: PropertyKeys): DecimalRange;\n (obj: { projectPhases: ProjectPhaseModel[] }, key: PropertyKeys): DecimalRange;\n}\n\nconst mergeSpecification = <Specifications>(\n range: DecimalRange,\n key: keyof Specifications,\n specifications?: Specifications,\n): DecimalRange => {\n if (specifications && specifications[key]) {\n return mergeDecimalRange(range, specifications[key]!);\n }\n\n return range;\n};\n\n/**\n * Merges all specification properties of an array of apiObjects:\n *\n * @param {{\n * propertyTypes?: PropertyTypeModel[];\n * projectPhases?: ProjectPhaseModel[];\n * }} {\n * propertyTypes,\n * projectPhases,\n * }\n * @param {keyof PropertySpecifications} key\n * @return {*} {DecimalRange}\n */\nconst mergePropertySpecification: MergeSpecificationRange = (\n {\n propertyTypes,\n projectPhases,\n }: {\n propertyTypes?: PropertyTypeModel[];\n projectPhases?: ProjectPhaseModel[];\n },\n key: keyof PropertySpecifications,\n): DecimalRange => {\n if (propertyTypes) {\n return propertyTypes.reduce<DecimalRange>((range, propertyType) => {\n return mergeSpecification<PropertySpecifications>(\n range,\n key,\n propertyType.specifications,\n );\n }, {});\n }\n\n if (projectPhases) {\n return projectPhases.reduce<DecimalRange>((range, projectPhase) => {\n return mergeSpecification<PropertySpecifications>(\n range,\n key,\n projectPhase.propertySpecifications,\n );\n }, {});\n }\n\n return {};\n};\n\n/**\n * Merges all specification properties of an array of constructionNumbers\n *\n * @param {ConstructionNumberModel[]} constructionNumbers\n * @param {keyof ConstructionNumberSpecifications} key\n * @return {*} {DecimalRange}\n */\nconst mergeConstructionNumberSpecification = (\n constructionNumbers: ConstructionNumberModel[],\n key: keyof ConstructionNumberSpecifications,\n): DecimalRange => {\n return constructionNumbers.reduce<DecimalRange>((range, constructionNumber) => {\n return mergeSpecification<ConstructionNumberSpecifications>(\n range,\n key,\n constructionNumber.specifications,\n );\n }, {});\n};\n\nexport { mergePropertySpecification, mergeConstructionNumberSpecification };\n"],"names":[],"mappings":";;AAiBA,MAAM,kBAAkB,GAAG,CACvB,KAAmB,EACnB,GAAyB,EACzB,cAA+B;IAE/B,IAAI,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QACvC,OAAO,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAE,CAAC,CAAC;KACzD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;MAeI,0BAA0B,GAA4B,CACxD,EACI,aAAa,EACb,aAAa,GAIhB,EACD,GAAiC;IAEjC,IAAI,aAAa,EAAE;QACf,OAAO,aAAa,CAAC,MAAM,CAAe,CAAC,KAAK,EAAE,YAAY;YAC1D,OAAO,kBAAkB,CACrB,KAAK,EACL,GAAG,EACH,YAAY,CAAC,cAAc,CAC9B,CAAC;SACL,EAAE,EAAE,CAAC,CAAC;KACV;IAED,IAAI,aAAa,EAAE;QACf,OAAO,aAAa,CAAC,MAAM,CAAe,CAAC,KAAK,EAAE,YAAY;YAC1D,OAAO,kBAAkB,CACrB,KAAK,EACL,GAAG,EACH,YAAY,CAAC,sBAAsB,CACtC,CAAC;SACL,EAAE,EAAE,CAAC,CAAC;KACV;IAED,OAAO,EAAE,CAAC;AACd,EAAE;MASI,oCAAoC,GAAG,CACzC,mBAA8C,EAC9C,GAA2C;IAE3C,OAAO,mBAAmB,CAAC,MAAM,CAAe,CAAC,KAAK,EAAE,kBAAkB;QACtE,OAAO,kBAAkB,CACrB,KAAK,EACL,GAAG,EACH,kBAAkB,CAAC,cAAc,CACpC,CAAC;KACL,EAAE,EAAE,CAAC,CAAC;AACX;;;;"}
@@ -1,14 +0,0 @@
1
- const getDistrictStatus = (district, projectPhases) => {
2
- const filteredProjectPhases = projectPhases.filter(({ districtId }) => district.id === districtId);
3
- const statuses = filteredProjectPhases
4
- .map((item) => item.status)
5
- .filter((status, index, self) => status && self.indexOf(status) === index);
6
- if (statuses.length === 1 && statuses[0])
7
- return statuses[0];
8
- if (statuses.indexOf('OnSale') > -1)
9
- return 'OnSale';
10
- return 'InPreparation';
11
- };
12
-
13
- export { getDistrictStatus };
14
- //# sourceMappingURL=district-status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"district-status.js","sources":["../../../src/api-utilities/district-status.ts"],"sourcesContent":["import { DistrictModel, ProjectPhaseModel, ProjectPhaseStatus } from '../generated';\n\n/*\n Returns a status based on related projectPhases\n*/\nconst getDistrictStatus = (\n district: DistrictModel,\n projectPhases: ProjectPhaseModel[],\n): ProjectPhaseStatus => {\n // Filter related project phases\n const filteredProjectPhases = projectPhases.filter(\n ({ districtId }) => district.id === districtId,\n );\n\n const statuses = filteredProjectPhases\n .map((item) => item.status)\n .filter((status, index, self) => status && self.indexOf(status) === index);\n\n // Return correct district status\n if (statuses.length === 1 && statuses[0]) return statuses[0];\n\n if (statuses.indexOf('OnSale') > -1) return 'OnSale';\n\n return 'InPreparation';\n};\n\nexport { getDistrictStatus };\n"],"names":[],"mappings":"MAKM,iBAAiB,GAAG,CACtB,QAAuB,EACvB,aAAkC;IAGlC,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAC9C,CAAC,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,UAAU,CACjD,CAAC;IAEF,MAAM,QAAQ,GAAG,qBAAqB;SACjC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;IAG/E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE7D,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAErD,OAAO,eAAe,CAAC;AAC3B;;;;"}
@@ -1,41 +0,0 @@
1
- const filterApiObjects = () => {
2
- return (objects, conditions) => objects.filter((object) => {
3
- const match = [];
4
- Object.keys(conditions).forEach((key) => {
5
- const condition = conditions[key];
6
- if (condition === null || condition === undefined)
7
- return;
8
- const conditionMatches = object[key] === condition;
9
- match.push(conditionMatches);
10
- });
11
- return match.indexOf(false) === -1;
12
- });
13
- };
14
- const findApiObject = () => {
15
- return (objects, conditions) => objects.find((object) => {
16
- const match = [];
17
- Object.keys(conditions).forEach((key) => {
18
- const condition = conditions[key];
19
- if (condition === null || condition === undefined)
20
- return;
21
- const conditionMatches = object[key] === condition;
22
- match.push(conditionMatches);
23
- });
24
- return match.indexOf(false) === -1;
25
- });
26
- };
27
- const filterConstructionNumbers = filterApiObjects();
28
- const filterPropertyTypes = filterApiObjects();
29
- const filterProjectPhases = filterApiObjects();
30
- const filterDistricts = filterApiObjects();
31
- const filterAreaProjects = filterApiObjects();
32
- const filterApartmentBuildings = filterApiObjects();
33
- const findConstructionNumber = findApiObject();
34
- const findPropertyType = findApiObject();
35
- const findProjectPhase = findApiObject();
36
- const findDistrict = findApiObject();
37
- const findAreaProject = findApiObject();
38
- const findApartmentBuilding = findApiObject();
39
-
40
- export { filterApartmentBuildings, filterAreaProjects, filterConstructionNumbers, filterDistricts, filterProjectPhases, filterPropertyTypes, findApartmentBuilding, findAreaProject, findConstructionNumber, findDistrict, findProjectPhase, findPropertyType };
41
- //# sourceMappingURL=find-filter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find-filter.js","sources":["../../../src/api-utilities/find-filter.ts"],"sourcesContent":["import {\n ApartmentBuildingModel,\n AreaProjectModel,\n ConstructionNumberModel,\n DistrictModel,\n ProjectPhaseModel,\n PropertyTypeModel,\n} from '../generated';\n\nconst filterApiObjects = <ApiObject, Conditions>() => {\n return <T = ApiObject>(objects: T[], conditions: Conditions): T[] =>\n objects.filter((object) => {\n const match: boolean[] = [];\n\n Object.keys(conditions).forEach((key) => {\n const condition = conditions[key as keyof typeof conditions] as any;\n\n if (condition === null || condition === undefined) return;\n\n const conditionMatches = object[key as keyof T] === condition;\n\n match.push(conditionMatches);\n });\n\n return match.indexOf(false) === -1;\n });\n};\n\nconst findApiObject = <ApiObject, Conditions>() => {\n return <T = ApiObject>(objects: T[], conditions: Conditions): T | undefined =>\n objects.find((object) => {\n const match: boolean[] = [];\n\n Object.keys(conditions).forEach((key) => {\n const condition = conditions[key as keyof typeof conditions] as any;\n\n if (condition === null || condition === undefined) return;\n\n const conditionMatches = object[key as keyof T] === condition;\n\n match.push(conditionMatches);\n });\n\n return match.indexOf(false) === -1;\n });\n};\n\ninterface ConstructionNumberConditions extends Omit<ConstructionNumberModel, 'id'> {\n id?: string;\n}\n\ninterface PropertyTypeConditions extends Omit<PropertyTypeModel, 'id'> {\n id?: string;\n}\n\ninterface ProjectPhaseConditions extends Omit<ProjectPhaseModel, 'id'> {\n id?: string;\n}\n\ninterface DistrictConditions extends Omit<DistrictModel, 'id'> {\n id?: string;\n}\n\ninterface AreaProjectConditions extends Omit<AreaProjectModel, 'id'> {\n id?: string;\n}\n\ninterface ApartmentBuildingConditions extends Omit<ApartmentBuildingModel, 'id'> {\n id?: string;\n}\n\nconst filterConstructionNumbers = filterApiObjects<\n ConstructionNumberModel,\n ConstructionNumberConditions\n>();\nconst filterPropertyTypes = filterApiObjects<PropertyTypeModel, PropertyTypeConditions>();\nconst filterProjectPhases = filterApiObjects<ProjectPhaseModel, ProjectPhaseConditions>();\nconst filterDistricts = filterApiObjects<DistrictModel, DistrictConditions>();\nconst filterAreaProjects = filterApiObjects<AreaProjectModel, AreaProjectConditions>();\nconst filterApartmentBuildings = filterApiObjects<\n ApartmentBuildingModel,\n ApartmentBuildingConditions\n>();\n\nconst findConstructionNumber = findApiObject<\n ConstructionNumberModel,\n ConstructionNumberConditions\n>();\nconst findPropertyType = findApiObject<PropertyTypeModel, PropertyTypeConditions>();\nconst findProjectPhase = findApiObject<ProjectPhaseModel, ProjectPhaseConditions>();\nconst findDistrict = findApiObject<DistrictModel, DistrictConditions>();\nconst findAreaProject = findApiObject<AreaProjectModel, AreaProjectConditions>();\nconst findApartmentBuilding = findApiObject<ApartmentBuildingModel, ApartmentBuildingConditions>();\n\nexport {\n filterConstructionNumbers,\n filterPropertyTypes,\n filterProjectPhases,\n filterDistricts,\n filterAreaProjects,\n filterApartmentBuildings,\n findConstructionNumber,\n findPropertyType,\n findProjectPhase,\n findDistrict,\n findAreaProject,\n findApartmentBuilding,\n};\n"],"names":[],"mappings":"AASA,MAAM,gBAAgB,GAAG;IACrB,OAAO,CAAgB,OAAY,EAAE,UAAsB,KACvD,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM;QAClB,MAAM,KAAK,GAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,GAA8B,CAAQ,CAAC;YAEpE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAE1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAc,CAAC,KAAK,SAAS,CAAC;YAE9D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACtC,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG;IAClB,OAAO,CAAgB,OAAY,EAAE,UAAsB,KACvD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM;QAChB,MAAM,KAAK,GAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,GAA8B,CAAQ,CAAC;YAEpE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAE1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAc,CAAC,KAAK,SAAS,CAAC;YAE9D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACtC,CAAC,CAAC;AACX,CAAC,CAAC;MA0BI,yBAAyB,GAAG,gBAAgB,GAG9C;MACE,mBAAmB,GAAG,gBAAgB,GAA8C;MACpF,mBAAmB,GAAG,gBAAgB,GAA8C;MACpF,eAAe,GAAG,gBAAgB,GAAsC;MACxE,kBAAkB,GAAG,gBAAgB,GAA4C;MACjF,wBAAwB,GAAG,gBAAgB,GAG7C;MAEE,sBAAsB,GAAG,aAAa,GAGxC;MACE,gBAAgB,GAAG,aAAa,GAA8C;MAC9E,gBAAgB,GAAG,aAAa,GAA8C;MAC9E,YAAY,GAAG,aAAa,GAAsC;MAClE,eAAe,GAAG,aAAa,GAA4C;MAC3E,qBAAqB,GAAG,aAAa;;;;"}
@@ -1,31 +0,0 @@
1
- import { calculateCenter } from '../../geometry/geometry.js';
2
-
3
- const validateCoordinates = (coordinates) => {
4
- const validates = coordinates.every((coordinate) => coordinate.every(([longitude, latitude]) => {
5
- return longitude < 180 && longitude > -180 && latitude > -90 && latitude < 90;
6
- }));
7
- return validates;
8
- };
9
- const getApiObjectCenter = (apiObject) => {
10
- const { location } = apiObject;
11
- let coordinates;
12
- if (location) {
13
- coordinates = [[location]];
14
- }
15
- else if (getApiObjectCoordinates(apiObject)) {
16
- coordinates = getApiObjectCoordinates(apiObject);
17
- coordinates = coordinates ? [[calculateCenter(coordinates)]] : undefined;
18
- }
19
- return coordinates && validateCoordinates(coordinates) ? coordinates : false;
20
- };
21
- const getApiObjectCoordinates = ({ geometry, }) => {
22
- if (!(geometry === null || geometry === void 0 ? void 0 : geometry.length))
23
- return;
24
- const coordinates = geometry
25
- .filter(({ coordinates }) => !!coordinates)
26
- .map(({ coordinates }) => coordinates);
27
- return (coordinates === null || coordinates === void 0 ? void 0 : coordinates.length) ? coordinates : undefined;
28
- };
29
-
30
- export { getApiObjectCenter, getApiObjectCoordinates, validateCoordinates };
31
- //# sourceMappingURL=coordinates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coordinates.js","sources":["../../../../src/api-utilities/get/coordinates.ts"],"sourcesContent":["import { Coordinates } from '@bpd-library/types';\n\nimport {\n AreaProjectModel,\n ConstructionNumberModel,\n DistrictModel,\n ProjectPhaseModel,\n PropertyTypeModel,\n} from '../../generated';\nimport { calculateCenter } from '../../geometry';\n\nconst validateCoordinates = (coordinates: Coordinates) => {\n const validates = coordinates.every((coordinate) =>\n coordinate.every(([longitude, latitude]) => {\n return longitude < 180 && longitude > -180 && latitude > -90 && latitude < 90;\n }),\n );\n\n return validates;\n};\n\nconst getApiObjectCenter = (\n apiObject: AreaProjectModel | ProjectPhaseModel | DistrictModel,\n): Coordinates | false => {\n const { location } = apiObject;\n\n let coordinates: Coordinates | undefined;\n\n if (location) {\n coordinates = [[location as [number, number]]];\n } else if (getApiObjectCoordinates(apiObject)) {\n coordinates = getApiObjectCoordinates(apiObject);\n coordinates = coordinates ? [[calculateCenter(coordinates)]] : undefined;\n }\n\n return coordinates && validateCoordinates(coordinates) ? coordinates : false;\n};\n\nconst getApiObjectCoordinates = ({\n geometry,\n}: DistrictModel | ProjectPhaseModel | PropertyTypeModel | ConstructionNumberModel):\n | Coordinates\n | undefined => {\n if (!geometry?.length) return;\n\n const coordinates = geometry\n .filter(({ coordinates }) => !!coordinates)\n .map(({ coordinates }) => coordinates as [number, number][]);\n\n return coordinates?.length ? coordinates : undefined;\n};\n\nexport { validateCoordinates, getApiObjectCenter, getApiObjectCoordinates };\n"],"names":[],"mappings":";;MAWM,mBAAmB,GAAG,CAAC,WAAwB;IACjD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,KAC3C,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC;QACnC,OAAO,SAAS,GAAG,GAAG,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;KACjF,CAAC,CACL,CAAC;IAEF,OAAO,SAAS,CAAC;AACrB,EAAE;MAEI,kBAAkB,GAAG,CACvB,SAA+D;IAE/D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAE/B,IAAI,WAAoC,CAAC;IAEzC,IAAI,QAAQ,EAAE;QACV,WAAW,GAAG,CAAC,CAAC,QAA4B,CAAC,CAAC,CAAC;KAClD;SAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,EAAE;QAC3C,WAAW,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACjD,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;KAC5E;IAED,OAAO,WAAW,IAAI,mBAAmB,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC;AACjF,EAAE;MAEI,uBAAuB,GAAG,CAAC,EAC7B,QAAQ,GACsE;IAG9E,IAAI,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA;QAAE,OAAO;IAE9B,MAAM,WAAW,GAAG,QAAQ;SACvB,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC;SAC1C,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,WAAiC,CAAC,CAAC;IAEjE,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,IAAG,WAAW,GAAG,SAAS,CAAC;AACzD;;;;"}
@@ -1,4 +0,0 @@
1
- const getApiObjectLayerRaster = ({ mapboxTilesetId }) => mapboxTilesetId ? `https://api.mapbox.com/v4/${mapboxTilesetId}` : null;
2
-
3
- export { getApiObjectLayerRaster };
4
- //# sourceMappingURL=layer-raster.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layer-raster.js","sources":["../../../../src/api-utilities/get/layer-raster.ts"],"sourcesContent":["import { AreaProjectModel } from '../../generated';\n\nconst getApiObjectLayerRaster = ({ mapboxTilesetId }: AreaProjectModel) =>\n mapboxTilesetId ? `https://api.mapbox.com/v4/${mapboxTilesetId}` : null;\n\nexport { getApiObjectLayerRaster };\n"],"names":[],"mappings":"MAEM,uBAAuB,GAAG,CAAC,EAAE,eAAe,EAAoB,KAClE,eAAe,GAAG,6BAA6B,eAAe,EAAE,GAAG;;;;"}
@@ -1,11 +0,0 @@
1
- const showMortgagePrice = (constructionNumber) => {
2
- var _a, _b, _c, _d;
3
- if (((_a = constructionNumber.projectPhase) === null || _a === void 0 ? void 0 : _a.isRental) ||
4
- ((_b = constructionNumber.salesPrice) === null || _b === void 0 ? void 0 : _b.priceType) == 'PriceOnRequest') {
5
- return;
6
- }
7
- return (_d = (_c = constructionNumber.salesPrice) === null || _c === void 0 ? void 0 : _c.amount) === null || _d === void 0 ? void 0 : _d.from;
8
- };
9
-
10
- export { showMortgagePrice };
11
- //# sourceMappingURL=show-mortgage-price.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show-mortgage-price.js","sources":["../../../src/api-utilities/show-mortgage-price.ts"],"sourcesContent":["import { ExtendedConstructionNumber } from './api-utilities.types';\n\nconst showMortgagePrice = (constructionNumber: ExtendedConstructionNumber): number | undefined => {\n if (\n constructionNumber.projectPhase?.isRental ||\n constructionNumber.salesPrice?.priceType == 'PriceOnRequest'\n ) {\n return;\n }\n return constructionNumber.salesPrice?.amount?.from;\n};\n\nexport { showMortgagePrice };\n"],"names":[],"mappings":"MAEM,iBAAiB,GAAG,CAAC,kBAA8C;;IACrE,IACI,OAAA,kBAAkB,CAAC,YAAY,0CAAE,QAAQ;QACzC,OAAA,kBAAkB,CAAC,UAAU,0CAAE,SAAS,KAAI,gBAAgB,EAC9D;QACE,OAAO;KACV;IACD,mBAAO,kBAAkB,CAAC,UAAU,0CAAE,MAAM,0CAAE,IAAI,CAAC;AACvD;;;;"}
@@ -1,13 +0,0 @@
1
- const showPrice = ({ constructionNumber, apartmentBuilding, propertyType, }) => {
2
- const { status } = constructionNumber || propertyType || apartmentBuilding || {};
3
- const { salesPrice } = constructionNumber || propertyType || {};
4
- if (salesPrice) {
5
- const { priceType } = salesPrice;
6
- if (priceType === 'PriceOnRequest')
7
- return false;
8
- }
9
- return !!status && !['Rented', 'Sold', 'UnderConstruction'].includes(status);
10
- };
11
-
12
- export { showPrice };
13
- //# sourceMappingURL=show-price.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show-price.js","sources":["../../../src/api-utilities/show-price.ts"],"sourcesContent":["import {\n ExtendedApartmentBuilding,\n ExtendedConstructionNumber,\n ExtendedPropertyType,\n} from './api-utilities.types';\n\nconst showPrice = ({\n constructionNumber,\n apartmentBuilding,\n propertyType,\n}: {\n constructionNumber?: ExtendedConstructionNumber;\n propertyType?: ExtendedPropertyType;\n apartmentBuilding?: ExtendedApartmentBuilding;\n}): boolean => {\n const { status } = constructionNumber || propertyType || apartmentBuilding || {};\n const { salesPrice } = constructionNumber || propertyType || {};\n\n if (salesPrice) {\n const { priceType } = salesPrice;\n if (priceType === 'PriceOnRequest') return false;\n }\n\n return !!status && !['Rented', 'Sold', 'UnderConstruction'].includes(status);\n};\n\nexport { showPrice };\n"],"names":[],"mappings":"MAMM,SAAS,GAAG,CAAC,EACf,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GAKf;IACG,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,IAAI,YAAY,IAAI,iBAAiB,IAAI,EAAE,CAAC;IACjF,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,IAAI,YAAY,IAAI,EAAE,CAAC;IAEhE,IAAI,UAAU,EAAE;QACZ,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QACjC,IAAI,SAAS,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;KACpD;IAED,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjF;;;;"}
@@ -1,7 +0,0 @@
1
- const DESIGN_SYSTEM = 'Design System';
2
- const ATOMS = `${DESIGN_SYSTEM}|Atoms`;
3
- const MOLECULES = `${DESIGN_SYSTEM}|Molecules`;
4
- const ORGANISMS = `${DESIGN_SYSTEM}|Organisms`;
5
-
6
- export { ATOMS, DESIGN_SYSTEM, MOLECULES, ORGANISMS };
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/constants/index.ts"],"sourcesContent":["export const DESIGN_SYSTEM = 'Design System';\nexport const ATOMS = `${DESIGN_SYSTEM}|Atoms`;\nexport const MOLECULES = `${DESIGN_SYSTEM}|Molecules`;\nexport const ORGANISMS = `${DESIGN_SYSTEM}|Organisms`;\n"],"names":[],"mappings":"MAAa,aAAa,GAAG,gBAAgB;MAChC,KAAK,GAAG,GAAG,aAAa,SAAS;MACjC,SAAS,GAAG,GAAG,aAAa,aAAa;MACzC,SAAS,GAAG,GAAG,aAAa;;;;"}
package/dist/esm/date.js DELETED
@@ -1,11 +0,0 @@
1
- const calculateDifferenceInDays = (date1, date2) => {
2
- return Math.abs((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
3
- };
4
- const betweenDates = (dateStart, dateBetween, dateEnd) => {
5
- const afterDateStart = dateBetween > dateStart;
6
- const beforeDateEnd = dateBetween < dateEnd;
7
- return afterDateStart && beforeDateEnd;
8
- };
9
-
10
- export { betweenDates, calculateDifferenceInDays };
11
- //# sourceMappingURL=date.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.js","sources":["../../src/date.ts"],"sourcesContent":["const calculateDifferenceInDays = (date1: Date, date2: Date): number => {\n return Math.abs((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));\n};\n\nconst betweenDates = (dateStart: Date, dateBetween: Date, dateEnd: Date): boolean => {\n const afterDateStart = dateBetween > dateStart;\n const beforeDateEnd = dateBetween < dateEnd;\n\n return afterDateStart && beforeDateEnd;\n};\n\nexport { calculateDifferenceInDays, betweenDates };\n"],"names":[],"mappings":"MAAM,yBAAyB,GAAG,CAAC,KAAW,EAAE,KAAW;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9E,EAAE;MAEI,YAAY,GAAG,CAAC,SAAe,EAAE,WAAiB,EAAE,OAAa;IACnE,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/C,MAAM,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;IAE5C,OAAO,cAAc,IAAI,aAAa,CAAC;AAC3C;;;;"}
@@ -1,25 +0,0 @@
1
- function debounce(func, waitMilliseconds = 50, options = {
2
- isImmediate: false,
3
- }) {
4
- let timeoutId;
5
- return function (...args) {
6
- const context = this;
7
- const doLater = function () {
8
- timeoutId = undefined;
9
- if (!options.isImmediate) {
10
- func.apply(context, args);
11
- }
12
- };
13
- const shouldCallNow = options.isImmediate && timeoutId === undefined;
14
- if (timeoutId !== undefined) {
15
- clearTimeout(timeoutId);
16
- }
17
- timeoutId = setTimeout(doLater, waitMilliseconds);
18
- if (shouldCallNow) {
19
- func.apply(context, args);
20
- }
21
- };
22
- }
23
-
24
- export { debounce };
25
- //# sourceMappingURL=debounce.js.map