@timardex/cluemart-shared 1.7.0 → 1.7.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 (145) hide show
  1. package/dist/ad-BUYzE6zx.d.ts +181 -0
  2. package/dist/ad-BhLoEul3.d.mts +181 -0
  3. package/dist/affiliate-BbtjeUP4.d.mts +73 -0
  4. package/dist/affiliate-C51nzKsw.d.ts +73 -0
  5. package/dist/apollo/index.cjs +1383 -0
  6. package/dist/apollo/index.cjs.map +1 -0
  7. package/dist/apollo/index.d.mts +323 -0
  8. package/dist/apollo/index.d.ts +323 -0
  9. package/dist/apollo/index.mjs +1295 -0
  10. package/dist/apollo/index.mjs.map +1 -0
  11. package/dist/auth/index.cjs +1727 -0
  12. package/dist/auth/index.cjs.map +1 -0
  13. package/dist/auth/index.d.mts +166 -0
  14. package/dist/auth/index.d.ts +166 -0
  15. package/dist/auth/index.mjs +380 -0
  16. package/dist/auth/index.mjs.map +1 -0
  17. package/dist/chunk-32MKHJTX.mjs +1207 -0
  18. package/dist/chunk-32MKHJTX.mjs.map +1 -0
  19. package/dist/{chunk-HZMP7GXC.mjs → chunk-447EYKHL.mjs} +1010 -2671
  20. package/dist/chunk-447EYKHL.mjs.map +1 -0
  21. package/dist/{chunk-RKIRWZCH.mjs → chunk-AYO3E4DM.mjs} +39 -183
  22. package/dist/chunk-AYO3E4DM.mjs.map +1 -0
  23. package/dist/{chunk-ZZJSCYJK.mjs → chunk-BIJ5NDXW.mjs} +46 -42
  24. package/dist/chunk-BIJ5NDXW.mjs.map +1 -0
  25. package/dist/chunk-DQ7ZHIXW.mjs +26 -0
  26. package/dist/chunk-DQ7ZHIXW.mjs.map +1 -0
  27. package/dist/{chunk-MVQ3CFQR.mjs → chunk-ILILH7E2.mjs} +12 -23
  28. package/dist/chunk-ILILH7E2.mjs.map +1 -0
  29. package/dist/{chunk-TAECMXM4.mjs → chunk-LBEJECG3.mjs} +249 -219
  30. package/dist/{chunk-TAECMXM4.mjs.map → chunk-LBEJECG3.mjs.map} +1 -1
  31. package/dist/chunk-RAYUJODN.mjs +45 -0
  32. package/dist/chunk-RAYUJODN.mjs.map +1 -0
  33. package/dist/chunk-SD42WIMV.mjs +297 -0
  34. package/dist/chunk-SD42WIMV.mjs.map +1 -0
  35. package/dist/chunk-VPANTTZI.mjs +262 -0
  36. package/dist/chunk-VPANTTZI.mjs.map +1 -0
  37. package/dist/{chunk-KZTOISPA.mjs → chunk-X3OLM35T.mjs} +14 -8
  38. package/dist/chunk-X3OLM35T.mjs.map +1 -0
  39. package/dist/{contactUs-H7799pWe.d.ts → contactUs--NoohZBu.d.ts} +1 -1
  40. package/dist/{contactUs-DGrDzJaM.d.mts → contactUs-CBWzefUS.d.mts} +1 -1
  41. package/dist/enums/index.cjs +13 -7
  42. package/dist/enums/index.cjs.map +1 -1
  43. package/dist/enums/index.d.mts +15 -9
  44. package/dist/enums/index.d.ts +15 -9
  45. package/dist/enums/index.mjs +1 -1
  46. package/dist/formFields/index.cjs +136 -73
  47. package/dist/formFields/index.cjs.map +1 -1
  48. package/dist/formFields/index.d.mts +3 -2
  49. package/dist/formFields/index.d.ts +3 -2
  50. package/dist/formFields/index.mjs +9 -4
  51. package/dist/{global-fKbMmluy.d.ts → global-CUYYxpy2.d.ts} +12 -11
  52. package/dist/{global-BUUfmCo7.d.mts → global-DePDtOFt.d.mts} +12 -11
  53. package/dist/graphql/index.cjs +734 -1271
  54. package/dist/graphql/index.cjs.map +1 -1
  55. package/dist/graphql/index.d.mts +434 -176
  56. package/dist/graphql/index.d.ts +434 -176
  57. package/dist/graphql/index.mjs +37 -23
  58. package/dist/hooks/index.cjs +947 -309
  59. package/dist/hooks/index.cjs.map +1 -1
  60. package/dist/hooks/index.d.mts +10 -4
  61. package/dist/hooks/index.d.ts +10 -4
  62. package/dist/hooks/index.mjs +170 -58
  63. package/dist/hooks/index.mjs.map +1 -1
  64. package/dist/images/apple-maps-icon.webp.d.ts +8 -1
  65. package/dist/images/banner-horizontal.webp.d.ts +8 -1
  66. package/dist/images/banner-vertical.webp.d.ts +8 -1
  67. package/dist/images/cluiTui.webp.d.ts +8 -1
  68. package/dist/images/corporate.webp.d.ts +8 -1
  69. package/dist/images/facebook.webp.d.ts +8 -1
  70. package/dist/images/gazebo-top.webp.d.ts +8 -1
  71. package/dist/images/google-maps-icon.webp.d.ts +8 -1
  72. package/dist/images/googleMaps-logo-dark.webp.d.ts +8 -1
  73. package/dist/images/googleMaps-logo-light.webp.d.ts +8 -1
  74. package/dist/images/instagram.webp.d.ts +8 -1
  75. package/dist/images/logo-atr.webp.d.ts +8 -1
  76. package/dist/images/logo-dark.webp.d.ts +8 -1
  77. package/dist/images/logo.webp.d.ts +8 -1
  78. package/dist/images/meet.webp.d.ts +8 -1
  79. package/dist/images/mini-market1.webp.d.ts +8 -1
  80. package/dist/images/mini-market2.webp.d.ts +8 -1
  81. package/dist/images/mini-market3.webp.d.ts +8 -1
  82. package/dist/images/mini-market4.webp.d.ts +8 -1
  83. package/dist/images/mini-market5.webp.d.ts +8 -1
  84. package/dist/images/poll.webp.d.ts +8 -1
  85. package/dist/images/poster1.webp.d.ts +8 -1
  86. package/dist/images/poster2.webp.d.ts +8 -1
  87. package/dist/images/poster3.webp.d.ts +8 -1
  88. package/dist/images/poster4.webp.d.ts +8 -1
  89. package/dist/images/private.webp.d.ts +8 -1
  90. package/dist/images/qr-code.webp.d.ts +8 -1
  91. package/dist/images/school.webp.d.ts +8 -1
  92. package/dist/images/sima.webp.d.ts +8 -1
  93. package/dist/images/store-android.webp.d.ts +8 -1
  94. package/dist/images/store-ios.webp.d.ts +8 -1
  95. package/dist/images/tablas.webp.d.ts +8 -1
  96. package/dist/images/telefonos.webp.d.ts +8 -1
  97. package/dist/images/tiktok.webp.d.ts +8 -1
  98. package/dist/images/tip.webp.d.ts +8 -1
  99. package/dist/images/ugralos.webp.d.ts +8 -1
  100. package/dist/images/waze-maps-icon.webp.d.ts +8 -1
  101. package/dist/images/website.webp.d.ts +8 -1
  102. package/dist/images/youtube.webp.d.ts +8 -1
  103. package/dist/index.cjs +1751 -1781
  104. package/dist/index.cjs.map +1 -1
  105. package/dist/index.d.mts +665 -243
  106. package/dist/index.d.ts +665 -243
  107. package/dist/index.mjs +1711 -1779
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/map/index.cjs +14 -9
  110. package/dist/map/index.cjs.map +1 -1
  111. package/dist/map/index.d.mts +16 -13
  112. package/dist/map/index.d.ts +16 -13
  113. package/dist/map/index.mjs +14 -9
  114. package/dist/map/index.mjs.map +1 -1
  115. package/dist/{resourceActivities-BL_12IAo.d.ts → resourceActivities-CMUcn2P7.d.ts} +9 -4
  116. package/dist/{resourceActivities-zczOntNk.d.mts → resourceActivities-CwbJFGIp.d.mts} +9 -4
  117. package/dist/sharing/index.cjs +39 -1252
  118. package/dist/sharing/index.cjs.map +1 -1
  119. package/dist/sharing/index.d.mts +17 -5
  120. package/dist/sharing/index.d.ts +17 -5
  121. package/dist/sharing/index.mjs +34 -30
  122. package/dist/subscription-BU8GvH2K.d.ts +12 -0
  123. package/dist/subscription-bmAdrnfi.d.mts +12 -0
  124. package/dist/types/index.cjs +15 -2
  125. package/dist/types/index.cjs.map +1 -1
  126. package/dist/types/index.d.mts +10 -23
  127. package/dist/types/index.d.ts +10 -23
  128. package/dist/types/index.mjs +9 -5
  129. package/dist/user-D47MLFyH.d.ts +134 -0
  130. package/dist/user-DE8edl3u.d.mts +134 -0
  131. package/dist/utils/index.cjs +355 -136
  132. package/dist/utils/index.cjs.map +1 -1
  133. package/dist/utils/index.d.mts +87 -35
  134. package/dist/utils/index.d.ts +87 -35
  135. package/dist/utils/index.mjs +42 -15
  136. package/package.json +31 -10
  137. package/dist/ad-CVkVX_z5.d.ts +0 -296
  138. package/dist/ad-DA9ECAhK.d.mts +0 -296
  139. package/dist/affiliate-1RtkLnLP.d.ts +0 -35
  140. package/dist/affiliate-Cos2Syz5.d.mts +0 -35
  141. package/dist/chunk-HZMP7GXC.mjs.map +0 -1
  142. package/dist/chunk-KZTOISPA.mjs.map +0 -1
  143. package/dist/chunk-MVQ3CFQR.mjs.map +0 -1
  144. package/dist/chunk-RKIRWZCH.mjs.map +0 -1
  145. package/dist/chunk-ZZJSCYJK.mjs.map +0 -1
