@abcagency/hc-ui-components 1.1.1 → 1.2.0

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 (234) hide show
  1. package/.editorconfig +12 -0
  2. package/.eslintrc +144 -0
  3. package/.prettierignore +3 -0
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js +516 -0
  5. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  6. package/dist/apis/hcApi.js +189 -0
  7. package/dist/apis/hcApi.js.map +1 -0
  8. package/dist/clientToken.js +10 -0
  9. package/dist/clientToken.js.map +1 -0
  10. package/dist/components/HireControlMap.js +129 -0
  11. package/dist/components/HireControlMap.js.map +1 -0
  12. package/dist/components/modules/accordions/MapAccordionItem.js +76 -0
  13. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -0
  14. package/dist/components/modules/accordions/default.js +108 -0
  15. package/dist/components/modules/accordions/default.js.map +1 -0
  16. package/dist/components/modules/accordions/filterItem.js +50 -0
  17. package/dist/components/modules/accordions/filterItem.js.map +1 -0
  18. package/dist/components/modules/accordions/filters.js +46 -0
  19. package/dist/components/modules/accordions/filters.js.map +1 -0
  20. package/dist/components/modules/buttons/button-group-apply.js +84 -0
  21. package/dist/components/modules/buttons/button-group-apply.js.map +1 -0
  22. package/dist/components/modules/buttons/commute-pill.js +18 -0
  23. package/dist/components/modules/buttons/commute-pill.js.map +1 -0
  24. package/dist/components/modules/buttons/default.js +145 -0
  25. package/dist/components/modules/buttons/default.js.map +1 -0
  26. package/dist/components/modules/buttons/items-pill.js +23 -0
  27. package/dist/components/modules/buttons/items-pill.js.map +1 -0
  28. package/dist/components/modules/buttons/pill-wrapper.js +20 -0
  29. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -0
  30. package/dist/components/modules/buttons/show-all-button.js +39 -0
  31. package/dist/components/modules/buttons/show-all-button.js.map +1 -0
  32. package/dist/components/modules/cards/default.js +102 -0
  33. package/dist/components/modules/cards/default.js.map +1 -0
  34. package/dist/components/modules/cards/filter.js +38 -0
  35. package/dist/components/modules/cards/filter.js.map +1 -0
  36. package/dist/components/modules/dialogs/apply-dialog.js +46 -0
  37. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -0
  38. package/dist/components/modules/filter/commute.js +184 -0
  39. package/dist/components/modules/filter/commute.js.map +1 -0
  40. package/dist/components/modules/filter/index.js +79 -0
  41. package/dist/components/modules/filter/index.js.map +1 -0
  42. package/dist/components/modules/filter/item.js +71 -0
  43. package/dist/components/modules/filter/item.js.map +1 -0
  44. package/dist/components/modules/filter/location.js +68 -0
  45. package/dist/components/modules/filter/location.js.map +1 -0
  46. package/dist/components/modules/filter/points-of-interest.js +38 -0
  47. package/dist/components/modules/filter/points-of-interest.js.map +1 -0
  48. package/dist/components/modules/filter/radio-item.js +46 -0
  49. package/dist/components/modules/filter/radio-item.js.map +1 -0
  50. package/dist/components/modules/filter/search.js +83 -0
  51. package/dist/components/modules/filter/search.js.map +1 -0
  52. package/dist/components/modules/filter/sort.js +93 -0
  53. package/dist/components/modules/filter/sort.js.map +1 -0
  54. package/dist/components/modules/grid.js +39 -0
  55. package/dist/components/modules/grid.js.map +1 -0
  56. package/dist/components/modules/icon.js +23 -0
  57. package/dist/components/modules/icon.js.map +1 -0
  58. package/dist/components/modules/jobListing/listing-details.js +69 -0
  59. package/dist/components/modules/jobListing/listing-details.js.map +1 -0
  60. package/dist/components/modules/maps/info-window-card.js +14 -0
  61. package/dist/components/modules/maps/info-window-card.js.map +1 -0
  62. package/dist/components/modules/maps/info-window-content.js +39 -0
  63. package/dist/components/modules/maps/info-window-content.js.map +1 -0
  64. package/dist/components/modules/maps/list/field-mapper.js +88 -0
  65. package/dist/components/modules/maps/list/field-mapper.js.map +1 -0
  66. package/dist/components/modules/maps/list/header-item.js +59 -0
  67. package/dist/components/modules/maps/list/header-item.js.map +1 -0
  68. package/dist/components/modules/maps/list/header.js +37 -0
  69. package/dist/components/modules/maps/list/header.js.map +1 -0
  70. package/dist/components/modules/maps/list/index.js +93 -0
  71. package/dist/components/modules/maps/list/index.js.map +1 -0
  72. package/dist/components/modules/maps/list/item-expand-card/index.js +16 -0
  73. package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -0
  74. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +38 -0
  75. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -0
  76. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js +40 -0
  77. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -0
  78. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js +20 -0
  79. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -0
  80. package/dist/components/modules/maps/list/list-item/index.js +98 -0
  81. package/dist/components/modules/maps/list/list-item/index.js.map +1 -0
  82. package/dist/components/modules/maps/map-list.js +57 -0
  83. package/dist/components/modules/maps/map-list.js.map +1 -0
  84. package/dist/components/modules/maps/map-marker.js +85 -0
  85. package/dist/components/modules/maps/map-marker.js.map +1 -0
  86. package/dist/components/modules/maps/map.js +201 -0
  87. package/dist/components/modules/maps/map.js.map +1 -0
  88. package/dist/components/modules/maps/place-marker.js +37 -0
  89. package/dist/components/modules/maps/place-marker.js.map +1 -0
  90. package/dist/components/modules/maps/tabs.js +84 -0
  91. package/dist/components/modules/maps/tabs.js.map +1 -0
  92. package/dist/constants/placeTypes.js +11 -0
  93. package/dist/constants/placeTypes.js.map +1 -0
  94. package/dist/contexts/mapContext.js +133 -0
  95. package/dist/contexts/mapContext.js.map +1 -0
  96. package/dist/contexts/mapListContext.js +278 -0
  97. package/dist/contexts/mapListContext.js.map +1 -0
  98. package/dist/contexts/placesContext.js +152 -0
  99. package/dist/contexts/placesContext.js.map +1 -0
  100. package/dist/hooks/useList.js +119 -0
  101. package/dist/hooks/useList.js.map +1 -0
  102. package/dist/index.js +2 -4536
  103. package/dist/index.js.map +1 -0
  104. package/dist/services/_virtual/_rollupPluginBabelHelpers.js +372 -0
  105. package/dist/services/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  106. package/dist/services/apis/hcApi.js +189 -0
  107. package/dist/services/apis/hcApi.js.map +1 -0
  108. package/dist/services/clientToken.js +7 -0
  109. package/dist/services/clientToken.js.map +1 -0
  110. package/dist/services/configService.js +33 -0
  111. package/dist/services/configService.js.map +1 -0
  112. package/dist/services/googlePlacesNearbyService.js +61 -0
  113. package/dist/services/googlePlacesNearbyService.js.map +1 -0
  114. package/dist/services/listingAggregatorService.js +56 -0
  115. package/dist/services/listingAggregatorService.js.map +1 -0
  116. package/dist/services/listingEntityService.js +36 -0
  117. package/dist/services/listingEntityService.js.map +1 -0
  118. package/dist/services/listingService.js +60 -112
  119. package/dist/services/listingService.js.map +1 -0
  120. package/dist/services/recruiterService.js +36 -0
  121. package/dist/services/recruiterService.js.map +1 -0
  122. package/dist/services/styles/index.css +3 -0
  123. package/dist/styles/index.css +3 -0
  124. package/dist/util/filterUtil.js +213 -0
  125. package/dist/util/filterUtil.js.map +1 -0
  126. package/dist/util/loading.js +16 -0
  127. package/dist/util/loading.js.map +1 -0
  128. package/dist/util/localStorageUtil.js +32 -0
  129. package/dist/util/localStorageUtil.js.map +1 -0
  130. package/dist/util/mapIconUtil.js +73 -0
  131. package/dist/util/mapIconUtil.js.map +1 -0
  132. package/dist/util/mapUtil.js +76 -0
  133. package/dist/util/mapUtil.js.map +1 -0
  134. package/dist/util/sortUtil.js +33 -0
  135. package/dist/util/sortUtil.js.map +1 -0
  136. package/dist/util/stringUtils.js +9 -0
  137. package/dist/util/stringUtils.js.map +1 -0
  138. package/jsconfig.json +7 -0
  139. package/package.json +51 -38
  140. package/postcss.config.js +13 -15
  141. package/{src/tailwind/preset.default.js → preset.default.js} +15 -15
  142. package/rollup.config.mjs +87 -0
  143. package/src/apis/hcApi.js +93 -87
  144. package/src/clientToken.js +9 -9
  145. package/src/components/HireControlMap.js +120 -0
  146. package/src/components/modules/accordions/MapAccordionItem.js +72 -69
  147. package/src/components/modules/accordions/default.js +171 -173
  148. package/src/components/modules/accordions/filterItem.js +53 -53
  149. package/src/components/modules/accordions/filters.js +47 -44
  150. package/src/components/modules/buttons/button-group-apply.js +113 -85
  151. package/src/components/modules/buttons/commute-pill.js +22 -21
  152. package/src/components/modules/buttons/default.js +196 -196
  153. package/src/components/modules/buttons/items-pill.js +32 -31
  154. package/src/components/modules/buttons/pill-wrapper.js +27 -26
  155. package/src/components/modules/buttons/show-all-button.js +20 -20
  156. package/src/components/modules/cards/default.js +167 -168
  157. package/src/components/modules/cards/filter.js +56 -55
  158. package/src/components/modules/dialogs/apply-dialog.js +48 -47
  159. package/src/components/modules/filter/commute.js +148 -151
  160. package/src/components/modules/filter/index.js +87 -86
  161. package/src/components/modules/filter/item.js +76 -77
  162. package/src/components/modules/filter/location.js +71 -69
  163. package/src/components/modules/filter/points-of-interest.js +44 -43
  164. package/src/components/modules/filter/radio-item.js +53 -51
  165. package/src/components/modules/filter/search.js +92 -91
  166. package/src/components/modules/filter/sort.js +83 -83
  167. package/src/components/modules/grid.js +55 -56
  168. package/src/components/modules/icon.js +33 -33
  169. package/src/components/modules/jobListing/listing-details.js +94 -88
  170. package/src/components/modules/maps/info-window-card.js +17 -17
  171. package/src/components/modules/maps/info-window-content.js +58 -60
  172. package/src/components/modules/maps/list/field-mapper.js +112 -111
  173. package/src/components/modules/maps/list/header-item.js +91 -90
  174. package/src/components/modules/maps/list/header.js +47 -46
  175. package/src/components/modules/maps/list/index.js +107 -104
  176. package/src/components/modules/maps/list/item-expand-card/index.js +22 -21
  177. package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -48
  178. package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -67
  179. package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
  180. package/src/components/modules/maps/list/list-item/index.js +134 -133
  181. package/src/components/modules/maps/map-list.js +74 -73
  182. package/src/components/modules/maps/map-marker.js +86 -84
  183. package/src/components/modules/maps/map.js +229 -226
  184. package/src/components/modules/maps/place-marker.js +1 -1
  185. package/src/components/modules/maps/tabs.js +81 -79
  186. package/src/constants/placeTypes.js +8 -8
  187. package/src/contexts/mapContext.js +20 -19
  188. package/src/contexts/mapListContext.js +20 -15
  189. package/src/contexts/placesContext.js +4 -0
  190. package/src/hooks/useList.js +12 -10
  191. package/src/index.js +3 -103
  192. package/src/services/configService.js +16 -16
  193. package/src/services/googlePlacesNearbyService.js +33 -33
  194. package/src/services/listingAggregatorService.js +5 -4
  195. package/src/services/listingEntityService.js +2 -1
  196. package/src/services/listingService.js +27 -28
  197. package/src/services/recruiterService.js +17 -17
  198. package/src/styles/{globals.css → index.css} +23 -23
  199. package/src/util/arrayUtil.js +3 -3
  200. package/src/util/fieldMapper.js +22 -19
  201. package/src/util/filterUtil.js +19 -19
  202. package/src/util/loading.js +17 -17
  203. package/src/util/localStorageUtil.js +26 -26
  204. package/src/util/mapIconUtil.js +3 -3
  205. package/src/util/sortUtil.js +32 -32
  206. package/src/util/stringUtils.js +6 -6
  207. package/{src/tailwind/tailwind.config.js → tailwind.config.js} +126 -127
  208. package/dist/globals.css +0 -3
  209. package/dist/output.css +0 -784
  210. package/dist/services/globals.css +0 -3
  211. package/rollup.config.js +0 -68
  212. package/src/components/layout/footer.js +0 -34
  213. package/src/components/layout/header.js +0 -23
  214. package/src/components/layout/layout.js +0 -36
  215. package/src/components/modules/animations/slidein.js +0 -41
  216. package/src/components/modules/navigation/nav-link.js +0 -65
  217. package/src/components/modules/navigation/navbar.js +0 -106
  218. package/src/components/modules/navigation/skip-link.js +0 -21
  219. package/src/components/modules/navigation/social.js +0 -29
  220. package/src/components/modules/sections/default.js +0 -59
  221. package/src/components/modules/sections/sectionContext.js +0 -4
  222. package/src/hooks/useClickOutside.js +0 -16
  223. package/src/hooks/useEventListener.js +0 -25
  224. package/src/hooks/useEventTracker.js +0 -19
  225. package/src/hooks/useRefScrollProgress.js +0 -24
  226. package/src/hooks/useScript.js +0 -63
  227. package/src/hooks/useScrollDirection.js +0 -39
  228. package/src/hooks/useSectionTracker.js +0 -95
  229. package/src/hooks/useUserAgent.js +0 -43
  230. package/src/hooks/useWindowSize.js +0 -28
  231. package/src/index.css +0 -25
  232. package/src/styles/fonts.js +0 -0
  233. package/src/util/page-head.js +0 -62
  234. package/src/util/provider.js +0 -12
