feat: Reinitialize frontend with SvelteKit and TypeScript

- Delete old Vite+Svelte frontend
- Initialize new SvelteKit project with TypeScript
- Configure Tailwind CSS v4 + DaisyUI
- Implement JWT authentication with auto-refresh
- Create login page with form validation (Zod)
- Add protected route guards
- Update Docker configuration for single-stage build
- Add E2E tests with Playwright (6/11 passing)
- Fix Svelte 5 reactivity with $state() runes

Known issues:
- 5 E2E tests failing (timing/async issues)
- Token refresh implementation needs debugging
- Validation error display timing
This commit is contained in:
2026-02-17 16:19:59 -05:00
parent 54df6018f5
commit de2d83092e
28274 changed files with 3816354 additions and 90 deletions

View File

@@ -0,0 +1,50 @@
import File from '../file/File.js';
import DataTransferItemList from './DataTransferItemList.js';
/**
* DataTransfer.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer
*/
export default class DataTransfer {
dropEffect: 'none' | 'copy' | 'link' | 'move';
effectAllowed: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized';
readonly items: DataTransferItemList;
/**
* Returns files.
*
* @returns Files.
*/
get files(): File[];
/**
* Returns types.
*
* @returns Types.
*/
get types(): string[];
/**
* Clears the data.
*/
clearData(): void;
/**
* Sets the data.
*
* @param format Format.
* @param data Data.
*/
setData(format: string, data: string): void;
/**
* Gets the data.
*
* @param format Format.
* @returns Data.
*/
getData(format: string): string;
/**
* Sets drag image.
*
* TODO: Implement.
*/
setDragImage(): void;
}
//# sourceMappingURL=DataTransfer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransfer.d.ts","sourceRoot":"","sources":["../../src/event/DataTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAEnC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACzB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IACvD,aAAa,EACjB,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,MAAM,GACN,UAAU,GACV,MAAM,GACN,KAAK,GACL,eAAe,CAAU;IAC5B,SAAgB,KAAK,EAAE,oBAAoB,CAA8B;IAEzE;;;;OAIG;IACH,IAAW,KAAK,IAAI,IAAI,EAAE,CAQzB;IAED;;;;OAIG;IACH,IAAW,KAAK,IAAI,MAAM,EAAE,CAE3B;IAED;;OAEG;IACI,SAAS,IAAI,IAAI;IAIxB;;;;;OAKG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAUlD;;;;;OAKG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWtC;;;;OAIG;IACI,YAAY,IAAI,IAAI;CAG3B"}

View File

@@ -0,0 +1,81 @@
import DataTransferItem from './DataTransferItem.js';
import DataTransferItemList from './DataTransferItemList.js';
/**
* DataTransfer.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer
*/
export default class DataTransfer {
dropEffect = 'none';
effectAllowed = 'none';
items = new DataTransferItemList();
/**
* Returns files.
*
* @returns Files.
*/
get files() {
const files = [];
for (const item of this.items) {
if (item.kind === 'file') {
files.push(item.getAsFile());
}
}
return files;
}
/**
* Returns types.
*
* @returns Types.
*/
get types() {
return this.items.map((item) => item.type);
}
/**
* Clears the data.
*/
clearData() {
this.items.clear();
}
/**
* Sets the data.
*
* @param format Format.
* @param data Data.
*/
setData(format, data) {
for (let i = 0, max = this.items.length; i < max; i++) {
if (this.items[i].type === format) {
this.items[i] = new DataTransferItem(data, format);
return;
}
}
this.items.add(data, format);
}
/**
* Gets the data.
*
* @param format Format.
* @returns Data.
*/
getData(format) {
for (let i = 0, max = this.items.length; i < max; i++) {
if (this.items[i].type === format) {
let data = '';
this.items[i].getAsString((s) => (data = s));
return data;
}
}
return '';
}
/**
* Sets drag image.
*
* TODO: Implement.
*/
setDragImage() {
throw new Error('Not implemented.');
}
}
//# sourceMappingURL=DataTransfer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransfer.js","sourceRoot":"","sources":["../../src/event/DataTransfer.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACzB,UAAU,GAAsC,MAAM,CAAC;IACvD,aAAa,GASC,MAAM,CAAC;IACZ,KAAK,GAAyB,IAAI,oBAAoB,EAAE,CAAC;IAEzE;;;;OAIG;IACH,IAAW,KAAK;QACf,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,SAAS;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,MAAc,EAAE,IAAY;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnD,OAAO;YACR,CAAC;QACF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,MAAc;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;OAIG;IACI,YAAY;QAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;CACD"}

View File

@@ -0,0 +1,30 @@
import File from '../file/File.js';
/**
* Data transfer item.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.
*/
export default class DataTransferItem {
#private;
readonly kind: 'string' | 'file';
readonly type: string;
/**
* Constructor.
*
* @param item Item.
* @param type Type.
*/
constructor(item: string | File, type?: string);
/**
* Returns file.
*/
getAsFile(): File;
/**
* Returns string.
*
* @param callback Callback.
*/
getAsString(callback: (text: string) => void): void;
}
//# sourceMappingURL=DataTransferItem.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransferItem.d.ts","sourceRoot":"","sources":["../../src/event/DataTransferItem.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;;IACpC,SAAgB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAG7B;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,SAAK;IAM1C;;OAEG;IACI,SAAS,IAAI,IAAI;IAOxB;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAM1D"}

View File

