@maplat/ui 0.10.6 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/LICENSE +223 -223
  2. package/README.md +128 -91
  3. package/assets/locales/de/translation.json +71 -0
  4. package/{locales → assets/locales}/en/translation.json +70 -64
  5. package/{locales → assets/locales}/ja/translation.json +70 -64
  6. package/{locales → assets/locales}/ko/translation.json +71 -65
  7. package/assets/locales/vi/translation.json +71 -0
  8. package/{locales → assets/locales}/zh/translation.json +71 -65
  9. package/{locales → assets/locales}/zh-TW/translation.json +71 -65
  10. package/assets/parts/attr.png +0 -0
  11. package/assets/parts/border.png +0 -0
  12. package/assets/parts/compass.png +0 -0
  13. package/assets/parts/gps.png +0 -0
  14. package/assets/parts/help.png +0 -0
  15. package/assets/parts/hide_marker.png +0 -0
  16. package/assets/parts/home.png +0 -0
  17. package/assets/parts/marker_list.png +0 -0
  18. package/assets/parts/share.png +0 -0
  19. package/dist/absolute_url.d.ts +1 -0
  20. package/dist/assets/locales/de/translation.json +71 -0
  21. package/dist/assets/locales/en/translation.json +70 -64
  22. package/dist/assets/locales/ja/translation.json +70 -64
  23. package/dist/assets/locales/ko/translation.json +71 -65
  24. package/dist/assets/locales/vi/translation.json +71 -0
  25. package/dist/assets/locales/zh/translation.json +71 -65
  26. package/dist/assets/locales/zh-TW/translation.json +71 -65
  27. package/dist/contextmenu.d.ts +5 -0
  28. package/dist/function.d.ts +2 -0
  29. package/dist/icons.d.ts +7 -0
  30. package/dist/index.d.ts +64 -0
  31. package/dist/maplat-ui.es.js +9383 -0
  32. package/dist/maplat-ui.umd.js +205 -0
  33. package/dist/maplat_control.d.ts +55 -0
  34. package/dist/pointer_images.d.ts +2 -0
  35. package/dist/swiper_ex.d.ts +2 -0
  36. package/dist/types.d.ts +173 -0
  37. package/dist/ui_init.d.ts +4 -0
  38. package/dist/ui_marker.d.ts +9 -0
  39. package/dist/ui_utils.d.ts +9 -0
  40. package/less/bootstrap.less +7010 -7010
  41. package/less/contextmenu.css +8 -0
  42. package/less/font-awesome.less +51 -31
  43. package/less/iziToast.less +1732 -1732
  44. package/less/maplat-specific.less +1038 -652
  45. package/less/swiper4.css +715 -0
  46. package/less/ui.less +11 -11
  47. package/less/ui_packed.less +10 -10
  48. package/package.json +80 -79
  49. package/src/{absolute_url.js → absolute_url.ts} +1 -1
  50. package/src/contextmenu/base.ts +170 -0
  51. package/src/contextmenu/constants.ts +66 -0
  52. package/src/contextmenu/cssVars.ts +13 -0
  53. package/src/contextmenu/helpers/dom.ts +295 -0
  54. package/src/contextmenu/helpers/mix.ts +120 -0
  55. package/src/contextmenu/html.ts +161 -0
  56. package/src/contextmenu/internal.ts +293 -0
  57. package/src/contextmenu.ts +40 -0
  58. package/src/function.ts +36 -0
  59. package/src/icons.ts +46 -0
  60. package/src/index.ts +520 -0
  61. package/src/maplat_control.ts +686 -0
  62. package/src/pointer_images.ts +101 -0
  63. package/src/{service-worker.js → service-worker/index.ts} +5 -6
  64. package/src/swiper_augment.d.ts +13 -0
  65. package/src/{swiper_ex.js → swiper_ex.ts} +14 -10
  66. package/src/types.d.ts +31 -0
  67. package/src/types.ts +202 -0
  68. package/src/ui_init.ts +1066 -0
  69. package/src/ui_marker.ts +376 -0
  70. package/src/ui_utils.ts +87 -0
  71. package/dist/assets/fonts/a8c0074cf70b152b56105e6c4b227bd8.woff +0 -0
  72. package/dist/assets/fonts/cfeff2e898a64ebe7e6b5ec078b174c3.woff +0 -0
  73. package/dist/assets/images/09c3ce5a86d600e24f8e85de3a019853.png +0 -0
  74. package/dist/assets/images/0beac2cb41dfab43ddfd9df80b32b85d.png +0 -0
  75. package/dist/assets/images/1354b4f40dd58bb0f2a4871cb4ff81d8.png +0 -0
  76. package/dist/assets/images/2a61e310e46b50b5f8ddd5e905ba9db9.png +0 -0
  77. package/dist/assets/images/3131423d782cd3ea89a81247065e7f9d.png +0 -0
  78. package/dist/assets/images/41b2cf0fa604d3f196ca52337d238219.jpg +0 -0
  79. package/dist/assets/images/558bc7e8b9b6c5f41a7141cddb8cdb5e.png +0 -0
  80. package/dist/assets/images/56f7003805ed02f8a21199947651db2e.png +0 -0
  81. package/dist/assets/images/5ba349e3596aca094c41c56966b45dc7.png +0 -0
  82. package/dist/assets/images/6111b8076a2cf81c73f0e46f41a3af60.png +0 -0
  83. package/dist/assets/images/6345ee67d554fbfbf484ba4035ad19d9.jpg +0 -0
  84. package/dist/assets/images/649fce122b354de2ac725ba5f2661955.png +0 -0
  85. package/dist/assets/images/6a580287dea82c2fb9b214321a375145.png +0 -0
  86. package/dist/assets/images/6c5dba7f7d76e74c3a8c7c5b1c3fc544.png +0 -0
  87. package/dist/assets/images/6e1f2f2f6fed3c5cddeb925e7ae75aba.png +0 -0
  88. package/dist/assets/images/799a0177b0dc540682fa4a2e349a8f4f.png +0 -0
  89. package/dist/assets/images/7bef6f357e921c43f4f800cfcb757872.png +0 -0
  90. package/dist/assets/images/7d9d643a903df6f57b8b7386316021e5.png +0 -0
  91. package/dist/assets/images/7df82bae917b68159f84998182f2fdc6.png +0 -0
  92. package/dist/assets/images/8e5d0335f6598b8d874ba23ea9fb295f.png +0 -0
  93. package/dist/assets/images/90c32e751366be22777f3fe40a53fe06.png +0 -0
  94. package/dist/assets/images/9247459937b9c882303962e42bd8d989.png +0 -0
  95. package/dist/assets/images/927c34e7b9b2f95c82ba477993117eaf.png +0 -0
  96. package/dist/assets/images/95e9ca8285131f8ccb6da5052093173c.png +0 -0
  97. package/dist/assets/images/9a243e0cb0fc43e2a016d5d3aaa330d5.png +0 -0
  98. package/dist/assets/images/9ac6d81f417d6a5626b7c8d5a087c32b.png +0 -0
  99. package/dist/assets/images/9d3a01c866095b8b3e8e63f9cf11dd51.png +0 -0
  100. package/dist/assets/images/9df733bcb29a746cb16b47eedea9fc3a.png +0 -0
  101. package/dist/assets/images/acc6eab0ba9c470ae20fb4b74135e865.png +0 -0
  102. package/dist/assets/images/b9ae27f0a01228380dff76a33b605707.jpg +0 -0
  103. package/dist/assets/images/ba48b220f61a6e1028f1854326f43acd.png +0 -0
  104. package/dist/assets/images/bf67cc860289b85c0402a4d4f890a3bd.png +0 -0
  105. package/dist/assets/images/c49f2344772e33256ba24d64b59b20d1.png +0 -0
  106. package/dist/assets/images/ca6b77b234b18e7bb9b1ccda774da286.png +0 -0
  107. package/dist/assets/images/cd213169df16398b0017450e31788d73.png +0 -0
  108. package/dist/assets/images/f101a0974972eeab41189185a5c5b225.png +0 -0
  109. package/dist/assets/images/f115726e6249018905cca51653e1262c.png +0 -0
  110. package/dist/assets/images/f7acb820d978ab2dd69e8bf695c574d1.png +0 -0
  111. package/dist/assets/images/ffea4dd10bf2506aa1e0cd4c61426b42.png +0 -0
  112. package/dist/assets/maplat.css +0 -19
  113. package/dist/assets/maplat.css.map +0 -1
  114. package/dist/assets/maplat.js +0 -3
  115. package/dist/assets/maplat.js.LICENSE.txt +0 -43
  116. package/dist/assets/maplat.js.map +0 -1
  117. package/dist/index.html +0 -125
  118. package/dist/service-worker.js +0 -3
  119. package/dist/service-worker.js.LICENSE.txt +0 -1
  120. package/dist/service-worker.js.map +0 -1
  121. package/fonts/clarenbd-webfont.woff +0 -0
  122. package/fonts/fontawesome-webfont.woff +0 -0
  123. package/legacy/bootstrap-native.js +0 -1935
  124. package/legacy/detect-element-resize.js +0 -153
  125. package/legacy/iziToast.js +0 -1301
  126. package/legacy/page.js +0 -1153
  127. package/legacy/qrcode.js +0 -616
  128. package/legacy/sprintf.js +0 -285
  129. package/less/font-face.less +0 -11
  130. package/less/font-face_packed.less +0 -11
  131. package/parts/attr.png +0 -0
  132. package/parts/blue_marker.png +0 -0
  133. package/parts/bluedot.png +0 -0
  134. package/parts/bluedot_small.png +0 -0
  135. package/parts/bluedot_transparent.png +0 -0
  136. package/parts/border.png +0 -0
  137. package/parts/compass.png +0 -0
  138. package/parts/defaultpin.png +0 -0
  139. package/parts/defaultpin_selected.png +0 -0
  140. package/parts/gps.png +0 -0
  141. package/parts/gsi.jpg +0 -0
  142. package/parts/gsi_ortho.jpg +0 -0
  143. package/parts/help.png +0 -0
  144. package/parts/hide_marker.png +0 -0
  145. package/parts/home.png +0 -0
  146. package/parts/osm.jpg +0 -0
  147. package/parts/red_marker.png +0 -0
  148. package/parts/redcircle.png +0 -0
  149. package/parts/share.png +0 -0
  150. package/src/contextmenu.js +0 -29
  151. package/src/freeze_locales.js +0 -337
  152. package/src/function.js +0 -22
  153. package/src/index.js +0 -1778
  154. package/src/index_packed.js +0 -8
  155. package/src/maplat_control.js +0 -808
  156. package/src/pointer_images.js +0 -81
  157. /package/{parts → assets/parts}/Maplat.png +0 -0
  158. /package/{parts → assets/parts}/all_right_reserved.png +0 -0
  159. /package/{parts → assets/parts}/basemap.png +0 -0
  160. /package/{parts → assets/parts}/cc0.png +0 -0
  161. /package/{parts → assets/parts}/cc_by-nc-nd.png +0 -0
  162. /package/{parts → assets/parts}/cc_by-nc-sa.png +0 -0
  163. /package/{parts → assets/parts}/cc_by-nc.png +0 -0
  164. /package/{parts → assets/parts}/cc_by-nd.png +0 -0
  165. /package/{parts → assets/parts}/cc_by-sa.png +0 -0
  166. /package/{parts → assets/parts}/cc_by.png +0 -0
  167. /package/{parts → assets/parts}/favicon.png +0 -0
  168. /package/{parts → assets/parts}/fullscreen.png +0 -0
  169. /package/{parts → assets/parts}/loading.png +0 -0
  170. /package/{parts → assets/parts}/loading_image.png +0 -0
  171. /package/{parts → assets/parts}/minus.png +0 -0
  172. /package/{parts → assets/parts}/no_image.png +0 -0
  173. /package/{parts → assets/parts}/overlay.png +0 -0
  174. /package/{parts → assets/parts}/pd.png +0 -0
  175. /package/{parts → assets/parts}/plus.png +0 -0
  176. /package/{parts → assets/parts}/slider.png +0 -0
