Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
daybrush committed Apr 19, 2023
1 parent 96c1288 commit 20f9644
Show file tree
Hide file tree
Showing 49 changed files with 24,566 additions and 57 deletions.
1,878 changes: 1,878 additions & 0 deletions release/1.22.2/dist/selecto.cjs.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions release/1.22.2/dist/selecto.cjs.js.map

Large diffs are not rendered by default.

1,852 changes: 1,852 additions & 0 deletions release/1.22.2/dist/selecto.esm.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions release/1.22.2/dist/selecto.esm.js.map

Large diffs are not rendered by default.

6,218 changes: 6,218 additions & 0 deletions release/1.22.2/dist/selecto.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions release/1.22.2/dist/selecto.js.map

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions release/1.22.2/dist/selecto.min.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions release/1.22.2/dist/selecto.min.js.map

Large diffs are not rendered by default.

2,772 changes: 2,772 additions & 0 deletions release/1.22.2/doc/EventEmitter.html

Large diffs are not rendered by default.

7,474 changes: 7,474 additions & 0 deletions release/1.22.2/doc/Selecto.html

Large diffs are not rendered by default.

290 changes: 290 additions & 0 deletions release/1.22.2/doc/index.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>node_modules/@scena/event-emitter/src/EventEmitter.ts - Documentation</title>

<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<link type="text/css" rel="stylesheet" href="styles/daybrush.css">
<link type="text/css" rel="stylesheet" href="styles/custom.css">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="description" content="node_modules/@scena/event-emitter/src/EventEmitter.ts - Documentation"/>

</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav>
<h2><a href="index.html">Home</a></h2><h2 class="custom"><a href="https://github.com/daybrush/selecto" target="_blank" class="menu-item" id="repository" >Github repo</a></h2><div class="search"><div class="input-area"><input type="text"/></div><button></button></div><ul class="classes"><li file="selecto" class="parent"><a href="Selecto.html">Selecto</a><h4><a href="Selecto.html#static members">Static Members</a></h4><ul class='static members'><li data-type='member'><a href="Selecto.html#.CLASS_NAME">CLASS_NAME</a></li><li data-type='member'><a href="Selecto.html#.EVENTS">EVENTS</a></li><li data-type='member'><a href="Selecto.html#.METHODS">METHODS</a></li><li data-type='member'><a href="Selecto.html#.OPTIONS">OPTIONS</a></li></ul><h4><a href="Selecto.html#methods">Methods</a></h4><ul class='methods'><li data-type='method'><a href="Selecto.html#checkScroll">checkScroll</a></li><li data-type='method'><a href="Selecto.html#clickTarget">clickTarget</a></li><li data-type='method'><a href="Selecto.html#destroy">destroy</a></li><li data-type='method'><a href="Selecto.html#emit">emit</a></li><li data-type='method'><a href="Selecto.html#findSelectableTargets">findSelectableTargets</a></li><li data-type='method'><a href="Selecto.html#getSelectableElements">getSelectableElements</a></li><li data-type='method'><a href="Selecto.html#getSelectedTargets">getSelectedTargets</a></li><li data-type='method'><a href="Selecto.html#off">off</a></li><li data-type='method'><a href="Selecto.html#on">on</a></li><li data-type='method'><a href="Selecto.html#once">once</a></li><li data-type='method'><a href="Selecto.html#selectTargetsByPoints">selectTargetsByPoints</a></li><li data-type='method'><a href="Selecto.html#setSelectedTargets">setSelectedTargets</a></li><li data-type='method'><a href="Selecto.html#setSelectedTargetsByPoints">setSelectedTargetsByPoints</a></li><li data-type='method'><a href="Selecto.html#trigger">trigger</a></li><li data-type='method'><a href="Selecto.html#triggerDragStart">triggerDragStart</a></li></ul><h4><a href="Selecto.html#events">Events</a></h4><ul class='events'><li data-type='event'><a href="Selecto.html#.event:drag">drag</a></li><li data-type='event'><a href="Selecto.html#.event:dragEnd">dragEnd</a></li><li data-type='event'><a href="Selecto.html#.event:dragStart">dragStart</a></li><li data-type='event'><a href="Selecto.html#.event:keydown">keydown</a></li><li data-type='event'><a href="Selecto.html#.event:keyup">keyup</a></li><li data-type='event'><a href="Selecto.html#.event:select">select</a></li><li data-type='event'><a href="Selecto.html#.event:selectEnd">selectEnd</a></li><li data-type='event'><a href="Selecto.html#.event:selectStart">selectStart</a></li></ul><h4><a href="Selecto.html#type definitions">Type Definitions</a></h4><ul class='type definitions'><li data-type='typddef'><a href="Selecto.html#.BoundContainer">BoundContainer</a></li><li data-type='typddef'><a href="Selecto.html#.CurrentTarget">CurrentTarget</a></li><li data-type='typddef'><a href="Selecto.html#.OnDrag">OnDrag</a></li><li data-type='typddef'><a href="Selecto.html#.OnDragEnd">OnDragEnd</a></li><li data-type='typddef'><a href="Selecto.html#.OnDragStart">OnDragStart</a></li><li data-type='typddef'><a href="Selecto.html#.OnSelect">OnSelect</a></li><li data-type='typddef'><a href="Selecto.html#.OnSelectEnd">OnSelectEnd</a></li><li data-type='typddef'><a href="Selecto.html#.SelectedTargets">SelectedTargets</a></li><li data-type='typddef'><a href="Selecto.html#.SelectedTargetsWithRect">SelectedTargetsWithRect</a></li><li data-type='typddef'><a href="Selecto.html#.SelectoOptions">SelectoOptions</a></li></ul></li><li file="eventemitter" class="parent"><a href="EventEmitter.html">EventEmitter</a><h4><a href="EventEmitter.html#methods">Methods</a></h4><ul class='methods'><li data-type='method'><a href="EventEmitter.html#emit">emit</a></li><li data-type='method'><a href="EventEmitter.html#off">off</a></li><li data-type='method'><a href="EventEmitter.html#on">on</a></li><li data-type='method'><a href="EventEmitter.html#once">once</a></li><li data-type='method'><a href="EventEmitter.html#trigger">trigger</a></li><li data-type='method'><a href="EventEmitter.html#trigger">trigger</a></li></ul><h4><a href="EventEmitter.html#type definitions">Type Definitions</a></h4><ul class='type definitions'><li data-type='typddef'><a href="EventEmitter.html#.EmitterParam">EmitterParam</a></li><li data-type='typddef'><a href="EventEmitter.html#.EventHash">EventHash</a></li><li data-type='typddef'><a href="EventEmitter.html#.EventInfo">EventInfo</a></li><li data-type='typddef'><a href="EventEmitter.html#.EventListener">EventListener</a></li><li data-type='typddef'><a href="EventEmitter.html#.EventOptions">EventOptions</a></li><li data-type='typddef'><a href="EventEmitter.html#.OnEvent">OnEvent</a></li><li data-type='typddef'><a href="EventEmitter.html#.TargetParam">TargetParam</a></li></ul></li></ul>
</nav>