@@ -0,0 +1,43 @@
/**
* Data transfer item.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.
*/
export default class DataTransferItem {
kind;
type;
#item = null;
/**
* Constructor.
*
* @param item Item.
* @param type Type.
*/
constructor(item, type = '') {
this.kind = typeof item === 'string' ? 'string' : 'file';
this.type = this.kind === 'string' ? type : item.type;
this.#item = item;
}
/**
* Returns file.
*/
getAsFile() {
if (this.kind === 'string') {
return null;
}
return this.#item;
}
/**
* Returns string.
*
* @param callback Callback.
*/
getAsString(callback) {
if (this.kind === 'file') {
callback;
}
callback(this.#item);
}
}
//# sourceMappingURL=DataTransferItem.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransferItem.js","sourceRoot":"","sources":["../../src/event/DataTransferItem.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpB,IAAI,CAAoB;IACxB,IAAI,CAAS;IAC7B,KAAK,GAAkB,IAAI,CAAC;IAE5B;;;;;OAKG;IACH,YAAY,IAAmB,EAAE,IAAI,GAAG,EAAE;QACzC,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAQ,IAAK,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,SAAS;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAa,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgC;QAClD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC;QACV,CAAC;QACD,QAAQ,CAAS,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD"}

View File

@@ -0,0 +1,25 @@
import File from '../file/File.js';
import DataTransferItem from './DataTransferItem.js';
/**
*
*/
export default class DataTransferItemList extends Array<DataTransferItem> {
/**
* Adds an item.
*
* @param item Item.
* @param type Type.
*/
add(item: File | string, type?: string): void;
/**
* Removes an item.
*
* @param index Index.
*/
remove(index: number): void;
/**
* Clears list.
*/
clear(): void;
}
//# sourceMappingURL=DataTransferItemList.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransferItemList.d.ts","sourceRoot":"","sources":["../../src/event/DataTransferItemList.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;IACxE;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAapD;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACI,KAAK,IAAI,IAAI;CAKpB"}

View File

@@ -0,0 +1,40 @@
import File from '../file/File.js';
import DataTransferItem from './DataTransferItem.js';
/**
*
*/
export default class DataTransferItemList extends Array {
/**
* Adds an item.
*
* @param item Item.
* @param type Type.
*/
add(item, type) {
if (item instanceof File) {
this.push(new DataTransferItem(item));
return;
}
if (!type) {
throw new TypeError(`Failed to execute 'add' on 'DataTransferItemList': parameter 1 is not of type 'File'.`);
}
this.push(new DataTransferItem(item, type));
}
/**
* Removes an item.
*
* @param index Index.
*/
remove(index) {
this.splice(index, 1);
}
/**
* Clears list.
*/
clear() {
while (this.length) {
this.pop();
}
}
}
//# sourceMappingURL=DataTransferItemList.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DataTransferItemList.js","sourceRoot":"","sources":["../../src/event/DataTransferItemList.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAuB;IACxE;;;;;OAKG;IACI,GAAG,CAAC,IAAmB,EAAE,IAAa;QAC5C,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,SAAS,CAClB,uFAAuF,CACvF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,KAAK;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACF,CAAC;CACD"}

125
frontend/node_modules/happy-dom/lib/event/Event.d.ts generated vendored Normal file
View File

@@ -0,0 +1,125 @@
import IEventInit from './IEventInit.js';
import * as PropertySymbol from '../PropertySymbol.js';
import EventTarget from './EventTarget.js';
import EventPhaseEnum from './EventPhaseEnum.js';
/**
* Event.
*/
export default class Event {
static NONE: EventPhaseEnum;
static CAPTURING_PHASE: EventPhaseEnum;
static AT_TARGET: EventPhaseEnum;
static BUBBLING_PHASE: EventPhaseEnum;
NONE: EventPhaseEnum;
CAPTURING_PHASE: EventPhaseEnum;
AT_TARGET: EventPhaseEnum;
BUBBLING_PHASE: EventPhaseEnum;
[PropertySymbol.composed]: boolean;
[PropertySymbol.bubbles]: boolean;
[PropertySymbol.cancelable]: boolean;
[PropertySymbol.defaultPrevented]: boolean;
[PropertySymbol.eventPhase]: EventPhaseEnum;
[PropertySymbol.timeStamp]: number;
[PropertySymbol.type]: string;
[PropertySymbol.dispatching]: boolean;
[PropertySymbol.immediatePropagationStopped]: boolean;
[PropertySymbol.propagationStopped]: boolean;
[PropertySymbol.target]: EventTarget;
[PropertySymbol.currentTarget]: EventTarget;
[PropertySymbol.isInPassiveEventListener]: boolean;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IEventInit | null);
/**
* Returns composed.
*
* @returns Composed.
*/
get composed(): boolean;
/**
* Returns bubbles.
*
* @returns Bubbles.
*/
get bubbles(): boolean;
/**
* Returns cancelable.
*
* @returns Cancelable.
*/
get cancelable(): boolean;
/**
* Returns defaultPrevented.
*
* @returns Default prevented.
*/
get defaultPrevented(): boolean;
/**
* Returns eventPhase.
*
* @returns Event phase.
*/
get eventPhase(): EventPhaseEnum;
/**
* Returns timeStamp.
*
* @returns Time stamp.
*/
get timeStamp(): number;
/**
* Returns type.
*
* @returns Type.
*/
get type(): string;
/**
* Returns target.
*
* @returns Target.
*/
get target(): EventTarget;
/**
* Returns target.
*
* @returns Target.
*/
get currentTarget(): EventTarget;
/**
* Returns "true" if propagation has been stopped.
*
* @returns "true" if propagation has been stopped.
*/
get cancelBubble(): boolean;
/**
* Returns composed path.
*
* @returns Composed path.
*/
composedPath(): EventTarget[];
/**
* Init event.
*
* @deprecated
* @param type Type.
* @param [bubbles=false] "true" if it bubbles.
* @param [cancelable=false] "true" if it cancelable.
*/
initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
/**
* Prevents default.
*/
preventDefault(): void;
/**
* Stops immediate propagation.
*/
stopImmediatePropagation(): void;
/**
* Stops propagation.
*/
stopPropagation(): void;
}
//# sourceMappingURL=Event.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/event/Event.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAIvD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB,OAAc,IAAI,iBAAuB;IACzC,OAAc,eAAe,iBAA4B;IACzD,OAAc,SAAS,iBAA2B;IAClD,OAAc,cAAc,iBAA2B;IAEhD,IAAI,iBAAc;IAClB,eAAe,iBAAyB;IACxC,SAAS,iBAAmB;IAC5B,cAAc,iBAAwB;IAEtC,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAS;IAClC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAS;IACjC,CAAC,cAAc,CAAC,UAAU,CAAC,UAAS;IACpC,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAS;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAuB;IAClD,CAAC,cAAc,CAAC,SAAS,CAAC,SAAqB;IAC/C,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAE9B,CAAC,cAAc,CAAC,WAAW,CAAC,UAAS;IACrC,CAAC,cAAc,CAAC,2BAA2B,CAAC,UAAS;IACrD,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAS;IAC5C,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,CAAQ;IAC5C,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,WAAW,CAAQ;IACnD,CAAC,cAAc,CAAC,wBAAwB,CAAC,UAAS;IAEzD;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,UAAU,GAAG,IAAW;IAO7D;;;;OAIG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;;;OAIG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;;OAIG;IACH,IAAW,UAAU,IAAI,cAAc,CAEtC;IAED;;;;OAIG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,IAAW,MAAM,IAAI,WAAW,CAE/B;IAED;;;;OAIG;IACH,IAAW,aAAa,IAAI,WAAW,CAEtC;IAED;;;;OAIG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;OAIG;IACI,YAAY,IAAI,WAAW,EAAE;IAmCpC;;;;;;;OAOG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,EAAE,UAAU,UAAQ,GAAG,IAAI;IAMzE;;OAEG;IACI,cAAc,IAAI,IAAI;IAM7B;;OAEG;IACI,wBAAwB,IAAI,IAAI;IAIvC;;OAEG;IACI,eAAe,IAAI,IAAI;CAG9B"}

