@antv/l7-component 2.21.0 → 2.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/es/assets/iconfont/iconfont.js +6 -6
  2. package/es/constants/index.js +2 -2
  3. package/es/control/baseControl/buttonControl.js +109 -144
  4. package/es/control/baseControl/control.js +212 -258
  5. package/es/control/baseControl/popperControl.js +67 -95
  6. package/es/control/baseControl/selectControl.js +132 -178
  7. package/es/control/exportImage.js +59 -142
  8. package/es/control/fullscreen.js +69 -100
  9. package/es/control/geoLocate.js +37 -84
  10. package/es/control/layerSwitch.js +111 -154
  11. package/es/control/logo.js +43 -69
  12. package/es/control/mapTheme.js +57 -98
  13. package/es/control/mouseLocation.js +37 -69
  14. package/es/control/scale.js +107 -135
  15. package/es/control/swipe.js +297 -393
  16. package/es/control/zoom.js +80 -112
  17. package/es/css/index.css +10 -7
  18. package/es/index.js +667 -1
  19. package/es/marker-layer.js +274 -326
  20. package/es/marker.d.ts +0 -2
  21. package/es/marker.js +394 -453
  22. package/es/popup/layerPopup.js +277 -321
  23. package/es/popup/popup.js +422 -482
  24. package/es/utils/anchor.js +6 -6
  25. package/es/utils/icon.js +4 -4
  26. package/es/utils/popper.js +180 -196
  27. package/es/utils/screenfull.js +29 -51
  28. package/lib/assets/iconfont/iconfont.js +6 -6
  29. package/lib/constants/index.d.ts +60 -0
  30. package/lib/constants/index.js +2 -2
  31. package/lib/control/baseControl/buttonControl.d.ts +60 -0
  32. package/lib/control/baseControl/buttonControl.js +110 -143
  33. package/lib/control/baseControl/control.d.ts +112 -0
  34. package/lib/control/baseControl/control.js +213 -257
  35. package/lib/control/baseControl/index.d.ts +4 -0
  36. package/lib/control/baseControl/index.js +5 -5
  37. package/lib/control/baseControl/popperControl.d.ts +28 -0
  38. package/lib/control/baseControl/popperControl.js +68 -94
  39. package/lib/control/baseControl/selectControl.d.ts +53 -0
  40. package/lib/control/baseControl/selectControl.js +133 -177
  41. package/lib/control/exportImage.d.ts +19 -0
  42. package/lib/control/exportImage.js +60 -141
  43. package/lib/control/fullscreen.d.ts +20 -0
  44. package/lib/control/fullscreen.js +70 -99
  45. package/lib/control/geoLocate.d.ts +17 -0
  46. package/lib/control/geoLocate.js +38 -83
  47. package/lib/control/layerSwitch.d.ts +27 -0
  48. package/lib/control/layerSwitch.js +112 -153
  49. package/lib/control/logo.d.ts +14 -0
  50. package/lib/control/logo.js +44 -69
  51. package/lib/control/mapTheme.d.ts +11 -0
  52. package/lib/control/mapTheme.js +58 -97
  53. package/lib/control/mouseLocation.d.ts +16 -0
  54. package/lib/control/mouseLocation.js +38 -68
  55. package/lib/control/scale.d.ts +35 -0
  56. package/lib/control/scale.js +108 -134
  57. package/lib/control/swipe.d.ts +66 -0
  58. package/lib/control/swipe.js +298 -392
  59. package/lib/control/zoom.d.ts +39 -0
  60. package/lib/control/zoom.js +81 -111
  61. package/lib/css/index.css +10 -7
  62. package/lib/index.d.ts +19 -0
  63. package/lib/index.js +683 -17
  64. package/lib/interface.d.ts +18 -0
  65. package/lib/marker-layer.d.ts +55 -0
  66. package/lib/marker-layer.js +276 -324
  67. package/lib/marker.d.ts +58 -0
  68. package/lib/marker.js +395 -452
  69. package/lib/popup/layerPopup.d.ts +99 -0
  70. package/lib/popup/layerPopup.js +278 -320
  71. package/lib/popup/popup.d.ts +142 -0
  72. package/lib/popup/popup.js +423 -481
  73. package/lib/utils/anchor.d.ts +22 -0
  74. package/lib/utils/anchor.js +6 -6
  75. package/lib/utils/icon.d.ts +1 -0
  76. package/lib/utils/icon.js +6 -5
  77. package/lib/utils/popper.d.ts +76 -0
  78. package/lib/utils/popper.js +184 -196
  79. package/lib/utils/screenfull.d.ts +2 -0
  80. package/lib/utils/screenfull.js +29 -52
  81. package/package.json +16 -20
  82. package/CHANGELOG.md +0 -325
  83. package/LICENSE.md +0 -21
