@bpd-library/utilities 1.2.6 → 1.2.8-beta.10

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 (308) hide show
  1. package/coverage/base.css +224 -0
  2. package/coverage/block-navigation.js +79 -0
  3. package/coverage/index.html +95 -0
  4. package/coverage/lcov.info +0 -0
  5. package/coverage/prettify.css +1 -0
  6. package/coverage/prettify.js +2 -0
  7. package/coverage/sort-arrow-sprite.png +0 -0
  8. package/coverage/sorter.js +170 -0
  9. package/dist/api/http.d.ts +1 -0
  10. package/dist/api/http.js +3 -2
  11. package/dist/api/http.js.map +1 -1
  12. package/dist/api/index.js +0 -1
  13. package/dist/api/index.js.map +1 -1
  14. package/dist/environment.d.ts +15 -3
  15. package/dist/environment.js +14 -14
  16. package/dist/environment.js.map +1 -1
  17. package/dist/geometry/country-bounding-box.d.ts +1 -1
  18. package/dist/geometry/country-bounding-box.js.map +1 -1
  19. package/dist/hooks/use-stylesheet.d.ts +15 -1
  20. package/dist/hooks/use-stylesheet.js +79 -3
  21. package/dist/hooks/use-stylesheet.js.map +1 -1
  22. package/package.json +3 -3
  23. package/yarn-error.log +8117 -0
  24. package/dist/esm/api/http.js +0 -120
  25. package/dist/esm/api/http.js.map +0 -1
  26. package/dist/esm/api/index.js +0 -11
  27. package/dist/esm/api/index.js.map +0 -1
  28. package/dist/esm/api-utilities/compose-exclude-string.js +0 -6
  29. package/dist/esm/api-utilities/compose-exclude-string.js.map +0 -1
  30. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js +0 -13
  31. package/dist/esm/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  32. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js +0 -29
  33. package/dist/esm/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  34. package/dist/esm/api-utilities/district-status.js +0 -14
  35. package/dist/esm/api-utilities/district-status.js.map +0 -1
  36. package/dist/esm/api-utilities/find-filter.js +0 -41
  37. package/dist/esm/api-utilities/find-filter.js.map +0 -1
  38. package/dist/esm/api-utilities/get/coordinates.js +0 -31
  39. package/dist/esm/api-utilities/get/coordinates.js.map +0 -1
  40. package/dist/esm/api-utilities/get/layer-raster.js +0 -4
  41. package/dist/esm/api-utilities/get/layer-raster.js.map +0 -1
  42. package/dist/esm/api-utilities/show-mortgage-price.js +0 -11
  43. package/dist/esm/api-utilities/show-mortgage-price.js.map +0 -1
  44. package/dist/esm/api-utilities/show-price.js +0 -13
  45. package/dist/esm/api-utilities/show-price.js.map +0 -1
  46. package/dist/esm/constants/index.js +0 -7
  47. package/dist/esm/constants/index.js.map +0 -1
  48. package/dist/esm/date.js +0 -11
  49. package/dist/esm/date.js.map +0 -1
  50. package/dist/esm/debounce.js +0 -25
  51. package/dist/esm/debounce.js.map +0 -1
  52. package/dist/esm/dom/dom.js +0 -9
  53. package/dist/esm/dom/dom.js.map +0 -1
  54. package/dist/esm/environment.js +0 -27
  55. package/dist/esm/environment.js.map +0 -1
  56. package/dist/esm/extended-api-models/excluded-properties.js +0 -36
  57. package/dist/esm/extended-api-models/excluded-properties.js.map +0 -1
  58. package/dist/esm/extended-api-models/extended-area-projects.js +0 -12
  59. package/dist/esm/extended-api-models/extended-area-projects.js.map +0 -1
  60. package/dist/esm/extended-api-models/extended-area.js +0 -182
  61. package/dist/esm/extended-api-models/extended-area.js.map +0 -1
  62. package/dist/esm/extended-api-models/status/apartment-building-status.js +0 -60
  63. package/dist/esm/extended-api-models/status/apartment-building-status.js.map +0 -1
  64. package/dist/esm/extended-api-models/status/construction-number-status.js +0 -20
  65. package/dist/esm/extended-api-models/status/construction-number-status.js.map +0 -1
  66. package/dist/esm/extended-api-models/status/property-type-status.js +0 -60
  67. package/dist/esm/extended-api-models/status/property-type-status.js.map +0 -1
  68. package/dist/esm/extended-api-models/utilities/apartment-building-view.js +0 -5
  69. package/dist/esm/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  70. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js +0 -37
  71. package/dist/esm/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  72. package/dist/esm/extended-api-models/utilities/find-extended-object.js +0 -23
  73. package/dist/esm/extended-api-models/utilities/find-extended-object.js.map +0 -1
  74. package/dist/esm/extended-api-models/utilities/is-apartment.js +0 -14
  75. package/dist/esm/extended-api-models/utilities/is-apartment.js.map +0 -1
  76. package/dist/esm/function-is-true.js +0 -13
  77. package/dist/esm/function-is-true.js.map +0 -1
  78. package/dist/esm/generated/bpd-client.js +0 -53
  79. package/dist/esm/generated/bpd-client.js.map +0 -1
  80. package/dist/esm/geometry/country-bounding-box.js +0 -14
  81. package/dist/esm/geometry/country-bounding-box.js.map +0 -1
  82. package/dist/esm/geometry/geometry.js +0 -65
  83. package/dist/esm/geometry/geometry.js.map +0 -1
  84. package/dist/esm/hooks/use-click-outside.js +0 -34
  85. package/dist/esm/hooks/use-click-outside.js.map +0 -1
  86. package/dist/esm/hooks/use-form-changes.js +0 -30
  87. package/dist/esm/hooks/use-form-changes.js.map +0 -1
  88. package/dist/esm/hooks/use-history.js +0 -15
  89. package/dist/esm/hooks/use-history.js.map +0 -1
  90. package/dist/esm/hooks/use-keyboard-focus.js +0 -14
  91. package/dist/esm/hooks/use-keyboard-focus.js.map +0 -1
  92. package/dist/esm/hooks/use-lazy.js +0 -47
  93. package/dist/esm/hooks/use-lazy.js.map +0 -1
  94. package/dist/esm/hooks/use-map-storage.js +0 -16
  95. package/dist/esm/hooks/use-map-storage.js.map +0 -1
  96. package/dist/esm/hooks/use-scroll-position.js +0 -23
  97. package/dist/esm/hooks/use-scroll-position.js.map +0 -1
  98. package/dist/esm/hooks/use-scroll-to.js +0 -66
  99. package/dist/esm/hooks/use-scroll-to.js.map +0 -1
  100. package/dist/esm/hooks/use-stylesheet.js +0 -8
  101. package/dist/esm/hooks/use-stylesheet.js.map +0 -1
  102. package/dist/esm/hooks/use-url-params.js +0 -31
  103. package/dist/esm/hooks/use-url-params.js.map +0 -1
  104. package/dist/esm/index.js +0 -40
  105. package/dist/esm/index.js.map +0 -1
  106. package/dist/esm/is-touch.js +0 -32
  107. package/dist/esm/is-touch.js.map +0 -1
  108. package/dist/esm/media-query/breakpoints.js +0 -29
  109. package/dist/esm/media-query/breakpoints.js.map +0 -1
  110. package/dist/esm/media-query/media-query.js +0 -39
  111. package/dist/esm/media-query/media-query.js.map +0 -1
  112. package/dist/esm/media-query/utils/index.js +0 -35
  113. package/dist/esm/media-query/utils/index.js.map +0 -1
  114. package/dist/esm/raf-throttle.js +0 -24
  115. package/dist/esm/raf-throttle.js.map +0 -1
  116. package/dist/esm/throttle.js +0 -23
  117. package/dist/esm/throttle.js.map +0 -1
  118. package/dist/esm/to-currency.js +0 -26
  119. package/dist/esm/to-currency.js.map +0 -1
  120. package/dist/lib/api/http.js +0 -117
  121. package/dist/lib/api/http.js.map +0 -1
  122. package/dist/lib/api/index.js +0 -8
  123. package/dist/lib/api/index.js.map +0 -1
  124. package/dist/lib/api-utilities/api-utilities.js +0 -9
  125. package/dist/lib/api-utilities/api-utilities.js.map +0 -1
  126. package/dist/lib/api-utilities/api-utilities.test.js +0 -122
  127. package/dist/lib/api-utilities/api-utilities.test.js.map +0 -1
  128. package/dist/lib/api-utilities/api-utilities.types.js +0 -1
  129. package/dist/lib/api-utilities/api-utilities.types.js.map +0 -1
  130. package/dist/lib/api-utilities/compose-exclude-string.js +0 -5
  131. package/dist/lib/api-utilities/compose-exclude-string.js.map +0 -1
  132. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js +0 -12
  133. package/dist/lib/api-utilities/decimal-range/merge-decimal-range.js.map +0 -1
  134. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js +0 -27
  135. package/dist/lib/api-utilities/decimal-range/merge-specification-range.js.map +0 -1
  136. package/dist/lib/api-utilities/district-status.js +0 -13
  137. package/dist/lib/api-utilities/district-status.js.map +0 -1
  138. package/dist/lib/api-utilities/find-filter.js +0 -40
  139. package/dist/lib/api-utilities/find-filter.js.map +0 -1
  140. package/dist/lib/api-utilities/get/coordinates.js +0 -29
  141. package/dist/lib/api-utilities/get/coordinates.js.map +0 -1
  142. package/dist/lib/api-utilities/get/layer-raster.js +0 -3
  143. package/dist/lib/api-utilities/get/layer-raster.js.map +0 -1
  144. package/dist/lib/api-utilities/index.js +0 -2
  145. package/dist/lib/api-utilities/index.js.map +0 -1
  146. package/dist/lib/api-utilities/show-mortgage-price.js +0 -10
  147. package/dist/lib/api-utilities/show-mortgage-price.js.map +0 -1
  148. package/dist/lib/api-utilities/show-price.js +0 -12
  149. package/dist/lib/api-utilities/show-price.js.map +0 -1
  150. package/dist/lib/constants/index.js +0 -5
  151. package/dist/lib/constants/index.js.map +0 -1
  152. package/dist/lib/date.js +0 -10
  153. package/dist/lib/date.js.map +0 -1
  154. package/dist/lib/debounce.js +0 -23
  155. package/dist/lib/debounce.js.map +0 -1
  156. package/dist/lib/dom/dom.js +0 -7
  157. package/dist/lib/dom/dom.js.map +0 -1
  158. package/dist/lib/dom/index.js +0 -2
  159. package/dist/lib/dom/index.js.map +0 -1
  160. package/dist/lib/environment.js +0 -25
  161. package/dist/lib/environment.js.map +0 -1
  162. package/dist/lib/extended-api-models/excluded-properties.js +0 -35
  163. package/dist/lib/extended-api-models/excluded-properties.js.map +0 -1
  164. package/dist/lib/extended-api-models/extended-area-projects.js +0 -10
  165. package/dist/lib/extended-api-models/extended-area-projects.js.map +0 -1
  166. package/dist/lib/extended-api-models/extended-area.js +0 -179
  167. package/dist/lib/extended-api-models/extended-area.js.map +0 -1
  168. package/dist/lib/extended-api-models/index.js +0 -7
  169. package/dist/lib/extended-api-models/index.js.map +0 -1
  170. package/dist/lib/extended-api-models/status/apartment-building-status.js +0 -58
  171. package/dist/lib/extended-api-models/status/apartment-building-status.js.map +0 -1
  172. package/dist/lib/extended-api-models/status/construction-number-status.js +0 -19
  173. package/dist/lib/extended-api-models/status/construction-number-status.js.map +0 -1
  174. package/dist/lib/extended-api-models/status/property-type-status.js +0 -58
  175. package/dist/lib/extended-api-models/status/property-type-status.js.map +0 -1
  176. package/dist/lib/extended-api-models/utilities/apartment-building-view.js +0 -4
  177. package/dist/lib/extended-api-models/utilities/apartment-building-view.js.map +0 -1
  178. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js +0 -35
  179. package/dist/lib/extended-api-models/utilities/extended-model-price-range.js.map +0 -1
  180. package/dist/lib/extended-api-models/utilities/find-extended-object.js +0 -21
  181. package/dist/lib/extended-api-models/utilities/find-extended-object.js.map +0 -1
  182. package/dist/lib/extended-api-models/utilities/is-apartment.js +0 -13
  183. package/dist/lib/extended-api-models/utilities/is-apartment.js.map +0 -1
  184. package/dist/lib/function-is-true.js +0 -11
  185. package/dist/lib/function-is-true.js.map +0 -1
  186. package/dist/lib/generated/bpd-client.js +0 -50
  187. package/dist/lib/generated/bpd-client.js.map +0 -1
  188. package/dist/lib/generated/index.js +0 -2
  189. package/dist/lib/generated/index.js.map +0 -1
  190. package/dist/lib/geometry/country-bounding-box.js +0 -12
  191. package/dist/lib/geometry/country-bounding-box.js.map +0 -1
  192. package/dist/lib/geometry/geometry.js +0 -64
  193. package/dist/lib/geometry/geometry.js.map +0 -1
  194. package/dist/lib/geometry/geometry.test.js +0 -87
  195. package/dist/lib/geometry/geometry.test.js.map +0 -1
  196. package/dist/lib/geometry/index.js +0 -3
  197. package/dist/lib/geometry/index.js.map +0 -1
  198. package/dist/lib/hooks/index.js +0 -11
  199. package/dist/lib/hooks/index.js.map +0 -1
  200. package/dist/lib/hooks/use-click-outside.js +0 -32
  201. package/dist/lib/hooks/use-click-outside.js.map +0 -1
  202. package/dist/lib/hooks/use-delegate-listen.js +0 -10
  203. package/dist/lib/hooks/use-delegate-listen.js.map +0 -1
  204. package/dist/lib/hooks/use-form-changes.js +0 -27
  205. package/dist/lib/hooks/use-form-changes.js.map +0 -1
  206. package/dist/lib/hooks/use-history.js +0 -13
  207. package/dist/lib/hooks/use-history.js.map +0 -1
  208. package/dist/lib/hooks/use-input.js +0 -28
  209. package/dist/lib/hooks/use-input.js.map +0 -1
  210. package/dist/lib/hooks/use-keyboard-focus.js +0 -11
  211. package/dist/lib/hooks/use-keyboard-focus.js.map +0 -1
  212. package/dist/lib/hooks/use-lazy.js +0 -44
  213. package/dist/lib/hooks/use-lazy.js.map +0 -1
  214. package/dist/lib/hooks/use-map-storage.js +0 -14
  215. package/dist/lib/hooks/use-map-storage.js.map +0 -1
  216. package/dist/lib/hooks/use-scroll-position.js +0 -20
  217. package/dist/lib/hooks/use-scroll-position.js.map +0 -1
  218. package/dist/lib/hooks/use-scroll-to.js +0 -64
  219. package/dist/lib/hooks/use-scroll-to.js.map +0 -1
  220. package/dist/lib/hooks/use-stylesheet.js +0 -5
  221. package/dist/lib/hooks/use-stylesheet.js.map +0 -1
  222. package/dist/lib/hooks/use-text.js +0 -16
  223. package/dist/lib/hooks/use-text.js.map +0 -1
  224. package/dist/lib/hooks/use-url-params.js +0 -28
  225. package/dist/lib/hooks/use-url-params.js.map +0 -1
  226. package/dist/lib/index.js +0 -18
  227. package/dist/lib/index.js.map +0 -1
  228. package/dist/lib/is-touch.js +0 -30
  229. package/dist/lib/is-touch.js.map +0 -1
  230. package/dist/lib/media-query/breakpoints.js +0 -27
  231. package/dist/lib/media-query/breakpoints.js.map +0 -1
  232. package/dist/lib/media-query/index.js +0 -2
  233. package/dist/lib/media-query/index.js.map +0 -1
  234. package/dist/lib/media-query/media-query.js +0 -36
  235. package/dist/lib/media-query/media-query.js.map +0 -1
  236. package/dist/lib/media-query/media-query.types.js +0 -1
  237. package/dist/lib/media-query/media-query.types.js.map +0 -1
  238. package/dist/lib/media-query/utils/index.js +0 -32
  239. package/dist/lib/media-query/utils/index.js.map +0 -1
  240. package/dist/lib/raf-throttle.js +0 -22
  241. package/dist/lib/raf-throttle.js.map +0 -1
  242. package/dist/lib/throttle.js +0 -22
  243. package/dist/lib/throttle.js.map +0 -1
  244. package/dist/lib/to-currency.js +0 -24
  245. package/dist/lib/to-currency.js.map +0 -1
  246. package/dist/types/api/http.d.ts +0 -47
  247. package/dist/types/api/index.d.ts +0 -2
  248. package/dist/types/api-utilities/api-utilities.d.ts +0 -8
  249. package/dist/types/api-utilities/api-utilities.test.d.ts +0 -1
  250. package/dist/types/api-utilities/api-utilities.types.d.ts +0 -46
  251. package/dist/types/api-utilities/compose-exclude-string.d.ts +0 -3
  252. package/dist/types/api-utilities/decimal-range/merge-decimal-range.d.ts +0 -3
  253. package/dist/types/api-utilities/decimal-range/merge-specification-range.d.ts +0 -13
  254. package/dist/types/api-utilities/district-status.d.ts +0 -3
  255. package/dist/types/api-utilities/find-filter.d.ts +0 -32
  256. package/dist/types/api-utilities/get/coordinates.d.ts +0 -6
  257. package/dist/types/api-utilities/get/layer-raster.d.ts +0 -3
  258. package/dist/types/api-utilities/index.d.ts +0 -1
  259. package/dist/types/api-utilities/show-mortgage-price.d.ts +0 -3
  260. package/dist/types/api-utilities/show-price.d.ts +0 -7
  261. package/dist/types/constants/index.d.ts +0 -4
  262. package/dist/types/date.d.ts +0 -3
  263. package/dist/types/debounce.d.ts +0 -5
  264. package/dist/types/dom/dom.d.ts +0 -6
  265. package/dist/types/dom/index.d.ts +0 -1
  266. package/dist/types/environment.d.ts +0 -9
  267. package/dist/types/extended-api-models/excluded-properties.d.ts +0 -5
  268. package/dist/types/extended-api-models/extended-area-projects.d.ts +0 -3
  269. package/dist/types/extended-api-models/extended-area.d.ts +0 -13
  270. package/dist/types/extended-api-models/index.d.ts +0 -6
  271. package/dist/types/extended-api-models/status/apartment-building-status.d.ts +0 -3
  272. package/dist/types/extended-api-models/status/construction-number-status.d.ts +0 -3
  273. package/dist/types/extended-api-models/status/property-type-status.d.ts +0 -4
  274. package/dist/types/extended-api-models/utilities/apartment-building-view.d.ts +0 -4
  275. package/dist/types/extended-api-models/utilities/extended-model-price-range.d.ts +0 -4
  276. package/dist/types/extended-api-models/utilities/find-extended-object.d.ts +0 -4
  277. package/dist/types/extended-api-models/utilities/is-apartment.d.ts +0 -11
  278. package/dist/types/function-is-true.d.ts +0 -1
  279. package/dist/types/generated/bpd-client.d.ts +0 -808
  280. package/dist/types/generated/index.d.ts +0 -1
  281. package/dist/types/geometry/country-bounding-box.d.ts +0 -6
  282. package/dist/types/geometry/geometry.d.ts +0 -11
  283. package/dist/types/geometry/geometry.test.d.ts +0 -8
  284. package/dist/types/geometry/index.d.ts +0 -2
  285. package/dist/types/hooks/index.d.ts +0 -10
  286. package/dist/types/hooks/use-click-outside.d.ts +0 -6
  287. package/dist/types/hooks/use-delegate-listen.d.ts +0 -6
  288. package/dist/types/hooks/use-form-changes.d.ts +0 -12
  289. package/dist/types/hooks/use-history.d.ts +0 -4
  290. package/dist/types/hooks/use-input.d.ts +0 -41
  291. package/dist/types/hooks/use-keyboard-focus.d.ts +0 -6
  292. package/dist/types/hooks/use-lazy.d.ts +0 -21
  293. package/dist/types/hooks/use-map-storage.d.ts +0 -6
  294. package/dist/types/hooks/use-scroll-position.d.ts +0 -10
  295. package/dist/types/hooks/use-scroll-to.d.ts +0 -8
  296. package/dist/types/hooks/use-stylesheet.d.ts +0 -1
  297. package/dist/types/hooks/use-text.d.ts +0 -1
  298. package/dist/types/hooks/use-url-params.d.ts +0 -5
  299. package/dist/types/index.d.ts +0 -17
  300. package/dist/types/is-touch.d.ts +0 -8
  301. package/dist/types/media-query/breakpoints.d.ts +0 -26
  302. package/dist/types/media-query/index.d.ts +0 -1
  303. package/dist/types/media-query/media-query.d.ts +0 -13
  304. package/dist/types/media-query/media-query.types.d.ts +0 -14
  305. package/dist/types/media-query/utils/index.d.ts +0 -3
  306. package/dist/types/raf-throttle.d.ts +0 -4
  307. package/dist/types/throttle.d.ts +0 -2
  308. package/dist/types/to-currency.d.ts +0 -3
