@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
package/lib/AcCmTaskScheduler.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Task scheduling and execution system for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a type-safe task scheduler that can execute a chain of named tasks
|
|
5
|
+
* in sequence, with progress reporting, error handling, and data flow between tasks.
|
|
6
|
+
*
|
|
7
|
+
* @module AcCmTaskScheduler
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
1
10
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
11
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
12
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,15 +45,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
45
|
};
|
|
37
46
|
/**
|
|
38
47
|
* Represents a named unit of work with an asynchronous or synchronous execution function.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
48
|
+
*
|
|
49
|
+
* Tasks can be chained together in a scheduler to create complex workflows with
|
|
50
|
+
* proper data flow and error handling.
|
|
51
|
+
*
|
|
52
|
+
* @template TIn - Input type for the task.
|
|
53
|
+
* @template TOut - Output type for the task.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* class LoadFileTask extends AcCmTask<string, ArrayBuffer> {
|
|
58
|
+
* constructor() {
|
|
59
|
+
* super('LoadFile')
|
|
60
|
+
* }
|
|
61
|
+
*
|
|
62
|
+
* async run(url: string): Promise<ArrayBuffer> {
|
|
63
|
+
* const response = await fetch(url)
|
|
64
|
+
* return response.arrayBuffer()
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
41
68
|
*/
|
|
42
69
|
var AcCmTask = /** @class */ (function () {
|
|
70
|
+
/**
|
|
71
|
+
* Creates a new task with the specified name.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} name - The name identifier for this task.
|
|
74
|
+
*/
|
|
43
75
|
function AcCmTask(name) {
|
|
44
76
|
this.name = name;
|
|
45
77
|
}
|
|
46
78
|
/**
|
|
47
|
-
* Executes the task.
|
|
79
|
+
* Executes the task with the given input.
|
|
80
|
+
*
|
|
81
|
+
* This method must be implemented by subclasses to define the actual work
|
|
82
|
+
* performed by the task. Can return either a synchronous result or a Promise.
|
|
83
|
+
*
|
|
84
|
+
* @param {TIn} _input - The input data for the task.
|
|
85
|
+
* @returns {TOut | Promise<TOut>} The task result, either synchronous or asynchronous.
|
|
86
|
+
* @throws {Error} When the method is not implemented by a subclass.
|
|
48
87
|
*/
|
|
49
88
|
AcCmTask.prototype.run = function (_input) {
|
|
50
89
|
throw new Error('run() must be implemented by subclass');
|
|
@@ -53,11 +92,36 @@ var AcCmTask = /** @class */ (function () {
|
|
|
53
92
|
}());
|
|
54
93
|
export { AcCmTask };
|
|
55
94
|
/**
|
|
56
|
-
* Type-safe task scheduler that executes a chain of named tasks in order
|
|
57
|
-
*
|
|
95
|
+
* Type-safe task scheduler that executes a chain of named tasks in order.
|
|
96
|
+
*
|
|
97
|
+
* The scheduler passes results between tasks, reports progress, and stops
|
|
98
|
+
* execution on the first failure. Supports both synchronous and asynchronous tasks.
|
|
99
|
+
*
|
|
100
|
+
* @template TInitial - Initial input type for the first task.
|
|
101
|
+
* @template TFinal - Final output type from the last task.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* // Create scheduler with string input and object output
|
|
106
|
+
* const scheduler = new AcCmTaskScheduler<string, ParsedData>()
|
|
107
|
+
*
|
|
108
|
+
* // Add tasks
|
|
109
|
+
* scheduler.addTask(new LoadFileTask())
|
|
110
|
+
* scheduler.addTask(new ParseDataTask())
|
|
111
|
+
* scheduler.addTask(new ValidateDataTask())
|
|
112
|
+
*
|
|
113
|
+
* // Set callbacks
|
|
114
|
+
* scheduler.setProgressCallback((progress, task) => {
|
|
115
|
+
* console.log(`${task.name}: ${(progress * 100).toFixed(1)}%`)
|
|
116
|
+
* })
|
|
117
|
+
*
|
|
118
|
+
* scheduler.setCompleteCallback((result) => {
|
|
119
|
+
* console.log('All tasks completed:', result)
|
|
120
|
+
* })
|
|
58
121
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
122
|
+
* // Execute
|
|
123
|
+
* await scheduler.execute('file.dwg')
|
|
124
|
+
* ```
|
|
61
125
|
*/
|
|
62
126
|
var AcCmTaskScheduler = /** @class */ (function () {
|
|
63
127
|
function AcCmTaskScheduler() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmTaskScheduler.js","sourceRoot":"","sources":["../src/AcCmTaskScheduler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcCmTaskScheduler.js","sourceRoot":"","sources":["../src/AcCmTaskScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IAME;;;;OAIG;IACH,kBAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED;;;;;;;;;OASG;IACH,sBAAG,GAAH,UAAI,MAAW;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACH,eAAC;AAAD,CAAC,AA5BD,IA4BC;;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH;IAAA;QACU,UAAK,GAAiC,EAAE,CAAA;QACxC,eAAU,GAAyB,cAAO,CAAC,CAAA;QAC3C,eAAU,GAAiC,cAAO,CAAC,CAAA;QACnD,YAAO,GAAsB,cAAO,CAAC,CAAA;IA8D/C,CAAC;IA5DC;;;;OAIG;IACH,mCAAO,GAAP,UAAmB,IAAyB;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAkC,CAAC,CAAA;IACrD,CAAC;IAED;;OAEG;IACH,+CAAmB,GAAnB,UAAoB,QAA8B;QAChD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,+CAAmB,GAAnB,UAAoB,QAAsC;QACxD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,4CAAgB,GAAhB,UAAiB,QAA2B;QAC1C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED;;OAEG;IACG,+BAAG,GAAT,UAAU,WAAqB;;;;;;;wBACvB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;wBAC3B,MAAM,GAAY,WAAW,CAAA;4CAExB,CAAC;;;;;wCACF,IAAI,GAAG,OAAK,KAAK,CAAC,CAAC,CAAC,CAAA;;;;wCAGf,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gDACzC,UAAU,CAAC;;;;;;gEAEQ,qBAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAA;;gEAA/B,MAAM,GAAG,SAAsB;gEACrC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;gEACtC,OAAO,CAAC,MAAM,CAAC,CAAA;;;;gEAEf,MAAM,CAAC,KAAG,CAAC,CAAA;;;;;qDAEd,EAAE,CAAC,CAAC,CAAA;4CACP,CAAC,CAAC,EAAA;;wCAVF,MAAM,GAAG,SAUP,CAAA;;;;wCAEF,OAAK,OAAO,CAAC,OAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;;;;;;;wBAhBvB,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,KAAK,CAAA;sDAAhB,CAAC;;;;;;;wBAAiB,CAAC,EAAE,CAAA;;;wBAqB9B,IAAI,CAAC,UAAU,CAAC,MAAgB,CAAC,CAAA;;;;;KAClC;IACH,wBAAC;AAAD,CAAC,AAlED,IAkEC"}
|
|
@@ -1,17 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview HTTP-based file loader implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a concrete implementation of the loader interface using
|
|
5
|
+
* the Fetch API for loading files over HTTP. Supports various response types
|
|
6
|
+
* and provides comprehensive error handling.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmFileLoader
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
import { AcCmLoader, AcCmLoaderProgressCallback } from './AcCmLoader';
|
|
2
12
|
import { AcCmLoadingManager, AcCmOnErrorCallback, AcCmOnLoadCallback } from './AcCmLoadingManager';
|
|
3
13
|
/**
|
|
4
|
-
* The response
|
|
5
|
-
*
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
14
|
+
* The supported response types for file loading operations.
|
|
15
|
+
*
|
|
16
|
+
* - `''` or `'text'` - Returns the data as a string (default).
|
|
17
|
+
* - `'arraybuffer'` - Loads the data into an ArrayBuffer.
|
|
18
|
+
* - `'blob'` - Returns the data as a Blob.
|
|
19
|
+
* - `'document'` - Parses the file using the DOMParser.
|
|
20
|
+
* - `'json'` - Parses the file using JSON.parse.
|
|
10
21
|
*/
|
|
11
22
|
type AcCmResponseType = '' | 'text' | 'arraybuffer' | 'blob' | 'document' | 'json';
|
|
12
23
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
24
|
+
* HTTP-based file loader using the Fetch API.
|
|
25
|
+
*
|
|
26
|
+
* A low-level class for loading resources over HTTP, used internally by most loaders.
|
|
27
|
+
* It can also be used directly to load any file type that does not have a specialized loader.
|
|
28
|
+
*
|
|
29
|
+
* Supports various response types, custom MIME types, and provides comprehensive error handling
|
|
30
|
+
* with automatic retry mechanisms for failed requests.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* import { AcCmFileLoader } from './AcCmFileLoader'
|
|
35
|
+
*
|
|
36
|
+
* const loader = new AcCmFileLoader()
|
|
37
|
+
*
|
|
38
|
+
* // Load a text file
|
|
39
|
+
* loader.load(
|
|
40
|
+
* 'data.txt',
|
|
41
|
+
* (data) => console.log('Loaded:', data),
|
|
42
|
+
* (progress) => console.log('Progress:', progress.loaded / progress.total),
|
|
43
|
+
* (error) => console.error('Error:', error)
|
|
44
|
+
* )
|
|
45
|
+
*
|
|
46
|
+
* // Load binary data
|
|
47
|
+
* loader.setResponseType('arraybuffer')
|
|
48
|
+
* loader.load('file.dwg', (arrayBuffer) => {
|
|
49
|
+
* // Process binary data
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
15
52
|
*/
|
|
16
53
|
export declare class AcCmFileLoader extends AcCmLoader {
|
|
17
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmFileLoader.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmFileLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcCmFileLoader.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmFileLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;AAmC7B;;;;;;;;GAQG;AACH,KAAK,gBAAgB,GACjB,EAAE,GACF,MAAM,GACN,aAAa,GACb,MAAM,GACN,UAAU,GACV,MAAM,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAA;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAE/B;;;OAGG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IAIxC;;;;;;OAMG;IACH,IAAI,CACF,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,0BAA0B,EACtC,OAAO,EAAE,mBAAmB;IAmL9B;;;;;;;;;OASG;IACH,eAAe,CAAC,KAAK,EAAE,gBAAgB;IAKvC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,sBAAsB;CAI1C"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview HTTP-based file loader implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a concrete implementation of the loader interface using
|
|
5
|
+
* the Fetch API for loading files over HTTP. Supports various response types
|
|
6
|
+
* and provides comprehensive error handling.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmFileLoader
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
var __extends = (this && this.__extends) || (function () {
|
|
2
12
|
var extendStatics = function (d, b) {
|
|
3
13
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -14,9 +24,23 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
24
|
};
|
|
15
25
|
})();
|
|
16
26
|
import { AcCmLoader } from './AcCmLoader';
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
17
30
|
var loading = {};
|
|
31
|
+
/**
|
|
32
|
+
* Custom error class for HTTP-related failures.
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
18
36
|
var HttpError = /** @class */ (function (_super) {
|
|
19
37
|
__extends(HttpError, _super);
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new HttpError.
|
|
40
|
+
*
|
|
41
|
+
* @param {string} message - The error message.
|
|
42
|
+
* @param {Response} response - The HTTP response that caused the error.
|
|
43
|
+
*/
|
|
20
44
|
function HttpError(message, response) {
|
|
21
45
|
var _this = _super.call(this, message) || this;
|
|
22
46
|
_this.response = response;
|
|
@@ -25,8 +49,34 @@ var HttpError = /** @class */ (function (_super) {
|
|
|
25
49
|
return HttpError;
|
|
26
50
|
}(Error));
|
|
27
51
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
52
|
+
* HTTP-based file loader using the Fetch API.
|
|
53
|
+
*
|
|
54
|
+
* A low-level class for loading resources over HTTP, used internally by most loaders.
|
|
55
|
+
* It can also be used directly to load any file type that does not have a specialized loader.
|
|
56
|
+
*
|
|
57
|
+
* Supports various response types, custom MIME types, and provides comprehensive error handling
|
|
58
|
+
* with automatic retry mechanisms for failed requests.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import { AcCmFileLoader } from './AcCmFileLoader'
|
|
63
|
+
*
|
|
64
|
+
* const loader = new AcCmFileLoader()
|
|
65
|
+
*
|
|
66
|
+
* // Load a text file
|
|
67
|
+
* loader.load(
|
|
68
|
+
* 'data.txt',
|
|
69
|
+
* (data) => console.log('Loaded:', data),
|
|
70
|
+
* (progress) => console.log('Progress:', progress.loaded / progress.total),
|
|
71
|
+
* (error) => console.error('Error:', error)
|
|
72
|
+
* )
|
|
73
|
+
*
|
|
74
|
+
* // Load binary data
|
|
75
|
+
* loader.setResponseType('arraybuffer')
|
|
76
|
+
* loader.load('file.dwg', (arrayBuffer) => {
|
|
77
|
+
* // Process binary data
|
|
78
|
+
* })
|
|
79
|
+
* ```
|
|
30
80
|
*/
|
|
31
81
|
var AcCmFileLoader = /** @class */ (function (_super) {
|
|
32
82
|
__extends(AcCmFileLoader, _super);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmFileLoader.js","sourceRoot":"","sources":["../../src/loader/AcCmFileLoader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcCmFileLoader.js","sourceRoot":"","sources":["../../src/loader/AcCmFileLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Base loader implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the abstract base class for all loaders in the system,
|
|
5
|
+
* defining the common interface and shared functionality for loading various
|
|
6
|
+
* types of resources.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLoader
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
import { AcCmLoadingManager, AcCmOnErrorCallback } from './AcCmLoadingManager';
|
|
12
|
+
/**
|
|
13
|
+
* Callback function for reporting loading progress.
|
|
14
|
+
*
|
|
15
|
+
* @param {ProgressEvent} progress - The progress event containing loading information.
|
|
16
|
+
*/
|
|
2
17
|
export type AcCmLoaderProgressCallback = (progress: ProgressEvent) => void;
|
|
3
18
|
/**
|
|
4
|
-
*
|
|
19
|
+
* Abstract base class for implementing resource loaders.
|
|
20
|
+
*
|
|
21
|
+
* This class provides the common functionality and interface that all loaders
|
|
22
|
+
* must implement, including loading manager integration, path handling, and
|
|
23
|
+
* configuration options for cross-origin requests.
|
|
24
|
+
*
|
|
25
|
+
* @abstract
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* class MyCustomLoader extends AcCmLoader {
|
|
30
|
+
* load(url: string, onLoad: (data: MyDataType) => void, onProgress?: AcCmLoaderProgressCallback, onError?: AcCmOnErrorCallback): void {
|
|
31
|
+
* // Implementation specific loading logic
|
|
32
|
+
* const fullUrl = this.resolveURL(url)
|
|
33
|
+
* // ... fetch and process data
|
|
34
|
+
* onLoad(processedData)
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
5
38
|
*/
|
|
6
39
|
export declare abstract class AcCmLoader {
|
|
7
40
|
manager: AcCmLoadingManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLoader.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAA;AAE1E
|
|
1
|
+
{"version":3,"file":"AcCmLoader.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAE7B;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAA;AAE1E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,UAAU;IAC9B,OAAO,EAAE,kBAAkB,CAAA;IAC3B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAA;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,EAAE,WAAW,CAAA;IAE1B;;;OAGG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IASxC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,EAChC,UAAU,CAAC,EAAE,0BAA0B,EACvC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAEP;;;;;;;OAOG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,0BAA0B;IAM7D;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM;IAKlC;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,OAAO;IAKjC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IAKpB;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM;IAKpC;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,WAAW;CAI5C"}
|
package/lib/loader/AcCmLoader.js
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Base loader implementation for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the abstract base class for all loaders in the system,
|
|
5
|
+
* defining the common interface and shared functionality for loading various
|
|
6
|
+
* types of resources.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLoader
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
import { DefaultLoadingManager } from './AcCmLoadingManager';
|
|
2
12
|
/**
|
|
3
|
-
*
|
|
13
|
+
* Abstract base class for implementing resource loaders.
|
|
14
|
+
*
|
|
15
|
+
* This class provides the common functionality and interface that all loaders
|
|
16
|
+
* must implement, including loading manager integration, path handling, and
|
|
17
|
+
* configuration options for cross-origin requests.
|
|
18
|
+
*
|
|
19
|
+
* @abstract
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* class MyCustomLoader extends AcCmLoader {
|
|
24
|
+
* load(url: string, onLoad: (data: MyDataType) => void, onProgress?: AcCmLoaderProgressCallback, onError?: AcCmOnErrorCallback): void {
|
|
25
|
+
* // Implementation specific loading logic
|
|
26
|
+
* const fullUrl = this.resolveURL(url)
|
|
27
|
+
* // ... fetch and process data
|
|
28
|
+
* onLoad(processedData)
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
4
32
|
*/
|
|
5
33
|
var AcCmLoader = /** @class */ (function () {
|
|
6
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLoader.js","sourceRoot":"","sources":["../../src/loader/AcCmLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcCmLoader.js","sourceRoot":"","sources":["../../src/loader/AcCmLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAGL,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAS7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAyBE;;;OAGG;IACH,oBAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;QACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACzB,CAAC;IAiBD;;;;;;;OAOG;IACH,8BAAS,GAAT,UAAU,GAAW,EAAE,UAAsC;QAA7D,iBAIC;QAHC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,KAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,0BAAK,GAAL,UAAM,KAAc,IAAG,CAAC;IAExB;;;;;OAKG;IACH,mCAAc,GAAd,UAAe,WAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,uCAAkB,GAAlB,UAAmB,KAAc;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,4BAAO,GAAP,UAAQ,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,oCAAe,GAAf,UAAgB,YAAoB;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACH,qCAAgB,GAAhB,UAAiB,aAA0B;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IACH,iBAAC;AAAD,CAAC,AA7HD,IA6HC"}
|
|
@@ -1,37 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Loading management system for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized loading manager that tracks and coordinates
|
|
5
|
+
* multiple file loading operations with progress reporting, error handling, and
|
|
6
|
+
* URL modification capabilities.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLoadingManager
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
1
11
|
import { AcCmLoader } from './AcCmLoader';
|
|
2
12
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
*
|
|
13
|
+
* Callback function that is called when loading starts.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} url - The URL of the item that just started loading.
|
|
16
|
+
* @param {number} itemsLoaded - The number of items already loaded so far.
|
|
17
|
+
* @param {number} itemsTotal - The total number of items to be loaded.
|
|
7
18
|
*/
|
|
8
19
|
export type AcCmOnStartCallback = (url: string, itemsLoaded: number, itemsTotal: number) => void;
|
|
9
20
|
/**
|
|
10
|
-
*
|
|
21
|
+
* Callback function that is called when all loading operations are completed successfully.
|
|
11
22
|
*/
|
|
12
23
|
export type AcCmOnLoadCallback = () => void;
|
|
13
24
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* -
|
|
17
|
-
*
|
|
25
|
+
* Callback function that is called when an individual item completes loading.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} url - The URL of the item that just finished loading.
|
|
28
|
+
* @param {number} itemsLoaded - The number of items loaded so far.
|
|
29
|
+
* @param {number} itemsTotal - The total number of items to be loaded.
|
|
18
30
|
*/
|
|
19
31
|
export type AcCmOnProgressCallback = (url: string, itemsLoaded: number, itemsTotal: number) => void;
|
|
20
32
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
33
|
+
* Callback function that is called when any loading operation encounters an error.
|
|
34
|
+
*
|
|
35
|
+
* @param {string} url - The URL of the item that failed to load.
|
|
23
36
|
*/
|
|
24
37
|
export type AcCmOnErrorCallback = (url: string) => void;
|
|
25
38
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
39
|
+
* Function that modifies URLs before loading requests are sent.
|
|
40
|
+
*
|
|
41
|
+
* This callback allows intercepting and modifying URLs to implement custom loading
|
|
42
|
+
* behavior, such as adding authentication tokens or redirecting to different servers.
|
|
43
|
+
*
|
|
44
|
+
* @param {string} url - The original URL.
|
|
45
|
+
* @returns {string} The modified URL or the original URL if no changes are needed.
|
|
28
46
|
*/
|
|
29
47
|
export type AcCmUrlModifier = (url: string) => string;
|
|
30
48
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
49
|
+
* Centralized loading manager that handles and tracks multiple loading operations.
|
|
50
|
+
*
|
|
51
|
+
* This class manages the loading state across multiple file operations, providing
|
|
52
|
+
* progress tracking, error handling, and URL modification capabilities. A default
|
|
53
|
+
* global instance is created and used by loaders if not supplied manually.
|
|
54
|
+
*
|
|
55
|
+
* Separate loading managers can be useful when you need independent loading progress
|
|
56
|
+
* tracking (e.g., separate progress bars for different types of resources).
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* import { AcCmLoadingManager } from './AcCmLoadingManager'
|
|
61
|
+
*
|
|
62
|
+
* // Create a custom loading manager
|
|
63
|
+
* const manager = new AcCmLoadingManager()
|
|
64
|
+
*
|
|
65
|
+
* // Set up callbacks
|
|
66
|
+
* manager.onStart = (url, loaded, total) => {
|
|
67
|
+
* console.log(`Started loading: ${url} (${loaded}/${total})`)
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* manager.onProgress = (url, loaded, total) => {
|
|
71
|
+
* console.log(`Progress: ${url} (${loaded}/${total})`)
|
|
72
|
+
* }
|
|
73
|
+
*
|
|
74
|
+
* manager.onLoad = () => {
|
|
75
|
+
* console.log('All loading completed!')
|
|
76
|
+
* }
|
|
77
|
+
*
|
|
78
|
+
* manager.onError = (url) => {
|
|
79
|
+
* console.error(`Failed to load: ${url}`)
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
35
82
|
*/
|
|
36
83
|
export declare class AcCmLoadingManager {
|
|
37
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLoadingManager.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmLoadingManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC
|
|
1
|
+
{"version":3,"file":"AcCmLoadingManager.d.ts","sourceRoot":"","sources":["../../src/loader/AcCmLoadingManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,KACf,IAAI,CAAA;AAET;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,KACf,IAAI,CAAA;AAET;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACI,OAAO,CAAC,EAAE,mBAAmB,CAAA;IACpC;;;OAGG;IACI,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAClC;;OAEG;IACI,UAAU,CAAC,EAAE,sBAAsB,CAAA;IAC1C;;OAEG;IACI,OAAO,CAAC,EAAE,mBAAmB,CAAA;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,WAAW,CAAC,CAAiB;IAErC;;;;;OAKG;gBAED,MAAM,CAAC,EAAE,kBAAkB,EAC3B,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,mBAAmB;IAiB/B;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM;IAYrB;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM;IAgBnB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM;IAMrB;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM;IAQtB;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,eAAe;IAMzC;;;;;;;OAOG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAK5C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM;IAU3B;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM;CAcxB;AAED,eAAO,MAAM,qBAAqB,oBAAyC,CAAA"}
|
|
@@ -1,8 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* @fileoverview Loading management system for the AutoCAD Common library.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized loading manager that tracks and coordinates
|
|
5
|
+
* multiple file loading operations with progress reporting, error handling, and
|
|
6
|
+
* URL modification capabilities.
|
|
7
|
+
*
|
|
8
|
+
* @module AcCmLoadingManager
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Centralized loading manager that handles and tracks multiple loading operations.
|
|
13
|
+
*
|
|
14
|
+
* This class manages the loading state across multiple file operations, providing
|
|
15
|
+
* progress tracking, error handling, and URL modification capabilities. A default
|
|
16
|
+
* global instance is created and used by loaders if not supplied manually.
|
|
17
|
+
*
|
|
18
|
+
* Separate loading managers can be useful when you need independent loading progress
|
|
19
|
+
* tracking (e.g., separate progress bars for different types of resources).
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { AcCmLoadingManager } from './AcCmLoadingManager'
|
|
24
|
+
*
|
|
25
|
+
* // Create a custom loading manager
|
|
26
|
+
* const manager = new AcCmLoadingManager()
|
|
27
|
+
*
|
|
28
|
+
* // Set up callbacks
|
|
29
|
+
* manager.onStart = (url, loaded, total) => {
|
|
30
|
+
* console.log(`Started loading: ${url} (${loaded}/${total})`)
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* manager.onProgress = (url, loaded, total) => {
|
|
34
|
+
* console.log(`Progress: ${url} (${loaded}/${total})`)
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* manager.onLoad = () => {
|
|
38
|
+
* console.log('All loading completed!')
|
|
39
|
+
* }
|
|
40
|
+
*
|
|
41
|
+
* manager.onError = (url) => {
|
|
42
|
+
* console.error(`Failed to load: ${url}`)
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
6
45
|
*/
|
|
7
46
|
var AcCmLoadingManager = /** @class */ (function () {
|
|
8
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcCmLoadingManager.js","sourceRoot":"","sources":["../../src/loader/AcCmLoadingManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcCmLoadingManager.js","sourceRoot":"","sources":["../../src/loader/AcCmLoadingManager.ts"],"names":[],"mappings":"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"}
|