@@ -5,157 +5,76 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.ExportImage = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
11
  var _icon = require("../utils/icon");
21
12
  var _buttonControl = _interopRequireDefault(require("./baseControl/buttonControl"));
22
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
23
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
24
- var ExportImage = exports.default = exports.ExportImage = /*#__PURE__*/function (_ButtonControl) {
25
- (0, _inherits2.default)(ExportImage, _ButtonControl);
26
- var _super = _createSuper(ExportImage);
27
- function ExportImage() {
13
+ class ExportImage extends _buttonControl.default {
14
+ constructor(...args) {
28
15
  var _this;
29
- (0, _classCallCheck2.default)(this, ExportImage);
30
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
31
- args[_key] = arguments[_key];
32
- }
33
- _this = _super.call.apply(_super, [this].concat(args));
34
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClick", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
35
- var onExport;
36
- return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
38
- case 0:
39
- onExport = _this.controlOption.onExport;
40
- _context.t0 = onExport === null || onExport === void 0;
41
- if (_context.t0) {
42
- _context.next = 8;
43
- break;
44
- }
45
- _context.t1 = onExport;
46
- _context.next = 6;
47
- return _this.getImage();
48
- case 6:
49
- _context.t2 = _context.sent;
50
- (0, _context.t1)(_context.t2);
51
- case 8:
52
- case "end":
53
- return _context.stop();
54
- }
55
- }, _callee);
56
- })));
16
+ super(...args);
17
+ _this = this;
18
+ (0, _defineProperty2.default)(this, "onClick", /*#__PURE__*/(0, _asyncToGenerator2.default)(function* () {
19
+ const {
20
+ onExport
21
+ } = _this.controlOption;
22
+ onExport === null || onExport === void 0 || onExport(yield _this.getImage());
23
+ }));
57
24
  /**
58
25
  * 将多张图片合并为一张图片
59
26
  * @protected
60
27
  * @param base64List
61
28
  */
