1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- define([
- '../utils'
- ], function (Utils) {
- function SelectOnClose () { }
- SelectOnClose.prototype.bind = function (decorated, container, $container) {
- var self = this;
- decorated.call(this, container, $container);
- container.on('close', function (params) {
- self._handleSelectOnClose(params);
- });
- };
- SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
- if (params && params.originalSelect2Event != null) {
- var event = params.originalSelect2Event;
- // Don't select an item if the close event was triggered from a select or
- // unselect event
- if (event._type === 'select' || event._type === 'unselect') {
- return;
- }
- }
- var $highlightedResults = this.getHighlightedResults();
- // Only select highlighted results
- if ($highlightedResults.length < 1) {
- return;
- }
- var data = Utils.GetData($highlightedResults[0], 'data');
- // Don't re-select already selected resulte
- if (
- (data.element != null && data.element.selected) ||
- (data.element == null && data.selected)
- ) {
- return;
- }
- this.trigger('select', {
- data: data
- });
- };
- return SelectOnClose;
- });
|