@heycar/heycars-map 1.0.0-coordinate7 → 2.0.0-switchMap1

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 (114) hide show
  1. package/README.md +4 -25
  2. package/dist/v2/App.js +6 -4
  3. package/dist/v2/Demo/DemoBusinessQuoting.js +4 -11
  4. package/dist/v2/Demo/DemoBusinessRecomendPlace.js +3 -8
  5. package/dist/v2/Demo/DemoBusinessReselectPlace.js +2 -7
  6. package/dist/v2/Demo/DemoBusinessTaxiEnd.d.ts +1 -3
  7. package/dist/v2/Demo/DemoBusinessTaxiEnd.js +2 -18
  8. package/dist/v2/Demo/DemoBusinessTaxiService.d.ts +1 -2392
  9. package/dist/v2/Demo/DemoBusinessTaxiService.js +6 -19
  10. package/dist/v2/business-components/BusinessQuotingMap/BusinessQuotingMap.d.ts +5 -5
  11. package/dist/v2/business-components/BusinessQuotingMap/BusinessQuotingMap.js +42 -11
  12. package/dist/v2/business-components/BusinessQuotingMap/index.js +3 -2
  13. package/dist/v2/business-components/BusinessRecomendPlaceMap/BusinessRecomendPlaceMap.d.ts +2 -3
  14. package/dist/v2/business-components/BusinessRecomendPlaceMap/BusinessRecomendPlaceMap.js +4 -2
  15. package/dist/v2/business-components/BusinessRecomendPlaceMap/index.js +2 -1
  16. package/dist/v2/business-components/BusinessReselectPlaceMap/BusinessReselectPlaceMap.d.ts +3 -2
  17. package/dist/v2/business-components/BusinessReselectPlaceMap/BusinessReselectPlaceMap.js +44 -17
  18. package/dist/v2/business-components/BusinessReselectPlaceMap/index.js +3 -2
  19. package/dist/v2/business-components/BusinessTaxiEndMap/BusinessTaxiEndMap.d.ts +2 -3
  20. package/dist/v2/business-components/BusinessTaxiEndMap/BusinessTaxiEndMap.js +22 -8
  21. package/dist/v2/business-components/BusinessTaxiEndMap/index.js +3 -2
  22. package/dist/v2/business-components/BusinessTaxiServiceMap/BusinessTaxiServiceMap.d.ts +5 -5
  23. package/dist/v2/business-components/BusinessTaxiServiceMap/BusinessTaxiServiceMap.js +42 -18
  24. package/dist/v2/business-components/BusinessTaxiServiceMap/index.js +3 -2
  25. package/dist/v2/chunks/{BusinessRecomendPlaceMap.87ea3b2f.js → BusinessRecomendPlaceMap.5be4fdcf.js} +38 -15
  26. package/dist/v2/components/AmapMarker/AmapMarker.js +2 -1
  27. package/dist/v2/components/GmapAdvancedMarkerElement/GmapAdvancedMarkerElement.js +1 -1
  28. package/dist/v2/components/MapProvider/MapProvider.js +16 -15
  29. package/dist/v2/demi-polyfill/demi-polyfill.d.ts +1 -0
  30. package/dist/v2/hooks/useMapLoader.d.ts +5 -3
  31. package/dist/v2/hooks/useMapLoader.js +29 -14
  32. package/dist/v2/hooks-business/useBusinessAlarm.d.ts +3 -0
  33. package/dist/v2/hooks-business/useBusinessQuotingMap.d.ts +5 -2393
  34. package/dist/v2/hooks-business/useBusinessQuotingMap.js +5 -10
  35. package/dist/v2/hooks-business/useBusinessRecomendPlaceMap.d.ts +8 -17
  36. package/dist/v2/hooks-business/useBusinessRecomendPlaceMap.js +8 -34
  37. package/dist/v2/hooks-business/useBusinessReselectPlaceMap.d.ts +4 -13
  38. package/dist/v2/hooks-business/useBusinessTaxiServiceMap.d.ts +5 -2393
  39. package/dist/v2/hooks-business/useBusinessTaxiServiceMap.js +5 -10
  40. package/dist/v2/index.js +1 -1
  41. package/dist/v2/utils/compare.d.ts +4 -0
  42. package/dist/v2/utils/compare.js +6 -0
  43. package/dist/v2/utils/helper.d.ts +4 -0
  44. package/dist/v2/utils/helper.js +14 -0
  45. package/dist/v2/utils/log.js +1 -1
  46. package/dist/v3/App.js +6 -4
  47. package/dist/v3/Demo/DemoBusinessQuoting.js +4 -11
  48. package/dist/v3/Demo/DemoBusinessRecomendPlace.js +3 -8
  49. package/dist/v3/Demo/DemoBusinessReselectPlace.js +2 -7
  50. package/dist/v3/Demo/DemoBusinessTaxiEnd.d.ts +1 -3
  51. package/dist/v3/Demo/DemoBusinessTaxiEnd.js +3 -17
  52. package/dist/v3/Demo/DemoBusinessTaxiService.d.ts +1 -2392
  53. package/dist/v3/Demo/DemoBusinessTaxiService.js +6 -17
  54. package/dist/v3/business-components/BusinessQuotingMap/BusinessQuotingMap.d.ts +16 -7
  55. package/dist/v3/business-components/BusinessQuotingMap/BusinessQuotingMap.js +42 -11
  56. package/dist/v3/business-components/BusinessQuotingMap/index.js +3 -2
  57. package/dist/v3/business-components/BusinessRecomendPlaceMap/BusinessRecomendPlaceMap.d.ts +10 -3
  58. package/dist/v3/business-components/BusinessRecomendPlaceMap/BusinessRecomendPlaceMap.js +4 -2
  59. package/dist/v3/business-components/BusinessRecomendPlaceMap/index.js +2 -1
  60. package/dist/v3/business-components/BusinessReselectPlaceMap/BusinessReselectPlaceMap.d.ts +10 -2
  61. package/dist/v3/business-components/BusinessReselectPlaceMap/BusinessReselectPlaceMap.js +44 -17
  62. package/dist/v3/business-components/BusinessReselectPlaceMap/index.js +3 -2
  63. package/dist/v3/business-components/BusinessTaxiEndMap/BusinessTaxiEndMap.d.ts +4 -3
  64. package/dist/v3/business-components/BusinessTaxiEndMap/BusinessTaxiEndMap.js +22 -8
  65. package/dist/v3/business-components/BusinessTaxiEndMap/index.js +3 -2
  66. package/dist/v3/business-components/BusinessTaxiServiceMap/BusinessTaxiServiceMap.d.ts +19 -7
  67. package/dist/v3/business-components/BusinessTaxiServiceMap/BusinessTaxiServiceMap.js +42 -18
  68. package/dist/v3/business-components/BusinessTaxiServiceMap/index.js +3 -2
  69. package/dist/v3/chunks/{BusinessRecomendPlaceMap.57b15c64.js → BusinessRecomendPlaceMap.39888296.js} +38 -15
  70. package/dist/v3/components/AmapMarker/AmapMarker.js +2 -1
  71. package/dist/v3/components/GmapAdvancedMarkerElement/GmapAdvancedMarkerElement.js +1 -1
  72. package/dist/v3/components/MapProvider/MapProvider.js +16 -15
  73. package/dist/v3/demi-polyfill/demi-polyfill.d.ts +1 -0
  74. package/dist/v3/hooks/useMapLoader.d.ts +5 -3
  75. package/dist/v3/hooks/useMapLoader.js +29 -14
  76. package/dist/v3/hooks-business/useBusinessAlarm.d.ts +3 -0
  77. package/dist/v3/hooks-business/useBusinessQuotingMap.d.ts +5 -2393
  78. package/dist/v3/hooks-business/useBusinessQuotingMap.js +5 -10
  79. package/dist/v3/hooks-business/useBusinessRecomendPlaceMap.d.ts +8 -17
  80. package/dist/v3/hooks-business/useBusinessRecomendPlaceMap.js +8 -34
  81. package/dist/v3/hooks-business/useBusinessReselectPlaceMap.d.ts +4 -13
  82. package/dist/v3/hooks-business/useBusinessTaxiServiceMap.d.ts +5 -2393
  83. package/dist/v3/hooks-business/useBusinessTaxiServiceMap.js +5 -10
  84. package/dist/v3/index.js +1 -1
  85. package/dist/v3/utils/compare.d.ts +4 -0
  86. package/dist/v3/utils/compare.js +6 -0
  87. package/dist/v3/utils/helper.d.ts +4 -0
  88. package/dist/v3/utils/helper.js +14 -0
  89. package/dist/v3/utils/log.js +1 -1
  90. package/package.json +1 -1
  91. package/dist/v2/Demo/Demo.d.ts +0 -3
  92. package/dist/v2/Demo/Demo.js +0 -1634
  93. package/dist/v2/components/AmapLoader/AmapLoader.d.ts +0 -5
  94. package/dist/v2/components/AmapLoader/AmapLoader.js +0 -21
  95. package/dist/v2/components/AmapLoader/index.d.ts +0 -1
  96. package/dist/v2/components/AmapLoader/index.js +0 -4
  97. package/dist/v2/components/GmapLoader/GmapLoader.d.ts +0 -5
  98. package/dist/v2/components/GmapLoader/GmapLoader.js +0 -21
  99. package/dist/v2/components/GmapLoader/index.d.ts +0 -1
  100. package/dist/v2/components/GmapLoader/index.js +0 -4
  101. package/dist/v2/hooks-business/useBusinessTaxiEndMap.d.ts +0 -3
  102. package/dist/v2/hooks-business/useBusinessTaxiEndMap.js +0 -7
  103. package/dist/v3/Demo/Demo.d.ts +0 -9
  104. package/dist/v3/Demo/Demo.js +0 -1612
  105. package/dist/v3/components/AmapLoader/AmapLoader.d.ts +0 -10
  106. package/dist/v3/components/AmapLoader/AmapLoader.js +0 -21
  107. package/dist/v3/components/AmapLoader/index.d.ts +0 -1
  108. package/dist/v3/components/AmapLoader/index.js +0 -4
  109. package/dist/v3/components/GmapLoader/GmapLoader.d.ts +0 -10
  110. package/dist/v3/components/GmapLoader/GmapLoader.js +0 -21
  111. package/dist/v3/components/GmapLoader/index.d.ts +0 -1
  112. package/dist/v3/components/GmapLoader/index.js +0 -4
  113. package/dist/v3/hooks-business/useBusinessTaxiEndMap.d.ts +0 -3
  114. package/dist/v3/hooks-business/useBusinessTaxiEndMap.js +0 -7
