Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
18 / 18 |
| DomEventHelper | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
9 | |
100.00% |
18 / 18 |
| isEvent | |
100.00% |
1 / 1 |
2 | |
100.00% |
2 / 2 |
|||
| validate | |
100.00% |
1 / 1 |
3 | |
100.00% |
11 / 11 |
|||
| setErrMsg | |
100.00% |
1 / 1 |
2 | |
100.00% |
4 / 4 |
|||
| getErrMsg | |
100.00% |
1 / 1 |
2 | |
100.00% |
1 / 1 |
|||
| <?php | |
| namespace pvc\helpers; | |
| use pvc\msg\UserMsg; | |
| use pvc\msg\UserMsgInterface; | |
| use pvc\validator\base\ValidatorInterface; | |
| /** | |
| * | |
| * class DOMEventHelper. Assists in working with DOM events. | |
| * | |
| */ | |
| class DomEventHelper implements ValidatorInterface | |
| { | |
| protected UserMsgInterface $errmsg; | |
| /** | |
| * @var array $domEventList. list of valid Dom events | |
| */ | |
| protected static array $domEventList = [ | |
| "abort", | |
| "afterprint", | |
| "animationend", | |
| "animationiteration", | |
| "animationstart", | |
| "beforeprint", | |
| "beforeunload", | |
| "blur", | |
| "canplay", | |
| "canplaythrough", | |
| "change", | |
| "click", | |
| "contextmenu", | |
| "copy", | |
| "cut", | |
| "dblclick", | |
| "drag", | |
| "dragend", | |
| "dragenter", | |
| "dragleave", | |
| "dragover", | |
| "dragstart", | |
| "drop", | |
| "durationchange", | |
| "ended", | |
| "error", | |
| "focus", | |
| "focusin", | |
| "focusout", | |
| "fullscreenchange", | |
| "fullscreenerror", | |
| "hashchange", | |
| "input", | |
| "invalid", | |
| "keydown", | |
| "keypress", | |
| "keyup", | |
| "load", | |
| "loadeddata", | |
| "loadedmetadata", | |
| "loadstart", | |
| "message", | |
| "mousedown", | |
| "mouseenter", | |
| "mouseleave", | |
| "mousemove", | |
| "mouseover", | |
| "mouseout", | |
| "mouseup", | |
| // "mousewheel", deprecated - use wheel event instead | |
| "offline", | |
| "online", | |
| "open", | |
| "pagehide", | |
| "pageshow", | |
| "paste", | |
| "pause", | |
| "play", | |
| "playing", | |
| "popstate", | |
| "progress", | |
| "ratechange", | |
| "resize", | |
| "reset", | |
| "scroll", | |
| "search", | |
| "seeked", | |
| "seeking", | |
| "select", | |
| "show", | |
| "stalled", | |
| "storage", | |
| "submit", | |
| "suspend", | |
| "timeupdate", | |
| "toggle", | |
| "touchcancel", | |
| "touchend", | |
| "touchmove", | |
| "touchstart", | |
| "transitionend", | |
| "unload", | |
| "volumechange", | |
| "waiting" | |
| ]; | |
| /** | |
| * @function isEvent boolean. Returns whether a given string is a DOM event or not | |
| * @return bool | |
| * @var string $event . | |
| */ | |
| public static function isEvent(string $eventName): bool | |
| { | |
| $key = array_search($eventName, self::$domEventList); | |
| return ($key === false ? false : true); | |
| } | |
| public function validate($data): bool | |
| { | |
| unset($this->errmsg); | |
| if (!is_string($data)) { | |
| $msgText = 'argument passed to validate method must be a string.'; | |
| // do not pass event name to errmsg if it is not a string. | |
| $this->setErrMsg($msgText); | |
| return false; | |
| } | |
| $result = self::isEvent($data); | |
| if (!$result) { | |
| $msgText = "%s is not a valid javascript event name."; | |
| $this->setErrMsg($msgText, $data); | |
| return false; | |
| } | |
| return true; | |
| } | |
| protected function setErrMsg(string $msgText, string $eventName=null) : void | |
| { | |
| $msgVars = [$eventName ?: $eventName]; | |
| $msg = new UserMsg($msgVars, $msgText); | |
| $this->errmsg = $msg; | |
| } | |
| public function getErrMsg(): ?UserMsgInterface | |
| { | |
| return $this->errmsg ?? null; | |
| } | |
| } |