@spuermomonga/vue3-bmapgl 0.0.2 → 0.0.4
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/index.js +40 -3
- package/dist/index.prod.js +1 -1
- package/es/_utils/map.mjs +1 -1
- package/es/_utils/map.mjs.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/map/src/map.mjs +5 -3
- package/es/map/src/map.mjs.map +1 -1
- package/lib/_utils/map.js +1 -1
- package/lib/_utils/map.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/map/src/map.js +4 -2
- package/lib/map/src/map.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
addCalToWindow = true,
|
|
13
13
|
timeout = 1e4
|
|
14
14
|
} = options;
|
|
15
|
-
if (isScriptLoaded
|
|
15
|
+
if (isScriptLoaded && window.BMapGL) {
|
|
16
16
|
return Promise.resolve();
|
|
17
17
|
}
|
|
18
18
|
return new Promise((resolve, reject) => {
|
|
@@ -217,11 +217,13 @@
|
|
|
217
217
|
});
|
|
218
218
|
vue.watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom);
|
|
219
219
|
};
|
|
220
|
-
vue.
|
|
221
|
-
if (
|
|
220
|
+
vue.watch(() => mergedStatusRef?.value, (value) => {
|
|
221
|
+
if (value === "loaded" && !map) {
|
|
222
222
|
vue.nextTick(init);
|
|
223
223
|
startWatchProps();
|
|
224
224
|
}
|
|
225
|
+
}, {
|
|
226
|
+
immediate: true
|
|
225
227
|
});
|
|
226
228
|
vue.onUnmounted(() => {
|
|
227
229
|
if (map) {
|
|
@@ -243,10 +245,45 @@
|
|
|
243
245
|
}
|
|
244
246
|
});
|
|
245
247
|
|
|
248
|
+
function create({
|
|
249
|
+
componentPrefix = "B",
|
|
250
|
+
components = []
|
|
251
|
+
} = {}) {
|
|
252
|
+
const installTargets = [];
|
|
253
|
+
function registerComponent(app, name, component) {
|
|
254
|
+
const registered = app.component(componentPrefix + name);
|
|
255
|
+
if (!registered) {
|
|
256
|
+
app.component(
|
|
257
|
+
componentPrefix + name,
|
|
258
|
+
component
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
function install(app) {
|
|
263
|
+
if (installTargets.includes(app))
|
|
264
|
+
return;
|
|
265
|
+
installTargets.push(app);
|
|
266
|
+
components.forEach((component) => {
|
|
267
|
+
const { name, alias } = component;
|
|
268
|
+
registerComponent(app, name, component);
|
|
269
|
+
if (alias) {
|
|
270
|
+
alias.forEach((aliasName) => {
|
|
271
|
+
registerComponent(app, aliasName, component);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
componentPrefix,
|
|
278
|
+
install
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
246
282
|
exports.BConfigProvider = configProvider;
|
|
247
283
|
exports.BMap = map;
|
|
248
284
|
exports.configProviderInjectionKey = configProviderInjectionKey;
|
|
249
285
|
exports.configProviderProps = configProviderProps;
|
|
286
|
+
exports.create = create;
|
|
250
287
|
exports.mapProps = mapProps;
|
|
251
288
|
|
|
252
289
|
}));
|
package/dist/index.prod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,o){"use strict";let t=!1;function
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,o){"use strict";let t=!1;function n(e){return e.some(e=>!o.isVNode(e)||e.type!==Comment&&!(e.type===o.Fragment&&!n(e.children)))?e:null}function a(e,o){return o(e&&n(e())||null)}const r={ak:String,apiUrl:String,plugins:Array,mapConfig:Object},l=Symbol("b-config-provider");var i=o.defineComponent({name:"ConfigProvider",props:r,setup(e,{slots:n}){const a=o.ref("notload"),r=e.apiUrl?"_initBMap_":`_initBMap_${e.ak}`,i=e.apiUrl?`${e.apiUrl.replace(/&$/,"")}&callback=${r}`:`//api.map.baidu.com/api?type=webgl&v=1.0&ak=${e.ak}&callback=${r}`;a.value="pending",function(e){const{key:o,src:n,addCalToWindow:a=!0,timeout:r=1e4}=e;return t&&window.BMapGL?Promise.resolve():new Promise((e,l)=>{const i=document.createElement("script");i.src=n,i.type="text/javascript",i.defer=!0;const m=()=>{i.onload=null,i.onerror=null,document.body.contains(i)&&document.body.removeChild(i)},d=setTimeout(()=>{m(),l(new Error(`Script load timeout: ${n}`))},r),c=()=>{clearTimeout(d),t=!0,m(),e()};a?window[o]=c:i.onload=c,i.onerror=()=>{clearTimeout(d),m(),l(new Error(`Failed to load script: ${n}`))},document.body.appendChild(i)})}({key:r,src:i}).then(()=>{a.value="loaded"}).catch(()=>{a.value="failed"});const m=o.computed(()=>{const{mapConfig:o}=e;return o??{}});return o.provide(l,{mergedStatusRef:a,mergedMapSetRef:m}),()=>o.renderSlot(n,"default")}});const m={maxZoom:{type:Number,default:21},minZoom:{type:Number,default:0},center:{type:Object,default:[116.403901,39.915185]},zoom:{type:Number,default:14},class:String,enableScrollWheelZoom:{type:Boolean,default:!1}};var d="map-module_b-map-content__sMaJG",c="map-module_b-map-loading__qc4a8",p="map-module_b-map-failed__-w-tX";!function(e,o){void 0===o&&(o={});var t=o.insertAt;if("undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===t&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".map-module_b-map-content__sMaJG{height:100%;overflow:hidden;position:relative;width:100%}.map-module_b-map-failed__-w-tX,.map-module_b-map-loading__qc4a8{color:#999;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}");var u=o.defineComponent({name:"Map",props:m,slots:Object,setup(e,{slots:t}){const{mergedMapSetRef:n,mergedStatusRef:r}=function(e={}){const t=o.inject(l,null);return{mergedStatusRef:t?.mergedStatusRef,mergedMapSetRef:o.computed(()=>{const{zoom:o,center:n,minZoom:a,maxZoom:r}=e;return{zoom:o??t?.mergedMapSetRef.value?.zoom,center:n??t?.mergedMapSetRef.value?.center,minZoom:a??t?.mergedMapSetRef.value?.minZoom,maxZoom:r??t?.mergedMapSetRef.value?.maxZoom}})}}(e),i=o.ref();let m=null;const u=e=>{"string"==typeof e?m.centerAndZoom(e,n.value.zoom):Array.isArray(e)?m.centerAndZoom(new BMapGL.Point(e[0],e[1]),n.value.zoom):m.centerAndZoom(new BMapGL.Point(e.lng,e.lat),n.value.zoom)},s=e=>{e?m.enableScrollWheelZoom():m.disableScrollWheelZoom()},f=()=>{const{center:e,maxZoom:o,minZoom:t,enableScrollWheelZoom:a}=n.value;m=new BMapGL.Map(i.value,{maxZoom:o,minZoom:t}),u(e),s(a)};return o.watch(()=>r?.value,e=>{"loaded"!==e||m||(o.nextTick(f),o.watch(()=>n.value.center,u,{deep:!0}),o.watch(()=>n.value.enableScrollWheelZoom,s))},{immediate:!0}),o.onUnmounted(()=>{if(m)try{m.destroy()}catch(e){console.error(`[Vue3 BMapGL]: ${e.message}`)}}),()=>o.createVNode("div",{ref:i,class:[d,e.class]},["pending"===r?.value&&a(t.loading,()=>o.createVNode("div",{class:[c]},[o.createTextVNode("map loading...")])),"failed"===r?.value&&a(t.failed,()=>o.createVNode("div",{class:[p]},[o.createTextVNode("map failed")])),t.default?.()])}});e.BConfigProvider=i,e.BMap=u,e.configProviderInjectionKey=l,e.configProviderProps=r,e.create=function({componentPrefix:e="B",components:o=[]}={}){const t=[];function n(o,t,n){o.component(e+t)||o.component(e+t,n)}return{componentPrefix:e,install:function(e){t.includes(e)||(t.push(e),o.forEach(o=>{const{name:t,alias:a}=o;n(e,t,o),a&&a.forEach(t=>{n(e,t,o)})}))}}},e.mapProps=m});
|
package/es/_utils/map.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
let isScriptLoaded = false;
|
|
2
2
|
function loader(options) {
|
|
3
3
|
const { key, src, addCalToWindow = true, timeout = 1e4 } = options;
|
|
4
|
-
if (isScriptLoaded
|
|
4
|
+
if (isScriptLoaded && window.BMapGL) {
|
|
5
5
|
return Promise.resolve();
|
|
6
6
|
}
|
|
7
7
|
return new Promise((resolve, reject) => {
|
package/es/_utils/map.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.mjs","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded
|
|
1
|
+
{"version":3,"file":"map.mjs","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded && window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n"],"names":[],"mappings":"AAOA,IAAI,cAAA,GAAiB,KAAA;AAEf,SAAU,OAAO,OAAA,EAAsB;AAC3C,EAAA,MAAM,EACJ,GAAA,EACA,GAAA,EACA,iBAAiB,IAAA,EACjB,OAAA,GAAU,KAAK,GACb,OAAA;AAEJ,EAAA,IAAI,cAAA,IAAkB,OAAO,MAAA,EAAQ;AACnC,IAAA,OAAO,QAAQ,OAAA,EAAO;AAAA,EACxB;AAEA,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAU;AACrC,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAA,CAAO,IAAA,GAAO,iBAAA;AACd,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AAEf,IAAA,MAAM,UAAU,MAAK;AACnB,MAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAChB,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AACjB,MAAA,IAAI,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AAClC,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,KAAA,GAAQ,WAAW,MAAK;AAC5B,MAAA,OAAA;AACA,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,GAAG,EAAE,CAAC,CAAA;AAAA,IACjD,GAAG,OAAO,CAAA;AAEV,IAAA,MAAM,aAAa,MAAK;AACtB,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,cAAA,GAAiB,IAAA;AACjB,MAAA,OAAA;AACA,MAAA,OAAA;IACF,CAAA;AAEA,IAAA,IAAI,cAAA,EAAgB;AACjB,MAAA,MAAA,CAAe,GAAG,CAAA,GAAI,UAAA;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,MAAA,GAAS,UAAA;AAAA,IAClB;AAEA,IAAA,MAAA,CAAO,UAAU,MAAK;AACpB,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,OAAA;AACA,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,GAAG,EAAE,CAAC,CAAA;AAAA,IACnD,CAAA;AAEA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,EAClC,CAAC,CAAA;AACH;;;;"}
|
package/es/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './components';
|
|
2
|
-
export
|
|
2
|
+
export { default as create } from './create';
|
package/es/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { default as create } from './create.mjs';
|
|
1
2
|
export { default as BConfigProvider } from './config-provider/src/config-provider.mjs';
|
|
2
3
|
export { configProviderProps } from './config-provider/src/config-provider-props.mjs';
|
|
3
4
|
export { configProviderInjectionKey } from './config-provider/src/constants.mjs';
|
package/es/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
package/es/map/src/map.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref,
|
|
1
|
+
import { defineComponent, ref, watch, nextTick, onUnmounted, createVNode, createTextVNode } from 'vue';
|
|
2
2
|
import { mapProps } from './map-props.mjs';
|
|
3
3
|
import styles from './style/map.module.css.mjs';
|
|
4
4
|
import useConfig from '../../_mixins/use-config.mjs';
|
|
@@ -49,11 +49,13 @@ var map = /* @__PURE__ */ defineComponent({
|
|
|
49
49
|
});
|
|
50
50
|
watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom);
|
|
51
51
|
};
|
|
52
|
-
|
|
53
|
-
if (
|
|
52
|
+
watch(() => mergedStatusRef === null || mergedStatusRef === void 0 ? void 0 : mergedStatusRef.value, (value) => {
|
|
53
|
+
if (value === "loaded" && !map) {
|
|
54
54
|
nextTick(init);
|
|
55
55
|
startWatchProps();
|
|
56
56
|
}
|
|
57
|
+
}, {
|
|
58
|
+
immediate: true
|
|
57
59
|
});
|
|
58
60
|
onUnmounted(() => {
|
|
59
61
|
if (map) {
|
package/es/map/src/map.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.mjs","sources":["../../../src/map/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/map/src/map.tsx"],"sourcesContent":["import type { SlotsType, VNode } from 'vue'\r\nimport { defineComponent, nextTick, onUnmounted, ref, watch, watchEffect } from 'vue'\r\nimport { useConfig } from '../../_mixins'\r\nimport { resolveWrappedSlot } from '../../_utils'\r\nimport { mapProps } from './map-props'\r\nimport styles from './style/map.module.css'\r\n\r\nexport interface MapSlots {\r\n default?: () => VNode[]\r\n loading?: () => VNode[]\r\n failed?: () => VNode[]\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Map',\r\n props: mapProps,\r\n slots: Object as SlotsType<MapSlots>,\r\n setup(props, { slots }) {\r\n const { mergedMapSetRef, mergedStatusRef } = useConfig(props)\r\n\r\n const contentRef = ref<HTMLDivElement | null>()\r\n let map: BMapGL.Map | null = null\r\n\r\n const setCenterAndZoom = (center: BMapGL.Point | string | [number, number]) => {\r\n if (typeof center === 'string') {\r\n map!.centerAndZoom(center, mergedMapSetRef.value.zoom!)\r\n } else if (Array.isArray(center)) {\r\n map!.centerAndZoom(new BMapGL.Point(center[0], center[1]), mergedMapSetRef.value.zoom!)\r\n } else {\r\n map!.centerAndZoom(new BMapGL.Point(center.lng, center.lat), mergedMapSetRef.value.zoom!)\r\n }\r\n }\r\n\r\n const setScrollWheelZoom = (enableScrollWheelZoom?: boolean) => {\r\n enableScrollWheelZoom ? map!.enableScrollWheelZoom() : map!.disableScrollWheelZoom()\r\n }\r\n\r\n const init = () => {\r\n const { center, maxZoom, minZoom, enableScrollWheelZoom } = mergedMapSetRef.value\r\n map = new BMapGL.Map(contentRef.value!, {\r\n maxZoom,\r\n minZoom,\r\n })\r\n setCenterAndZoom(center!)\r\n setScrollWheelZoom(enableScrollWheelZoom)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => mergedMapSetRef.value.center!, setCenterAndZoom, { deep: true })\r\n watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom)\r\n }\r\n\r\n
|
|
1
|
+
{"version":3,"file":"map.mjs","sources":["../../../src/map/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/map/src/map.tsx"],"sourcesContent":["import type { SlotsType, VNode } from 'vue'\r\nimport { defineComponent, nextTick, onUnmounted, ref, watch, watchEffect } from 'vue'\r\nimport { useConfig } from '../../_mixins'\r\nimport { resolveWrappedSlot } from '../../_utils'\r\nimport { mapProps } from './map-props'\r\nimport styles from './style/map.module.css'\r\n\r\nexport interface MapSlots {\r\n default?: () => VNode[]\r\n loading?: () => VNode[]\r\n failed?: () => VNode[]\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Map',\r\n props: mapProps,\r\n slots: Object as SlotsType<MapSlots>,\r\n setup(props, { slots }) {\r\n const { mergedMapSetRef, mergedStatusRef } = useConfig(props)\r\n\r\n const contentRef = ref<HTMLDivElement | null>()\r\n let map: BMapGL.Map | null = null\r\n\r\n const setCenterAndZoom = (center: BMapGL.Point | string | [number, number]) => {\r\n if (typeof center === 'string') {\r\n map!.centerAndZoom(center, mergedMapSetRef.value.zoom!)\r\n } else if (Array.isArray(center)) {\r\n map!.centerAndZoom(new BMapGL.Point(center[0], center[1]), mergedMapSetRef.value.zoom!)\r\n } else {\r\n map!.centerAndZoom(new BMapGL.Point(center.lng, center.lat), mergedMapSetRef.value.zoom!)\r\n }\r\n }\r\n\r\n const setScrollWheelZoom = (enableScrollWheelZoom?: boolean) => {\r\n enableScrollWheelZoom ? map!.enableScrollWheelZoom() : map!.disableScrollWheelZoom()\r\n }\r\n\r\n const init = () => {\r\n const { center, maxZoom, minZoom, enableScrollWheelZoom } = mergedMapSetRef.value\r\n map = new BMapGL.Map(contentRef.value!, {\r\n maxZoom,\r\n minZoom,\r\n })\r\n setCenterAndZoom(center!)\r\n setScrollWheelZoom(enableScrollWheelZoom)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => mergedMapSetRef.value.center!, setCenterAndZoom, { deep: true })\r\n watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom)\r\n }\r\n\r\n watch(() => mergedStatusRef?.value, (value) => {\r\n if (value === 'loaded' && !map) {\r\n nextTick(init)\r\n startWatchProps()\r\n }\r\n }, { immediate: true })\r\n\r\n onUnmounted(() => {\r\n if (map) {\r\n try {\r\n map.destroy()\r\n } catch (error: any) {\r\n console.error(`[Vue3 BMapGL]: ${error.message}`)\r\n }\r\n }\r\n })\r\n\r\n return () => (\r\n <div ref={contentRef} class={[styles['b-map-content'], props.class]}>\r\n {mergedStatusRef?.value === 'pending'\r\n && resolveWrappedSlot(slots.loading, () =>\r\n (<div class={[styles['b-map-loading']]}>map loading...</div>))}\r\n {mergedStatusRef?.value === 'failed'\r\n && resolveWrappedSlot(slots.failed, () =>\r\n (<div class={[styles['b-map-failed']]}>map failed</div>))}\r\n {slots.default?.()}\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["name","props","mapProps","slots","Object","setup","mergedMapSetRef","mergedStatusRef","useConfig","contentRef","ref","map","setCenterAndZoom","center","centerAndZoom","value","zoom","Array","isArray","BMapGL","Point","lng","lat","setScrollWheelZoom","enableScrollWheelZoom","disableScrollWheelZoom","init","maxZoom","minZoom","Map","startWatchProps","watch","deep","nextTick","immediate","onUnmounted","destroy","error","console","message","_createVNode","styles","class","resolveWrappedSlot","loading","_createTextVNode","failed","_a","default"],"mappings":"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"}
|
package/lib/_utils/map.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
let isScriptLoaded = false;
|
|
4
4
|
function loader(options) {
|
|
5
5
|
const { key, src, addCalToWindow = true, timeout = 1e4 } = options;
|
|
6
|
-
if (isScriptLoaded
|
|
6
|
+
if (isScriptLoaded && window.BMapGL) {
|
|
7
7
|
return Promise.resolve();
|
|
8
8
|
}
|
|
9
9
|
return new Promise((resolve, reject) => {
|
package/lib/_utils/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded
|
|
1
|
+
{"version":3,"file":"map.js","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded && window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n"],"names":[],"mappings":";;AAOA,IAAI,cAAA,GAAiB,KAAA;AAEf,SAAU,OAAO,OAAA,EAAsB;AAC3C,EAAA,MAAM,EACJ,GAAA,EACA,GAAA,EACA,iBAAiB,IAAA,EACjB,OAAA,GAAU,KAAK,GACb,OAAA;AAEJ,EAAA,IAAI,cAAA,IAAkB,OAAO,MAAA,EAAQ;AACnC,IAAA,OAAO,QAAQ,OAAA,EAAO;AAAA,EACxB;AAEA,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAU;AACrC,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAA,CAAO,IAAA,GAAO,iBAAA;AACd,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AAEf,IAAA,MAAM,UAAU,MAAK;AACnB,MAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAChB,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AACjB,MAAA,IAAI,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AAClC,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,KAAA,GAAQ,WAAW,MAAK;AAC5B,MAAA,OAAA;AACA,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,GAAG,EAAE,CAAC,CAAA;AAAA,IACjD,GAAG,OAAO,CAAA;AAEV,IAAA,MAAM,aAAa,MAAK;AACtB,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,cAAA,GAAiB,IAAA;AACjB,MAAA,OAAA;AACA,MAAA,OAAA;IACF,CAAA;AAEA,IAAA,IAAI,cAAA,EAAgB;AACjB,MAAA,MAAA,CAAe,GAAG,CAAA,GAAI,UAAA;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,MAAA,GAAS,UAAA;AAAA,IAClB;AAEA,IAAA,MAAA,CAAO,UAAU,MAAK;AACpB,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,OAAA;AACA,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,GAAG,EAAE,CAAC,CAAA;AAAA,IACnD,CAAA;AAEA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,EAClC,CAAC,CAAA;AACH;;;;"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './components';
|
|
2
|
-
export
|
|
2
|
+
export { default as create } from './create';
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var create = require('./create.js');
|
|
3
4
|
var configProvider = require('./config-provider/src/config-provider.js');
|
|
4
5
|
var configProviderProps = require('./config-provider/src/config-provider-props.js');
|
|
5
6
|
var constants = require('./config-provider/src/constants.js');
|
|
@@ -8,6 +9,7 @@ var mapProps = require('./map/src/map-props.js');
|
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
exports.create = create;
|
|
11
13
|
exports.BConfigProvider = configProvider;
|
|
12
14
|
exports.configProviderProps = configProviderProps.configProviderProps;
|
|
13
15
|
exports.configProviderInjectionKey = constants.configProviderInjectionKey;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
package/lib/map/src/map.js
CHANGED
|
@@ -51,11 +51,13 @@ var map = /* @__PURE__ */ vue.defineComponent({
|
|
|
51
51
|
});
|
|
52
52
|
vue.watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom);
|
|
53
53
|
};
|
|
54
|
-
vue.
|
|
55
|
-
if (
|
|
54
|
+
vue.watch(() => mergedStatusRef === null || mergedStatusRef === void 0 ? void 0 : mergedStatusRef.value, (value) => {
|
|
55
|
+
if (value === "loaded" && !map) {
|
|
56
56
|
vue.nextTick(init);
|
|
57
57
|
startWatchProps();
|
|
58
58
|
}
|
|
59
|
+
}, {
|
|
60
|
+
immediate: true
|
|
59
61
|
});
|
|
60
62
|
vue.onUnmounted(() => {
|
|
61
63
|
if (map) {
|
package/lib/map/src/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sources":["../../../src/map/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/map/src/map.tsx"],"sourcesContent":["import type { SlotsType, VNode } from 'vue'\r\nimport { defineComponent, nextTick, onUnmounted, ref, watch, watchEffect } from 'vue'\r\nimport { useConfig } from '../../_mixins'\r\nimport { resolveWrappedSlot } from '../../_utils'\r\nimport { mapProps } from './map-props'\r\nimport styles from './style/map.module.css'\r\n\r\nexport interface MapSlots {\r\n default?: () => VNode[]\r\n loading?: () => VNode[]\r\n failed?: () => VNode[]\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Map',\r\n props: mapProps,\r\n slots: Object as SlotsType<MapSlots>,\r\n setup(props, { slots }) {\r\n const { mergedMapSetRef, mergedStatusRef } = useConfig(props)\r\n\r\n const contentRef = ref<HTMLDivElement | null>()\r\n let map: BMapGL.Map | null = null\r\n\r\n const setCenterAndZoom = (center: BMapGL.Point | string | [number, number]) => {\r\n if (typeof center === 'string') {\r\n map!.centerAndZoom(center, mergedMapSetRef.value.zoom!)\r\n } else if (Array.isArray(center)) {\r\n map!.centerAndZoom(new BMapGL.Point(center[0], center[1]), mergedMapSetRef.value.zoom!)\r\n } else {\r\n map!.centerAndZoom(new BMapGL.Point(center.lng, center.lat), mergedMapSetRef.value.zoom!)\r\n }\r\n }\r\n\r\n const setScrollWheelZoom = (enableScrollWheelZoom?: boolean) => {\r\n enableScrollWheelZoom ? map!.enableScrollWheelZoom() : map!.disableScrollWheelZoom()\r\n }\r\n\r\n const init = () => {\r\n const { center, maxZoom, minZoom, enableScrollWheelZoom } = mergedMapSetRef.value\r\n map = new BMapGL.Map(contentRef.value!, {\r\n maxZoom,\r\n minZoom,\r\n })\r\n setCenterAndZoom(center!)\r\n setScrollWheelZoom(enableScrollWheelZoom)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => mergedMapSetRef.value.center!, setCenterAndZoom, { deep: true })\r\n watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom)\r\n }\r\n\r\n
|
|
1
|
+
{"version":3,"file":"map.js","sources":["../../../src/map/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/map/src/map.tsx"],"sourcesContent":["import type { SlotsType, VNode } from 'vue'\r\nimport { defineComponent, nextTick, onUnmounted, ref, watch, watchEffect } from 'vue'\r\nimport { useConfig } from '../../_mixins'\r\nimport { resolveWrappedSlot } from '../../_utils'\r\nimport { mapProps } from './map-props'\r\nimport styles from './style/map.module.css'\r\n\r\nexport interface MapSlots {\r\n default?: () => VNode[]\r\n loading?: () => VNode[]\r\n failed?: () => VNode[]\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Map',\r\n props: mapProps,\r\n slots: Object as SlotsType<MapSlots>,\r\n setup(props, { slots }) {\r\n const { mergedMapSetRef, mergedStatusRef } = useConfig(props)\r\n\r\n const contentRef = ref<HTMLDivElement | null>()\r\n let map: BMapGL.Map | null = null\r\n\r\n const setCenterAndZoom = (center: BMapGL.Point | string | [number, number]) => {\r\n if (typeof center === 'string') {\r\n map!.centerAndZoom(center, mergedMapSetRef.value.zoom!)\r\n } else if (Array.isArray(center)) {\r\n map!.centerAndZoom(new BMapGL.Point(center[0], center[1]), mergedMapSetRef.value.zoom!)\r\n } else {\r\n map!.centerAndZoom(new BMapGL.Point(center.lng, center.lat), mergedMapSetRef.value.zoom!)\r\n }\r\n }\r\n\r\n const setScrollWheelZoom = (enableScrollWheelZoom?: boolean) => {\r\n enableScrollWheelZoom ? map!.enableScrollWheelZoom() : map!.disableScrollWheelZoom()\r\n }\r\n\r\n const init = () => {\r\n const { center, maxZoom, minZoom, enableScrollWheelZoom } = mergedMapSetRef.value\r\n map = new BMapGL.Map(contentRef.value!, {\r\n maxZoom,\r\n minZoom,\r\n })\r\n setCenterAndZoom(center!)\r\n setScrollWheelZoom(enableScrollWheelZoom)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => mergedMapSetRef.value.center!, setCenterAndZoom, { deep: true })\r\n watch(() => mergedMapSetRef.value.enableScrollWheelZoom, setScrollWheelZoom)\r\n }\r\n\r\n watch(() => mergedStatusRef?.value, (value) => {\r\n if (value === 'loaded' && !map) {\r\n nextTick(init)\r\n startWatchProps()\r\n }\r\n }, { immediate: true })\r\n\r\n onUnmounted(() => {\r\n if (map) {\r\n try {\r\n map.destroy()\r\n } catch (error: any) {\r\n console.error(`[Vue3 BMapGL]: ${error.message}`)\r\n }\r\n }\r\n })\r\n\r\n return () => (\r\n <div ref={contentRef} class={[styles['b-map-content'], props.class]}>\r\n {mergedStatusRef?.value === 'pending'\r\n && resolveWrappedSlot(slots.loading, () =>\r\n (<div class={[styles['b-map-loading']]}>map loading...</div>))}\r\n {mergedStatusRef?.value === 'failed'\r\n && resolveWrappedSlot(slots.failed, () =>\r\n (<div class={[styles['b-map-failed']]}>map failed</div>))}\r\n {slots.default?.()}\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["name","props","mapProps","slots","Object","setup","mergedMapSetRef","mergedStatusRef","useConfig","contentRef","ref","map","setCenterAndZoom","center","centerAndZoom","value","zoom","Array","isArray","BMapGL","Point","lng","lat","setScrollWheelZoom","enableScrollWheelZoom","disableScrollWheelZoom","init","maxZoom","minZoom","Map","startWatchProps","watch","deep","nextTick","immediate","onUnmounted","destroy","error","console","message","_createVNode","styles","class","resolveWrappedSlot","loading","_createTextVNode","failed","_a","default"],"mappings":"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"}
|