diff --git a/assets/align/align.js b/assets/align/align.js index c4484e7..12d3c38 100644 --- a/assets/align/align.js +++ b/assets/align/align.js @@ -467,14 +467,31 @@ kit.PluginManager.register('align',function(module, exports, require) { }; + /** + * @class AlignDefault + */ + const Default = { + hAlign: 'center', + vAlign: 'top', + hDirection: 'center', + vDirection: 'top', + }; + + /** * @param node {HTMLElement|String} * @param parentNode {HTMLElement|String} * @param limiterNode {HTMLElement|String} + * @param options {AlignDefault} * @constructor */ - var AlignClass = function(node, parentNode, limiterNode = window) + var AlignClass = function(node, parentNode, limiterNode = window, options = {}) { + /** + * @type {AlignDefault} + */ + this.options = Object.assign({}, Default, options); + this.changeOfDirection = true; this.withinTheScreen = true; this.offset = [0, 0]; @@ -495,6 +512,9 @@ kit.PluginManager.register('align',function(module, exports, require) { AlignClass.prototype.setNode = function(node){ this.unset(); this.node = support.getNode(node); + if(!support.isElement(this.node)){ + console.warn('Align: node is not valid'); + } this.reset(); if(this.node instanceof HTMLElement) { this.node.kit = this.node.kit || {}; @@ -512,6 +532,9 @@ kit.PluginManager.register('align',function(module, exports, require) { */ AlignClass.prototype.setParentNode = function(node){ this.parentNode = support.getNode(node); + if(!support.isElement(this.parentNode)){ + console.warn('Align: parentNode is not valid'); + } if(this.__calc) { this.__calc.setParentNode(this.parentNode); } @@ -520,6 +543,9 @@ kit.PluginManager.register('align',function(module, exports, require) { AlignClass.prototype.setLimiterNode = function(node){ this.limiterNode = support.getNode(node) || window; + if(!support.isElement(this.limiterNode) && this.limiterNode !== window){ + console.warn('Align: limiterNode is not valid'); + } if(this.__calc) { this.__calc.setLimiterNode(this.limiterNode); } @@ -569,17 +595,35 @@ kit.PluginManager.register('align',function(module, exports, require) { * @return {AlignClass} */ AlignClass.prototype.set = function(hAlign, vAlign, hDirection, vDirection){ + + this.options.hAlign = hAlign; + this.options.vAlign = vAlign; + this.options.hDirection = hDirection; + this.options.vDirection = vDirection; + this.setEx('vertical', vAlign, vDirection); this.setEx('horizontal', hAlign, hDirection); return this; }; + + AlignClass.prototype.setOptions = function(options){ + Object.assign(this.options, options); + this.setEx('vertical', this.options.vAlign, this.options.vDirection); + this.setEx('horizontal', this.options.hAlign, this.options.hDirection); + return this; + }; + AlignClass.prototype.setVertical = function(align, direction){ + this.options.vAlign = align; + this.options.vDirection = direction; this.setEx('vertical', align, direction); return this; }; AlignClass.prototype.setHorizontal = function(align, direction){ + this.options.hAlign = align; + this.options.hDirection = direction; this.setEx('horizontal', align, direction); return this; }; diff --git a/assets/core/core.register.js b/assets/core/core.register.js index 10dddf0..a7611e1 100644 --- a/assets/core/core.register.js +++ b/assets/core/core.register.js @@ -85,7 +85,7 @@ __PluginManager__.registerPlugins({ onInstall: function(){ }, - deps: ['Viewer', 'support', 'ActionCollection', 'Action', 'userAction', 'align'], + deps: ['Viewer', 'support', 'ActionCollection', 'Action', 'userAction', 'align', 'Collection', 'animations'], }, Popover: { path: __pmConfig__.assetsPath + '/popover', diff --git a/assets/support/support.js b/assets/support/support.js index d8beb05..d20c45a 100644 --- a/assets/support/support.js +++ b/assets/support/support.js @@ -137,7 +137,7 @@ __PluginManager__.register('support', function(module, exports, require, global) var nodeWrap = document.createElement('div'); nodeWrap.innerHTML = html; var r = nodeWrap.firstChild; - r.remove(); + r && r.remove(); return r; } function makeNodeList(html = '') { diff --git a/assets/tooltip2/tooltip2.js b/assets/tooltip2/tooltip2.js index bec0cc1..17f4b03 100644 --- a/assets/tooltip2/tooltip2.js +++ b/assets/tooltip2/tooltip2.js @@ -3,6 +3,7 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global) var Viewer = require('Viewer'); var support = require('support'); + var Collection = require('Collection'); var ActionCollection = require('ActionCollection'); var Action = require('Action'); var userAction = require('userAction'); @@ -11,7 +12,15 @@ kit.PluginManager.register('Tooltip2',function(module, exports, require, global) const PLUGIN_NAME = 'tooltip2'; + /** + * @class Tooltip2Default + */ const Default = { + hAlign: 'center', + vAlign: 'top', + hDirection: 'center', + vDirection: 'top', + offset: 10, template: '