@timardex/cluemart-shared 1.6.112 → 1.7.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 (145) hide show
  1. package/dist/ad-CVkVX_z5.d.ts +296 -0
  2. package/dist/ad-DA9ECAhK.d.mts +296 -0
  3. package/dist/affiliate-1RtkLnLP.d.ts +35 -0
  4. package/dist/affiliate-Cos2Syz5.d.mts +35 -0
  5. package/dist/{chunk-R6PCFOYO.mjs → chunk-HZMP7GXC.mjs} +2628 -948
  6. package/dist/chunk-HZMP7GXC.mjs.map +1 -0
  7. package/dist/{chunk-X3OLM35T.mjs → chunk-KZTOISPA.mjs} +8 -14
  8. package/dist/chunk-KZTOISPA.mjs.map +1 -0
  9. package/dist/{chunk-ILILH7E2.mjs → chunk-MVQ3CFQR.mjs} +23 -12
  10. package/dist/chunk-MVQ3CFQR.mjs.map +1 -0
  11. package/dist/{chunk-AYO3E4DM.mjs → chunk-RKIRWZCH.mjs} +183 -39
  12. package/dist/chunk-RKIRWZCH.mjs.map +1 -0
  13. package/dist/{chunk-LBEJECG3.mjs → chunk-TAECMXM4.mjs} +219 -249
  14. package/dist/{chunk-LBEJECG3.mjs.map → chunk-TAECMXM4.mjs.map} +1 -1
  15. package/dist/{chunk-BIJ5NDXW.mjs → chunk-ZZJSCYJK.mjs} +42 -46
  16. package/dist/chunk-ZZJSCYJK.mjs.map +1 -0
  17. package/dist/{contactUs-CBWzefUS.d.mts → contactUs-DGrDzJaM.d.mts} +1 -1
  18. package/dist/{contactUs--NoohZBu.d.ts → contactUs-H7799pWe.d.ts} +1 -1
  19. package/dist/enums/index.cjs +7 -13
  20. package/dist/enums/index.cjs.map +1 -1
  21. package/dist/enums/index.d.mts +9 -15
  22. package/dist/enums/index.d.ts +9 -15
  23. package/dist/enums/index.mjs +1 -1
  24. package/dist/formFields/index.cjs +73 -136
  25. package/dist/formFields/index.cjs.map +1 -1
  26. package/dist/formFields/index.d.mts +2 -3
  27. package/dist/formFields/index.d.ts +2 -3
  28. package/dist/formFields/index.mjs +4 -9
  29. package/dist/{global-DePDtOFt.d.mts → global-BUUfmCo7.d.mts} +11 -12
  30. package/dist/{global-CUYYxpy2.d.ts → global-fKbMmluy.d.ts} +11 -12
  31. package/dist/graphql/index.cjs +1251 -694
  32. package/dist/graphql/index.cjs.map +1 -1
  33. package/dist/graphql/index.d.mts +173 -423
  34. package/dist/graphql/index.d.ts +173 -423
  35. package/dist/graphql/index.mjs +21 -33
  36. package/dist/hooks/index.cjs +306 -936
  37. package/dist/hooks/index.cjs.map +1 -1
  38. package/dist/hooks/index.d.mts +4 -10
  39. package/dist/hooks/index.d.ts +4 -10
  40. package/dist/hooks/index.mjs +58 -170
  41. package/dist/hooks/index.mjs.map +1 -1
  42. package/dist/images/apple-maps-icon.webp.d.ts +1 -8
  43. package/dist/images/banner-horizontal.webp.d.ts +1 -8
  44. package/dist/images/banner-vertical.webp.d.ts +1 -8
  45. package/dist/images/cluiTui.webp.d.ts +1 -8
  46. package/dist/images/corporate.webp.d.ts +1 -8
  47. package/dist/images/facebook.webp.d.ts +1 -8
  48. package/dist/images/gazebo-top.webp.d.ts +1 -8
  49. package/dist/images/google-maps-icon.webp.d.ts +1 -8
  50. package/dist/images/googleMaps-logo-dark.webp.d.ts +1 -8
  51. package/dist/images/googleMaps-logo-light.webp.d.ts +1 -8
  52. package/dist/images/instagram.webp.d.ts +1 -8
  53. package/dist/images/logo-atr.webp.d.ts +1 -8
  54. package/dist/images/logo-dark.webp.d.ts +1 -8
  55. package/dist/images/logo.webp.d.ts +1 -8
  56. package/dist/images/meet.webp.d.ts +1 -8
  57. package/dist/images/mini-market1.webp.d.ts +1 -8
  58. package/dist/images/mini-market2.webp.d.ts +1 -8
  59. package/dist/images/mini-market3.webp.d.ts +1 -8
  60. package/dist/images/mini-market4.webp.d.ts +1 -8
  61. package/dist/images/mini-market5.webp.d.ts +1 -8
  62. package/dist/images/poll.webp.d.ts +1 -8
  63. package/dist/images/poster1.webp.d.ts +1 -8
  64. package/dist/images/poster2.webp.d.ts +1 -8
  65. package/dist/images/poster3.webp.d.ts +1 -8
  66. package/dist/images/poster4.webp.d.ts +1 -8
  67. package/dist/images/private.webp.d.ts +1 -8
  68. package/dist/images/qr-code.webp.d.ts +1 -8
  69. package/dist/images/school.webp.d.ts +1 -8
  70. package/dist/images/sima.webp.d.ts +1 -8
  71. package/dist/images/store-android.webp.d.ts +1 -8
  72. package/dist/images/store-ios.webp.d.ts +1 -8
  73. package/dist/images/tablas.webp.d.ts +1 -8
  74. package/dist/images/telefonos.webp.d.ts +1 -8
  75. package/dist/images/tiktok.webp.d.ts +1 -8
  76. package/dist/images/tip.webp.d.ts +1 -8
  77. package/dist/images/ugralos.webp.d.ts +1 -8
  78. package/dist/images/waze-maps-icon.webp.d.ts +1 -8
  79. package/dist/images/website.webp.d.ts +1 -8
  80. package/dist/images/youtube.webp.d.ts +1 -8
  81. package/dist/index.cjs +1673 -1623
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.mts +240 -654
  84. package/dist/index.d.ts +240 -654
  85. package/dist/index.mjs +1672 -1585
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/map/index.cjs +9 -14
  88. package/dist/map/index.cjs.map +1 -1
  89. package/dist/map/index.d.mts +13 -16
  90. package/dist/map/index.d.ts +13 -16
  91. package/dist/map/index.mjs +9 -14
  92. package/dist/map/index.mjs.map +1 -1
  93. package/dist/{resourceActivities-CMUcn2P7.d.ts → resourceActivities-BL_12IAo.d.ts} +4 -9
  94. package/dist/{resourceActivities-CwbJFGIp.d.mts → resourceActivities-zczOntNk.d.mts} +4 -9
  95. package/dist/sharing/index.cjs +1252 -39
  96. package/dist/sharing/index.cjs.map +1 -1
  97. package/dist/sharing/index.d.mts +5 -17
  98. package/dist/sharing/index.d.ts +5 -17
  99. package/dist/sharing/index.mjs +30 -34
  100. package/dist/types/index.cjs +2 -15
  101. package/dist/types/index.cjs.map +1 -1
  102. package/dist/types/index.d.mts +23 -10
  103. package/dist/types/index.d.ts +23 -10
  104. package/dist/types/index.mjs +5 -9
  105. package/dist/utils/index.cjs +136 -355
  106. package/dist/utils/index.cjs.map +1 -1
  107. package/dist/utils/index.d.mts +35 -87
  108. package/dist/utils/index.d.ts +35 -87
  109. package/dist/utils/index.mjs +15 -42
  110. package/package.json +10 -31
  111. package/dist/ad-BUYzE6zx.d.ts +0 -181
  112. package/dist/ad-BhLoEul3.d.mts +0 -181
  113. package/dist/affiliate-BbtjeUP4.d.mts +0 -73
  114. package/dist/affiliate-C51nzKsw.d.ts +0 -73
  115. package/dist/apollo/index.cjs +0 -1383
  116. package/dist/apollo/index.cjs.map +0 -1
  117. package/dist/apollo/index.d.mts +0 -323
  118. package/dist/apollo/index.d.ts +0 -323
  119. package/dist/apollo/index.mjs +0 -1295
  120. package/dist/apollo/index.mjs.map +0 -1
  121. package/dist/auth/index.cjs +0 -1727
  122. package/dist/auth/index.cjs.map +0 -1
  123. package/dist/auth/index.d.mts +0 -166
  124. package/dist/auth/index.d.ts +0 -166
  125. package/dist/auth/index.mjs +0 -380
  126. package/dist/auth/index.mjs.map +0 -1
  127. package/dist/chunk-32MKHJTX.mjs +0 -1207
  128. package/dist/chunk-32MKHJTX.mjs.map +0 -1
  129. package/dist/chunk-AYO3E4DM.mjs.map +0 -1
  130. package/dist/chunk-BIJ5NDXW.mjs.map +0 -1
  131. package/dist/chunk-DQ7ZHIXW.mjs +0 -26
  132. package/dist/chunk-DQ7ZHIXW.mjs.map +0 -1
  133. package/dist/chunk-ILILH7E2.mjs.map +0 -1
  134. package/dist/chunk-R6PCFOYO.mjs.map +0 -1
  135. package/dist/chunk-RAYUJODN.mjs +0 -45
  136. package/dist/chunk-RAYUJODN.mjs.map +0 -1
  137. package/dist/chunk-SD42WIMV.mjs +0 -297
  138. package/dist/chunk-SD42WIMV.mjs.map +0 -1
  139. package/dist/chunk-VPANTTZI.mjs +0 -262
  140. package/dist/chunk-VPANTTZI.mjs.map +0 -1
  141. package/dist/chunk-X3OLM35T.mjs.map +0 -1
  142. package/dist/subscription-BU8GvH2K.d.ts +0 -12
  143. package/dist/subscription-bmAdrnfi.d.mts +0 -12
  144. package/dist/user-D47MLFyH.d.ts +0 -134
  145. package/dist/user-DE8edl3u.d.mts +0 -134
