MCPcopy Create free account
hub / github.com/microsoft/SandDance / constructor

Method constructor

docs/app/js/sanddance-app.js:94938–94963  ·  view source on GitHub ↗
(element, callback, options)

Source from the content-addressed store, hash-verified

94936const UP_EVENT_TYPE = "keyup";
94937class KeyInput extends (0, _inputDefault.default) {
94938 constructor(element, callback, options){
94939 super(element, callback, options);
94940 this.handleEvent = (event)=>{
94941 // Ignore if focused on text input
94942 const targetElement = event.target || event.srcElement;
94943 if (targetElement.tagName === "INPUT" && targetElement.type === "text" || targetElement.tagName === "TEXTAREA") return;
94944 if (this.enableDownEvent && event.type === "keydown") this.callback({
94945 type: DOWN_EVENT_TYPE,
94946 srcEvent: event,
94947 key: event.key,
94948 target: event.target
94949 });
94950 if (this.enableUpEvent && event.type === "keyup") this.callback({
94951 type: UP_EVENT_TYPE,
94952 srcEvent: event,
94953 key: event.key,
94954 target: event.target
94955 });
94956 };
94957 this.enableDownEvent = this.options.enable;
94958 this.enableUpEvent = this.options.enable;
94959 this.events = (this.options.events || []).concat(KEY_EVENTS);
94960 element.tabIndex = this.options.tabIndex || 0;
94961 element.style.outline = "none";
94962 this.events.forEach((event)=>element.addEventListener(event, this.handleEvent));
94963 }
94964 destroy() {
94965 this.events.forEach((event)=>this.element.removeEventListener(event, this.handleEvent));
94966 }

Callers

nothing calls this directly

Calls 1

forEachMethod · 0.45

Tested by

no test coverage detected