vue3-google-map 0.27.1 → 0.27.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.
@@ -3,7 +3,9 @@ export interface IAdvancedMarkerExposed {
3
3
  marker: Ref<google.maps.marker.AdvancedMarkerElement | undefined>;
4
4
  }
5
5
  export declare const markerEvents: readonly ["drag", "dragend", "dragstart", "gmp-click"];
6
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
8
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
7
9
  options: {
8
10
  type: PropType<google.maps.marker.AdvancedMarkerElementOptions>;
9
11
  required: true;
@@ -31,4 +33,3 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
31
33
  onDragstart?: ((...args: any[]) => any) | undefined;
32
34
  "onGmp-click"?: ((...args: any[]) => any) | undefined;
33
35
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
34
- export default _default;
@@ -1,6 +1,8 @@
1
1
  import { PropType, Ref } from "vue";
2
2
  import { IControlPosition } from "../@types/index";
3
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
5
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
6
  position: {
5
7
  type: PropType<IControlPosition>;
6
8
  required: true;
@@ -25,4 +27,3 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
25
27
  }>, {
26
28
  index: number;
27
29
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
28
- export default _default;
@@ -2,7 +2,9 @@ import { PropType, type Ref } from "vue";
2
2
  export interface ICustomMarkerExposed {
3
3
  customMarker: Ref<InstanceType<typeof google.maps.CustomMarker> | undefined>;
4
4
  }
5
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
8
  options: {
7
9
  type: PropType<google.maps.CustomMarkerOptions>;
8
10
  required: true;
@@ -25,4 +27,3 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
25
27
  required: true;
26
28
  };
27
29
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
28
- export default _default;
@@ -7,7 +7,7 @@ import { MarkerClusterer, MarkerClustererOptions } from "@googlemaps/markerclust
7
7
  * This provides immediate visual feedback while still batching rapid updates.
8
8
  */
9
9
  export declare class DebouncedMarkerClusterer extends MarkerClusterer {
10
- private readonly debouncedRender;
10
+ private debouncedRender;
11
11
  constructor(options: MarkerClustererOptions, debounceDelay?: number);
12
12
  addMarker(marker: google.maps.Marker | google.maps.marker.AdvancedMarkerElement, noDraw?: boolean): void;
13
13
  removeMarker(marker: google.maps.Marker | google.maps.marker.AdvancedMarkerElement, noDraw?: boolean): boolean;
@@ -16,5 +16,13 @@ export declare class DebouncedMarkerClusterer extends MarkerClusterer {
16
16
  clearMarkers(noDraw?: boolean): void;
17
17
  /** Renders immediately, canceling any pending debounced render. */
18
18
  render(): void;
19
+ /**
20
+ * Cancels any pending debounced render and replaces `debouncedRender` with a
21
+ * no-op so that calls arriving after destroy (e.g. `removeMarker` triggered
22
+ * by child components unmounting after `MarkerCluster.onBeforeUnmount`) cannot
23
+ * restart the debounce. Without this, a trailing `setTimeout` fires later and
24
+ * crashes inside `MarkerClusterer.render()` if the Maps API has been torn
25
+ * down. See issue #376.
26
+ */
19
27
  destroy(): void;
20
28
  }
@@ -2,7 +2,9 @@ import { PropType } from "vue";
2
2
  import { IControlPosition } from "../@types/index";
3
3
  export declare const __resetOptionsFlag: () => void;
4
4
  export declare const mapEvents: readonly ["bounds_changed", "center_changed", "click", "contextmenu", "dblclick", "drag", "dragend", "dragstart", "heading_changed", "idle", "isfractionalzoomenabled_changed", "mapcapabilities_changed", "maptypeid_changed", "mousemove", "mouseout", "mouseover", "projection_changed", "renderingtype_changed", "rightclick", "tilesloaded", "tilt_changed", "zoom_changed"];
5
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
8
  apiPromise: {
7
9
  type: PropType<Promise<typeof google>>;
8
10
  };
@@ -467,4 +469,3 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
467
469
  zoomControl: boolean;
468
470
  cameraControl: boolean;
469
471
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
470
- export default _default;
@@ -6,8 +6,12 @@ interface ExtendedHeatmapLayerOptions extends Omit<HeatmapLayerOptions, "data">
6
6
  })[];
7
7
  }
8
8
  /**
9
- * @deprecated The HeatmapLayer component was deprecated on May 27, 2025 and will be sunset in May 2026.
10
- * Google recommends migrating to third-party library integrations like deck.gl, which offers a HeatmapLayer implementation.
9
+ * @deprecated The Heatmap Layer was removed from the Maps JavaScript API as of version 3.65.
10
+ * It is no longer available on the `weekly` (or any newer) channel and only works if the API is
11
+ * pinned to version 3.64 or earlier via the `version` prop on `GoogleMap` (or the `v` option of
12
+ * `@googlemaps/js-api-loader`). That pin is temporary — Google rotates out old versions over time.
13
+ * Deprecated on May 27, 2025; Google recommends migrating to third-party integrations like deck.gl,
14
+ * which offers a HeatmapLayer implementation.
11
15
  * @see {@link https://developers.google.com/maps/deprecations} for more information.
12
16
  */
13
17
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -5,7 +5,9 @@ export interface IInfoWindowExposed {
5
5
  close: () => void;
6
6
  }
7
7
  export declare const infoWindowEvents: readonly ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"];