187
frontend/node_modules/happy-dom/lib/event/Event.js generated vendored Normal file
View File

@@ -0,0 +1,187 @@
import * as PropertySymbol from '../PropertySymbol.js';
import NodeTypeEnum from '../nodes/node/NodeTypeEnum.js';
import EventPhaseEnum from './EventPhaseEnum.js';
/**
* Event.
*/
export default class Event {
static NONE = EventPhaseEnum.none;
static CAPTURING_PHASE = EventPhaseEnum.capturing;
static AT_TARGET = EventPhaseEnum.atTarget;
static BUBBLING_PHASE = EventPhaseEnum.bubbling;
NONE = Event.NONE;
CAPTURING_PHASE = Event.CAPTURING_PHASE;
AT_TARGET = Event.AT_TARGET;
BUBBLING_PHASE = Event.BUBBLING_PHASE;
[PropertySymbol.composed] = false;
[PropertySymbol.bubbles] = false;
[PropertySymbol.cancelable] = false;
[PropertySymbol.defaultPrevented] = false;
[PropertySymbol.eventPhase] = EventPhaseEnum.none;
[PropertySymbol.timeStamp] = performance.now();
[PropertySymbol.type];
[PropertySymbol.dispatching] = false;
[PropertySymbol.immediatePropagationStopped] = false;
[PropertySymbol.propagationStopped] = false;
[PropertySymbol.target] = null;
[PropertySymbol.currentTarget] = null;
[PropertySymbol.isInPassiveEventListener] = false;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
this[PropertySymbol.type] = type;
this[PropertySymbol.bubbles] = eventInit?.bubbles ?? false;
this[PropertySymbol.cancelable] = eventInit?.cancelable ?? false;
this[PropertySymbol.composed] = eventInit?.composed ?? false;
}
/**
* Returns composed.
*
* @returns Composed.
*/
get composed() {
return this[PropertySymbol.composed];
}
/**
* Returns bubbles.
*
* @returns Bubbles.
*/
get bubbles() {
return this[PropertySymbol.bubbles];
}
/**
* Returns cancelable.
*
* @returns Cancelable.
*/
get cancelable() {
return this[PropertySymbol.cancelable];
}
/**
* Returns defaultPrevented.
*
* @returns Default prevented.
*/
get defaultPrevented() {
return this[PropertySymbol.defaultPrevented];
}
/**
* Returns eventPhase.
*
* @returns Event phase.
*/
get eventPhase() {
return this[PropertySymbol.eventPhase];
}
/**
* Returns timeStamp.
*
* @returns Time stamp.
*/
get timeStamp() {
return this[PropertySymbol.timeStamp];
}
/**
* Returns type.
*
* @returns Type.
*/
get type() {
return this[PropertySymbol.type];
}
/**
* Returns target.
*
* @returns Target.
*/
get target() {
return this[PropertySymbol.target];
}
/**
* Returns target.
*
* @returns Target.
*/
get currentTarget() {
return this[PropertySymbol.currentTarget];
}
/**
* Returns "true" if propagation has been stopped.
*
* @returns "true" if propagation has been stopped.
*/
get cancelBubble() {
return this[PropertySymbol.propagationStopped];
}
/**
* Returns composed path.
*
* @returns Composed path.
*/
composedPath() {
if (!this[PropertySymbol.target]) {
return [];
}
const composedPath = [];
let eventTarget = this[PropertySymbol.target];
while (eventTarget) {
composedPath.push(eventTarget);
if (eventTarget.parentNode) {
eventTarget = eventTarget.parentNode;
}
else if (this[PropertySymbol.composed] &&
eventTarget[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode &&
eventTarget.host) {
eventTarget = eventTarget.host;
}
else if (eventTarget[PropertySymbol.nodeType] === NodeTypeEnum.documentNode &&
// The "load" event is a special case. It should not bubble up to the window.
this[PropertySymbol.type] !== 'load') {
eventTarget = eventTarget[PropertySymbol.window];
}
else {
break;
}
}
return composedPath;
}
/**
* Init event.
*
* @deprecated
* @param type Type.
* @param [bubbles=false] "true" if it bubbles.
* @param [cancelable=false] "true" if it cancelable.
*/
initEvent(type, bubbles = false, cancelable = false) {
this[PropertySymbol.type] = type;
this[PropertySymbol.bubbles] = bubbles;
this[PropertySymbol.cancelable] = cancelable;
}
/**
* Prevents default.
*/
preventDefault() {
if (!this[PropertySymbol.isInPassiveEventListener] && this.cancelable) {
this[PropertySymbol.defaultPrevented] = true;
}
}
/**
* Stops immediate propagation.
*/
stopImmediatePropagation() {
this[PropertySymbol.immediatePropagationStopped] = true;
}
/**
* Stops propagation.
*/
stopPropagation() {
this[PropertySymbol.propagationStopped] = true;
}
}
//# sourceMappingURL=Event.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/event/Event.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,8 @@
declare enum EventPhaseEnum {
none = 0,
capturing = 1,
atTarget = 2,
bubbling = 3
}
export default EventPhaseEnum;
//# sourceMappingURL=EventPhaseEnum.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EventPhaseEnum.d.ts","sourceRoot":"","sources":["../../src/event/EventPhaseEnum.ts"],"names":[],"mappings":"AAAA,aAAK,cAAc;IAClB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,QAAQ,IAAI;CACZ;AACD,eAAe,cAAc,CAAC"}

View File

@@ -0,0 +1,9 @@
var EventPhaseEnum;
(function (EventPhaseEnum) {
EventPhaseEnum[EventPhaseEnum["none"] = 0] = "none";
EventPhaseEnum[EventPhaseEnum["capturing"] = 1] = "capturing";
EventPhaseEnum[EventPhaseEnum["atTarget"] = 2] = "atTarget";
EventPhaseEnum[EventPhaseEnum["bubbling"] = 3] = "bubbling";
})(EventPhaseEnum || (EventPhaseEnum = {}));
export default EventPhaseEnum;
//# sourceMappingURL=EventPhaseEnum.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EventPhaseEnum.js","sourceRoot":"","sources":["../../src/event/EventPhaseEnum.ts"],"names":[],"mappings":"AAAA,IAAK,cAKJ;AALD,WAAK,cAAc;IAClB,mDAAQ,CAAA;IACR,6DAAa,CAAA;IACb,2DAAY,CAAA;IACZ,2DAAY,CAAA;AACb,CAAC,EALI,cAAc,KAAd,cAAc,QAKlB;AACD,eAAe,cAAc,CAAC"}

