@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.
Files changed (56) hide show
  1. package/lib/cjs/apis/evapis.js +1 -1
  2. package/lib/cjs/apis/evapis.js.map +1 -1
  3. package/lib/cjs/apis/index.js +5 -1
  4. package/lib/cjs/apis/index.js.map +1 -1
  5. package/lib/cjs/apis/net.js.map +1 -1
  6. package/lib/cjs/comms/actors.js +5 -5
  7. package/lib/cjs/comms/actors.js.map +1 -1
  8. package/lib/cjs/comms/bus.d.ts +1 -2
  9. package/lib/cjs/comms/bus.js.map +1 -1
  10. package/lib/cjs/comms/events.d.ts +1 -1
  11. package/lib/cjs/comms/events.js.map +1 -1
  12. package/lib/cjs/decorators.js +1 -2
  13. package/lib/cjs/decorators.js.map +1 -1
  14. package/lib/cjs/dom.js +22 -19
  15. package/lib/cjs/dom.js.map +1 -1
  16. package/lib/cjs/geom.js.map +1 -1
  17. package/lib/cjs/index.js +5 -1
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/list.js.map +1 -1
  20. package/lib/cjs/misc.js +8 -8
  21. package/lib/cjs/misc.js.map +1 -1
  22. package/lib/cjs/numberutils.js +3 -3
  23. package/lib/cjs/numberutils.js.map +1 -1
  24. package/lib/cjs/scrolling.d.ts +12 -23
  25. package/lib/cjs/scrolling.js +51 -104
  26. package/lib/cjs/scrolling.js.map +1 -1
  27. package/lib/cjs/streams.js +5 -6
  28. package/lib/cjs/streams.js.map +1 -1
  29. package/lib/cjs/timer.d.ts +1 -1
  30. package/lib/cjs/timer.js.map +1 -1
  31. package/lib/cjs/timeutils.js +7 -7
  32. package/lib/cjs/timeutils.js.map +1 -1
  33. package/lib/cjs/types.d.ts +6 -6
  34. package/lib/cjs/types.js +1 -2
  35. package/lib/cjs/types.js.map +1 -1
  36. package/lib/esm/apis/net.js.map +1 -1
  37. package/lib/esm/comms/actors.js.map +1 -1
  38. package/lib/esm/comms/bus.d.ts +1 -2
  39. package/lib/esm/comms/bus.js.map +1 -1
  40. package/lib/esm/comms/events.d.ts +1 -1
  41. package/lib/esm/comms/events.js.map +1 -1
  42. package/lib/esm/dom.js.map +1 -1
  43. package/lib/esm/geom.js.map +1 -1
  44. package/lib/esm/list.js.map +1 -1
  45. package/lib/esm/misc.js.map +1 -1
  46. package/lib/esm/numberutils.js.map +1 -1
  47. package/lib/esm/scrolling.d.ts +12 -23
  48. package/lib/esm/scrolling.js +49 -102
  49. package/lib/esm/scrolling.js.map +1 -1
  50. package/lib/esm/streams.js.map +1 -1
  51. package/lib/esm/timer.d.ts +1 -1
  52. package/lib/esm/timer.js.map +1 -1
  53. package/lib/esm/timeutils.js.map +1 -1
  54. package/lib/esm/types.d.ts +6 -6
  55. package/lib/esm/types.js.map +1 -1
  56. package/package.json +32 -32
