@panyam/tsutils 0.0.66 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/apis/evapis.js +1 -1
- package/lib/cjs/apis/evapis.js.map +1 -1
- package/lib/cjs/apis/index.js +5 -1
- package/lib/cjs/apis/index.js.map +1 -1
- package/lib/cjs/apis/net.js.map +1 -1
- package/lib/cjs/comms/actors.js +5 -5
- package/lib/cjs/comms/actors.js.map +1 -1
- package/lib/cjs/comms/bus.d.ts +1 -2
- package/lib/cjs/comms/bus.js.map +1 -1
- package/lib/cjs/comms/events.d.ts +1 -1
- package/lib/cjs/comms/events.js.map +1 -1
- package/lib/cjs/decorators.js +1 -2
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/dom.js +22 -19
- package/lib/cjs/dom.js.map +1 -1
- package/lib/cjs/geom.js.map +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/list.js.map +1 -1
- package/lib/cjs/misc.js +8 -8
- package/lib/cjs/misc.js.map +1 -1
- package/lib/cjs/numberutils.js +3 -3
- package/lib/cjs/numberutils.js.map +1 -1
- package/lib/cjs/scrolling.d.ts +12 -23
- package/lib/cjs/scrolling.js +51 -104
- package/lib/cjs/scrolling.js.map +1 -1
- package/lib/cjs/streams.js +5 -6
- package/lib/cjs/streams.js.map +1 -1
- package/lib/cjs/timer.d.ts +1 -1
- package/lib/cjs/timer.js.map +1 -1
- package/lib/cjs/timeutils.js +7 -7
- package/lib/cjs/timeutils.js.map +1 -1
- package/lib/cjs/types.d.ts +6 -6
- package/lib/cjs/types.js +1 -2
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/apis/net.js.map +1 -1
- package/lib/esm/comms/actors.js.map +1 -1
- package/lib/esm/comms/bus.d.ts +1 -2
- package/lib/esm/comms/bus.js.map +1 -1
- package/lib/esm/comms/events.d.ts +1 -1
- package/lib/esm/comms/events.js.map +1 -1
- package/lib/esm/dom.js.map +1 -1
- package/lib/esm/geom.js.map +1 -1
- package/lib/esm/list.js.map +1 -1
- package/lib/esm/misc.js.map +1 -1
- package/lib/esm/numberutils.js.map +1 -1
- package/lib/esm/scrolling.d.ts +12 -23
- package/lib/esm/scrolling.js +49 -102
- package/lib/esm/scrolling.js.map +1 -1
- package/lib/esm/streams.js.map +1 -1
- package/lib/esm/timer.d.ts +1 -1
- package/lib/esm/timer.js.map +1 -1
- package/lib/esm/timeutils.js.map +1 -1
- package/lib/esm/types.d.ts +6 -6
- package/lib/esm/types.js.map +1 -1
- package/package.json +32 -32
package/lib/cjs/apis/evapis.js
CHANGED
|
@@ -23,7 +23,7 @@ var ResourceApiEvent;
|
|
|
23
23
|
ResourceApiEvent["UPDATE_STARTED"] = "UPDATE_STARTED";
|
|
24
24
|
ResourceApiEvent["UPDATE_FINISHED"] = "UPDATE_FINISHED";
|
|
25
25
|
ResourceApiEvent["UPDATE_FAILED"] = "UPDATE_FAILED";
|
|
26
|
-
})(ResourceApiEvent
|
|
26
|
+
})(ResourceApiEvent || (exports.ResourceApiEvent = ResourceApiEvent = {}));
|
|
27
27
|
class ResourceEvApi extends events_1.EventHub {
|
|
28
28
|
create(params) {
|
|
29
29
|
this.dispatchEvent(new events_1.TEvent(ResourceApiEvent.CREATE_STARTED, this));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evapis.js","sourceRoot":"","sources":["../../../src/apis/evapis.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAEvC,IAAY,gBAwBX;AAxBD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,mDAA+B,CAAA;IAC/B,+CAA2B,CAAA;IAE3B,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IACnC,mDAA+B,CAAA;IAE/B,2DAAuC,CAAA;IACvC,6DAAyC,CAAA;IACzC,yDAAqC,CAAA;IAErC,+CAA2B,CAAA;IAC3B,iDAA6B,CAAA;IAC7B,6CAAyB,CAAA;IAEzB,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IACnC,mDAA+B,CAAA;IAE/B,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IACnC,mDAA+B,CAAA;AACjC,CAAC,EAxBW,gBAAgB,
|
|
1
|
+
{"version":3,"file":"evapis.js","sourceRoot":"","sources":["../../../src/apis/evapis.ts"],"names":[],"mappings":"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","sourcesContent":["import { TEvent, EventHub } from \"../comms/events\";\nimport { Nullable } from \"../types\";\nconst axios = require(\"axios\").default;\n\nexport enum ResourceApiEvent {\n LIST_STARTED = \"LIST_STARTED\",\n LIST_FINISHED = \"LIST_FINISHED\",\n LIST_FAILED = \"LIST_FAILED\",\n\n CREATE_STARTED = \"CREATE_STARTED\",\n CREATE_FINISHED = \"CREATE_FINISHED\",\n CREATE_FAILED = \"CREATE_FAILED\",\n\n BATCH_GET_STARTED = \"BATCH_GET_STARTED\",\n BATCH_GET_FINISHED = \"BATCH_GET_FINISHED\",\n BATCH_GET_FAILED = \"BATCH_GET_FAILED\",\n\n GET_STARTED = \"GET_STARTED\",\n GET_FINISHED = \"GET_FINISHED\",\n GET_FAILED = \"GET_FAILED\",\n\n DELETE_STARTED = \"DELETE_STARTED\",\n DELETE_FINISHED = \"DELETE_FINISHED\",\n DELETE_FAILED = \"DELETE_FAILED\",\n\n UPDATE_STARTED = \"UPDATE_STARTED\",\n UPDATE_FINISHED = \"UPDATE_FINISHED\",\n UPDATE_FAILED = \"UPDATE_FAILED\",\n}\n\nexport abstract class ResourceEvApi<ResType> extends EventHub {\n abstract urlForGet(resId: string, params: any): string;\n abstract urlForBatchGet(resIds: string[]): string;\n abstract urlForDelete(resId: string, params: any): string;\n abstract urlForUpdate(resId: string, params: any): string;\n abstract urlForList(params: any): string;\n abstract urlForCreate(params: any): string;\n\n abstract processListResponse(response: Response): ResType[];\n abstract processGetResponse(response: Response): Nullable<ResType>;\n abstract processDeleteResponse(response: Response): boolean;\n abstract processUpdateResponse(response: Response): ResType;\n abstract processCreateResponse(response: Response): ResType;\n abstract processUpdateParams(params: any): any;\n abstract processCreateParams(params: any): any;\n\n create(params: any): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.CREATE_STARTED, this));\n const url = this.urlForCreate(params);\n axios\n .post(url, this.processCreateParams(params))\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.CREATE_FINISHED, this, this.processListResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.CREATE_FAILED, this, err));\n });\n }\n\n batchGet(...resIds: string[]): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.BATCH_GET_STARTED, this));\n const url = this.urlForBatchGet(resIds);\n axios\n .get(url)\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.BATCH_GET_FINISHED, this, this.processGetResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.BATCH_GET_FAILED, this, err));\n });\n }\n\n get(resId: string, params: any): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.GET_STARTED, this));\n const url = this.urlForGet(resId, params);\n axios\n .get(url)\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.GET_FINISHED, this, this.processGetResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.GET_FAILED, this, err));\n });\n }\n\n list(params: any): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.LIST_STARTED, this));\n const url = this.urlForList(params);\n axios\n .get(url)\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.LIST_FINISHED, this, this.processListResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.LIST_FAILED, this, err));\n });\n }\n\n update(resId: string, params: any): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.UPDATE_STARTED, this));\n const url = this.urlForUpdate(resId, params);\n axios\n .post(url, this.processUpdateParams(params))\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.UPDATE_FINISHED, this, this.processListResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.UPDATE_FAILED, this, err));\n });\n }\n\n delete(resId: string, params: any): void {\n this.dispatchEvent(new TEvent(ResourceApiEvent.DELETE_STARTED, this));\n const url = this.urlForDelete(resId, params);\n axios({\n method: \"delete\",\n url: url,\n })\n .then((response: Response) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.DELETE_FINISHED, this, this.processListResponse(response)));\n })\n .error((err: Error) => {\n this.dispatchEvent(new TEvent(ResourceApiEvent.DELETE_FAILED, this, err));\n });\n }\n}\n"]}
|
package/lib/cjs/apis/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/apis/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/apis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,gDAA8B","sourcesContent":["export * from \"./net\";\nexport * from \"./promiseapis\";\n"]}
|
package/lib/cjs/apis/net.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/apis/net.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAIrB,YAAY,OAAe;QAD3B,WAAM,GAAQ,EAAE,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/apis/net.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * A helper for building URLs.\n */\nexport class URLBuilder {\n baseUrl: string;\n path: string;\n params: any = [];\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n }\n\n appendPath(path: string): this {\n if (!this.baseUrl.endsWith(\"/\") && !path.startsWith(\"/\")) {\n this.baseUrl += \"/\";\n }\n this.baseUrl += path;\n return this;\n }\n\n addParam(key: string, value: string): this {\n this.params.push([key, value]);\n return this;\n }\n\n addParams(params: any): this {\n for (const key in params) {\n this.addParam(key, params[key]);\n }\n return this;\n }\n\n build(): string {\n const url = this.baseUrl;\n const path = this.path;\n const params = this.params;\n const paramString = params\n .map((item: any, _index: number) => {\n const [key, value] = item;\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n })\n .join(\"&\");\n if (paramString.length > 0) {\n return url + (url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + paramString;\n } else {\n return url;\n }\n }\n}\n\nexport class Request {\n url: string;\n options: any;\n\n constructor(url: string, options: any) {\n this.url = url;\n this.options = options || {};\n this.options.headers = this.options.headers || {};\n this.options.body = this.options.body || null;\n }\n\n get method(): string {\n return this.options.method || \"GET\";\n }\n\n set method(method: string) {\n this.options.method = method;\n }\n\n get body(): any {\n return this.options.body;\n }\n\n set body(body: any) {\n this.options.body = body;\n }\n\n get headers(): any {\n return this.options.headers;\n }\n\n get contentType(): string {\n return this.options.contentType;\n }\n}\n\nexport class Response {\n status: number;\n statusText: string;\n headers: any = {};\n data: any = null;\n error: any = null;\n\n constructor(status = 200, statusText = \"\", data: any = null) {\n this.status = status;\n this.statusText = statusText;\n this.data = data;\n }\n}\n"]}
|
package/lib/cjs/comms/actors.js
CHANGED
|
@@ -4,10 +4,10 @@ exports.Send = exports.Reply = exports.Message = exports.Actor = void 0;
|
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
class Actor {
|
|
6
6
|
processMessage(msg) {
|
|
7
|
-
types_1.assert(msg.target == this, "Cannot handle messages whose target is not this.");
|
|
7
|
+
(0, types_1.assert)(msg.target == this, "Cannot handle messages whose target is not this.");
|
|
8
8
|
if (msg.isReply) {
|
|
9
9
|
const reply = msg;
|
|
10
|
-
types_1.assert(reply.responseTo.spawnedFrom != null, "Cannot spawn a reply for a send that itself was not spawned from another send");
|
|
10
|
+
(0, types_1.assert)(reply.responseTo.spawnedFrom != null, "Cannot spawn a reply for a send that itself was not spawned from another send");
|
|
11
11
|
this.processReply(reply);
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
@@ -25,8 +25,8 @@ class Message {
|
|
|
25
25
|
this.uuid = Message.counter++;
|
|
26
26
|
this.sourceData = null;
|
|
27
27
|
this.payload = null;
|
|
28
|
-
types_1.assert(source != null, "Source cannot be null");
|
|
29
|
-
types_1.assert(target != null, "Target cannot be null");
|
|
28
|
+
(0, types_1.assert)(source != null, "Source cannot be null");
|
|
29
|
+
(0, types_1.assert)(target != null, "Target cannot be null");
|
|
30
30
|
this.name = name;
|
|
31
31
|
this.source = source;
|
|
32
32
|
this.target = target;
|
|
@@ -57,7 +57,7 @@ class Reply extends ForwardableBase {
|
|
|
57
57
|
constructor(responseTo, error) {
|
|
58
58
|
super(responseTo.name, responseTo.target, responseTo.source);
|
|
59
59
|
this.isReply = true;
|
|
60
|
-
types_1.assert(responseTo.reply == null, "Send's reply has already been set");
|
|
60
|
+
(0, types_1.assert)(responseTo.reply == null, "Send's reply has already been set");
|
|
61
61
|
this.responseTo = responseTo;
|
|
62
62
|
this.error = error || null;
|
|
63
63
|
this.isError = this.error != null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../../../src/comms/actors.ts"],"names":[],"mappings":";;;AAAA,oCAA4C;AAM5C,MAAsB,KAAK;IACzB,cAAc,CAAC,GAAY;QACzB,cAAM,
|
|
1
|
+
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../../../src/comms/actors.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable, assert } from \"../types\";\n\n/**\n * Actors are the base classes of any physical entity that can\n * belong in a system.\n */\nexport abstract class Actor {\n processMessage(msg: Message): void {\n assert(msg.target == this, \"Cannot handle messages whose target is not this.\");\n if (msg.isReply) {\n const reply = msg as Reply;\n assert(\n reply.responseTo.spawnedFrom != null,\n \"Cannot spawn a reply for a send that itself was not spawned from another send\",\n );\n this.processReply(reply);\n } else {\n this.processSend(msg as Send);\n }\n }\n\n /**\n * Called to handle a Send message to this actor.\n */\n processSend(send: Send): void {\n // Drop it\n }\n\n /**\n * Called to handle a Reply message to this actor.\n */\n processReply(_reply: Reply): void {\n // Drop it\n }\n\n /*\n replyToSend(send: Send, error?: any): Reply {\n const out = send.spawnReply(error);\n out.target.processReply(out);\n return out;\n }\n\n forwardReply(inboundReply: Reply): Nullable<Reply> {\n const spawnedFromSend = inboundReply.responseTo.spawnedFrom;\n if (spawnedFromSend.reply == null) {\n // we are receiving a reply from the downstream so forward it back\n const outboundReply = inboundReply.spawn(spawnedFromSend);\n world.inject(outboundReply);\n return outboundReply;\n } else {\n // This send had already been replied (ie with an error -\n // say due to timeout, act of god etc)\n // So we can ignore sending this reply\n return null;\n }\n }\n */\n}\n\nexport abstract class Message {\n // Globally unique ID for all elements.\n private static counter = 0;\n\n readonly uuid = Message.counter++;\n\n /**\n * Name of the message.\n */\n readonly name: string;\n\n readonly isReply: boolean;\n\n /**\n * The actor this message originated from.\n */\n readonly source: Actor;\n\n /**\n * Target actor for this message.\n */\n readonly target: Actor;\n\n /**\n * Data that can be set by the source actor that only *it* can\n * use.\n */\n sourceData: any = null;\n\n /**\n * Message payload.\n * Specific to the message.\n */\n payload: any = null;\n\n /**\n * Descriptive label for the Message.\n */\n label: string;\n\n constructor(name: string, source: Actor, target: Actor) {\n assert(source != null, \"Source cannot be null\");\n assert(target != null, \"Target cannot be null\");\n this.name = name;\n this.source = source;\n this.target = target;\n }\n}\n\nabstract class ForwardableBase<T> extends Message {\n /**\n * The first/root message in the forward chain.\n */\n private _rootMessage: ForwardableBase<T>;\n\n /**\n * The message that is being forwarded.\n */\n private _spawnedFrom: Nullable<this> = null;\n\n get spawnedFrom(): Nullable<this> {\n return this._spawnedFrom;\n }\n\n protected setSpawnedFrom(msg: Nullable<this>): void {\n this._spawnedFrom = msg;\n if (msg == null) this._rootMessage = this;\n else this._rootMessage = msg.rootMessage;\n }\n\n get rootMessage(): this {\n return this._rootMessage as this;\n }\n}\n\nexport class Reply extends ForwardableBase<Reply> {\n readonly isReply = true;\n\n /**\n * The message this is in response to\n */\n responseTo: Send;\n\n /**\n * Whether this reply is an error or not.\n */\n isError: boolean;\n\n /**\n * If Reply is an error then a few summary fields about the error.\n */\n error?: any;\n\n constructor(responseTo: Send, error?: any) {\n // Reverse target and source\n super(responseTo.name, responseTo.target, responseTo.source);\n assert(responseTo.reply == null, \"Send's reply has already been set\");\n this.responseTo = responseTo;\n this.error = error || null;\n this.isError = this.error != null;\n responseTo.reply = this;\n }\n\n spawn(responseTo: Send, error?: any): Reply {\n const child = new Reply(responseTo, error);\n child.setSpawnedFrom(this);\n return child;\n }\n}\n\nexport class Send extends ForwardableBase<Send> {\n readonly isReply = false;\n\n /**\n * All child sends that were spawned from this Send.\n * The parent/spawnedFrom and child message references help us\n * form a call tree/trace of a message as it traverses\n * the system.\n */\n children: Send[] = [];\n\n /**\n * Tells which message is a reply to this message.\n */\n reply: Nullable<Reply> = null;\n\n /**\n * When the Send was cancelled (if it was).\n */\n cancelledAt: Nullable<number> = null;\n\n spawn(nextTarget: Actor): Send {\n const child = new Send(this.name, this.target, nextTarget);\n child.setSpawnedFrom(this);\n this.children.push(child);\n return child;\n }\n\n spawnReply(error?: any): Reply {\n return new Reply(this, error);\n }\n}\n"]}
|
package/lib/cjs/comms/bus.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { EventEmitter } from "events";
|
|
3
|
-
export
|
|
2
|
+
export type Callback = (eventName: string, data: any) => void;
|
|
4
3
|
export declare class EventBus extends EventEmitter {
|
|
5
4
|
private static instance;
|
|
6
5
|
private constructor();
|
package/lib/cjs/comms/bus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/comms/bus.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAGtC,MAAa,QAAS,SAAQ,qBAAY;IAGxC;QACE,KAAK,EAAE,CAAC;IAEV,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/comms/bus.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAGtC,MAAa,QAAS,SAAQ,qBAAY;IAGxC;QACE,KAAK,EAAE,CAAC;IAEV,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAOM,SAAS,CAAC,SAAiB,EAAE,QAAkB;QACpD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAOM,WAAW,CAAC,SAAiB,EAAE,QAAkB;QACtD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAOM,OAAO,CAAC,SAAiB,EAAE,IAAS;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF;AA1CD,4BA0CC","sourcesContent":["import { EventEmitter } from \"events\";\nexport type Callback = (eventName: string, data: any) => void;\n\nexport class EventBus extends EventEmitter {\n private static instance: EventBus;\n\n private constructor() {\n super();\n // do nothing.\n }\n\n static getInstance(): EventBus {\n if (!EventBus.instance) {\n EventBus.instance = new EventBus();\n }\n\n return EventBus.instance;\n }\n\n /**\n * Subscribe to an event\n * @param eventName\n * @param callback\n */\n public subscribe(eventName: string, callback: Callback): void {\n this.on(eventName, callback);\n }\n\n /**\n * Unsubscribe from an event\n * @param eventName\n * @param callback\n */\n public unsubscribe(eventName: string, callback: Callback): void {\n this.removeListener(eventName, callback);\n }\n\n /**\n *\n * @param eventName Publish an event\n * @param data\n */\n public publish(eventName: string, data: any): void {\n this.emit(eventName, data);\n }\n}\n"]}
|
|
@@ -25,7 +25,7 @@ export declare class State {
|
|
|
25
25
|
enter(data: any): void;
|
|
26
26
|
handle(event: TEvent): void;
|
|
27
27
|
}
|
|
28
|
-
export
|
|
28
|
+
export type EventCallback = ((event: TEvent) => void) | ((event: TEvent) => Promise<void>);
|
|
29
29
|
export declare class EventEmitter {
|
|
30
30
|
protected _eventHub: EventHub | null;
|
|
31
31
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/comms/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable, Timestamp } from \"../types\";\n\n/**\n * Super class of all Events.\n */\nexport class TEvent {\n // Globally unique ID for all events.\n private static counter = 0;\n readonly uuid = TEvent.counter++;\n\n /**\n * The event this event was spawned from (if any).\n */\n protected _spawnedFrom: Nullable<this> = null;\n\n /**\n * Name of the event.\n */\n readonly name: string;\n\n /**\n * Source from which this event is originating.\n */\n readonly source: any;\n\n /**\n * Source state that is set by the source of the event only\n * *it* can use.\n */\n sourceState: any = null;\n\n /**\n * Event specific payload.\n */\n payload: any;\n\n /**\n * Whether the event was cancelled.\n */\n cancelled = false;\n\n /**\n * Timestamp of the event - optional.\n */\n timeStamp: Timestamp = -1;\n\n /**\n * All child events that were spawned from this Event.\n * The parent/spawnedFrom and child event references help us\n * form a call tree/trace of a events as it traverses\n * the system.\n */\n children: TEvent[] = [];\n\n constructor(name: string, source: any, payload?: any) {\n this.name = name;\n this.source = source;\n this.payload = payload;\n }\n\n get spawnedFrom(): Nullable<this> {\n return this._spawnedFrom;\n }\n\n protected setSpawnedFrom(msg: Nullable<this>): void {\n this._spawnedFrom = msg;\n if (msg == null) this._rootEvent = this;\n else this._rootEvent = msg.rootEvent;\n }\n\n spawn(name: string, source: any, payload?: any): TEvent {\n const child = new TEvent(name, source, payload);\n child.setSpawnedFrom(this);\n this.children.push(child);\n return child;\n }\n\n /**\n * The first/root message in the forward chain.\n */\n private _rootEvent: this;\n\n get rootEvent(): this {\n return this._rootEvent as this;\n }\n}\n\nexport class State {\n private static counter = 0;\n stateData: any = null;\n readonly id = State.counter++;\n\n get name(): string {\n return this.constructor.name;\n }\n\n enter(data: any): void {\n this.stateData = data;\n }\n\n handle(event: TEvent): void {\n // todo\n }\n}\n\nexport type EventCallback = ((event: TEvent) => void) | ((event: TEvent) => Promise<void>);\n\nexport class EventEmitter {\n protected _eventHub: EventHub | null;\n constructor() {\n this._eventHub = new EventHub();\n }\n get eventHub(): EventHub | null {\n return this._eventHub;\n }\n set eventHub(hub: EventHub | null) {\n const oldHub = this._eventHub;\n this._eventHub = hub;\n this.eventHubChanged(oldHub);\n }\n protected eventHubChanged(oldHub: EventHub | null): void {\n // Do nothing\n console.log(\"WARNING - EventHub Change Listener not implemented: \", this.constructor.name);\n }\n}\n\nexport class EventHub {\n private _handlers: { [key: string]: Array<EventCallback> } = {};\n\n on(names: Array<string> | string, callback: EventCallback): this {\n return this._addHandler(names, this._handlers, callback);\n }\n\n removeOn(names: Array<string> | string, callback: EventCallback): this {\n return this._removeHandler(names, this._handlers, callback);\n }\n\n _ensurestrings(names: Array<string> | string): string[] {\n if (typeof names === \"string\") {\n names = (names as string).split(\",\");\n }\n return names.map(function (v) {\n return v.trim();\n });\n }\n\n _addHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T> }, handler: T): this {\n this._ensurestrings(names).forEach(function (name) {\n handlerlist[name] = handlerlist[name] || [];\n handlerlist[name].push(handler);\n });\n return this;\n }\n\n _removeHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T> }, handler: T): this {\n this._ensurestrings(names).forEach(function (name) {\n const evHandlers = handlerlist[name] || [];\n for (let i = 0; i < evHandlers.length; i++) {\n if (evHandlers[i] == handler) {\n evHandlers.splice(i, 1);\n break;\n }\n }\n });\n return this;\n }\n\n emit(name: string, source: any, payload?: any): boolean {\n const evt = new TEvent(name, source, payload);\n if (this._inBatchMode) {\n this._events.push(evt);\n return true;\n } else {\n return this.dispatchEvent(evt);\n }\n }\n\n dispatchEvent(event: TEvent): boolean {\n const evtCallbacks = this._handlers[event.name] || [];\n for (const callback of evtCallbacks) {\n callback(event);\n if (event.cancelled) return false;\n }\n return true;\n }\n\n // Support for transactional/batch event handling, where\n // the user can allow a bunch of events to first collect\n // before triggering a batch dispatch\n public static BATCH_EVENTS = \"BatchEvents\";\n protected _events: TEvent[] = [];\n protected _inBatchMode = false;\n startBatchMode(): this {\n if (!this._inBatchMode) {\n this._inBatchMode = true;\n }\n return this;\n }\n\n cancelBatch(): void {\n this._inBatchMode = false;\n this._events = [];\n }\n\n commitBatch(): void {\n this._inBatchMode = false;\n this.emit(EventHub.BATCH_EVENTS, this, this._events);\n this._events = [];\n }\n}\n\n/**\n * StateMachines allow declarative and stateful chaining of events.\n */\nexport class StateMachine {\n private _states: { [key: string]: State } = {};\n private _rootState: Nullable<State> = null;\n private _currentState: Nullable<State> = null;\n constructor() {\n this._states = {};\n this._rootState = null;\n this._currentState = null;\n }\n\n /**\n * The starting/root state of the machine.\n *\n * @param {String} name Name of the default/root state.\n */\n set rootState(name: string) {\n this._rootState = this.getState(name);\n if (this._currentState == null) {\n this._currentState = this._rootState;\n }\n }\n\n /**\n * Exits the current state (if any) and enters a new state.\n *\n * @param {String} state Name of the new state to enter.\n * @param {Object} data State specific data for the state handler to use for the new state.\n */\n enter(state: string, data: any = null): void {\n if (state == \"\") {\n this._currentState = this._rootState;\n } else {\n this._currentState = this.getState(state);\n }\n if (this._currentState != null) {\n this._currentState.enter(data);\n }\n }\n\n /**\n * Get the state by name.\n *\n * @param {String} name Name of the state being queried.\n * @returns {State} State object associated with the name.\n */\n getState(name: string): State {\n if (!(name in this._states)) {\n throw Error(\"State '\" + name + \"' not yet registered.\");\n }\n return this._states[name];\n }\n\n /**\n * Register a new state in the state machine.\n *\n * @param {State} state State being registered. If another State with\n * the same name exists, then a {DuplicateError} is thrown.\n * @param {Bool} isRoot Whether the new state is a root state.\n */\n registerState(state: State, isRoot = false): void {\n const name = state.name;\n if (name in this._states) {\n throw Error(\"State '\" + name + \"' already registered.\");\n }\n this._states[name] = state;\n if (isRoot || false) {\n this.rootState = state.name;\n }\n }\n\n /**\n * Handles an event from the current state in the state machine possibly resulting in a state transition.\n *\n * @param {Object} name Type of event being sent.\n * @param {EventSource} source The source generating the event.\n * @param {Object} data The event specific data.\n */\n handle(event: TEvent): void {\n if (this._currentState == null) return;\n\n const nextState: any = this._currentState.handle(event);\n if (nextState != null) {\n if (nextState == \"\") {\n if (this._rootState != null) {\n this.enter(this._rootState.name);\n } else {\n throw new Error(\"Root state has not been set\");\n }\n } else {\n this.enter(nextState);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/comms/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable, Timestamp } from \"../types\";\n\n/**\n * Super class of all Events.\n */\nexport class TEvent {\n // Globally unique ID for all events.\n private static counter = 0;\n readonly uuid = TEvent.counter++;\n\n /**\n * The event this event was spawned from (if any).\n */\n protected _spawnedFrom: Nullable<this> = null;\n\n /**\n * Name of the event.\n */\n readonly name: string;\n\n /**\n * Source from which this event is originating.\n */\n readonly source: any;\n\n /**\n * Source state that is set by the source of the event only\n * *it* can use.\n */\n sourceState: any = null;\n\n /**\n * Event specific payload.\n */\n payload: any;\n\n /**\n * Whether the event was cancelled.\n */\n cancelled = false;\n\n /**\n * Timestamp of the event - optional.\n */\n timeStamp: Timestamp = -1;\n\n /**\n * All child events that were spawned from this Event.\n * The parent/spawnedFrom and child event references help us\n * form a call tree/trace of a events as it traverses\n * the system.\n */\n children: TEvent[] = [];\n\n constructor(name: string, source: any, payload?: any) {\n this.name = name;\n this.source = source;\n this.payload = payload;\n }\n\n get spawnedFrom(): Nullable<this> {\n return this._spawnedFrom;\n }\n\n protected setSpawnedFrom(msg: Nullable<this>): void {\n this._spawnedFrom = msg;\n if (msg == null) this._rootEvent = this;\n else this._rootEvent = msg.rootEvent;\n }\n\n spawn(name: string, source: any, payload?: any): TEvent {\n const child = new TEvent(name, source, payload);\n child.setSpawnedFrom(this);\n this.children.push(child);\n return child;\n }\n\n /**\n * The first/root message in the forward chain.\n */\n private _rootEvent: this;\n\n get rootEvent(): this {\n return this._rootEvent as this;\n }\n}\n\nexport class State {\n private static counter = 0;\n stateData: any = null;\n readonly id = State.counter++;\n\n get name(): string {\n return this.constructor.name;\n }\n\n enter(data: any): void {\n this.stateData = data;\n }\n\n handle(event: TEvent): void {\n // todo\n }\n}\n\nexport type EventCallback = ((event: TEvent) => void) | ((event: TEvent) => Promise<void>);\n\nexport class EventEmitter {\n protected _eventHub: EventHub | null;\n constructor() {\n this._eventHub = new EventHub();\n }\n get eventHub(): EventHub | null {\n return this._eventHub;\n }\n set eventHub(hub: EventHub | null) {\n const oldHub = this._eventHub;\n this._eventHub = hub;\n this.eventHubChanged(oldHub);\n }\n protected eventHubChanged(oldHub: EventHub | null): void {\n // Do nothing\n console.log(\"WARNING - EventHub Change Listener not implemented: \", this.constructor.name);\n }\n}\n\nexport class EventHub {\n private _handlers: { [key: string]: Array<EventCallback> } = {};\n\n on(names: Array<string> | string, callback: EventCallback): this {\n return this._addHandler(names, this._handlers, callback);\n }\n\n removeOn(names: Array<string> | string, callback: EventCallback): this {\n return this._removeHandler(names, this._handlers, callback);\n }\n\n _ensurestrings(names: Array<string> | string): string[] {\n if (typeof names === \"string\") {\n names = (names as string).split(\",\");\n }\n return names.map(function (v) {\n return v.trim();\n });\n }\n\n _addHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T> }, handler: T): this {\n this._ensurestrings(names).forEach(function (name) {\n handlerlist[name] = handlerlist[name] || [];\n handlerlist[name].push(handler);\n });\n return this;\n }\n\n _removeHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T> }, handler: T): this {\n this._ensurestrings(names).forEach(function (name) {\n const evHandlers = handlerlist[name] || [];\n for (let i = 0; i < evHandlers.length; i++) {\n if (evHandlers[i] == handler) {\n evHandlers.splice(i, 1);\n break;\n }\n }\n });\n return this;\n }\n\n emit(name: string, source: any, payload?: any): boolean {\n const evt = new TEvent(name, source, payload);\n if (this._inBatchMode) {\n this._events.push(evt);\n return true;\n } else {\n return this.dispatchEvent(evt);\n }\n }\n\n dispatchEvent(event: TEvent): boolean {\n const evtCallbacks = this._handlers[event.name] || [];\n for (const callback of evtCallbacks) {\n callback(event);\n if (event.cancelled) return false;\n }\n return true;\n }\n\n // Support for transactional/batch event handling, where\n // the user can allow a bunch of events to first collect\n // before triggering a batch dispatch\n public static BATCH_EVENTS = \"BatchEvents\";\n protected _events: TEvent[] = [];\n protected _inBatchMode = false;\n startBatchMode(): this {\n if (!this._inBatchMode) {\n this._inBatchMode = true;\n }\n return this;\n }\n\n cancelBatch(): void {\n this._inBatchMode = false;\n this._events = [];\n }\n\n commitBatch(): void {\n this._inBatchMode = false;\n this.emit(EventHub.BATCH_EVENTS, this, this._events);\n this._events = [];\n }\n}\n\n/**\n * StateMachines allow declarative and stateful chaining of events.\n */\nexport class StateMachine {\n private _states: { [key: string]: State } = {};\n private _rootState: Nullable<State> = null;\n private _currentState: Nullable<State> = null;\n constructor() {\n this._states = {};\n this._rootState = null;\n this._currentState = null;\n }\n\n /**\n * The starting/root state of the machine.\n *\n * @param {String} name Name of the default/root state.\n */\n set rootState(name: string) {\n this._rootState = this.getState(name);\n if (this._currentState == null) {\n this._currentState = this._rootState;\n }\n }\n\n /**\n * Exits the current state (if any) and enters a new state.\n *\n * @param {String} state Name of the new state to enter.\n * @param {Object} data State specific data for the state handler to use for the new state.\n */\n enter(state: string, data: any = null): void {\n if (state == \"\") {\n this._currentState = this._rootState;\n } else {\n this._currentState = this.getState(state);\n }\n if (this._currentState != null) {\n this._currentState.enter(data);\n }\n }\n\n /**\n * Get the state by name.\n *\n * @param {String} name Name of the state being queried.\n * @returns {State} State object associated with the name.\n */\n getState(name: string): State {\n if (!(name in this._states)) {\n throw Error(\"State '\" + name + \"' not yet registered.\");\n }\n return this._states[name];\n }\n\n /**\n * Register a new state in the state machine.\n *\n * @param {State} state State being registered. If another State with\n * the same name exists, then a {DuplicateError} is thrown.\n * @param {Bool} isRoot Whether the new state is a root state.\n */\n registerState(state: State, isRoot = false): void {\n const name = state.name;\n if (name in this._states) {\n throw Error(\"State '\" + name + \"' already registered.\");\n }\n this._states[name] = state;\n if (isRoot || false) {\n this.rootState = state.name;\n }\n }\n\n /**\n * Handles an event from the current state in the state machine possibly resulting in a state transition.\n *\n * @param {Object} name Type of event being sent.\n * @param {EventSource} source The source generating the event.\n * @param {Object} data The event specific data.\n */\n handle(event: TEvent): void {\n if (this._currentState == null) return;\n\n const nextState: any = this._currentState.handle(event);\n if (nextState != null) {\n if (nextState == \"\") {\n if (this._rootState != null) {\n this.enter(this._rootState.name);\n } else {\n throw new Error(\"Root state has not been set\");\n }\n } else {\n this.enter(nextState);\n }\n }\n }\n}\n"]}
|
package/lib/cjs/decorators.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mixinUuid =
|
|
3
|
+
exports.mixinUuid = mixinUuid;
|
|
4
4
|
function mixinUuid() {
|
|
5
5
|
return function (constructor) {
|
|
6
6
|
let counter = 0;
|
|
@@ -12,5 +12,4 @@ function mixinUuid() {
|
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
exports.mixinUuid = mixinUuid;
|
|
16
15
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;AAAA,8BASC;AATD,SAAgB,SAAS;IACvB,OAAO,UAAmE,WAAc;QAEtF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,KAAM,SAAQ,WAAW;YAAzB;;gBAEI,SAAI,GAAW,OAAO,EAAE,CAAC;YACpC,CAAC;SAAA,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["export function mixinUuid(): any {\n return function <T extends { new (...args: any[]): Record<string, any> }>(constructor: T): any {\n // return function (constructor: Function) {\n let counter = 0;\n return class extends constructor {\n // Globally unique ID for all elements.\n readonly uuid: number = counter++;\n };\n };\n}\n"]}
|
package/lib/cjs/dom.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -19,7 +23,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
21
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.
|
|
26
|
+
exports.svgBBox = svgBBox;
|
|
27
|
+
exports.getFontMetrics = getFontMetrics;
|
|
28
|
+
exports.forEachChild = forEachChild;
|
|
29
|
+
exports.forEachNode = forEachNode;
|
|
30
|
+
exports.forEachAttribute = forEachAttribute;
|
|
31
|
+
exports.parseCSSStyles = parseCSSStyles;
|
|
32
|
+
exports.getAttr = getAttr;
|
|
33
|
+
exports.ensureAttr = ensureAttr;
|
|
34
|
+
exports.setAttr = setAttr;
|
|
35
|
+
exports.getAttrOrStyle = getAttrOrStyle;
|
|
36
|
+
exports.createSVGNode = createSVGNode;
|
|
37
|
+
exports.createNode = createNode;
|
|
38
|
+
exports.removeNode = removeNode;
|
|
39
|
+
exports.insertAfter = insertAfter;
|
|
40
|
+
exports.getCSS = getCSS;
|
|
41
|
+
exports.setCSS = setCSS;
|
|
42
|
+
exports.ensureElement = ensureElement;
|
|
23
43
|
const Geom = __importStar(require("./geom"));
|
|
24
44
|
const browser_1 = require("./browser");
|
|
25
45
|
const fontMetrics = {};
|
|
@@ -37,7 +57,6 @@ function svgBBox(element) {
|
|
|
37
57
|
}
|
|
38
58
|
return bbox;
|
|
39
59
|
}
|
|
40
|
-
exports.svgBBox = svgBBox;
|
|
41
60
|
function getFontMetrics(fontFamily, fontSize) {
|
|
42
61
|
if (!(fontFamily in fontMetrics)) {
|
|
43
62
|
fontMetrics[fontFamily] = {};
|
|
@@ -56,7 +75,6 @@ function getFontMetrics(fontFamily, fontSize) {
|
|
|
56
75
|
}
|
|
57
76
|
return familyMetrics[fontSize];
|
|
58
77
|
}
|
|
59
|
-
exports.getFontMetrics = getFontMetrics;
|
|
60
78
|
function forEachChild(elem, visitor) {
|
|
61
79
|
const children = elem.children;
|
|
62
80
|
const L = children.length;
|
|
@@ -66,7 +84,6 @@ function forEachChild(elem, visitor) {
|
|
|
66
84
|
return false;
|
|
67
85
|
}
|
|
68
86
|
}
|
|
69
|
-
exports.forEachChild = forEachChild;
|
|
70
87
|
function forEachNode(elem, visitor) {
|
|
71
88
|
const children = elem.childNodes;
|
|
72
89
|
const L = children.length;
|
|
@@ -76,7 +93,6 @@ function forEachNode(elem, visitor) {
|
|
|
76
93
|
return;
|
|
77
94
|
}
|
|
78
95
|
}
|
|
79
|
-
exports.forEachNode = forEachNode;
|
|
80
96
|
function forEachAttribute(elem, visitor) {
|
|
81
97
|
const nodeNameMap = elem.attributes;
|
|
82
98
|
for (let i = 0; i < nodeNameMap.length; i++) {
|
|
@@ -85,7 +101,6 @@ function forEachAttribute(elem, visitor) {
|
|
|
85
101
|
return;
|
|
86
102
|
}
|
|
87
103
|
}
|
|
88
|
-
exports.forEachAttribute = forEachAttribute;
|
|
89
104
|
function parseCSSStyles(value) {
|
|
90
105
|
const out = {};
|
|
91
106
|
if (value && value != null) {
|
|
@@ -105,7 +120,6 @@ function parseCSSStyles(value) {
|
|
|
105
120
|
}
|
|
106
121
|
return out;
|
|
107
122
|
}
|
|
108
|
-
exports.parseCSSStyles = parseCSSStyles;
|
|
109
123
|
function getAttr(elem, attrib, ...validators) {
|
|
110
124
|
let value = elem.getAttribute(attrib);
|
|
111
125
|
for (let i = 0; i < validators.length; i++) {
|
|
@@ -113,7 +127,6 @@ function getAttr(elem, attrib, ...validators) {
|
|
|
113
127
|
}
|
|
114
128
|
return value;
|
|
115
129
|
}
|
|
116
|
-
exports.getAttr = getAttr;
|
|
117
130
|
function ensureAttr(elem, attrib) {
|
|
118
131
|
const value = elem.getAttribute(attrib) || null;
|
|
119
132
|
if (value == null) {
|
|
@@ -121,21 +134,17 @@ function ensureAttr(elem, attrib) {
|
|
|
121
134
|
}
|
|
122
135
|
return value;
|
|
123
136
|
}
|
|
124
|
-
exports.ensureAttr = ensureAttr;
|
|
125
137
|
function setAttr(elem, name, value) {
|
|
126
138
|
return elem.setAttribute(name, value);
|
|
127
139
|
}
|
|
128
|
-
exports.setAttr = setAttr;
|
|
129
140
|
function getAttrOrStyle(elem, attribName, cssStyles, styleName) {
|
|
130
141
|
return elem.getAttribute(attribName) || cssStyles[styleName];
|
|
131
142
|
}
|
|
132
|
-
exports.getAttrOrStyle = getAttrOrStyle;
|
|
133
143
|
function createSVGNode(nodename, config) {
|
|
134
144
|
config = config || {};
|
|
135
145
|
config.ns = "http://www.w3.org/2000/svg";
|
|
136
146
|
return createNode(nodename, config);
|
|
137
147
|
}
|
|
138
|
-
exports.createSVGNode = createSVGNode;
|
|
139
148
|
function createNode(nodename, config) {
|
|
140
149
|
let out;
|
|
141
150
|
config = config || {};
|
|
@@ -160,12 +169,10 @@ function createNode(nodename, config) {
|
|
|
160
169
|
}
|
|
161
170
|
return out;
|
|
162
171
|
}
|
|
163
|
-
exports.createNode = createNode;
|
|
164
172
|
function removeNode(node) {
|
|
165
173
|
var _a;
|
|
166
174
|
(_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(node);
|
|
167
175
|
}
|
|
168
|
-
exports.removeNode = removeNode;
|
|
169
176
|
function insertAfter(node, ...newNodes) {
|
|
170
177
|
const parentNode = node.parentNode;
|
|
171
178
|
if (parentNode == null)
|
|
@@ -183,15 +190,12 @@ function insertAfter(node, ...newNodes) {
|
|
|
183
190
|
}
|
|
184
191
|
return true;
|
|
185
192
|
}
|
|
186
|
-
exports.insertAfter = insertAfter;
|
|
187
193
|
function getCSS(elem, attr) {
|
|
188
194
|
return elem.style[attr];
|
|
189
195
|
}
|
|
190
|
-
exports.getCSS = getCSS;
|
|
191
196
|
function setCSS(elem, attr, value) {
|
|
192
197
|
elem.style[attr] = value;
|
|
193
198
|
}
|
|
194
|
-
exports.setCSS = setCSS;
|
|
195
199
|
function ensureElement(elemOrId, root = null) {
|
|
196
200
|
if (typeof elemOrId === "string") {
|
|
197
201
|
if (root == null)
|
|
@@ -202,5 +206,4 @@ function ensureElement(elemOrId, root = null) {
|
|
|
202
206
|
return elemOrId;
|
|
203
207
|
}
|
|
204
208
|
}
|
|
205
|
-
exports.ensureElement = ensureElement;
|
|
206
209
|
//# sourceMappingURL=dom.js.map
|
package/lib/cjs/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/dom.ts"],"names":[],"mappings":"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","sourcesContent":["import { Undefined } from \"./types\";\nimport * as Geom from \"./geom\";\nimport { Browser } from \"./browser\";\n\ndeclare const $: any;\nconst fontMetrics: { [key: string]: any } = {};\n\n/**\n * Calculates the bounding box for an svg element in a consistent way across\n * browsers.\n */\nexport function svgBBox(element: SVGGraphicsElement): Geom.Rect {\n const bbox = Geom.Rect.from(element.getBBox());\n // Due to safari bug which returns really crazy span widths!\n if (Browser.IS_SAFARI()) {\n const clientRect = element.getClientRects()[0];\n if (clientRect) {\n const parentClientRect = element.parentElement?.getBoundingClientRect();\n bbox.x = bbox.x + clientRect.x - (parentClientRect?.x || 0);\n // bbox.y = clientRect.y; // - (parentClientRect?.y || 0);\n bbox.width = clientRect.width;\n bbox.height = clientRect.height;\n }\n }\n return bbox;\n}\n\nexport function getFontMetrics(fontFamily: string, fontSize: number): any {\n if (!(fontFamily in fontMetrics)) {\n fontMetrics[fontFamily] = {};\n }\n const familyMetrics = fontMetrics[fontFamily];\n if (!(fontSize in familyMetrics)) {\n const a = $(\"<div style='position:absolute;top:0;left:0'>M</div>\");\n a.css(\"font-family\", fontFamily);\n a.css(\"font-size\", fontSize);\n $($(document)[0].body).append(a);\n familyMetrics[fontSize] = {\n height: a[0].offsetHeight,\n size: fontSize,\n };\n a.remove();\n }\n return familyMetrics[fontSize];\n}\n\nexport function forEachChild(elem: Element, visitor: (child: Element, index: number) => Undefined<boolean>) {\n const children = elem.children;\n const L = children.length;\n for (let i = 0; i < L; i++) {\n const child = children[i];\n if (visitor(child, i) == false) return false;\n }\n}\n\nexport function forEachNode(elem: Element, visitor: (child: ChildNode, index: number) => Undefined<boolean>) {\n const children = elem.childNodes;\n const L = children.length;\n for (let i = 0; i < L; i++) {\n const child = children[i];\n if (visitor(child, i) == false) return;\n }\n}\n\nexport function forEachAttribute(elem: Element, visitor: (name: string, value: any) => Undefined<boolean>) {\n const nodeNameMap = elem.attributes;\n for (let i = 0; i < nodeNameMap.length; i++) {\n const attrib = nodeNameMap[i];\n if (visitor(attrib.name, attrib.value) == false) return;\n }\n}\n\n/**\n * Processing of different kinds of attributes.\n */\nexport function parseCSSStyles(value: string) {\n const out: any = {};\n if (value && value != null) {\n const values = value.split(\";\");\n values.forEach(function (elem) {\n if (elem.trim().length > 0) {\n const kvpair = elem.split(\":\");\n if (kvpair.length >= 2) {\n const key = kvpair[0].trim();\n const value = kvpair[1].trim();\n if (key.length > 0) {\n out[key] = value;\n }\n }\n }\n });\n }\n return out;\n}\n\nexport function getAttr(elem: Element, attrib: string, ...validators: any) {\n let value = elem.getAttribute(attrib);\n for (let i = 0; i < validators.length; i++) {\n value = validators[i](value);\n }\n return value;\n}\n\nexport function ensureAttr(elem: Element, attrib: string) {\n const value = elem.getAttribute(attrib) || null;\n if (value == null) {\n throw new Error(`Element MUST have Attribute: ${attrib}`);\n }\n return value;\n}\n\nexport function setAttr(elem: Element, name: string, value: any) {\n return elem.setAttribute(name, value);\n}\n\nexport function getAttrOrStyle(elem: Element, attribName: string, cssStyles: any, styleName: string) {\n return elem.getAttribute(attribName) || cssStyles[styleName];\n}\n\nexport function createSVGNode<T extends SVGGraphicsElement>(nodename: string, config?: any): any {\n config = config || {};\n config.ns = \"http://www.w3.org/2000/svg\";\n return createNode(nodename, config) as T;\n}\n\nexport function createNode(nodename: string, config?: any): Element {\n let out;\n config = config || {};\n const ns = config.ns;\n const doc = config.doc || document;\n const attrs = config.attrs || {};\n const text = config.text || \"\";\n const parent = config.parent || null;\n if (ns) out = doc.createElementNS(ns, nodename);\n else out = doc.createElement(nodename);\n if (parent != null) {\n parent.appendChild(out);\n }\n for (const attr in attrs || {}) {\n const value = attrs[attr];\n out.setAttribute(attr, value);\n }\n if (text) {\n out.textContent = text;\n }\n return out;\n}\n\n/**\n * Remove a node from its parent.\n */\nexport function removeNode(node: Node): void {\n node.parentNode?.removeChild(node);\n}\n\nexport function insertAfter(node: Node, ...newNodes: Node[]): boolean {\n const parentNode = node.parentNode;\n if (parentNode == null) return false;\n const nextNode = node.nextSibling;\n if (nextNode == null) {\n for (let i = 0; i < newNodes.length; i++) {\n parentNode.appendChild(newNodes[i]);\n }\n } else {\n for (let i = 0; i < newNodes.length; i++) {\n parentNode.insertBefore(newNodes[i], nextNode);\n }\n }\n return true;\n}\n\nexport function getCSS(elem: Element, attr: string): any {\n return (elem as any).style[attr];\n}\n\nexport function setCSS(elem: Element, attr: string, value: any): void {\n (elem as any).style[attr] = value;\n}\n\nexport function ensureElement(elemOrId: Element | string, root: any = null): Element {\n if (typeof elemOrId === \"string\") {\n if (root == null) root = document;\n return root.querySelector(elemOrId);\n } else {\n return elemOrId;\n }\n}\n\n/*\nexport function setEnabled(elem: Element, enable = true): Element {\n elem.prop(\"disabled\", !enable);\n return elem;\n}\n\nexport function setVisible(elem: Element, show = true): Element {\n if (show) {\n elem.show();\n } else {\n elem.hide();\n }\n return elem;\n}\n\nexport function getcssint(elem: JQuery<HTMLElement>, attrib: string): number{\n return parseInt(elem.css(attrib).replace(/px/, \"\"));\n}\n\nexport function centerElem(elem: JQuery<HTMLElement>, axis: string) {\n const parent = elem.parent();\n const horizPadding =\n getcssint(elem, \"padding-left\") +\n getcssint(elem, \"padding-right\") +\n getcssint(elem, \"margin-left\") +\n getcssint(elem, \"margin-right\") +\n getcssint(parent, \"border-left\") +\n getcssint(parent, \"border-right\");\n const vertPadding =\n getcssint(elem, \"padding-top\") +\n getcssint(elem, \"padding-bottom\") +\n getcssint(elem, \"margin-top\") +\n getcssint(elem, \"margin-bottom\") +\n getcssint(parent, \"border-top\") +\n getcssint(parent, \"border-bottom\");\n const finalHeight: number = (parent.height() as number) - vertPadding;\n const finalWidth: number = (parent.width() as number) - horizPadding;\n if (axis == \"x\") {\n elem.css(\"left\", (finalWidth - (elem.width() as number)) / 2);\n } else if (axis == \"y\") {\n elem.css(\"top\", (finalHeight - (elem.height() as number)) / 2);\n } else {\n elem.css(\"left\", (finalWidth - (elem.width() as number)) / 2);\n elem.css(\"top\", (finalHeight - (elem.height() as number)) / 2);\n }\n}\n\nexport function fillChildComponent(elem: JQuery<HTMLElement>) {\n const parent = elem.parent();\n const horizPadding =\n getcssint(elem, \"padding-left\") +\n getcssint(elem, \"padding-right\") +\n getcssint(elem, \"margin-left\") +\n getcssint(elem, \"margin-right\") +\n getcssint(parent, \"border-left\") +\n getcssint(parent, \"border-right\");\n const vertPadding =\n getcssint(elem, \"padding-top\") +\n getcssint(elem, \"padding-bottom\") +\n getcssint(elem, \"margin-top\") +\n getcssint(elem, \"margin-bottom\") +\n getcssint(parent, \"border-top\") +\n getcssint(parent, \"border-bottom\");\n const finalHeight = (parent.height() as number) - vertPadding;\n const finalWidth = (parent.width() as number) - horizPadding;\n elem.height(finalHeight);\n elem.width(finalWidth);\n}\n*/\n"]}
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/dom.ts"],"names":[],"mappings":"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","sourcesContent":["import { Undefined } from \"./types\";\nimport * as Geom from \"./geom\";\nimport { Browser } from \"./browser\";\n\ndeclare const $: any;\nconst fontMetrics: { [key: string]: any } = {};\n\n/**\n * Calculates the bounding box for an svg element in a consistent way across\n * browsers.\n */\nexport function svgBBox(element: SVGGraphicsElement): Geom.Rect {\n const bbox = Geom.Rect.from(element.getBBox());\n // Due to safari bug which returns really crazy span widths!\n if (Browser.IS_SAFARI()) {\n const clientRect = element.getClientRects()[0];\n if (clientRect) {\n const parentClientRect = element.parentElement?.getBoundingClientRect();\n bbox.x = bbox.x + clientRect.x - (parentClientRect?.x || 0);\n // bbox.y = clientRect.y; // - (parentClientRect?.y || 0);\n bbox.width = clientRect.width;\n bbox.height = clientRect.height;\n }\n }\n return bbox;\n}\n\nexport function getFontMetrics(fontFamily: string, fontSize: number): any {\n if (!(fontFamily in fontMetrics)) {\n fontMetrics[fontFamily] = {};\n }\n const familyMetrics = fontMetrics[fontFamily];\n if (!(fontSize in familyMetrics)) {\n const a = $(\"<div style='position:absolute;top:0;left:0'>M</div>\");\n a.css(\"font-family\", fontFamily);\n a.css(\"font-size\", fontSize);\n $($(document)[0].body).append(a);\n familyMetrics[fontSize] = {\n height: a[0].offsetHeight,\n size: fontSize,\n };\n a.remove();\n }\n return familyMetrics[fontSize];\n}\n\nexport function forEachChild(elem: Element, visitor: (child: Element, index: number) => Undefined<boolean>) {\n const children = elem.children;\n const L = children.length;\n for (let i = 0; i < L; i++) {\n const child = children[i];\n if (visitor(child, i) == false) return false;\n }\n}\n\nexport function forEachNode(elem: Element, visitor: (child: ChildNode, index: number) => Undefined<boolean>) {\n const children = elem.childNodes;\n const L = children.length;\n for (let i = 0; i < L; i++) {\n const child = children[i];\n if (visitor(child, i) == false) return;\n }\n}\n\nexport function forEachAttribute(elem: Element, visitor: (name: string, value: any) => Undefined<boolean>) {\n const nodeNameMap = elem.attributes;\n for (let i = 0; i < nodeNameMap.length; i++) {\n const attrib = nodeNameMap[i];\n if (visitor(attrib.name, attrib.value) == false) return;\n }\n}\n\n/**\n * Processing of different kinds of attributes.\n */\nexport function parseCSSStyles(value: string) {\n const out: any = {};\n if (value && value != null) {\n const values = value.split(\";\");\n values.forEach(function (elem) {\n if (elem.trim().length > 0) {\n const kvpair = elem.split(\":\");\n if (kvpair.length >= 2) {\n const key = kvpair[0].trim();\n const value = kvpair[1].trim();\n if (key.length > 0) {\n out[key] = value;\n }\n }\n }\n });\n }\n return out;\n}\n\nexport function getAttr(elem: Element, attrib: string, ...validators: any) {\n let value = elem.getAttribute(attrib);\n for (let i = 0; i < validators.length; i++) {\n value = validators[i](value);\n }\n return value;\n}\n\nexport function ensureAttr(elem: Element, attrib: string) {\n const value = elem.getAttribute(attrib) || null;\n if (value == null) {\n throw new Error(`Element MUST have Attribute: ${attrib}`);\n }\n return value;\n}\n\nexport function setAttr(elem: Element, name: string, value: any) {\n return elem.setAttribute(name, value);\n}\n\nexport function getAttrOrStyle(elem: Element, attribName: string, cssStyles: any, styleName: string) {\n return elem.getAttribute(attribName) || cssStyles[styleName];\n}\n\nexport function createSVGNode<T extends SVGGraphicsElement>(nodename: string, config?: any): any {\n config = config || {};\n config.ns = \"http://www.w3.org/2000/svg\";\n return createNode(nodename, config) as T;\n}\n\nexport function createNode(nodename: string, config?: any): Element {\n let out;\n config = config || {};\n const ns = config.ns;\n const doc = config.doc || document;\n const attrs = config.attrs || {};\n const text = config.text || \"\";\n const parent = config.parent || null;\n if (ns) out = doc.createElementNS(ns, nodename);\n else out = doc.createElement(nodename);\n if (parent != null) {\n parent.appendChild(out);\n }\n for (const attr in attrs || {}) {\n const value = attrs[attr];\n out.setAttribute(attr, value);\n }\n if (text) {\n out.textContent = text;\n }\n return out;\n}\n\n/**\n * Remove a node from its parent.\n */\nexport function removeNode(node: Node): void {\n node.parentNode?.removeChild(node);\n}\n\nexport function insertAfter(node: Node, ...newNodes: Node[]): boolean {\n const parentNode = node.parentNode;\n if (parentNode == null) return false;\n const nextNode = node.nextSibling;\n if (nextNode == null) {\n for (let i = 0; i < newNodes.length; i++) {\n parentNode.appendChild(newNodes[i]);\n }\n } else {\n for (let i = 0; i < newNodes.length; i++) {\n parentNode.insertBefore(newNodes[i], nextNode);\n }\n }\n return true;\n}\n\nexport function getCSS(elem: Element, attr: string): any {\n return (elem as any).style[attr];\n}\n\nexport function setCSS(elem: Element, attr: string, value: any): void {\n (elem as any).style[attr] = value;\n}\n\nexport function ensureElement(elemOrId: Element | string, root: any = null): Element {\n if (typeof elemOrId === \"string\") {\n if (root == null) root = document;\n return root.querySelector(elemOrId);\n } else {\n return elemOrId;\n }\n}\n\n/*\nexport function setEnabled(elem: Element, enable = true): Element {\n elem.prop(\"disabled\", !enable);\n return elem;\n}\n\nexport function setVisible(elem: Element, show = true): Element {\n if (show) {\n elem.show();\n } else {\n elem.hide();\n }\n return elem;\n}\n\nexport function getcssint(elem: JQuery<HTMLElement>, attrib: string): number{\n return parseInt(elem.css(attrib).replace(/px/, \"\"));\n}\n\nexport function centerElem(elem: JQuery<HTMLElement>, axis: string) {\n const parent = elem.parent();\n const horizPadding =\n getcssint(elem, \"padding-left\") +\n getcssint(elem, \"padding-right\") +\n getcssint(elem, \"margin-left\") +\n getcssint(elem, \"margin-right\") +\n getcssint(parent, \"border-left\") +\n getcssint(parent, \"border-right\");\n const vertPadding =\n getcssint(elem, \"padding-top\") +\n getcssint(elem, \"padding-bottom\") +\n getcssint(elem, \"margin-top\") +\n getcssint(elem, \"margin-bottom\") +\n getcssint(parent, \"border-top\") +\n getcssint(parent, \"border-bottom\");\n const finalHeight: number = (parent.height() as number) - vertPadding;\n const finalWidth: number = (parent.width() as number) - horizPadding;\n if (axis == \"x\") {\n elem.css(\"left\", (finalWidth - (elem.width() as number)) / 2);\n } else if (axis == \"y\") {\n elem.css(\"top\", (finalHeight - (elem.height() as number)) / 2);\n } else {\n elem.css(\"left\", (finalWidth - (elem.width() as number)) / 2);\n elem.css(\"top\", (finalHeight - (elem.height() as number)) / 2);\n }\n}\n\nexport function fillChildComponent(elem: JQuery<HTMLElement>) {\n const parent = elem.parent();\n const horizPadding =\n getcssint(elem, \"padding-left\") +\n getcssint(elem, \"padding-right\") +\n getcssint(elem, \"margin-left\") +\n getcssint(elem, \"margin-right\") +\n getcssint(parent, \"border-left\") +\n getcssint(parent, \"border-right\");\n const vertPadding =\n getcssint(elem, \"padding-top\") +\n getcssint(elem, \"padding-bottom\") +\n getcssint(elem, \"margin-top\") +\n getcssint(elem, \"margin-bottom\") +\n getcssint(parent, \"border-top\") +\n getcssint(parent, \"border-bottom\");\n const finalHeight = (parent.height() as number) - vertPadding;\n const finalWidth = (parent.width() as number) - horizPadding;\n elem.height(finalHeight);\n elem.width(finalWidth);\n}\n*/\n"]}
|
package/lib/cjs/geom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geom.js","sourceRoot":"","sources":["../../src/geom.ts"],"names":[],"mappings":";;;AAKA,MAAa,KAAK;IAChB,YAAmB,IAAI,CAAC,EAAS,IAAI,CAAC;QAAnB,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;IAAG,CAAC;CAC3C;AAFD,sBAEC;AAED,MAAa,IAAI;IAGf,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QAFxB,UAAK,GAAG,CAAC,CAAC;QACV,WAAM,GAAG,CAAC,CAAC;QAET,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAPD,oBAOC;AAED,MAAa,MAAM;IACjB,YAAmB,OAAO,CAAC,EAAS,MAAM,CAAC,EAAS,QAAQ,CAAC,EAAS,SAAS,CAAC;QAA7D,SAAI,GAAJ,IAAI,CAAI;QAAS,QAAG,GAAH,GAAG,CAAI;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,WAAM,GAAN,MAAM,CAAI;IAAG,CAAC;CACrF;AAFD,wBAEC;AASD,MAAa,IAAI;IACf,YAAmB,IAAI,CAAC,EAAS,IAAI,CAAC,EAAS,QAAQ,CAAC,EAAS,SAAS,CAAC;QAAxD,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,WAAM,GAAN,MAAM,CAAI;IAAG,CAAC;IAE/E,MAAM,CAAC,IAAI,CAAC,GAAS;QACnB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,KAAK,CAAC,OAAoB;QACxB,IAAI,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"geom.js","sourceRoot":"","sources":["../../src/geom.ts"],"names":[],"mappings":";;;AAKA,MAAa,KAAK;IAChB,YAAmB,IAAI,CAAC,EAAS,IAAI,CAAC;QAAnB,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;IAAG,CAAC;CAC3C;AAFD,sBAEC;AAED,MAAa,IAAI;IAGf,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QAFxB,UAAK,GAAG,CAAC,CAAC;QACV,WAAM,GAAG,CAAC,CAAC;QAET,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAPD,oBAOC;AAED,MAAa,MAAM;IACjB,YAAmB,OAAO,CAAC,EAAS,MAAM,CAAC,EAAS,QAAQ,CAAC,EAAS,SAAS,CAAC;QAA7D,SAAI,GAAJ,IAAI,CAAI;QAAS,QAAG,GAAH,GAAG,CAAI;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,WAAM,GAAN,MAAM,CAAI;IAAG,CAAC;CACrF;AAFD,wBAEC;AASD,MAAa,IAAI;IACf,YAAmB,IAAI,CAAC,EAAS,IAAI,CAAC,EAAS,QAAQ,CAAC,EAAS,SAAS,CAAC;QAAxD,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,WAAM,GAAN,MAAM,CAAI;IAAG,CAAC;IAE/E,MAAM,CAAC,IAAI,CAAC,GAAS;QACnB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,KAAK,CAAC,OAAoB;QACxB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,QAAQ,CAAC,GAAG,KAAsB;QAChC,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnCD,oBAmCC","sourcesContent":["export interface Coords {\n x: number;\n y: number;\n}\n\nexport class Point implements Coords {\n constructor(public x = 0, public y = 0) {}\n}\n\nexport class Size {\n width = 0;\n height = 0;\n constructor(w = 0, h = 0) {\n this.width = w;\n this.height = h;\n }\n}\n\nexport class Insets {\n constructor(public left = 0, public top = 0, public right = 0, public bottom = 0) {}\n}\n\nexport interface BBox {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport class Rect implements BBox {\n constructor(public x = 0, public y = 0, public width = 0, public height = 0) {}\n\n static from(box: BBox): Rect {\n return new Rect(box.x, box.y, box.width, box.height);\n }\n\n copy(): Rect {\n return Rect.from(this);\n }\n\n /**\n * Returns union with another box.\n */\n union(another: BBox | null): this {\n if (another) {\n const minX = Math.min(this.x, another.x);\n const minY = Math.min(this.y, another.y);\n const maxX = Math.max(this.x + this.width, another.x + another.width);\n const maxY = Math.max(this.y + this.height, another.y + another.height);\n this.x = minX;\n this.y = minY;\n this.width = maxX - minX;\n this.height = maxY - minY;\n }\n return this;\n }\n\n /**\n * Returns union of multiple boxes.\n */\n unionAll(...boxes: (BBox | null)[]): this {\n for (const b of boxes) this.union(b);\n return this;\n }\n}\n"]}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,oDAAoC;AACpC,yDAAyC;AACzC,yDAAyC;AACzC,gDAAgC;AAChC,+CAA+B;AAC/B,qDAAqC;AACrC,6CAA6B;AAC7B,+CAA+B;AAC/B,qDAAqC;AACrC,oDAAoC;AACpC,6CAA6B;AAC7B,yDAAyC;AACzC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,qCAAoC;AAA3B,kGAAA,OAAO,OAAA","sourcesContent":["export * from \"./types\";\nexport * as Api from \"./apis/index\";\nexport * as Constants from \"./constants\";\nexport * as Events from \"./comms/events\";\nexport * as Lists from \"./list\";\nexport * as Misc from \"./misc\";\nexport * as Streams from \"./streams\";\nexport * as DOM from \"./dom\";\nexport * as Geom from \"./geom\";\nexport * as Num from \"./numberutils\";\nexport * as Time from \"./timeutils\";\nexport * as DAL from \"./dal\";\nexport * as Scrolling from \"./scrolling\";\nexport { Timer } from \"./timer\";\nexport { Browser } from \"./browser\";\n"]}
|