@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.
- package/dist/ad-BUYzE6zx.d.ts +181 -0
- package/dist/ad-BhLoEul3.d.mts +181 -0
- package/dist/affiliate-BbtjeUP4.d.mts +73 -0
- package/dist/affiliate-C51nzKsw.d.ts +73 -0
- package/dist/apollo/index.cjs +1383 -0
- package/dist/apollo/index.cjs.map +1 -0
- package/dist/apollo/index.d.mts +323 -0
- package/dist/apollo/index.d.ts +323 -0
- package/dist/apollo/index.mjs +1295 -0
- package/dist/apollo/index.mjs.map +1 -0
- package/dist/auth/index.cjs +1727 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.mts +166 -0
- package/dist/auth/index.d.ts +166 -0
- package/dist/auth/index.mjs +380 -0
- package/dist/auth/index.mjs.map +1 -0
- package/dist/chunk-32MKHJTX.mjs +1207 -0
- package/dist/chunk-32MKHJTX.mjs.map +1 -0
- package/dist/{chunk-HZMP7GXC.mjs → chunk-447EYKHL.mjs} +1010 -2671
- package/dist/chunk-447EYKHL.mjs.map +1 -0
- package/dist/{chunk-RKIRWZCH.mjs → chunk-AYO3E4DM.mjs} +39 -183
- package/dist/chunk-AYO3E4DM.mjs.map +1 -0
- package/dist/{chunk-ZZJSCYJK.mjs → chunk-BIJ5NDXW.mjs} +46 -42
- package/dist/chunk-BIJ5NDXW.mjs.map +1 -0
- package/dist/chunk-DQ7ZHIXW.mjs +26 -0
- package/dist/chunk-DQ7ZHIXW.mjs.map +1 -0
- package/dist/{chunk-MVQ3CFQR.mjs → chunk-ILILH7E2.mjs} +12 -23
- package/dist/chunk-ILILH7E2.mjs.map +1 -0
- package/dist/{chunk-TAECMXM4.mjs → chunk-LBEJECG3.mjs} +249 -219
- package/dist/{chunk-TAECMXM4.mjs.map → chunk-LBEJECG3.mjs.map} +1 -1
- package/dist/chunk-RAYUJODN.mjs +45 -0
- package/dist/chunk-RAYUJODN.mjs.map +1 -0
- package/dist/chunk-SD42WIMV.mjs +297 -0
- package/dist/chunk-SD42WIMV.mjs.map +1 -0
- package/dist/chunk-VPANTTZI.mjs +262 -0
- package/dist/chunk-VPANTTZI.mjs.map +1 -0
- package/dist/{chunk-KZTOISPA.mjs → chunk-X3OLM35T.mjs} +14 -8
- package/dist/chunk-X3OLM35T.mjs.map +1 -0
- package/dist/{contactUs-H7799pWe.d.ts → contactUs--NoohZBu.d.ts} +1 -1
- package/dist/{contactUs-DGrDzJaM.d.mts → contactUs-CBWzefUS.d.mts} +1 -1
- package/dist/enums/index.cjs +13 -7
- package/dist/enums/index.cjs.map +1 -1
- package/dist/enums/index.d.mts +15 -9
- package/dist/enums/index.d.ts +15 -9
- package/dist/enums/index.mjs +1 -1
- package/dist/formFields/index.cjs +136 -73
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.d.mts +3 -2
- package/dist/formFields/index.d.ts +3 -2
- package/dist/formFields/index.mjs +9 -4
- package/dist/{global-fKbMmluy.d.ts → global-CUYYxpy2.d.ts} +12 -11
- package/dist/{global-BUUfmCo7.d.mts → global-DePDtOFt.d.mts} +12 -11
- package/dist/graphql/index.cjs +734 -1271
- package/dist/graphql/index.cjs.map +1 -1
- package/dist/graphql/index.d.mts +434 -176
- package/dist/graphql/index.d.ts +434 -176
- package/dist/graphql/index.mjs +37 -23
- package/dist/hooks/index.cjs +947 -309
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.mts +10 -4
- package/dist/hooks/index.d.ts +10 -4
- package/dist/hooks/index.mjs +170 -58
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/images/apple-maps-icon.webp.d.ts +8 -1
- package/dist/images/banner-horizontal.webp.d.ts +8 -1
- package/dist/images/banner-vertical.webp.d.ts +8 -1
- package/dist/images/cluiTui.webp.d.ts +8 -1
- package/dist/images/corporate.webp.d.ts +8 -1
- package/dist/images/facebook.webp.d.ts +8 -1
- package/dist/images/gazebo-top.webp.d.ts +8 -1
- package/dist/images/google-maps-icon.webp.d.ts +8 -1
- package/dist/images/googleMaps-logo-dark.webp.d.ts +8 -1
- package/dist/images/googleMaps-logo-light.webp.d.ts +8 -1
- package/dist/images/instagram.webp.d.ts +8 -1
- package/dist/images/logo-atr.webp.d.ts +8 -1
- package/dist/images/logo-dark.webp.d.ts +8 -1
- package/dist/images/logo.webp.d.ts +8 -1
- package/dist/images/meet.webp.d.ts +8 -1
- package/dist/images/mini-market1.webp.d.ts +8 -1
- package/dist/images/mini-market2.webp.d.ts +8 -1
- package/dist/images/mini-market3.webp.d.ts +8 -1
- package/dist/images/mini-market4.webp.d.ts +8 -1
- package/dist/images/mini-market5.webp.d.ts +8 -1
- package/dist/images/poll.webp.d.ts +8 -1
- package/dist/images/poster1.webp.d.ts +8 -1
- package/dist/images/poster2.webp.d.ts +8 -1
- package/dist/images/poster3.webp.d.ts +8 -1
- package/dist/images/poster4.webp.d.ts +8 -1
- package/dist/images/private.webp.d.ts +8 -1
- package/dist/images/qr-code.webp.d.ts +8 -1
- package/dist/images/school.webp.d.ts +8 -1
- package/dist/images/sima.webp.d.ts +8 -1
- package/dist/images/store-android.webp.d.ts +8 -1
- package/dist/images/store-ios.webp.d.ts +8 -1
- package/dist/images/tablas.webp.d.ts +8 -1
- package/dist/images/telefonos.webp.d.ts +8 -1
- package/dist/images/tiktok.webp.d.ts +8 -1
- package/dist/images/tip.webp.d.ts +8 -1
- package/dist/images/ugralos.webp.d.ts +8 -1
- package/dist/images/waze-maps-icon.webp.d.ts +8 -1
- package/dist/images/website.webp.d.ts +8 -1
- package/dist/images/youtube.webp.d.ts +8 -1
- package/dist/index.cjs +1751 -1781
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +665 -243
- package/dist/index.d.ts +665 -243
- package/dist/index.mjs +1711 -1779
- package/dist/index.mjs.map +1 -1
- package/dist/map/index.cjs +14 -9
- package/dist/map/index.cjs.map +1 -1
- package/dist/map/index.d.mts +16 -13
- package/dist/map/index.d.ts +16 -13
- package/dist/map/index.mjs +14 -9
- package/dist/map/index.mjs.map +1 -1
- package/dist/{resourceActivities-BL_12IAo.d.ts → resourceActivities-CMUcn2P7.d.ts} +9 -4
- package/dist/{resourceActivities-zczOntNk.d.mts → resourceActivities-CwbJFGIp.d.mts} +9 -4
- package/dist/sharing/index.cjs +39 -1252
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.d.mts +17 -5
- package/dist/sharing/index.d.ts +17 -5
- package/dist/sharing/index.mjs +34 -30
- package/dist/subscription-BU8GvH2K.d.ts +12 -0
- package/dist/subscription-bmAdrnfi.d.mts +12 -0
- package/dist/types/index.cjs +15 -2
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.mts +10 -23
- package/dist/types/index.d.ts +10 -23
- package/dist/types/index.mjs +9 -5
- package/dist/user-D47MLFyH.d.ts +134 -0
- package/dist/user-DE8edl3u.d.mts +134 -0
- package/dist/utils/index.cjs +355 -136
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +87 -35
- package/dist/utils/index.d.ts +87 -35
- package/dist/utils/index.mjs +42 -15
- package/package.json +31 -10
- package/dist/ad-CVkVX_z5.d.ts +0 -296
- package/dist/ad-DA9ECAhK.d.mts +0 -296
- package/dist/affiliate-1RtkLnLP.d.ts +0 -35
- package/dist/affiliate-Cos2Syz5.d.mts +0 -35
- package/dist/chunk-HZMP7GXC.mjs.map +0 -1
- package/dist/chunk-KZTOISPA.mjs.map +0 -1
- package/dist/chunk-MVQ3CFQR.mjs.map +0 -1
- package/dist/chunk-RKIRWZCH.mjs.map +0 -1
- package/dist/chunk-ZZJSCYJK.mjs.map +0 -1
package/dist/map/index.cjs
CHANGED
|
@@ -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:
|
|
47
|
-
latitudeDelta:
|
|
48
|
-
longitude:
|
|
49
|
-
longitudeDelta:
|
|
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 =
|
|
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
|
|
package/dist/map/index.cjs.map
CHANGED
|
@@ -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":[]}
|
package/dist/map/index.d.mts
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { y as Region } from '../global-DePDtOFt.mjs';
|
|
2
2
|
import 'react-hook-form';
|
|
3
3
|
import '../enums/index.mjs';
|
|
4
4
|
|
|
5
|
-
/**
|
|
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. */
|
package/dist/map/index.d.ts
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { y as Region } from '../global-CUYYxpy2.js';
|
|
2
2
|
import 'react-hook-form';
|
|
3
3
|
import '../enums/index.js';
|
|
4
4
|
|
|
5
|
-
/**
|
|
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. */
|
package/dist/map/index.mjs
CHANGED
|
@@ -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:
|
|
4
|
-
latitudeDelta:
|
|
5
|
-
longitude:
|
|
6
|
-
longitudeDelta:
|
|
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 =
|
|
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
|
|
package/dist/map/index.mjs.map
CHANGED
|
@@ -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,
|
|
2
|
-
import {
|
|
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
|
|
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,
|
|
2
|
-
import {
|
|
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
|
|
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 };
|