@@ -9,14 +9,10 @@ const DemoBusinessTaxiService = defineComponent({
9
9
  name: "DemoBusinessTaxiService",
10
10
  setup() {
11
11
  const {
12
- googleConnectionStatus,
13
- setMap,
14
- registerFitVeiw
12
+ mapContext
15
13
  } = useBusinessTaxiServiceMap();
16
14
  return {
17
- googleConnectionStatus,
18
- setMap,
19
- registerFitVeiw
15
+ mapContext
20
16
  };
21
17
  },
22
18
  data() {
@@ -79,13 +75,11 @@ const DemoBusinessTaxiService = defineComponent({
79
75
  },
80
76
  render() {
81
77
  const {
82
- setMap,
78
+ mapContext,
83
79
  getDriverPositionTrack,
84
- registerFitVeiw,
85
80
  from,
86
81
  to,
87
- status,
88
- googleConnectionStatus
82
+ status
89
83
  } = this;
90
84
  const isReady = isCoordinatePoint(from) && isCoordinatePoint(to);
91
85
  if (!isReady)
@@ -95,7 +89,7 @@ const DemoBusinessTaxiService = defineComponent({
95
89
  } = this;
96
90
  return h("div", {
97
91
  "class": layout
98
- }, [h("div", [googleConnectionStatus]), h(BusinessTaxiServiceMap, {
92
+ }, [h(BusinessTaxiServiceMap, {
99
93
  "class": adjustedDemo,
100
94
  "attrs": {
101
95
  "from": from,
@@ -114,14 +108,7 @@ const DemoBusinessTaxiService = defineComponent({
114
108
  }) => `距离终点*${distance / 1e3}*公里, 预计*${duration}*分钟`,
115
109
  "getDriverPositionTrack": getDriverPositionTrack,
116
110
  "interval": 5e3,
117
- "mapRef": setMap,
118
- "registerOverlay": registerFitVeiw
119
- },
120
- "on": {
121
- "changeGoogleConnection": (status2) => (
122
- // 根据目前的产品需求,连通性检测只会被检测一次。
123
- console.log("谷歌连通性发生变化时触发,连通性状态是:", status2)
124
- )
111
+ "mapContext": mapContext
125
112
  }
126
113
  }), h("div", {
127
114
  "style": {
@@ -1,13 +1,13 @@
1
- import type { GoogleConnectionOnChangeHandler } from "../../api/googleConnection";
2
1
  import { type HeycarMapProps } from "../../components/MapProvider";
3
- import type { MROP } from "../../hooks/useOverlay";
2
+ import type { BusinessQuotingContext } from "../../hooks-business/useBusinessQuotingMap";
4
3
  import type { CoordinatifyProps } from "../../types/coordinatify";
5
4
  import type { CoordinatePlace } from "../../types/interface";
6
- export type BusinessQuotingMapProps = CoordinatifyProps<Omit<HeycarMapProps, "center" | "zoom">> & Required<MROP> & {
5
+ export type BusinessQuotingMapProps = CoordinatifyProps<Omit<HeycarMapProps, "center" | "zoom" | "mapRef">> & {
7
6
  from: CoordinatePlace;
8
7
  to: CoordinatePlace;
9
8
  fromDescription: string;
10
9
  log?: boolean;
10
+ mapContext: CoordinatifyProps<BusinessQuotingContext>;
11
11
  renderDescription: (titleProps: {
12
12
  distance: number;
13
13
  duration: number;
@@ -15,6 +15,6 @@ export type BusinessQuotingMapProps = CoordinatifyProps<Omit<HeycarMapProps, "ce
15
15
  }) => string;
16
16
  onClickStartPoint?: (value: CoordinatePlace) => void;
17
17
  onClickEndPoint?: (value: CoordinatePlace) => void;
18
- onChangeGoogleConnection?: GoogleConnectionOnChangeHandler;
19
18
  };
20
- export declare const BusinessQuotingMap: import("vue").DefineComponent<import("vue3").ComponentObjectPropsOptions<BusinessQuotingMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessQuotingMapProps, Required<BusinessQuotingMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "changeGoogleConnection" | "clickStartPoint" | "clickEndPoint", BusinessQuotingMapProps>;
19
+ export declare const BusinessQuotingMapInner: import("vue/types/v3-define-component").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessQuotingMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessQuotingMapProps, Required<BusinessQuotingMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "clickStartPoint" | "clickEndPoint", BusinessQuotingMapProps>;
20
+ export declare const BusinessQuotingMap: import("vue/types/v3-define-component").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessQuotingMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessQuotingMapProps, Required<BusinessQuotingMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "clickStartPoint" | "clickEndPoint", BusinessQuotingMapProps>;
@@ -1,39 +1,51 @@
1
1
  import { h } from "vue";
2
2
  import { HeycarMap } from "../../components/MapProvider/MapProvider.js";
3
- import { useGoogleConnection } from "../../hooks/useGoogleConnection.js";
3
+ import { createElement } from "../../demi-polyfill/demi-polyfill.js";
4
+ import { useHeycarMap } from "../../hooks/useHeycarMap.js";
4
5
  import { useMapCoordinatify } from "../../hooks/useMapCoordinatify.js";
6
+ import { useMapFitView } from "../../hooks/useMapFitView.js";
5
7
  import { useMapSupplier } from "../../hooks/useMapSupplier.js";
6
- import { defineLagecySetup } from "../../types/helper.js";
8
+ import { defineSetup, defineLagecySetup } from "../../types/helper.js";
9
+ import { generateCreateElementV2PropsOn } from "../../utils/compare.js";
7
10
  import { place2point, pipeDefer } from "../../utils/transform.js";
8
11
  import { toCoordinatePlaceType } from "../../utils/typeChecking.js";
9
12
  import { DrivingLine } from "../DrivingLine/DrivingLine.js";
10
13
  import { DrivingRoute } from "../DrivingRoute/DrivingRoute.js";
11
14
  import { FitViewOnce, createFittableRegisterOverlay } from "../FitView/FitView.js";
12
15
  import { StartEndPoint } from "../StartEndPoint/StartEndPoint.js";
13
- const BusinessQuotingMap = defineLagecySetup("BusinessQuotingMap", function(props, {
16
+ const BUSINESS_QUOTING_FITVIEW_PANDING = [26, 26, 19, 26];
17
+ const BusinessQuotingMapInner = defineSetup("BusinessQuotingMapInner", function(props, {
14
18
  emit,
15
19
  attrs
16
20
  }) {
17
21
  const {
18
- registerOverlay,
19
- mapRef,
22
+ mapContext,
20
23
  renderDescription
21
24
  } = props;
22
25
  const {
23
26
  language
24
27
  } = useMapSupplier();
28
+ const {
29
+ mapRef,
30
+ setMap
31
+ } = useHeycarMap();
25
32
  const {
26
33
  coordinatifyPlace,
27
34
  unCoordinatifyPlace
28
35
  } = useMapCoordinatify();
36
+ const {
37
+ registerFitVeiw: registerOverlay,
38
+ setFitView
39
+ } = useMapFitView({
40
+ mapRef,
41
+ padding: BUSINESS_QUOTING_FITVIEW_PANDING
42
+ });
43
+ mapContext.setFitView = () => setFitView(false);
29
44
  const fittableRegistryOverlay = createFittableRegisterOverlay({
30
45
  registerOverlay,
31
46
  immediate: true
32
47
  });
33
48
  const deferedSetFitView = pipeDefer(() => registerOverlay.setFitView(true));
34
- useGoogleConnection({
35
- onChange: (status) => emit("changeGoogleConnection", status)
36
- });
37
49
  return () => {
38
50
  const {
39
51
  from: inputFromPlace,
@@ -48,7 +60,7 @@ const BusinessQuotingMap = defineLagecySetup("BusinessQuotingMap", function(prop
48
60
  "class": attrs.class,
49
61
  "style": attrs.style,
50
62
  "attrs": {
51
- "mapRef": mapRef,
63
+ "mapRef": setMap,
52
64
  "center": from,
53
65
  "zoom": 13
54
66
  },
@@ -106,7 +118,26 @@ const BusinessQuotingMap = defineLagecySetup("BusinessQuotingMap", function(prop
106
118
  }
107
119
  })]);
108
120
  };
109
- }).props(["fallback", "from", "loading", "mapRef", "registerOverlay", "renderDescription", "to", "fromDescription", "log"]);
121
+ });
122
+ const BusinessQuotingMap = defineLagecySetup("BusinessQuotingMap", function(props, {
123
+ attrs,
124
+ emit
125
+ }) {
126
+ const payload = useMapSupplier();
127
+ const instanceNo = Date.now();
128
+ return () => createElement(BusinessQuotingMapInner, {
129
+ ...attrs.class ? {
130
+ class: attrs.class
131
+ } : {},
132
+ ...attrs.style ? {
133
+ style: attrs.style
134
+ } : {},
135
+ attrs: props,
136
+ key: `${payload.supplier}${instanceNo}`,
137
+ on: generateCreateElementV2PropsOn(props, emit, ["clickStartPoint", "clickEndPoint"])
138
+ });
139
+ }).props(["fallback", "from", "loading", "mapContext", "renderDescription", "to", "fromDescription", "log"]);
110
140
  export {
111
- BusinessQuotingMap
141
+ BusinessQuotingMap,
142
+ BusinessQuotingMapInner
112
143
  };
@@ -1,4 +1,5 @@
1
- import { BusinessQuotingMap } from "./BusinessQuotingMap.js";
1
+ import { BusinessQuotingMap, BusinessQuotingMapInner } from "./BusinessQuotingMap.js";
2
2
  export {
3
- BusinessQuotingMap
3
+ BusinessQuotingMap,
4
+ BusinessQuotingMapInner
4
5
  };
@@ -1,4 +1,3 @@
1
- import type { GoogleConnectionOnChangeHandler } from "../../api/googleConnection";
2
1
  import { type HeycarMapProps } from "../../components/MapProvider";
3
2
  import type { BusinessRecomendPlaceContext } from "../../hooks-business/useBusinessRecomendPlaceMap";
4
3
  import { type UseGeoLocationProps } from "../../hooks/useGeoLocation";
@@ -45,6 +44,6 @@ export interface BusinessRecomendPlaceMapProps extends CoordinatifyProps<Omit<He
45
44
  onGeoErrorOnce?: (isBusinessTimeout: boolean) => void;
46
45
  onClickLocatorText?: AbsoluteAddressBoxProps["onClickText"];
47
46
  onClickLocatorPhoto?: AbsoluteAddressBoxProps["onClickPhoto"];
48
- onChangeGoogleConnection?: GoogleConnectionOnChangeHandler;
49
47
  }
50
- export declare const BusinessRecomendPlaceMap: import("vue-demi").DefineComponent<import("vue3").ComponentObjectPropsOptions<BusinessRecomendPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessRecomendPlaceMapProps, Required<BusinessRecomendPlaceMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "changeGoogleConnection" | "changePlace" | "loadGeoLocation" | "loadDefaultGeoLocation" | "changeByDrag" | "changeGeoLocation" | "changeRecomandPlace" | "geoError" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessRecomendPlaceMapProps>;
48
+ export declare const BusinessRecomendPlaceMapInner: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessRecomendPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessRecomendPlaceMapProps, Required<BusinessRecomendPlaceMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "geoError" | "changePlace" | "loadGeoLocation" | "loadDefaultGeoLocation" | "changeByDrag" | "changeGeoLocation" | "changeRecomandPlace" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessRecomendPlaceMapProps>;
49
+ export declare const BusinessRecomendPlaceMap: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessRecomendPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessRecomendPlaceMapProps, Required<BusinessRecomendPlaceMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "geoError" | "changePlace" | "loadGeoLocation" | "loadDefaultGeoLocation" | "changeByDrag" | "changeGeoLocation" | "changeRecomandPlace" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessRecomendPlaceMapProps>;
@@ -3,11 +3,12 @@ import "vue-demi";
3
3
  import "../../api/browser.js";
4
4
  import "../../api/memory.js";
5
5
  import "../../components/MapProvider/MapProvider.js";
6
+ import "../../demi-polyfill/demi-polyfill.js";
6
7
  import "../../hooks/useGeoLocation.js";
7
- import "../../hooks/useGoogleConnection.js";
8
8
  import "../../hooks/useHeycarMap.js";
9
9
  import "../../hooks/useMapCoordinatify.js";
10
10
  import "../../hooks/useMapDrag.js";
11
+ import "../../hooks/useMapGeometry.js";
11
12
  import "../../hooks/useMapRecomendPlace.js";
12
13
  import "../../hooks/useMapSupplier.js";
13
14
  import "../../hooks/useMapZoom.js";
@@ -24,9 +25,10 @@ import "../GreenZone/GreenZone.js";
24
25
  import "../PassengerCircle/PassengerCircle.js";
25
26
  import "../PickupPoints/PickupPoints.js";
26
27
  import "./useCacheCenterPlace.js";
27
- import { B, D, E, a, c, R, e, b, d, Z } from "../../chunks/BusinessRecomendPlaceMap.87ea3b2f.js";
28
+ import { B, f, D, E, a, c, R, e, b, d, Z } from "../../chunks/BusinessRecomendPlaceMap.5be4fdcf.js";
28
29
  export {
29
30
  B as BusinessRecomendPlaceMap,
31
+ f as BusinessRecomendPlaceMapInner,
30
32
  D as DEFAULT_ZOOM,
31
33
  E as EMPTY_PLACE,
32
34
  a as RECOMMEND_PLACE_DRAG_LIMIT,
@@ -1,6 +1,7 @@
1
- import { B, D, E, a, c, R, e, b, d, Z } from "../../chunks/BusinessRecomendPlaceMap.87ea3b2f.js";
1
+ import { B, f, D, E, a, c, R, e, b, d, Z } from "../../chunks/BusinessRecomendPlaceMap.5be4fdcf.js";
2
2
  export {
3
3
  B as BusinessRecomendPlaceMap,
4
+ f as BusinessRecomendPlaceMapInner,
4
5
  D as DEFAULT_ZOOM,
5
6
  E as EMPTY_PLACE,
6
7
  a as RECOMMEND_PLACE_DRAG_LIMIT,
@@ -1,6 +1,7 @@
1
1
  import { type CoordinatePlace } from "../../types/interface";
2
2
  import { type BusinessRecomendPlaceMapProps } from "../BusinessRecomendPlaceMap";
3
- export interface BusinessReselectPlaceMapProps extends Pick<BusinessRecomendPlaceMapProps, "geoErrorOnceNotificationKey" | "loading" | "fallback" | "log" | "getAvailable" | "getRecomendPlace" | "unavailableTitle" | "emptyTitle" | "queryingTitle" | "recomendDescription" | "disableLocator" | "disableLocatorPhoto" | "mapContext" | "renderPlacePhoto" | "renderPlaceTag" | "onChangeGeoLocation" | "onChangePlace" | "onChangeRecomandPlace" | "onGeoError" | "onGeoErrorOnce" | "onClickLocatorText" | "onClickLocatorPhoto" | "onChangeGoogleConnection"> {
3
+ export interface BusinessReselectPlaceMapProps extends Pick<BusinessRecomendPlaceMapProps, "geoErrorOnceNotificationKey" | "loading" | "fallback" | "log" | "getAvailable" | "getRecomendPlace" | "unavailableTitle" | "emptyTitle" | "queryingTitle" | "recomendDescription" | "disableLocator" | "disableLocatorPhoto" | "mapContext" | "renderPlacePhoto" | "renderPlaceTag" | "onChangeGeoLocation" | "onChangePlace" | "onChangeRecomandPlace" | "onGeoError" | "onGeoErrorOnce" | "onClickLocatorText" | "onClickLocatorPhoto"> {
4
4
  defaultPlace?: CoordinatePlace;
5
5
  }
6
- export declare const BusinessReselectPlaceMap: import("vue-demi").DefineComponent<import("vue3").ComponentObjectPropsOptions<BusinessReselectPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessReselectPlaceMapProps, Required<BusinessReselectPlaceMapProps>>, "changeGoogleConnection" | "changePlace" | "changeGeoLocation" | "changeRecomandPlace" | "geoError" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessReselectPlaceMapProps>;
6
+ export declare const BusinessReselectPlaceMapInner: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessReselectPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessReselectPlaceMapProps, Required<BusinessReselectPlaceMapProps>>, "geoError" | "changePlace" | "changeGeoLocation" | "changeRecomandPlace" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessReselectPlaceMapProps>;
7
+ export declare const BusinessReselectPlaceMap: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessReselectPlaceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessReselectPlaceMapProps, Required<BusinessReselectPlaceMapProps>>, "geoError" | "changePlace" | "changeGeoLocation" | "changeRecomandPlace" | "geoErrorOnce" | "clickLocatorText" | "clickLocatorPhoto", BusinessReselectPlaceMapProps>;
@@ -1,28 +1,30 @@
1
1
  import { h } from "vue";
2
- import { reactive, watchEffect } from "vue-demi";
2
+ import { reactive, watch, watchEffect } from "vue-demi";
3
3
  import { apiMemoryShouldSkipByKey } from "../../api/memory.js";
4
4
  import { HeycarMap } from "../../components/MapProvider/MapProvider.js";
5
+ import { createElement } from "../../demi-polyfill/demi-polyfill.js";
5
6
  import { useGeoLocation } from "../../hooks/useGeoLocation.js";
6
- import { useGoogleConnection } from "../../hooks/useGoogleConnection.js";
7
7
  import { useHeycarMap } from "../../hooks/useHeycarMap.js";
8
8
  import { useMapCoordinatify } from "../../hooks/useMapCoordinatify.js";
9
9
  import { useMapDrag } from "../../hooks/useMapDrag.js";
10
+ import { useMapGeometry } from "../../hooks/useMapGeometry.js";
10
11
  import { useMapRecomendPlace } from "../../hooks/useMapRecomendPlace.js";
12
+ import { useMapSupplier } from "../../hooks/useMapSupplier.js";
11
13
  import { useMapZoom } from "../../hooks/useMapZoom.js";
12
- import { defineLagecySetup } from "../../types/helper.js";
14
+ import { defineSetup, defineLagecySetup } from "../../types/helper.js";
13
15
  import { CenterPlaceStatus } from "../../types/interface.js";
14
- import { watchPostEffectOnce } from "../../utils/compare.js";
16
+ import { watchPostEffectOnce, generateCreateElementV2PropsOn } from "../../utils/compare.js";
15
17
  import { equalAssign, isPlacesInclude } from "../../utils/helper.js";
16
18
  import { detectBrowserPlatform } from "../../utils/platform.js";
17
19
  import { place2point, isPlaceEqual, pipeOnlyLastEffect, isZoneEqual, geoPositionError2businessTimeout } from "../../utils/transform.js";
18
- import { toCoordinatePlaceType, toCoordinateRecommendZonePlacesType } from "../../utils/typeChecking.js";
20
+ import { toCoordinatePlaceType, toCoordinatePointType, toCoordinateRecommendZonePlacesType } from "../../utils/typeChecking.js";
19
21
  import { AbsoluteAddressBox } from "../AbsoluteAddressBox/AbsoluteAddressBox.js";
20
- import { E as EMPTY_PLACE, m as memoize, R as RECOMMEND_PLACE_LARGE_LIMIT, a as RECOMMEND_PLACE_DRAG_LIMIT, Z as ZONE_ZOOM, b as RECOMMEND_PLACE_ZONE_ICON_MIN, c as RECOMMEND_PLACE_ICON_ZOOM_MIN, d as RECOMMEND_PLACE_ZONE_TEXT_MIN, e as RECOMMEND_PLACE_TEXT_ZOOM_MIN, D as DEFAULT_ZOOM } from "../../chunks/BusinessRecomendPlaceMap.87ea3b2f.js";
22
+ import { E as EMPTY_PLACE, m as memoize, R as RECOMMEND_PLACE_LARGE_LIMIT, a as RECOMMEND_PLACE_DRAG_LIMIT, Z as ZONE_ZOOM, b as RECOMMEND_PLACE_ZONE_ICON_MIN, c as RECOMMEND_PLACE_ICON_ZOOM_MIN, d as RECOMMEND_PLACE_ZONE_TEXT_MIN, e as RECOMMEND_PLACE_TEXT_ZOOM_MIN, D as DEFAULT_ZOOM } from "../../chunks/BusinessRecomendPlaceMap.5be4fdcf.js";
21
23
  import { DeviceOrientation } from "../DeviceOrientation/DeviceOrientation.js";
22
24
  import { GreenZone } from "../GreenZone/GreenZone.js";
23
25
  import { PassengerCircle } from "../PassengerCircle/PassengerCircle.js";
24
26
  import { PickupPoints } from "../PickupPoints/PickupPoints.js";
25
- const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", function(props, {
27
+ const BusinessReselectPlaceMapInner = defineSetup("BusinessReselectPlaceMapInner", function(props, {
26
28
  emit,
27
29
  slots,
28
30
  attrs
@@ -41,6 +43,7 @@ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", f
41
43
  } = props;
42
44
  const {
43
45
  coordinatifyPoint,
46
+ unCoordinatifyPoint,
44
47
  coordinatifyPlace,
45
48
  unCoordinatifyPlace,
46
49
  unCoordinatifyRecommendZonePlaces,
@@ -49,6 +52,9 @@ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", f
49
52
  } = useMapCoordinatify();
50
53
  const pipedGetAvailable = getAvailable && pipeOnlyLastEffect((p) => getAvailable(coordinatifyPlace(p)));
51
54
  const pipedGetRecomendPlace = pipeOnlyLastEffect((p) => getRecomendPlace(coordinatifyPlace(p)).then((r) => r && unCoordinatifyRecommendZonePlaces(toCoordinateRecommendZonePlacesType(r))));
55
+ const {
56
+ apiMapDistance
57
+ } = useMapGeometry();
52
58
  const {
53
59
  mapRef,
54
60
  mapElementRef,
@@ -142,9 +148,9 @@ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", f
142
148
  emitGeoErrorOnce(error);
143
149
  }
144
150
  });
145
- useGoogleConnection({
146
- onChange: (status) => emit("changeGoogleConnection", status)
147
- });
151
+ mapContext.apiMapDistance = (from, to) => {
152
+ return apiMapDistance(unCoordinatifyPoint(toCoordinatePointType(from)), unCoordinatifyPoint(toCoordinatePointType(to)));
153
+ };
148
154
  mapContext.setCenterPlaceByUserSpecified = setCenterPlaceByUserSpecified;
149
155
  mapContext.setCenterPlaceByUserSpecifiedInZone = setCenterPlaceByUserSpecifiedInZone;
150
156
  mapContext.panToGeoPositionByRecomend = () => {
@@ -219,13 +225,13 @@ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", f
219
225
  }
220
226
  });
221
227
  watchPostEffectOnce(() => updateRecommendPlaceOnlyInZone(defaultPlace));
222
- watchEffect(() => {
223
- mapContext.onChangeCenterPlace(coordinatifyPlace({
224
- ...centerPlace
228
+ watch(centerPlace, (place) => {
229
+ equalAssign(mapContext.centerPlace, coordinatifyPlace({
230
+ ...place
225
231
  }));
226
- });
227
- watchEffect(() => {
228
- mapContext.onChangeRecomendPlaces(placeCandidates.value.map(coordinatifyPlace));
232
+ }, {
233
+ deep: true,
234
+ flush: "post"
229
235
  });
230
236
  watchEffect(() => {
231
237
  mapContext.centerPlaceStatusRef.value = isQueryingRef.value ? CenterPlaceStatus.QUERYING_INFO : !availableRef.value ? CenterPlaceStatus.SERVICE_UNAVAILABLE : CenterPlaceStatus.OK;
@@ -292,7 +298,28 @@ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", f
292
298
  }
293
299
  })]);
294
300
  };
301
+ });
302
+ const BusinessReselectPlaceMap = defineLagecySetup("BusinessReselectPlaceMap", function(props, {
303
+ slots,
304
+ attrs,
305
+ emit
306
+ }) {
307
+ const payload = useMapSupplier();
308
+ const instanceNo = Date.now();
309
+ return () => createElement(BusinessReselectPlaceMapInner, {
310
+ ...attrs.class ? {
311
+ class: attrs.class
312
+ } : {},
313
+ ...attrs.style ? {
314
+ style: attrs.style
315
+ } : {},
316
+ attrs: props,
317
+ scopedSlots: slots,
318
+ key: `${payload.supplier}${instanceNo}`,
319
+ on: generateCreateElementV2PropsOn(props, emit, ["changeGeoLocation", "changePlace", "changeRecomandPlace", "geoError", "geoErrorOnce", "clickLocatorText", "clickLocatorPhoto"])
320
+ });
295
321
  }).props(["loading", "fallback", "log", "defaultPlace", "unavailableTitle", "emptyTitle", "queryingTitle", "recomendDescription", "geoErrorOnceNotificationKey", "disableLocator", "getAvailable", "getRecomendPlace", "renderPlacePhoto", "renderPlaceTag", "mapContext"]);
296
322
  export {
297
- BusinessReselectPlaceMap
323
+ BusinessReselectPlaceMap,
324
+ BusinessReselectPlaceMapInner
298
325
  };
@@ -1,4 +1,5 @@
1
- import { BusinessReselectPlaceMap } from "./BusinessReselectPlaceMap.js";
1
+ import { BusinessReselectPlaceMap, BusinessReselectPlaceMapInner } from "./BusinessReselectPlaceMap.js";
2
2
  export {
3
- BusinessReselectPlaceMap
3
+ BusinessReselectPlaceMap,
4
+ BusinessReselectPlaceMapInner
4
5
  };
@@ -1,8 +1,7 @@
1
- import type { GoogleConnectionOnChangeHandler } from "../../api/googleConnection";
2
1
  import type { Place } from "../../types/interface";
3
2
  export interface BusinessTaxiEndMapProps {
4
3
  from: Partial<Place>;
5
4
  to: Partial<Place>;
6
- onChangeGoogleConnection?: GoogleConnectionOnChangeHandler;
7
5
  }
8
- export declare const BusinessTaxiEndMap: import("vue").DefineComponent<import("vue3").ComponentObjectPropsOptions<BusinessTaxiEndMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiEndMapProps, Required<BusinessTaxiEndMapProps>>, "changeGoogleConnection", BusinessTaxiEndMapProps>;
6
+ export declare const BusinessTaxiEndMapInner: import("vue/types/v3-define-component").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessTaxiEndMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiEndMapProps, Required<BusinessTaxiEndMapProps>>, never, BusinessTaxiEndMapProps>;
7
+ export declare const BusinessTaxiEndMap: import("vue/types/v3-define-component").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessTaxiEndMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiEndMapProps, Required<BusinessTaxiEndMapProps>>, never, BusinessTaxiEndMapProps>;
@@ -1,17 +1,17 @@
1
1
  import { h } from "vue";
2
2
  import { BEIJIN_POINT } from "../../api/contants.js";
3
3
  import { HeycarMap } from "../../components/MapProvider/MapProvider.js";
4
- import { useGoogleConnection } from "../../hooks/useGoogleConnection.js";
4
+ import { createElement } from "../../demi-polyfill/demi-polyfill.js";
5
5
  import { useHeycarMap } from "../../hooks/useHeycarMap.js";
6
6
  import { useMapCoordinatify } from "../../hooks/useMapCoordinatify.js";
7
7
  import { useMapFitView } from "../../hooks/useMapFitView.js";
8
+ import { useMapSupplier } from "../../hooks/useMapSupplier.js";
8
9
  import { defineSetup } from "../../types/helper.js";
9
10
  import { place2point, pipeDefer } from "../../utils/transform.js";
10
11
  import { isCoordinatePoint, toCoordinatePlaceType } from "../../utils/typeChecking.js";
11
12
  import { SectionEndService } from "../BusinessTaxiServiceMap/BusinessTaxiServiceSection.js";
12
- const BusinessTaxiEndMap = defineSetup("BusinessTaxiEndMap", function(props, {
13
- attrs,
14
- emit
13
+ const BusinessTaxiEndMapInner = defineSetup("BusinessTaxiEndMapInner", function(props, {
14
+ attrs
15
15
  }) {
16
16
  const {
17
17
  mapRef,
@@ -28,9 +28,6 @@ const BusinessTaxiEndMap = defineSetup("BusinessTaxiEndMap", function(props, {
28
28
  padding: [19, 36, 19, 26]
29
29
  });
30
30
  const deferedSetFitView = pipeDefer(() => registerFitVeiw.setFitView(true));
31
- useGoogleConnection({
32
- onChange: (status) => emit("changeGoogleConnection", status)
33
- });
34
31
  return () => {
35
32
  const {
36
33
  from: inputFrom,
@@ -61,6 +58,23 @@ const BusinessTaxiEndMap = defineSetup("BusinessTaxiEndMap", function(props, {
61
58
  })]);
62
59
  };
63
60
  });
61
+ const BusinessTaxiEndMap = defineSetup("BusinessTaxiEndMap", function(props, {
62
+ attrs
63
+ }) {
64
+ const payload = useMapSupplier();
65
+ const instanceNo = Date.now();
66
+ return () => createElement(BusinessTaxiEndMapInner, {
67
+ ...attrs.class ? {
68
+ class: attrs.class
69
+ } : {},
70
+ ...attrs.style ? {
71
+ style: attrs.style
72
+ } : {},
73
+ attrs: props,
74
+ key: `${payload.supplier}${instanceNo}`
75
+ });
76
+ });
64
77
  export {
65
- BusinessTaxiEndMap
78
+ BusinessTaxiEndMap,
79
+ BusinessTaxiEndMapInner
66
80
  };
@@ -1,4 +1,5 @@
1
- import { BusinessTaxiEndMap } from "./BusinessTaxiEndMap.js";
1
+ import { BusinessTaxiEndMap, BusinessTaxiEndMapInner } from "./BusinessTaxiEndMap.js";
2
2
  export {
3
- BusinessTaxiEndMap
3
+ BusinessTaxiEndMap,
4
+ BusinessTaxiEndMapInner
4
5
  };
@@ -1,9 +1,8 @@
1
- import type { GoogleConnectionOnChangeHandler } from "../../api/googleConnection";
2
1
  import { type HeycarMapProps } from "../../components/MapProvider";
3
- import type { MROP } from "../../hooks/useOverlay";
2
+ import type { BusinessTaxiServiceContext } from "../../hooks-business/useBusinessTaxiServiceMap";
4
3
  import type { CoordinatifyProps } from "../../types/coordinatify";
5
4
  import type { CoordinatePlace, CoordinateTrackPoint, DriverStatus } from "../../types/interface";
6
- export type BusinessTaxiServiceMapProps = CoordinatifyProps<Omit<HeycarMapProps, "center" | "zoom">> & Required<MROP> & {
5
+ export type BusinessTaxiServiceMapProps = CoordinatifyProps<Omit<HeycarMapProps, "center" | "zoom" | "mapRef">> & {
7
6
  from: CoordinatePlace;
8
7
  to: CoordinatePlace;
9
8
  log?: boolean;
@@ -14,6 +13,7 @@ export type BusinessTaxiServiceMapProps = CoordinatifyProps<Omit<HeycarMapProps,
14
13
  interval: number;
15
14
  disablePassenger?: boolean;
16
15
  googleSnapRoadProxyUrl?: string;
16
+ mapContext: CoordinatifyProps<BusinessTaxiServiceContext>;
17
17
  renderStartSerivceTitle: (titleProps: {
18
18
  distance: number;
19
19
  duration: number;
@@ -23,6 +23,6 @@ export type BusinessTaxiServiceMapProps = CoordinatifyProps<Omit<HeycarMapProps,
23
23
  duration: number;
24
24
  }) => string;
25
25
  getDriverPositionTrack?: () => Promise<CoordinateTrackPoint[]>;
26
- onChangeGoogleConnection?: GoogleConnectionOnChangeHandler;
27
26
  };
28
- export declare const BusinessTaxiServiceMap: import("vue-demi").DefineComponent<import("vue3").ComponentObjectPropsOptions<BusinessTaxiServiceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiServiceMapProps, Required<BusinessTaxiServiceMapProps>>, "resize" | "dragEnd" | "zoomEnd" | "changeGoogleConnection", BusinessTaxiServiceMapProps>;
27
+ export declare const BusinessTaxiServiceMapInner: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessTaxiServiceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiServiceMapProps, Required<BusinessTaxiServiceMapProps>>, "resize" | "dragEnd" | "zoomEnd", BusinessTaxiServiceMapProps>;
28
+ export declare const BusinessTaxiServiceMap: import("vue-demi").DefineComponent<import("@vue/runtime-core").ComponentObjectPropsOptions<BusinessTaxiServiceMapProps>, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").Empty, import("../../types/helper").EmitByProps<BusinessTaxiServiceMapProps, Required<BusinessTaxiServiceMapProps>>, "resize" | "dragEnd" | "zoomEnd", BusinessTaxiServiceMapProps>;
@@ -3,42 +3,52 @@ import { ref, watch } from "vue-demi";
3
3
  import { apiGetAuxiliaryGrapStatus } from "../../api/browser.js";
4
4
  import { setGlobalGoogleSnapRoadProxyUrl } from "../../api/googleSnapRoad.js";
5
5
  import { HeycarMap } from "../../components/MapProvider/MapProvider.js";
6
+ import { createElement } from "../../demi-polyfill/demi-polyfill.js";
6
7
  import { useGeoLocation } from "../../hooks/useGeoLocation.js";
7
- import { useGoogleConnection } from "../../hooks/useGoogleConnection.js";
8
8
  import { useHeycarMap } from "../../hooks/useHeycarMap.js";
9
9
  import { useMapCoordinatify } from "../../hooks/useMapCoordinatify.js";
10
- import { defineLagecySetup } from "../../types/helper.js";
10
+ import { useMapFitView } from "../../hooks/useMapFitView.js";
11
+ import { useMapSupplier } from "../../hooks/useMapSupplier.js";
12
+ import { defineSetup, defineLagecySetup } from "../../types/helper.js";
11
13
  import { assertNotEmptyArray } from "../../utils/helper.js";
12
- import { place2point, combineHandler, pipeDefer, lnglat2point } from "../../utils/transform.js";
14
+ import { place2point, pipeDefer, lnglat2point } from "../../utils/transform.js";
13
15
  import { toCoordinatePlaceType, toCoordinateTrackPoint } from "../../utils/typeChecking.js";
14
16
  import { AuxiliaryGraspRoad } from "../AuxiliaryGraspRoad/AuxiliaryGraspRoad.js";
15
17
  import { DeviceOrientation } from "../DeviceOrientation/DeviceOrientation.js";
16
18
  import { SectionDispatching, SectionConfirmed, SectionDriverStartService, SectionBookDispatched, SectionInService, SectionDriverArrived, SectionCanceled, SectionEndService } from "./BusinessTaxiServiceSection.js";
17
19
  const STATUS_NEED_CAR_POSITION = ["book-driverStartService", "dispatched", "driverStartService", "inService", "driverArrived"];
20
+ const BUSINESS_TAXI_SERVICE_FITVIEW_PANDING = [19, 36, 19, 26];
18
21
  const IS_ENABLE_AUXILIARY_GRASP_ROAD = apiGetAuxiliaryGrapStatus();
19
- const BusinessTaxiServiceMap = defineLagecySetup("BusinessTaxiServiceMap", function(props, {
20
- attrs,
21
- emit
22
+ const BusinessTaxiServiceMapInner = defineSetup("BusinessTaxiServiceMapInner", function(props, {
23
+ attrs
22
24
  }) {
23
25
  const {
24
26
  interval,
25
27
  disablePassenger,
26
- registerOverlay,
27
- mapRef: outerSetMap,
28
+ mapContext,
28
29
  getDriverPositionTrack,
29
30
  renderStartSerivceTitle,
30
31
  renderInServiceTitle
31
32
  } = props;
32
33
  setGlobalGoogleSnapRoadProxyUrl(props.googleSnapRoadProxyUrl);
34
+ const {
35
+ mapRef,
36
+ setMap,
37
+ mapElementRef
38
+ } = useHeycarMap();
33
39
  const {
34
40
  unCoordinatifyPlace,
35
41
  unCoordinatifyTrackPoint
36
42
  } = useMapCoordinatify();
37
- const deferedSetFitView = pipeDefer(() => registerOverlay.setFitView(true));
38
43
  const {
39
- setMap,
40
- mapElementRef
41
- } = useHeycarMap();
44
+ registerFitVeiw: registerOverlay,
45
+ setFitView
46
+ } = useMapFitView({
47
+ mapRef,
48
+ padding: BUSINESS_TAXI_SERVICE_FITVIEW_PANDING
49
+ });
50
+ mapContext.setFitView = () => setFitView(false);
51
+ const deferedSetFitView = pipeDefer(() => registerOverlay.setFitView(true));
42
52
  const {
43
53
  geoLoading,
44
54
  geoPosition,
@@ -49,9 +59,6 @@ const BusinessTaxiServiceMap = defineLagecySetup("BusinessTaxiServiceMap", funct
49
59
  const carPositionRef = ref();
50
60
  const carAngleRef = ref();
51
61
  const carTrackPositionsRef = ref([]);
52
- useGoogleConnection({
53
- onChange: (status) => emit("changeGoogleConnection", status)
54
- });
55
62
  watch(() => props.driverStatus, (status, _, onCleanup) => {
56
63
  if (!STATUS_NEED_CAR_POSITION.includes(status))
57
64
  return;
@@ -94,7 +101,7 @@ const BusinessTaxiServiceMap = defineLagecySetup("BusinessTaxiServiceMap", funct
94
101
  "attrs": {
95
102
  "center": place2point(from),
96
103
  "zoom": 13,
97
- "mapRef": combineHandler(outerSetMap, setMap),
104
+ "mapRef": setMap,
98
105
  "touchEnable": touchEnable
99
106
  },
100
107
  "on": {
@@ -212,7 +219,24 @@ const BusinessTaxiServiceMap = defineLagecySetup("BusinessTaxiServiceMap", funct
212
219
  }
213
220
  })]);
214
221
  };
215
- }).props(["bookDispatchingTitle", "dispatchingTitle", "driverArrivedTitle", "driverStatus", "googleSnapRoadProxyUrl", "fallback", "from", "getDriverPositionTrack", "interval", "disablePassenger", "loading", "mapRef", "renderInServiceTitle", "renderStartSerivceTitle", "to", "registerOverlay"]);
222
+ });
223
+ const BusinessTaxiServiceMap = defineLagecySetup("BusinessTaxiServiceMap", function(props, {
224
+ attrs
225
+ }) {
226
+ const payload = useMapSupplier();
227
+ const instanceNo = Date.now();
228
+ return () => createElement(BusinessTaxiServiceMapInner, {
229
+ ...attrs.class ? {
230
+ class: attrs.class
231
+ } : {},
232
+ ...attrs.style ? {
233
+ style: attrs.style
234
+ } : {},
235
+ attrs: props,
236
+ key: `${payload.supplier}${instanceNo}`
237
+ });
238
+ }).props(["bookDispatchingTitle", "dispatchingTitle", "driverArrivedTitle", "driverStatus", "googleSnapRoadProxyUrl", "fallback", "from", "getDriverPositionTrack", "interval", "disablePassenger", "loading", "mapContext", "renderInServiceTitle", "renderStartSerivceTitle", "to"]);
216
239
  export {
217
- BusinessTaxiServiceMap
240
+ BusinessTaxiServiceMap,
241
+ BusinessTaxiServiceMapInner
218
242
  };
@@ -1,4 +1,5 @@
1
- import { BusinessTaxiServiceMap } from "./BusinessTaxiServiceMap.js";
1
+ import { BusinessTaxiServiceMap, BusinessTaxiServiceMapInner } from "./BusinessTaxiServiceMap.js";
2
2
  export {
3
- BusinessTaxiServiceMap
3
+ BusinessTaxiServiceMap,
4
+ BusinessTaxiServiceMapInner
4
5
  };