import { Evented, getGUID, defaultValue } from '@mapgis/webclient-common'
/**
* 部件类
* @class Zondy.Widget
* @classdesc 部件基类
* @extends Evented
* @param {Object} options 构造参数
* @param {String | HTMLElement} [options.container] 部件容器或部件容器id
* @param {String} [options.id] 部件id
* @param {Boolean} [options.visible] 部件是否显示
* @param {MapView|SceneView} [options.view] 部件视图
*/
class Widget extends Evented {
constructor(options) {
super()
const opt = defaultValue(options, {})
// 部件id
this._id = defaultValue(opt.id, getGUID())
// 部件容器
this._container = this._createContainer(opt.container)
// 部件是否显示
this._visible = defaultValue(opt.visible, true)
// 部件视图
this._view = defaultValue(opt.view, null)
if (!this._view) throw new Error('视图不存在!')
}
// 添加组件
_addView() {}
// 移除组件
_removeView() {}
/**
* @description 销毁控件
*/
destroy() {}
_createContainer(container) {
let _container = container
if (typeof _container === 'string') {
_container = document.getElementById(_container)
}
if (container instanceof HTMLElement) {
return _container
}
_container = document.createElement('div')
return _container
}
}
export default Widget