@antv/l7-component 2.18.2 → 2.18.3
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/es/assets/iconfont/iconfont.js +46 -0
- package/es/constants/index.d.ts +60 -0
- package/es/constants/index.js +60 -0
- package/es/control/baseControl/buttonControl.d.ts +59 -0
- package/es/control/baseControl/buttonControl.js +177 -0
- package/es/control/baseControl/control.d.ts +112 -0
- package/es/control/baseControl/control.js +302 -0
- package/es/control/baseControl/index.d.ts +4 -0
- package/es/control/baseControl/index.js +4 -0
- package/es/control/baseControl/popperControl.d.ts +26 -0
- package/es/control/baseControl/popperControl.js +120 -0
- package/es/control/baseControl/selectControl.d.ts +46 -0
- package/es/control/baseControl/selectControl.js +204 -0
- package/es/control/exportImage.d.ts +18 -0
- package/es/control/exportImage.js +159 -0
- package/es/control/fullscreen.d.ts +19 -0
- package/es/control/fullscreen.js +119 -0
- package/es/control/geoLocate.d.ts +16 -0
- package/es/control/geoLocate.js +107 -0
- package/es/control/layerSwitch.d.ts +19 -0
- package/es/control/layerSwitch.js +141 -0
- package/es/control/logo.d.ts +13 -0
- package/es/control/logo.js +75 -0
- package/es/control/mapTheme.d.ts +10 -0
- package/es/control/mapTheme.js +110 -0
- package/es/control/mouseLocation.d.ts +15 -0
- package/es/control/mouseLocation.js +83 -0
- package/es/control/scale.d.ts +34 -0
- package/es/control/scale.js +149 -0
- package/es/control/zoom.d.ts +38 -0
- package/es/control/zoom.js +132 -0
- package/es/css/button.less +70 -0
- package/es/css/control.less +71 -0
- package/es/css/index.css +594 -0
- package/es/css/index.less +12 -0
- package/es/css/l7.less +62 -0
- package/es/css/layerPopup.less +8 -0
- package/es/css/logo.less +18 -0
- package/es/css/mouseLocation.less +9 -0
- package/es/css/popper.less +64 -0
- package/es/css/popup.less +185 -0
- package/es/css/scale.less +34 -0
- package/es/css/select.less +86 -0
- package/es/css/variables.less +30 -0
- package/es/css/zoom.less +29 -0
- package/es/images/layers.png +0 -0
- package/es/images/layers.svg +1 -0
- package/es/images/logo.png +0 -0
- package/es/images/quanping.svg +12 -0
- package/es/index.d.ts +18 -0
- package/es/index.js +49 -0
- package/es/interface.d.ts +18 -0
- package/es/interface.js +1 -0
- package/es/marker-layer.d.ts +54 -0
- package/es/marker-layer.js +343 -0
- package/es/marker.d.ts +55 -0
- package/es/marker.js +410 -0
- package/es/popup/layerPopup.d.ts +86 -0
- package/es/popup/layerPopup.js +312 -0
- package/es/popup/popup.d.ts +139 -0
- package/es/popup/popup.js +567 -0
- package/es/utils/anchor.d.ts +22 -0
- package/es/utils/anchor.js +31 -0
- package/es/utils/icon.d.ts +1 -0
- package/es/utils/icon.js +9 -0
- package/es/utils/popper.d.ts +75 -0
- package/es/utils/popper.js +259 -0
- package/es/utils/screenfull.d.ts +2 -0
- package/es/utils/screenfull.js +128 -0
- package/lib/assets/iconfont/iconfont.js +48 -0
- package/lib/constants/index.js +68 -0
- package/lib/control/baseControl/buttonControl.js +183 -0
- package/lib/control/baseControl/control.js +314 -0
- package/lib/control/baseControl/index.js +39 -0
- package/lib/control/baseControl/popperControl.js +126 -0
- package/lib/control/baseControl/selectControl.js +210 -0
- package/lib/control/exportImage.js +165 -0
- package/lib/control/fullscreen.js +125 -0
- package/lib/control/geoLocate.js +113 -0
- package/lib/control/layerSwitch.js +147 -0
- package/lib/control/logo.js +81 -0
- package/lib/control/mapTheme.js +116 -0
- package/lib/control/mouseLocation.js +89 -0
- package/lib/control/scale.js +155 -0
- package/lib/control/zoom.js +138 -0
- package/lib/css/button.less +70 -0
- package/lib/css/control.less +71 -0
- package/lib/css/index.css +594 -0
- package/lib/css/index.less +12 -0
- package/lib/css/l7.less +62 -0
- package/lib/css/layerPopup.less +8 -0
- package/lib/css/logo.less +18 -0
- package/lib/css/mouseLocation.less +9 -0
- package/lib/css/popper.less +64 -0
- package/lib/css/popup.less +185 -0
- package/lib/css/scale.less +34 -0
- package/lib/css/select.less +86 -0
- package/lib/css/variables.less +30 -0
- package/lib/css/zoom.less +29 -0
- package/lib/images/layers.png +0 -0
- package/lib/images/layers.svg +1 -0
- package/lib/images/logo.png +0 -0
- package/lib/images/quanping.svg +12 -0
- package/lib/index.js +169 -0
- package/lib/interface.js +5 -0
- package/lib/marker-layer.js +349 -0
- package/lib/marker.js +417 -0
- package/lib/popup/layerPopup.js +317 -0
- package/lib/popup/popup.js +573 -0
- package/lib/utils/anchor.js +40 -0
- package/lib/utils/icon.js +16 -0
- package/lib/utils/popper.js +263 -0
- package/lib/utils/screenfull.js +136 -0
- package/package.json +6 -6
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
5
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
6
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
7
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
8
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
9
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
|
+
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; } }
|
|
12
|
+
import { DOM } from '@antv/l7-utils';
|
|
13
|
+
import { PopperControl } from "./popperControl";
|
|
14
|
+
export { SelectControl };
|
|
15
|
+
var SelectControlConstant = /*#__PURE__*/function (SelectControlConstant) {
|
|
16
|
+
SelectControlConstant["ActiveOptionClassName"] = "l7-select-control-item-active";
|
|
17
|
+
SelectControlConstant["OptionValueAttrKey"] = "data-option-value";
|
|
18
|
+
SelectControlConstant["OptionIndexAttrKey"] = "data-option-index";
|
|
19
|
+
return SelectControlConstant;
|
|
20
|
+
}(SelectControlConstant || {});
|
|
21
|
+
var SelectControl = /*#__PURE__*/function (_PopperControl) {
|
|
22
|
+
_inherits(SelectControl, _PopperControl);
|
|
23
|
+
var _super = _createSuper(SelectControl);
|
|
24
|
+
function SelectControl() {
|
|
25
|
+
var _this;
|
|
26
|
+
_classCallCheck(this, SelectControl);
|
|
27
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
|
+
args[_key] = arguments[_key];
|
|
29
|
+
}
|
|
30
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
31
|
+
/**
|
|
32
|
+
* 当前选中的值
|
|
33
|
+
* @protected
|
|
34
|
+
*/
|
|
35
|
+
_defineProperty(_assertThisInitialized(_this), "selectValue", []);
|
|
36
|
+
_defineProperty(_assertThisInitialized(_this), "createNormalOption", function (option) {
|
|
37
|
+
var isSelect = _this.selectValue.includes(option.value);
|
|
38
|
+
var optionDOM = DOM.create('div', "l7-select-control-item ".concat(isSelect ? SelectControlConstant.ActiveOptionClassName : ''));
|
|
39
|
+
if (_this.getIsMultiple()) {
|
|
40
|
+
optionDOM.appendChild(_this.createCheckbox(isSelect));
|
|
41
|
+
}
|
|
42
|
+
if (option.icon) {
|
|
43
|
+
optionDOM.appendChild(option.icon);
|
|
44
|
+
}
|
|
45
|
+
var textDOM = DOM.create('span');
|
|
46
|
+
textDOM.innerText = option.text;
|
|
47
|
+
optionDOM.appendChild(textDOM);
|
|
48
|
+
return optionDOM;
|
|
49
|
+
});
|
|
50
|
+
_defineProperty(_assertThisInitialized(_this), "onItemClick", function (item) {
|
|
51
|
+
if (_this.getIsMultiple()) {
|
|
52
|
+
var targetIndex = _this.selectValue.findIndex(function (value) {
|
|
53
|
+
return value === item.value;
|
|
54
|
+
});
|
|
55
|
+
if (targetIndex > -1) {
|
|
56
|
+
_this.selectValue.splice(targetIndex, 1);
|
|
57
|
+
} else {
|
|
58
|
+
_this.selectValue = [].concat(_toConsumableArray(_this.selectValue), [item.value]);
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
_this.selectValue = [item.value];
|
|
62
|
+
}
|
|
63
|
+
_this.setSelectValue(_this.selectValue);
|
|
64
|
+
});
|
|
65
|
+
return _this;
|
|
66
|
+
}
|
|
67
|
+
_createClass(SelectControl, [{
|
|
68
|
+
key: "setOptions",
|
|
69
|
+
value:
|
|
70
|
+
/**
|
|
71
|
+
* 选项对应的 DOM 列表
|
|
72
|
+
* @protected
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
function setOptions(option) {
|
|
76
|
+
_get(_getPrototypeOf(SelectControl.prototype), "setOptions", this).call(this, option);
|
|
77
|
+
var options = option.options;
|
|
78
|
+
if (options) {
|
|
79
|
+
this.popper.setContent(this.getPopperContent(options));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
key: "onAdd",
|
|
84
|
+
value: function onAdd() {
|
|
85
|
+
var button = _get(_getPrototypeOf(SelectControl.prototype), "onAdd", this).call(this);
|
|
86
|
+
var defaultValue = this.controlOption.defaultValue;
|
|
87
|
+
if (defaultValue) {
|
|
88
|
+
this.selectValue = this.transSelectValue(defaultValue);
|
|
89
|
+
}
|
|
90
|
+
this.popper.setContent(this.getPopperContent(this.controlOption.options));
|
|
91
|
+
return button;
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "getSelectValue",
|
|
95
|
+
value: function getSelectValue() {
|
|
96
|
+
return this.getIsMultiple() ? this.selectValue : this.selectValue[0];
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "setSelectValue",
|
|
100
|
+
value: function setSelectValue(value) {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
var emitEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
103
|
+
var finalValue = this.transSelectValue(value);
|
|
104
|
+
this.optionDOMList.forEach(function (optionDOM) {
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
106
|
+
var optionValue = optionDOM.getAttribute(SelectControlConstant.OptionValueAttrKey);
|
|
107
|
+
var checkboxDOM = _this2.getIsMultiple() ? optionDOM.querySelector('input[type=checkbox]') : undefined;
|
|
108
|
+
if (finalValue.includes(optionValue)) {
|
|
109
|
+
DOM.addClass(optionDOM, SelectControlConstant.ActiveOptionClassName);
|
|
110
|
+
if (checkboxDOM) {
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
DOM.setChecked(checkboxDOM, true);
|
|
113
|
+
}
|
|
114
|
+
} else {
|
|
115
|
+
DOM.removeClass(optionDOM, SelectControlConstant.ActiveOptionClassName);
|
|
116
|
+
if (checkboxDOM) {
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
DOM.setChecked(checkboxDOM, false);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
this.selectValue = finalValue;
|
|
123
|
+
if (emitEvent) {
|
|
124
|
+
this.emit('selectChange', this.getIsMultiple() ? finalValue : finalValue[0]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* 是否为多选
|
|
130
|
+
* @protected
|
|
131
|
+
*/
|
|
132
|
+
}, {
|
|
133
|
+
key: "getIsMultiple",
|
|
134
|
+
value: function getIsMultiple() {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}, {
|
|
138
|
+
key: "getPopperContent",
|
|
139
|
+
value: function getPopperContent(options) {
|
|
140
|
+
var _this3 = this;
|
|
141
|
+
var isImageOptions = this.isImageOptions();
|
|
142
|
+
var content = DOM.create('div', isImageOptions ? 'l7-select-control--image' : 'l7-select-control--normal');
|
|
143
|
+
if (this.getIsMultiple()) {
|
|
144
|
+
DOM.addClass(content, 'l7-select-control--multiple');
|
|
145
|
+
}
|
|
146
|
+
var optionsDOMList = options.map(function (option, optionIndex) {
|
|
147
|
+
var optionDOM = isImageOptions ?
|
|
148
|
+
// @ts-ignore
|
|
149
|
+
_this3.createImageOption(option) : _this3.createNormalOption(option);
|
|
150
|
+
optionDOM.setAttribute(SelectControlConstant.OptionValueAttrKey, option.value);
|
|
151
|
+
optionDOM.setAttribute(SelectControlConstant.OptionIndexAttrKey, window.String(optionIndex));
|
|
152
|
+
optionDOM.addEventListener('click', _this3.onItemClick.bind(_this3, option));
|
|
153
|
+
return optionDOM;
|
|
154
|
+
});
|
|
155
|
+
content.append.apply(content, _toConsumableArray(optionsDOMList));
|
|
156
|
+
this.optionDOMList = optionsDOMList;
|
|
157
|
+
return content;
|
|
158
|
+
}
|
|
159
|
+
}, {
|
|
160
|
+
key: "createImageOption",
|
|
161
|
+
value: function createImageOption(option) {
|
|
162
|
+
var isSelect = this.selectValue.includes(option.value);
|
|
163
|
+
var optionDOM = DOM.create('div', "l7-select-control-item ".concat(isSelect ? SelectControlConstant.ActiveOptionClassName : ''));
|
|
164
|
+
var imgDOM = DOM.create('img');
|
|
165
|
+
imgDOM.setAttribute('src', option.img);
|
|
166
|
+
DOM.setUnDraggable(imgDOM);
|
|
167
|
+
optionDOM.appendChild(imgDOM);
|
|
168
|
+
var rowDOM = DOM.create('div', 'l7-select-control-item-row');
|
|
169
|
+
if (this.getIsMultiple()) {
|
|
170
|
+
optionDOM.appendChild(this.createCheckbox(isSelect));
|
|
171
|
+
}
|
|
172
|
+
var textDOM = DOM.create('span');
|
|
173
|
+
textDOM.innerText = option.text;
|
|
174
|
+
rowDOM.appendChild(textDOM);
|
|
175
|
+
optionDOM.appendChild(rowDOM);
|
|
176
|
+
return optionDOM;
|
|
177
|
+
}
|
|
178
|
+
}, {
|
|
179
|
+
key: "createCheckbox",
|
|
180
|
+
value: function createCheckbox(isSelect) {
|
|
181
|
+
var checkboxDOM = DOM.create('input');
|
|
182
|
+
checkboxDOM.setAttribute('type', 'checkbox');
|
|
183
|
+
if (isSelect) {
|
|
184
|
+
DOM.setChecked(checkboxDOM, true);
|
|
185
|
+
}
|
|
186
|
+
return checkboxDOM;
|
|
187
|
+
}
|
|
188
|
+
}, {
|
|
189
|
+
key: "isImageOptions",
|
|
190
|
+
value: function isImageOptions() {
|
|
191
|
+
// @ts-ignore
|
|
192
|
+
return !!this.controlOption.options.find(function (item) {
|
|
193
|
+
return item.img;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}, {
|
|
197
|
+
key: "transSelectValue",
|
|
198
|
+
value: function transSelectValue(value) {
|
|
199
|
+
return Array.isArray(value) ? value : [value];
|
|
200
|
+
}
|
|
201
|
+
}]);
|
|
202
|
+
return SelectControl;
|
|
203
|
+
}(PopperControl);
|
|
204
|
+
export { SelectControl as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import ButtonControl, { IButtonControlOption } from './baseControl/buttonControl';
|
|
2
|
+
export interface IExportImageControlOption extends IButtonControlOption {
|
|
3
|
+
imageType: 'png' | 'jpeg';
|
|
4
|
+
onExport: (base64: string) => void;
|
|
5
|
+
}
|
|
6
|
+
export { ExportImage };
|
|
7
|
+
export default class ExportImage extends ButtonControl<IExportImageControlOption> {
|
|
8
|
+
onAdd(): HTMLElement;
|
|
9
|
+
getDefault(option?: Partial<IExportImageControlOption>): IExportImageControlOption;
|
|
10
|
+
getImage(): Promise<string>;
|
|
11
|
+
protected onClick: () => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* 将多张图片合并为一张图片
|
|
14
|
+
* @protected
|
|
15
|
+
* @param base64List
|
|
16
|
+
*/
|
|
17
|
+
protected mergeImage: (...base64List: string[]) => Promise<string>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
5
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
7
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
8
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
9
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
10
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
11
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
12
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
13
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
14
|
+
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; } }
|
|
15
|
+
import { createL7Icon } from "../utils/icon";
|
|
16
|
+
import ButtonControl from "./baseControl/buttonControl";
|
|
17
|
+
export { ExportImage };
|
|
18
|
+
var ExportImage = /*#__PURE__*/function (_ButtonControl) {
|
|
19
|
+
_inherits(ExportImage, _ButtonControl);
|
|
20
|
+
var _super = _createSuper(ExportImage);
|
|
21
|
+
function ExportImage() {
|
|
22
|
+
var _this;
|
|
23
|
+
_classCallCheck(this, ExportImage);
|
|
24
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
25
|
+
args[_key] = arguments[_key];
|
|
26
|
+
}
|
|
27
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
28
|
+
_defineProperty(_assertThisInitialized(_this), "onClick", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
29
|
+
var onExport;
|
|
30
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
31
|
+
while (1) switch (_context.prev = _context.next) {
|
|
32
|
+
case 0:
|
|
33
|
+
onExport = _this.controlOption.onExport;
|
|
34
|
+
if (!(onExport === null || onExport === void 0)) {
|
|
35
|
+
_context.next = 5;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
void 0;
|
|
39
|
+
_context.next = 10;
|
|
40
|
+
break;
|
|
41
|
+
case 5:
|
|
42
|
+
_context.t0 = onExport;
|
|
43
|
+
_context.next = 8;
|
|
44
|
+
return _this.getImage();
|
|
45
|
+
case 8:
|
|
46
|
+
_context.t1 = _context.sent;
|
|
47
|
+
(0, _context.t0)(_context.t1);
|
|
48
|
+
case 10:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}, _callee);
|
|
53
|
+
})));
|
|
54
|
+
/**
|
|
55
|
+
* 将多张图片合并为一张图片
|
|
56
|
+
* @protected
|
|
57
|
+
* @param base64List
|
|
58
|
+
*/
|
|
59
|
+
_defineProperty(_assertThisInitialized(_this), "mergeImage", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
60
|
+
var _this$mapsService$get, _this$mapsService$get2;
|
|
61
|
+
var imageType,
|
|
62
|
+
_ref3,
|
|
63
|
+
_ref3$width,
|
|
64
|
+
width,
|
|
65
|
+
_ref3$height,
|
|
66
|
+
height,
|
|
67
|
+
canvas,
|
|
68
|
+
context,
|
|
69
|
+
_len2,
|
|
70
|
+
base64List,
|
|
71
|
+
_key2,
|
|
72
|
+
imgList,
|
|
73
|
+
_args2 = arguments;
|
|
74
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
75
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
imageType = _this.controlOption.imageType;
|
|
78
|
+
_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;
|
|
79
|
+
canvas = document.createElement('canvas');
|
|
80
|
+
canvas.width = width;
|
|
81
|
+
canvas.height = height;
|
|
82
|
+
context = canvas.getContext('2d');
|
|
83
|
+
for (_len2 = _args2.length, base64List = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
84
|
+
base64List[_key2] = _args2[_key2];
|
|
85
|
+
}
|
|
86
|
+
_context2.next = 9;
|
|
87
|
+
return Promise.all(base64List.map(function (base64) {
|
|
88
|
+
return new Promise(function (resolve) {
|
|
89
|
+
var img = new Image();
|
|
90
|
+
img.onload = function () {
|
|
91
|
+
resolve(img);
|
|
92
|
+
};
|
|
93
|
+
img.src = base64;
|
|
94
|
+
});
|
|
95
|
+
}));
|
|
96
|
+
case 9:
|
|
97
|
+
imgList = _context2.sent;
|
|
98
|
+
imgList.forEach(function (img) {
|
|
99
|
+
context === null || context === void 0 ? void 0 : context.drawImage(img, 0, 0, width, height);
|
|
100
|
+
});
|
|
101
|
+
return _context2.abrupt("return", canvas.toDataURL("image/".concat(imageType)));
|
|
102
|
+
case 12:
|
|
103
|
+
case "end":
|
|
104
|
+
return _context2.stop();
|
|
105
|
+
}
|
|
106
|
+
}, _callee2);
|
|
107
|
+
})));
|
|
108
|
+
return _this;
|
|
109
|
+
}
|
|
110
|
+
_createClass(ExportImage, [{
|
|
111
|
+
key: "onAdd",
|
|
112
|
+
value: function onAdd() {
|
|
113
|
+
var button = _get(_getPrototypeOf(ExportImage.prototype), "onAdd", this).call(this);
|
|
114
|
+
button.addEventListener('click', this.onClick);
|
|
115
|
+
return button;
|
|
116
|
+
}
|
|
117
|
+
}, {
|
|
118
|
+
key: "getDefault",
|
|
119
|
+
value: function getDefault(option) {
|
|
120
|
+
return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(ExportImage.prototype), "getDefault", this).call(this, option)), {}, {
|
|
121
|
+
title: '导出图片',
|
|
122
|
+
btnIcon: createL7Icon('l7-icon-export-picture'),
|
|
123
|
+
imageType: 'png'
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}, {
|
|
127
|
+
key: "getImage",
|
|
128
|
+
value: function () {
|
|
129
|
+
var _getImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
130
|
+
var mapImage, layerImage;
|
|
131
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
132
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
133
|
+
case 0:
|
|
134
|
+
_context3.next = 2;
|
|
135
|
+
return this.mapsService.exportMap('png');
|
|
136
|
+
case 2:
|
|
137
|
+
mapImage = _context3.sent;
|
|
138
|
+
_context3.next = 5;
|
|
139
|
+
return this.scene.exportPng('png');
|
|
140
|
+
case 5:
|
|
141
|
+
layerImage = _context3.sent;
|
|
142
|
+
return _context3.abrupt("return", this.mergeImage.apply(this, _toConsumableArray([mapImage, layerImage].filter(function (base64) {
|
|
143
|
+
return base64;
|
|
144
|
+
}))));
|
|
145
|
+
case 7:
|
|
146
|
+
case "end":
|
|
147
|
+
return _context3.stop();
|
|
148
|
+
}
|
|
149
|
+
}, _callee3, this);
|
|
150
|
+
}));
|
|
151
|
+
function getImage() {
|
|
152
|
+
return _getImage.apply(this, arguments);
|
|
153
|
+
}
|
|
154
|
+
return getImage;
|
|
155
|
+
}()
|
|
156
|
+
}]);
|
|
157
|
+
return ExportImage;
|
|
158
|
+
}(ButtonControl);
|
|
159
|
+
export { ExportImage as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ButtonControl, { IButtonControlOption } from './baseControl/buttonControl';
|
|
2
|
+
export interface IFullscreenControlOption extends IButtonControlOption {
|
|
3
|
+
exitBtnText: IButtonControlOption['btnText'];
|
|
4
|
+
exitBtnIcon: IButtonControlOption['btnIcon'];
|
|
5
|
+
exitTitle: IButtonControlOption['title'];
|
|
6
|
+
}
|
|
7
|
+
export { Fullscreen };
|
|
8
|
+
export default class Fullscreen extends ButtonControl<IFullscreenControlOption> {
|
|
9
|
+
protected isFullscreen: boolean;
|
|
10
|
+
protected mapContainer: HTMLElement;
|
|
11
|
+
constructor(option?: Partial<IFullscreenControlOption>);
|
|
12
|
+
setOptions(newOptions: Partial<IFullscreenControlOption>): void;
|
|
13
|
+
onAdd(): HTMLElement;
|
|
14
|
+
onRemove(): void;
|
|
15
|
+
getDefault(option?: Partial<IFullscreenControlOption>): IFullscreenControlOption;
|
|
16
|
+
toggleFullscreen: () => Promise<void>;
|
|
17
|
+
protected onClick: () => void;
|
|
18
|
+
protected onFullscreenChange: () => void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
5
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
6
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
7
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
8
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
9
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
10
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
11
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
+
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; } }
|
|
14
|
+
import { DOM } from '@antv/l7-utils';
|
|
15
|
+
import { createL7Icon } from "../utils/icon";
|
|
16
|
+
import ScreenFull from "../utils/screenfull";
|
|
17
|
+
import ButtonControl from "./baseControl/buttonControl";
|
|
18
|
+
export { Fullscreen };
|
|
19
|
+
var Fullscreen = /*#__PURE__*/function (_ButtonControl) {
|
|
20
|
+
_inherits(Fullscreen, _ButtonControl);
|
|
21
|
+
var _super = _createSuper(Fullscreen);
|
|
22
|
+
function Fullscreen(option) {
|
|
23
|
+
var _this;
|
|
24
|
+
_classCallCheck(this, Fullscreen);
|
|
25
|
+
_this = _super.call(this, option);
|
|
26
|
+
_defineProperty(_assertThisInitialized(_this), "isFullscreen", false);
|
|
27
|
+
_defineProperty(_assertThisInitialized(_this), "toggleFullscreen", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
28
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
29
|
+
while (1) switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
if (!ScreenFull.isEnabled) {
|
|
32
|
+
_context.next = 3;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
_context.next = 3;
|
|
36
|
+
return ScreenFull.toggle(_this.mapContainer);
|
|
37
|
+
case 3:
|
|
38
|
+
case "end":
|
|
39
|
+
return _context.stop();
|
|
40
|
+
}
|
|
41
|
+
}, _callee);
|
|
42
|
+
})));
|
|
43
|
+
_defineProperty(_assertThisInitialized(_this), "onClick", function () {
|
|
44
|
+
_this.toggleFullscreen();
|
|
45
|
+
});
|
|
46
|
+
_defineProperty(_assertThisInitialized(_this), "onFullscreenChange", function () {
|
|
47
|
+
_this.isFullscreen = !!document.fullscreenElement;
|
|
48
|
+
var _this$controlOption = _this.controlOption,
|
|
49
|
+
btnText = _this$controlOption.btnText,
|
|
50
|
+
btnIcon = _this$controlOption.btnIcon,
|
|
51
|
+
title = _this$controlOption.title,
|
|
52
|
+
exitBtnText = _this$controlOption.exitBtnText,
|
|
53
|
+
exitBtnIcon = _this$controlOption.exitBtnIcon,
|
|
54
|
+
exitTitle = _this$controlOption.exitTitle;
|
|
55
|
+
if (_this.isFullscreen) {
|
|
56
|
+
_this.setBtnTitle(exitTitle);
|
|
57
|
+
_this.setBtnText(exitBtnText);
|
|
58
|
+
_this.setBtnIcon(exitBtnIcon);
|
|
59
|
+
} else {
|
|
60
|
+
_this.setBtnTitle(title);
|
|
61
|
+
_this.setBtnText(btnText);
|
|
62
|
+
_this.setBtnIcon(btnIcon);
|
|
63
|
+
}
|
|
64
|
+
_this.emit('fullscreenChange', _this.isFullscreen);
|
|
65
|
+
});
|
|
66
|
+
if (!ScreenFull.isEnabled) {
|
|
67
|
+
console.warn('当前浏览器环境不支持对地图全屏化');
|
|
68
|
+
}
|
|
69
|
+
return _this;
|
|
70
|
+
}
|
|
71
|
+
_createClass(Fullscreen, [{
|
|
72
|
+
key: "setOptions",
|
|
73
|
+
value: function setOptions(newOptions) {
|
|
74
|
+
var exitBtnText = newOptions.exitBtnText,
|
|
75
|
+
exitBtnIcon = newOptions.exitBtnIcon,
|
|
76
|
+
exitTitle = newOptions.exitTitle;
|
|
77
|
+
if (this.isFullscreen) {
|
|
78
|
+
if (this.checkUpdateOption(newOptions, ['exitBtnIcon'])) {
|
|
79
|
+
this.setBtnIcon(exitBtnIcon);
|
|
80
|
+
}
|
|
81
|
+
if (this.checkUpdateOption(newOptions, ['exitBtnText'])) {
|
|
82
|
+
this.setBtnText(exitBtnText);
|
|
83
|
+
}
|
|
84
|
+
if (this.checkUpdateOption(newOptions, ['exitTitle'])) {
|
|
85
|
+
this.setBtnTitle(exitTitle);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
_get(_getPrototypeOf(Fullscreen.prototype), "setOptions", this).call(this, newOptions);
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "onAdd",
|
|
92
|
+
value: function onAdd() {
|
|
93
|
+
var button = _get(_getPrototypeOf(Fullscreen.prototype), "onAdd", this).call(this);
|
|
94
|
+
button.addEventListener('click', this.onClick);
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
96
|
+
this.mapContainer = DOM.getContainer(this.scene.getSceneConfig().id);
|
|
97
|
+
this.mapContainer.addEventListener('fullscreenchange', this.onFullscreenChange);
|
|
98
|
+
return button;
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: "onRemove",
|
|
102
|
+
value: function onRemove() {
|
|
103
|
+
_get(_getPrototypeOf(Fullscreen.prototype), "onRemove", this).call(this);
|
|
104
|
+
this.mapContainer.removeEventListener('fullscreenchange', this.onFullscreenChange);
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
key: "getDefault",
|
|
108
|
+
value: function getDefault(option) {
|
|
109
|
+
return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(Fullscreen.prototype), "getDefault", this).call(this, option)), {}, {
|
|
110
|
+
title: '全屏',
|
|
111
|
+
btnIcon: createL7Icon('l7-icon-fullscreen'),
|
|
112
|
+
exitTitle: '退出全屏',
|
|
113
|
+
exitBtnIcon: createL7Icon('l7-icon-exit-fullscreen')
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}]);
|
|
117
|
+
return Fullscreen;
|
|
118
|
+
}(ButtonControl);
|
|
119
|
+
export { Fullscreen as default };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Point } from '@antv/l7-core';
|
|
2
|
+
import ButtonControl, { IButtonControlOption } from './baseControl/buttonControl';
|
|
3
|
+
export interface IGeoLocateOption extends IButtonControlOption {
|
|
4
|
+
transform: (position: Point) => Point | Promise<Point>;
|
|
5
|
+
}
|
|
6
|
+
export { GeoLocate };
|
|
7
|
+
export default class GeoLocate extends ButtonControl<IGeoLocateOption> {
|
|
8
|
+
constructor(option?: Partial<IGeoLocateOption>);
|
|
9
|
+
getDefault(option?: Partial<IGeoLocateOption>): IGeoLocateOption;
|
|
10
|
+
onAdd(): HTMLElement;
|
|
11
|
+
/**
|
|
12
|
+
* 通过浏览器 API 获取当前所在经纬度
|
|
13
|
+
*/
|
|
14
|
+
getGeoLocation: () => Promise<Point>;
|
|
15
|
+
onClick: () => Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
5
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
6
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
7
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
8
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
9
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
10
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
11
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
+
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; } }
|
|
14
|
+
import { createL7Icon } from "../utils/icon";
|
|
15
|
+
import ButtonControl from "./baseControl/buttonControl";
|
|
16
|
+
export { GeoLocate };
|
|
17
|
+
var GeoLocate = /*#__PURE__*/function (_ButtonControl) {
|
|
18
|
+
_inherits(GeoLocate, _ButtonControl);
|
|
19
|
+
var _super = _createSuper(GeoLocate);
|
|
20
|
+
function GeoLocate(option) {
|
|
21
|
+
var _this;
|
|
22
|
+
_classCallCheck(this, GeoLocate);
|
|
23
|
+
_this = _super.call(this, option);
|
|
24
|
+
/**
|
|
25
|
+
* 通过浏览器 API 获取当前所在经纬度
|
|
26
|
+
*/
|
|
27
|
+
_defineProperty(_assertThisInitialized(_this), "getGeoLocation", function () {
|
|
28
|
+
return new Promise(function (resolve, reject) {
|
|
29
|
+
window.navigator.geolocation.getCurrentPosition(function (_ref) {
|
|
30
|
+
var coords = _ref.coords;
|
|
31
|
+
var _ref2 = coords !== null && coords !== void 0 ? coords : {},
|
|
32
|
+
longitude = _ref2.longitude,
|
|
33
|
+
latitude = _ref2.latitude;
|
|
34
|
+
if (!isNaN(longitude) && !isNaN(latitude)) {
|
|
35
|
+
resolve([longitude, latitude]);
|
|
36
|
+
} else {
|
|
37
|
+
reject();
|
|
38
|
+
}
|
|
39
|
+
}, function (e) {
|
|
40
|
+
reject(e);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
_defineProperty(_assertThisInitialized(_this), "onClick", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
45
|
+
var transform, position, currentZoom;
|
|
46
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
47
|
+
while (1) switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
if (window.navigator.geolocation) {
|
|
50
|
+
_context.next = 2;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
return _context.abrupt("return");
|
|
54
|
+
case 2:
|
|
55
|
+
transform = _this.controlOption.transform;
|
|
56
|
+
_context.next = 5;
|
|
57
|
+
return _this.getGeoLocation();
|
|
58
|
+
case 5:
|
|
59
|
+
position = _context.sent;
|
|
60
|
+
currentZoom = _this.mapsService.getZoom();
|
|
61
|
+
_context.t0 = _this.mapsService;
|
|
62
|
+
_context.t1 = currentZoom > 15 ? currentZoom : 15;
|
|
63
|
+
if (!transform) {
|
|
64
|
+
_context.next = 15;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
_context.next = 12;
|
|
68
|
+
return transform(position);
|
|
69
|
+
case 12:
|
|
70
|
+
_context.t2 = _context.sent;
|
|
71
|
+
_context.next = 16;
|
|
72
|
+
break;
|
|
73
|
+
case 15:
|
|
74
|
+
_context.t2 = position;
|
|
75
|
+
case 16:
|
|
76
|
+
_context.t3 = _context.t2;
|
|
77
|
+
_context.t0.setZoomAndCenter.call(_context.t0, _context.t1, _context.t3);
|
|
78
|
+
case 18:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
})));
|
|
84
|
+
if (!window.navigator.geolocation) {
|
|
85
|
+
console.warn('当前浏览器环境不支持获取地理定位');
|
|
86
|
+
}
|
|
87
|
+
return _this;
|
|
88
|
+
}
|
|
89
|
+
_createClass(GeoLocate, [{
|
|
90
|
+
key: "getDefault",
|
|
91
|
+
value: function getDefault(option) {
|
|
92
|
+
return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(GeoLocate.prototype), "getDefault", this).call(this, option)), {}, {
|
|
93
|
+
title: '定位',
|
|
94
|
+
btnIcon: createL7Icon('l7-icon-reposition')
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
key: "onAdd",
|
|
99
|
+
value: function onAdd() {
|
|
100
|
+
var button = _get(_getPrototypeOf(GeoLocate.prototype), "onAdd", this).call(this);
|
|
101
|
+
button.addEventListener('click', this.onClick);
|
|
102
|
+
return button;
|
|
103
|
+
}
|
|
104
|
+
}]);
|
|
105
|
+
return GeoLocate;
|
|
106
|
+
}(ButtonControl);
|
|
107
|
+
export { GeoLocate as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ILayer } from '@antv/l7-core';
|
|
2
|
+
import SelectControl, { ControlOptionItem, ISelectControlOption } from './baseControl/selectControl';
|
|
3
|
+
export interface ILayerSwitchOption extends ISelectControlOption {
|
|
4
|
+
layers: Array<ILayer | string>;
|
|
5
|
+
}
|
|
6
|
+
export { LayerSwitch };
|
|
7
|
+
export default class LayerSwitch extends SelectControl<ILayerSwitchOption> {
|
|
8
|
+
protected get layers(): ILayer[];
|
|
9
|
+
getDefault(option?: Partial<ILayerSwitchOption>): ILayerSwitchOption;
|
|
10
|
+
getLayerVisible(): string[];
|
|
11
|
+
getLayerOptions(): ControlOptionItem[];
|
|
12
|
+
setOptions(option: Partial<ILayerSwitchOption>): void;
|
|
13
|
+
onAdd(): HTMLElement;
|
|
14
|
+
onRemove(): void;
|
|
15
|
+
protected onLayerChange: () => void;
|
|
16
|
+
protected onLayerVisibleChane: () => void;
|
|
17
|
+
protected onSelectChange: () => void;
|
|
18
|
+
protected getIsMultiple(): boolean;
|
|
19
|
+
}
|