View File

@@ -0,0 +1,73 @@
import * as PropertySymbol from '../PropertySymbol.js';
import Event from './Event.js';
import IEventListenerOptions from './IEventListenerOptions.js';
import TEventListener from './TEventListener.js';
import BrowserWindow from '../window/BrowserWindow.js';
/**
* Handles events.
*/
export default class EventTarget {
#private;
protected [PropertySymbol.window]: BrowserWindow;
readonly [PropertySymbol.listeners]: {
capturing: Map<string, TEventListener[]>;
bubbling: Map<string, TEventListener[]>;
};
readonly [PropertySymbol.listenerOptions]: {
capturing: Map<string, IEventListenerOptions[]>;
bubbling: Map<string, IEventListenerOptions[]>;
};
/**
* Return a default description for the EventTarget class.
*/
get [Symbol.toStringTag](): string;
/**
* Adds an event listener.
*
* @param type Event type.
* @param listener Listener.
* @param options An object that specifies characteristics about the event listener.(currently only once)
* @param options.once
* @param options.signal An AbortSignal. The listener will be removed when the given AbortSignal object's abort() method is called.
*/
addEventListener(type: string, listener: TEventListener, options?: boolean | IEventListenerOptions): void;
/**
* Adds an event listener.
*
* @param type Event type.
* @param listener Listener.
*/
removeEventListener(type: string, listener: TEventListener): void;
/**
* Dispatches an event.
*
* @see https://www.w3.org/TR/DOM-Level-3-Events/#event-flow
* @see https://www.quirksmode.org/js/events_order.html#link4
* @param event Event.
* @returns The return value is false if event is cancelable and at least one of the event handlers which handled this event called Event.preventDefault().
*/
dispatchEvent(event: Event): boolean;
/**
* Adds an event listener.
*
* TODO:
* Was used by with IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
*
* @deprecated
* @param type Event type.
* @param listener Listener.
*/
attachEvent(type: string, listener: TEventListener): void;
/**
* Removes an event listener.
*
* TODO:
* Was used by IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
*
* @deprecated
* @param type Event type.
* @param listener Listener.
*/
detachEvent(type: string, listener: TEventListener): void;
}
//# sourceMappingURL=EventTarget.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"EventTarget.d.ts","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAI/D,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;;IAE/B,UAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEzD,SAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;QAC3C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;KACxC,CAGC;IACF,SAAgB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;KAC/C,CAGC;IAEF;;OAEG;IACH,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;IAED;;;;;;;;OAQG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,OAAO,GAAG,qBAAqB,GACvC,IAAI;IA6BP;;;;;OAKG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAqBxE;;;;;;;OAOG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAqB3C;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIhE;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;CA8KhE"}

View File