62
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mergeImage", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
29
+ (0, _defineProperty2.default)(this, "mergeImage", /*#__PURE__*/(0, _asyncToGenerator2.default)(function* (...base64List) {
63
30
  var _this$mapsService$get, _this$mapsService$get2;
64
- var imageType,
65
- _ref3,
66
- _ref3$width,
67
- width,
68
- _ref3$height,
69
- height,
70
- canvas,
71
- context,
72
- _len2,
73
- base64List,
74
- _key2,
75
- imgList,
76
- _args2 = arguments;
77
- return _regenerator.default.wrap(function _callee2$(_context2) {
78
- while (1) switch (_context2.prev = _context2.next) {
79
- case 0:
80
- imageType = _this.controlOption.imageType;
81
- _ref3 = (_this$mapsService$get = (_this$mapsService$get2 = _this.mapsService.getContainer()) === null || _this$mapsService$get2 === void 0 ? void 0 : _this$mapsService$get2.getBoundingClientRect()) !== null && _this$mapsService$get !== void 0 ? _this$mapsService$get : {}, _ref3$width = _ref3.width, width = _ref3$width === void 0 ? 0 : _ref3$width, _ref3$height = _ref3.height, height = _ref3$height === void 0 ? 0 : _ref3$height;
82
- canvas = document.createElement('canvas');
83
- canvas.width = width;
84
- canvas.height = height;
85
- context = canvas.getContext('2d');
86
- for (_len2 = _args2.length, base64List = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
87
- base64List[_key2] = _args2[_key2];
88
- }
89
- _context2.next = 9;
90
- return Promise.all(base64List.map(function (base64) {
91
- return new Promise(function (resolve) {
92
- var img = new Image();
93
- img.onload = function () {
94
- resolve(img);
95
- };
96
- img.src = base64;
97
- });
98
- }));
99
- case 9:
100
- imgList = _context2.sent;
101
- imgList.forEach(function (img) {
102
- context === null || context === void 0 || context.drawImage(img, 0, 0, width, height);
103
- });
104
- return _context2.abrupt("return", canvas.toDataURL("image/".concat(imageType)));
105
- case 12:
106
- case "end":
107
- return _context2.stop();
108
- }
109
- }, _callee2);
110
- })));
111
- return _this;
112
- }
113
- (0, _createClass2.default)(ExportImage, [{
114
- key: "onAdd",
115
- value: function onAdd() {
116
- var button = (0, _get2.default)((0, _getPrototypeOf2.default)(ExportImage.prototype), "onAdd", this).call(this);
117
- button.addEventListener('click', this.onClick);
118
- return button;
119
- }
120
- }, {
121
- key: "getDefault",
122
- value: function getDefault(option) {
123
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ExportImage.prototype), "getDefault", this).call(this, option)), {}, {
124
- title: '导出图片',
125
- btnIcon: (0, _icon.createL7Icon)('l7-icon-export-picture'),
126
- imageType: 'png'
127
- });
128
- }
129
- }, {
130
- key: "getImage",
131
- value: function () {
132
- var _getImage = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
133
- var mapImage, layerImage;
134
- return _regenerator.default.wrap(function _callee3$(_context3) {
135
- while (1) switch (_context3.prev = _context3.next) {
136
- case 0:
137
- _context3.next = 2;
138
- return this.mapsService.exportMap('png');
139
- case 2:
140
- mapImage = _context3.sent;
141
- _context3.next = 5;
142
- return this.scene.exportPng('png');
143
- case 5:
144
- layerImage = _context3.sent;
145
- return _context3.abrupt("return", this.mergeImage.apply(this, (0, _toConsumableArray2.default)([mapImage, layerImage].filter(function (base64) {
146
- return base64;
147
- }))));
148
- case 7:
149
- case "end":
150
- return _context3.stop();
151
- }
152
- }, _callee3, this);
31
+ const {
32
+ imageType
33
+ } = _this.controlOption;
34
+ const {
35
+ width = 0,
36
+ height = 0
37
+ } = (_this$mapsService$get = (_this$mapsService$get2 = _this.mapsService.getContainer()) === null || _this$mapsService$get2 === void 0 ? void 0 : _this$mapsService$get2.getBoundingClientRect()) !== null && _this$mapsService$get !== void 0 ? _this$mapsService$get : {};
38
+ const canvas = document.createElement('canvas');
39
+ canvas.width = width;
40
+ canvas.height = height;
41
+ const context = canvas.getContext('2d');
42
+ const imgList = yield Promise.all(base64List.map(base64 => {
43
+ return new Promise(resolve => {
44
+ const img = new Image();
45
+ img.onload = () => {
46
+ resolve(img);
47
+ };
48
+ img.src = base64;
49
+ });
153
50
  }));
154
- function getImage() {
155
- return _getImage.apply(this, arguments);
156
- }
157
- return getImage;
158
- }()
159
- }]);
160
- return ExportImage;
161
- }(_buttonControl.default);
51
+ imgList.forEach(img => {
52
+ context === null || context === void 0 || context.drawImage(img, 0, 0, width, height);
53
+ });
54
+ return canvas.toDataURL(`image/${imageType}`);
55
+ }));
56
+ }
57
+ onAdd() {
58
+ const button = super.onAdd();
59
+ button.addEventListener('click', this.onClick);
60
+ return button;
61
+ }
62
+ getDefault(option) {
63
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, super.getDefault(option)), {}, {
64
+ title: '导出图片',
65
+ btnIcon: (0, _icon.createL7Icon)('l7-icon-export-picture'),
66
+ imageType: 'png'
67
+ });
68
+ }
69
+ getImage() {
70
+ var _this2 = this;
71
+ return (0, _asyncToGenerator2.default)(function* () {
72
+ const mapImage = yield _this2.mapsService.exportMap('png');
73
+ const layerImage = yield _this2.scene.exportPng('png');
74
+ return _this2.mergeImage(
75
+ // 在 Map 底图模式下 mapImage 为 undefined
76
+ ...[mapImage, layerImage].filter(base64 => base64));
77
+ })();
78
+ }
79
+ }
80
+ exports.default = exports.ExportImage = ExportImage;
@@ -0,0 +1,20 @@
1
+ import type { IButtonControlOption } from './baseControl/buttonControl';
2
+ import ButtonControl from './baseControl/buttonControl';
3
+ export interface IFullscreenControlOption extends IButtonControlOption {
4
+ exitBtnText: IButtonControlOption['btnText'];
5
+ exitBtnIcon: IButtonControlOption['btnIcon'];
6
+ exitTitle: IButtonControlOption['title'];
7
+ }
8
+ export { Fullscreen };
9
+ export default class Fullscreen extends ButtonControl<IFullscreenControlOption> {
10
+ protected isFullscreen: boolean;
11
+ protected mapContainer: HTMLElement;
12
+ constructor(option?: Partial<IFullscreenControlOption>);
13
+ setOptions(newOptions: Partial<IFullscreenControlOption>): void;
14
+ onAdd(): HTMLElement;
15
+ onRemove(): void;
16
+ getDefault(option?: Partial<IFullscreenControlOption>): IFullscreenControlOption;
17
+ toggleFullscreen: () => Promise<void>;
18
+ protected onClick: () => void;
19
+ protected onFullscreenChange: () => void;
20
+ }
@@ -5,120 +5,91 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.Fullscreen = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
11
  var _l7Utils = require("@antv/l7-utils");