@@ -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 = exports.ResourceApiEvent || (exports.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":"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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"]}
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"]}
@@ -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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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":";;;;;;;;;;;;AAAA,wCAAsB;AACtB,gDAA8B","sourcesContent":["export * from \"./net\";\nexport * from \"./promiseapis\";\n"]}
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"]}
@@ -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;YACxD,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAa;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAW;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM;aACvB,GAAG,CAAC,CAAC,IAAS,EAAE,MAAc,EAAE,EAAE;YACjC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1B,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SAChE;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AA5CD,gCA4CC;AAED,MAAa,OAAO;IAIlB,YAAY,GAAW,EAAE,OAAY;QACnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAS;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;CACF;AAlCD,0BAkCC;AAED,MAAa,QAAQ;IAOnB,YAAY,MAAM,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,OAAY,IAAI;QAJ3D,YAAO,GAAQ,EAAE,CAAC;QAClB,SAAI,GAAQ,IAAI,CAAC;QACjB,UAAK,GAAQ,IAAI,CAAC;QAGhB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAZD,4BAYC","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"]}
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"]}
@@ -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":"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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"]}
1
+ {"version":3,"file":"actors.js","sourceRoot":"","sources":["../../../src/comms/actors.ts"],"names":[],"mappings":";;;AAAA,oCAA4C;AAM5C,MAAsB,KAAK;IACzB,cAAc,CAAC,GAAY;QACzB,IAAA,cAAM,EAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,kDAAkD,CAAC,CAAC;QAC/E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,IAAA,cAAM,EACJ,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,EACpC,+EAA+E,CAChF,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAKD,WAAW,CAAC,IAAU;IAEtB,CAAC;IAKD,YAAY,CAAC,MAAa;IAE1B,CAAC;CAwBF;AAnDD,sBAmDC;AAED,MAAsB,OAAO;IAwC3B,YAAY,IAAY,EAAE,MAAa,EAAE,MAAa;QApC7C,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAuBlC,eAAU,GAAQ,IAAI,CAAC;QAMvB,YAAO,GAAQ,IAAI,CAAC;QAQlB,IAAA,cAAM,EAAC,MAAM,IAAI,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAChD,IAAA,cAAM,EAAC,MAAM,IAAI,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;;AA9CH,0BA+CC;AA7CgB,eAAO,GAAG,CAAC,AAAJ,CAAK;AA+C7B,MAAe,eAAmB,SAAQ,OAAO;IAAjD;;QASU,iBAAY,GAAmB,IAAI,CAAC;IAe9C,CAAC;IAbC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAES,cAAc,CAAC,GAAmB;QAC1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,GAAG,IAAI,IAAI;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;YACrC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAa,KAAM,SAAQ,eAAsB;IAkB/C,YAAY,UAAgB,EAAE,KAAW;QAEvC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAnBtD,YAAO,GAAG,IAAI,CAAC;QAoBtB,IAAA,cAAM,EAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,mCAAmC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAClC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAgB,EAAE,KAAW;QACjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAjCD,sBAiCC;AAED,MAAa,IAAK,SAAQ,eAAqB;IAA/C;;QACW,YAAO,GAAG,KAAK,CAAC;QAQzB,aAAQ,GAAW,EAAE,CAAC;QAKtB,UAAK,GAAoB,IAAI,CAAC;QAK9B,gBAAW,GAAqB,IAAI,CAAC;IAYvC,CAAC;IAVC,KAAK,CAAC,UAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,KAAW;QACpB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AA/BD,oBA+BC","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"]}
@@ -1,6 +1,5 @@
1
- /// <reference types="node" />
2
1
  import { EventEmitter } from "events";
3
- export declare type Callback = (eventName: string, data: any) => void;
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();
@@ -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;YACtB,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;SACpC;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"]}
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 declare type EventCallback = ((event: TEvent) => void) | ((event: TEvent) => Promise<void>);
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"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mixinUuid = void 0;
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":";;;AAAA,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;AATD,8BASC","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"]}
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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.ensureElement = exports.setCSS = exports.getCSS = exports.insertAfter = exports.removeNode = exports.createNode = exports.createSVGNode = exports.getAttrOrStyle = exports.setAttr = exports.ensureAttr = exports.getAttr = exports.parseCSSStyles = exports.forEachAttribute = exports.forEachNode = exports.forEachChild = exports.getFontMetrics = exports.svgBBox = void 0;
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
@@ -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"]}
@@ -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;YACX,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;SAC3B;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"]}
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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/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"]}
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"]}