@@ -0,0 +1,270 @@
import * as PropertySymbol from '../PropertySymbol.js';
import EventPhaseEnum from './EventPhaseEnum.js';
import WindowBrowserContext from '../window/WindowBrowserContext.js';
import BrowserErrorCaptureEnum from '../browser/enums/BrowserErrorCaptureEnum.js';
/**
* Handles events.
*/
export default class EventTarget {
[PropertySymbol.listeners] = {
capturing: new Map(),
bubbling: new Map()
};
[PropertySymbol.listenerOptions] = {
capturing: new Map(),
bubbling: new Map()
};
/**
* Return a default description for the EventTarget class.
*/
get [Symbol.toStringTag]() {
return 'EventTarget';
}
/**
* Adds an event listener.
*
* @param type Event type.
* @param listener Listener.
* @param options An object that specifies characteristics about the event listener.(currently only once)
* @param options.once
* @param options.signal An AbortSignal. The listener will be removed when the given AbortSignal object's abort() method is called.
*/
addEventListener(type, listener, options) {
options = typeof options === 'boolean' ? { capture: options } : options || {};
const eventPhase = options.capture ? 'capturing' : 'bubbling';
let listeners = this[PropertySymbol.listeners][eventPhase].get(type);
let listenerOptions = this[PropertySymbol.listenerOptions][eventPhase].get(type);
if (!listeners) {
listeners = [];
listenerOptions = [];
this[PropertySymbol.listeners][eventPhase].set(type, listeners);
this[PropertySymbol.listenerOptions][eventPhase].set(type, listenerOptions);
}
if (listeners.includes(listener)) {
return;
}
listeners.push(listener);
listenerOptions.push(options);
if (options.signal && !options.signal.aborted) {
options.signal.addEventListener('abort', () => {
this.removeEventListener(type, listener);
});
}
}
/**
* Adds an event listener.
*
* @param type Event type.
* @param listener Listener.
*/
removeEventListener(type, listener) {
const bubblingListeners = this[PropertySymbol.listeners].bubbling.get(type);
if (bubblingListeners) {
const index = bubblingListeners.indexOf(listener);
if (index !== -1) {
bubblingListeners.splice(index, 1);
this[PropertySymbol.listenerOptions].bubbling.get(type).splice(index, 1);
return;
}
}
const capturingListeners = this[PropertySymbol.listeners].capturing.get(type);
if (capturingListeners) {
const index = capturingListeners.indexOf(listener);
if (index !== -1) {
capturingListeners.splice(index, 1);
this[PropertySymbol.listenerOptions].capturing.get(type).splice(index, 1);
}
}
}
/**
* Dispatches an event.
*
* @see https://www.w3.org/TR/DOM-Level-3-Events/#event-flow
* @see https://www.quirksmode.org/js/events_order.html#link4
* @param event Event.
* @returns The return value is false if event is cancelable and at least one of the event handlers which handled this event called Event.preventDefault().
*/
dispatchEvent(event) {
// The "load" event is a special case. It should not bubble up to the window from the document.
if (!event[PropertySymbol.dispatching] &&
(event[PropertySymbol.type] !== 'load' || !event[PropertySymbol.target])) {
event[PropertySymbol.dispatching] = true;
event[PropertySymbol.target] = this[PropertySymbol.proxy] || this;
this.#goThroughDispatchEventPhases(event);
event[PropertySymbol.dispatching] = false;
return !(event[PropertySymbol.cancelable] && event[PropertySymbol.defaultPrevented]);
}
this.#callDispatchEventListeners(event);
return !(event[PropertySymbol.cancelable] && event[PropertySymbol.defaultPrevented]);
}
/**
* Adds an event listener.
*
* TODO:
* Was used by with IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
*
* @deprecated
* @param type Event type.
* @param listener Listener.
*/
attachEvent(type, listener) {
this.addEventListener(type.replace('on', ''), listener);
}
/**
* Removes an event listener.
*
* TODO:
* Was used by IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
*
* @deprecated
* @param type Event type.
* @param listener Listener.
*/
detachEvent(type, listener) {
this.removeEventListener(type.replace('on', ''), listener);
}
/**
* Goes through dispatch event phases.
*
* @param event Event.
*/
#goThroughDispatchEventPhases(event) {
const composedPath = event.composedPath();
// Capturing phase
event[PropertySymbol.eventPhase] = EventPhaseEnum.capturing;
for (let i = composedPath.length - 1; i >= 0; i--) {
event[PropertySymbol.currentTarget] = composedPath[i];
composedPath[i].dispatchEvent(event);
if (event[PropertySymbol.propagationStopped] ||
event[PropertySymbol.immediatePropagationStopped]) {
event[PropertySymbol.eventPhase] = EventPhaseEnum.none;
event[PropertySymbol.currentTarget] = null;
return;
}
}
// At target phase
event[PropertySymbol.eventPhase] = EventPhaseEnum.atTarget;
event[PropertySymbol.currentTarget] = this[PropertySymbol.proxy] || this;
event[PropertySymbol.target].dispatchEvent(event);
// Bubbling phase
event[PropertySymbol.eventPhase] = EventPhaseEnum.bubbling;
if (event[PropertySymbol.bubbles] &&
!event[PropertySymbol.propagationStopped] &&
!event[PropertySymbol.immediatePropagationStopped]) {
for (let i = 1, max = composedPath.length; i < max; i++) {
event[PropertySymbol.currentTarget] = composedPath[i];
composedPath[i].dispatchEvent(event);
if (event[PropertySymbol.propagationStopped] ||
event[PropertySymbol.immediatePropagationStopped]) {
event[PropertySymbol.eventPhase] = EventPhaseEnum.none;
event[PropertySymbol.currentTarget] = null;
return;
}
}
}
// None phase (done)
event[PropertySymbol.eventPhase] = EventPhaseEnum.none;
event[PropertySymbol.currentTarget] = null;
}
/**
* Handles dispatch event listeners.
*
* @param event Event.
*/
#callDispatchEventListeners(event) {
const window = this[PropertySymbol.window];
const browserSettings = window ? new WindowBrowserContext(window).getSettings() : null;
const eventPhase = event.eventPhase === EventPhaseEnum.capturing ? 'capturing' : 'bubbling';
// We need to clone the arrays because the listeners may remove themselves while we are iterating.
const listeners = this[PropertySymbol.listeners][eventPhase].get(event.type)?.slice();
if (listeners && listeners.length) {
const listenerOptions = this[PropertySymbol.listenerOptions][eventPhase]
.get(event.type)
?.slice();
for (let i = 0, max = listeners.length; i < max; i++) {
const listener = listeners[i];
const options = listenerOptions[i];
if (options?.passive) {
event[PropertySymbol.isInPassiveEventListener] = true;
}
// We can end up in a never ending loop if the listener for the error event on Window also throws an error.
if (window &&
(this !== window || event.type !== 'error') &&
!browserSettings?.disableErrorCapturing &&
browserSettings?.errorCapture === BrowserErrorCaptureEnum.tryAndCatch) {
if (listener.handleEvent) {
let result;
try {
result = listener.handleEvent.call(listener, event);
}
catch (error) {
window[PropertySymbol.dispatchError](error);
}
if (result instanceof Promise) {
result.catch((error) => window[PropertySymbol.dispatchError](error));
}
}
else {
let result;
try {
result = listener.call(this, event);
}
catch (error) {
window[PropertySymbol.dispatchError](error);
}
if (result instanceof Promise) {
result.catch((error) => window[PropertySymbol.dispatchError](error));
}
}
}
else {
if (listener.handleEvent) {
listener.handleEvent.call(listener, event);
}
else {
listener.call(this, event);
}
}
event[PropertySymbol.isInPassiveEventListener] = false;
if (options?.once) {
// At this time, listeners and listenersOptions are cloned arrays. When the original value is deleted,
// The value corresponding to the cloned array is not deleted. So we need to delete the value in the cloned array.
listeners.splice(i, 1);
listenerOptions.splice(i, 1);
this.removeEventListener(event.type, listener);
i--;
max--;
}
if (event[PropertySymbol.immediatePropagationStopped]) {
return;
}
}
}
if (event.eventPhase !== EventPhaseEnum.capturing) {
const onEventName = 'on' + event.type.toLowerCase();
const eventListener = this[onEventName];
if (typeof eventListener === 'function') {
// We can end up in a never ending loop if the listener for the error event on Window also throws an error.
if (window &&
(this !== window || event.type !== 'error') &&
!browserSettings?.disableErrorCapturing &&
browserSettings?.errorCapture === BrowserErrorCaptureEnum.tryAndCatch) {
let result;
try {
result = eventListener(event);
}
catch (error) {
window[PropertySymbol.dispatchError](error);
}
if (result instanceof Promise) {
result.catch((error) => window[PropertySymbol.dispatchError](error));
}
}
else {
eventListener(event);
}
}
}
}
}
//# sourceMappingURL=EventTarget.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
export default interface IEventInit {
bubbles?: boolean;
cancelable?: boolean;
composed?: boolean;
}
//# sourceMappingURL=IEventInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IEventInit.d.ts","sourceRoot":"","sources":["../../src/event/IEventInit.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,UAAU;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=IEventInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IEventInit.js","sourceRoot":"","sources":["../../src/event/IEventInit.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,8 @@
import AbortSignal from '../fetch/AbortSignal.js';
export default interface IEventListenerOptions {
once?: boolean;
capture?: boolean;
passive?: boolean;
signal?: AbortSignal;
}
//# sourceMappingURL=IEventListenerOptions.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IEventListenerOptions.d.ts","sourceRoot":"","sources":["../../src/event/IEventListenerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,qBAAqB;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=IEventListenerOptions.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IEventListenerOptions.js","sourceRoot":"","sources":["../../src/event/IEventListenerOptions.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,16 @@
import EventTarget from './EventTarget.js';
export default interface ITouchInit {
identifier: number;
target: EventTarget;
clientX?: number;
clientY?: number;
screenX?: number;
screenY?: number;
pageX?: number;
pageY?: number;
radiusX?: number;
radiusY?: number;
rotationAngle?: number;
force?: number;
}
//# sourceMappingURL=ITouchInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ITouchInit.d.ts","sourceRoot":"","sources":["../../src/event/ITouchInit.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,OAAO,WAAW,UAAU;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=ITouchInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ITouchInit.js","sourceRoot":"","sources":["../../src/event/ITouchInit.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,7 @@
import BrowserWindow from '../window/BrowserWindow.js';
import IEventInit from './IEventInit.js';
export default interface IUIEventInit extends IEventInit {
detail?: number;
view?: BrowserWindow;
}
//# sourceMappingURL=IUIEventInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IUIEventInit.d.ts","sourceRoot":"","sources":["../../src/event/IUIEventInit.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,OAAO,WAAW,YAAa,SAAQ,UAAU;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=IUIEventInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IUIEventInit.js","sourceRoot":"","sources":["../../src/event/IUIEventInit.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,24 @@
import EventTarget from './EventTarget.js';
/**
* Message port.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
*/
export default abstract class MessagePort extends EventTarget {
/**
* Sends a message from the port, and optionally, transfers ownership of objects to other browsing contexts.
*
* @param _message Message.
* @param _transerList Transfer list.
*/
postMessage(_message: unknown, _transerList: unknown[]): void;
/**
* Starts the sending of messages queued on the port.
*/
start(): void;
/**
* Disconnects the port, so it is no longer active. This stops the flow of messages to that port.
*/
close(): void;
}
//# sourceMappingURL=MessagePort.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"MessagePort.d.ts","sourceRoot":"","sources":["../../src/event/MessagePort.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAY,SAAQ,WAAW;IAC5D;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI;IAIpE;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,KAAK,IAAI,IAAI;CAGpB"}