@@ -0,0 +1,101 @@
1
+ import { assets } from "@maplat/core";
2
+ // @ts-expect-error - PNG imports handled by Vite
3
+ import Maplat from "../assets/parts/Maplat.png";
4
+ // @ts-expect-error - PNG imports handled by Vite
5
+ import allright from "../assets/parts/all_right_reserved.png";
6
+ // @ts-expect-error - PNG imports handled by Vite
7
+ import attr from "../assets/parts/attr.png";
8
+ // @ts-expect-error - PNG imports handled by Vite
9
+ import basemap from "../assets/parts/basemap.png";
10
+ // @ts-expect-error - PNG imports handled by Vite
11
+ import border from "../assets/parts/border.png";
12
+ // @ts-expect-error - PNG imports handled by Vite
13
+ import cc0 from "../assets/parts/cc0.png";
14
+ // @ts-expect-error - PNG imports handled by Vite
15
+ import ccbnn from "../assets/parts/cc_by-nc-nd.png";
16
+ // @ts-expect-error - PNG imports handled by Vite
17
+ import ccbns from "../assets/parts/cc_by-nc-sa.png";
18
+ // @ts-expect-error - PNG imports handled by Vite
19
+ import ccbnc from "../assets/parts/cc_by-nc.png";
20
+ // @ts-expect-error - PNG imports handled by Vite
21
+ import ccbnd from "../assets/parts/cc_by-nd.png";
22
+ // @ts-expect-error - PNG imports handled by Vite
23
+ import ccbs from "../assets/parts/cc_by-sa.png";
24
+ // @ts-expect-error - PNG imports handled by Vite
25
+ import ccb from "../assets/parts/cc_by.png";
26
+ // @ts-expect-error - PNG imports handled by Vite
27
+ import compass from "../assets/parts/compass.png";
28
+ // @ts-expect-error - PNG imports handled by Vite
29
+ import favicon from "../assets/parts/favicon.png";
30
+ // @ts-expect-error - PNG imports handled by Vite
31
+ import fullscreen from "../assets/parts/fullscreen.png";
32
+ // @ts-expect-error - PNG imports handled by Vite
33
+ import gps from "../assets/parts/gps.png";
34
+ // @ts-expect-error - PNG imports handled by Vite
35
+ import help from "../assets/parts/help.png";
36
+ // @ts-expect-error - PNG imports handled by Vite
37
+ import hide from "../assets/parts/hide_marker.png";
38
+ // @ts-expect-error - PNG imports handled by Vite
39
+ import list from "../assets/parts/marker_list.png";
40
+ // @ts-expect-error - PNG imports handled by Vite
41
+ import home from "../assets/parts/home.png";
42
+ // @ts-expect-error - PNG imports handled by Vite
43
+ import loading from "../assets/parts/loading.png";
44
+ // @ts-expect-error - PNG imports handled by Vite
45
+ import loading_i from "../assets/parts/loading_image.png";
46
+ // @ts-expect-error - PNG imports handled by Vite
47
+ import minus from "../assets/parts/minus.png";
48
+ // @ts-expect-error - PNG imports handled by Vite
49
+ import noimg from "../assets/parts/no_image.png";
50
+ // @ts-expect-error - PNG imports handled by Vite
51
+ import overlay from "../assets/parts/overlay.png";
52
+ // @ts-expect-error - PNG imports handled by Vite
53
+ import pd from "../assets/parts/pd.png";
54
+ // @ts-expect-error - PNG imports handled by Vite
55
+ import plus from "../assets/parts/plus.png";
56
+ // @ts-expect-error - PNG imports handled by Vite
57
+ import share from "../assets/parts/share.png";
58
+ // @ts-expect-error - PNG imports handled by Vite
59
+ import slider from "../assets/parts/slider.png";
60
+
61
+ const pointer: Record<string, string> = {
62
+ "Maplat.png": Maplat,
63
+ "all_right_reserved.png": allright,
64
+ "attr.png": attr,
65
+ "basemap.png": basemap,
66
+ "bluedot.png": assets.bluedot,
67
+ "bluedot_transparent.png": assets.bluedot_transparent,
68
+ "bluedot_small.png": assets.bluedot_small,
69
+ "border.png": border,
70
+ "cc0.png": cc0,
71
+ "cc_by-nc-nd.png": ccbnn,
72
+ "cc_by-nc-sa.png": ccbns,
73
+ "cc_by-nc.png": ccbnc,
74
+ "cc_by-nd.png": ccbnd,
75
+ "cc_by-sa.png": ccbs,
76
+ "cc_by.png": ccb,
77
+ "compass.png": compass,
78
+ "defaultpin.png": assets.defaultpin,
79
+ "defaultpin_selected.png": assets.defaultpin_selected,
80
+ "favicon.png": favicon,
81
+ "fullscreen.png": fullscreen,
82
+ "gps.png": gps,
83
+ "gsi.jpg": assets.gsi,
84
+ "gsi_ortho.jpg": assets.gsi_ortho,
85
+ "help.png": help,
86
+ "hide_marker.png": hide,
87
+ "marker_list.png": list,
88
+ "home.png": home,
89
+ "loading.png": loading,
90
+ "loading_image.png": loading_i,
91
+ "minus.png": minus,
92
+ "no_image.png": noimg,
93
+ "osm.jpg": assets.osm,
94
+ "overlay.png": overlay,
95
+ "pd.png": pd,
96
+ "plus.png": plus,
97
+ "redcircle.png": assets.redcircle,
98
+ "share.png": share,
99
+ "slider.png": slider
100
+ };
101
+ export default pointer;
@@ -12,11 +12,11 @@
12
12
  */
