You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.8 KiB
69 lines
1.8 KiB
import ICONS from './DistributeElementsIcons'; |
|
|
|
import { assign } from 'min-dash'; |
|
|
|
var LOW_PRIORITY = 900; |
|
|
|
/** |
|
* A provider for distribute elements popup menu. |
|
*/ |
|
export default function DistributeElementsMenuProvider( |
|
popupMenu, distributeElements, translate, rules) { |
|
this._distributeElements = distributeElements; |
|
this._translate = translate; |
|
this._popupMenu = popupMenu; |
|
this._rules = rules; |
|
|
|
popupMenu.registerProvider('align-elements', LOW_PRIORITY, this); |
|
} |
|
|
|
DistributeElementsMenuProvider.$inject = [ |
|
'popupMenu', |
|
'distributeElements', |
|
'translate', |
|
'rules' |
|
]; |
|
|
|
DistributeElementsMenuProvider.prototype.getPopupMenuEntries = function(elements) { |
|
var entries = {}; |
|
|
|
if (this._isAllowed(elements)) { |
|
assign(entries, this._getEntries(elements)); |
|
} |
|
|
|
return entries; |
|
}; |
|
|
|
DistributeElementsMenuProvider.prototype._isAllowed = function(elements) { |
|
return this._rules.allowed('elements.distribute', { elements: elements }); |
|
}; |
|
|
|
DistributeElementsMenuProvider.prototype._getEntries = function(elements) { |
|
var distributeElements = this._distributeElements, |
|
translate = this._translate, |
|
popupMenu = this._popupMenu; |
|
|
|
var entries = { |
|
'distribute-elements-horizontal': { |
|
group: 'distribute', |
|
title: translate('Distribute elements horizontally'), |
|
className: 'bjs-align-elements-menu-entry', |
|
imageUrl: ICONS['horizontal'], |
|
action: function(event, entry) { |
|
distributeElements.trigger(elements, 'horizontal'); |
|
popupMenu.close(); |
|
} |
|
}, |
|
'distribute-elements-vertical': { |
|
group: 'distribute', |
|
title: translate('Distribute elements vertically'), |
|
imageUrl: ICONS['vertical'], |
|
action: function(event, entry) { |
|
distributeElements.trigger(elements, 'vertical'); |
|
popupMenu.close(); |
|
} |
|
}, |
|
}; |
|
|
|
return entries; |
|
};
|
|
|