@@ -1 +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"]}
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 public setBaseUrl = (baseUrl: string) => (this.config.baseUrl = baseUrl);\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) =>\n this.onError<T>(err, () => this.request(url, requestConfig)),\n );\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"]}
package/dist/api/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { HttpClient } from './http';
2
2
  export const APIClient = new HttpClient({
3
- baseUrl: window.__ENVIRONMENT_DETAILS__.apiBaseUrl,
4
3
  headers: {
5
4
  'Content-Type': 'application/json',
6
5
  },
@@ -1 +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"]}
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;QACL,cAAc,EAAE,kBAAkB;KACrC;CACJ,CAAC,CAAC","sourcesContent":["import { HttpClient } from './http';\n\nexport const APIClient = new HttpClient({\n headers: {\n 'Content-Type': 'application/json',\n },\n});\n"]}
@@ -1,9 +1,21 @@
1
- declare class Environment {
2
- get get(): string;
1
+ interface EnvironmentDetailsConfig {
2
+ environment: string;
3
+ mapboxAccessToken: string;
4
+ mapboxStyle: string;
5
+ apiBaseUrl: string;
6
+ languageIsoCode: string;
7
+ }
8
+ declare class EnvironmentDetails implements Partial<EnvironmentDetailsConfig> {
9
+ environment?: string;
10
+ mapboxAccessToken?: string;
11
+ mapboxStyle?: string;
12
+ apiBaseUrl?: string;
13
+ languageIsoCode?: string;
14
+ init({ environment, mapboxAccessToken, apiBaseUrl, mapboxStyle, languageIsoCode, }: EnvironmentDetailsConfig): void;
3
15
  get isLocal(): boolean;
4
16
  get isTest(): boolean;
5
17
  get isAcceptance(): boolean;
6
18
  get isProduction(): boolean;
7
19
  }
8
- export declare const environment: Environment;
20
+ export declare const environmentDetails: EnvironmentDetails;
9
21
  export {};
@@ -1,25 +1,25 @@
1
- const ENVIRONMENT_LOCAL = 'local';
2
- const ENVIRONMENT_TEST = 'test';
3
- const ENVIRONMENT_ACCEPTANCE = 'acceptance';
4
- const ENVIRONMENT_PRODUCTION = 'production';
5
- const ENVIRONMENT_DEFAULT = ENVIRONMENT_LOCAL;
6
- const ENVIRONMENT = window.__ENVIRONMENT_DETAILS__.environment;
7
- class Environment {
8
- get get() {
9
- return ENVIRONMENT || ENVIRONMENT_DEFAULT;
1
+ import { APIClient } from './api';
2
+ class EnvironmentDetails {
3
+ init({ environment, mapboxAccessToken, apiBaseUrl, mapboxStyle, languageIsoCode, }) {
4
+ this.environment = environment;
5
+ this.mapboxAccessToken = mapboxAccessToken;
6
+ this.mapboxStyle = mapboxStyle;
7
+ this.apiBaseUrl = apiBaseUrl;
8
+ this.languageIsoCode = languageIsoCode;
9
+ APIClient.setBaseUrl(apiBaseUrl);
10
10
  }
11
11
  get isLocal() {
12
- return this.get === ENVIRONMENT_LOCAL;
12
+ return this.environment === 'local';
13
13
  }
14
14
  get isTest() {
15
- return this.get === ENVIRONMENT_TEST;
15
+ return this.environment === 'test';
16
16
  }
17
17
  get isAcceptance() {
18
- return this.get === ENVIRONMENT_ACCEPTANCE;
18
+ return this.environment === 'acceptance';
19
19
  }
20
20
  get isProduction() {
21
- return this.get === ENVIRONMENT_PRODUCTION;
21
+ return this.environment === 'production';
22
22
  }
23
23
  }
24
- export const environment = new Environment();
24
+ export const environmentDetails = new EnvironmentDetails();
25
25
  //# sourceMappingURL=environment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAClC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAC5C,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAE5C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,WAAW,CAAC;AAK/D,MAAM,WAAW;IACb,IAAI,GAAG;QACH,OAAO,WAAW,IAAI,mBAAmB,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,KAAK,iBAAiB,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC;IACzC,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,KAAK,sBAAsB,CAAC;IAC/C,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,KAAK,sBAAsB,CAAC;IAC/C,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC","sourcesContent":["const ENVIRONMENT_LOCAL = 'local';\nconst ENVIRONMENT_TEST = 'test';\nconst ENVIRONMENT_ACCEPTANCE = 'acceptance';\nconst ENVIRONMENT_PRODUCTION = 'production';\n\nconst ENVIRONMENT_DEFAULT = ENVIRONMENT_LOCAL;\nconst ENVIRONMENT = window.__ENVIRONMENT_DETAILS__.environment;\n\n/**\n * Simple Object to check in which environment we are on based on the hostname\n */\nclass Environment {\n get get() {\n return ENVIRONMENT || ENVIRONMENT_DEFAULT;\n }\n\n get isLocal() {\n return this.get === ENVIRONMENT_LOCAL;\n }\n\n get isTest() {\n return this.get === ENVIRONMENT_TEST;\n }\n\n get isAcceptance() {\n return this.get === ENVIRONMENT_ACCEPTANCE;\n }\n\n get isProduction() {\n return this.get === ENVIRONMENT_PRODUCTION;\n }\n}\n\nexport const environment = new Environment();\n"]}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAelC,MAAM,kBAAkB;IAOpB,IAAI,CAAC,EACD,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,eAAe,GACQ;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC;IACxC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC;IAC7C,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC;IAC7C,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC","sourcesContent":["import { APIClient } from './api';\n\ninterface EnvironmentDetailsConfig {\n environment: string;\n mapboxAccessToken: string;\n mapboxStyle: string;\n apiBaseUrl: string;\n languageIsoCode: string;\n}\n\n/**\n * @description Sets up the environment details for the Shared Repo. init method must be called in the entry file before importing components.\n * @class EnvironmentDetails\n * @implements {Partial<EnvironmentDetailsConfig>}\n */\nclass EnvironmentDetails implements Partial<EnvironmentDetailsConfig> {\n environment?: string;\n mapboxAccessToken?: string;\n mapboxStyle?: string;\n apiBaseUrl?: string;\n languageIsoCode?: string;\n\n init({\n environment,\n mapboxAccessToken,\n apiBaseUrl,\n mapboxStyle,\n languageIsoCode,\n }: EnvironmentDetailsConfig) {\n this.environment = environment;\n this.mapboxAccessToken = mapboxAccessToken;\n this.mapboxStyle = mapboxStyle;\n this.apiBaseUrl = apiBaseUrl;\n this.languageIsoCode = languageIsoCode;\n\n APIClient.setBaseUrl(apiBaseUrl);\n }\n\n get isLocal() {\n return this.environment === 'local';\n }\n\n get isTest() {\n return this.environment === 'test';\n }\n\n get isAcceptance() {\n return this.environment === 'acceptance';\n }\n\n get isProduction() {\n return this.environment === 'production';\n }\n}\n\nexport const environmentDetails = new EnvironmentDetails();\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')[]) => BoundingBox;
5
+ declare const getCountryBoundingBox: (countryIsoCodes: ('de' | 'nl' | 'be' | 'lu')[]) => 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,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"]}
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 +1,15 @@
1
- export declare function useStylesheet(style: string): void;
1
+ declare global {
2
+ interface Window {
3
+ ShadyCSS: any;
4
+ }
5
+ interface ShadowRoot {
6
+ adoptedStyleSheets: CSSStyleSheet[];
7
+ }
8
+ interface Document {
9
+ adoptedStyleSheets: CSSStyleSheet[];
10
+ }
11
+ interface CSSStyleSheet {
12
+ replaceSync(cssText: string): void;
13
+ }
14
+ }
15
+ export declare const useStylesheet: (style: string) => void;
@@ -1,5 +1,81 @@
1
- import { unsafeCSS, useStyles } from '@atomify/hooks';
2
- export function useStylesheet(style) {
3
- useStyles(() => unsafeCSS(style));
1
+ import { createHook } from '@atomify/hooks';
2
+ const supportShadyCSS = window.ShadyCSS && !window.ShadyCSS.nativeShadow;
3
+ const CSS_SAVE_TOKEN = Symbol('atomify.cssSaveToken');
4
+ const styleCache = new Map();
5
+ const APPLIED_STYLES = [];
6
+ const supportsAdoptingStyleSheets = () => 'adoptedStyleSheets' in Document.prototype && 'replace' in CSSStyleSheet.prototype;
7
+ function bindShadyRoot(target, template) {
8
+ window.ShadyCSS.prepareTemplate(template, target.$cmpMeta$.$tagName$);
9
+ window.ShadyCSS.styleElement(target);
4
10
  }
11
+ const applyShadowdomStyles = (component, styles) => {
12
+ const container = component.container;
13
+ const componentName = component.$cmpMeta$.$tagName$;
14
+ let styleTmp;
15
+ if (!styleCache.has(componentName)) {
16
+ styleTmp = document.createElement('template');
17
+ styleTmp.innerHTML = `${component.hasShadowDom && !supportsAdoptingStyleSheets() && styles
18
+ ? `<style style-hook>${styles}</style>`
19
+ : ''}`;
20
+ }
21
+ else {
22
+ styleTmp = styleCache.get(componentName);
23
+ }
24
+ if (styleTmp) {
25
+ if (supportShadyCSS && component.hasShadowDom) {
26
+ bindShadyRoot(component, styleTmp);
27
+ }
28
+ container.appendChild(document.importNode(styleTmp.content, true));
29
+ }
30
+ };
31
+ const unsafeCSS = (cssString) => createCSSResult(String(cssString), CSS_SAVE_TOKEN);
32
+ const createCSSResult = (css, token) => {
33
+ if (token !== CSS_SAVE_TOKEN)
34
+ throw new Error(`${css} is not supported. Use 'unsafeCSS' if you want to use: ${css}`);
35
+ let styleSheet = null;
36
+ const cssText = css;
37
+ if (supportsAdoptingStyleSheets()) {
38
+ styleSheet = new CSSStyleSheet();
39
+ styleSheet.replaceSync(cssText);
40
+ }
41
+ return {
42
+ cssText,
43
+ styleSheet,
44
+ };
45
+ };
46
+ const adoptStyles = (root, styles) => {
47
+ const hasShadowDom = root.hasShadowDom;
48
+ const componentName = root.$cmpMeta$.$tagName$;
49
+ if (supportsAdoptingStyleSheets() && hasShadowDom) {
50
+ const CSSRoot = root.container;
51
+ if (!(CSSRoot instanceof HTMLElement))
52
+ CSSRoot.adoptedStyleSheets = styles.map((s) => {
53
+ return s instanceof StyleSheet ? s : s.styleSheet;
54
+ });
55
+ }
56
+ else if (APPLIED_STYLES.indexOf(componentName) === -1) {
57
+ const combinedStyleArray = styles
58
+ .map((style) => ('cssText' in style ? style.cssText : null))
59
+ .join('');
60
+ if (hasShadowDom) {
61
+ root.styles = combinedStyleArray;
62
+ applyShadowdomStyles(root, combinedStyleArray);
63
+ }
64
+ else {
65
+ const styleElement = document.createElement('style');
66
+ styleElement.textContent = combinedStyleArray;
67
+ styleElement.setAttribute('scope', componentName);
68
+ document.head.appendChild(styleElement);
69
+ APPLIED_STYLES.push(componentName);
70
+ }
71
+ }
72
+ };
73
+ export const useStylesheet = (style) => {
74
+ const css = unsafeCSS(style);
75
+ const styles = Array.isArray(css) ? [...css] : [css];
76
+ return createHook({
77
+ onDidLoad: (element) => adoptStyles(element, styles),
78
+ onUpdate: (element) => adoptStyles(element, styles),
79
+ });
80
+ };
5
81
  //# sourceMappingURL=use-stylesheet.js.map
@@ -1 +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"]}
1
+ {"version":3,"file":"use-stylesheet.js","sourceRoot":"","sources":["../../src/hooks/use-stylesheet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, createHook } from '@atomify/hooks';\n\ndeclare global {\n interface Window {\n ShadyCSS: any;\n }\n interface ShadowRoot {\n adoptedStyleSheets: CSSStyleSheet[];\n }\n\n interface Document {\n adoptedStyleSheets: CSSStyleSheet[];\n }\n\n interface CSSStyleSheet {\n replaceSync(cssText: string): void;\n }\n}\n\ninterface CSSResult {\n cssText: string;\n styleSheet: CSSStyleSheet | null;\n}\n\ntype CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nconst supportShadyCSS = window.ShadyCSS && !window.ShadyCSS.nativeShadow;\nconst CSS_SAVE_TOKEN = Symbol('atomify.cssSaveToken');\nconst styleCache = new Map<string, HTMLTemplateElement>();\nconst APPLIED_STYLES: string[] = [];\n\n/**\n * Checks if adopting stylesheet is supported.\n */\nconst supportsAdoptingStyleSheets = () =>\n 'adoptedStyleSheets' in Document.prototype && 'replace' in CSSStyleSheet.prototype;\n\n/**\n * Generates a template based necessary fallbacks needed for browsers that do not support Custom elements or ShadowDom\n * Reference: https://github.com/webcomponents/webcomponentsjs\n * @param {Component} target\n * @param {HTMLTemplateElement} template\n */\nfunction bindShadyRoot(target: Component, template: HTMLTemplateElement) {\n window.ShadyCSS.prepareTemplate(template, target.$cmpMeta$.$tagName$);\n window.ShadyCSS.styleElement(target);\n}\n\nconst applyShadowdomStyles = (component: Component, styles: string) => {\n const container = component.container;\n const componentName = component.$cmpMeta$.$tagName$;\n let styleTmp: HTMLTemplateElement | undefined;\n\n if (!styleCache.has(componentName)) {\n styleTmp = document.createElement('template');\n\n styleTmp.innerHTML = `${\n component.hasShadowDom && !supportsAdoptingStyleSheets() && styles\n ? `<style style-hook>${styles}</style>`\n : ''\n }`;\n } else {\n styleTmp = styleCache.get(componentName);\n }\n\n if (styleTmp) {\n // Apply polyfill when shady polyfill is available and the component has shadowdom\n if (supportShadyCSS && component.hasShadowDom) {\n bindShadyRoot(component, styleTmp);\n }\n\n container.appendChild(document.importNode(styleTmp.content, true));\n }\n};\n\n/**\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n * @param {string} css\n * @returns {StyleObject}\n */\nconst unsafeCSS = (cssString: unknown): CSSResult =>\n createCSSResult(String(cssString), CSS_SAVE_TOKEN);\n\n/**\n * @param {string} css\n * @param {symbol} token\n * @returns {({ cssText: string; styleSheet: CSSStyleSheet | null })}\n */\nconst createCSSResult = (\n css: string,\n token: symbol,\n): { cssText: string; styleSheet: CSSStyleSheet | null } => {\n if (token !== CSS_SAVE_TOKEN)\n throw new Error(`${css} is not supported. Use 'unsafeCSS' if you want to use: ${css}`);\n\n let styleSheet: CSSStyleSheet | null = null;\n const cssText = css;\n\n if (supportsAdoptingStyleSheets()) {\n styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(cssText);\n }\n\n return {\n cssText,\n styleSheet,\n };\n};\n\n/**\n * Applies adoptedStyleSheets to the Atomify component.\n * @param { Component } root\n * @param { StyleObject } css\n */\nconst adoptStyles = (root: Component, styles: Array<CSSResultOrNative>) => {\n const hasShadowDom = root.hasShadowDom;\n const componentName = root.$cmpMeta$.$tagName$;\n\n // Add addopted stylesheets when it is supported\n if (supportsAdoptingStyleSheets() && hasShadowDom) {\n const CSSRoot = root.container;\n if (!(CSSRoot instanceof HTMLElement))\n CSSRoot.adoptedStyleSheets = styles.map((s) => {\n return s instanceof StyleSheet ? s : s.styleSheet!;\n });\n } else if (APPLIED_STYLES.indexOf(componentName) === -1) {\n const combinedStyleArray = styles\n .map((style) => ('cssText' in style ? style.cssText : null))\n .join('');\n\n // When adopted stylesheet is not supported but shadowdom is apply it to the shadowroot.\n // Else it is being applied to the head.\n if (hasShadowDom) {\n // Cache the styles so it can be reused instead of creating a style tag again.\n root.styles = combinedStyleArray;\n applyShadowdomStyles(root, combinedStyleArray);\n } else {\n const styleElement = document.createElement('style');\n styleElement.textContent = combinedStyleArray;\n styleElement.setAttribute('scope', componentName);\n\n document.head.appendChild(styleElement);\n APPLIED_STYLES.push(componentName);\n }\n }\n};\n\nexport const useStylesheet = (style: string) => {\n const css = unsafeCSS(style);\n const styles = Array.isArray(css) ? [...css] : [css];\n\n return createHook({\n onDidLoad: (element) => adoptStyles(element, styles),\n onUpdate: (element) => adoptStyles(element, styles),\n });\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpd-library/utilities",
3
- "version": "1.2.6",
3
+ "version": "1.2.8-beta.10",
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": "60695b9f3c91493163c6be7d43fd3fa6777b2bdb",
48
+ "gitHead": "7a67aecf08a1a4940fd937380abbeecc0df71598",
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.2.6",
54
+ "@bpd-library/types": "^1.2.8-beta.10",
55
55
  "qs": "^6.9.4",
56
56
  "query-string": "5"
57
57
  }