13
13
 
14
14
  import { skipWaiting, clientsClaim } from "workbox-core";
15
- import { precacheAndRoute } from "workbox-precaching";
15
+ import { precacheAndRoute, PrecacheEntry } from "workbox-precaching";
16
16
  import { registerRoute } from "workbox-routing";
17
17
  import { StaleWhileRevalidate } from "workbox-strategies";
18
18
  import { ExpirationPlugin } from "workbox-expiration";
19
- import "weiwudi/src/weiwudi_gw";
19
+ import "@c4h/weiwudi/sw";
20
20
 
21
21
  skipWaiting();
22
22
  clientsClaim();
@@ -26,15 +26,14 @@ clientsClaim();
26
26
  * requests for URLs in the manifest.
27
27
  * See https://goo.gl/S9QRab
28
28
  */
29
- precacheAndRoute(self.__WB_MANIFEST);
30
- // eslint-disable-next-line no-undef
29
+ precacheAndRoute((self as any).__WB_MANIFEST as (string | PrecacheEntry)[], {});
30
+
31
31
  registerRoute(
32
32
  /(?:maps\/.+\.json|pwa\/.+|pois\/.+\.json|apps\/.+\.json|tmbs\/.+\.jpg|images\/.+\.(?:png|jpg))$/,
33
- // eslint-disable-next-line no-undef
33
+
34
34
  new StaleWhileRevalidate({
35
35
  cacheName: "resourcesCache",
36
36
  plugins: [
37
- // eslint-disable-next-line no-undef
38
37
  new ExpirationPlugin({
39
38
  maxAgeSeconds: 86400,
40
39
  purgeOnQuotaError: false
@@ -0,0 +1,13 @@
1
+ import "swiper";
2
+
3
+ declare module "swiper" {
4
+ interface Swiper {
5
+ slideToMapID(mapID: string): void;
6
+ setSlideMapID(mapID: string): void;
7
+ setSlideIndex(index: number): void;
8
+ setSlideIndexAsSelected(index: number): void;
9
+ setSlideMapIDAsSelected(mapID: string): void;
10
+ slideToIndex(index: number): void;
11
+ $el: HTMLElement[];
12
+ }
13
+ }
@@ -1,42 +1,46 @@
1
1
  import Swiper from "swiper";
2
2
 
3
- Swiper.prototype.slideToMapID = function (mapID) {
3
+ Swiper.prototype.slideToMapID = function (mapID: string) {
4
4
  const slide = this.$el[0].querySelector(".swiper-slide-active");
5
- if (slide.getAttribute("data") == mapID) return;
5
+ if (slide && slide.getAttribute("data") == mapID) return;
6
6
 
7
7
  const sliders = this.$el[0].querySelectorAll(".swiper-slide");
8
8
  for (let i = 0; i < sliders.length; i++) {
9
9
  const slider = sliders[i];
10
10
  if (slider.getAttribute("data") == mapID) {
11
11
  return this.slideToLoop(
12
- parseInt(slider.getAttribute("data-swiper-slide-index"))
12
+ parseInt(slider.getAttribute("data-swiper-slide-index") || "0")
13
13
  );
14
14
  }
15
15
  }
16
16
  };
17
17
 
18
- Swiper.prototype.slideToIndex = function (index) {
18
+ Swiper.prototype.slideToIndex = function (index: number) {
19
19
  const slide = this.$el[0].querySelector(".swiper-slide-active");
20
- if (parseInt(slide.getAttribute("data-swiper-slide-index")) == index) return;
20
+ if (
21
+ slide &&
22
+ parseInt(slide.getAttribute("data-swiper-slide-index") || "0") == index
23
+ )
24
+ return;
21
25
 
22
26
  this.slideToLoop(index);
23
27
  };
24
28
 
25
- Swiper.prototype.setSlideMapID = function (mapID) {
29
+ Swiper.prototype.setSlideMapID = function (mapID: string) {
26
30
  this.slideToMapID(mapID);
27
31
  this.setSlideMapIDAsSelected(mapID);
28
32
  };
29
33
 
30
- Swiper.prototype.setSlideIndex = function (index) {
34
+ Swiper.prototype.setSlideIndex = function (index: number) {
31
35
  this.slideToIndex(index);
32
36
  this.setSlideIndexAsSelected(index);
33
37
  };
34
38
 
35
- Swiper.prototype.setSlideIndexAsSelected = function (index) {
39
+ Swiper.prototype.setSlideIndexAsSelected = function (index: number) {
36
40
  const sliders = this.$el[0].querySelectorAll(".swiper-slide");
37
41
  for (let i = 0; i < sliders.length; i++) {
38
42
  const slider = sliders[i];
39
- if (slider.getAttribute("data-swiper-slide-index") == index) {
43
+ if (slider.getAttribute("data-swiper-slide-index") == index.toString()) {
40
44
  slider.classList.add("selected");
41
45
  } else {
42
46
  slider.classList.remove("selected");
@@ -44,7 +48,7 @@ Swiper.prototype.setSlideIndexAsSelected = function (index) {
44
48
  }
45
49
  };
46
50
 
47
- Swiper.prototype.setSlideMapIDAsSelected = function (mapID) {
51
+ Swiper.prototype.setSlideMapIDAsSelected = function (mapID: string) {
48
52
  const sliders = this.$el[0].querySelectorAll(".swiper-slide");
49
53
  for (let i = 0; i < sliders.length; i++) {
50
54
  const slider = sliders[i];
package/src/types.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ declare module "@maplat/core/dist/*";
2
+ declare module "@maplat/core/lib/*";
3
+ declare module "@c4h/weiwudi";
4
+ declare module "izitoast";
5
+ declare module "page";
6
+ declare module "qrcode";
7
+ declare module "sprintf-js";
8
+ declare module "ol/color";
9
+ declare module "ol/color.js";
10
+ declare module "ol/pixel";
11
+ declare module "ol/source/Vector.js";
12
+ declare module "ol/proj.js";
13
+ declare module "ol/style.js";
14
+ declare module "ol/Feature.js";
15
+ declare module "ol/geom/Point.js";
16
+ declare module "ol/geom/LineString.js";
17
+ declare module "ol/geom/Circle.js";
18
+ declare module "ol/sphere.js";
19
+ declare module "ol/events.js";
20
+ declare module "ol/events/Target.js";
21
+ declare module "bootstrap.native/dist/bootstrap-native-v4";
22
+ declare module "./pointer_images";
23
+ declare module "./function";
24
+ declare module "./absolute_url";
25
+ declare module "*.svg";
26
+ declare module "@turf/turf";
27
+
28
+ interface Window {
29
+ __WB_MANIFEST: unknown;
30
+ }
31
+ declare const __WB_MANIFEST: unknown;
package/src/types.ts ADDED
@@ -0,0 +1,202 @@
1
+ // Type definitions for Maplat UI
2
+
3
+ import { Swiper as SwiperClass } from "swiper";
4
+ import type { Control } from "ol/control";
5
+
6
+ export interface MaplatAppOption {
7
+ appid?: string;
8
+ fake?: boolean;
9
+ pwaManifest?: boolean | string;
10
+ pwaWorker?: string;
11
+ pwaScope?: string;
12
+ overlay?: boolean;
13
+ enableHideMarker?: boolean;
14
+ enableMarkerList?: boolean;
15
+ enableBorder?: boolean;
16
+ enableCache?: boolean;
17
+ stateUrl?: boolean;
18
+ enableShare?: boolean;
19
+ enablePoiHtmlNoScroll?: boolean;
20
+ disableNoimage?: boolean;
21
+ alwaysGpsOn?: boolean;
22
+ mobileIF?: boolean;
23
+ debug?: boolean;
24
+ appEnvelope?: boolean;
25
+ mapboxToken?: string;
26
+ googleApiKey?: string;
27
+ lang?: string;
28
+ restore?: RestoreState;
29
+ restoreSession?: boolean;
30
+ presentationMode?: boolean;
31
+ northTop?: boolean;
32
+ mapboxgl?: unknown;
33
+ maplibregl?: unknown;
34
+ markerList?: boolean;
35
+ icon?: string;
36
+ translateUI?: boolean;
37
+ }
38
+
39
+ export interface RestoreState {
40
+ mapID?: string;
41
+ backgroundID?: string;
42
+ transparency?: number;
43
+ position?: {
44
+ rotation?: number;
45
+ zoom?: number;
46
+ x?: number;
47
+ y?: number;
48
+ };
49
+ showBorder?: boolean;
50
+ hideMarker?: boolean;
51
+ hideLayer?: string;
52
+ openedMarker?: string;
53
+ }
54
+
55
+ export interface MapSource {
56
+ mapID: string;
57
+ title?: string;
58
+ officialTitle?: string;
59
+ label?: string;
60
+ width?: number;
61
+ height?: number;
62
+ envelope?: {
63
+ geometry: {
64
+ coordinates: number[][][];
65
+ };
66
+ };
67
+ envelopeColor?: string;
68
+ envelopeAreaIndex?: number;
69
+ xy2SysCoord?: (xy: number[]) => Promise<number[]> | number[];
70
+ thumbnail?: string;
71
+ }
72
+
73
+ export type MediaObject = {
74
+ src: string;
75
+ thumbnail?: string;
76
+ type?: string;
77
+ caption?: string;
78
+ desc?: string; // backward compatibility for caption
79
+ // Viewer specific attributes
80
+ "fit-to-container"?: boolean;
81
+ "debug-mode"?: boolean;
82
+ "camera-position"?: string;
83
+ "camera-target"?: string;
84
+ "show-texture"?: boolean;
85
+ [key: string]: unknown;
86
+ };
87
+
88
+ export type MediaSetting = string | MediaObject;
89
+
90
+ export interface MarkerData {
91
+ markerId: string;
92
+ lnglat?: number[];
93
+ title?: string;
94
+ icon?: string;
95
+ description?: string;
96
+ images?: string[];
97
+ image?: MediaSetting | MediaSetting[];
98
+ media?: MediaSetting | MediaSetting[];
99
+ address?: string;
100
+ desc?: string;
101
+ url?: string;
102
+ html?: string;
103
+ directgo?: string | { href: string; blank?: boolean };
104
+ namespaceID?: string;
105
+ name?: string;
106
+ }
107
+
108
+ export interface ClickMarkersEvent {
109
+ pixel: number[];
110
+ coord: number[];
111
+ list: MarkerData[];
112
+ }
113
+
114
+ export interface ContextMenuInterface {
115
+ clear: () => void;
116
+ extend: (items: unknown[]) => void;
117
+ on: (event: string, handler: (e: unknown) => void) => void;
118
+ un: (event: string, handler: (e: unknown) => void) => void;
119
+ Internal?: {
120
+ openMenu: (pixel: number[], coord: number[]) => void;
121
+ closeMenu: () => void;
122
+ opened: boolean;
123
+ };
124
+ }
125
+
126
+ export interface ClickMarkersEvent {
127
+ pixel: number[];
128
+ coord: number[];
129
+ list: MarkerData[];
130
+ }
131
+
132
+ export type EventCallback = (event: unknown) => void;
133
+ export type SwiperInstance = SwiperClass;
134
+ export type SliderControl = Control & {
135
+ get(prop: string): number;
136
+ set(prop: string, value: number): void;
137
+ element?: HTMLElement; // Changed from HTMLInputElement to HTMLElement to match common control pattern or just optional
138
+ setEnable(flag: boolean): void;
139
+ };
140
+
141
+ export interface RGB {
142
+ red: number;
143
+ green: number;
144
+ blue: number;
145
+ }
146
+
147
+ import type { MaplatUi } from "./index";
148
+
149
+ export interface ControlOptions {
150
+ target?: HTMLElement | string;
151
+ render?: (event: import("ol").MapEvent) => void;
152
+ className?: string;
153
+ tipLabel?: string;
154
+ initialValue?: number;
155
+ character?: string;
156
+ callback?: (this: Control) => void;
157
+ long_callback?: (this: Control) => void;
158
+ cls?: string;
159
+ ui?: MaplatUi;
160
+ zoomInLabel?: string | HTMLElement;
161
+ zoomOutLabel?: string | HTMLElement;
162
+ autoHide?: boolean;
163
+ label?: string | HTMLElement;
164
+ reverse?: boolean;
165
+ }
166
+
167
+ export interface ContextMenuItem {
168
+ text?: string;
169
+ classname?: string;
170
+ icon?: string;
171
+ callback?: (
172
+ obj: { coordinate: number[]; data: unknown },
173
+ map: unknown
174
+ ) => void;
175
+ data?: unknown;
176
+ items?: ContextMenuItem[];
177
+ separator?: boolean;
178
+ }
179
+
180
+ export interface ContextMenuOptions {
181
+ width?: number;
182
+ defaultItems?: boolean;
183
+ items?: ContextMenuItem[];
184
+ eventType?: string;
185
+ }
186
+
187
+ export interface ContextMenuInternalItem {
188
+ id: string;
189
+ submenu: number;
190
+ separator: boolean;
191
+ callback?: (
192
+ obj: { coordinate: number[]; data: unknown },
193
+ map: unknown
194
+ ) => void;
195
+ data?: unknown;
196
+ }
197
+
198
+ export interface ContextMenuEvent {
199
+ type: string;
200
+ pixel?: number[];
201
+ coordinate?: number[];
202
+ }