This commit is contained in:
2022-01-12 21:07:38 +03:00
parent 5bc48555fe
commit ed4e1a54ba
5 changed files with 169 additions and 16 deletions
+16 -6
View File
@@ -10,6 +10,7 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global)
var align = require('align');
var animations = require('animations');
const PLUGIN_PREFIX = 'kit';
const PLUGIN_NAME = 'tooltip2';
/**
@@ -21,6 +22,8 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global)
hDirection: 'center',
vDirection: 'top',
offset: 10,
contentSelector: '.tooltip-inner',
content: '',
template: '<div class="tooltip" role="tooltip" style="display: none">' +
//'<div class="tooltip-arrow" data-popper-arrow="true"></div>' +
'<div class="tooltip-inner"></div>' +
@@ -37,15 +40,18 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global)
*/
var Tooltip2 = function(masterNode, hintNode, options = {}) {
var self = this;
var masterOptions = {};
/**
* @type {Tooltip2Default}
*/
this.options = Object.assign({}, Default, masterOptions, options);
this.masterNode = support.getNode(masterNode);
if(!support.isElement(this.masterNode)){
console.warn('Tooltip2: masterNode not valid', this.masterNode);
}
var prefix = PLUGIN_PREFIX + PLUGIN_NAME.charAt(0).toUpperCase() + PLUGIN_NAME.slice(1, PLUGIN_NAME.length);
var masterOptions = support.data.getList(this.masterNode, prefix);
/**
* @type {Tooltip2Default}
*/
this.options = Object.assign({}, Default, masterOptions, options);
this.hintNode = support.getNode(hintNode);
if(!this.hintNode) {
this.hintNode = support.makeNode(this.options.template);
@@ -57,6 +63,10 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global)
this.masterNode.appendChild(this.hintNode);
//support.setNodeData(this.masterNode, PLUGIN_NAME, this);
if(String(this.options.content) !== '') {
this.setContent(this.options.content);
}
this.align = new align.Class(this.hintNode, this.masterNode);
var hint = new userAction.Hint(this.masterNode, this.hintNode);
this.viewer = hint.viewer;
@@ -87,7 +97,7 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global)
};
__proto.setContent = function(html = ''){
var titleNode = this.hintNode.querySelector('.tooltip-inner');
var titleNode = this.hintNode.querySelector(this.options.contentSelector);
support.innerHtml(titleNode, html);
};