20
12
  var _icon = require("../utils/icon");
21
13
  var _screenfull = _interopRequireDefault(require("../utils/screenfull"));
22
14
  var _buttonControl = _interopRequireDefault(require("./baseControl/buttonControl"));
23
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
24
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
- var Fullscreen = exports.default = exports.Fullscreen = /*#__PURE__*/function (_ButtonControl) {
26
- (0, _inherits2.default)(Fullscreen, _ButtonControl);
27
- var _super = _createSuper(Fullscreen);
28
- function Fullscreen(option) {
15
+ class Fullscreen extends _buttonControl.default {
16
+ constructor(option) {
29
17
  var _this;
30
- (0, _classCallCheck2.default)(this, Fullscreen);
31
- _this = _super.call(this, option);
32
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isFullscreen", false);
33
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "toggleFullscreen", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
34
- return _regenerator.default.wrap(function _callee$(_context) {
35
- while (1) switch (_context.prev = _context.next) {
36
- case 0:
37
- if (!_screenfull.default.isEnabled) {
38
- _context.next = 3;
39
- break;
40
- }
41
- _context.next = 3;
42
- return _screenfull.default.toggle(_this.mapContainer);
43
- case 3:
44
- case "end":
45
- return _context.stop();
46
- }
47
- }, _callee);
48
- })));
49
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClick", function () {
50
- _this.toggleFullscreen();
18
+ super(option);
19
+ _this = this;
20
+ (0, _defineProperty2.default)(this, "isFullscreen", false);
21
+ (0, _defineProperty2.default)(this, "mapContainer", void 0);
22
+ (0, _defineProperty2.default)(this, "toggleFullscreen", /*#__PURE__*/(0, _asyncToGenerator2.default)(function* () {
23
+ if (_screenfull.default.isEnabled) {
24
+ yield _screenfull.default.toggle(_this.mapContainer);
25
+ }
26
+ }));
27
+ (0, _defineProperty2.default)(this, "onClick", () => {
28
+ this.toggleFullscreen();
51
29
  });
