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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) 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/package.json +4 -4
  10. package/dist/esm/atoms/button/button.js +0 -33
  11. package/dist/esm/atoms/button/button.js.map +0 -1
  12. package/dist/esm/atoms/col/col.js +0 -22
  13. package/dist/esm/atoms/col/col.js.map +0 -1
  14. package/dist/esm/atoms/container/container.js +0 -6
  15. package/dist/esm/atoms/container/container.js.map +0 -1
  16. package/dist/esm/atoms/form-elements/range-slider/range-slider.js +0 -21
  17. package/dist/esm/atoms/form-elements/range-slider/range-slider.js.map +0 -1
  18. package/dist/esm/atoms/form-elements/utilities/range-slider.js +0 -100
  19. package/dist/esm/atoms/form-elements/utilities/range-slider.js.map +0 -1
  20. package/dist/esm/atoms/image/image.js +0 -18
  21. package/dist/esm/atoms/image/image.js.map +0 -1
  22. package/dist/esm/atoms/image/utilities/create-image-url.js +0 -15
  23. package/dist/esm/atoms/image/utilities/create-image-url.js.map +0 -1
  24. package/dist/esm/atoms/row/row.js +0 -6
  25. package/dist/esm/atoms/row/row.js.map +0 -1
  26. package/dist/esm/atoms/svg/svg.js +0 -25
  27. package/dist/esm/atoms/svg/svg.js.map +0 -1
  28. package/dist/esm/index.js +0 -14
  29. package/dist/esm/index.js.map +0 -1
  30. package/dist/esm/molecules/infobox/infobox.js +0 -20
  31. package/dist/esm/molecules/infobox/infobox.js.map +0 -1
  32. package/dist/esm/molecules/map/map.js +0 -256
  33. package/dist/esm/molecules/map/map.js.map +0 -1
  34. package/dist/esm/molecules/map/store/map/store.js +0 -150
  35. package/dist/esm/molecules/map/store/map/store.js.map +0 -1
  36. package/dist/esm/molecules/map/utilities/fit-bounds.js +0 -4
  37. package/dist/esm/molecules/map/utilities/fit-bounds.js.map +0 -1
  38. package/dist/esm/molecules/map/utilities/mapbox/add-data.js +0 -54
  39. package/dist/esm/molecules/map/utilities/mapbox/add-data.js.map +0 -1
  40. package/dist/esm/molecules/map/utilities/mapbox/center.js +0 -15
  41. package/dist/esm/molecules/map/utilities/mapbox/center.js.map +0 -1
  42. package/dist/esm/molecules/map/utilities/mapbox/constants.js +0 -5
  43. package/dist/esm/molecules/map/utilities/mapbox/constants.js.map +0 -1
  44. package/dist/esm/molecules/map/utilities/mapbox/index.js +0 -3
  45. package/dist/esm/molecules/map/utilities/mapbox/index.js.map +0 -1
  46. package/dist/esm/molecules/map/utilities/mapbox/mapbox.js +0 -27
  47. package/dist/esm/molecules/map/utilities/mapbox/mapbox.js.map +0 -1
  48. package/dist/esm/molecules/map/utilities/mapbox/parse-feature-properties.js +0 -18
  49. package/dist/esm/molecules/map/utilities/mapbox/parse-feature-properties.js.map +0 -1
  50. package/dist/esm/molecules/map/utilities/mapbox/pointers/setup-pointers.js +0 -151
  51. package/dist/esm/molecules/map/utilities/mapbox/pointers/setup-pointers.js.map +0 -1
  52. package/dist/esm/molecules/map/utilities/mapbox/polygons/feature-state.js +0 -11
  53. package/dist/esm/molecules/map/utilities/mapbox/polygons/feature-state.js.map +0 -1
  54. package/dist/esm/molecules/map/utilities/mapbox/polygons/geojson.js +0 -10
  55. package/dist/esm/molecules/map/utilities/mapbox/polygons/geojson.js.map +0 -1
  56. package/dist/esm/molecules/map/utilities/mapbox/polygons/interaction.js +0 -34
  57. package/dist/esm/molecules/map/utilities/mapbox/polygons/interaction.js.map +0 -1
  58. package/dist/esm/molecules/map/utilities/mapbox/polygons/layer.js +0 -110
  59. package/dist/esm/molecules/map/utilities/mapbox/polygons/layer.js.map +0 -1
  60. package/dist/esm/molecules/map/utilities/mapbox/raster.js +0 -43
  61. package/dist/esm/molecules/map/utilities/mapbox/raster.js.map +0 -1
  62. package/dist/esm/molecules/map/utilities/mapbox/search/alternative-city-suggestions.js +0 -27
  63. package/dist/esm/molecules/map/utilities/mapbox/search/alternative-city-suggestions.js.map +0 -1
  64. package/dist/esm/molecules/map/utilities/mapbox/search/search.js +0 -174
  65. package/dist/esm/molecules/map/utilities/mapbox/search/search.js.map +0 -1
  66. package/dist/esm/molecules/map/utilities/mapbox/tooltip.js +0 -26
  67. package/dist/esm/molecules/map/utilities/mapbox/tooltip.js.map +0 -1
  68. package/dist/esm/molecules/tooltip/tooltip.js +0 -14
  69. package/dist/esm/molecules/tooltip/tooltip.js.map +0 -1
  70. package/dist/esm/node_modules/tslib/tslib.es6.js +0 -24
  71. package/dist/esm/node_modules/tslib/tslib.es6.js.map +0 -1
  72. package/dist/lib/atoms/button/button.js +0 -31
  73. package/dist/lib/atoms/button/button.js.map +0 -1
  74. package/dist/lib/atoms/button/index.js +0 -2
  75. package/dist/lib/atoms/button/index.js.map +0 -1
  76. package/dist/lib/atoms/col/col.js +0 -19
  77. package/dist/lib/atoms/col/col.js.map +0 -1
  78. package/dist/lib/atoms/container/container.js +0 -3
  79. package/dist/lib/atoms/container/container.js.map +0 -1
  80. package/dist/lib/atoms/form-elements/range-slider/range-slider.js +0 -18
  81. package/dist/lib/atoms/form-elements/range-slider/range-slider.js.map +0 -1
  82. package/dist/lib/atoms/form-elements/utilities/range-slider.js +0 -97
  83. package/dist/lib/atoms/form-elements/utilities/range-slider.js.map +0 -1
  84. package/dist/lib/atoms/image/image.js +0 -15
  85. package/dist/lib/atoms/image/image.js.map +0 -1
  86. package/dist/lib/atoms/image/index.js +0 -2
  87. package/dist/lib/atoms/image/index.js.map +0 -1
  88. package/dist/lib/atoms/image/utilities/create-image-url.js +0 -14
  89. package/dist/lib/atoms/image/utilities/create-image-url.js.map +0 -1
  90. package/dist/lib/atoms/image/utilities/detect-responsive-images.js +0 -24
  91. package/dist/lib/atoms/image/utilities/detect-responsive-images.js.map +0 -1
  92. package/dist/lib/atoms/image/utilities/image.js +0 -86
  93. package/dist/lib/atoms/image/utilities/image.js.map +0 -1
  94. package/dist/lib/atoms/image/utilities/object-fit.js +0 -35
  95. package/dist/lib/atoms/image/utilities/object-fit.js.map +0 -1
  96. package/dist/lib/atoms/row/row.js +0 -3
  97. package/dist/lib/atoms/row/row.js.map +0 -1
  98. package/dist/lib/atoms/svg/svg.js +0 -23
  99. package/dist/lib/atoms/svg/svg.js.map +0 -1
  100. package/dist/lib/index.js +0 -12
  101. package/dist/lib/index.js.map +0 -1
  102. package/dist/lib/molecules/infobox/index.js +0 -2
  103. package/dist/lib/molecules/infobox/index.js.map +0 -1
  104. package/dist/lib/molecules/infobox/infobox.js +0 -17
  105. package/dist/lib/molecules/infobox/infobox.js.map +0 -1
  106. package/dist/lib/molecules/map/hooks/use-style-loaded.js +0 -14
  107. package/dist/lib/molecules/map/hooks/use-style-loaded.js.map +0 -1
  108. package/dist/lib/molecules/map/index.js +0 -4
  109. package/dist/lib/molecules/map/index.js.map +0 -1
  110. package/dist/lib/molecules/map/map.js +0 -256
  111. package/dist/lib/molecules/map/map.js.map +0 -1
  112. package/dist/lib/molecules/map/store/map/index.js +0 -2
  113. package/dist/lib/molecules/map/store/map/index.js.map +0 -1
  114. package/dist/lib/molecules/map/store/map/store.js +0 -147
  115. package/dist/lib/molecules/map/store/map/store.js.map +0 -1
  116. package/dist/lib/molecules/map/storybook/themes.js +0 -54
  117. package/dist/lib/molecules/map/storybook/themes.js.map +0 -1
  118. package/dist/lib/molecules/map/utilities/fit-bounds.js +0 -2
  119. package/dist/lib/molecules/map/utilities/fit-bounds.js.map +0 -1
  120. package/dist/lib/molecules/map/utilities/mapbox/add-data.js +0 -52
  121. package/dist/lib/molecules/map/utilities/mapbox/add-data.js.map +0 -1
  122. package/dist/lib/molecules/map/utilities/mapbox/center.js +0 -13
  123. package/dist/lib/molecules/map/utilities/mapbox/center.js.map +0 -1
  124. package/dist/lib/molecules/map/utilities/mapbox/constants.js +0 -3
  125. package/dist/lib/molecules/map/utilities/mapbox/constants.js.map +0 -1
  126. package/dist/lib/molecules/map/utilities/mapbox/index.js +0 -3
  127. package/dist/lib/molecules/map/utilities/mapbox/index.js.map +0 -1
  128. package/dist/lib/molecules/map/utilities/mapbox/mapbox.js +0 -25
  129. package/dist/lib/molecules/map/utilities/mapbox/mapbox.js.map +0 -1
  130. package/dist/lib/molecules/map/utilities/mapbox/parse-feature-properties.js +0 -16
  131. package/dist/lib/molecules/map/utilities/mapbox/parse-feature-properties.js.map +0 -1
  132. package/dist/lib/molecules/map/utilities/mapbox/pointers/setup-pointers.js +0 -151
  133. package/dist/lib/molecules/map/utilities/mapbox/pointers/setup-pointers.js.map +0 -1
  134. package/dist/lib/molecules/map/utilities/mapbox/polygons/feature-state.js +0 -10
  135. package/dist/lib/molecules/map/utilities/mapbox/polygons/feature-state.js.map +0 -1
  136. package/dist/lib/molecules/map/utilities/mapbox/polygons/geojson.js +0 -9
  137. package/dist/lib/molecules/map/utilities/mapbox/polygons/geojson.js.map +0 -1
  138. package/dist/lib/molecules/map/utilities/mapbox/polygons/interaction.js +0 -32
  139. package/dist/lib/molecules/map/utilities/mapbox/polygons/interaction.js.map +0 -1
  140. package/dist/lib/molecules/map/utilities/mapbox/polygons/layer.js +0 -109
  141. package/dist/lib/molecules/map/utilities/mapbox/polygons/layer.js.map +0 -1
  142. package/dist/lib/molecules/map/utilities/mapbox/raster.js +0 -42
  143. package/dist/lib/molecules/map/utilities/mapbox/raster.js.map +0 -1
  144. package/dist/lib/molecules/map/utilities/mapbox/search/alternative-city-suggestions.js +0 -26
  145. package/dist/lib/molecules/map/utilities/mapbox/search/alternative-city-suggestions.js.map +0 -1
  146. package/dist/lib/molecules/map/utilities/mapbox/search/search.js +0 -172
  147. package/dist/lib/molecules/map/utilities/mapbox/search/search.js.map +0 -1
  148. package/dist/lib/molecules/map/utilities/mapbox/tooltip.js +0 -24
  149. package/dist/lib/molecules/map/utilities/mapbox/tooltip.js.map +0 -1
  150. package/dist/lib/molecules/tooltip/index.js +0 -2
  151. package/dist/lib/molecules/tooltip/index.js.map +0 -1
  152. package/dist/lib/molecules/tooltip/tooltip.js +0 -11
  153. package/dist/lib/molecules/tooltip/tooltip.js.map +0 -1
  154. package/dist/molecules/map/utilities/mapbox/directions/directions.d.ts +0 -5
  155. package/dist/molecules/map/utilities/mapbox/directions/directions.js +0 -78
  156. package/dist/molecules/map/utilities/mapbox/directions/directions.js.map +0 -1
  157. package/dist/types/atoms/button/button.d.ts +0 -17
  158. package/dist/types/atoms/button/index.d.ts +0 -1
  159. package/dist/types/atoms/col/col.d.ts +0 -11
  160. package/dist/types/atoms/container/container.d.ts +0 -6
  161. package/dist/types/atoms/form-elements/range-slider/range-slider.d.ts +0 -11
  162. package/dist/types/atoms/form-elements/utilities/range-slider.d.ts +0 -7
  163. package/dist/types/atoms/image/image.d.ts +0 -14
  164. package/dist/types/atoms/image/index.d.ts +0 -1
  165. package/dist/types/atoms/image/utilities/create-image-url.d.ts +0 -6
  166. package/dist/types/atoms/image/utilities/detect-responsive-images.d.ts +0 -7
  167. package/dist/types/atoms/image/utilities/image.d.ts +0 -18
  168. package/dist/types/atoms/image/utilities/object-fit.d.ts +0 -7
  169. package/dist/types/atoms/row/row.d.ts +0 -6
  170. package/dist/types/atoms/svg/svg.d.ts +0 -4
  171. package/dist/types/index.d.ts +0 -11
  172. package/dist/types/molecules/infobox/index.d.ts +0 -1
  173. package/dist/types/molecules/infobox/infobox.d.ts +0 -7
  174. package/dist/types/molecules/map/hooks/use-style-loaded.d.ts +0 -2
  175. package/dist/types/molecules/map/index.d.ts +0 -3
  176. package/dist/types/molecules/map/map.d.ts +0 -2
  177. package/dist/types/molecules/map/store/map/index.d.ts +0 -1
  178. package/dist/types/molecules/map/store/map/store.d.ts +0 -60
  179. package/dist/types/molecules/map/storybook/themes.d.ts +0 -3
  180. package/dist/types/molecules/map/utilities/fit-bounds.d.ts +0 -3
  181. package/dist/types/molecules/map/utilities/mapbox/add-data.d.ts +0 -3
  182. package/dist/types/molecules/map/utilities/mapbox/center.d.ts +0 -3
  183. package/dist/types/molecules/map/utilities/mapbox/constants.d.ts +0 -2
  184. package/dist/types/molecules/map/utilities/mapbox/index.d.ts +0 -2
  185. package/dist/types/molecules/map/utilities/mapbox/mapbox.d.ts +0 -16
  186. package/dist/types/molecules/map/utilities/mapbox/parse-feature-properties.d.ts +0 -6
  187. package/dist/types/molecules/map/utilities/mapbox/pointers/setup-pointers.d.ts +0 -3
  188. package/dist/types/molecules/map/utilities/mapbox/polygons/feature-state.d.ts +0 -2
  189. package/dist/types/molecules/map/utilities/mapbox/polygons/geojson.d.ts +0 -3
  190. package/dist/types/molecules/map/utilities/mapbox/polygons/interaction.d.ts +0 -3
  191. package/dist/types/molecules/map/utilities/mapbox/polygons/layer.d.ts +0 -3
  192. package/dist/types/molecules/map/utilities/mapbox/raster.d.ts +0 -3
  193. package/dist/types/molecules/map/utilities/mapbox/search/alternative-city-suggestions.d.ts +0 -3
  194. package/dist/types/molecules/map/utilities/mapbox/search/search.d.ts +0 -4
  195. package/dist/types/molecules/map/utilities/mapbox/tooltip.d.ts +0 -4
  196. package/dist/types/molecules/tooltip/index.d.ts +0 -1
  197. package/dist/types/molecules/tooltip/tooltip.d.ts +0 -7