@@ -42,27 +42,22 @@ __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;
51
45
  var DEFAULT_NZ_REGION = {
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
46
+ latitude: -41.2865,
47
+ latitudeDelta: 5,
48
+ longitude: 174.7762,
49
+ longitudeDelta: 5
56
50
  };
57
51
  var DEFAULT_NZ_CENTER = {
58
52
  latitude: DEFAULT_NZ_REGION.latitude,
59
53
  longitude: DEFAULT_NZ_REGION.longitude
60
54
  };
61
- var DEFAULT_NZ_REGION_SPAN = Math.max(
62
- DEFAULT_NZ_REGION.latitudeDelta,
63
- DEFAULT_NZ_REGION.longitudeDelta
64
- );
55
+ var DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;
65
56
  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
+ };
66
61
  var BOUNDS_PADDING = 0.15;
67
62
  var MIN_REGION_SPAN = 0.5;
68
63
 
@@ -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/** 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
+ {"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,8 +1,19 @@
1
- import { y as Region } from '../global-DePDtOFt.mjs';
1
+ import { x as Region } from '../global-BUUfmCo7.mjs';
2
2
  import 'react-hook-form';
3
3
  import '../enums/index.mjs';
4
4
 
5
- /** NZ map boundaries for clamping / full-country framing. */
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. */
6
17
  declare const NZ_MAP_BOUNDARIES: {
7
18
  readonly northEast: {
8
19
  readonly latitude: -33.9;
@@ -13,20 +24,6 @@ declare const NZ_MAP_BOUNDARIES: {
13
24
  readonly longitude: 166.4;
14
25
  };
15
26
  };
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;
30
27
  /** Padding added when fitting coordinates into a region or bounds. */
31
28
  declare const BOUNDS_PADDING = 0.15;
32
29
  /** Minimum lat/lng span when fitting coordinates. */
@@ -1,8 +1,19 @@
1
- import { y as Region } from '../global-CUYYxpy2.js';
1
+ import { x as Region } from '../global-fKbMmluy.js';
2
2
  import 'react-hook-form';
3
3
  import '../enums/index.js';
4
4
 
5
- /** NZ map boundaries for clamping / full-country framing. */
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. */
6
17
  declare const NZ_MAP_BOUNDARIES: {
7
18
  readonly northEast: {
8
19
  readonly latitude: -33.9;
@@ -13,20 +24,6 @@ declare const NZ_MAP_BOUNDARIES: {
13
24
  readonly longitude: 166.4;
14
25
  };
15
26
  };
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;
30
27
  /** Padding added when fitting coordinates into a region or bounds. */
31
28
  declare const BOUNDS_PADDING = 0.15;
32
29
  /** Minimum lat/lng span when fitting coordinates. */
@@ -1,25 +1,20 @@
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;
8
2
  var DEFAULT_NZ_REGION = {
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
3
+ latitude: -41.2865,
4
+ latitudeDelta: 5,
5
+ longitude: 174.7762,
6
+ longitudeDelta: 5
13
7
  };
14
8
  var DEFAULT_NZ_CENTER = {
15
9
  latitude: DEFAULT_NZ_REGION.latitude,
16
10
  longitude: DEFAULT_NZ_REGION.longitude
17
11
  };
18
- var DEFAULT_NZ_REGION_SPAN = Math.max(
19
- DEFAULT_NZ_REGION.latitudeDelta,
20
- DEFAULT_NZ_REGION.longitudeDelta
21
- );
12
+ var DEFAULT_NZ_REGION_SPAN = DEFAULT_NZ_REGION.latitudeDelta;
22
13
  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
+ };
23
18
  var BOUNDS_PADDING = 0.15;
24
19
  var MIN_REGION_SPAN = 0.5;
25
20
 
@@ -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/** 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
+ {"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":";AAGO,IAAM,oBAA4B;AAAA,EACvC,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW;AAAA,EACX,gBAAgB;AAClB;AAGO,IAAM,oBAAoB;AAAA,EAC/B,UAAU,kBAAkB;AAAA,EAC5B,WAAW,kBAAkB;AAC/B;AAGO,IAAM,yBAAyB,kBAAkB;AAGjD,IAAM,sBAAsB;AAG5B,IAAM,oBAAoB;AAAA,EAC/B,WAAW,EAAE,UAAU,OAAO,WAAW,MAAM;AAAA,EAC/C,WAAW,EAAE,UAAU,OAAO,WAAW,MAAM;AACjD;AAGO,IAAM,iBAAiB;AAGvB,IAAM,kBAAkB;;;AC9BxB,SAAS,sBACd,UAI2B;AAC3B,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SACE,OAAO,SAAS,aAAa,YAC7B,OAAO,SAAS,cAAc,YAC9B,OAAO,SAAS,SAAS,QAAQ,KACjC,OAAO,SAAS,SAAS,SAAS;AAEtC;;;ACPO,SAAS,cAAc,QAA8C;AAC1E,SACE,CAAC,CAAC,UACF,OAAO,OAAO,aAAa,YAC3B,OAAO,OAAO,cAAc,YAC5B,OAAO,SAAS,OAAO,QAAQ,KAC/B,OAAO,SAAS,OAAO,SAAS,KAChC,OAAO,OAAO,kBAAkB,YAChC,OAAO,OAAO,mBAAmB,YACjC,OAAO,SAAS,OAAO,aAAa,KACpC,OAAO,SAAS,OAAO,cAAc,KACrC,OAAO,YAAY,OACnB,OAAO,YAAY,MACnB,OAAO,aAAa,QACpB,OAAO,aAAa,OACpB,OAAO,gBAAgB,KACvB,OAAO,iBAAiB,KACxB,OAAO,iBAAiB,OACxB,OAAO,kBAAkB;AAE7B;AAEO,SAAS,aAAa,MAAc,SAA0B;AACnE,QAAM,UAAU;AAChB,SACE,KAAK,IAAI,KAAK,WAAW,QAAQ,QAAQ,IAAI,WAC7C,KAAK,IAAI,KAAK,YAAY,QAAQ,SAAS,IAAI,WAC/C,KAAK,IAAI,KAAK,gBAAgB,QAAQ,aAAa,IAAI,WACvD,KAAK,IAAI,KAAK,iBAAiB,QAAQ,cAAc,IAAI;AAE7D;AAOO,SAAS,sBACd,QACA,mBAA2B,kBAAkB,eAC7C,oBAA4B,kBAAkB,gBACtC;AACR,QAAM,OAAO,OAAO,IAAI,CAAC,UAAU,MAAM,QAAQ;AACjD,QAAM,OAAO,OAAO,IAAI,CAAC,UAAU,MAAM,SAAS;AAClD,QAAM,SAAS,KAAK,IAAI,GAAG,IAAI;AAC/B,QAAM,SAAS,KAAK,IAAI,GAAG,IAAI;AAC/B,QAAM,SAAS,KAAK,IAAI,GAAG,IAAI;AAC/B,QAAM,SAAS,KAAK,IAAI,GAAG,IAAI;AAE/B,MAAI,WAAW,SAAS,SAAS;AACjC,MAAI,WAAW,SAAS,SAAS;AACjC,aAAW,KAAK,IAAI,iBAAiB,QAAQ;AAC7C,aAAW,KAAK,IAAI,iBAAiB,QAAQ;AAC7C,aAAW,KAAK,IAAI,UAAU,gBAAgB;AAC9C,aAAW,KAAK,IAAI,UAAU,iBAAiB;AAE/C,SAAO;AAAA,IACL,WAAW,SAAS,UAAU;AAAA,IAC9B,eAAe;AAAA,IACf,YAAY,SAAS,UAAU;AAAA,IAC/B,gBAAgB;AAAA,EAClB;AACF;AAGO,SAAS,gBAAgB,QAAwB;AACtD,QAAM,EAAE,WAAW,UAAU,IAAI;AACjC,QAAM,cAAc,kBAAkB;AACtC,QAAM,cAAc,kBAAkB;AAEtC,QAAM,WAAW,KAAK,IAAI,OAAO,eAAe,WAAW;AAC3D,QAAM,WAAW,KAAK,IAAI,OAAO,gBAAgB,WAAW;AAE5D,QAAM,UAAU,WAAW;AAC3B,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,UAAU,WAAW;AACpC,QAAM,SAAS,UAAU,WAAW;AACpC,QAAM,SAAS,UAAU,YAAY;AACrC,QAAM,SAAS,UAAU,YAAY;AAErC,QAAM,WAAW,KAAK,IAAI,QAAQ,KAAK,IAAI,QAAQ,OAAO,QAAQ,CAAC;AACnE,QAAM,YAAY,KAAK,IAAI,QAAQ,KAAK,IAAI,QAAQ,OAAO,SAAS,CAAC;AAErE,SAAO;AAAA,IACL;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA,gBAAgB;AAAA,EAClB;AACF;AAGO,SAAS,sBAAsB,OAA8B;AAClE,SAAO,gBAAgB;AAAA,IACrB,UAAU,MAAM;AAAA,IAChB,eAAe;AAAA,IACf,WAAW,MAAM;AAAA,IACjB,gBAAgB;AAAA,EAClB,CAAC;AACH;;;AChGO,SAAS,eAAe,QAAkC;AAC/D,QAAM,UAAU,OAAO,gBAAgB;AACvC,QAAM,UAAU,OAAO,iBAAiB;AAExC,SAAO;AAAA,IACL,MAAM,OAAO,YAAY;AAAA,IACzB,OAAO,OAAO,WAAW;AAAA,IACzB,OAAO,OAAO,WAAW;AAAA,IACzB,MAAM,OAAO,YAAY;AAAA,EAC3B;AACF;AAEO,SAAS,eAAe,QAAkC;AAC/D,SAAO;AAAA,IACL,WAAW,OAAO,QAAQ,OAAO,SAAS;AAAA,IAC1C,eAAe,OAAO,QAAQ,OAAO;AAAA,IACrC,YAAY,OAAO,OAAO,OAAO,QAAQ;AAAA,IACzC,gBAAgB,OAAO,OAAO,OAAO;AAAA,EACvC;AACF;AAGO,SAAS,gBAAgB,QAA4C;AAC1E,SAAO,eAAe,gBAAgB,eAAe,MAAM,CAAC,CAAC;AAC/D;AAEA,SAAS,wBACP,QACA,MACkB;AAClB,SAAO,gBAAgB;AAAA,IACrB,MAAM,OAAO,YAAY,OAAO;AAAA,IAChC,OAAO,OAAO,WAAW,OAAO;AAAA,IAChC,OAAO,OAAO,WAAW,OAAO;AAAA,IAChC,MAAM,OAAO,YAAY,OAAO;AAAA,EAClC,CAAC;AACH;AAMO,SAAS,yBACd,QACkB;AAClB,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO,wBAAwB,mBAAmB,sBAAsB;AAAA,EAC1E;AAEA,QAAM,SAAS;AAAA,IACb;AAAA,MACE;AAAA,MACA,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAEA,SAAO,eAAe,MAAM;AAC9B;AAGO,SAAS,sBAAsB,OAAwC;AAC5E,SAAO,eAAe,sBAAsB,KAAK,CAAC;AACpD;","names":[]}
@@ -1,14 +1,9 @@
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
- }
1
+ import { EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.js';
2
+ import { a4 as LocationGeoType } from './global-fKbMmluy.js';
9
3
 
10
4
  type ParticipantType = {
11
5
  active: boolean;
6
+ isAssociate?: boolean | null;
12
7
  userAvatar: string | null;
13
8
  userEmail: string;
14
9
  userId: string;
@@ -127,4 +122,4 @@ type ResourceActivityInputType = {
127
122
  activity: Omit<ResourceActivityEntry, "timestamp">;
128
123
  };
129
124
 
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 };
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 };
@@ -1,14 +1,9 @@
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
- }
1
+ import { EnumChatType, EnumChatReportReason, EnumNotificationType, EnumNotificationResourceType, EnumResourceType, EnumEventDateStatus, EnumOSPlatform } from './enums/index.mjs';
2
+ import { a4 as LocationGeoType } from './global-BUUfmCo7.mjs';
9
3
 
10
4
  type ParticipantType = {
11
5
  active: boolean;
6
+ isAssociate?: boolean | null;
12
7
  userAvatar: string | null;
13
8
  userEmail: string;
14
9
  userId: string;
@@ -127,4 +122,4 @@ type ResourceActivityInputType = {
127
122
  activity: Omit<ResourceActivityEntry, "timestamp">;
128
123
  };
129
124
 
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 };
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 };