52
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onFullscreenChange", function () {
53
- _this.isFullscreen = !!document.fullscreenElement;
54
- var _this$controlOption = _this.controlOption,
55
- btnText = _this$controlOption.btnText,
56
- btnIcon = _this$controlOption.btnIcon,
57
- title = _this$controlOption.title,
58
- exitBtnText = _this$controlOption.exitBtnText,
59
- exitBtnIcon = _this$controlOption.exitBtnIcon,
60
- exitTitle = _this$controlOption.exitTitle;
61
- if (_this.isFullscreen) {
62
- _this.setBtnTitle(exitTitle);
63
- _this.setBtnText(exitBtnText);
64
- _this.setBtnIcon(exitBtnIcon);
30
+ (0, _defineProperty2.default)(this, "onFullscreenChange", () => {
31
+ this.isFullscreen = !!document.fullscreenElement;
32
+ const {
33
+ btnText,
34
+ btnIcon,
35
+ title,
36
+ exitBtnText,
37
+ exitBtnIcon,
38
+ exitTitle
39
+ } = this.controlOption;
40
+ if (this.isFullscreen) {
41
+ this.setBtnTitle(exitTitle);
42
+ this.setBtnText(exitBtnText);
43
+ this.setBtnIcon(exitBtnIcon);
65
44
  } else {
66
- _this.setBtnTitle(title);
67
- _this.setBtnText(btnText);
68
- _this.setBtnIcon(btnIcon);
45
+ this.setBtnTitle(title);
46
+ this.setBtnText(btnText);
47
+ this.setBtnIcon(btnIcon);
69
48
  }
70
- _this.emit('fullscreenChange', _this.isFullscreen);
49
+ this.emit('fullscreenChange', this.isFullscreen);
71
50
  });
72
51
  if (!_screenfull.default.isEnabled) {
73
52
  console.warn('当前浏览器环境不支持对地图全屏化');
74
53
  }
75
- return _this;
76
54
  }
77
- (0, _createClass2.default)(Fullscreen, [{
78
- key: "setOptions",
79
- value: function setOptions(newOptions) {
80
- var exitBtnText = newOptions.exitBtnText,
81
- exitBtnIcon = newOptions.exitBtnIcon,
82
- exitTitle = newOptions.exitTitle;
83
- if (this.isFullscreen) {
84
- if (this.checkUpdateOption(newOptions, ['exitBtnIcon'])) {
85
- this.setBtnIcon(exitBtnIcon);
86
- }
87
- if (this.checkUpdateOption(newOptions, ['exitBtnText'])) {
88
- this.setBtnText(exitBtnText);
89
- }
90
- if (this.checkUpdateOption(newOptions, ['exitTitle'])) {
91
- this.setBtnTitle(exitTitle);
92
- }
55
+ setOptions(newOptions) {
56
+ const {
57
+ exitBtnText,
58
+ exitBtnIcon,
59
+ exitTitle
60
+ } = newOptions;
61
+ if (this.isFullscreen) {
62
+ if (this.checkUpdateOption(newOptions, ['exitBtnIcon'])) {
63
+ this.setBtnIcon(exitBtnIcon);
64
+ }
65
+ if (this.checkUpdateOption(newOptions, ['exitBtnText'])) {
66
+ this.setBtnText(exitBtnText);
67
+ }
68
+ if (this.checkUpdateOption(newOptions, ['exitTitle'])) {
69
+ this.setBtnTitle(exitTitle);
93
70
  }
94
- (0, _get2.default)((0, _getPrototypeOf2.default)(Fullscreen.prototype), "setOptions", this).call(this, newOptions);
95
- }
96
- }, {
97
- key: "onAdd",
98
- value: function onAdd() {
99
- var button = (0, _get2.default)((0, _getPrototypeOf2.default)(Fullscreen.prototype), "onAdd", this).call(this);
100
- button.addEventListener('click', this.onClick);
101
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
102
- this.mapContainer = _l7Utils.DOM.getContainer(this.scene.getSceneConfig().id);
103
- this.mapContainer.addEventListener('fullscreenchange', this.onFullscreenChange);
104
- return button;
105
- }
106
- }, {
107
- key: "onRemove",
108
- value: function onRemove() {
109
- (0, _get2.default)((0, _getPrototypeOf2.default)(Fullscreen.prototype), "onRemove", this).call(this);
110
- this.mapContainer.removeEventListener('fullscreenchange', this.onFullscreenChange);
111
- }
112
- }, {
113
- key: "getDefault",
114
- value: function getDefault(option) {
115
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(Fullscreen.prototype), "getDefault", this).call(this, option)), {}, {
116
- title: '全屏',
117
- btnIcon: (0, _icon.createL7Icon)('l7-icon-fullscreen'),
118
- exitTitle: '退出全屏',
119
- exitBtnIcon: (0, _icon.createL7Icon)('l7-icon-exit-fullscreen')
120
- });
121
71
  }
122
- }]);
123
- return Fullscreen;
124
- }(_buttonControl.default);
72
+ super.setOptions(newOptions);
73
+ }
74
+ onAdd() {
75
+ const button = super.onAdd();
76
+ button.addEventListener('click', this.onClick);
77
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
78
+ this.mapContainer = _l7Utils.DOM.getContainer(this.scene.getSceneConfig().id);
79
+ this.mapContainer.addEventListener('fullscreenchange', this.onFullscreenChange);
80
+ return button;
81
+ }
82
+ onRemove() {
83
+ super.onRemove();
84
+ this.mapContainer.removeEventListener('fullscreenchange', this.onFullscreenChange);
85
+ }
86
+ getDefault(option) {
87
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, super.getDefault(option)), {}, {
88
+ title: '全屏',
89
+ btnIcon: (0, _icon.createL7Icon)('l7-icon-fullscreen'),
90
+ exitTitle: '退出全屏',
91
+ exitBtnIcon: (0, _icon.createL7Icon)('l7-icon-exit-fullscreen')
92
+ });
93
+ }
94
+ }
95
+ exports.default = exports.Fullscreen = Fullscreen;
@@ -0,0 +1,17 @@
1
+ import type { Point } from '@antv/l7-core';
2
+ import type { IButtonControlOption } from './baseControl/buttonControl';
3
+ import ButtonControl from './baseControl/buttonControl';
4
+ export interface IGeoLocateOption extends IButtonControlOption {
5
+ transform: (position: Point) => Point | Promise<Point>;
6
+ }
7
+ export { GeoLocate };
8
+ export default class GeoLocate extends ButtonControl<IGeoLocateOption> {
9
+ constructor(option?: Partial<IGeoLocateOption>);
10
+ getDefault(option?: Partial<IGeoLocateOption>): IGeoLocateOption;
11
+ onAdd(): HTMLElement;
12
+ /**
13
+ * 通过浏览器 API 获取当前所在经纬度
14
+ */
15
+ getGeoLocation: () => Promise<Point>;
16
+ onClick: () => Promise<void>;
17
+ }
@@ -5,108 +5,63 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.GeoLocate = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
11
  var _icon = require("../utils/icon");