<div id="main">

<h1 class="page-title">node_modules/@scena/event-emitter/src/EventEmitter.ts</h1>







<section>
<article>
<pre class="prettyprint source linenums"><code>import { findIndex, isObject } from "@daybrush/utils";
import { EventListener, EventHash, EventInfo, EventOptions, OnEvent, TargetParam } from "./types";

/**
* Implement EventEmitter on object or component.
*/
class EventEmitter&lt;Events extends {} = { [key: string]: { [key: string]: any } }> {

private _events: {
[name: string]: EventInfo[],
} = {};
public on&lt;Name extends keyof Events, Param = Events[Name]>(
eventName: Name, listener: EventListener&lt;Param, this>): this;
public on(events: EventHash&lt;Events, this>): this;
/**
* Add a listener to the registered event.
* @param - Name of the event to be added
* @param - listener function of the event to be added
* @example
* import EventEmitter from "@scena/event-emitter";
* cosnt emitter = new EventEmitter();
*
* // Add listener in "a" event
* emitter.on("a", () => {
* });
* // Add listeners
* emitter.on({
* a: () => {},
* b: () => {},
* });
*/
public on(eventName: string | object, listener?: EventListener&lt;Events[any], this>): this {
if (isObject(eventName)) {
for (const name in eventName) {
this.on&lt;any>(name, eventName[name]);
}
} else {
this._addEvent(eventName, listener, {});
}
return this;
}
public off&lt;Name extends keyof Events, Param = Events[Name]>(
eventName?: Name, listener?: EventListener&lt;Param, this>): this;
public off(events: EventHash&lt;Events, this>): this;
/**
* Remove listeners registered in the event target.
* @param - Name of the event to be removed
* @param - listener function of the event to be removed
* @example
* import EventEmitter from "@scena/event-emitter";
* cosnt emitter = new EventEmitter();
*
* // Remove all listeners.
* emitter.off();
*
* // Remove all listeners in "A" event.
* emitter.off("a");
*
*
* // Remove "listener" listener in "a" event.
* emitter.off("a", listener);
*/
public off(eventName?: string | object, listener?: EventListener&lt;Events[any], this>): this {
if (!eventName) {
this._events = {};
} else if(isObject(eventName)) {
for (const name in eventName) {
this.off&lt;any>(name);
}
} else if (!listener) {
this._events[eventName] = [];
} else {
const events = this._events[eventName];

if (events) {
const index = findIndex(events, e => e.listener === listener);

if (index > -1) {
events.splice(index, 1);
}
}
}
return this;
}
/**
* Add a disposable listener and Use promise to the registered event.
* @param - Name of the event to be added
* @param - disposable listener function of the event to be added
* @example
* import EventEmitter from "@scena/event-emitter";
* cosnt emitter = new EventEmitter();
*
* // Add a disposable listener in "a" event
* emitter.once("a", () => {
* });
*
* // Use Promise
* emitter.once("a").then(e => {
* });
*/
public once&lt;Name extends keyof Events &amp; string, Param = Events[Name]>(
eventName: Name, listener?: EventListener&lt;Param, this>): Promise&lt;OnEvent&lt;Param, this>> {
if (listener) {
this._addEvent(eventName, listener, { once: true });
}
return new Promise&lt;OnEvent&lt;Param, this>>(resolve => {
this._addEvent(eventName, resolve, { once: true });
});
}
public emit&lt;Name extends keyof Events, Param = Events[Name]>(
eventName: {} extends Param ? Name : never): boolean;
public emit&lt;Name extends keyof Events, Param = Events[Name]>(
eventName: Name, param: TargetParam&lt;Param>): boolean;
/**
* Fires an event to call listeners.
* @param - Event name
* @param - Event parameter
* @return If false, stop the event.
* @example
*
* import EventEmitter from "@scena/event-emitter";
*
*
* const emitter = new EventEmitter();
*
* emitter.on("a", e => {
* });
*
*
* emitter.emit("a", {
* a: 1,
* });
*/
public emit(eventName: string, param: TargetParam&lt;any> = {}): boolean {
const events = this._events[eventName];

if (!eventName || !events) {
return true;
}
let isStop = false;

param.eventType = eventName;
param.stop = () => {
isStop = true;
};
param.currentTarget = this;


[...events].forEach(info => {
info.listener(param);
if (info.once) {
this.off&lt;any>(eventName, info.listener);
}
});

return !isStop;
}
public trigger&lt;Name extends keyof Events, Param = Events[Name]>(eventName: {} extends TargetParam&lt;Param> ? Name : never): boolean;
public trigger&lt;Name extends keyof Events, Param = Events[Name]>(eventName: Name, param: TargetParam&lt;Param>): boolean;
/**
* Fires an event to call listeners.
* @param - Event name
* @param - Event parameter
* @return If false, stop the event.
* @example
*
* import EventEmitter from "@scena/event-emitter";
*
*
* const emitter = new EventEmitter();
*
* emitter.on("a", e => {
* });
*
*
* emitter.emit("a", {
* a: 1,
* });
*//**
* Fires an event to call listeners.
* @param - Event name
* @param - Event parameter
* @return If false, stop the event.
* @example
*
* import EventEmitter from "@scena/event-emitter";
*
*
* const emitter = new EventEmitter();
*
* emitter.on("a", e => {
* });
*
* // emit
* emitter.trigger("a", {
* a: 1,
* });
*/
public trigger&lt;Name extends keyof Events>(eventName: Name, param: TargetParam&lt;any>= {}): boolean {
return this.emit&lt;any>(eventName, param);
}

private _addEvent(eventName: string, listener: EventListener&lt;Events[any], this>, options: Partial&lt;EventOptions>) {
const events = this._events;

events[eventName] = events[eventName] || [];

const listeners = events[eventName];

listeners.push({ listener, ...options });
}
}

export default EventEmitter;
</code></pre>
</article>
</section>





<style>


nav li[file="node_modules/@scena/event-emitter/src/eventemitter"]:after {
display: none;
}
nav li[file="node_modules/@scena/event-emitter/src/eventemitter"] h4, nav li[file="node_modules/@scena/event-emitter/src/eventemitter"] ul {
display: block;
}
</style>

</div>

<br class="clear">

<footer>
Documentation generated by <a href="https://github.com/daybrush/jsdoc">JSDoc 0.4.3</a> on Thu Apr 20 2023 04:02:26 GMT+0900 (대한민국 표준시) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/utils.min.js"></script>
<script src="scripts/search.js"></script>
<script src="scripts/custom.js"></script>
</body>
</html>
Loading

0 comments on commit 20f9644

Please sign in to comment.