import { Directive, output } from "@angular/core"; @Directive({ selector: ` [click.capture], [click.once], [click.capture.once], [mousedown.capture], [mouseup.capture], [mouseover.capture], [mouseout.capture], [keydown.capture], [keyup.capture], [focus.capture], [blur.capture], [invalid.capture], [scroll.capture], [scroll.passive], [scroll.capture.passive], [wheel.passive], [wheel.capture.passive], [touchstart.passive], [touchstart.capture.passive], [touchmove.passive], [touchmove.capture.passive], [touchend.passive], [dragover.capture], [dragenter.capture], [dragleave.capture], [drop.capture], [transitionend.once], [animationend.once] `, standalone: true, }) export class SdEvents { // 클릭 "click.capture" = output(); "click.once" = output(); "click.capture.once" = output(); // 마우스 "mousedown.capture" = output(); "mouseup.capture" = output(); "mouseover.capture" = output(); "mouseout.capture" = output(); // 키보드 "keydown.capture" = output(); "keyup.capture" = output(); // Focus (버블링 안 되므로 capture 필수) "focus.capture" = output(); "blur.capture" = output(); // 폼 "invalid.capture" = output(); // Scroll (passive로 성능 최적화) "scroll.capture" = output(); "scroll.passive" = output(); "scroll.capture.passive" = output(); // Wheel (passive로 성능 최적화) "wheel.passive" = output(); "wheel.capture.passive" = output(); // Touch (passive로 성능 최적화) "touchstart.passive" = output(); "touchstart.capture.passive" = output(); "touchmove.passive" = output(); "touchmove.capture.passive" = output(); "touchend.passive" = output(); // 드래그 앤 드롭 "dragover.capture" = output(); "dragenter.capture" = output(); "dragleave.capture" = output(); "drop.capture" = output(); // Animation/Transition (once로 한 번만) "transitionend.once" = output(); "animationend.once" = output(); }