@@ -0,0 +1,213 @@
1
+ import { slicedToArray as _slicedToArray, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { getDistinctItemsByProximity } from './mapUtil.js';
3
+
4
+ var getFilterOptions = function getFilterOptions(listings, filteredListings, field) {
5
+ var excludeZeroCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
6
+ var options = new Set();
7
+ listings.forEach(function (listing) {
8
+ if (listing.fields[field]) {
9
+ options.add(listing.fields[field]);
10
+ }
11
+ });
12
+ var optionCounts = {};
13
+ options.forEach(function (option) {
14
+ optionCounts[option] = 0;
15
+ });
16
+ filteredListings.forEach(function (listing) {
17
+ var value = listing.fields[field];
18
+ if (value && optionCounts.hasOwnProperty(value)) {
19
+ optionCounts[value] += 1;
20
+ }
21
+ });
22
+ return Array.from(options).sort().map(function (option) {
23
+ return {
24
+ name: option,
25
+ count: optionCounts[option] || 0
26
+ };
27
+ }).filter(function (option) {
28
+ return !(excludeZeroCount === true && option.count === 0);
29
+ });
30
+ };
31
+ var getSpecialFeatureOptions = function getSpecialFeatureOptions(listings, filteredListings, siteConfig, favorites) {
32
+ var specialFeatures = siteConfig.specialFeatures;
33
+ var featureCounts = Object.keys(specialFeatures).sort().reduce(function (acc, key) {
34
+ acc[specialFeatures[key]] = 0;
35
+ return acc;
36
+ }, {});
37
+ filteredListings.forEach(function (listing) {
38
+ Object.entries(specialFeatures).forEach(function (_ref) {
39
+ var _ref2 = _slicedToArray(_ref, 2),
40
+ featureKey = _ref2[0],
41
+ featureName = _ref2[1];
42
+ if (listing.fields[featureKey] === 1) {
43
+ featureCounts[featureName] += 1;
44
+ }
45
+ });
46
+ });
47
+ var specialFeatureOptions = Object.entries(featureCounts).map(function (_ref3) {
48
+ var _ref4 = _slicedToArray(_ref3, 2),
49
+ name = _ref4[0],
50
+ count = _ref4[1];
51
+ return {
52
+ name: name,
53
+ count: count
54
+ };
55
+ });
56
+ var _iterator = _createForOfIteratorHelper(specialFeatureOptions),
57
+ _step;
58
+ try {
59
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
60
+ var option = _step.value;
61
+ if (option.name === 'Favorite') {
62
+ option.count = filteredListings.filter(function (x) {
63
+ return favorites.includes(x.id);
64
+ }).length;
65
+ }
66
+ }
67
+ } catch (err) {
68
+ _iterator.e(err);
69
+ } finally {
70
+ _iterator.f();
71
+ }
72
+ return specialFeatureOptions;
73
+ };
74
+ var getPointsOfInterestOptions = function getPointsOfInterestOptions(pointsOfInterestNames) {
75
+ return Object.entries(pointsOfInterestNames).sort().map(function (_ref5) {
76
+ var _ref6 = _slicedToArray(_ref5, 2),
77
+ key = _ref6[0],
78
+ name = _ref6[1];
79
+ return {
80
+ key: key,
81
+ name: name
82
+ };
83
+ });
84
+ };
85
+ var generateFilterOptions = function generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions) {
86
+ var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
87
+ var favorites = arguments.length > 5 ? arguments[5] : undefined;
88
+ if (allListings.length > 0) {
89
+ var dynamicFilters = siteConfig.fieldFiltersShown.map(function (fieldName) {
90
+ if (fieldName === parentField && filterOptions !== null && filterOptions !== void 0 && filterOptions.filters) {
91
+ return filterOptions.filters.find(function (filter) {
92
+ return filter.id === fieldName;
93
+ });
94
+ }
95
+ if (fieldName == "specialFeatures") {
96
+ return {
97
+ id: fieldName,
98
+ title: siteConfig.fieldNames[fieldName],
99
+ items: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()
100
+ };
101
+ }
102
+ return {
103
+ id: fieldName,
104
+ title: siteConfig.fieldNames[fieldName],
105
+ items: getFilterOptions(allListings, filteredListings, fieldName)
106
+ };
107
+ });
108
+ var locations = siteConfig.locationFiltersShown.map(function (fieldName, index) {
109
+ if (index === 0 && filterOptions !== null && filterOptions !== void 0 && filterOptions.locations) {
110
+ return filterOptions.locations.find(function (filter) {
111
+ return filter.id === fieldName;
112
+ });
113
+ }
114
+ return {
115
+ id: fieldName,
116
+ title: siteConfig.fieldNames[fieldName],
117
+ items: getFilterOptions(allListings, filteredListings, fieldName, true)
118
+ };
119
+ });
120
+ var pointsOfInterest = {
121
+ id: "pointsOfInterest",
122
+ title: siteConfig.pointsOfInterestConfig.title,
123
+ items: getPointsOfInterestOptions(siteConfig.pointsOfInterestConfig.pointsOfInterestNames)
124
+ };
125
+ return {
126
+ filters: dynamicFilters,
127
+ locations: locations,
128
+ pointsOfInterest: pointsOfInterest
129
+ };
130
+ }
131
+ return null;
132
+ };
133
+ var applyFilters = function applyFilters(allListings, selectedFilters, query, listingEntities, favorites, siteConfig) {
134
+ var results = allListings;
135
+ var invertedSpecialFeaturesMap;
136
+ if (siteConfig.specialFeatures) {
137
+ invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce(function (acc, _ref7) {
138
+ var _ref8 = _slicedToArray(_ref7, 2),
139
+ key = _ref8[0],
140
+ value = _ref8[1];
141
+ acc[value] = key;
142
+ return acc;
143
+ }, {});
144
+ }
145
+ var hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;
146
+ if (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {
147
+ results = results.filter(function (x) {
148
+ return favorites.includes(x.id);
149
+ });
150
+ }
151
+ var favorite;
152
+ if (hasFavorite) {
153
+ favorite = selectedFilters.specialFeatures.Favorite;
154
+ delete selectedFilters.specialFeatures.Favorite;
155
+ }
156
+ var _loop = function _loop() {
157
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
158
+ field = _Object$entries$_i[0],
159
+ filterItems = _Object$entries$_i[1];
160
+ var formattedField = field;
161
+ if (field === "pointsOfInterest") return 1; // continue
162
+ if (field === "specialFeatures" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {
163
+ results = results.filter(function (listing) {
164
+ return Object.entries(filterItems).some(function (_ref9) {
165
+ var _ref10 = _slicedToArray(_ref9, 2),
166
+ filterName = _ref10[0],
167
+ filterValue = _ref10[1];
168
+ var listingFieldName = invertedSpecialFeaturesMap[filterName];
169
+ return filterValue && listing.fields[listingFieldName] === 1;
170
+ });
171
+ });
172
+ } else if (Object.keys(filterItems).length > 0) {
173
+ results = results.filter(function (listing) {
174
+ return filterItems.hasOwnProperty(listing.fields[formattedField]);
175
+ });
176
+ }
177
+ };
178
+ for (var _i = 0, _Object$entries = Object.entries(selectedFilters); _i < _Object$entries.length; _i++) {
179
+ if (_loop()) continue;
180
+ }
181
+ if (query) {
182
+ results = results.filter(function (listing) {
183
+ var _Object$values;
184
+ return (_Object$values = Object.values(listing.fields)) === null || _Object$values === void 0 ? void 0 : _Object$values.some(function (value) {
185
+ return value === null || value === void 0 ? void 0 : value.toString().toLowerCase().includes(query.toLowerCase());
186
+ });
187
+ });
188
+ }
189
+ var distinctItems = getDistinctItemsByProximity(results, listingEntities);
190
+ if (hasFavorite) {
191
+ selectedFilters.specialFeatures.Favorite = favorite;
192
+ }
193
+ return {
194
+ filteredListings: results,
195
+ mapItems: distinctItems
196
+ };
197
+ };
198
+ var filterListingsByLocation = function filterListingsByLocation(allListings, selectedLocation, listingEntities) {
199
+ var results = allListings;
200
+ if (selectedLocation !== null) {
201
+ results = results.filter(function (item) {
202
+ return selectedLocation.items.hasOwnProperty(item.id);
203
+ });
204
+ }
205
+ var mapItems = getDistinctItemsByProximity(results, listingEntities);
206
+ return {
207
+ filteredListings: results,
208
+ mapItems: mapItems
209
+ };
210
+ };
211
+
212
+ export { applyFilters, filterListingsByLocation, generateFilterOptions, getFilterOptions, getSpecialFeatureOptions };
213
+ //# sourceMappingURL=filterUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["import { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] === 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField = null,\n\tfavorites\n) => {\n\tif (allListings.length > 0) {\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames,\n\t\t\t)\n\t\t};\n\n\t\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] === 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField]),\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = results.filter(listing =>\n\t\t\tObject.values(listing.fields)?.some(value =>\n\t\t\t\tvalue?.toString().toLowerCase().includes(query.toLowerCase()),\n\t\t\t),\n\t\t);\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities,\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tselectedLocation.items.hasOwnProperty(item.id),\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","pointsOfInterest","pointsOfInterestConfig","applyFilters","selectedFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","_Object$values","values","toString","toLowerCase","distinctItems","getDistinctItemsByProximity","mapItems","filterListingsByLocation","selectedLocation","item"],"mappings":";;;AAEO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,QAAQ,EAAEC,gBAAgB,EAAEC,KAAK,EAA8B;AAAA,EAAA,IAA5BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAC1F,EAAA,IAAMG,OAAO,GAAG,IAAIC,GAAG,EAAE,CAAA;AACzBR,EAAAA,QAAQ,CAACS,OAAO,CAAC,UAAAC,OAAO,EAAI;AAC3B,IAAA,IAAIA,OAAO,CAACC,MAAM,CAACT,KAAK,CAAC,EAAE;MAC1BK,OAAO,CAACK,GAAG,CAACF,OAAO,CAACC,MAAM,CAACT,KAAK,CAAC,CAAC,CAAA;AACnC,KAAA;AACD,GAAC,CAAC,CAAA;EAEF,IAAMW,YAAY,GAAG,EAAE,CAAA;AACvBN,EAAAA,OAAO,CAACE,OAAO,CAAC,UAAAK,MAAM,EAAI;AACzBD,IAAAA,YAAY,CAACC,MAAM,CAAC,GAAG,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEFb,EAAAA,gBAAgB,CAACQ,OAAO,CAAC,UAAAC,OAAO,EAAI;AACnC,IAAA,IAAMK,KAAK,GAAGL,OAAO,CAACC,MAAM,CAACT,KAAK,CAAC,CAAA;IACnC,IAAIa,KAAK,IAAIF,YAAY,CAACG,cAAc,CAACD,KAAK,CAAC,EAAE;AAChDF,MAAAA,YAAY,CAACE,KAAK,CAAC,IAAI,CAAC,CAAA;AACzB,KAAA;AACD,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOE,KAAK,CAACC,IAAI,CAACX,OAAO,CAAC,CACxBY,IAAI,EAAE,CACNC,GAAG,CAAC,UAAAN,MAAM,EAAA;IAAA,OAAK;AACfO,MAAAA,IAAI,EAAEP,MAAM;AACZQ,MAAAA,KAAK,EAAET,YAAY,CAACC,MAAM,CAAC,IAAI,CAAA;KAC/B,CAAA;AAAA,GAAC,CAAC,CACFS,MAAM,CAAC,UAAAT,MAAM,EAAA;IAAA,OAAI,EAAEX,gBAAgB,KAAK,IAAI,IAAIW,MAAM,CAACQ,KAAK,KAAK,CAAC,CAAC,CAAA;GAAC,CAAA,CAAA;AACvE,EAAC;AAEYE,IAAAA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIxB,QAAQ,EAAEC,gBAAgB,EAAEwB,UAAU,EAAEC,SAAS,EAAK;AAC9F,EAAA,IAAMC,eAAe,GAAGF,UAAU,CAACE,eAAe,CAAA;AAClD,EAAA,IAAMC,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACH,eAAe,CAAC,CAACR,IAAI,EAAE,CAACY,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;AAC9ED,IAAAA,GAAG,CAACL,eAAe,CAACM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC7B,IAAA,OAAOD,GAAG,CAAA;GACV,EAAE,EAAE,CAAC,CAAA;AAEN/B,EAAAA,gBAAgB,CAACQ,OAAO,CAAC,UAAAC,OAAO,EAAI;IACnCmB,MAAM,CAACK,OAAO,CAACP,eAAe,CAAC,CAAClB,OAAO,CAAC,UAAA0B,IAAA,EAA+B;AAAA,MAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAA7BG,QAAAA,UAAU,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,QAAAA,WAAW,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;MAChE,IAAI1B,OAAO,CAACC,MAAM,CAAC2B,UAAU,CAAC,KAAK,CAAC,EAAE;AACrCV,QAAAA,aAAa,CAACW,WAAW,CAAC,IAAI,CAAC,CAAA;AAChC,OAAA;AACD,KAAC,CAAC,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMC,qBAAqB,GAAGX,MAAM,CAACK,OAAO,CAACN,aAAa,CAAC,CAACR,GAAG,CAAC,UAAAqB,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAAL,cAAA,CAAAI,KAAA,EAAA,CAAA,CAAA;AAAEpB,MAAAA,IAAI,GAAAqB,KAAA,CAAA,CAAA,CAAA;AAAEpB,MAAAA,KAAK,GAAAoB,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAO;AACnFrB,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,KAAK,EAALA,KAAAA;KACA,CAAA;AAAA,GAAC,CAAC,CAAA;AAAC,EAAA,IAAAqB,SAAA,GAAAC,0BAAA,CAEeJ,qBAAqB,CAAA;IAAAK,KAAA,CAAA;AAAA,EAAA,IAAA;IAAxC,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAA0C;AAAA,MAAA,IAAjClC,MAAM,GAAA+B,KAAA,CAAA9B,KAAA,CAAA;AACd,MAAA,IAAID,MAAM,CAACO,IAAI,KAAK,UAAU,EAAE;QAC/BP,MAAM,CAACQ,KAAK,GAAGrB,gBAAgB,CAACsB,MAAM,CAAC,UAAA0B,CAAC,EAAA;AAAA,UAAA,OAAIvB,SAAS,CAACwB,QAAQ,CAACD,CAAC,CAACE,EAAE,CAAC,CAAA;AAAA,SAAA,CAAC,CAAC9C,MAAM,CAAA;AAC7E,OAAA;AACD,KAAA;AAAC,GAAA,CAAA,OAAA+C,GAAA,EAAA;IAAAT,SAAA,CAAAU,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAAT,IAAAA,SAAA,CAAAW,CAAA,EAAA,CAAA;AAAA,GAAA;AAED,EAAA,OAAOd,qBAAqB,CAAA;AAC7B,EAAC;AAED,IAAMe,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGC,qBAAqB,EAAI;AAC3D,EAAA,OAAO3B,MAAM,CAACK,OAAO,CAACsB,qBAAqB,CAAC,CAACrC,IAAI,EAAE,CAACC,GAAG,CAAC,UAAAqC,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAArB,cAAA,CAAAoB,KAAA,EAAA,CAAA,CAAA;AAAExB,MAAAA,GAAG,GAAAyB,KAAA,CAAA,CAAA,CAAA;AAAErC,MAAAA,IAAI,GAAAqC,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAO;AACzEzB,MAAAA,GAAG,EAAHA,GAAG;AACHZ,MAAAA,IAAI,EAAJA,IAAAA;KACA,CAAA;AAAA,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAEYsC,IAAAA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CACjC1D,gBAAgB,EAChB2D,WAAW,EACXnC,UAAU,EACVoC,aAAa,EAGT;AAAA,EAAA,IAFJC,WAAW,GAAA1D,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;EAAA,IAClBsB,SAAS,GAAAtB,SAAA,CAAAC,MAAA,GAAAD,CAAAA,GAAAA,SAAA,MAAAE,SAAA,CAAA;AAET,EAAA,IAAIsD,WAAW,CAACvD,MAAM,GAAG,CAAC,EAAE;IAC3B,IAAM0D,cAAc,GAAGtC,UAAU,CAACuC,iBAAiB,CAAC5C,GAAG,CAAC,UAAA6C,SAAS,EAAI;MACpE,IAAIA,SAAS,KAAKH,WAAW,IAAID,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,IAAAA,aAAa,CAAEK,OAAO,EAAE;AACxD,QAAA,OAAOL,aAAa,CAACK,OAAO,CAACC,IAAI,CAAC,UAAA5C,MAAM,EAAA;AAAA,UAAA,OAAIA,MAAM,CAAC4B,EAAE,KAAKc,SAAS,CAAA;SAAC,CAAA,CAAA;AACrE,OAAA;MACA,IAAIA,SAAS,IAAI,iBAAiB,EAAE;QACnC,OAAO;AACNd,UAAAA,EAAE,EAAEc,SAAS;AACbG,UAAAA,KAAK,EAAE3C,UAAU,CAAC4C,UAAU,CAACJ,SAAS,CAAC;AACvCK,UAAAA,KAAK,EAAE9C,wBAAwB,CAACoC,WAAW,EAAE3D,gBAAgB,EAAEwB,UAAU,EAAEC,SAAS,CAAC,CAACP,IAAI,EAAC;SAC3F,CAAA;AACF,OAAA;MACA,OAAO;AACNgC,QAAAA,EAAE,EAAEc,SAAS;AACbG,QAAAA,KAAK,EAAE3C,UAAU,CAAC4C,UAAU,CAACJ,SAAS,CAAC;AACvCK,QAAAA,KAAK,EAAEvE,gBAAgB,CAAC6D,WAAW,EAAE3D,gBAAgB,EAAEgE,SAAS,CAAA;OAChE,CAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,IAAMM,SAAS,GACd9C,UAAU,CAAC+C,oBAAoB,CAACpD,GAAG,CAAC,UAAC6C,SAAS,EAAEQ,KAAK,EAAK;MACzD,IAAIA,KAAK,KAAK,CAAC,IAAIZ,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,IAAAA,aAAa,CAAEU,SAAS,EAAE;AAC5C,QAAA,OAAOV,aAAa,CAACU,SAAS,CAACJ,IAAI,CAAC,UAAA5C,MAAM,EAAA;AAAA,UAAA,OAAIA,MAAM,CAAC4B,EAAE,KAAKc,SAAS,CAAA;SAAC,CAAA,CAAA;AACvE,OAAA;MACA,OAAO;AACNd,QAAAA,EAAE,EAAEc,SAAS;AACbG,QAAAA,KAAK,EAAE3C,UAAU,CAAC4C,UAAU,CAACJ,SAAS,CAAC;QACvCK,KAAK,EAAEvE,gBAAgB,CAAC6D,WAAW,EAAE3D,gBAAgB,EAAEgE,SAAS,EAAE,IAAI,CAAA;OACtE,CAAA;AACF,KAAC,CAAC,CAAA;AAEH,IAAA,IAAMS,gBAAgB,GAAG;AACxBvB,MAAAA,EAAE,EAAE,kBAAkB;AACtBiB,MAAAA,KAAK,EAAE3C,UAAU,CAACkD,sBAAsB,CAACP,KAAK;AAC9CE,MAAAA,KAAK,EAAEf,0BAA0B,CAChC9B,UAAU,CAACkD,sBAAsB,CAACnB,qBACnC,CAAA;KACA,CAAA;IAED,OAAO;AACNU,MAAAA,OAAO,EAAEH,cAAc;AACvBQ,MAAAA,SAAS,EAAEA,SAAS;AACpBG,MAAAA,gBAAgB,EAAEA,gBAAAA;KAClB,CAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACZ,EAAC;IAEYE,YAAY,GAAG,SAAfA,YAAYA,CACxBhB,WAAW,EACXiB,eAAe,EACfC,KAAK,EACLC,eAAe,EACfrD,SAAS,EACTD,UAAU,EACN;EACJ,IAAIuD,OAAO,GAAGpB,WAAW,CAAA;AACzB,EAAA,IAAIqB,0BAA0B,CAAA;EAC9B,IAAIxD,UAAU,CAACE,eAAe,EAAE;AAC/BsD,IAAAA,0BAA0B,GAAGpD,MAAM,CAACK,OAAO,CAACT,UAAU,CAACE,eAAe,CAAC,CAACI,MAAM,CAAC,UAACC,GAAG,EAAAkD,KAAA,EAAmB;AAAA,MAAA,IAAAC,KAAA,GAAA9C,cAAA,CAAA6C,KAAA,EAAA,CAAA,CAAA;AAAhBjD,QAAAA,GAAG,GAAAkD,KAAA,CAAA,CAAA,CAAA;AAAEpE,QAAAA,KAAK,GAAAoE,KAAA,CAAA,CAAA,CAAA,CAAA;AAC/FnD,MAAAA,GAAG,CAACjB,KAAK,CAAC,GAAGkB,GAAG,CAAA;AAChB,MAAA,OAAOD,GAAG,CAAA;KACV,EAAE,EAAE,CAAC,CAAA;AAEP,GAAA;AACA,EAAA,IAAMoD,WAAW,GAAG,CAAC,CAACP,eAAe,CAAClD,eAAe,IAAI,CAAC,CAACkD,eAAe,CAAClD,eAAe,CAAC0D,QAAQ,CAAA;EAEnG,IAAID,WAAW,IAAIP,eAAe,CAAClD,eAAe,CAAC0D,QAAQ,IAAI,IAAI,EAAE;AACpEL,IAAAA,OAAO,GAAGA,OAAO,CAACzD,MAAM,CAAC,UAAA0B,CAAC,EAAA;AAAA,MAAA,OAAIvB,SAAS,CAACwB,QAAQ,CAACD,CAAC,CAACE,EAAE,CAAC,CAAA;KAAC,CAAA,CAAA;AACxD,GAAA;AACA,EAAA,IAAImC,QAAQ,CAAA;AACZ,EAAA,IAAIF,WAAW,EAAE;AAChBE,IAAAA,QAAQ,GAAGT,eAAe,CAAClD,eAAe,CAAC0D,QAAQ,CAAA;AACnD,IAAA,OAAOR,eAAe,CAAClD,eAAe,CAAC0D,QAAQ,CAAA;AAChD,GAAA;EAAC,IAAAE,KAAA,GAAAA,SAAAA,KAAAA,GACmE;AAA/D,IAAA,IAAAC,kBAAA,GAAAnD,cAAA,CAAAoD,eAAA,CAAAC,EAAA,CAAA,EAAA,CAAA,CAAA;AAAOxF,MAAAA,KAAK,GAAAsF,kBAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,WAAW,GAAAH,kBAAA,CAAA,CAAA,CAAA,CAAA;IAC7B,IAAMI,cAAc,GAAG1F,KAAK,CAAA;IAC5B,IAAIA,KAAK,KAAK,kBAAkB,EAAA,OAAA,CAAA,CAAA;AAChC,IAAA,IAAIA,KAAK,KAAK,iBAAiB,IAAI+E,0BAA0B,IAAIpD,MAAM,CAACC,IAAI,CAAC6D,WAAW,CAAC,CAACtF,MAAM,GAAG,CAAC,EAAE;AACrG2E,MAAAA,OAAO,GAAGA,OAAO,CAACzD,MAAM,CAAC,UAAAb,OAAO,EAAI;QACnC,OAAOmB,MAAM,CAACK,OAAO,CAACyD,WAAW,CAAC,CAACE,IAAI,CAAC,UAAAC,KAAA,EAA+B;AAAA,UAAA,IAAAC,MAAA,GAAA1D,cAAA,CAAAyD,KAAA,EAAA,CAAA,CAAA;AAA7BE,YAAAA,UAAU,GAAAD,MAAA,CAAA,CAAA,CAAA;AAAEE,YAAAA,WAAW,GAAAF,MAAA,CAAA,CAAA,CAAA,CAAA;AAChE,UAAA,IAAMG,gBAAgB,GAAGjB,0BAA0B,CAACe,UAAU,CAAC,CAAA;UAC/D,OAAOC,WAAW,IAAIvF,OAAO,CAACC,MAAM,CAACuF,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAC7D,SAAC,CAAC,CAAA;AACH,OAAC,CAAC,CAAA;AACH,KAAC,MAAM,IAAIrE,MAAM,CAACC,IAAI,CAAC6D,WAAW,CAAC,CAACtF,MAAM,GAAG,CAAC,EAAE;AAC/C2E,MAAAA,OAAO,GAAGA,OAAO,CAACzD,MAAM,CAAC,UAAAb,OAAO,EAAA;QAAA,OAC/BiF,WAAW,CAAC3E,cAAc,CAACN,OAAO,CAACC,MAAM,CAACiF,cAAc,CAAC,CAAC,CAAA;AAAA,OAC3D,CAAC,CAAA;AACF,KAAA;GACA,CAAA;AAfD,EAAA,KAAA,IAAAF,EAAA,GAAAD,CAAAA,EAAAA,eAAA,GAAmC5D,MAAM,CAACK,OAAO,CAAC2C,eAAe,CAAC,EAAAa,EAAA,GAAAD,eAAA,CAAApF,MAAA,EAAAqF,EAAA,EAAA,EAAA;AAAA,IAAA,IAAAH,KAAA,EAE/B,EAAA,SAAA;AAAS,GAAA;AAc5C,EAAA,IAAIT,KAAK,EAAE;AACVE,IAAAA,OAAO,GAAGA,OAAO,CAACzD,MAAM,CAAC,UAAAb,OAAO,EAAA;AAAA,MAAA,IAAAyF,cAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,cAAA,GAC/BtE,MAAM,CAACuE,MAAM,CAAC1F,OAAO,CAACC,MAAM,CAAC,MAAA,IAAA,IAAAwF,cAAA,KAA7BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAA+BN,IAAI,CAAC,UAAA9E,KAAK,EAAA;QAAA,OACxCA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEsF,QAAQ,EAAE,CAACC,WAAW,EAAE,CAACpD,QAAQ,CAAC4B,KAAK,CAACwB,WAAW,EAAE,CAAC,CAAA;AAAA,OAC9D,CAAC,CAAA;AAAA,KACF,CAAC,CAAA;AACF,GAAA;AACA,EAAA,IAAMC,aAAa,GAAGC,2BAA2B,CAACxB,OAAO,EAAED,eAAe,CAAC,CAAA;AAC3E,EAAA,IAAIK,WAAW,EAAE;AAChBP,IAAAA,eAAe,CAAClD,eAAe,CAAC0D,QAAQ,GAAGC,QAAQ,CAAA;AACpD,GAAA;EACA,OAAO;AAAErF,IAAAA,gBAAgB,EAAE+E,OAAO;AAAEyB,IAAAA,QAAQ,EAAEF,aAAAA;GAAe,CAAA;AAC9D,EAAC;AAEM,IAAMG,wBAAwB,GAAG,SAA3BA,wBAAwBA,CACpC9C,WAAW,EACX+C,gBAAgB,EAChB5B,eAAe,EACX;EACJ,IAAIC,OAAO,GAAGpB,WAAW,CAAA;EACzB,IAAI+C,gBAAgB,KAAK,IAAI,EAAE;AAC9B3B,IAAAA,OAAO,GAAGA,OAAO,CAACzD,MAAM,CAAC,UAAAqF,IAAI,EAAA;MAAA,OAC5BD,gBAAgB,CAACrC,KAAK,CAACtD,cAAc,CAAC4F,IAAI,CAACzD,EAAE,CAAC,CAAA;AAAA,KAC/C,CAAC,CAAA;AACF,GAAA;AACA,EAAA,IAAMsD,QAAQ,GAAGD,2BAA2B,CAACxB,OAAO,EAAED,eAAe,CAAC,CAAA;EACtE,OAAO;AAAE9E,IAAAA,gBAAgB,EAAE+E,OAAO;AAAEyB,IAAAA,QAAQ,EAAEA,QAAAA;GAAU,CAAA;AACzD;;;;"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import IconContained from '../components/modules/icon.js';
3
+
4
+ var Loading = function Loading() {
5
+ return /*#__PURE__*/React.createElement("div", {
6
+ className: "hc-flex hc-items-center hc-justify-center hc-w-full hc-h-full"
7
+ }, /*#__PURE__*/React.createElement(IconContained, {
8
+ icon: "ph:spinner",
9
+ className: "hc-animate-spin hc-text-gray-300",
10
+ width: "40",
11
+ height: "40"
12
+ }));
13
+ };
14
+
15
+ export { Loading as default };
16
+ //# sourceMappingURL=loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.js","sources":["../../src/util/loading.js"],"sourcesContent":["import React from 'react';\nimport Icon from '~/components/modules/icon';\n\nconst Loading = () => {\n\treturn (\n\t\t<div className=\"hc-flex hc-items-center hc-justify-center hc-w-full hc-h-full\">\n\t\t\t<Icon\n\t\t\t\ticon=\"ph:spinner\"\n\t\t\t\tclassName=\"hc-animate-spin hc-text-gray-300\"\n\t\t\t\twidth=\"40\"\n\t\t\t\theight=\"40\"\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Loading;\n"],"names":["Loading","React","createElement","className","Icon","icon","width","height"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,GAAS;EACrB,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,+DAAA;AAA+D,GAAA,eAC7EF,KAAA,CAAAC,aAAA,CAACE,aAAI,EAAA;AACJC,IAAAA,IAAI,EAAC,YAAY;AACjBF,IAAAA,SAAS,EAAC,kCAAkC;AAC5CG,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAA;AAAI,GACX,CACG,CAAC,CAAA;AAER;;;;"}
@@ -0,0 +1,32 @@
1
+ var getStorageObject = function getStorageObject(item) {
2
+ var _JSON$parse;
3
+ var defaultItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4
+ if (typeof window == 'undefined') return defaultItem;
5
+ if (localStorage.getItem(item) == null) return defaultItem;
6
+ if (localStorage.getItem(item) == 'undefined') {
7
+ localStorage.removeItem(item);
8
+ }
9
+ return (_JSON$parse = JSON.parse(localStorage.getItem(item))) !== null && _JSON$parse !== void 0 ? _JSON$parse : defaultItem;
10
+ };
11
+ var getStorageItem = function getStorageItem(item) {
12
+ var _localStorage$getItem;
13
+ var defaultItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
14
+ if (typeof window == 'undefined') return defaultItem;
15
+ if (localStorage.getItem(item) == null) return defaultItem;
16
+ if (localStorage.getItem(item) == 'undefined') {
17
+ localStorage.removeItem(item);
18
+ }
19
+ return (_localStorage$getItem = localStorage.getItem(item)) !== null && _localStorage$getItem !== void 0 ? _localStorage$getItem : defaultItem;
20
+ };
21
+ var setStorageObject = function setStorageObject(key, item) {
22
+ if (typeof window == 'undefined') return;
23
+ if (item == undefined) return;
24
+ try {
25
+ localStorage.setItem(key, JSON.stringify(item));
26
+ } catch (err) {
27
+ console.log(err);
28
+ }
29
+ };
30
+
31
+ export { getStorageItem, getStorageObject, setStorageObject };
32
+ //# sourceMappingURL=localStorageUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localStorageUtil.js","sources":["../../src/util/localStorageUtil.js"],"sourcesContent":["export const getStorageObject = (item, defaultItem = null) =>{\n\tif(typeof window == 'undefined') return defaultItem;\n\tif(localStorage.getItem(item) == null) return defaultItem;\n\tif(localStorage.getItem(item) == 'undefined'){\n\t\tlocalStorage.removeItem(item);\n\t}\n\treturn JSON.parse(localStorage.getItem(item)) ?? defaultItem;\n};\n\nexport const getStorageItem = (item, defaultItem = null) =>{\n\tif(typeof window == 'undefined') return defaultItem;\n\tif(localStorage.getItem(item) == null) return defaultItem;\n\tif(localStorage.getItem(item) == 'undefined'){\n\t\tlocalStorage.removeItem(item);\n\t}\n\treturn localStorage.getItem(item) ?? defaultItem;\n};\n\nexport const setStorageObject = (key, item) =>{\n\tif(typeof window == 'undefined') return;\n\tif(item == undefined)return;\n\ttry{\n\t\tlocalStorage.setItem(key, JSON.stringify(item));\n\t}catch(err){\n\t\tconsole.log(err);\n\t}\n};"],"names":["getStorageObject","item","_JSON$parse","defaultItem","arguments","length","undefined","window","localStorage","getItem","removeItem","JSON","parse","getStorageItem","_localStorage$getItem","setStorageObject","key","setItem","stringify","err","console","log"],"mappings":"IAAaA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,IAAI,EAAwB;AAAA,EAAA,IAAAC,WAAA,CAAA;AAAA,EAAA,IAAtBC,WAAW,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACxD,EAAA,IAAG,OAAOG,MAAM,IAAI,WAAW,EAAE,OAAOJ,WAAW,CAAA;EACnD,IAAGK,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,IAAI,IAAI,EAAE,OAAOE,WAAW,CAAA;EACzD,IAAGK,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,IAAI,WAAW,EAAC;AAC5CO,IAAAA,YAAY,CAACE,UAAU,CAACT,IAAI,CAAC,CAAA;AAC9B,GAAA;AACA,EAAA,OAAA,CAAAC,WAAA,GAAOS,IAAI,CAACC,KAAK,CAACJ,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,CAAC,MAAA,IAAA,IAAAC,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,WAAA,GAAIC,WAAW,CAAA;AAC7D,EAAC;IAEYU,cAAc,GAAG,SAAjBA,cAAcA,CAAIZ,IAAI,EAAwB;AAAA,EAAA,IAAAa,qBAAA,CAAA;AAAA,EAAA,IAAtBX,WAAW,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACtD,EAAA,IAAG,OAAOG,MAAM,IAAI,WAAW,EAAE,OAAOJ,WAAW,CAAA;EACnD,IAAGK,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,IAAI,IAAI,EAAE,OAAOE,WAAW,CAAA;EACzD,IAAGK,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,IAAI,WAAW,EAAC;AAC5CO,IAAAA,YAAY,CAACE,UAAU,CAACT,IAAI,CAAC,CAAA;AAC9B,GAAA;AACA,EAAA,OAAA,CAAAa,qBAAA,GAAON,YAAY,CAACC,OAAO,CAACR,IAAI,CAAC,MAAAa,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAIX,WAAW,CAAA;AACjD,EAAC;AAEM,IAAMY,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,GAAG,EAAEf,IAAI,EAAI;AAC7C,EAAA,IAAG,OAAOM,MAAM,IAAI,WAAW,EAAE,OAAA;EACjC,IAAGN,IAAI,IAAIK,SAAS,EAAC,OAAA;EACrB,IAAG;IACFE,YAAY,CAACS,OAAO,CAACD,GAAG,EAAEL,IAAI,CAACO,SAAS,CAACjB,IAAI,CAAC,CAAC,CAAA;GAC/C,CAAA,OAAMkB,GAAG,EAAC;AACVC,IAAAA,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC,CAAA;AACjB,GAAA;AACD;;;;"}
@@ -0,0 +1,73 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { placeTypes } from '../constants/placeTypes.js';
3
+
4
+ var customSVGIcon = function customSVGIcon(type) {
5
+ var fillColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "#FFFFFF";
6
+ var strokeColor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "#000000";
7
+ var backgroundFill = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "#000000";
8
+ var backgroundStroke = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "#000000";
9
+ var svg = "";
10
+ switch (type) {
11
+ case placeTypes.FOOD:
12
+ svg = "\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M25.7,36.6l0.6,15.8c0.1,2.4-2.3,2.4-2.3,2.4s-2.4,0-2.3-2.4l0.6-15.8c0.1-2-4.3-2.9-4-4.9l2.3-13.3h1.1\n\t\t\t\t\t\tl-0.6,9.7l1.7,1.2l0.6-10.9h1.1l0.6,10.9l1.7-1.2l-0.6-9.7h1.1l2.3,13.3C29.7,33.7,25.6,34.6,25.7,36.6z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M40,52.4c0,2.4-2.3,2.4-2.3,2.4s-2.5,0-2.3-2.4L36.6,39c-0.9,0-3.4-0.4-3.4-2.4v-6.1c0-2.4,0.3-6.4,1.2-8.2\n\t\t\t\t\t\tc1.1-2.4,3.9-4,5.6-4C40,18.3,40,52.4,40,52.4z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
13
+ break;
14
+ case placeTypes.TOURIST_ATTRACTION:
15
+ svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M27,18.5c-1.2,0-1.7,1.1-2.2,2.2L23.7,23h-4.5c-1.9,0-3.4,1.5-3.4,3.4v11.2c0,1.9,1.5,3.4,3.4,3.4h22.5\n\t\t\t\t\t\tc1.9,0,3.4-1.5,3.4-3.4V26.4c0-1.9-1.5-3.4-3.4-3.4h-4.5L36,20.8c-0.6-1.1-1-2.2-2.2-2.2H27z M19.2,25.3c0.6,0,1.1,0.5,1.1,1.1\n\t\t\t\t\t\tc0,0.6-0.5,1.1-1.1,1.1c-0.6,0-1.1-0.5-1.1-1.1C18,25.8,18.5,25.3,19.2,25.3z M30.4,25.3c3.7,0,6.7,3,6.7,6.7s-3,6.7-6.7,6.7\n\t\t\t\t\t\ts-6.7-3-6.7-6.7S26.7,25.3,30.4,25.3z M30.4,28.7c-1.9,0-3.4,1.5-3.4,3.4s1.5,3.4,3.4,3.4c1.9,0,3.4-1.5,3.4-3.4\n\t\t\t\t\t\tS32.3,28.7,30.4,28.7z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
16
+ break;
17
+ case placeTypes.SCHOOL:
18
+ svg = "\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M39.2,40.6c0,0-4.1,4.6-9.1,4.6S21,40.6,21,40.6v-5.2l9.1,5l9.1-5V40.6z\"/>\n\t\t\t\t\t<polygon class=\"st0\" points=\"44.4,40.4 41.8,40.4 41.8,31.4 30.1,37.8 15.8,30 30.1,22.2 44.4,30 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
19
+ break;
20
+ case placeTypes.STORE:
21
+ svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.4,27.7L42,41.1c-0.1,0.6-0.7,1-1.3,1c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3s-3.3-1.5-3.3-3.3\n\t\t\t\t\t\ts1.5-3.3,3.3-3.3H23.3c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3S20,47.2,20,45.4s1.5-3.3,3.3-3.3c-0.6,0-1.2-0.4-1.3-1l-4.1-16.4\n\t\t\t\t\t\th-1.3c-0.7,0-1.3-0.6-1.3-1.3s0.6-1.3,1.3-1.3h2.3c0.6,0,1.2,0.4,1.3,1l0.8,3h23.1c0.4,0,0.8,0.2,1.1,0.5\n\t\t\t\t\t\tC45.4,26.9,45.5,27.3,45.4,27.7z\"/>\n\t\t\t\t\t<path d=\"M41.4,45.5c0-0.4-0.3-0.7-0.7-0.7S40,45.1,40,45.5C40.1,46.2,41.4,46.2,41.4,45.5z\"/>\n\t\t\t\t\t<path d=\"M24,45.5c0-0.4-0.3-0.7-0.7-0.7s-0.7,0.3-0.7,0.7C22.6,46.2,24,46.2,24,45.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
22
+ break;
23
+ case placeTypes.TRANSIT_STATION:
24
+ svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M26.3,41.3h-2.8L20.7,44h-1.4v-1.4l1.4-1.4c-2.3,0-4.2-1.9-4.2-4.2V26c0-2.3,1.9-4.2,4.2-4.2h9.7\n\t\t\t\t\t\tc2.3,0,4.2,1.9,4.2,4.2v1.4h-2.8v-2.8H19.3v9.7h6.9v7H26.3z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M44.3,43c0,0.5-0.4,1-1,1h-0.8c-0.5,0-1-0.5-1-1.1v-1.7H30.4V43c0,0.5-0.4,1.1-0.9,1.1h-0.9c-0.5,0-1-0.5-1-1\n\t\t\t\t\t\tv-7.6l2-5.7c0.2-0.6,0.7-0.9,1.4-0.9h10c0.6,0,1.1,0.4,1.3,0.9l2,5.7V43z\"/>\n\t\t\t\t\t<circle cx=\"20.7\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"41.5\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"30.4\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<polygon points=\"31,30.2 29.6,34.4 42.4,34.4 40.9,30.2 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
25
+ break;
26
+ case placeTypes.PLACE_OF_WORSHIP:
27
+ svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M21.3,40.8h-3.8c-1.3,0-2.3-1-2.3-2.3v-4.3c0-0.8,0.5-1.6,1.2-2l4.9-2.7V40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M38,40.8h-4.6v-4.6c0-1.7-1.4-3-3-3c-1.7,0-3,1.4-3,3v4.6h-4.6V30c0-0.8,0.4-1.5,1.1-2l1.9-1.2v-5.1l0,0\n\t\t\t\t\t\tc0-0.4,0.2-0.8,0.4-1.1l3.6-3.6c0.3-0.3,0.8-0.3,1.1,0l3.6,3.6c0.3,0.3,0.4,0.7,0.4,1.1v5.1l1.9,1.2c0.7,0.4,1.1,1.2,1.1,2L38,40.8\n\t\t\t\t\t\tL38,40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.6,38.5c0,1.3-1,2.3-2.3,2.3h-3.8V29.5l4.9,2.7c0.7,0.4,1.2,1.2,1.2,2C45.6,34.2,45.6,38.5,45.6,38.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
28
+ break;
29
+ }
30
+ var iconUrl = "data:image/svg+xml;utf8,".concat(encodeURIComponent(svg));
31
+ return iconUrl;
32
+ };
33
+ var iconPath = "M5.5 0A5.27 5.27 0 0 0 0 5.01v.49c0 1.73 1.38 3.43 2.07 4.12s3.43 4.12 3.43 4.12 2.75-3.43 3.43-4.12 2.06-2.39 2.06-4.12c.14-2.9-2.1-5.36-5-5.5H5.5Zm-.04 5.71c-.32 0-.57-.27-.56-.58 0-.32.27-.57.58-.56.32 0 .57.27.56.58 0 .31-.25.55-.56.56h-.02Z";
34
+ var markerIconProps = function markerIconProps(placeMarkerConfigs, type) {
35
+ var scaledWidth = placeMarkerConfigs.size;
36
+ var scaledHeight = scaledWidth * 3 / 2;
37
+ var iconUrl = customSVGIcon(type, placeMarkerConfigs.colors.innerFillColor, placeMarkerConfigs.colors.innerStrokeColor, placeMarkerConfigs.colors.outerFillColor, placeMarkerConfigs.colors.outerStrokeColor);
38
+ return {
39
+ url: iconUrl,
40
+ scaledSize: new google.maps.Size(scaledWidth, scaledHeight),
41
+ anchor: new google.maps.Point(scaledWidth / 2, scaledHeight)
42
+ };
43
+ };
44
+ var iconProps = function iconProps() {
45
+ return {
46
+ path: iconPath,
47
+ fillOpacity: 1,
48
+ strokeWeight: 1.75,
49
+ scale: 1.6,
50
+ anchor: new google.maps.Point(12, 17)
51
+ };
52
+ };
53
+ var markerIcon = function markerIcon(markerConfigs) {
54
+ return _objectSpread2(_objectSpread2({}, iconProps()), {}, {
55
+ fillColor: markerConfigs.fillColor,
56
+ strokeColor: markerConfigs.strokeColor
57
+ });
58
+ };
59
+ var markerIconSelected = function markerIconSelected(markerConfigs) {
60
+ return _objectSpread2(_objectSpread2({}, iconProps()), {}, {
61
+ fillColor: markerConfigs.selectedFillColor,
62
+ strokeColor: markerConfigs.selectedStrokeColor
63
+ });
64
+ };
65
+ var pinIcon = function pinIcon(markerConfigs) {
66
+ var fillColor = markerConfigs.fillColor,
67
+ strokeColor = markerConfigs.strokeColor;
68
+ var svg = "\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"30\" viewBox=\"-6 -4 24 24\">\n\t\t<path d=\"".concat(iconPath, "\" fill=\"").concat(fillColor, "\" stroke=\"").concat(strokeColor, "\" stroke-width=\"2\"/>\n\t </svg>\n\t");
69
+ return "data:image/svg+xml;utf8,".concat(encodeURIComponent(svg));
70
+ };
71
+
72
+ export { iconPath, iconProps, markerIcon, markerIconProps, markerIconSelected, pinIcon };
73
+ //# sourceMappingURL=mapIconUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapIconUtil.js","sources":["../../src/util/mapIconUtil.js"],"sourcesContent":["import { placeTypes } from '~/constants/placeTypes';\n\nconst customSVGIcon = (\n\ttype,\n\tfillColor = \"#FFFFFF\",\n\tstrokeColor = \"#000000\",\n\tbackgroundFill = \"#000000\",\n\tbackgroundStroke = \"#000000\",\n) => {\n\tlet svg = \"\";\n\tswitch (type) {\n\t\tcase placeTypes.FOOD:\n\t\t\tsvg = `\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M25.7,36.6l0.6,15.8c0.1,2.4-2.3,2.4-2.3,2.4s-2.4,0-2.3-2.4l0.6-15.8c0.1-2-4.3-2.9-4-4.9l2.3-13.3h1.1\n\t\t\t\t\t\tl-0.6,9.7l1.7,1.2l0.6-10.9h1.1l0.6,10.9l1.7-1.2l-0.6-9.7h1.1l2.3,13.3C29.7,33.7,25.6,34.6,25.7,36.6z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M40,52.4c0,2.4-2.3,2.4-2.3,2.4s-2.5,0-2.3-2.4L36.6,39c-0.9,0-3.4-0.4-3.4-2.4v-6.1c0-2.4,0.3-6.4,1.2-8.2\n\t\t\t\t\t\tc1.1-2.4,3.9-4,5.6-4C40,18.3,40,52.4,40,52.4z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t\tcase placeTypes.TOURIST_ATTRACTION:\n\t\t\tsvg = `<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M27,18.5c-1.2,0-1.7,1.1-2.2,2.2L23.7,23h-4.5c-1.9,0-3.4,1.5-3.4,3.4v11.2c0,1.9,1.5,3.4,3.4,3.4h22.5\n\t\t\t\t\t\tc1.9,0,3.4-1.5,3.4-3.4V26.4c0-1.9-1.5-3.4-3.4-3.4h-4.5L36,20.8c-0.6-1.1-1-2.2-2.2-2.2H27z M19.2,25.3c0.6,0,1.1,0.5,1.1,1.1\n\t\t\t\t\t\tc0,0.6-0.5,1.1-1.1,1.1c-0.6,0-1.1-0.5-1.1-1.1C18,25.8,18.5,25.3,19.2,25.3z M30.4,25.3c3.7,0,6.7,3,6.7,6.7s-3,6.7-6.7,6.7\n\t\t\t\t\t\ts-6.7-3-6.7-6.7S26.7,25.3,30.4,25.3z M30.4,28.7c-1.9,0-3.4,1.5-3.4,3.4s1.5,3.4,3.4,3.4c1.9,0,3.4-1.5,3.4-3.4\n\t\t\t\t\t\tS32.3,28.7,30.4,28.7z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t\tcase placeTypes.SCHOOL:\n\t\t\tsvg = `\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M39.2,40.6c0,0-4.1,4.6-9.1,4.6S21,40.6,21,40.6v-5.2l9.1,5l9.1-5V40.6z\"/>\n\t\t\t\t\t<polygon class=\"st0\" points=\"44.4,40.4 41.8,40.4 41.8,31.4 30.1,37.8 15.8,30 30.1,22.2 44.4,30 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t\tcase placeTypes.STORE:\n\t\t\tsvg = `<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.4,27.7L42,41.1c-0.1,0.6-0.7,1-1.3,1c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3s-3.3-1.5-3.3-3.3\n\t\t\t\t\t\ts1.5-3.3,3.3-3.3H23.3c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3S20,47.2,20,45.4s1.5-3.3,3.3-3.3c-0.6,0-1.2-0.4-1.3-1l-4.1-16.4\n\t\t\t\t\t\th-1.3c-0.7,0-1.3-0.6-1.3-1.3s0.6-1.3,1.3-1.3h2.3c0.6,0,1.2,0.4,1.3,1l0.8,3h23.1c0.4,0,0.8,0.2,1.1,0.5\n\t\t\t\t\t\tC45.4,26.9,45.5,27.3,45.4,27.7z\"/>\n\t\t\t\t\t<path d=\"M41.4,45.5c0-0.4-0.3-0.7-0.7-0.7S40,45.1,40,45.5C40.1,46.2,41.4,46.2,41.4,45.5z\"/>\n\t\t\t\t\t<path d=\"M24,45.5c0-0.4-0.3-0.7-0.7-0.7s-0.7,0.3-0.7,0.7C22.6,46.2,24,46.2,24,45.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t\tcase placeTypes.TRANSIT_STATION:\n\t\t\tsvg = `<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M26.3,41.3h-2.8L20.7,44h-1.4v-1.4l1.4-1.4c-2.3,0-4.2-1.9-4.2-4.2V26c0-2.3,1.9-4.2,4.2-4.2h9.7\n\t\t\t\t\t\tc2.3,0,4.2,1.9,4.2,4.2v1.4h-2.8v-2.8H19.3v9.7h6.9v7H26.3z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M44.3,43c0,0.5-0.4,1-1,1h-0.8c-0.5,0-1-0.5-1-1.1v-1.7H30.4V43c0,0.5-0.4,1.1-0.9,1.1h-0.9c-0.5,0-1-0.5-1-1\n\t\t\t\t\t\tv-7.6l2-5.7c0.2-0.6,0.7-0.9,1.4-0.9h10c0.6,0,1.1,0.4,1.3,0.9l2,5.7V43z\"/>\n\t\t\t\t\t<circle cx=\"20.7\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"41.5\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"30.4\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<polygon points=\"31,30.2 29.6,34.4 42.4,34.4 40.9,30.2 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t\tcase placeTypes.PLACE_OF_WORSHIP:\n\t\t\tsvg = `<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:${fillColor}; stroke:${strokeColor};}\n\t\t\t\t\t.svg-background{fill:${backgroundFill}; stroke:${backgroundStroke};}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M21.3,40.8h-3.8c-1.3,0-2.3-1-2.3-2.3v-4.3c0-0.8,0.5-1.6,1.2-2l4.9-2.7V40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M38,40.8h-4.6v-4.6c0-1.7-1.4-3-3-3c-1.7,0-3,1.4-3,3v4.6h-4.6V30c0-0.8,0.4-1.5,1.1-2l1.9-1.2v-5.1l0,0\n\t\t\t\t\t\tc0-0.4,0.2-0.8,0.4-1.1l3.6-3.6c0.3-0.3,0.8-0.3,1.1,0l3.6,3.6c0.3,0.3,0.4,0.7,0.4,1.1v5.1l1.9,1.2c0.7,0.4,1.1,1.2,1.1,2L38,40.8\n\t\t\t\t\t\tL38,40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.6,38.5c0,1.3-1,2.3-2.3,2.3h-3.8V29.5l4.9,2.7c0.7,0.4,1.2,1.2,1.2,2C45.6,34.2,45.6,38.5,45.6,38.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t`;\n\t\t\tbreak;\n\t}\n\n\tconst iconUrl = `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;\n\treturn iconUrl;\n};\n\nexport const iconPath = \"M5.5 0A5.27 5.27 0 0 0 0 5.01v.49c0 1.73 1.38 3.43 2.07 4.12s3.43 4.12 3.43 4.12 2.75-3.43 3.43-4.12 2.06-2.39 2.06-4.12c.14-2.9-2.1-5.36-5-5.5H5.5Zm-.04 5.71c-.32 0-.57-.27-.56-.58 0-.32.27-.57.58-.56.32 0 .57.27.56.58 0 .31-.25.55-.56.56h-.02Z\";\n\nexport const markerIconProps = (placeMarkerConfigs, type) => {\n\n\tconst scaledWidth = placeMarkerConfigs.size;\n\tconst scaledHeight = (scaledWidth * 3) / 2;\n\tconst iconUrl = customSVGIcon(\n\t\ttype,\n\t\tplaceMarkerConfigs.colors.innerFillColor,\n\t\tplaceMarkerConfigs.colors.innerStrokeColor,\n\t\tplaceMarkerConfigs.colors.outerFillColor,\n\t\tplaceMarkerConfigs.colors.outerStrokeColor,\n\t);\n\treturn {\n\t\turl: iconUrl,\n\t\tscaledSize: new google.maps.Size(scaledWidth, scaledHeight),\n\t\tanchor: new google.maps.Point(scaledWidth / 2, scaledHeight)\n\t};\n};\n\nexport const iconProps = () => {\n\treturn {\n\t\tpath: iconPath,\n\t\tfillOpacity: 1,\n\t\tstrokeWeight: 1.75,\n\t\tscale: 1.6,\n\t\tanchor: new google.maps.Point(12, 17)\n\t};\n};\n\nexport const markerIcon = markerConfigs => {\n\treturn {\n\t\t...iconProps(),\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t};\n};\n\nexport const markerIconSelected = markerConfigs => {\n\treturn {\n\t\t...iconProps(),\n\t\tfillColor: markerConfigs.selectedFillColor,\n\t\tstrokeColor: markerConfigs.selectedStrokeColor\n\t};\n};\n\nexport const pinIcon = markerConfigs => {\n\tconst { fillColor, strokeColor } = markerConfigs;\n\n\tconst svg = `\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"30\" viewBox=\"-6 -4 24 24\">\n\t\t<path d=\"${iconPath}\" fill=\"${fillColor}\" stroke=\"${strokeColor}\" stroke-width=\"2\"/>\n\t </svg>\n\t`;\n\n\treturn `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;\n};\n\n"],"names":["customSVGIcon","type","fillColor","arguments","length","undefined","strokeColor","backgroundFill","backgroundStroke","svg","placeTypes","FOOD","concat","TOURIST_ATTRACTION","SCHOOL","STORE","TRANSIT_STATION","PLACE_OF_WORSHIP","iconUrl","encodeURIComponent","iconPath","markerIconProps","placeMarkerConfigs","scaledWidth","size","scaledHeight","colors","innerFillColor","innerStrokeColor","outerFillColor","outerStrokeColor","url","scaledSize","google","maps","Size","anchor","Point","iconProps","path","fillOpacity","strokeWeight","scale","markerIcon","markerConfigs","_objectSpread","markerIconSelected","selectedFillColor","selectedStrokeColor","pinIcon"],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { objectSpread2 as _objectSpread2, defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+
3
+ var getDistinctItemsByProximity = function getDistinctItemsByProximity(items, listingEntitiesDetails) {
4
+ var clusters = {};
5
+ if (!listingEntitiesDetails) return [];
6
+ var closeItemPairs = findCloseItems(listingEntitiesDetails);
7
+ if (closeItemPairs.length > 0) {
8
+ listingEntitiesDetails = adjustItemPositions(listingEntitiesDetails, closeItemPairs);
9
+ }
10
+ items === null || items === void 0 || items.forEach(function (item) {
11
+ if (item.entityId !== -1) {
12
+ var entityDetails = listingEntitiesDetails[item.entityId];
13
+ if (!entityDetails) {
14
+ console.error("Details not found for entityId: ".concat(item.entityId));
15
+ return;
16
+ }
17
+ item.mapDetails = entityDetails;
18
+ if (!clusters[item.entityId]) {
19
+ clusters[item.entityId] = _objectSpread2(_objectSpread2({}, item.mapDetails), {}, {
20
+ items: _defineProperty({}, item.id, item)
21
+ });
22
+ } else {
23
+ clusters[item.entityId].items[item.id] = item;
24
+ }
25
+ }
26
+ });
27
+ return Object.values(clusters);
28
+ };
29
+ var findCloseItems = function findCloseItems(itemsObj) {
30
+ var closeItems = [];
31
+ var items = Object.values(itemsObj); // Convert object to array for iteration
32
+ var proximityThreshold = 0.0001;
33
+ for (var i = 0; i < items.length; i++) {
34
+ for (var j = i + 1; j < items.length; j++) {
35
+ var distanceLat = Math.abs(items[i].latitude - items[j].latitude);
36
+ var distanceLng = Math.abs(items[i].longitude - items[j].longitude);
37
+ if (distanceLat < proximityThreshold && distanceLng < proximityThreshold) {
38
+ closeItems.push({
39
+ item1: items[i],
40
+ item2: items[j]
41
+ });
42
+ }
43
+ }
44
+ }
45
+ return closeItems;
46
+ };
47
+ var adjustItemPositions = function adjustItemPositions(itemsObj, closeItemPairs) {
48
+ var adjustmentValue = 0.0001;
49
+ var adjustedItems = _objectSpread2({}, itemsObj); // Create a shallow copy of the object
50
+
51
+ closeItemPairs.forEach(function (pair) {
52
+ if (adjustedItems[pair.item1.id] && adjustedItems[pair.item2.id]) {
53
+ adjustedItems[pair.item2.id].latitude += adjustmentValue;
54
+ adjustedItems[pair.item2.id].longitude += adjustmentValue;
55
+ }
56
+ });
57
+ return adjustedItems;
58
+ };
59
+ var clusterOptions = function clusterOptions(clusterGridSize, fillColor) {
60
+ return {
61
+ gridSize: clusterGridSize,
62
+ styles: [{
63
+ url: createSvgDataUri(fillColor),
64
+ textColor: 'white',
65
+ height: 40,
66
+ width: 40
67
+ }]
68
+ };
69
+ };
70
+ function createSvgDataUri(fillColor) {
71
+ var svg = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n\t <circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"".concat(fillColor, "\" />\n\t</svg>");
72
+ return "data:image/svg+xml;base64,".concat(btoa(svg));
73
+ }
74
+
75
+ export { adjustItemPositions, clusterOptions, findCloseItems, getDistinctItemsByProximity };
76
+ //# sourceMappingURL=mapUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapUtil.js","sources":["../../src/util/mapUtil.js"],"sourcesContent":["export const getDistinctItemsByProximity = (items, listingEntitiesDetails) => {\n\tconst clusters = {};\n\n\tif (!listingEntitiesDetails) return [];\n\n\tconst closeItemPairs = findCloseItems(listingEntitiesDetails);\n\tif (closeItemPairs.length > 0) {\n\t\tlistingEntitiesDetails = adjustItemPositions(\n\t\t\tlistingEntitiesDetails,\n\t\t\tcloseItemPairs,\n\t\t);\n\t}\n\n\titems?.forEach(item => {\n\t\tif(item.entityId !== -1){\n\n\t\t\tconst entityDetails = listingEntitiesDetails[item.entityId];\n\n\t\t\tif (!entityDetails) {\n\t\t\t\tconsole.error(`Details not found for entityId: ${item.entityId}`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem.mapDetails = entityDetails;\n\n\t\t\tif (!clusters[item.entityId]) {\n\t\t\t\tclusters[item.entityId] = {\n\t\t\t\t\t...item.mapDetails,\n\t\t\t\t\titems: { [item.id]: item }\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tclusters[item.entityId].items[item.id] = item;\n\t\t\t}}\n\t});\n\n\treturn Object.values(clusters);\n};\n\nexport const findCloseItems = itemsObj => {\n\tconst closeItems = [];\n\tconst items = Object.values(itemsObj); // Convert object to array for iteration\n\tconst proximityThreshold = 0.0001;\n\n\tfor (let i = 0; i < items.length; i++) {\n\t\tfor (let j = i + 1; j < items.length; j++) {\n\t\t\tconst distanceLat = Math.abs(items[i].latitude - items[j].latitude);\n\t\t\tconst distanceLng = Math.abs(items[i].longitude - items[j].longitude);\n\t\t\tif (\n\t\t\t\tdistanceLat < proximityThreshold &&\n\t\t\t\tdistanceLng < proximityThreshold\n\t\t\t) {\n\t\t\t\tcloseItems.push({ item1: items[i], item2: items[j] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn closeItems;\n};\n\nexport const adjustItemPositions = (itemsObj, closeItemPairs) => {\n\tconst adjustmentValue = 0.0001;\n\tconst adjustedItems = { ...itemsObj }; // Create a shallow copy of the object\n\n\tcloseItemPairs.forEach(pair => {\n\t\tif (adjustedItems[pair.item1.id] && adjustedItems[pair.item2.id]) {\n\t\t\tadjustedItems[pair.item2.id].latitude += adjustmentValue;\n\t\t\tadjustedItems[pair.item2.id].longitude += adjustmentValue;\n\t\t}\n\t});\n\n\treturn adjustedItems;\n};\n\nexport const clusterOptions = (clusterGridSize, fillColor) => {\n\treturn {\n\t\tgridSize: clusterGridSize,\n\t\tstyles:[{\n\t\t\turl: createSvgDataUri(fillColor),\n\t\t\ttextColor:'white',\n\t\t\theight: 40,\n\t\t\twidth: 40\n\t\t}]\n\t};\n};\n\nfunction createSvgDataUri(fillColor) {\n\tconst svg = `<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n\t <circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"${fillColor}\" />\n\t</svg>`;\n\treturn `data:image/svg+xml;base64,${btoa(svg)}`;\n}\n"],"names":["getDistinctItemsByProximity","items","listingEntitiesDetails","clusters","closeItemPairs","findCloseItems","length","adjustItemPositions","forEach","item","entityId","entityDetails","console","error","concat","mapDetails","_objectSpread","_defineProperty","id","Object","values","itemsObj","closeItems","proximityThreshold","i","j","distanceLat","Math","abs","latitude","distanceLng","longitude","push","item1","item2","adjustmentValue","adjustedItems","pair","clusterOptions","clusterGridSize","fillColor","gridSize","styles","url","createSvgDataUri","textColor","height","width","svg","btoa"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ var dynamicSort = function dynamicSort(items, fieldName) {
2
+ var order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "asc";
3
+ if (!items || !items.length) {
4
+ return [];
5
+ }
6
+ var inferType = function inferType(value) {
7
+ if (!isNaN(Date.parse(value)) && isNaN(value)) {
8
+ return "date";
9
+ } else if (!isNaN(parseFloat(value)) && isFinite(value)) {
10
+ return "number";
11
+ } else {
12
+ return "string";
13
+ }
14
+ };
15
+ var dataType = inferType(items[0].fields[fieldName]);
16
+ return items.sort(function (a, b) {
17
+ var valA = a.fields[fieldName];
18
+ var valB = b.fields[fieldName];
19
+ if (!valA || !valB) return;
20
+ var comparison = 0;
21
+ if (dataType === "string") {
22
+ comparison = valA.localeCompare(valB);
23
+ } else if (dataType === "number") {
24
+ comparison = valA - valB;
25
+ } else if (dataType === "date") {
26
+ comparison = new Date(valA) - new Date(valB);
27
+ }
28
+ return order === "desc" ? comparison * -1 : comparison;
29
+ });
30
+ };
31
+
32
+ export { dynamicSort };
33
+ //# sourceMappingURL=sortUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortUtil.js","sources":["../../src/util/sortUtil.js"],"sourcesContent":["export const dynamicSort = (items, fieldName, order = \"asc\") => {\n\tif (!items || !items.length) {\n\t\treturn [];\n\t}\n\n\tconst inferType = value => {\n\t\tif (!isNaN(Date.parse(value)) && isNaN(value)) {\n\t\t\treturn \"date\";\n\t\t} else if (!isNaN(parseFloat(value)) && isFinite(value)) {\n\t\t\treturn \"number\";\n\t\t} else {\n\t\t\treturn \"string\";\n\t\t}\n\t};\n\n\tconst dataType = inferType(items[0].fields[fieldName]);\n\n\treturn items.sort((a, b) => {\n\t\tlet valA = a.fields[fieldName];\n\t\tlet valB = b.fields[fieldName];\n\t\tif (!valA || !valB) return;\n\t\tlet comparison = 0;\n\n\t\tif (dataType === \"string\") {\n\t\t\tcomparison = valA.localeCompare(valB);\n\t\t} else if (dataType === \"number\") {\n\t\t\tcomparison = valA - valB;\n\t\t} else if (dataType === \"date\") {\n\t\t\tcomparison = new Date(valA) - new Date(valB);\n\t\t}\n\t\treturn order === \"desc\" ? comparison * -1 : comparison;\n\t});\n};"],"names":["dynamicSort","items","fieldName","order","arguments","length","undefined","inferType","value","isNaN","Date","parse","parseFloat","isFinite","dataType","fields","sort","a","b","valA","valB","comparison","localeCompare"],"mappings":"AAAO,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAK,EAAEC,SAAS,EAAoB;AAAA,EAAA,IAAlBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;AAC1D,EAAA,IAAI,CAACH,KAAK,IAAI,CAACA,KAAK,CAACI,MAAM,EAAE;AAC5B,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;AAEA,EAAA,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAGC,KAAK,EAAI;AAC1B,IAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC,CAAC,IAAIC,KAAK,CAACD,KAAK,CAAC,EAAE;AAC9C,MAAA,OAAO,MAAM,CAAA;AACd,KAAC,MAAM,IAAI,CAACC,KAAK,CAACG,UAAU,CAACJ,KAAK,CAAC,CAAC,IAAIK,QAAQ,CAACL,KAAK,CAAC,EAAE;AACxD,MAAA,OAAO,QAAQ,CAAA;AAChB,KAAC,MAAM;AACN,MAAA,OAAO,QAAQ,CAAA;AAChB,KAAA;GACA,CAAA;AAED,EAAA,IAAMM,QAAQ,GAAGP,SAAS,CAACN,KAAK,CAAC,CAAC,CAAC,CAACc,MAAM,CAACb,SAAS,CAAC,CAAC,CAAA;EAEtD,OAAOD,KAAK,CAACe,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;AAC3B,IAAA,IAAIC,IAAI,GAAGF,CAAC,CAACF,MAAM,CAACb,SAAS,CAAC,CAAA;AAC9B,IAAA,IAAIkB,IAAI,GAAGF,CAAC,CAACH,MAAM,CAACb,SAAS,CAAC,CAAA;AAC9B,IAAA,IAAI,CAACiB,IAAI,IAAI,CAACC,IAAI,EAAE,OAAA;IACpB,IAAIC,UAAU,GAAG,CAAC,CAAA;IAElB,IAAIP,QAAQ,KAAK,QAAQ,EAAE;AAC1BO,MAAAA,UAAU,GAAGF,IAAI,CAACG,aAAa,CAACF,IAAI,CAAC,CAAA;AACtC,KAAC,MAAM,IAAIN,QAAQ,KAAK,QAAQ,EAAE;MACjCO,UAAU,GAAGF,IAAI,GAAGC,IAAI,CAAA;AACzB,KAAC,MAAM,IAAIN,QAAQ,KAAK,MAAM,EAAE;MAC/BO,UAAU,GAAG,IAAIX,IAAI,CAACS,IAAI,CAAC,GAAG,IAAIT,IAAI,CAACU,IAAI,CAAC,CAAA;AAC7C,KAAA;IACA,OAAOjB,KAAK,KAAK,MAAM,GAAGkB,UAAU,GAAG,CAAC,CAAC,GAAGA,UAAU,CAAA;AACvD,GAAC,CAAC,CAAA;AACH;;;;"}
@@ -0,0 +1,9 @@
1
+ var capitalize = function capitalize(str) {
2
+ if (str && typeof str === "string") {
3
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
4
+ }
5
+ return str;
6
+ };
7
+
8
+ export { capitalize };
9
+ //# sourceMappingURL=stringUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringUtils.js","sources":["../../src/util/stringUtils.js"],"sourcesContent":["export const capitalize = str => {\n\tif (str && typeof str === \"string\") {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n\t}\n\treturn str;\n};\n"],"names":["capitalize","str","charAt","toUpperCase","slice","toLowerCase"],"mappings":"IAAaA,UAAU,GAAG,SAAbA,UAAUA,CAAGC,GAAG,EAAI;AAChC,EAAA,IAAIA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IACnC,OAAOA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,CAAA;AAChE,GAAA;AACA,EAAA,OAAOJ,GAAG,CAAA;AACX;;;;"}
package/jsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "~/*": ["./*"]
5
+ }
6
+ }
7
+ }