@mathwiz/ui-components 0.1.5 → 0.1.7
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/README.md +35 -1
- package/dist/App.css +570 -0
- package/dist/components/Button/Button.css +214 -0
- package/dist/components/ContentAccordion/ContentAccordion.css +268 -0
- package/dist/components/MathWizHeader/MathWizHeader.css +333 -0
- package/dist/components/MathWizHeader/MathWizHeader.d.ts.map +1 -1
- package/dist/components/MathWizHeader/MathWizHeader.types.d.ts +15 -0
- package/dist/components/MathWizHeader/MathWizHeader.types.d.ts.map +1 -1
- package/dist/components/Sidebar/Sidebar.css +207 -0
- package/dist/components/Submenu/Submenu.css +98 -0
- package/dist/components/UserProfile/UserProfile.css +141 -0
- package/dist/components/components.css +222 -0
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.module.css +60 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/types.d.ts +117 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/utils.d.ts +72 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/data-sources/api-data-source.d.ts +35 -0
- package/dist/data-sources/api-data-source.d.ts.map +1 -0
- package/dist/data-sources/custom-data-source.d.ts +59 -0
- package/dist/data-sources/custom-data-source.d.ts.map +1 -0
- package/dist/data-sources/factory.d.ts +61 -0
- package/dist/data-sources/factory.d.ts.map +1 -0
- package/dist/data-sources/index.d.ts +7 -0
- package/dist/data-sources/index.d.ts.map +1 -0
- package/dist/data-sources/mock-data-source.d.ts +44 -0
- package/dist/data-sources/mock-data-source.d.ts.map +1 -0
- package/dist/data-sources/types.d.ts +119 -0
- package/dist/data-sources/types.d.ts.map +1 -0
- package/dist/demo/configurable-demo.d.ts +4 -0
- package/dist/demo/configurable-demo.d.ts.map +1 -0
- package/dist/index.cjs +22 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +63 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +2051 -1564
- package/dist/index.mjs.map +1 -1
- package/dist/mocks/handlers.d.ts.map +1 -1
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserContext.d.ts +2 -4
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserContext.d.ts.map +1 -1
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.css +250 -0
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.d.ts.map +1 -1
- package/dist/pages/GradeUnitBrowserPage/types.d.ts +10 -0
- package/dist/pages/GradeUnitBrowserPage/types.d.ts.map +1 -1
- package/dist/services/courseService.d.ts.map +1 -1
- package/dist/stories/button.css +30 -0
- package/dist/stories/header.css +32 -0
- package/dist/stories/page.css +68 -0
- package/dist/styles/index.css +154 -0
- package/package.json +4 -2
- package/dist/ui-components.css +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { IDataSource, DataSourceConfig, DataSourceError, UpdateProgressParams, BatchLessonProgressUpdate } from './types';
|
|
2
|
+
import type { UserData, UserGradeUnitsProgressData } from '../types';
|
|
3
|
+
import type { ExploreItem } from '../components/MathWizHeader/MathWizHeader.types';
|
|
4
|
+
/**
|
|
5
|
+
* 自定义数据源基类
|
|
6
|
+
* 用户可以通过继承此类来创建自定义数据源
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class CustomDataSource implements IDataSource {
|
|
9
|
+
protected config: DataSourceConfig;
|
|
10
|
+
constructor(config: DataSourceConfig);
|
|
11
|
+
/**
|
|
12
|
+
* 获取用户年级单元导航数据 - 抽象方法,子类必须实现
|
|
13
|
+
*/
|
|
14
|
+
abstract getUserGradeUnitsNav(gradeId: string, userId: string): Promise<UserGradeUnitsProgressData>;
|
|
15
|
+
/**
|
|
16
|
+
* 获取用户个人信息 - 抽象方法,子类必须实现
|
|
17
|
+
*/
|
|
18
|
+
abstract getUserProfile(userId: string): Promise<UserData>;
|
|
19
|
+
/**
|
|
20
|
+
* 获取探索菜单数据 - 抽象方法,子类必须实现
|
|
21
|
+
*/
|
|
22
|
+
abstract getExploreMenu(): Promise<ExploreItem[]>;
|
|
23
|
+
/**
|
|
24
|
+
* 更新课时进度 - 抽象方法,子类必须实现
|
|
25
|
+
*/
|
|
26
|
+
abstract updateLessonProgress(params: UpdateProgressParams): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* 批量更新课时进度 - 抽象方法,子类必须实现
|
|
29
|
+
*/
|
|
30
|
+
abstract batchUpdateLessonProgress(unitId: string, progressUpdates: BatchLessonProgressUpdate[]): Promise<{
|
|
31
|
+
success: boolean;
|
|
32
|
+
results: Array<{
|
|
33
|
+
lessonId: string;
|
|
34
|
+
success: boolean;
|
|
35
|
+
status: string;
|
|
36
|
+
}>;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* 获取配置信息
|
|
40
|
+
*/
|
|
41
|
+
getConfig(): DataSourceConfig;
|
|
42
|
+
/**
|
|
43
|
+
* 创建数据源错误
|
|
44
|
+
*/
|
|
45
|
+
protected createError(message: string, code: string, originalError?: Error): DataSourceError;
|
|
46
|
+
/**
|
|
47
|
+
* 延迟函数
|
|
48
|
+
*/
|
|
49
|
+
protected delay(ms: number): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* 带超时的请求执行
|
|
52
|
+
*/
|
|
53
|
+
protected withTimeout<T>(operation: Promise<T>, timeoutMs?: number): Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* 验证参数
|
|
56
|
+
*/
|
|
57
|
+
protected validateParams(params: Record<string, any>, requiredFields: string[]): void;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=custom-data-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-data-source.d.ts","sourceRoot":"","sources":["../../src/data-sources/custom-data-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,QAAQ,EACR,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEnF;;;GAGG;AACH,8BAAsB,gBAAiB,YAAW,WAAW;IAC3D,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,MAAM,EAAE,gBAAgB;IAUpC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAEnG;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,yBAAyB,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,yBAAyB,EAAE,GAC3C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAExG;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,GAAG,eAAe;IAI5F;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;OAEG;cACa,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAYrF;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;CAUtF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ApiDataSource } from './api-data-source';
|
|
2
|
+
import { MockDataSource } from './mock-data-source';
|
|
3
|
+
import type { IDataSource, DataSourceFactoryOptions, ApiDataSourceConfig, MockDataSourceConfig } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* 数据源工厂 - 用于创建和管理数据源实例
|
|
6
|
+
*/
|
|
7
|
+
export declare class DataSourceFactory {
|
|
8
|
+
private static instances;
|
|
9
|
+
/**
|
|
10
|
+
* 创建数据源实例
|
|
11
|
+
* @param options 数据源选项
|
|
12
|
+
* @returns 数据源实例
|
|
13
|
+
*/
|
|
14
|
+
static createDataSource(options: DataSourceFactoryOptions): IDataSource;
|
|
15
|
+
/**
|
|
16
|
+
* 获取API数据源实例
|
|
17
|
+
* @param config API数据源配置
|
|
18
|
+
* @returns API数据源实例
|
|
19
|
+
*/
|
|
20
|
+
static createApiDataSource(config: ApiDataSourceConfig): ApiDataSource;
|
|
21
|
+
/**
|
|
22
|
+
* 获取模拟数据源实例
|
|
23
|
+
* @param config 模拟数据源配置
|
|
24
|
+
* @returns 模拟数据源实例
|
|
25
|
+
*/
|
|
26
|
+
static createMockDataSource(config?: Partial<MockDataSourceConfig>): MockDataSource;
|
|
27
|
+
/**
|
|
28
|
+
* 获取默认数据源实例
|
|
29
|
+
* 根据环境自动选择合适的数据源
|
|
30
|
+
*/
|
|
31
|
+
static createDefaultDataSource(): IDataSource;
|
|
32
|
+
/**
|
|
33
|
+
* 清除所有数据源实例缓存
|
|
34
|
+
*/
|
|
35
|
+
static clearCache(): void;
|
|
36
|
+
/**
|
|
37
|
+
* 获取缓存的实例数量
|
|
38
|
+
*/
|
|
39
|
+
static getCachedInstanceCount(): number;
|
|
40
|
+
/**
|
|
41
|
+
* 生成实例标识符
|
|
42
|
+
*/
|
|
43
|
+
private static getInstanceKey;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 创建数据源的快捷函数
|
|
47
|
+
*/
|
|
48
|
+
export declare function createDataSource(options: DataSourceFactoryOptions): IDataSource;
|
|
49
|
+
/**
|
|
50
|
+
* 创建API数据源的快捷函数
|
|
51
|
+
*/
|
|
52
|
+
export declare function createApiDataSource(config: ApiDataSourceConfig): ApiDataSource;
|
|
53
|
+
/**
|
|
54
|
+
* 创建模拟数据源的快捷函数
|
|
55
|
+
*/
|
|
56
|
+
export declare function createMockDataSource(config?: Partial<MockDataSourceConfig>): MockDataSource;
|
|
57
|
+
/**
|
|
58
|
+
* 创建默认数据源的快捷函数
|
|
59
|
+
*/
|
|
60
|
+
export declare function createDefaultDataSource(): IDataSource;
|
|
61
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/data-sources/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAExB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAuC;IAE/D;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IAyCvE;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;IAOtE;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,cAAc;IAUvF;;;OAGG;IACH,MAAM,CAAC,uBAAuB,IAAI,WAAW;IA2C7C;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAKzB;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,MAAM;IAIvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CAE/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,cAAc,CAE/F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,WAAW,CAErD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './api-data-source';
|
|
3
|
+
export * from './mock-data-source';
|
|
4
|
+
export * from './custom-data-source';
|
|
5
|
+
export * from './factory';
|
|
6
|
+
export { createDataSource, createApiDataSource, createMockDataSource, createDefaultDataSource, DataSourceFactory } from './factory';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { courseData } from '../data/courseData';
|
|
2
|
+
import type { IDataSource, MockDataSourceConfig, UpdateProgressParams, BatchLessonProgressUpdate } from './types';
|
|
3
|
+
import type { UserData, UserGradeUnitsProgressData, Lesson } from '../types';
|
|
4
|
+
import type { ExploreItem } from '../components/MathWizHeader/MathWizHeader.types';
|
|
5
|
+
/**
|
|
6
|
+
* 模拟数据源 - 基于courseData.ts的实现
|
|
7
|
+
*/
|
|
8
|
+
export declare class MockDataSource implements IDataSource {
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config: MockDataSourceConfig);
|
|
11
|
+
getUserGradeUnitsNav(gradeId: string, userId: string): Promise<UserGradeUnitsProgressData>;
|
|
12
|
+
getUserProfile(userId: string): Promise<UserData>;
|
|
13
|
+
getExploreMenu(): Promise<ExploreItem[]>;
|
|
14
|
+
updateLessonProgress(params: UpdateProgressParams): Promise<void>;
|
|
15
|
+
batchUpdateLessonProgress(unitId: string, progressUpdates: BatchLessonProgressUpdate[]): Promise<{
|
|
16
|
+
success: boolean;
|
|
17
|
+
results: Array<{
|
|
18
|
+
lessonId: string;
|
|
19
|
+
success: boolean;
|
|
20
|
+
status: string;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* 模拟网络延迟
|
|
25
|
+
*/
|
|
26
|
+
private simulateDelay;
|
|
27
|
+
/**
|
|
28
|
+
* 判断是否应该模拟错误
|
|
29
|
+
*/
|
|
30
|
+
private shouldSimulateError;
|
|
31
|
+
/**
|
|
32
|
+
* 获取配置信息
|
|
33
|
+
*/
|
|
34
|
+
getConfig(): MockDataSourceConfig;
|
|
35
|
+
/**
|
|
36
|
+
* 生成课程数据
|
|
37
|
+
*/
|
|
38
|
+
getCourseData(): typeof courseData;
|
|
39
|
+
/**
|
|
40
|
+
* 生成课时数据
|
|
41
|
+
*/
|
|
42
|
+
getLessonsData(): Record<string, Lesson[]>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=mock-data-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data-source.d.ts","sourceRoot":"","sources":["../../src/data-sources/mock-data-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EAEpB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,QAAQ,EACR,0BAA0B,EAC1B,MAAM,EACP,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAEnF;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,oBAAoB;IAUlC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA6C1F,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBjD,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAoBxC,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,yBAAyB,EAAE,GAC3C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAwBxG;;OAEG;YACW,aAAa;IAM3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,SAAS,IAAI,oBAAoB;IAIjC;;OAEG;IACH,aAAa,IAAI,OAAO,UAAU;IAIlC;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAe3C"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { UserData } from '../types';
|
|
2
|
+
import type { ExploreItem } from '../components/MathWizHeader/MathWizHeader.types';
|
|
3
|
+
import type { UserGradeUnitsProgressData } from '../components/Sidebar/types';
|
|
4
|
+
/**
|
|
5
|
+
* 数据源接口定义
|
|
6
|
+
* 所有数据源实现都必须遵循此接口
|
|
7
|
+
*/
|
|
8
|
+
export interface IDataSource {
|
|
9
|
+
/**
|
|
10
|
+
* 获取用户年级单元导航数据
|
|
11
|
+
* @param gradeId 年级ID
|
|
12
|
+
* @param userId 用户ID
|
|
13
|
+
* @returns 用户年级单元进度数据
|
|
14
|
+
*/
|
|
15
|
+
getUserGradeUnitsNav(gradeId: string, userId: string): Promise<UserGradeUnitsProgressData>;
|
|
16
|
+
/**
|
|
17
|
+
* 获取用户个人信息
|
|
18
|
+
* @param userId 用户ID
|
|
19
|
+
* @returns 用户数据
|
|
20
|
+
*/
|
|
21
|
+
getUserProfile(userId: string): Promise<UserData>;
|
|
22
|
+
/**
|
|
23
|
+
* 获取探索菜单数据
|
|
24
|
+
* @returns 探索菜单项列表
|
|
25
|
+
*/
|
|
26
|
+
getExploreMenu(): Promise<ExploreItem[]>;
|
|
27
|
+
/**
|
|
28
|
+
* 更新课时进度
|
|
29
|
+
* @param params 进度更新参数
|
|
30
|
+
*/
|
|
31
|
+
updateLessonProgress(params: UpdateProgressParams): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* 批量更新课时进度
|
|
34
|
+
* @param unitId 单元ID
|
|
35
|
+
* @param progressUpdates 进度更新列表
|
|
36
|
+
*/
|
|
37
|
+
batchUpdateLessonProgress(unitId: string, progressUpdates: BatchLessonProgressUpdate[]): Promise<{
|
|
38
|
+
success: boolean;
|
|
39
|
+
results: Array<{
|
|
40
|
+
lessonId: string;
|
|
41
|
+
success: boolean;
|
|
42
|
+
status: string;
|
|
43
|
+
}>;
|
|
44
|
+
}>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 进度更新参数
|
|
48
|
+
*/
|
|
49
|
+
export interface UpdateProgressParams {
|
|
50
|
+
courseId: string;
|
|
51
|
+
unitId: string;
|
|
52
|
+
lessonId: string;
|
|
53
|
+
status: 'completed' | 'in-progress' | 'not-started';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 批量课时进度更新
|
|
57
|
+
*/
|
|
58
|
+
export interface BatchLessonProgressUpdate {
|
|
59
|
+
lessonId: string;
|
|
60
|
+
status: 'not-started' | 'in-progress' | 'completed';
|
|
61
|
+
progress?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 数据源配置基类
|
|
65
|
+
*/
|
|
66
|
+
export interface DataSourceConfig {
|
|
67
|
+
/** 数据源名称,用于调试和日志 */
|
|
68
|
+
name: string;
|
|
69
|
+
/** 是否启用缓存 */
|
|
70
|
+
enableCaching?: boolean;
|
|
71
|
+
/** 缓存过期时间(毫秒) */
|
|
72
|
+
cacheTTL?: number;
|
|
73
|
+
/** 请求超时时间(毫秒) */
|
|
74
|
+
timeout?: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* API数据源配置
|
|
78
|
+
*/
|
|
79
|
+
export interface ApiDataSourceConfig extends DataSourceConfig {
|
|
80
|
+
/** API基础URL */
|
|
81
|
+
baseURL: string;
|
|
82
|
+
/** 认证token */
|
|
83
|
+
token: string;
|
|
84
|
+
/** 重试次数 */
|
|
85
|
+
retryCount?: number;
|
|
86
|
+
/** 重试延迟(毫秒) */
|
|
87
|
+
retryDelay?: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 模拟数据源配置
|
|
91
|
+
*/
|
|
92
|
+
export interface MockDataSourceConfig extends DataSourceConfig {
|
|
93
|
+
/** 模拟数据延迟(毫秒) */
|
|
94
|
+
delay?: number;
|
|
95
|
+
/** 是否模拟错误 */
|
|
96
|
+
simulateError?: boolean;
|
|
97
|
+
/** 错误概率(0-1) */
|
|
98
|
+
errorProbability?: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 数据源错误类型
|
|
102
|
+
*/
|
|
103
|
+
export declare class DataSourceError extends Error {
|
|
104
|
+
code: string;
|
|
105
|
+
originalError?: Error | undefined;
|
|
106
|
+
constructor(message: string, code: string, originalError?: Error | undefined);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 数据源工厂选项
|
|
110
|
+
*/
|
|
111
|
+
export interface DataSourceFactoryOptions {
|
|
112
|
+
/** 数据源类型 */
|
|
113
|
+
type: 'api' | 'mock' | 'custom';
|
|
114
|
+
/** 配置参数 */
|
|
115
|
+
config: DataSourceConfig;
|
|
116
|
+
/** 自定义数据源类(当type为custom时使用) */
|
|
117
|
+
customDataSourceClass?: new (config: DataSourceConfig) => IDataSource;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data-sources/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAIT,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE3F;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElD;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEzC;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;OAIG;IACH,yBAAyB,CACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,yBAAyB,EAAE,GAC3C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAC1G;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,IAAI,EAAE,MAAM;IACZ,aAAa,CAAC,EAAE,KAAK;gBAF5B,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,KAAK,YAAA;CAK/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,YAAY;IACZ,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,WAAW;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,+BAA+B;IAC/B,qBAAqB,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,KAAK,WAAW,CAAC;CACvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurable-demo.d.ts","sourceRoot":"","sources":["../../src/demo/configurable-demo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAwF7B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|