8
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
10
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
9
11
  options: {
10
12
  type: PropType<google.maps.InfoWindowOptions>;
11
13
  default: () => {};
@@ -39,4 +41,3 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
39
41
  options: google.maps.InfoWindowOptions;
40
42
  modelValue: boolean;
41
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
42
- export default _default;
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Snapshots the plain-data portions of an options object so it can be compared
3
+ * against a future value even if the source (or any of its nested arrays /
4
+ * objects) is mutated in place. This is what enables deep reactivity of
5
+ * `:options` props: without a snapshot insulated from in-place mutation, the
6
+ * change-detection `equal()` check would compare the live value against an old
7
+ * value that shares the same (already-mutated) nested references and therefore
8
+ * never detect a change.
9
+ *
10
+ * Plain objects and arrays are deep-cloned. Non-plain values — DOM nodes, class
11
+ * instances (e.g. `google.maps.LatLng`), and functions — are preserved by
12
+ * reference and compared by identity.
13
+ */
14
+ export declare function cloneOptions<T>(options: T): T;
1
15
  type ICustomMarkerInterface = google.maps.OverlayView & {
2
16
  getPosition(): google.maps.LatLng | null;
3
17
  getVisible(): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue3-google-map",
3
- "version": "0.27.1",
3
+ "version": "0.27.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,36 +44,35 @@
44
44
  "clean": "rimraf dist/**/*",
45
45
  "lint": "npx eslint --ext .ts,.vue src playground --fix",
46
46
  "lint:check": "npx eslint --ext .ts,.vue src playground",
47
- "build:umd": "node ./scripts/build-umd.js",
47
+ "build:umd": "node ./scripts/build-umd.mjs",
48
48
  "build": "pnpm clean && vue-tsc --declaration --emitDeclarationOnly --project tsconfig.build.json && vite build && pnpm build:umd",
49
49
  "docs": "vitepress dev docs",
50
50
  "docs:dev": "vitepress dev docs",
51
51
  "docs:build": "vitepress build docs",
52
52
  "docs:serve": "vitepress serve docs",
53
- "release": "standard-version",
54
53
  "test": "jest",
55
54
  "test:types": "pnpm run build && tsc --noEmit --project tsconfig.typetest.json",
56
55
  "test:watch": "jest --watch",
57
56
  "test:coverage": "jest --coverage"
58
57
  },
59
58
  "dependencies": {
60
- "@googlemaps/js-api-loader": "^2.0.1",
61
- "@googlemaps/markerclusterer": "^2.4.0",
59
+ "@googlemaps/js-api-loader": "^2.0.2",
60
+ "@googlemaps/markerclusterer": "^2.6.2",
62
61
  "fast-deep-equal": "^3.1.3",
63
62
  "lodash-es": "^4.17.21"
64
63
  },
65
64
  "devDependencies": {
66
- "@babel/core": "^7.28.0",
67
- "@googlemaps/jest-mocks": "^2.22.6",
68
- "@types/google.maps": "^3.58.1",
65
+ "@babel/core": "^7.29.0",
66
+ "@googlemaps/jest-mocks": "^2.22.8",
67
+ "@types/google.maps": "^3.64.0",
69
68
  "@types/jest": "^29.5.14",
70
69
  "@types/lodash-es": "^4.17.12",
71
70
  "@typescript-eslint/eslint-plugin": "^4.33.0",
72
71
  "@typescript-eslint/parser": "^4.33.0",
73
- "@vitejs/plugin-vue": "^4.3.1",
72
+ "@vitejs/plugin-vue": "^6.0.6",
74
73
  "@vue/eslint-config-prettier": "^6.0.0",
75
74
  "@vue/eslint-config-typescript": "^7.0.0",
76
- "@vue/test-utils": "^2.4.6",
75
+ "@vue/test-utils": "^2.4.10",
77
76
  "@vue/vue3-jest": "^29.2.6",
78
77
  "babel-jest": "29.7.0",
79
78
  "eslint": "^7.32.0",
@@ -83,22 +82,22 @@
83
82
  "expect-type": "^1.3.0",
84
83
  "jest": "^29.7.0",
85
84
  "jest-environment-jsdom": "^29.7.0",
86
- "pnpm": "^10.13.1",
85
+ "pnpm": "^10.33.2",
87
86
  "prettier": "^2.8.8",
88
- "rimraf": "^5.0.1",
89
- "standard-version": "^9.5.0",
90
- "ts-jest": "^29.4.0",
91
- "typescript": "^5.1.6",
92
- "vite": "^4.5.3",
93
- "vite-plugin-css-injected-by-js": "^3.2.1",
94
- "vitepress": "^1.0.0-rc.40",
95
- "vue": "^3.3.4",
96
- "vue-tsc": "^3.0.3"
87
+ "rimraf": "^6.1.3",
88
+ "ts-jest": "^29.4.9",
89
+ "typescript": "^5.8.3",
90
+ "vite": "^8.0.10",
91
+ "vite-plugin-css-injected-by-js": "^5.0.1",
92
+ "vitepress": "^1.6.4",
93
+ "vue": "^3.5.33",
94
+ "vue-tsc": "^3.2.7"
97
95
  },
98
96
  "peerDependencies": {
99
97
  "vue": "^3"
100
98
  },
101
99
  "engines": {
102
100
  "node": ">=18.12.0"
103
- }
101
+ },
102
+ "packageManager": "pnpm@10.33.2"
104
103
  }