View File

@@ -0,0 +1,30 @@
import EventTarget from './EventTarget.js';
/**
* Message port.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
*/
export default class MessagePort extends EventTarget {
/**
* Sends a message from the port, and optionally, transfers ownership of objects to other browsing contexts.
*
* @param _message Message.
* @param _transerList Transfer list.
*/
postMessage(_message, _transerList) {
// TODO: Implement
}
/**
* Starts the sending of messages queued on the port.
*/
start() {
// TODO: Implement
}
/**
* Disconnects the port, so it is no longer active. This stops the flow of messages to that port.
*/
close() {
// TODO: Implement
}
}
//# sourceMappingURL=MessagePort.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"MessagePort.js","sourceRoot":"","sources":["../../src/event/MessagePort.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAgB,WAAY,SAAQ,WAAW;IAC5D;;;;;OAKG;IACI,WAAW,CAAC,QAAiB,EAAE,YAAuB;QAC5D,kBAAkB;IACnB,CAAC;IAED;;OAEG;IACI,KAAK;QACX,kBAAkB;IACnB,CAAC;IAED;;OAEG;IACI,KAAK;QACX,kBAAkB;IACnB,CAAC;CACD"}

View File

@@ -0,0 +1,5 @@
import TEventListenerFunction from './TEventListenerFunction.js';
import TEventListenerObject from './TEventListenerObject.js';
type TEventListener = TEventListenerFunction | TEventListenerObject;
export default TEventListener;
//# sourceMappingURL=TEventListener.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListener.d.ts","sourceRoot":"","sources":["../../src/event/TEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,KAAK,cAAc,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAEpE,eAAe,cAAc,CAAC"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TEventListener.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListener.js","sourceRoot":"","sources":["../../src/event/TEventListener.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,4 @@
import Event from './Event.js';
type TEventListenerFunction = (event: Event) => void;
export default TEventListenerFunction;
//# sourceMappingURL=TEventListenerFunction.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListenerFunction.d.ts","sourceRoot":"","sources":["../../src/event/TEventListenerFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAErD,eAAe,sBAAsB,CAAC"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TEventListenerFunction.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListenerFunction.js","sourceRoot":"","sources":["../../src/event/TEventListenerFunction.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,6 @@
import Event from './Event.js';
type TEventListenerObject = {
handleEvent(event: Event): void;
};
export default TEventListenerObject;
//# sourceMappingURL=TEventListenerObject.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListenerObject.d.ts","sourceRoot":"","sources":["../../src/event/TEventListenerObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,KAAK,oBAAoB,GAAG;IAC3B,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TEventListenerObject.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TEventListenerObject.js","sourceRoot":"","sources":["../../src/event/TEventListenerObject.ts"],"names":[],"mappings":""}

26
frontend/node_modules/happy-dom/lib/event/Touch.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
import EventTarget from './EventTarget.js';
import ITouchInit from './ITouchInit.js';
/**
*
*/
export default class Touch {
readonly identifier: number;
readonly target: EventTarget;
readonly clientX: number;
readonly clientY: number;
readonly screenX: number;
readonly screenY: number;
readonly pageX: number;
readonly pageY: number;
readonly radiusX: number;
readonly radiusY: number;
readonly rotationAngle: number;
readonly force: number;
/**
* Constructor.
*
* @param [touchInit] Touch init.
*/
constructor(touchInit: ITouchInit);
}
//# sourceMappingURL=Touch.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Touch.d.ts","sourceRoot":"","sources":["../../src/event/Touch.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,WAAW,CAAC;IACpC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;gBACS,SAAS,EAAE,UAAU;CAcjC"}

37
frontend/node_modules/happy-dom/lib/event/Touch.js generated vendored Normal file
View File

@@ -0,0 +1,37 @@
/**
*
*/
export default class Touch {
identifier;
target;
clientX;
clientY;
screenX;
screenY;
pageX;
pageY;
radiusX;
radiusY;
rotationAngle;
force;
/**
* Constructor.
*
* @param [touchInit] Touch init.
*/
constructor(touchInit) {
this.identifier = touchInit.identifier;
this.target = touchInit.target;
this.clientX = touchInit.clientX ?? 0;
this.clientY = touchInit.clientY ?? 0;
this.screenX = touchInit.screenX ?? 0;
this.screenY = touchInit.screenY ?? 0;
this.pageX = touchInit.pageX ?? 0;
this.pageY = touchInit.pageY ?? 0;
this.radiusX = touchInit.radiusX ?? 0;
this.radiusY = touchInit.radiusY ?? 0;
this.rotationAngle = touchInit.rotationAngle ?? 0;
this.force = touchInit.force ?? 0;
}
}
//# sourceMappingURL=Touch.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Touch.js","sourceRoot":"","sources":["../../src/event/Touch.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACT,UAAU,CAAS;IACnB,MAAM,CAAc;IACpB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,aAAa,CAAS;IACtB,KAAK,CAAS;IAE9B;;;;OAIG;IACH,YAAY,SAAqB;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;IACnC,CAAC;CACD"}

