@mlightcad/common 1.1.1 → 1.1.2
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/dist/common.js +201 -12
- package/lib/AcCmColor.d.ts +162 -3
- package/lib/AcCmColor.d.ts.map +1 -1
- package/lib/AcCmColor.js +187 -9
- package/lib/AcCmColor.js.map +1 -1
- package/lib/AcCmColorUtil.d.ts +35 -3
- package/lib/AcCmColorUtil.d.ts.map +1 -1
- package/lib/AcCmColorUtil.js +43 -7
- package/lib/AcCmColorUtil.js.map +1 -1
- package/lib/AcCmErrors.d.ts +33 -0
- package/lib/AcCmErrors.d.ts.map +1 -1
- package/lib/AcCmErrors.js +33 -0
- package/lib/AcCmErrors.js.map +1 -1
- package/lib/AcCmEventDispatcher.d.ts +53 -0
- package/lib/AcCmEventDispatcher.d.ts.map +1 -1
- package/lib/AcCmEventDispatcher.js +37 -0
- package/lib/AcCmEventDispatcher.js.map +1 -1
- package/lib/AcCmEventManager.d.ts +40 -1
- package/lib/AcCmEventManager.d.ts.map +1 -1
- package/lib/AcCmEventManager.js +40 -1
- package/lib/AcCmEventManager.js.map +1 -1
- package/lib/AcCmLodashUtils.d.ts +125 -18
- package/lib/AcCmLodashUtils.d.ts.map +1 -1
- package/lib/AcCmLodashUtils.js +127 -20
- package/lib/AcCmLodashUtils.js.map +1 -1
- package/lib/AcCmLogUtil.d.ts +51 -2
- package/lib/AcCmLogUtil.d.ts.map +1 -1
- package/lib/AcCmLogUtil.js +51 -2
- package/lib/AcCmLogUtil.js.map +1 -1
- package/lib/AcCmObject.d.ts +58 -4
- package/lib/AcCmObject.d.ts.map +1 -1
- package/lib/AcCmObject.js +31 -2
- package/lib/AcCmObject.js.map +1 -1
- package/lib/AcCmPerformanceCollector.d.ts +22 -1
- package/lib/AcCmPerformanceCollector.d.ts.map +1 -1
- package/lib/AcCmPerformanceCollector.js +9 -0
- package/lib/AcCmPerformanceCollector.js.map +1 -1
- package/lib/AcCmStringUtil.d.ts +37 -4
- package/lib/AcCmStringUtil.d.ts.map +1 -1
- package/lib/AcCmStringUtil.js +37 -4
- package/lib/AcCmStringUtil.js.map +1 -1
- package/lib/AcCmTaskScheduler.d.ts +84 -15
- package/lib/AcCmTaskScheduler.d.ts.map +1 -1
- package/lib/AcCmTaskScheduler.js +71 -7
- package/lib/AcCmTaskScheduler.js.map +1 -1
- package/lib/loader/AcCmFileLoader.d.ts +45 -8
- package/lib/loader/AcCmFileLoader.d.ts.map +1 -1
- package/lib/loader/AcCmFileLoader.js +52 -2
- package/lib/loader/AcCmFileLoader.js.map +1 -1
- package/lib/loader/AcCmLoader.d.ts +34 -1
- package/lib/loader/AcCmLoader.d.ts.map +1 -1
- package/lib/loader/AcCmLoader.js +29 -1
- package/lib/loader/AcCmLoader.js.map +1 -1
- package/lib/loader/AcCmLoadingManager.d.ts +64 -17
- package/lib/loader/AcCmLoadingManager.d.ts.map +1 -1
- package/lib/loader/AcCmLoadingManager.js +43 -4
- package/lib/loader/AcCmLoadingManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Event system implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a type-safe event dispatcher system that allows objects to
|
|
5
|
+
* emit and listen to events with proper TypeScript typing support.
|
|
6
|
+
*
|
|
7
|
+
* @module AcCmEventDispatcher
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
1
10
|
/**
|
|
2
11
|
* The minimal basic Event that can be dispatched by a {@link AcCmEventDispatcher<>}.
|
|
12
|
+
*
|
|
13
|
+
* @template TEventType - The string literal type of the event.
|
|
3
14
|
*/
|
|
4
15
|
export interface AcCmBaseEvent<TEventType extends string = string> {
|
|
16
|
+
/** The type identifier for this event. */
|
|
5
17
|
readonly type: TEventType;
|
|
6
18
|
}
|
|
7
19
|
/**
|
|
8
20
|
* The minimal expected contract of a fired Event that was dispatched by a {@link AcCmEventDispatcher<>}.
|
|
21
|
+
*
|
|
22
|
+
* @template TEventType - The string literal type of the event.
|
|
23
|
+
* @template TTarget - The type of the object that dispatched the event.
|
|
9
24
|
*/
|
|
10
25
|
export interface AcCmEvent<TEventType extends string = string, TTarget = unknown> {
|
|
26
|
+
/** The type identifier for this event. */
|
|
11
27
|
readonly type: TEventType;
|
|
28
|
+
/** The object that dispatched this event. */
|
|
12
29
|
readonly target: TTarget;
|
|
13
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Type definition for event listener functions.
|
|
33
|
+
*
|
|
34
|
+
* @template TEventData - The data payload type for the event.
|
|
35
|
+
* @template TEventType - The string literal type of the event.
|
|
36
|
+
* @template TTarget - The type of the object that dispatched the event.
|
|
37
|
+
*/
|
|
14
38
|
export type AcCmEventListener<TEventData, TEventType extends string, TTarget> = (event: TEventData & AcCmEvent<TEventType, TTarget>) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Type-safe event dispatcher implementation.
|
|
41
|
+
*
|
|
42
|
+
* Provides a robust event system that allows objects to emit and listen to events
|
|
43
|
+
* with full TypeScript type safety. Supports both typed event maps and dynamic events.
|
|
44
|
+
*
|
|
45
|
+
* @template TEventMap - A record type mapping event names to their data payloads.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Define event types
|
|
50
|
+
* interface MyEvents {
|
|
51
|
+
* load: { url: string }
|
|
52
|
+
* error: { message: string }
|
|
53
|
+
* }
|
|
54
|
+
*
|
|
55
|
+
* // Create dispatcher
|
|
56
|
+
* const dispatcher = new AcCmEventDispatcher<MyEvents>()
|
|
57
|
+
*
|
|
58
|
+
* // Add listeners
|
|
59
|
+
* dispatcher.addEventListener('load', (event) => {
|
|
60
|
+
* console.log(`Loaded: ${event.url}`)
|
|
61
|
+
* })
|
|
62
|
+
*
|
|
63
|
+
* // Dispatch events
|
|
64
|
+
* dispatcher.dispatchEvent({ type: 'load', url: 'test.dwg' })
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
15
67
|
export declare class AcCmEventDispatcher<TEventMap extends {} = {}> {
|
|
16
68
|
/**
|
|
17
69
|
* Index a record of all callback functions
|
|
70
|
+
* @private
|
|
18
71
|
*/
|
|
19
72
|
private _listeners;
|
|
20
73
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmEventDispatcher.d.ts","sourceRoot":"","sources":["../src/AcCmEventDispatcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AcCmEventDispatcher.d.ts","sourceRoot":"","sources":["../src/AcCmEventDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IAC/D,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS,CACxB,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,GAAG,OAAO;IAEjB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAC3B,UAAU,EACV,UAAU,SAAS,MAAM,EACzB,OAAO,IACL,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,qBAAa,mBAAmB,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE;IACxD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGjB;IAED;;OAEG;;IAKH;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EACzD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GACjD,IAAI;IAkBP;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EACzD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GACjD,OAAO;IAcV;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GACjD,IAAI;IAmBP;;;OAGG;IACH,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EACtD,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GACrC,IAAI;CAkBR"}
|
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Event system implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a type-safe event dispatcher system that allows objects to
|
|
5
|
+
* emit and listen to events with proper TypeScript typing support.
|
|
6
|
+
*
|
|
7
|
+
* @module AcCmEventDispatcher
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Type-safe event dispatcher implementation.
|
|
12
|
+
*
|
|
13
|
+
* Provides a robust event system that allows objects to emit and listen to events
|
|
14
|
+
* with full TypeScript type safety. Supports both typed event maps and dynamic events.
|
|
15
|
+
*
|
|
16
|
+
* @template TEventMap - A record type mapping event names to their data payloads.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Define event types
|
|
21
|
+
* interface MyEvents {
|
|
22
|
+
* load: { url: string }
|
|
23
|
+
* error: { message: string }
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* // Create dispatcher
|
|
27
|
+
* const dispatcher = new AcCmEventDispatcher<MyEvents>()
|
|
28
|
+
*
|
|
29
|
+
* // Add listeners
|
|
30
|
+
* dispatcher.addEventListener('load', (event) => {
|
|
31
|
+
* console.log(`Loaded: ${event.url}`)
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* // Dispatch events
|
|
35
|
+
* dispatcher.dispatchEvent({ type: 'load', url: 'test.dwg' })
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
1
38
|
// eslint-disable-next-line
|
|
2
39
|
var AcCmEventDispatcher = /** @class */ (function () {
|
|
3
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmEventDispatcher.js","sourceRoot":"","sources":["../src/AcCmEventDispatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcCmEventDispatcher.js","sourceRoot":"","sources":["../src/AcCmEventDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyCH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,2BAA2B;AAC3B;IAUE;;OAEG;IACH;QACE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACtB,CAAC;IAWD,8CAAgB,GAAhB,UACE,IAAO,EACP,QAA4C;QAE5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QAEvD,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QAEjC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAWD,8CAAgB,GAAhB,UACE,IAAO,EACP,QAA4C;QAE5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAE/C,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QAEjC,OAAO,CACL,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC1E,CAAA;IACH,CAAC;IAWD,iDAAmB,GAAnB,UACE,IAAO,EACP,QAA4C;QAE5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QAEzC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAErC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAE7C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,2CAAa,GAAb,UACE,KAAsC;QAEtC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QAEzC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,uCAAuC;YACvC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;YAEnB,8DAA8D;YAC9D,IAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AApHD,IAoHC"}
|
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @fileoverview Simple event manager implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a lightweight event management system for handling
|
|
5
|
+
* listeners and dispatching events with type-safe payload support.
|
|
6
|
+
*
|
|
7
|
+
* @module AcCmEventManager
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Simple event manager for handling event listeners and dispatching events.
|
|
12
|
+
*
|
|
13
|
+
* Provides a lightweight alternative to the more complex AcCmEventDispatcher
|
|
14
|
+
* for cases where you need basic event handling with type-safe payloads.
|
|
15
|
+
*
|
|
16
|
+
* @template T - The type of the event payload.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Create an event manager for string payloads
|
|
21
|
+
* const manager = new AcCmEventManager<string>()
|
|
22
|
+
*
|
|
23
|
+
* // Add a listener
|
|
24
|
+
* manager.addEventListener((message) => {
|
|
25
|
+
* console.log('Received:', message)
|
|
26
|
+
* })
|
|
27
|
+
*
|
|
28
|
+
* // Dispatch an event
|
|
29
|
+
* manager.dispatch('Hello, World!')
|
|
30
|
+
*
|
|
31
|
+
* // For complex payloads
|
|
32
|
+
* interface LoadEvent {
|
|
33
|
+
* url: string
|
|
34
|
+
* progress: number
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* const loadManager = new AcCmEventManager<LoadEvent>()
|
|
38
|
+
* loadManager.addEventListener(({ url, progress }) => {
|
|
39
|
+
* console.log(`Loading ${url}: ${progress}%`)
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
3
42
|
*/
|
|
4
43
|
export declare class AcCmEventManager<T = unknown> {
|
|
5
44
|
private listeners;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmEventManager.d.ts","sourceRoot":"","sources":["../src/AcCmEventManager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AcCmEventManager.d.ts","sourceRoot":"","sources":["../src/AcCmEventManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,OAAO;IACvC,OAAO,CAAC,SAAS,CAA+B;IAEhD;;;OAGG;IACI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI;IAItD;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI;IAIzD;;;OAGG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI;IAK1D;;;OAGG;IACI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAMhD"}
|
package/lib/AcCmEventManager.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Simple event manager implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a lightweight event management system for handling
|
|
5
|
+
* listeners and dispatching events with type-safe payload support.
|
|
6
|
+
*
|
|
7
|
+
* @module AcCmEventManager
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
1
10
|
var __values = (this && this.__values) || function(o) {
|
|
2
11
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
12
|
if (m) return m.call(o);
|
|
@@ -35,7 +44,37 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
35
44
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
45
|
};
|
|
37
46
|
/**
|
|
38
|
-
*
|
|
47
|
+
* Simple event manager for handling event listeners and dispatching events.
|
|
48
|
+
*
|
|
49
|
+
* Provides a lightweight alternative to the more complex AcCmEventDispatcher
|
|
50
|
+
* for cases where you need basic event handling with type-safe payloads.
|
|
51
|
+
*
|
|
52
|
+
* @template T - The type of the event payload.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // Create an event manager for string payloads
|
|
57
|
+
* const manager = new AcCmEventManager<string>()
|
|
58
|
+
*
|
|
59
|
+
* // Add a listener
|
|
60
|
+
* manager.addEventListener((message) => {
|
|
61
|
+
* console.log('Received:', message)
|
|
62
|
+
* })
|
|
63
|
+
*
|
|
64
|
+
* // Dispatch an event
|
|
65
|
+
* manager.dispatch('Hello, World!')
|
|
66
|
+
*
|
|
67
|
+
* // For complex payloads
|
|
68
|
+
* interface LoadEvent {
|
|
69
|
+
* url: string
|
|
70
|
+
* progress: number
|
|
71
|
+
* }
|
|
72
|
+
*
|
|
73
|
+
* const loadManager = new AcCmEventManager<LoadEvent>()
|
|
74
|
+
* loadManager.addEventListener(({ url, progress }) => {
|
|
75
|
+
* console.log(`Loading ${url}: ${progress}%`)
|
|
76
|
+
* })
|
|
77
|
+
* ```
|
|
39
78
|
*/
|
|
40
79
|
var AcCmEventManager = /** @class */ (function () {
|
|
41
80
|
function AcCmEventManager() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmEventManager.js","sourceRoot":"","sources":["../src/AcCmEventManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcCmEventManager.js","sourceRoot":"","sources":["../src/AcCmEventManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH;IAAA;QACU,cAAS,GAA6B,EAAE,CAAA;IAqClD,CAAC;IAnCC;;;OAGG;IACI,2CAAgB,GAAvB,UAAwB,QAA8B;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACI,8CAAmB,GAA1B,UAA2B,QAA8B;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,QAAQ,EAAd,CAAc,CAAC,CAAA;IAC7D,CAAC;IAED;;;OAGG;IACI,+CAAoB,GAA3B,UAA4B,QAA8B;QACxD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED;;;OAGG;IACI,mCAAQ,GAAf,UAAgB,OAAW;;QAAE,cAAkB;aAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;YAAlB,6BAAkB;;;YAC7C,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAA,gBAAA,4BAAE,CAAC;gBAA/B,IAAM,IAAI,WAAA;gBACb,IAAM,QAAQ,GAAG,IAAoC,CAAA;gBACrD,QAAQ,CAAC,IAAI,OAAb,QAAQ,iBAAM,IAAI,EAAE,OAAO,UAAK,IAAI,WAAC;YACvC,CAAC;;;;;;;;;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAtCD,IAsCC"}
|
package/lib/AcCmLodashUtils.d.ts
CHANGED
|
@@ -1,38 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Lightweight utility functions inspired by lodash-es.
|
|
3
|
+
*
|
|
4
|
+
* This module provides simplified implementations of commonly used lodash functions
|
|
5
|
+
* to reduce bundle size while maintaining essential functionality for object manipulation,
|
|
6
|
+
* comparison, and validation operations.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLodashUtils
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
/**
|
|
2
12
|
* Utility functions extracted from lodash-es to reduce bundle size
|
|
3
13
|
* These are simplified implementations of commonly used lodash functions
|
|
4
14
|
*/
|
|
5
15
|
/**
|
|
6
|
-
* Creates a shallow clone of an object
|
|
7
|
-
*
|
|
8
|
-
*
|
|
16
|
+
* Creates a shallow clone of an object or array.
|
|
17
|
+
*
|
|
18
|
+
* For primitive values, returns the value as-is. For objects and arrays,
|
|
19
|
+
* creates a new instance with the same properties or elements.
|
|
20
|
+
*
|
|
21
|
+
* @template T - The type of the object to clone.
|
|
22
|
+
* @param {T} obj - The object to clone.
|
|
23
|
+
* @returns {T} A shallow clone of the object.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { clone } from './AcCmLodashUtils'
|
|
28
|
+
*
|
|
29
|
+
* const original = { a: 1, b: 2 }
|
|
30
|
+
* const cloned = clone(original)
|
|
31
|
+
* cloned.a = 3
|
|
32
|
+
* console.log(original.a) // 1 (unchanged)
|
|
33
|
+
* console.log(cloned.a) // 3
|
|
34
|
+
*
|
|
35
|
+
* const arr = [1, 2, 3]
|
|
36
|
+
* const clonedArr = clone(arr) // [1, 2, 3]
|
|
37
|
+
* ```
|
|
9
38
|
*/
|
|
10
39
|
export declare function clone<T>(obj: T): T;
|
|
11
40
|
/**
|
|
12
|
-
* Assigns own enumerable properties of source objects to the destination object
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
41
|
+
* Assigns own enumerable properties of source objects to the destination object
|
|
42
|
+
* for all destination properties that resolve to undefined.
|
|
43
|
+
*
|
|
44
|
+
* This function fills in undefined properties in an object with the first value
|
|
45
|
+
* present in any of the source objects. Source objects are applied from left to right.
|
|
46
|
+
*
|
|
47
|
+
* @param {Record<string, unknown>} obj - The destination object.
|
|
48
|
+
* @param {...Record<string, unknown>[]} sources - The source objects.
|
|
49
|
+
* @returns {Record<string, unknown>} The destination object.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { defaults } from './AcCmLodashUtils'
|
|
54
|
+
*
|
|
55
|
+
* const object = { a: 1 }
|
|
56
|
+
* const result = defaults(object, { b: 2 }, { a: 3, c: 3 })
|
|
57
|
+
* console.log(result) // { a: 1, b: 2, c: 3 }
|
|
58
|
+
*
|
|
59
|
+
* // undefined properties are filled in
|
|
60
|
+
* const partial = { a: 1, b: undefined }
|
|
61
|
+
* defaults(partial, { b: 2, c: 3 })
|
|
62
|
+
* console.log(partial) // { a: 1, b: 2, c: 3 }
|
|
63
|
+
* ```
|
|
16
64
|
*/
|
|
17
65
|
export declare function defaults(obj: Record<string, unknown>, ...sources: Record<string, unknown>[]): Record<string, unknown>;
|
|
18
66
|
/**
|
|
19
|
-
* Checks if path is a direct property of object
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
67
|
+
* Checks if path is a direct property of object.
|
|
68
|
+
*
|
|
69
|
+
* This function checks whether the specified property exists directly on the object
|
|
70
|
+
* (not inherited from its prototype chain).
|
|
71
|
+
*
|
|
72
|
+
* @param {Record<string, unknown>} obj - The object to query.
|
|
73
|
+
* @param {string} path - The path to check.
|
|
74
|
+
* @returns {boolean} Returns true if path exists, else false.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* import { has } from './AcCmLodashUtils'
|
|
79
|
+
*
|
|
80
|
+
* const object = { a: 1, b: 2 }
|
|
81
|
+
* has(object, 'a') // true
|
|
82
|
+
* has(object, 'c') // false
|
|
83
|
+
* has(object, 'toString') // false (inherited property)
|
|
84
|
+
* ```
|
|
23
85
|
*/
|
|
24
86
|
export declare function has(obj: Record<string, unknown>, path: string): boolean;
|
|
25
87
|
/**
|
|
26
|
-
* Checks if value is an empty object, collection, map, or set
|
|
27
|
-
*
|
|
28
|
-
*
|
|
88
|
+
* Checks if value is an empty object, collection, map, or set.
|
|
89
|
+
*
|
|
90
|
+
* Values are considered empty if they are:
|
|
91
|
+
* - null or undefined
|
|
92
|
+
* - Arrays or strings with length 0
|
|
93
|
+
* - Maps or Sets with size 0
|
|
94
|
+
* - Objects with no enumerable properties
|
|
95
|
+
*
|
|
96
|
+
* @param {unknown} value - The value to check.
|
|
97
|
+
* @returns {boolean} Returns true if value is empty, else false.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* import { isEmpty } from './AcCmLodashUtils'
|
|
102
|
+
*
|
|
103
|
+
* isEmpty(null) // true
|
|
104
|
+
* isEmpty(undefined) // true
|
|
105
|
+
* isEmpty('') // true
|
|
106
|
+
* isEmpty([]) // true
|
|
107
|
+
* isEmpty({}) // true
|
|
108
|
+
* isEmpty(new Map()) // true
|
|
109
|
+
* isEmpty(new Set()) // true
|
|
110
|
+
* isEmpty('hello') // false
|
|
111
|
+
* isEmpty([1, 2, 3]) // false
|
|
112
|
+
* isEmpty({ a: 1 }) // false
|
|
113
|
+
* ```
|
|
29
114
|
*/
|
|
30
115
|
export declare function isEmpty(value: unknown): boolean;
|
|
31
116
|
/**
|
|
32
|
-
* Performs a deep comparison between two values to determine if they are equivalent
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
117
|
+
* Performs a deep comparison between two values to determine if they are equivalent.
|
|
118
|
+
*
|
|
119
|
+
* This function recursively compares objects and arrays, checking that all nested
|
|
120
|
+
* properties and elements are equal. Handles null/undefined values, primitive types,
|
|
121
|
+
* arrays, and plain objects.
|
|
122
|
+
*
|
|
123
|
+
* @param {unknown} value - The value to compare.
|
|
124
|
+
* @param {unknown} other - The other value to compare.
|
|
125
|
+
* @returns {boolean} Returns true if the values are equivalent, else false.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { isEqual } from './AcCmLodashUtils'
|
|
130
|
+
*
|
|
131
|
+
* isEqual(1, 1) // true
|
|
132
|
+
* isEqual('hello', 'hello') // true
|
|
133
|
+
* isEqual([1, 2], [1, 2]) // true
|
|
134
|
+
* isEqual({ a: 1 }, { a: 1 }) // true
|
|
135
|
+
* isEqual([1, 2], [2, 1]) // false
|
|
136
|
+
* isEqual({ a: 1 }, { a: 2 }) // false
|
|
137
|
+
*
|
|
138
|
+
* // Deep comparison
|
|
139
|
+
* const obj1 = { a: { b: 1 } }
|
|
140
|
+
* const obj2 = { a: { b: 1 } }
|
|
141
|
+
* isEqual(obj1, obj2) // true
|
|
142
|
+
* ```
|
|
36
143
|
*/
|
|
37
144
|
export declare function isEqual(value: unknown, other: unknown): boolean;
|
|
38
145
|
//# sourceMappingURL=AcCmLodashUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLodashUtils.d.ts","sourceRoot":"","sources":["../src/AcCmLodashUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"AcCmLodashUtils.d.ts","sourceRoot":"","sources":["../src/AcCmLodashUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAUlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkB/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAwD/D"}
|
package/lib/AcCmLodashUtils.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview Lightweight utility functions inspired by lodash-es.
|
|
3
|
+
*
|
|
4
|
+
* This module provides simplified implementations of commonly used lodash functions
|
|
5
|
+
* to reduce bundle size while maintaining essential functionality for object manipulation,
|
|
6
|
+
* comparison, and validation operations.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLodashUtils
|
|
9
|
+
* @version 1.0.0
|
|
4
10
|
*/
|
|
5
11
|
var __assign = (this && this.__assign) || function () {
|
|
6
12
|
__assign = Object.assign || function(t) {
|
|
@@ -50,9 +56,32 @@ var __values = (this && this.__values) || function(o) {
|
|
|
50
56
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
51
57
|
};
|
|
52
58
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
|
|
59
|
+
* Utility functions extracted from lodash-es to reduce bundle size
|
|
60
|
+
* These are simplified implementations of commonly used lodash functions
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Creates a shallow clone of an object or array.
|
|
64
|
+
*
|
|
65
|
+
* For primitive values, returns the value as-is. For objects and arrays,
|
|
66
|
+
* creates a new instance with the same properties or elements.
|
|
67
|
+
*
|
|
68
|
+
* @template T - The type of the object to clone.
|
|
69
|
+
* @param {T} obj - The object to clone.
|
|
70
|
+
* @returns {T} A shallow clone of the object.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* import { clone } from './AcCmLodashUtils'
|
|
75
|
+
*
|
|
76
|
+
* const original = { a: 1, b: 2 }
|
|
77
|
+
* const cloned = clone(original)
|
|
78
|
+
* cloned.a = 3
|
|
79
|
+
* console.log(original.a) // 1 (unchanged)
|
|
80
|
+
* console.log(cloned.a) // 3
|
|
81
|
+
*
|
|
82
|
+
* const arr = [1, 2, 3]
|
|
83
|
+
* const clonedArr = clone(arr) // [1, 2, 3]
|
|
84
|
+
* ```
|
|
56
85
|
*/
|
|
57
86
|
export function clone(obj) {
|
|
58
87
|
if (obj === null || typeof obj !== 'object') {
|
|
@@ -64,10 +93,29 @@ export function clone(obj) {
|
|
|
64
93
|
return __assign({}, obj);
|
|
65
94
|
}
|
|
66
95
|
/**
|
|
67
|
-
* Assigns own enumerable properties of source objects to the destination object
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
96
|
+
* Assigns own enumerable properties of source objects to the destination object
|
|
97
|
+
* for all destination properties that resolve to undefined.
|
|
98
|
+
*
|
|
99
|
+
* This function fills in undefined properties in an object with the first value
|
|
100
|
+
* present in any of the source objects. Source objects are applied from left to right.
|
|
101
|
+
*
|
|
102
|
+
* @param {Record<string, unknown>} obj - The destination object.
|
|
103
|
+
* @param {...Record<string, unknown>[]} sources - The source objects.
|
|
104
|
+
* @returns {Record<string, unknown>} The destination object.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* import { defaults } from './AcCmLodashUtils'
|
|
109
|
+
*
|
|
110
|
+
* const object = { a: 1 }
|
|
111
|
+
* const result = defaults(object, { b: 2 }, { a: 3, c: 3 })
|
|
112
|
+
* console.log(result) // { a: 1, b: 2, c: 3 }
|
|
113
|
+
*
|
|
114
|
+
* // undefined properties are filled in
|
|
115
|
+
* const partial = { a: 1, b: undefined }
|
|
116
|
+
* defaults(partial, { b: 2, c: 3 })
|
|
117
|
+
* console.log(partial) // { a: 1, b: 2, c: 3 }
|
|
118
|
+
* ```
|
|
71
119
|
*/
|
|
72
120
|
export function defaults(obj) {
|
|
73
121
|
var e_1, _a;
|
|
@@ -98,18 +146,55 @@ export function defaults(obj) {
|
|
|
98
146
|
return obj;
|
|
99
147
|
}
|
|
100
148
|
/**
|
|
101
|
-
* Checks if path is a direct property of object
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
149
|
+
* Checks if path is a direct property of object.
|
|
150
|
+
*
|
|
151
|
+
* This function checks whether the specified property exists directly on the object
|
|
152
|
+
* (not inherited from its prototype chain).
|
|
153
|
+
*
|
|
154
|
+
* @param {Record<string, unknown>} obj - The object to query.
|
|
155
|
+
* @param {string} path - The path to check.
|
|
156
|
+
* @returns {boolean} Returns true if path exists, else false.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* import { has } from './AcCmLodashUtils'
|
|
161
|
+
*
|
|
162
|
+
* const object = { a: 1, b: 2 }
|
|
163
|
+
* has(object, 'a') // true
|
|
164
|
+
* has(object, 'c') // false
|
|
165
|
+
* has(object, 'toString') // false (inherited property)
|
|
166
|
+
* ```
|
|
105
167
|
*/
|
|
106
168
|
export function has(obj, path) {
|
|
107
169
|
return obj != null && Object.prototype.hasOwnProperty.call(obj, path);
|
|
108
170
|
}
|
|
109
171
|
/**
|
|
110
|
-
* Checks if value is an empty object, collection, map, or set
|
|
111
|
-
*
|
|
112
|
-
*
|
|
172
|
+
* Checks if value is an empty object, collection, map, or set.
|
|
173
|
+
*
|
|
174
|
+
* Values are considered empty if they are:
|
|
175
|
+
* - null or undefined
|
|
176
|
+
* - Arrays or strings with length 0
|
|
177
|
+
* - Maps or Sets with size 0
|
|
178
|
+
* - Objects with no enumerable properties
|
|
179
|
+
*
|
|
180
|
+
* @param {unknown} value - The value to check.
|
|
181
|
+
* @returns {boolean} Returns true if value is empty, else false.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* import { isEmpty } from './AcCmLodashUtils'
|
|
186
|
+
*
|
|
187
|
+
* isEmpty(null) // true
|
|
188
|
+
* isEmpty(undefined) // true
|
|
189
|
+
* isEmpty('') // true
|
|
190
|
+
* isEmpty([]) // true
|
|
191
|
+
* isEmpty({}) // true
|
|
192
|
+
* isEmpty(new Map()) // true
|
|
193
|
+
* isEmpty(new Set()) // true
|
|
194
|
+
* isEmpty('hello') // false
|
|
195
|
+
* isEmpty([1, 2, 3]) // false
|
|
196
|
+
* isEmpty({ a: 1 }) // false
|
|
197
|
+
* ```
|
|
113
198
|
*/
|
|
114
199
|
export function isEmpty(value) {
|
|
115
200
|
if (value == null) {
|
|
@@ -127,10 +212,32 @@ export function isEmpty(value) {
|
|
|
127
212
|
return false;
|
|
128
213
|
}
|
|
129
214
|
/**
|
|
130
|
-
* Performs a deep comparison between two values to determine if they are equivalent
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
215
|
+
* Performs a deep comparison between two values to determine if they are equivalent.
|
|
216
|
+
*
|
|
217
|
+
* This function recursively compares objects and arrays, checking that all nested
|
|
218
|
+
* properties and elements are equal. Handles null/undefined values, primitive types,
|
|
219
|
+
* arrays, and plain objects.
|
|
220
|
+
*
|
|
221
|
+
* @param {unknown} value - The value to compare.
|
|
222
|
+
* @param {unknown} other - The other value to compare.
|
|
223
|
+
* @returns {boolean} Returns true if the values are equivalent, else false.
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```typescript
|
|
227
|
+
* import { isEqual } from './AcCmLodashUtils'
|
|
228
|
+
*
|
|
229
|
+
* isEqual(1, 1) // true
|
|
230
|
+
* isEqual('hello', 'hello') // true
|
|
231
|
+
* isEqual([1, 2], [1, 2]) // true
|
|
232
|
+
* isEqual({ a: 1 }, { a: 1 }) // true
|
|
233
|
+
* isEqual([1, 2], [2, 1]) // false
|
|
234
|
+
* isEqual({ a: 1 }, { a: 2 }) // false
|
|
235
|
+
*
|
|
236
|
+
* // Deep comparison
|
|
237
|
+
* const obj1 = { a: { b: 1 } }
|
|
238
|
+
* const obj2 = { a: { b: 1 } }
|
|
239
|
+
* isEqual(obj1, obj2) // true
|
|
240
|
+
* ```
|
|
134
241
|
*/
|
|
135
242
|
export function isEqual(value, other) {
|
|
136
243
|
var e_2, _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLodashUtils.js","sourceRoot":"","sources":["../src/AcCmLodashUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"AcCmLodashUtils.js","sourceRoot":"","sources":["../src/AcCmLodashUtils.ts"],"names":[],"mappings":"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"}
|