@@ -1,172 +0,0 @@
1
- import { h } from '@atomify/jsx';
2
- import { calculateBoundingBoxCenter, debounce, environment, expandBoundingBox, getCountryBoundingBox, useClickOutside, withinBoundingBox, } from '@bpd-library/utilities';
3
- import mapboxgl from 'mapbox-gl';
4
- import { clearSearchResult, getMapboxData, mapStore, updateSearchIsMoving, updateSearchResult, } from '../../../store/map';
5
- import { fitBounds } from '../../fit-bounds';
6
- import getCityAlternativeSuggestions from './alternative-city-suggestions';
7
- const MIN_KM_PADDING = 10;
8
- const search = async (map, { hook, kmPadding = MIN_KM_PADDING, onSearchSuggestion }, { searchCountryIsoCodes = ['nl', 'de'], language = 'nl' }) => {
9
- const element = document.querySelector(hook);
10
- const bounds = getCountryBoundingBox(searchCountryIsoCodes);
11
- if (!element) {
12
- if (environment.isLocal)
13
- console.error(`Search element can't be found: ${hook}`);
14
- return;
15
- }
16
- const inputElement = element.querySelector('[js-hook-map-search-input]');
17
- const form = inputElement.closest('form');
18
- const suggestionsElement = element.querySelector('[js-hook-map-search-suggestions]');
19
- const buttonElement = element.querySelector('[js-hook-map-search-button]');
20
- let geocoder;
21
- let suggestions;
22
- init();
23
- async function init() {
24
- const { default: MapboxGeocoder } = await import('@mapbox/mapbox-gl-geocoder');
25
- geocoder = new MapboxGeocoder({
26
- accessToken: mapboxgl.accessToken,
27
- mapboxgl,
28
- countries: searchCountryIsoCodes.join(',').toUpperCase(),
29
- types: 'region,district,place,neighborhood',
30
- localGeocoder,
31
- language,
32
- enableEventLogging: false,
33
- marker: false,
34
- });
35
- map.addControl(geocoder);
36
- bindEvents();
37
- subscribe();
38
- }
39
- function bindEvents() {
40
- const debouncedOnKeyDown = debounce(onKeyDown, 300);
41
- inputElement.addEventListener('keydown', debouncedOnKeyDown);
42
- buttonElement.addEventListener('click', handleButtonClick);
43
- form === null || form === void 0 ? void 0 : form.addEventListener('submit', (e) => e.preventDefault());
44
- useClickOutside(inputElement, handleClickOutside);
45
- geocoder.on('results', (results) => {
46
- suggestions = results;
47
- renderSuggestions(suggestions);
48
- });
49
- }
50
- function subscribe() {
51
- handleManualSearch(mapStore.getState());
52
- mapStore.subscribe(handleManualSearch, ['manualSearch']);
53
- }
54
- function handleManualSearch({ manualSearch }) {
55
- if (manualSearch) {
56
- geocoder.setInput(manualSearch).on('results', function handleResults(results) {
57
- suggestions = results;
58
- submitFirstSuggestion();
59
- geocoder.off('results', handleResults);
60
- });
61
- }
62
- }
63
- function handleClickOutside() {
64
- clearSuggestionsContainer();
65
- }
66
- function handleFitBounds() {
67
- return fitBounds(map, bounds);
68
- }
69
- function onKeyDown(e) {
70
- const { value } = inputElement;
71
- if (e.key === 'Enter') {
72
- if (!value) {
73
- clearAll();
74
- return;
75
- }
76
- else {
77
- geocoder.on('results', function handleEnter() {
78
- submitFirstSuggestion();
79
- inputElement === null || inputElement === void 0 ? void 0 : inputElement.blur();
80
- geocoder.off('results', handleEnter);
81
- });
82
- }
83
- }
84
- if (value.length >= 3) {
85
- geocoder.setInput(value);
86
- }
87
- else {
88
- suggestions = undefined;
89
- handleFitBounds();
90
- clearSuggestionsContainer();
91
- clearSearchResult();
92
- }
93
- }
94
- function handleButtonClick() {
95
- const { value } = inputElement;
96
- if (!value) {
97
- clearAll();
98
- }
99
- else {
100
- submitFirstSuggestion();
101
- }
102
- }
103
- function submitFirstSuggestion() {
104
- const firstSuggestion = suggestions === null || suggestions === void 0 ? void 0 : suggestions.features[0];
105
- updateStore(firstSuggestion);
106
- clearSuggestionsContainer();
107
- }
108
- function clearSuggestionsContainer() {
109
- suggestionsElement.innerHTML = '';
110
- }
111
- function clearAll() {
112
- suggestions = undefined;
113
- handleFitBounds();
114
- clearSuggestionsContainer();
115
- clearSearchResult();
116
- inputElement === null || inputElement === void 0 ? void 0 : inputElement.blur();
117
- }
118
- function localGeocoder(query) {
119
- const createSuggestion = ({ title, bbox, type, id }) => {
120
- const center = calculateBoundingBoxCenter(bbox);
121
- return {
122
- place_name: title,
123
- bbox,
124
- center,
125
- type,
126
- id,
127
- };
128
- };
129
- const customSuggestions = onSearchSuggestion
130
- ? onSearchSuggestion(query.toLowerCase()).map(createSuggestion)
131
- : [];
132
- const cityAlternatives = getCityAlternativeSuggestions(query.toLowerCase()).map(createSuggestion);
133
- return [...customSuggestions, ...cityAlternatives].slice(0, 4);
134
- }
135
- function updateStore(result) {
136
- if (!result) {
137
- updateSearchResult({
138
- items: [],
139
- result: false,
140
- });
141
- handleFitBounds();
142
- return;
143
- }
144
- const expandedBoundingBox = expandBoundingBox(result.bbox, kmPadding);
145
- const originalBoundingBox = result.bbox;
146
- const mapData = getMapboxData();
147
- const filteredData = mapData.filter((item) => withinBoundingBox(item.coordinates, expandedBoundingBox));
148
- map.fitBounds(expandedBoundingBox);
149
- updateSearchIsMoving(true);
150
- map.once('moveend', () => {
151
- updateSearchIsMoving(false);
152
- });
153
- updateSearchResult({
154
- items: filteredData,
155
- result,
156
- originalBoundingBox,
157
- expandedBoundingBox,
158
- });
159
- }
160
- function handleSuggestionClick(feature) {
161
- inputElement.value = feature.place_name;
162
- clearSuggestionsContainer();
163
- updateStore(feature);
164
- }
165
- function renderSuggestions(suggestions) {
166
- clearSuggestionsContainer();
167
- suggestionsElement.append(h("ul", { class: "map-search__suggestions" }, suggestions.features.map((feature) => (h("li", { class: "map-search__suggestion" },
168
- h("button", { onClick: () => handleSuggestionClick(feature) }, feature.place_name))))));
169
- }
170
- };
171
- export default search;
172
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../../../src/molecules/map/utilities/mapbox/search/search.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@atomify/jsx';\nimport { BoundingBox, MapOptions, MapSearchOptions, MapSearchSuggestion } from '@bpd-library/types';\nimport {\n calculateBoundingBoxCenter,\n debounce,\n environment,\n expandBoundingBox,\n getCountryBoundingBox,\n useClickOutside,\n withinBoundingBox,\n} from '@bpd-library/utilities';\nimport mapboxgl from 'mapbox-gl';\n\nimport {\n clearSearchResult,\n getMapboxData,\n MapState,\n mapStore,\n updateSearchIsMoving,\n updateSearchResult,\n} from '../../../store/map';\nimport { fitBounds } from '../../fit-bounds';\nimport getCityAlternativeSuggestions from './alternative-city-suggestions';\n\nconst MIN_KM_PADDING = 10;\n\nconst search = async (\n map: mapboxgl.Map,\n { hook, kmPadding = MIN_KM_PADDING, onSearchSuggestion }: MapSearchOptions,\n { searchCountryIsoCodes = ['nl', 'de'], language = 'nl' }: MapOptions,\n) => {\n const element = document.querySelector(hook);\n const bounds = getCountryBoundingBox(searchCountryIsoCodes);\n\n if (!element) {\n if (environment.isLocal) console.error(`Search element can't be found: ${hook}`);\n return;\n }\n\n const inputElement = element.querySelector('[js-hook-map-search-input]') as HTMLInputElement;\n const form = inputElement.closest<HTMLFormElement>('form');\n const suggestionsElement = element.querySelector(\n '[js-hook-map-search-suggestions]',\n ) as HTMLElement;\n const buttonElement = element.querySelector('[js-hook-map-search-button]') as HTMLButtonElement;\n\n let geocoder: any | undefined;\n let suggestions: any | undefined;\n\n init();\n\n async function init() {\n // Dynamically import geocoder library\n const { default: MapboxGeocoder } = await import('@mapbox/mapbox-gl-geocoder');\n\n geocoder = new MapboxGeocoder({\n accessToken: mapboxgl.accessToken,\n mapboxgl,\n countries: searchCountryIsoCodes.join(',').toUpperCase(),\n types: 'region,district,place,neighborhood',\n localGeocoder,\n language,\n enableEventLogging: false,\n marker: false,\n });\n\n map.addControl(geocoder);\n\n bindEvents();\n subscribe();\n }\n\n function bindEvents() {\n const debouncedOnKeyDown = debounce(onKeyDown, 300);\n\n inputElement.addEventListener('keydown', debouncedOnKeyDown);\n buttonElement.addEventListener('click', handleButtonClick);\n form?.addEventListener('submit', (e) => e.preventDefault());\n\n useClickOutside(inputElement!, handleClickOutside);\n\n geocoder.on('results', (results: any) => {\n suggestions = results;\n\n renderSuggestions(suggestions);\n });\n }\n\n function subscribe() {\n handleManualSearch(mapStore.getState());\n mapStore.subscribe(handleManualSearch, ['manualSearch']);\n }\n\n function handleManualSearch({ manualSearch }: MapState) {\n if (manualSearch) {\n geocoder.setInput(manualSearch).on('results', function handleResults(results: any) {\n suggestions = results;\n\n submitFirstSuggestion();\n\n geocoder.off('results', handleResults);\n });\n }\n }\n\n function handleClickOutside() {\n clearSuggestionsContainer();\n }\n\n function handleFitBounds() {\n return fitBounds(map, bounds);\n }\n\n function onKeyDown(e: KeyboardEvent) {\n const { value } = inputElement!;\n\n if (e.key === 'Enter') {\n if (!value) {\n clearAll();\n return;\n } else {\n geocoder.on('results', function handleEnter() {\n submitFirstSuggestion();\n inputElement?.blur();\n\n geocoder.off('results', handleEnter);\n });\n }\n }\n\n if (value.length >= 3) {\n geocoder.setInput(value);\n } else {\n suggestions = undefined;\n handleFitBounds();\n clearSuggestionsContainer();\n clearSearchResult();\n }\n }\n\n function handleButtonClick() {\n const { value } = inputElement!;\n\n if (!value) {\n clearAll();\n } else {\n submitFirstSuggestion();\n }\n }\n\n function submitFirstSuggestion() {\n const firstSuggestion = suggestions?.features[0];\n\n updateStore(firstSuggestion);\n clearSuggestionsContainer();\n }\n\n function clearSuggestionsContainer() {\n suggestionsElement.innerHTML = '';\n }\n\n function clearAll() {\n suggestions = undefined;\n handleFitBounds();\n clearSuggestionsContainer();\n clearSearchResult();\n inputElement?.blur();\n }\n\n function localGeocoder(query: string) {\n const createSuggestion = ({ title, bbox, type, id }: MapSearchSuggestion) => {\n const center = calculateBoundingBoxCenter(bbox);\n\n return {\n place_name: title,\n bbox,\n center,\n type,\n id,\n };\n };\n\n const customSuggestions = onSearchSuggestion\n ? onSearchSuggestion(query.toLowerCase()).map(createSuggestion)\n : [];\n const cityAlternatives = getCityAlternativeSuggestions(query.toLowerCase()).map(\n createSuggestion,\n );\n\n return [...customSuggestions, ...cityAlternatives].slice(0, 4);\n }\n\n function updateStore(result: any) {\n if (!result) {\n updateSearchResult({\n items: [],\n result: false,\n });\n\n handleFitBounds();\n\n return;\n }\n\n const expandedBoundingBox = expandBoundingBox(result.bbox as BoundingBox, kmPadding);\n const originalBoundingBox = result.bbox as BoundingBox;\n\n const mapData = getMapboxData();\n const filteredData = mapData.filter((item) =>\n withinBoundingBox(item.coordinates, expandedBoundingBox),\n );\n\n map.fitBounds(expandedBoundingBox);\n\n // Update searchIsMoving boolean in store. Is used to block other focus interactions when searched.\n updateSearchIsMoving(true);\n\n map.once('moveend', () => {\n updateSearchIsMoving(false);\n });\n\n updateSearchResult({\n items: filteredData,\n result,\n originalBoundingBox,\n expandedBoundingBox,\n });\n }\n\n function handleSuggestionClick(feature: any) {\n inputElement.value = feature.place_name;\n\n clearSuggestionsContainer();\n updateStore(feature);\n }\n\n function renderSuggestions(suggestions: any) {\n clearSuggestionsContainer();\n\n suggestionsElement.append(\n <ul class=\"map-search__suggestions\">\n {suggestions.features.map((feature: any) => (\n <li class=\"map-search__suggestion\">\n <button onClick={() => handleSuggestionClick(feature)}>\n {feature.place_name}\n </button>\n </li>\n ))}\n </ul>,\n );\n }\n};\n\nexport default search;\n"]}
@@ -1,24 +0,0 @@
1
- import { h } from '@atomify/jsx';
2
- import { calculateCenter } from '@bpd-library/utilities';
3
- import { Popup } from 'mapbox-gl';
4
- import { Tooltip } from '../../../tooltip';
5
- let currentTooltip;
6
- const addTooltip = (map, coordinates, mapDataItem, openInTab) => {
7
- removeTooltip();
8
- const { tooltip, url } = mapDataItem;
9
- if (!tooltip)
10
- return;
11
- const center = calculateCenter(coordinates);
12
- currentTooltip = new Popup({
13
- closeButton: false,
14
- offset: 20,
15
- })
16
- .setLngLat(center)
17
- .setDOMContent(h(Tooltip, Object.assign({}, tooltip, { url: url, openInTab: openInTab })))
18
- .addTo(map);
19
- };
20
- const removeTooltip = () => {
21
- currentTooltip === null || currentTooltip === void 0 ? void 0 : currentTooltip.remove();
22
- };
23
- export { addTooltip, removeTooltip };
24
- //# sourceMappingURL=tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../../../../src/molecules/map/utilities/mapbox/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,IAAI,cAA0C,CAAC;AAE/C,MAAM,UAAU,GAAG,CACf,GAAiB,EACjB,WAAwB,EACxB,WAAwB,EACxB,SAAmB,EACrB,EAAE;IACA,aAAa,EAAE,CAAC;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAErC,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAE5C,cAAc,GAAG,IAAI,KAAK,CAAC;QACvB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,EAAE;KACb,CAAC;SACG,SAAS,CAAC,MAAM,CAAC;SACjB,aAAa,CAAC,EAAC,OAAO,oBAAK,OAAO,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,IAAI,CAAC;SACvE,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,GAAG,EAAE;IACvB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,GAAG;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC","sourcesContent":["import { h } from '@atomify/jsx';\nimport { Coordinates, MapDataItem } from '@bpd-library/types';\nimport { calculateCenter } from '@bpd-library/utilities';\nimport { Popup } from 'mapbox-gl';\n\nimport { Tooltip } from '../../../tooltip';\n\nlet currentTooltip: mapboxgl.Popup | undefined;\n\nconst addTooltip = (\n map: mapboxgl.Map,\n coordinates: Coordinates,\n mapDataItem: MapDataItem,\n openInTab?: boolean,\n) => {\n removeTooltip();\n\n const { tooltip, url } = mapDataItem;\n\n if (!tooltip) return;\n\n const center = calculateCenter(coordinates);\n\n currentTooltip = new Popup({\n closeButton: false,\n offset: 20,\n })\n .setLngLat(center)\n .setDOMContent(<Tooltip {...tooltip} url={url} openInTab={openInTab} />)\n .addTo(map);\n};\n\nconst removeTooltip = () => {\n currentTooltip?.remove();\n};\n\nexport { addTooltip, removeTooltip };\n"]}
@@ -1,2 +0,0 @@
1
- export * from './tooltip';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC","sourcesContent":["export * from './tooltip';\n"]}
@@ -1,11 +0,0 @@
1
- import { h } from '@atomify/jsx';
2
- import { ButtonA } from '../../atoms/button';
3
- import { Image } from '../../atoms/image';
4
- export const Tooltip = ({ title, image, tags, buttonLabel, url, openInTab }) => (h("div", { class: "c-tooltip" },
5
- image && (h("div", { class: "tooltip__image" },
6
- h(Image, { image: image, preload: { width: 180, height: 100 }, alt: title }))),
7
- h("div", { class: "tooltip__wrapper" },
8
- h("h3", { class: "tooltip__title" }, title), tags === null || tags === void 0 ? void 0 :
9
- tags.map((tag) => (h("span", { class: "tooltip__meta" }, tag))),
10
- url && buttonLabel && (h(ButtonA, { classes: "tooltip__button", url: url, target: openInTab ? '_blank' : '_self', label: buttonLabel, size: "small" })))));
11
- //# sourceMappingURL=tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../../src/molecules/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAW,EAAE,EAAE,CAAC,CACrF,WAAK,KAAK,EAAC,WAAW;IACjB,KAAK,IAAI,CACN,WAAK,KAAK,EAAC,gBAAgB;QACvB,EAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,GAAI,CACvE,CACT;IACD,WAAK,KAAK,EAAC,kBAAkB;QACzB,UAAI,KAAK,EAAC,gBAAgB,IAAE,KAAK,CAAM,EACtC,IAAI,aAAJ,IAAI;QAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAChB,YAAM,KAAK,EAAC,eAAe,IAAE,GAAG,CAAQ,CAC3C;QAEA,GAAG,IAAI,WAAW,IAAI,CACnB,EAAC,OAAO,IACJ,OAAO,EAAC,iBAAiB,EACzB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EACtC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAC,OAAO,GACd,CACL,CACC,CACJ,CACT,CAAC","sourcesContent":["import { h } from '@atomify/jsx';\nimport { MapTooltip } from '@bpd-library/types';\n\nimport { ButtonA } from '../../atoms/button';\nimport { Image } from '../../atoms/image';\n\ninterface Tooltip extends MapTooltip {\n url?: string | null;\n openInTab?: boolean;\n}\n\nexport const Tooltip = ({ title, image, tags, buttonLabel, url, openInTab }: Tooltip) => (\n <div class=\"c-tooltip\">\n {image && (\n <div class=\"tooltip__image\">\n <Image image={image} preload={{ width: 180, height: 100 }} alt={title} />\n </div>\n )}\n <div class=\"tooltip__wrapper\">\n <h3 class=\"tooltip__title\">{title}</h3>\n {tags?.map((tag) => (\n <span class=\"tooltip__meta\">{tag}</span>\n ))}\n\n {url && buttonLabel && (\n <ButtonA\n classes=\"tooltip__button\"\n url={url}\n target={openInTab ? '_blank' : '_self'}\n label={buttonLabel}\n size=\"small\"\n />\n )}\n </div>\n </div>\n);\n"]}
@@ -1,5 +0,0 @@
1
- import { MapDirectionsSetting } from '@bpd-library/types';
2
- import mapboxgl from 'mapbox-gl';
3
- declare const addDirections: (map: mapboxgl.Map, directionsOptions: MapDirectionsSetting) => Promise<void>;
4
- declare function removeDirections(map: mapboxgl.Map): void;
5
- export { addDirections, removeDirections };
@@ -1,78 +0,0 @@
1
- import { environment } from '@bpd-library/utilities';
2
- import { Popup } from 'mapbox-gl';
3
- const DIRECTIONS_SOURCE = 'directions';
4
- let startPopup = null;
5
- let endPopup = null;
6
- let durationPopup = null;
7
- const addDirections = async (map, directionsOptions) => {
8
- if (!map.getSource(DIRECTIONS_SOURCE)) {
9
- setupSource(map);
10
- setupLayer(map);
11
- }
12
- const { profile, start, end } = directionsOptions;
13
- const accessToken = window.__ENVIRONMENT_DETAILS__.mapbox.accessToken;
14
- try {
15
- const url = `https://api.mapbox.com/directions/v5/mapbox/${profile}/${start[0]},${start[1]};${end[0]},${end[1]}?overview=full&geometries=geojson&access_token=${accessToken}`;
16
- const { routes: [route], } = (await fetch(url).then((r) => r.json()));
17
- if (route) {
18
- const source = map.getSource(DIRECTIONS_SOURCE);
19
- source === null || source === void 0 ? void 0 : source.setData({
20
- type: 'FeatureCollection',
21
- features: [
22
- {
23
- type: 'Feature',
24
- geometry: route.geometry,
25
- properties: null,
26
- },
27
- ],
28
- });
29
- const middlePoint = route.geometry.coordinates[route.geometry.coordinates.length / 2];
30
- startPopup = addPopup(map, start, directionsOptions.startLabel());
31
- endPopup = addPopup(map, end, directionsOptions.endLabel());
32
- durationPopup = addPopup(map, middlePoint, directionsOptions.durationLabel(route.duration));
33
- }
34
- }
35
- catch (e) {
36
- if (environment.isLocal) {
37
- console.error(e);
38
- }
39
- }
40
- };
41
- function removeDirections(map) {
42
- const source = map.getSource(DIRECTIONS_SOURCE);
43
- if (!source)
44
- return;
45
- source.setData({
46
- type: 'FeatureCollection',
47
- features: [],
48
- });
49
- startPopup && startPopup.remove();
50
- endPopup && endPopup.remove();
51
- durationPopup && durationPopup.remove();
52
- }
53
- function setupSource(map) {
54
- map.addSource(DIRECTIONS_SOURCE, {
55
- type: 'geojson',
56
- data: {
57
- type: 'FeatureCollection',
58
- features: [],
59
- },
60
- });
61
- }
62
- function setupLayer(map, linePaintOptions) {
63
- map.addLayer({
64
- id: 'directionsStroke',
65
- type: 'line',
66
- source: DIRECTIONS_SOURCE,
67
- layout: {},
68
- paint: Object.assign({ 'line-color': '#32C1DE', 'line-width': 4 }, linePaintOptions),
69
- });
70
- }
71
- function addPopup(map, location, labelNode, options) {
72
- return new Popup(Object.assign({ closeButton: false, closeOnClick: false, offset: 5 }, options))
73
- .setLngLat(location)
74
- .setDOMContent(labelNode)
75
- .addTo(map);
76
- }
77
- export { addDirections, removeDirections };
78
- //# sourceMappingURL=directions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directions.js","sourceRoot":"","sources":["../../../../../../src/molecules/map/utilities/mapbox/directions/directions.tsx"],"names":[],"mappings":"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","sourcesContent":["// import { h } from '@atomify/jsx';\nimport { Coordinate, MapDirectionsSetting } from '@bpd-library/types';\nimport { environment } from '@bpd-library/utilities';\nimport mapboxgl, { Popup } from 'mapbox-gl';\n\n// import { fitBounds } from '../../fit-bounds';\n\ninterface DirectionsAPIResult {\n routes: DirectionsAPIRoute[];\n}\n\ninterface DirectionsAPIRoute {\n duration: number;\n distance: number;\n geometry: GeoJSON.LineString;\n}\n\nconst DIRECTIONS_SOURCE = 'directions';\n\nlet startPopup: Popup | null = null;\nlet endPopup: Popup | null = null;\nlet durationPopup: Popup | null = null;\n\nconst addDirections = async (map: mapboxgl.Map, directionsOptions: MapDirectionsSetting) => {\n // const bounds = getCountryBoundingBox(['nl']);\n\n // Setup source and layer, if not existing\n if (!map.getSource(DIRECTIONS_SOURCE)) {\n setupSource(map);\n setupLayer(map);\n }\n\n const { profile, start, end } = directionsOptions;\n\n const accessToken = window.__ENVIRONMENT_DETAILS__.mapbox.accessToken;\n\n try {\n const url = `https://api.mapbox.com/directions/v5/mapbox/${profile}/${start[0]},${start[1]};${end[0]},${end[1]}?overview=full&geometries=geojson&access_token=${accessToken}`;\n const {\n routes: [route],\n } = (await fetch(url).then((r) => r.json())) as DirectionsAPIResult;\n\n if (route) {\n const source = map.getSource(DIRECTIONS_SOURCE) as mapboxgl.GeoJSONSource | undefined;\n source?.setData({\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: route.geometry,\n properties: null,\n },\n ],\n });\n\n const middlePoint = route.geometry.coordinates[\n route.geometry.coordinates.length / 2\n ] as Coordinate;\n\n startPopup = addPopup(map, start, directionsOptions.startLabel());\n endPopup = addPopup(map, end, directionsOptions.endLabel());\n durationPopup = addPopup(\n map,\n middlePoint,\n directionsOptions.durationLabel(route.duration),\n );\n }\n } catch (e) {\n if (environment.isLocal) {\n console.error(e);\n }\n }\n // function handleFitBounds() {\n // return fitBounds(map, bounds);\n // }\n};\n\nfunction removeDirections(map: mapboxgl.Map) {\n const source = map.getSource(DIRECTIONS_SOURCE) as mapboxgl.GeoJSONSource | undefined;\n\n if (!source) return;\n\n source.setData({\n type: 'FeatureCollection',\n features: [],\n });\n\n startPopup && startPopup.remove();\n endPopup && endPopup.remove();\n durationPopup && durationPopup.remove();\n}\n\nfunction setupSource(map: mapboxgl.Map) {\n map.addSource(DIRECTIONS_SOURCE, {\n type: 'geojson',\n data: {\n type: 'FeatureCollection',\n features: [],\n },\n });\n}\n\nfunction setupLayer(map: mapboxgl.Map, linePaintOptions?: Partial<mapboxgl.LinePaint>) {\n map.addLayer({\n id: 'directionsStroke',\n type: 'line',\n source: DIRECTIONS_SOURCE,\n layout: {},\n paint: {\n 'line-color': '#32C1DE',\n 'line-width': 4,\n ...linePaintOptions,\n },\n });\n}\n\nfunction addPopup(\n map: mapboxgl.Map,\n location: Coordinate,\n labelNode: Node,\n options?: mapboxgl.PopupOptions,\n) {\n return new Popup({\n closeButton: false,\n closeOnClick: false,\n offset: 5,\n ...options,\n })\n .setLngLat(location)\n .setDOMContent(labelNode)\n .addTo(map);\n}\n\nexport { addDirections, removeDirections };\n"]}
@@ -1,17 +0,0 @@
1
- interface ButtonInterface {
2
- label: string | Text;
3
- variant?: string;
4
- icon?: string;
5
- size?: string;
6
- classes?: string;
7
- type?: string;
8
- url?: string;
9
- hook?: string;
10
- controls?: string;
11
- onClick?: Function;
12
- target?: string;
13
- attr?: {};
14
- }
15
- declare const Button: (data: ButtonInterface) => any;
16
- declare const ButtonA: (data: ButtonInterface) => any;
17
- export { Button, ButtonA };
@@ -1 +0,0 @@
1
- export * from './button';
@@ -1,11 +0,0 @@
1
- interface ColInterface {
2
- extraClass?: string;
3
- children?: NodeList;
4
- cols?: (number | undefined)[];
5
- push?: (number | undefined)[];
6
- pull?: (number | undefined)[];
7
- pre?: (number | undefined)[];
8
- post?: (number | undefined)[];
9
- }
10
- export declare const Col: ({ extraClass, children, cols, push, pull, pre, post, }: ColInterface) => any;
11
- export {};
@@ -1,6 +0,0 @@
1
- interface ContainerInterface {
2
- extraClass?: string;
3
- children?: NodeList;
4
- }
5
- export declare const Container: ({ extraClass, children }: ContainerInterface) => any;
6
- export {};
@@ -1,11 +0,0 @@
1
- export interface RangeSliderProps {
2
- min: number;
3
- max: number;
4
- increment: number;
5
- start: number[];
6
- onChange: (e: CustomEvent) => void;
7
- name: string;
8
- classes?: string;
9
- disabled?: boolean;
10
- }
11
- export declare const RangeSliderElement: ({ classes, disabled, min, max, increment, start, name, onChange, }: RangeSliderProps) => any;
@@ -1,7 +0,0 @@
1
- import { Component, FC } from '@atomify/hooks';
2
- export interface BPDRange extends Component {
3
- bindValue: number[];
4
- start: number[];
5
- resetState: () => void;
6
- }
7
- export declare const RangeSlider: FC<BPDRange>;
@@ -1,14 +0,0 @@
1
- import { Setting, Settings } from './utilities/image';
2
- export interface ImageInterface {
3
- image: string;
4
- alt: string;
5
- settings?: Settings;
6
- preload?: Setting;
7
- srcset?: string;
8
- classes?: string;
9
- caption?: string;
10
- hidden?: boolean;
11
- objectFit?: boolean | 'contain';
12
- disableCrossFade?: boolean;
13
- }
14
- export declare const Image: (data: ImageInterface) => any;
@@ -1 +0,0 @@
1
- export * from './image';
@@ -1,6 +0,0 @@
1
- interface Setting {
2
- width?: number;
3
- height?: number;
4
- }
5
- declare const createImageUrl: (image: string, { width, height }: Setting) => string;
6
- export default createImageUrl;
@@ -1,7 +0,0 @@
1
- declare const _default: {
2
- srcset: boolean;
3
- currentSrc: boolean;
4
- sizes: boolean;
5
- picture: boolean;
6
- };
7
- export default _default;
@@ -1,18 +0,0 @@
1
- export interface Setting {
2
- width?: number;
3
- height?: number;
4
- src?: boolean | undefined;
5
- }
6
- export interface Settings {
7
- [key: string]: Setting;
8
- }
9
- export declare class BPDImage extends HTMLElement {
10
- img: HTMLImageElement;
11
- componentDidLoad(): void;
12
- disconnectedCallback(): void;
13
- private parseSettings;
14
- private generateSrc;
15
- private generateSrcset;
16
- private loadImage;
17
- private renderImage;
18
- }
@@ -1,7 +0,0 @@
1
- declare type ImageElement = HTMLImageElement | HTMLImageElement[];
2
- export default class ObjectFit {
3
- static polyfillObjectFit(element: ImageElement): void;
4
- static getObjectfitImages(element: ImageElement): HTMLImageElement[];
5
- private static polyfillImage;
6
- }
7
- export {};
@@ -1,6 +0,0 @@
1
- interface RowInterface {
2
- extraClass?: string;
3
- children?: NodeList;
4
- }
5
- export declare const Row: ({ extraClass, children }: RowInterface) => any;
6
- export {};
@@ -1,4 +0,0 @@
1
- export declare class BPDSvg extends HTMLElement {
2
- name: string;
3
- render(): any;
4
- }
@@ -1,11 +0,0 @@
1
- export * from './atoms/button';
2
- export * from './atoms/col/col';
3
- export * from './atoms/container/container';
4
- export * from './atoms/form-elements/range-slider/range-slider';
5
- export * from './atoms/form-elements/utilities/range-slider';
6
- export * from './atoms/image';
7
- export * from './atoms/row/row';
8
- export * from './atoms/svg/svg';
9
- export * from './molecules/infobox';
10
- export * from './molecules/map';
11
- export * from './molecules/tooltip';
@@ -1 +0,0 @@
1
- export * from './infobox';
@@ -1,7 +0,0 @@
1
- import { MapInfobox } from '@bpd-library/types';
2
- interface InfoboxInterface extends MapInfobox {
3
- onClose: () => void;
4
- openInTab?: boolean;
5
- }
6
- export declare const Infobox: ({ title, image, tags, description, link, onClose, openInTab, }: InfoboxInterface) => any;
7
- export {};
@@ -1,2 +0,0 @@
1
- declare const useStyleLoaded: (map: mapboxgl.Map, cb: Function) => void;
2
- export default useStyleLoaded;
@@ -1,3 +0,0 @@
1
- export * from './utilities/fit-bounds';
2
- export * from './store/map';
3
- export * from './map';
@@ -1,2 +0,0 @@
1
- import { FC } from '@atomify/hooks';
2
- export declare const Map: FC;
@@ -1 +0,0 @@
1
- export * from './store';
@@ -1,60 +0,0 @@
1
- /// <reference types="mapbox-gl" />
2
- import { BoundingBox, MapDataItem } from '@bpd-library/types';
3
- export declare type SearchResult = {
4
- items: MapDataItem[];
5
- result: any;
6
- originalBoundingBox?: BoundingBox;
7
- expandedBoundingBox?: BoundingBox;
8
- };
9
- interface MapFocusOptions {
10
- zoom?: boolean;
11
- toggleTooltip?: boolean;
12
- static?: boolean;
13
- }
14
- export interface MapLayerRasterSettings {
15
- layerRaster: string;
16
- minzoom?: number;
17
- maxzoom?: number;
18
- }
19
- export interface MapState {
20
- data: MapDataItem[];
21
- mapInstance?: mapboxgl.Map;
22
- hover: {
23
- current?: MapDataItem;
24
- previous?: MapDataItem;
25
- };
26
- filter?: MapDataItem[];
27
- click?: MapDataItem;
28
- focus: {
29
- current?: MapDataItem[];
30
- previous?: MapDataItem[];
31
- options?: MapFocusOptions;
32
- };
33
- searchResult?: SearchResult;
34
- searchIsMoving: boolean;
35
- manualSearch?: string;
36
- layerRasterSettings?: MapLayerRasterSettings;
37
- }
38
- export declare const mapStore: import("@atomify/kit/dist/utilities/store/store.types").Store<MapState>;
39
- export declare const updateMapData: (data: MapDataItem[]) => void;
40
- export declare const clearHover: () => void;
41
- export declare const updateHover: (hover: MapDataItem) => void;
42
- export declare const updateClick: (click: MapDataItem) => void;
43
- export declare const setFocus: (ids: string[], options?: MapFocusOptions) => void;
44
- export declare const clearFocus: () => void;
45
- export declare const updateSearchResult: (searchResult: SearchResult) => void;
46
- export declare const clearSearchResult: () => void;
47
- export declare const setFilter: (data: MapDataItem[]) => void;
48
- export declare const clearFilter: () => void;
49
- export declare const setMapInstance: (mapInstance: mapboxgl.Map) => void;
50
- export declare const manualSearch: (query: string) => void;
51
- export declare const updateSearchIsMoving: (isMoving: boolean) => void;
52
- export declare const setLayerRaster: (layerRasterSettings: MapLayerRasterSettings) => void;
53
- export declare const getMapboxData: () => MapDataItem[];
54
- export declare const getHover: () => {
55
- current?: MapDataItem | undefined;
56
- previous?: MapDataItem | undefined;
57
- };
58
- export declare const getMapInstance: () => import("mapbox-gl").Map | undefined;
59
- export declare const getSearchIsMoving: () => boolean;
60
- export {};
@@ -1,3 +0,0 @@
1
- import { MapTheme } from '@bpd-library/types';
2
- declare const THEME: MapTheme;
3
- export default THEME;
@@ -1,3 +0,0 @@
1
- /// <reference types="mapbox-gl" />
2
- import { BoundingBox } from '@bpd-library/types';
3
- export declare const fitBounds: (map: mapboxgl.Map, boundingBox: BoundingBox) => import("mapbox-gl").Map;
@@ -1,3 +0,0 @@
1
- import { MapData, MapTheme } from '@bpd-library/types';
2
- declare const addData: (map: mapboxgl.Map, data: MapData, theme: MapTheme) => Promise<void>;
3
- export default addData;
@@ -1,3 +0,0 @@
1
- import { Coordinates } from '@bpd-library/types';
2
- declare const center: (map: mapboxgl.Map, coordinates: Coordinates) => void;
3
- export default center;
@@ -1,2 +0,0 @@
1
- export declare const MAP_FLY_DURATION = 1000;
2
- export declare const MAP_FLY_EASING_FUNCTION: (t: number) => number;
@@ -1,2 +0,0 @@
1
- import mapbox from './mapbox';
2
- export default mapbox;