ExtSearch/src/build/origin/js/d3extsearch_ias.js

92 lines
3.0 KiB
JavaScript

/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
* http://www.shopmodule.com
*
* @license
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
$( function() {
"use strict";
$.widget( "ui.d3extsearchias", {
// default options
options: {
sElementId: "IAS_box",
sInputElementId: "IAS_input",
sCloseElementId: "IAS_closebtn",
iPosOffset: 10, // in px
sLastSelection: "",
iDelay: 600, // in ms between click outside and deactivating of the box
oClearWnd: null
},
_create: function () {
let self = this;
let options = this.options;
$("#" + options.sElementId).mouseup(function(event) {
event.stopPropagation();
});
$("body").mouseup(function(event) {
self.checkIasWindow(event);
});
$("#" + options.sCloseElementId).click(function() {
self.clearIasWindow();
});
},
showIasWindow: function (event) {
let options = this.options;
let oIASBoxElement = $("#" + options.sElementId);
let oIASInputElement = $("#" + options.sInputElementId);
if (oIASBoxElement.length) {
let sSelection = this.getSelection();
if (sSelection !== options.sLastSelection && sSelection.length > 0) {
oIASBoxElement.show().css({
"top":event.pageY + options.iPosOffset + "px",
"left":event.pageX + options.iPosOffset + "px"
});
oIASInputElement.val(sSelection);
options.sLastSelection = sSelection;
}
}
},
checkIasWindow: function (event) {
if (this.getSelection()) {
this.showIasWindow(event);
} else {
this.clearIasWindow();
}
},
clearIasWindow: function () {
let options = this.options;
$("#" + options.sElementId).hide();
options.sLastSelection = "";
},
getSelection: function () {
let oSelection;
if (window.getSelection) {
oSelection = window.getSelection();
} else if (document.getSelection) {
// NC compatible
oSelection = document.getSelection();
} else if (document.selection) {
// IE compatible
oSelection = document.selection.createRange().text;
}
return oSelection.toString();
}
});
}(jQuery));