20
12
  var _buttonControl = _interopRequireDefault(require("./baseControl/buttonControl"));
21
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
22
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
23
- var GeoLocate = exports.default = exports.GeoLocate = /*#__PURE__*/function (_ButtonControl) {
24
- (0, _inherits2.default)(GeoLocate, _ButtonControl);
25
- var _super = _createSuper(GeoLocate);
26
- function GeoLocate(option) {
13
+ class GeoLocate extends _buttonControl.default {
14
+ constructor(option) {
27
15
  var _this;
28
- (0, _classCallCheck2.default)(this, GeoLocate);
29
- _this = _super.call(this, option);
16
+ super(option);
17
+ _this = this;
30
18
  /**
31
19
  * 通过浏览器 API 获取当前所在经纬度
32
20
  */
33
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getGeoLocation", function () {
34
- return new Promise(function (resolve, reject) {
35
- window.navigator.geolocation.getCurrentPosition(function (_ref) {
36
- var coords = _ref.coords;
37
- var _ref2 = coords !== null && coords !== void 0 ? coords : {},
38
- longitude = _ref2.longitude,
39
- latitude = _ref2.latitude;
21
+ (0, _defineProperty2.default)(this, "getGeoLocation", () => {
22
+ return new Promise((resolve, reject) => {
23
+ window.navigator.geolocation.getCurrentPosition(({
24
+ coords
25
+ }) => {
26
+ const {
27
+ longitude,
28
+ latitude
29
+ } = coords !== null && coords !== void 0 ? coords : {};
40
30
  if (!isNaN(longitude) && !isNaN(latitude)) {
41
31
  resolve([longitude, latitude]);
42
32
  } else {
43
33
  reject();
44
34
  }
45
- }, function (e) {
35
+ }, e => {
46
36
  reject(e);
47
37
  });
48
38
  });
49
39
  });
50
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClick", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
51
- var transform, position, currentZoom;
52
- return _regenerator.default.wrap(function _callee$(_context) {
53
- while (1) switch (_context.prev = _context.next) {
54
- case 0:
55
- if (window.navigator.geolocation) {
56
- _context.next = 2;
57
- break;
58
- }
59
- return _context.abrupt("return");
60
- case 2:
61
- transform = _this.controlOption.transform;
62
- _context.next = 5;
63
- return _this.getGeoLocation();
64
- case 5:
65
- position = _context.sent;
66
- currentZoom = _this.mapsService.getZoom();
67
- _context.t0 = _this.mapsService;
68
- _context.t1 = currentZoom > 15 ? currentZoom : 15;
69
- if (!transform) {
70
- _context.next = 15;
71
- break;
72
- }
73
- _context.next = 12;
74
- return transform(position);
75
- case 12:
76
- _context.t2 = _context.sent;
77
- _context.next = 16;
78
- break;
79
- case 15:
80
- _context.t2 = position;
81
- case 16:
82
- _context.t3 = _context.t2;
83
- _context.t0.setZoomAndCenter.call(_context.t0, _context.t1, _context.t3);
84
- case 18:
85
- case "end":
86
- return _context.stop();
87
- }
88
- }, _callee);
89
- })));
40
+ (0, _defineProperty2.default)(this, "onClick", /*#__PURE__*/(0, _asyncToGenerator2.default)(function* () {
41
+ if (!window.navigator.geolocation) {
42
+ return;
43
+ }
44
+ const {
45
+ transform
46
+ } = _this.controlOption;
47
+ const position = yield _this.getGeoLocation();
48
+ const currentZoom = _this.mapsService.getZoom();
49
+ _this.mapsService.setZoomAndCenter(currentZoom > 15 ? currentZoom : 15, transform ? yield transform(position) : position);
50
+ }));
90
51
  if (!window.navigator.geolocation) {
91
52
  console.warn('当前浏览器环境不支持获取地理定位');
92
53
  }
93
- return _this;
94
54
  }
95
- (0, _createClass2.default)(GeoLocate, [{
96
- key: "getDefault",
97
- value: function getDefault(option) {
98
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(GeoLocate.prototype), "getDefault", this).call(this, option)), {}, {
99
- title: '定位',
100
- btnIcon: (0, _icon.createL7Icon)('l7-icon-reposition')
101
- });
102
- }
103
- }, {
104
- key: "onAdd",
105
- value: function onAdd() {
106
- var button = (0, _get2.default)((0, _getPrototypeOf2.default)(GeoLocate.prototype), "onAdd", this).call(this);
107
- button.addEventListener('click', this.onClick);
108
- return button;
109
- }
110
- }]);
111
- return GeoLocate;
112
- }(_buttonControl.default);
55
+ getDefault(option) {
56
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, super.getDefault(option)), {}, {
57
+ title: '定位',
58
+ btnIcon: (0, _icon.createL7Icon)('l7-icon-reposition')
59
+ });
60
+ }
61
+ onAdd() {
62
+ const button = super.onAdd();
63
+ button.addEventListener('click', this.onClick);
64
+ return button;
65
+ }
66
+ }
67
+ exports.default = exports.GeoLocate = GeoLocate;
@@ -0,0 +1,27 @@
1
+ import type { ILayer } from '@antv/l7-core';
2
+ import type { ControlOptionItem, ISelectControlOption } from './baseControl/selectControl';
3
+ import SelectControl from './baseControl/selectControl';
4
+ export type LayerSwitchItem = {
5
+ layer: ILayer;
6
+ name?: string;
7
+ img?: string;
8
+ };
9
+ export interface ILayerSwitchOption extends ISelectControlOption {
10
+ layers: Array<ILayer | string | LayerSwitchItem>;
11
+ multiple: boolean;
12
+ }
13
+ export { LayerSwitch };
14
+ export default class LayerSwitch extends SelectControl<ILayerSwitchOption> {
15
+ protected get layers(): ILayer[];
16
+ getDefault(option?: Partial<ILayerSwitchOption>): ILayerSwitchOption;
17
+ getLayerVisible(): string[];
18
+ getLayerOptions(): ControlOptionItem[];
19
+ setOptions(option: Partial<ILayerSwitchOption>): void;
20
+ private handleSingleSelection;
21
+ onAdd(): HTMLElement;
22
+ onRemove(): void;
23
+ protected onLayerChange: () => void;
24
+ protected onLayerVisibleChane: () => void;
25
+ protected onSelectChange: () => void;
26
+ protected getIsMultiple(): boolean;
27
+ }