Skip to content

Commit

Permalink
SVYX-525 KeyListener not working with TING selectTokenzier - update
Browse files Browse the repository at this point in the history
  • Loading branch information
cPecican committed Dec 14, 2022
1 parent 7707934 commit 1a2ef8c
Showing 1 changed file with 29 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,62 +25,37 @@ export class KeyListener implements IComponentContributorListener {
const attribute = element.getAttribute('keylistener');
if (attribute) {
renderer.listen(element, 'keyup', (event) => {
const eventObject = event.detail ? event.detail : event;
const callback = this.getCallback(attribute);
if (callback) {
// select2
if (event.detail) {
//if there is a restriction on the pattern, remove last typed character in the event if not matching.
if (callback.regexPattern) {
const regexPattern = new RegExp(callback.regexPattern, 'g');
var s = event.detail.key();
if (!s) return;
var tmp = event.detail.target().value
event.detail.target().value = event.detail.target().value.replace(regexPattern, callback.regexReplacement);
//if replace was done, don't fire event.
if (tmp.length != event.detail.target().value.length) return;
}
const ev = this.servoyService.createJSEvent(event, 'keyup');
let capsLockEnabled = event.detail.capsLockEnabled();
if (callback.delay) {
setTimeout(() => {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[event.detail.target().value, ev, event.detail.keyCode(), event.detail.altKey(), event.detail.ctrlKey(), event.detail.shiftKey(), capsLockEnabled]);
}, callback.delay);
}
else {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[event.detail.target().value, ev, event.detail.keyCode(), event.detail.altKey(), event.detail.ctrlKey(), event.detail.shiftKey(), capsLockEnabled]);
}
} else { // other components
//if there is a restriction on the pattern, remove last typed character in the event if not matching.
if (callback.regexPattern) {
const regexPattern = new RegExp(callback.regexPattern, 'g');
var s = event.key;
if (!s) return;
var tmp = event.target.value
event.target.value = event.target.value.replace(regexPattern, callback.regexReplacement);
//if replace was done, don't fire event.
if (tmp.length != event.target.value.length) return;
}
const ev = this.servoyService.createJSEvent(event, 'keyup');
let capsLockEnabled = false;
if (event instanceof KeyboardEvent) {
capsLockEnabled = event.getModifierState('CapsLock');
} else if (event.originalEvent instanceof KeyboardEvent) {
capsLockEnabled = event.originalEvent.getModifierState('CapsLock');
}
if (callback.delay) {
setTimeout(() => {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[element.value, ev, event.keyCode, event.altKey, event.ctrlKey, event.shiftKey, capsLockEnabled]);
}, callback.delay);
}
else {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[element.value, ev, event.keyCode, event.altKey, event.ctrlKey, event.shiftKey, capsLockEnabled]);
}
}
}
//if there is a restriction on the pattern, remove last typed character in the event if not matching.
if (callback.regexPattern) {
const regexPattern = new RegExp(callback.regexPattern, 'g');
var s = eventObject.key;
if (!s) return;
var tmp = eventObject.target.value
eventObject.target.value = eventObject.target.value.replace(regexPattern, callback.regexReplacement);
//if replace was done, don't fire event.
if (tmp.length != eventObject.target.value.length) return;
}
const ev = this.servoyService.createJSEvent(eventObject, 'keyup');
let capsLockEnabled = false;
if (eventObject instanceof KeyboardEvent) {
capsLockEnabled = eventObject.getModifierState('CapsLock');
} else if (eventObject.originalEvent instanceof KeyboardEvent) {
capsLockEnabled = eventObject.originalEvent.getModifierState('CapsLock');
}
if (callback.delay) {
setTimeout(() => {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[eventObject.target.value, ev, eventObject.keyCode, eventObject.altKey, eventObject.ctrlKey, eventObject.shiftKey, capsLockEnabled]);
}, callback.delay);
}
else {
this.servoyService.executeInlineScript(callback.callback.formname, callback.callback.script,
[eventObject.target.value, ev, eventObject.keyCode, eventObject.altKey, eventObject.ctrlKey, eventObject.shiftKey, capsLockEnabled]);
}
}
});
}
}
Expand Down

0 comments on commit 1a2ef8c

Please sign in to comment.