@@ -42,22 +42,27 @@ __export(map_exports, {
42
42
  module.exports = __toCommonJS(map_exports);
43
43
 
44
44
  // src/map/constants.ts
45
+ var NZ_MAP_BOUNDARIES = {
46
+ northEast: { latitude: -33.9, longitude: 178.6 },
47
+ southWest: { latitude: -47.5, longitude: 166.4 }
48
+ };
49
+ var NZ_BOUNDS_LAT_SPAN = NZ_MAP_BOUNDARIES.northEast.latitude - NZ_MAP_BOUNDARIES.southWest.latitude;
50
+ var NZ_BOUNDS_LNG_SPAN = NZ_MAP_BOUNDARIES.northEast.longitude - NZ_MAP_BOUNDARIES.southWest.longitude;
45
51
  var DEFAULT_NZ_REGION = {
46
- latitude: -41.2865,
47
- latitudeDelta: 5,
48
- longitude: 174.7762,
49
- longitudeDelta: 5
52
+ latitude: (NZ_MAP_BOUNDARIES.northEast.latitude + NZ_MAP_BOUNDARIES.southWest.latitude) / 2,
53
+ latitudeDelta: NZ_BOUNDS_LAT_SPAN,
54
+ longitude: (NZ_MAP_BOUNDARIES.northEast.longitude + NZ_MAP_BOUNDARIES.southWest.longitude) / 2,
55
+ longitudeDelta: NZ_BOUNDS_LNG_SPAN
50
56
  };
51
57
  var DEFAULT_NZ_CENTER = {
52
58
  latitude: DEFAULT_NZ_REGION.latitude,
53
59
  longitude: DEFAULT_NZ_REGION.longitude
54
60
  };
55
- var DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;
61
+ var DEFAULT_NZ_REGION_SPAN = Math.max(
62
+ DEFAULT_NZ_REGION.latitudeDelta,
63
+ DEFAULT_NZ_REGION.longitudeDelta
64
+ );
56
65
  var SINGLE_MARKER_DELTA = 2;
57
- var NZ_MAP_BOUNDARIES = {
58
- northEast: { latitude: -33.9, longitude: 178.6 },
59
- southWest: { latitude: -47.5, longitude: 166.4 }
60
- };
61
66
  var BOUNDS_PADDING = 0.15;
62
67
  var MIN_REGION_SPAN = 0.5;
63
68
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/map/index.ts","../../src/map/constants.ts","../../src/map/coordinates.ts","../../src/map/region.ts","../../src/map/bounds.ts"],"sourcesContent":["export {\n BOUNDS_PADDING,\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nexport { hasValidMapCoordinate } from \"./coordinates\";\nexport {\n boundsForSingleMarker,\n boundsFromMapCoordinates,\n boundsToRegion,\n clampBoundsToNZ,\n regionToBounds,\n} from \"./bounds\";\nexport {\n clampRegionToNZ,\n isSameRegion,\n isValidRegion,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nexport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n","import type { Region } from \"../types/global\";\n\n/** Default region (NZ) used when no markers or for max zoom-out. */\nexport const DEFAULT_NZ_REGION: Region = {\n latitude: -41.2865,\n latitudeDelta: 5,\n longitude: 174.7762,\n longitudeDelta: 5,\n};\n\n/** Center of the default NZ region. */\nexport const DEFAULT_NZ_CENTER = {\n latitude: DEFAULT_NZ_REGION.latitude,\n longitude: DEFAULT_NZ_REGION.longitude,\n} as const;\n\n/** Max zoom-out span (degrees), matching `DEFAULT_NZ_REGION` deltas. */\nexport const DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;\n\n/** Region span for a single-marker map view. */\nexport const SINGLE_MARKER_DELTA = 2;\n\n/** NZ map boundaries for clamping. */\nexport const NZ_MAP_BOUNDARIES = {\n northEast: { latitude: -33.9, longitude: 178.6 },\n southWest: { latitude: -47.5, longitude: 166.4 },\n} as const;\n\n/** Padding added when fitting coordinates into a region or bounds. */\nexport const BOUNDS_PADDING = 0.15;\n\n/** Minimum lat/lng span when fitting coordinates. */\nexport const MIN_REGION_SPAN = 0.5;\n","import type { MapCoordinate } from \"./types\";\n\nexport function hasValidMapCoordinate(\n location:\n | { latitude?: number | null; longitude?: number | null }\n | null\n | undefined,\n): location is MapCoordinate {\n if (!location) {\n return false;\n }\n\n return (\n typeof location.latitude === \"number\" &&\n typeof location.longitude === \"number\" &&\n Number.isFinite(location.latitude) &&\n Number.isFinite(location.longitude)\n );\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n BOUNDS_PADDING,\n DEFAULT_NZ_REGION,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nimport type { MapCoordinate } from \"./types\";\n\nexport function isValidRegion(region: Region | undefined): region is Region {\n return (\n !!region &&\n typeof region.latitude === \"number\" &&\n typeof region.longitude === \"number\" &&\n Number.isFinite(region.latitude) &&\n Number.isFinite(region.longitude) &&\n typeof region.latitudeDelta === \"number\" &&\n typeof region.longitudeDelta === \"number\" &&\n Number.isFinite(region.latitudeDelta) &&\n Number.isFinite(region.longitudeDelta) &&\n region.latitude >= -85 &&\n region.latitude <= 85 &&\n region.longitude >= -180 &&\n region.longitude <= 180 &&\n region.latitudeDelta > 0 &&\n region.longitudeDelta > 0 &&\n region.latitudeDelta <= 180 &&\n region.longitudeDelta <= 360\n );\n}\n\nexport function isSameRegion(next: Region, current: Region): boolean {\n const epsilon = 0.0001;\n return (\n Math.abs(next.latitude - current.latitude) < epsilon &&\n Math.abs(next.longitude - current.longitude) < epsilon &&\n Math.abs(next.latitudeDelta - current.latitudeDelta) < epsilon &&\n Math.abs(next.longitudeDelta - current.longitudeDelta) < epsilon\n );\n}\n\n/**\n * Region that fits all coordinates with padding; deltas are clamped between a minimum\n * and maxLatitudeDelta / maxLongitudeDelta (e.g. DEFAULT_NZ_REGION deltas).\n * Caller must pass a non-empty coords array.\n */\nexport function regionFromCoordinates(\n coords: readonly MapCoordinate[],\n maxLatitudeDelta: number = DEFAULT_NZ_REGION.latitudeDelta,\n maxLongitudeDelta: number = DEFAULT_NZ_REGION.longitudeDelta,\n): Region {\n const lats = coords.map((coord) => coord.latitude);\n const lngs = coords.map((coord) => coord.longitude);\n const minLat = Math.min(...lats);\n const maxLat = Math.max(...lats);\n const minLng = Math.min(...lngs);\n const maxLng = Math.max(...lngs);\n\n let latDelta = maxLat - minLat + BOUNDS_PADDING;\n let lngDelta = maxLng - minLng + BOUNDS_PADDING;\n latDelta = Math.max(MIN_REGION_SPAN, latDelta);\n lngDelta = Math.max(MIN_REGION_SPAN, lngDelta);\n latDelta = Math.min(latDelta, maxLatitudeDelta);\n lngDelta = Math.min(lngDelta, maxLongitudeDelta);\n\n return {\n latitude: (minLat + maxLat) / 2,\n latitudeDelta: latDelta,\n longitude: (minLng + maxLng) / 2,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Clamp region to NZ: pan inside boundaries, zoom out at most to DEFAULT_NZ_REGION. */\nexport function clampRegionToNZ(region: Region): Region {\n const { northEast, southWest } = NZ_MAP_BOUNDARIES;\n const maxLatDelta = DEFAULT_NZ_REGION.latitudeDelta;\n const maxLngDelta = DEFAULT_NZ_REGION.longitudeDelta;\n\n const latDelta = Math.min(region.latitudeDelta, maxLatDelta);\n const lngDelta = Math.min(region.longitudeDelta, maxLngDelta);\n\n const halfLat = latDelta / 2;\n const halfLng = lngDelta / 2;\n const minLat = southWest.latitude + halfLat;\n const maxLat = northEast.latitude - halfLat;\n const minLng = southWest.longitude + halfLng;\n const maxLng = northEast.longitude - halfLng;\n\n const latitude = Math.max(minLat, Math.min(maxLat, region.latitude));\n const longitude = Math.max(minLng, Math.min(maxLng, region.longitude));\n\n return {\n latitude,\n latitudeDelta: latDelta,\n longitude,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Region centered on one coordinate with the standard single-marker zoom level. */\nexport function regionForSingleMarker(coord: MapCoordinate): Region {\n return clampRegionToNZ({\n latitude: coord.latitude,\n latitudeDelta: SINGLE_MARKER_DELTA,\n longitude: coord.longitude,\n longitudeDelta: SINGLE_MARKER_DELTA,\n });\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n} from \"./constants\";\nimport {\n clampRegionToNZ,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nimport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n\nexport function regionToBounds(region: Region): MapBoundsLiteral {\n const halfLat = region.latitudeDelta / 2;\n const halfLng = region.longitudeDelta / 2;\n\n return {\n east: region.longitude + halfLng,\n north: region.latitude + halfLat,\n south: region.latitude - halfLat,\n west: region.longitude - halfLng,\n };\n}\n\nexport function boundsToRegion(bounds: MapBoundsLiteral): Region {\n return {\n latitude: (bounds.north + bounds.south) / 2,\n latitudeDelta: bounds.north - bounds.south,\n longitude: (bounds.east + bounds.west) / 2,\n longitudeDelta: bounds.east - bounds.west,\n };\n}\n\n/** Clamp map bounds to NZ, matching `clampRegionToNZ` behavior. */\nexport function clampBoundsToNZ(bounds: MapBoundsLiteral): MapBoundsLiteral {\n return regionToBounds(clampRegionToNZ(boundsToRegion(bounds)));\n}\n\nfunction boundsFromCenterAndSpan(\n center: MapCoordinate,\n span: number,\n): MapBoundsLiteral {\n return clampBoundsToNZ({\n east: center.longitude + span / 2,\n north: center.latitude + span / 2,\n south: center.latitude - span / 2,\n west: center.longitude - span / 2,\n });\n}\n\n/**\n * Bounds that fit marker coordinates with padding, derived from\n * `regionFromCoordinates` + `clampRegionToNZ`.\n */\nexport function boundsFromMapCoordinates(\n coords: readonly MapCoordinate[],\n): MapBoundsLiteral {\n if (coords.length === 0) {\n return boundsFromCenterAndSpan(DEFAULT_NZ_CENTER, DEFAULT_NZ_REGION_SPAN);\n }\n\n const region = clampRegionToNZ(\n regionFromCoordinates(\n coords,\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n ),\n );\n\n return regionToBounds(region);\n}\n\n/** Bounds for a single-marker map view. */\nexport function boundsForSingleMarker(coord: MapCoordinate): MapBoundsLiteral {\n return regionToBounds(regionForSingleMarker(coord));\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/map/index.ts","../../src/map/constants.ts","../../src/map/coordinates.ts","../../src/map/region.ts","../../src/map/bounds.ts"],"sourcesContent":["export {\n BOUNDS_PADDING,\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nexport { hasValidMapCoordinate } from \"./coordinates\";\nexport {\n boundsForSingleMarker,\n boundsFromMapCoordinates,\n boundsToRegion,\n clampBoundsToNZ,\n regionToBounds,\n} from \"./bounds\";\nexport {\n clampRegionToNZ,\n isSameRegion,\n isValidRegion,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nexport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n","import type { Region } from \"../types/global\";\n\n/** NZ map boundaries for clamping / full-country framing. */\nexport const NZ_MAP_BOUNDARIES = {\n northEast: { latitude: -33.9, longitude: 178.6 },\n southWest: { latitude: -47.5, longitude: 166.4 },\n} as const;\n\nconst NZ_BOUNDS_LAT_SPAN =\n NZ_MAP_BOUNDARIES.northEast.latitude - NZ_MAP_BOUNDARIES.southWest.latitude;\nconst NZ_BOUNDS_LNG_SPAN =\n NZ_MAP_BOUNDARIES.northEast.longitude - NZ_MAP_BOUNDARIES.southWest.longitude;\n\n/**\n * Default region (full NZ) used for \"All Regions\", empty markers, and max zoom-out.\n * Derived from `NZ_MAP_BOUNDARIES` so the whole country fits in view.\n */\nexport const DEFAULT_NZ_REGION: Region = {\n latitude:\n (NZ_MAP_BOUNDARIES.northEast.latitude +\n NZ_MAP_BOUNDARIES.southWest.latitude) /\n 2,\n latitudeDelta: NZ_BOUNDS_LAT_SPAN,\n longitude:\n (NZ_MAP_BOUNDARIES.northEast.longitude +\n NZ_MAP_BOUNDARIES.southWest.longitude) /\n 2,\n longitudeDelta: NZ_BOUNDS_LNG_SPAN,\n};\n\n/** Center of the default NZ region. */\nexport const DEFAULT_NZ_CENTER = {\n latitude: DEFAULT_NZ_REGION.latitude,\n longitude: DEFAULT_NZ_REGION.longitude,\n} as const;\n\n/** Max zoom-out span (degrees), matching the larger `DEFAULT_NZ_REGION` delta. */\nexport const DEFAULT_NZ_REGION_SPAN = Math.max(\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n);\n\n/** Region span for a single-marker map view. */\nexport const SINGLE_MARKER_DELTA = 2;\n\n/** Padding added when fitting coordinates into a region or bounds. */\nexport const BOUNDS_PADDING = 0.15;\n\n/** Minimum lat/lng span when fitting coordinates. */\nexport const MIN_REGION_SPAN = 0.5;\n","import type { MapCoordinate } from \"./types\";\n\nexport function hasValidMapCoordinate(\n location:\n | { latitude?: number | null; longitude?: number | null }\n | null\n | undefined,\n): location is MapCoordinate {\n if (!location) {\n return false;\n }\n\n return (\n typeof location.latitude === \"number\" &&\n typeof location.longitude === \"number\" &&\n Number.isFinite(location.latitude) &&\n Number.isFinite(location.longitude)\n );\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n BOUNDS_PADDING,\n DEFAULT_NZ_REGION,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nimport type { MapCoordinate } from \"./types\";\n\nexport function isValidRegion(region: Region | undefined): region is Region {\n return (\n !!region &&\n typeof region.latitude === \"number\" &&\n typeof region.longitude === \"number\" &&\n Number.isFinite(region.latitude) &&\n Number.isFinite(region.longitude) &&\n typeof region.latitudeDelta === \"number\" &&\n typeof region.longitudeDelta === \"number\" &&\n Number.isFinite(region.latitudeDelta) &&\n Number.isFinite(region.longitudeDelta) &&\n region.latitude >= -85 &&\n region.latitude <= 85 &&\n region.longitude >= -180 &&\n region.longitude <= 180 &&\n region.latitudeDelta > 0 &&\n region.longitudeDelta > 0 &&\n region.latitudeDelta <= 180 &&\n region.longitudeDelta <= 360\n );\n}\n\nexport function isSameRegion(next: Region, current: Region): boolean {\n const epsilon = 0.0001;\n return (\n Math.abs(next.latitude - current.latitude) < epsilon &&\n Math.abs(next.longitude - current.longitude) < epsilon &&\n Math.abs(next.latitudeDelta - current.latitudeDelta) < epsilon &&\n Math.abs(next.longitudeDelta - current.longitudeDelta) < epsilon\n );\n}\n\n/**\n * Region that fits all coordinates with padding; deltas are clamped between a minimum\n * and maxLatitudeDelta / maxLongitudeDelta (e.g. DEFAULT_NZ_REGION deltas).\n * Caller must pass a non-empty coords array.\n */\nexport function regionFromCoordinates(\n coords: readonly MapCoordinate[],\n maxLatitudeDelta: number = DEFAULT_NZ_REGION.latitudeDelta,\n maxLongitudeDelta: number = DEFAULT_NZ_REGION.longitudeDelta,\n): Region {\n const lats = coords.map((coord) => coord.latitude);\n const lngs = coords.map((coord) => coord.longitude);\n const minLat = Math.min(...lats);\n const maxLat = Math.max(...lats);\n const minLng = Math.min(...lngs);\n const maxLng = Math.max(...lngs);\n\n let latDelta = maxLat - minLat + BOUNDS_PADDING;\n let lngDelta = maxLng - minLng + BOUNDS_PADDING;\n latDelta = Math.max(MIN_REGION_SPAN, latDelta);\n lngDelta = Math.max(MIN_REGION_SPAN, lngDelta);\n latDelta = Math.min(latDelta, maxLatitudeDelta);\n lngDelta = Math.min(lngDelta, maxLongitudeDelta);\n\n return {\n latitude: (minLat + maxLat) / 2,\n latitudeDelta: latDelta,\n longitude: (minLng + maxLng) / 2,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Clamp region to NZ: pan inside boundaries, zoom out at most to DEFAULT_NZ_REGION. */\nexport function clampRegionToNZ(region: Region): Region {\n const { northEast, southWest } = NZ_MAP_BOUNDARIES;\n const maxLatDelta = DEFAULT_NZ_REGION.latitudeDelta;\n const maxLngDelta = DEFAULT_NZ_REGION.longitudeDelta;\n\n const latDelta = Math.min(region.latitudeDelta, maxLatDelta);\n const lngDelta = Math.min(region.longitudeDelta, maxLngDelta);\n\n const halfLat = latDelta / 2;\n const halfLng = lngDelta / 2;\n const minLat = southWest.latitude + halfLat;\n const maxLat = northEast.latitude - halfLat;\n const minLng = southWest.longitude + halfLng;\n const maxLng = northEast.longitude - halfLng;\n\n const latitude = Math.max(minLat, Math.min(maxLat, region.latitude));\n const longitude = Math.max(minLng, Math.min(maxLng, region.longitude));\n\n return {\n latitude,\n latitudeDelta: latDelta,\n longitude,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Region centered on one coordinate with the standard single-marker zoom level. */\nexport function regionForSingleMarker(coord: MapCoordinate): Region {\n return clampRegionToNZ({\n latitude: coord.latitude,\n latitudeDelta: SINGLE_MARKER_DELTA,\n longitude: coord.longitude,\n longitudeDelta: SINGLE_MARKER_DELTA,\n });\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n} from \"./constants\";\nimport {\n clampRegionToNZ,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nimport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n\nexport function regionToBounds(region: Region): MapBoundsLiteral {\n const halfLat = region.latitudeDelta / 2;\n const halfLng = region.longitudeDelta / 2;\n\n return {\n east: region.longitude + halfLng,\n north: region.latitude + halfLat,\n south: region.latitude - halfLat,\n west: region.longitude - halfLng,\n };\n}\n\nexport function boundsToRegion(bounds: MapBoundsLiteral): Region {\n return {\n latitude: (bounds.north + bounds.south) / 2,\n latitudeDelta: bounds.north - bounds.south,\n longitude: (bounds.east + bounds.west) / 2,\n longitudeDelta: bounds.east - bounds.west,\n };\n}\n\n/** Clamp map bounds to NZ, matching `clampRegionToNZ` behavior. */\nexport function clampBoundsToNZ(bounds: MapBoundsLiteral): MapBoundsLiteral {\n return regionToBounds(clampRegionToNZ(boundsToRegion(bounds)));\n}\n\nfunction boundsFromCenterAndSpan(\n center: MapCoordinate,\n span: number,\n): MapBoundsLiteral {\n return clampBoundsToNZ({\n east: center.longitude + span / 2,\n north: center.latitude + span / 2,\n south: center.latitude - span / 2,\n west: center.longitude - span / 2,\n });\n}\n\n/**\n * Bounds that fit marker coordinates with padding, derived from\n * `regionFromCoordinates` + `clampRegionToNZ`.\n */\nexport function boundsFromMapCoordinates(\n coords: readonly MapCoordinate[],\n): MapBoundsLiteral {\n if (coords.length === 0) {\n return boundsFromCenterAndSpan(DEFAULT_NZ_CENTER, DEFAULT_NZ_REGION_SPAN);\n }\n\n const region = clampRegionToNZ(\n regionFromCoordinates(\n coords,\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n ),\n );\n\n return regionToBounds(region);\n}\n\n/** Bounds for a single-marker map view. */\nexport function boundsForSingleMarker(coord: MapCoordinate): MapBoundsLiteral {\n return regionToBounds(regionForSingleMarker(coord));\n}\n"],"mappings":"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","names":[]}
@@ -1,19 +1,8 @@
1
- import { x as Region } from '../global-BUUfmCo7.mjs';
1
+ import { y as Region } from '../global-DePDtOFt.mjs';
2
2
  import 'react-hook-form';
3
3
  import '../enums/index.mjs';
4
4
 
5
- /** Default region (NZ) used when no markers or for max zoom-out. */
6
- declare const DEFAULT_NZ_REGION: Region;
7
- /** Center of the default NZ region. */
8
- declare const DEFAULT_NZ_CENTER: {
9
- readonly latitude: number;
10
- readonly longitude: number;
11
- };
12
- /** Max zoom-out span (degrees), matching `DEFAULT_NZ_REGION` deltas. */
13
- declare const DEFAULT_NZ_REGION_SPAN: number;
14
- /** Region span for a single-marker map view. */
15
- declare const SINGLE_MARKER_DELTA = 2;
16
- /** NZ map boundaries for clamping. */
5
+ /** NZ map boundaries for clamping / full-country framing. */
17
6
  declare const NZ_MAP_BOUNDARIES: {
18
7
  readonly northEast: {
19
8
  readonly latitude: -33.9;
@@ -24,6 +13,20 @@ declare const NZ_MAP_BOUNDARIES: {
24
13
  readonly longitude: 166.4;
25
14
  };
26
15
  };
16
+ /**
17
+ * Default region (full NZ) used for "All Regions", empty markers, and max zoom-out.
18
+ * Derived from `NZ_MAP_BOUNDARIES` so the whole country fits in view.
19
+ */
20
+ declare const DEFAULT_NZ_REGION: Region;
21
+ /** Center of the default NZ region. */
22
+ declare const DEFAULT_NZ_CENTER: {
23
+ readonly latitude: number;
24
+ readonly longitude: number;
25
+ };
26
+ /** Max zoom-out span (degrees), matching the larger `DEFAULT_NZ_REGION` delta. */
27
+ declare const DEFAULT_NZ_REGION_SPAN: number;
28
+ /** Region span for a single-marker map view. */
29
+ declare const SINGLE_MARKER_DELTA = 2;
27
30
  /** Padding added when fitting coordinates into a region or bounds. */
28
31
  declare const BOUNDS_PADDING = 0.15;
29
32
  /** Minimum lat/lng span when fitting coordinates. */
@@ -1,19 +1,8 @@
1
- import { x as Region } from '../global-fKbMmluy.js';
1
+ import { y as Region } from '../global-CUYYxpy2.js';
2
2
  import 'react-hook-form';
3
3
  import '../enums/index.js';
4
4
 
5
- /** Default region (NZ) used when no markers or for max zoom-out. */
6
- declare const DEFAULT_NZ_REGION: Region;
7
- /** Center of the default NZ region. */
8
- declare const DEFAULT_NZ_CENTER: {
9
- readonly latitude: number;
10
- readonly longitude: number;
11
- };
12
- /** Max zoom-out span (degrees), matching `DEFAULT_NZ_REGION` deltas. */
13
- declare const DEFAULT_NZ_REGION_SPAN: number;
14
- /** Region span for a single-marker map view. */
15
- declare const SINGLE_MARKER_DELTA = 2;
16
- /** NZ map boundaries for clamping. */
5
+ /** NZ map boundaries for clamping / full-country framing. */
17
6
  declare const NZ_MAP_BOUNDARIES: {
18
7
  readonly northEast: {
19
8
  readonly latitude: -33.9;
@@ -24,6 +13,20 @@ declare const NZ_MAP_BOUNDARIES: {
24
13
  readonly longitude: 166.4;
25
14
  };
26
15
  };
16
+ /**
17
+ * Default region (full NZ) used for "All Regions", empty markers, and max zoom-out.
18
+ * Derived from `NZ_MAP_BOUNDARIES` so the whole country fits in view.
19
+ */
20
+ declare const DEFAULT_NZ_REGION: Region;
21
+ /** Center of the default NZ region. */
22
+ declare const DEFAULT_NZ_CENTER: {
23
+ readonly latitude: number;
24
+ readonly longitude: number;
25
+ };
26
+ /** Max zoom-out span (degrees), matching the larger `DEFAULT_NZ_REGION` delta. */
27
+ declare const DEFAULT_NZ_REGION_SPAN: number;
28
+ /** Region span for a single-marker map view. */
29
+ declare const SINGLE_MARKER_DELTA = 2;
27
30
  /** Padding added when fitting coordinates into a region or bounds. */
28
31
  declare const BOUNDS_PADDING = 0.15;
29
32
  /** Minimum lat/lng span when fitting coordinates. */
@@ -1,20 +1,25 @@
1
1
  // src/map/constants.ts
2
+ var NZ_MAP_BOUNDARIES = {
3
+ northEast: { latitude: -33.9, longitude: 178.6 },
4
+ southWest: { latitude: -47.5, longitude: 166.4 }
5
+ };
6
+ var NZ_BOUNDS_LAT_SPAN = NZ_MAP_BOUNDARIES.northEast.latitude - NZ_MAP_BOUNDARIES.southWest.latitude;
7
+ var NZ_BOUNDS_LNG_SPAN = NZ_MAP_BOUNDARIES.northEast.longitude - NZ_MAP_BOUNDARIES.southWest.longitude;
2
8
  var DEFAULT_NZ_REGION = {
3
- latitude: -41.2865,
4
- latitudeDelta: 5,
5
- longitude: 174.7762,
6
- longitudeDelta: 5
9
+ latitude: (NZ_MAP_BOUNDARIES.northEast.latitude + NZ_MAP_BOUNDARIES.southWest.latitude) / 2,
10
+ latitudeDelta: NZ_BOUNDS_LAT_SPAN,
11
+ longitude: (NZ_MAP_BOUNDARIES.northEast.longitude + NZ_MAP_BOUNDARIES.southWest.longitude) / 2,
12
+ longitudeDelta: NZ_BOUNDS_LNG_SPAN
7
13
  };
8
14
  var DEFAULT_NZ_CENTER = {
9
15
  latitude: DEFAULT_NZ_REGION.latitude,
10
16
  longitude: DEFAULT_NZ_REGION.longitude
11
17
  };
12
- var DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;
18
+ var DEFAULT_NZ_REGION_SPAN = Math.max(
19
+ DEFAULT_NZ_REGION.latitudeDelta,
20
+ DEFAULT_NZ_REGION.longitudeDelta
21
+ );
13
22
  var SINGLE_MARKER_DELTA = 2;
14
- var NZ_MAP_BOUNDARIES = {
15
- northEast: { latitude: -33.9, longitude: 178.6 },
16
- southWest: { latitude: -47.5, longitude: 166.4 }
17
- };
18
23
  var BOUNDS_PADDING = 0.15;
19
24
  var MIN_REGION_SPAN = 0.5;
20
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/map/constants.ts","../../src/map/coordinates.ts","../../src/map/region.ts","../../src/map/bounds.ts"],"sourcesContent":["import type { Region } from \"../types/global\";\n\n/** Default region (NZ) used when no markers or for max zoom-out. */\nexport const DEFAULT_NZ_REGION: Region = {\n latitude: -41.2865,\n latitudeDelta: 5,\n longitude: 174.7762,\n longitudeDelta: 5,\n};\n\n/** Center of the default NZ region. */\nexport const DEFAULT_NZ_CENTER = {\n latitude: DEFAULT_NZ_REGION.latitude,\n longitude: DEFAULT_NZ_REGION.longitude,\n} as const;\n\n/** Max zoom-out span (degrees), matching `DEFAULT_NZ_REGION` deltas. */\nexport const DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;\n\n/** Region span for a single-marker map view. */\nexport const SINGLE_MARKER_DELTA = 2;\n\n/** NZ map boundaries for clamping. */\nexport const NZ_MAP_BOUNDARIES = {\n northEast: { latitude: -33.9, longitude: 178.6 },\n southWest: { latitude: -47.5, longitude: 166.4 },\n} as const;\n\n/** Padding added when fitting coordinates into a region or bounds. */\nexport const BOUNDS_PADDING = 0.15;\n\n/** Minimum lat/lng span when fitting coordinates. */\nexport const MIN_REGION_SPAN = 0.5;\n","import type { MapCoordinate } from \"./types\";\n\nexport function hasValidMapCoordinate(\n location:\n | { latitude?: number | null; longitude?: number | null }\n | null\n | undefined,\n): location is MapCoordinate {\n if (!location) {\n return false;\n }\n\n return (\n typeof location.latitude === \"number\" &&\n typeof location.longitude === \"number\" &&\n Number.isFinite(location.latitude) &&\n Number.isFinite(location.longitude)\n );\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n BOUNDS_PADDING,\n DEFAULT_NZ_REGION,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nimport type { MapCoordinate } from \"./types\";\n\nexport function isValidRegion(region: Region | undefined): region is Region {\n return (\n !!region &&\n typeof region.latitude === \"number\" &&\n typeof region.longitude === \"number\" &&\n Number.isFinite(region.latitude) &&\n Number.isFinite(region.longitude) &&\n typeof region.latitudeDelta === \"number\" &&\n typeof region.longitudeDelta === \"number\" &&\n Number.isFinite(region.latitudeDelta) &&\n Number.isFinite(region.longitudeDelta) &&\n region.latitude >= -85 &&\n region.latitude <= 85 &&\n region.longitude >= -180 &&\n region.longitude <= 180 &&\n region.latitudeDelta > 0 &&\n region.longitudeDelta > 0 &&\n region.latitudeDelta <= 180 &&\n region.longitudeDelta <= 360\n );\n}\n\nexport function isSameRegion(next: Region, current: Region): boolean {\n const epsilon = 0.0001;\n return (\n Math.abs(next.latitude - current.latitude) < epsilon &&\n Math.abs(next.longitude - current.longitude) < epsilon &&\n Math.abs(next.latitudeDelta - current.latitudeDelta) < epsilon &&\n Math.abs(next.longitudeDelta - current.longitudeDelta) < epsilon\n );\n}\n\n/**\n * Region that fits all coordinates with padding; deltas are clamped between a minimum\n * and maxLatitudeDelta / maxLongitudeDelta (e.g. DEFAULT_NZ_REGION deltas).\n * Caller must pass a non-empty coords array.\n */\nexport function regionFromCoordinates(\n coords: readonly MapCoordinate[],\n maxLatitudeDelta: number = DEFAULT_NZ_REGION.latitudeDelta,\n maxLongitudeDelta: number = DEFAULT_NZ_REGION.longitudeDelta,\n): Region {\n const lats = coords.map((coord) => coord.latitude);\n const lngs = coords.map((coord) => coord.longitude);\n const minLat = Math.min(...lats);\n const maxLat = Math.max(...lats);\n const minLng = Math.min(...lngs);\n const maxLng = Math.max(...lngs);\n\n let latDelta = maxLat - minLat + BOUNDS_PADDING;\n let lngDelta = maxLng - minLng + BOUNDS_PADDING;\n latDelta = Math.max(MIN_REGION_SPAN, latDelta);\n lngDelta = Math.max(MIN_REGION_SPAN, lngDelta);\n latDelta = Math.min(latDelta, maxLatitudeDelta);\n lngDelta = Math.min(lngDelta, maxLongitudeDelta);\n\n return {\n latitude: (minLat + maxLat) / 2,\n latitudeDelta: latDelta,\n longitude: (minLng + maxLng) / 2,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Clamp region to NZ: pan inside boundaries, zoom out at most to DEFAULT_NZ_REGION. */\nexport function clampRegionToNZ(region: Region): Region {\n const { northEast, southWest } = NZ_MAP_BOUNDARIES;\n const maxLatDelta = DEFAULT_NZ_REGION.latitudeDelta;\n const maxLngDelta = DEFAULT_NZ_REGION.longitudeDelta;\n\n const latDelta = Math.min(region.latitudeDelta, maxLatDelta);\n const lngDelta = Math.min(region.longitudeDelta, maxLngDelta);\n\n const halfLat = latDelta / 2;\n const halfLng = lngDelta / 2;\n const minLat = southWest.latitude + halfLat;\n const maxLat = northEast.latitude - halfLat;\n const minLng = southWest.longitude + halfLng;\n const maxLng = northEast.longitude - halfLng;\n\n const latitude = Math.max(minLat, Math.min(maxLat, region.latitude));\n const longitude = Math.max(minLng, Math.min(maxLng, region.longitude));\n\n return {\n latitude,\n latitudeDelta: latDelta,\n longitude,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Region centered on one coordinate with the standard single-marker zoom level. */\nexport function regionForSingleMarker(coord: MapCoordinate): Region {\n return clampRegionToNZ({\n latitude: coord.latitude,\n latitudeDelta: SINGLE_MARKER_DELTA,\n longitude: coord.longitude,\n longitudeDelta: SINGLE_MARKER_DELTA,\n });\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n} from \"./constants\";\nimport {\n clampRegionToNZ,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nimport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n\nexport function regionToBounds(region: Region): MapBoundsLiteral {\n const halfLat = region.latitudeDelta / 2;\n const halfLng = region.longitudeDelta / 2;\n\n return {\n east: region.longitude + halfLng,\n north: region.latitude + halfLat,\n south: region.latitude - halfLat,\n west: region.longitude - halfLng,\n };\n}\n\nexport function boundsToRegion(bounds: MapBoundsLiteral): Region {\n return {\n latitude: (bounds.north + bounds.south) / 2,\n latitudeDelta: bounds.north - bounds.south,\n longitude: (bounds.east + bounds.west) / 2,\n longitudeDelta: bounds.east - bounds.west,\n };\n}\n\n/** Clamp map bounds to NZ, matching `clampRegionToNZ` behavior. */\nexport function clampBoundsToNZ(bounds: MapBoundsLiteral): MapBoundsLiteral {\n return regionToBounds(clampRegionToNZ(boundsToRegion(bounds)));\n}\n\nfunction boundsFromCenterAndSpan(\n center: MapCoordinate,\n span: number,\n): MapBoundsLiteral {\n return clampBoundsToNZ({\n east: center.longitude + span / 2,\n north: center.latitude + span / 2,\n south: center.latitude - span / 2,\n west: center.longitude - span / 2,\n });\n}\n\n/**\n * Bounds that fit marker coordinates with padding, derived from\n * `regionFromCoordinates` + `clampRegionToNZ`.\n */\nexport function boundsFromMapCoordinates(\n coords: readonly MapCoordinate[],\n): MapBoundsLiteral {\n if (coords.length === 0) {\n return boundsFromCenterAndSpan(DEFAULT_NZ_CENTER, DEFAULT_NZ_REGION_SPAN);\n }\n\n const region = clampRegionToNZ(\n regionFromCoordinates(\n coords,\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n ),\n );\n\n return regionToBounds(region);\n}\n\n/** Bounds for a single-marker map view. */\nexport function boundsForSingleMarker(coord: MapCoordinate): MapBoundsLiteral {\n return regionToBounds(regionForSingleMarker(coord));\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/map/constants.ts","../../src/map/coordinates.ts","../../src/map/region.ts","../../src/map/bounds.ts"],"sourcesContent":["import type { Region } from \"../types/global\";\n\n/** NZ map boundaries for clamping / full-country framing. */\nexport const NZ_MAP_BOUNDARIES = {\n northEast: { latitude: -33.9, longitude: 178.6 },\n southWest: { latitude: -47.5, longitude: 166.4 },\n} as const;\n\nconst NZ_BOUNDS_LAT_SPAN =\n NZ_MAP_BOUNDARIES.northEast.latitude - NZ_MAP_BOUNDARIES.southWest.latitude;\nconst NZ_BOUNDS_LNG_SPAN =\n NZ_MAP_BOUNDARIES.northEast.longitude - NZ_MAP_BOUNDARIES.southWest.longitude;\n\n/**\n * Default region (full NZ) used for \"All Regions\", empty markers, and max zoom-out.\n * Derived from `NZ_MAP_BOUNDARIES` so the whole country fits in view.\n */\nexport const DEFAULT_NZ_REGION: Region = {\n latitude:\n (NZ_MAP_BOUNDARIES.northEast.latitude +\n NZ_MAP_BOUNDARIES.southWest.latitude) /\n 2,\n latitudeDelta: NZ_BOUNDS_LAT_SPAN,\n longitude:\n (NZ_MAP_BOUNDARIES.northEast.longitude +\n NZ_MAP_BOUNDARIES.southWest.longitude) /\n 2,\n longitudeDelta: NZ_BOUNDS_LNG_SPAN,\n};\n\n/** Center of the default NZ region. */\nexport const DEFAULT_NZ_CENTER = {\n latitude: DEFAULT_NZ_REGION.latitude,\n longitude: DEFAULT_NZ_REGION.longitude,\n} as const;\n\n/** Max zoom-out span (degrees), matching the larger `DEFAULT_NZ_REGION` delta. */\nexport const DEFAULT_NZ_REGION_SPAN = Math.max(\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n);\n\n/** Region span for a single-marker map view. */\nexport const SINGLE_MARKER_DELTA = 2;\n\n/** Padding added when fitting coordinates into a region or bounds. */\nexport const BOUNDS_PADDING = 0.15;\n\n/** Minimum lat/lng span when fitting coordinates. */\nexport const MIN_REGION_SPAN = 0.5;\n","import type { MapCoordinate } from \"./types\";\n\nexport function hasValidMapCoordinate(\n location:\n | { latitude?: number | null; longitude?: number | null }\n | null\n | undefined,\n): location is MapCoordinate {\n if (!location) {\n return false;\n }\n\n return (\n typeof location.latitude === \"number\" &&\n typeof location.longitude === \"number\" &&\n Number.isFinite(location.latitude) &&\n Number.isFinite(location.longitude)\n );\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n BOUNDS_PADDING,\n DEFAULT_NZ_REGION,\n MIN_REGION_SPAN,\n NZ_MAP_BOUNDARIES,\n SINGLE_MARKER_DELTA,\n} from \"./constants\";\nimport type { MapCoordinate } from \"./types\";\n\nexport function isValidRegion(region: Region | undefined): region is Region {\n return (\n !!region &&\n typeof region.latitude === \"number\" &&\n typeof region.longitude === \"number\" &&\n Number.isFinite(region.latitude) &&\n Number.isFinite(region.longitude) &&\n typeof region.latitudeDelta === \"number\" &&\n typeof region.longitudeDelta === \"number\" &&\n Number.isFinite(region.latitudeDelta) &&\n Number.isFinite(region.longitudeDelta) &&\n region.latitude >= -85 &&\n region.latitude <= 85 &&\n region.longitude >= -180 &&\n region.longitude <= 180 &&\n region.latitudeDelta > 0 &&\n region.longitudeDelta > 0 &&\n region.latitudeDelta <= 180 &&\n region.longitudeDelta <= 360\n );\n}\n\nexport function isSameRegion(next: Region, current: Region): boolean {\n const epsilon = 0.0001;\n return (\n Math.abs(next.latitude - current.latitude) < epsilon &&\n Math.abs(next.longitude - current.longitude) < epsilon &&\n Math.abs(next.latitudeDelta - current.latitudeDelta) < epsilon &&\n Math.abs(next.longitudeDelta - current.longitudeDelta) < epsilon\n );\n}\n\n/**\n * Region that fits all coordinates with padding; deltas are clamped between a minimum\n * and maxLatitudeDelta / maxLongitudeDelta (e.g. DEFAULT_NZ_REGION deltas).\n * Caller must pass a non-empty coords array.\n */\nexport function regionFromCoordinates(\n coords: readonly MapCoordinate[],\n maxLatitudeDelta: number = DEFAULT_NZ_REGION.latitudeDelta,\n maxLongitudeDelta: number = DEFAULT_NZ_REGION.longitudeDelta,\n): Region {\n const lats = coords.map((coord) => coord.latitude);\n const lngs = coords.map((coord) => coord.longitude);\n const minLat = Math.min(...lats);\n const maxLat = Math.max(...lats);\n const minLng = Math.min(...lngs);\n const maxLng = Math.max(...lngs);\n\n let latDelta = maxLat - minLat + BOUNDS_PADDING;\n let lngDelta = maxLng - minLng + BOUNDS_PADDING;\n latDelta = Math.max(MIN_REGION_SPAN, latDelta);\n lngDelta = Math.max(MIN_REGION_SPAN, lngDelta);\n latDelta = Math.min(latDelta, maxLatitudeDelta);\n lngDelta = Math.min(lngDelta, maxLongitudeDelta);\n\n return {\n latitude: (minLat + maxLat) / 2,\n latitudeDelta: latDelta,\n longitude: (minLng + maxLng) / 2,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Clamp region to NZ: pan inside boundaries, zoom out at most to DEFAULT_NZ_REGION. */\nexport function clampRegionToNZ(region: Region): Region {\n const { northEast, southWest } = NZ_MAP_BOUNDARIES;\n const maxLatDelta = DEFAULT_NZ_REGION.latitudeDelta;\n const maxLngDelta = DEFAULT_NZ_REGION.longitudeDelta;\n\n const latDelta = Math.min(region.latitudeDelta, maxLatDelta);\n const lngDelta = Math.min(region.longitudeDelta, maxLngDelta);\n\n const halfLat = latDelta / 2;\n const halfLng = lngDelta / 2;\n const minLat = southWest.latitude + halfLat;\n const maxLat = northEast.latitude - halfLat;\n const minLng = southWest.longitude + halfLng;\n const maxLng = northEast.longitude - halfLng;\n\n const latitude = Math.max(minLat, Math.min(maxLat, region.latitude));\n const longitude = Math.max(minLng, Math.min(maxLng, region.longitude));\n\n return {\n latitude,\n latitudeDelta: latDelta,\n longitude,\n longitudeDelta: lngDelta,\n };\n}\n\n/** Region centered on one coordinate with the standard single-marker zoom level. */\nexport function regionForSingleMarker(coord: MapCoordinate): Region {\n return clampRegionToNZ({\n latitude: coord.latitude,\n latitudeDelta: SINGLE_MARKER_DELTA,\n longitude: coord.longitude,\n longitudeDelta: SINGLE_MARKER_DELTA,\n });\n}\n","import type { Region } from \"../types/global\";\n\nimport {\n DEFAULT_NZ_CENTER,\n DEFAULT_NZ_REGION,\n DEFAULT_NZ_REGION_SPAN,\n} from \"./constants\";\nimport {\n clampRegionToNZ,\n regionForSingleMarker,\n regionFromCoordinates,\n} from \"./region\";\nimport type { MapBoundsLiteral, MapCoordinate } from \"./types\";\n\nexport function regionToBounds(region: Region): MapBoundsLiteral {\n const halfLat = region.latitudeDelta / 2;\n const halfLng = region.longitudeDelta / 2;\n\n return {\n east: region.longitude + halfLng,\n north: region.latitude + halfLat,\n south: region.latitude - halfLat,\n west: region.longitude - halfLng,\n };\n}\n\nexport function boundsToRegion(bounds: MapBoundsLiteral): Region {\n return {\n latitude: (bounds.north + bounds.south) / 2,\n latitudeDelta: bounds.north - bounds.south,\n longitude: (bounds.east + bounds.west) / 2,\n longitudeDelta: bounds.east - bounds.west,\n };\n}\n\n/** Clamp map bounds to NZ, matching `clampRegionToNZ` behavior. */\nexport function clampBoundsToNZ(bounds: MapBoundsLiteral): MapBoundsLiteral {\n return regionToBounds(clampRegionToNZ(boundsToRegion(bounds)));\n}\n\nfunction boundsFromCenterAndSpan(\n center: MapCoordinate,\n span: number,\n): MapBoundsLiteral {\n return clampBoundsToNZ({\n east: center.longitude + span / 2,\n north: center.latitude + span / 2,\n south: center.latitude - span / 2,\n west: center.longitude - span / 2,\n });\n}\n\n/**\n * Bounds that fit marker coordinates with padding, derived from\n * `regionFromCoordinates` + `clampRegionToNZ`.\n */\nexport function boundsFromMapCoordinates(\n coords: readonly MapCoordinate[],\n): MapBoundsLiteral {\n if (coords.length === 0) {\n return boundsFromCenterAndSpan(DEFAULT_NZ_CENTER, DEFAULT_NZ_REGION_SPAN);\n }\n\n const region = clampRegionToNZ(\n regionFromCoordinates(\n coords,\n DEFAULT_NZ_REGION.latitudeDelta,\n DEFAULT_NZ_REGION.longitudeDelta,\n ),\n );\n\n return regionToBounds(region);\n}\n\n/** Bounds for a single-marker map view. */\nexport function boundsForSingleMarker(coord: MapCoordinate): MapBoundsLiteral {\n return regionToBounds(regionForSingleMarker(coord));\n}\n"],"mappings":"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","names":[]}
@@ -1,9 +1,14 @@
1
- import { EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.js';
2
- import { a4 as LocationGeoType } from './global-fKbMmluy.js';
1
+ import { EnumResourceType, EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.js';
2
+ import { a5 as LocationGeoType } from './global-CUYYxpy2.js';
3
+
4
+ interface AdminUpdateResourceType {
5
+ active: boolean;
6
+ resourceId: string;
7
+ resourceType: EnumResourceType;
8
+ }
3
9
 
4
10
  type ParticipantType = {
5
11
  active: boolean;
6
- isAssociate?: boolean | null;
7
12
  userAvatar: string | null;
8
13
  userEmail: string;
9
14
  userId: string;
@@ -122,4 +127,4 @@ type ResourceActivityInputType = {
122
127
  activity: Omit<ResourceActivityEntry, "timestamp">;
123
128
  };
124
129
 
125
- export { type ChatType as C, EnumActivity as E, type NotificationCount as N, type ParticipantType as P, type ReportChatUser as R, type NotificationType as a, type ResourceActivityType as b, type ChatMessageInput as c, type ChatMessageReaction as d, type ChatMessageReplyPreview as e, type ChatMessageSeen as f, type ChatMessageType as g, type CreateBulkNotificationInput as h, type NotificationDataType as i, type ResourceActivityEntry as j, type ResourceActivityInputType as k };
130
+ export { type AdminUpdateResourceType as A, type ChatType as C, EnumActivity as E, type NotificationType as N, type ParticipantType as P, type ReportChatUser as R, type NotificationCount as a, type ResourceActivityType as b, type ChatMessageInput as c, type ChatMessageReaction as d, type ChatMessageReplyPreview as e, type ChatMessageSeen as f, type ChatMessageType as g, type CreateBulkNotificationInput as h, type NotificationDataType as i, type ResourceActivityEntry as j, type ResourceActivityInputType as k };
@@ -1,9 +1,14 @@
1
- import { EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.mjs';
2
- import { a4 as LocationGeoType } from './global-BUUfmCo7.mjs';
1
+ import { EnumResourceType, EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.mjs';
2
+ import { a5 as LocationGeoType } from './global-DePDtOFt.mjs';
3
+
4
+ interface AdminUpdateResourceType {
5
+ active: boolean;
6
+ resourceId: string;
7
+ resourceType: EnumResourceType;
8
+ }
3
9
 
4
10
  type ParticipantType = {
5
11
  active: boolean;
6
- isAssociate?: boolean | null;
7
12
  userAvatar: string | null;
8
13
  userEmail: string;
9
14
  userId: string;
@@ -122,4 +127,4 @@ type ResourceActivityInputType = {
122
127
  activity: Omit<ResourceActivityEntry, "timestamp">;
123
128
  };
124
129
 
125
- export { type ChatType as C, EnumActivity as E, type NotificationCount as N, type ParticipantType as P, type ReportChatUser as R, type NotificationType as a, type ResourceActivityType as b, type ChatMessageInput as c, type ChatMessageReaction as d, type ChatMessageReplyPreview as e, type ChatMessageSeen as f, type ChatMessageType as g, type CreateBulkNotificationInput as h, type NotificationDataType as i, type ResourceActivityEntry as j, type ResourceActivityInputType as k };
130
+ export { type AdminUpdateResourceType as A, type ChatType as C, EnumActivity as E, type NotificationType as N, type ParticipantType as P, type ReportChatUser as R, type NotificationCount as a, type ResourceActivityType as b, type ChatMessageInput as c, type ChatMessageReaction as d, type ChatMessageReplyPreview as e, type ChatMessageSeen as f, type ChatMessageType as g, type CreateBulkNotificationInput as h, type NotificationDataType as i, type ResourceActivityEntry as j, type ResourceActivityInputType as k };