26
frontend/node_modules/happy-dom/lib/event/UIEvent.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
import BrowserWindow from '../window/BrowserWindow.js';
import Event from './Event.js';
import IUIEventInit from './IUIEventInit.js';
/**
*
*/
export default class UIEvent extends Event {
static NONE: number;
static CAPTURING_PHASE: number;
static AT_TARGET: number;
static BUBBLING_PHASE: number;
readonly detail: number;
readonly layerX: number;
readonly layerY: number;
readonly pageX: number;
readonly pageY: number;
readonly view: BrowserWindow | null;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IUIEventInit | null);
}
//# sourceMappingURL=UIEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UIEvent.d.ts","sourceRoot":"","sources":["../../src/event/UIEvent.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK;IACzC,OAAc,IAAI,SAAK;IACvB,OAAc,eAAe,SAAK;IAClC,OAAc,SAAS,SAAK;IAC5B,OAAc,cAAc,SAAK;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAK;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAK;IACnC,SAAgB,KAAK,EAAE,MAAM,CAAK;IAClC,SAAgB,KAAK,EAAE,MAAM,CAAK;IAClC,SAAgB,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAE3C;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,YAAY,GAAG,IAAW;CAM/D"}

28
frontend/node_modules/happy-dom/lib/event/UIEvent.js generated vendored Normal file
View File

@@ -0,0 +1,28 @@
import Event from './Event.js';
/**
*
*/
export default class UIEvent extends Event {
static NONE = 0;
static CAPTURING_PHASE = 1;
static AT_TARGET = 2;
static BUBBLING_PHASE = 3;
detail;
layerX = 0;
layerY = 0;
pageX = 0;
pageY = 0;
view;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.detail = eventInit?.detail ?? 0;
this.view = eventInit?.view ?? null;
}
}
//# sourceMappingURL=UIEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UIEvent.js","sourceRoot":"","sources":["../../src/event/UIEvent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK;IAClC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IACjB,MAAM,CAAS;IACf,MAAM,GAAW,CAAC,CAAC;IACnB,MAAM,GAAW,CAAC,CAAC;IACnB,KAAK,GAAW,CAAC,CAAC;IAClB,KAAK,GAAW,CAAC,CAAC;IAClB,IAAI,CAAuB;IAE3C;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAiC,IAAI;QAC9D,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;IACrC,CAAC"}

View File

@@ -0,0 +1,18 @@
import Event from '../Event.js';
import IAnimationEventInit from './IAnimationEventInit.js';
/**
*
*/
export default class AnimationEvent extends Event {
readonly animationName: string;
readonly elapsedTime: number;
readonly pseudoElement: string;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IAnimationEventInit | null);
}
//# sourceMappingURL=AnimationEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"AnimationEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/AnimationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAChD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,mBAAmB,GAAG,IAAW;CAOtE"}

View File

@@ -0,0 +1,22 @@
import Event from '../Event.js';
/**
*
*/
export default class AnimationEvent extends Event {
animationName;
elapsedTime;
pseudoElement;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.animationName = eventInit?.animationName ?? '';
this.elapsedTime = eventInit?.elapsedTime ?? 0;
this.pseudoElement = eventInit?.pseudoElement ?? '';
}
}
//# sourceMappingURL=AnimationEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"AnimationEvent.js","sourceRoot":"","sources":["../../../src/event/events/AnimationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAChC,aAAa,CAAS;IACtB,WAAW,CAAS;IACpB,aAAa,CAAS;IAEtC;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAwC,IAAI;QACrE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,aAAa,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,aAAa,IAAI,EAAE,CAAC;IACrD,CAAC;CACD"}

View File

@@ -0,0 +1,17 @@
import DataTransfer from '../DataTransfer.js';
import Event from '../Event.js';
import IClipboardEventInit from './IClipboardEventInit.js';
/**
*
*/
export default class ClipboardEvent extends Event {
clipboardData: DataTransfer | null;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IClipboardEventInit | null);
}
//# sourceMappingURL=ClipboardEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClipboardEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/ClipboardEvent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IACzC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,mBAAmB,GAAG,IAAW;CAKtE"}

View File

@@ -0,0 +1,18 @@
import Event from '../Event.js';
/**
*
*/
export default class ClipboardEvent extends Event {
clipboardData;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.clipboardData = eventInit?.clipboardData ?? null;
}
}
//# sourceMappingURL=ClipboardEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ClipboardEvent.js","sourceRoot":"","sources":["../../../src/event/events/ClipboardEvent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IACzC,aAAa,CAAsB;IAE1C;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAwC,IAAI;QACrE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,aAAa,IAAI,IAAI,CAAC;IACvD,CAAC;CACD"}

View File

@@ -0,0 +1,33 @@
import Event from '../Event.js';
import ICustomEventInit from './ICustomEventInit.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
*
*/
export default class CustomEvent extends Event {
[PropertySymbol.detail]: any;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: ICustomEventInit | null);
/**
* Returns detail.
*
* @returns Detail.
*/
get detail(): any;
/**
* Init event.
*
* @deprecated
* @param type Type.
* @param [bubbles=false] "true" if it bubbles.
* @param [cancelable=false] "true" if it cancelable.
* @param [detail=null] Custom event detail.
*/
initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: object): void;
}
//# sourceMappingURL=CustomEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CustomEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/CustomEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAEtC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEpC;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,gBAAgB,GAAG,IAAW;IAMnE;;;;OAIG;IACH,IAAW,MAAM,IAAI,GAAG,CAEvB;IAED;;;;;;;;OAQG;IACI,eAAe,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,UAAQ,EACf,UAAU,UAAQ,EAClB,MAAM,GAAE,MAAa,GACnB,IAAI;CAMP"}

View File

@@ -0,0 +1,43 @@
import Event from '../Event.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
*
*/
export default class CustomEvent extends Event {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[PropertySymbol.detail];
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this[PropertySymbol.detail] = eventInit?.detail ?? null;
}
/**
* Returns detail.
*
* @returns Detail.
*/
get detail() {
return this[PropertySymbol.detail];
}
/**
* Init event.
*
* @deprecated
* @param type Type.
* @param [bubbles=false] "true" if it bubbles.
* @param [cancelable=false] "true" if it cancelable.
* @param [detail=null] Custom event detail.
*/
initCustomEvent(type, bubbles = false, cancelable = false, detail = null) {
this[PropertySymbol.type] = type;
this[PropertySymbol.bubbles] = bubbles;
this[PropertySymbol.cancelable] = cancelable;
this[PropertySymbol.detail] = detail;
}
}
//# sourceMappingURL=CustomEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CustomEvent.js","sourceRoot":"","sources":["../../../src/event/events/CustomEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAC7C,8DAA8D;IACvD,CAAC,cAAc,CAAC,MAAM,CAAC,CAAM;IAEpC;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAqC,IAAI;QAClE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,CACrB,IAAY,EACZ,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,KAAK,EAClB,SAAiB,IAAI;QAErB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACtC,CAAC;CACD"}

View File

@@ -0,0 +1,20 @@
import UIEvent from '../UIEvent.js';
import IErrorEventInit from './IErrorEventInit.js';
/**
*
*/
export default class ErrorEvent extends UIEvent {
readonly message: string;
readonly filename: string;
readonly lineno: number;
readonly colno: number;
readonly error: Error | null;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IErrorEventInit | null);
}
//# sourceMappingURL=ErrorEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ErrorEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/ErrorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpC;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,eAAe,GAAG,IAAW;CASlE"}

View File

@@ -0,0 +1,26 @@
import UIEvent from '../UIEvent.js';
/**
*
*/
export default class ErrorEvent extends UIEvent {
message;
filename;
lineno;
colno;
error;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.message = eventInit?.message ?? '';
this.filename = eventInit?.filename ?? '';
this.lineno = eventInit?.lineno ?? 0;
this.colno = eventInit?.colno ?? 0;
this.error = eventInit?.error ?? null;
}
}
//# sourceMappingURL=ErrorEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ErrorEvent.js","sourceRoot":"","sources":["../../../src/event/events/ErrorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AAGpC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9B,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAe;IAEpC;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAoC,IAAI;QACjE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC;IACvC,CAAC;CACD"}

View File

@@ -0,0 +1,17 @@
import UIEvent from '../UIEvent.js';
import EventTarget from '../EventTarget.js';
import IFocusEventInit from './IFocusEventInit.js';
/**
*
*/
export default class FocusEvent extends UIEvent {
readonly relatedTarget: EventTarget | null;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IFocusEventInit | null);
}
//# sourceMappingURL=FocusEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"FocusEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/FocusEvent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9C,SAAgB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAElD;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,eAAe,GAAG,IAAW;CAKlE"}

View File

@@ -0,0 +1,18 @@
import UIEvent from '../UIEvent.js';
/**
*
*/
export default class FocusEvent extends UIEvent {
relatedTarget;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.relatedTarget = eventInit?.relatedTarget ?? null;
}
}
//# sourceMappingURL=FocusEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"FocusEvent.js","sourceRoot":"","sources":["../../../src/event/events/FocusEvent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AAIpC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9B,aAAa,CAAqB;IAElD;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAoC,IAAI;QACjE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,aAAa,IAAI,IAAI,CAAC;IACvD,CAAC;CACD"}

View File

@@ -0,0 +1,19 @@
import Event from '../Event.js';
import IHashChangeEventInit from './IHashChangeEventInit.js';
/**
* Hash change event.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent
*/
export default class HashChangeEvent extends Event {
readonly newURL: string;
readonly oldURL: string;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type: string, eventInit?: IHashChangeEventInit | null);
}
//# sourceMappingURL=HashChangeEvent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HashChangeEvent.d.ts","sourceRoot":"","sources":["../../../src/event/events/HashChangeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;IACjD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,oBAAoB,GAAG,IAAW;CAMvE"}

View File

@@ -0,0 +1,22 @@
import Event from '../Event.js';
/**
* Hash change event.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent
*/
export default class HashChangeEvent extends Event {
newURL;
oldURL;
/**
* Constructor.
*
* @param type Event type.
* @param [eventInit] Event init.
*/
constructor(type, eventInit = null) {
super(type, eventInit);
this.newURL = eventInit?.newURL ?? '';
this.oldURL = eventInit?.oldURL ?? '';
}
}
//# sourceMappingURL=HashChangeEvent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HashChangeEvent.js","sourceRoot":"","sources":["../../../src/event/events/HashChangeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;IACjC,MAAM,CAAS;IACf,MAAM,CAAS;IAE/B;;;;;OAKG;IACH,YAAY,IAAY,EAAE,YAAyC,IAAI;QACtE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;IACvC,CAAC;CACD"}

View File

@@ -0,0 +1,7 @@
import IEventInit from '../IEventInit.js';
export default interface IAnimationEventInit extends IEventInit {
animationName?: string;
elapsedTime?: number;
pseudoElement?: string;
}
//# sourceMappingURL=IAnimationEventInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IAnimationEventInit.d.ts","sourceRoot":"","sources":["../../../src/event/events/IAnimationEventInit.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,OAAO,WAAW,mBAAoB,SAAQ,UAAU;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=IAnimationEventInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IAnimationEventInit.js","sourceRoot":"","sources":["../../../src/event/events/IAnimationEventInit.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,6 @@
import DataTransfer from '../DataTransfer.js';
import IEventInit from '../IEventInit.js';
export default interface IClipboardEventInit extends IEventInit {
clipboardData?: DataTransfer | null;
}
//# sourceMappingURL=IClipboardEventInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IClipboardEventInit.d.ts","sourceRoot":"","sources":["../../../src/event/events/IClipboardEventInit.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,OAAO,WAAW,mBAAoB,SAAQ,UAAU;IAC9D,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=IClipboardEventInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"IClipboardEventInit.js","sourceRoot":"","sources":["../../../src/event/events/IClipboardEventInit.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,5 @@
import IEventInit from '../IEventInit.js';
export default interface ICustomEventInit extends IEventInit {
detail?: object | null;
}
//# sourceMappingURL=ICustomEventInit.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ICustomEventInit.d.ts","sourceRoot":"","sources":["../../../src/event/events/ICustomEventInit.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,OAAO,WAAW,gBAAiB,SAAQ,UAAU;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=ICustomEventInit.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ICustomEventInit.js","sourceRoot":"","sources":["../../../src/event/events/ICustomEventInit.ts"],"names":[],"mappings":""}

Some files were not shown because too many files have changed in this diff Show More