@thanh01.pmt/interactive-quiz-kit 1.0.56 → 1.0.58
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/ai.d.cts +1 -1
- package/dist/ai.d.ts +1 -1
- package/dist/authoring.cjs +1659 -1402
- package/dist/authoring.d.cts +1 -1
- package/dist/authoring.d.ts +1 -1
- package/dist/authoring.mjs +1393 -1136
- package/dist/index.cjs +47 -47
- package/dist/index.d.cts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.mjs +47 -47
- package/dist/react-ui.cjs +2591 -2644
- package/dist/react-ui.d.cts +1 -1
- package/dist/react-ui.d.ts +1 -1
- package/dist/react-ui.mjs +1882 -1935
- package/dist/{toaster-DewB85O2.d.ts → toaster-BTfAUpDp.d.ts} +6 -2
- package/dist/{toaster-BS9dwHMu.d.cts → toaster-FX787Evl.d.cts} +6 -2
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -2631,8 +2631,6 @@ var LocalStorageManager = class {
|
|
|
2631
2631
|
this.saveAll([...items, newItem]);
|
|
2632
2632
|
return newItem;
|
|
2633
2633
|
}
|
|
2634
|
-
// ===== FIX IS HERE =====
|
|
2635
|
-
// Changed the type of 'updates' to allow 'code' to be part of the update object.
|
|
2636
2634
|
update(id, updates) {
|
|
2637
2635
|
const items = this.getAll();
|
|
2638
2636
|
const index = items.findIndex((i) => i.id === id);
|
|
@@ -2645,7 +2643,6 @@ var LocalStorageManager = class {
|
|
|
2645
2643
|
this.saveAll(items);
|
|
2646
2644
|
return updatedItem;
|
|
2647
2645
|
}
|
|
2648
|
-
// =======================
|
|
2649
2646
|
delete(code) {
|
|
2650
2647
|
const items = this.getAll();
|
|
2651
2648
|
const newItems = items.filter((i) => i.code !== code);
|
|
@@ -2679,81 +2676,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
|
|
|
2679
2676
|
return "medium";
|
|
2680
2677
|
}
|
|
2681
2678
|
}
|
|
2682
|
-
var
|
|
2679
|
+
var MetadataService = class {
|
|
2683
2680
|
};
|
|
2684
2681
|
// --- Subject Services ---
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
};
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
};
|
|
2692
|
-
_MetadataService.deleteSubject = (code) => {
|
|
2693
|
-
const topics = _MetadataService.getTopics(code);
|
|
2694
|
-
if (topics.length > 0) {
|
|
2682
|
+
MetadataService.getSubjects = () => subjectManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2683
|
+
MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
|
|
2684
|
+
MetadataService.addSubject = (name, code) => subjectManager.add({ code, name, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
|
|
2685
|
+
MetadataService.updateSubject = (id, name, code) => subjectManager.update(id, { name, code, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
|
|
2686
|
+
MetadataService.deleteSubject = (code) => {
|
|
2687
|
+
if (topicManager.getAll().some((t) => t.subjectCode === code)) {
|
|
2695
2688
|
throw new Error("Cannot delete subject: It is referenced by topics.");
|
|
2696
2689
|
}
|
|
2697
2690
|
return subjectManager.delete(code);
|
|
2698
2691
|
};
|
|
2699
2692
|
// --- GradeLevel Services ---
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2693
|
+
MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2694
|
+
MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
|
|
2695
|
+
MetadataService.addGradeLevel = (name, code) => gradeLevelManager.add({ name, code });
|
|
2696
|
+
MetadataService.updateGradeLevel = (id, name, code) => gradeLevelManager.update(id, { name, code });
|
|
2697
|
+
MetadataService.deleteGradeLevel = (code) => gradeLevelManager.delete(code);
|
|
2704
2698
|
// --- Topic Services ---
|
|
2705
|
-
|
|
2699
|
+
MetadataService.getTopics = (subjectCode) => {
|
|
2706
2700
|
const allTopics = topicManager.getAll();
|
|
2707
2701
|
const filtered = subjectCode ? allTopics.filter((t) => t.subjectCode === subjectCode) : allTopics;
|
|
2708
2702
|
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2709
2703
|
};
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2704
|
+
MetadataService.saveTopics = (items) => topicManager.saveAll(items);
|
|
2705
|
+
MetadataService.addTopic = (name, code, subjectCode) => topicManager.add({ name, code, subjectCode });
|
|
2706
|
+
MetadataService.updateTopic = (id, name, code, subjectCode) => topicManager.update(id, { name, code, subjectCode });
|
|
2707
|
+
MetadataService.deleteTopic = (code) => topicManager.delete(code);
|
|
2713
2708
|
// --- BloomLevel Services ---
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2709
|
+
MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2710
|
+
MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
|
|
2711
|
+
MetadataService.addBloomLevel = (name, code, description) => bloomLevelManager.add({ name, code, description });
|
|
2712
|
+
MetadataService.updateBloomLevel = (id, name, code, description) => bloomLevelManager.update(id, { name, code, description });
|
|
2713
|
+
MetadataService.deleteBloomLevel = (code) => bloomLevelManager.delete(code);
|
|
2718
2714
|
// --- QuestionType Services ---
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2715
|
+
MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2716
|
+
MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
|
|
2717
|
+
MetadataService.addQuestionType = (name, code, description) => questionTypeManager.add({ name, code, description });
|
|
2718
|
+
MetadataService.updateQuestionType = (id, name, code, description) => questionTypeManager.update(id, { name, code, description });
|
|
2719
|
+
MetadataService.deleteQuestionType = (code) => questionTypeManager.delete(code);
|
|
2723
2720
|
// --- Category Services ---
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2721
|
+
MetadataService.getCategories = () => categoryManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2722
|
+
MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
|
|
2723
|
+
MetadataService.addCategory = (name, code, description) => categoryManager.add({ name, code, description });
|
|
2724
|
+
MetadataService.updateCategory = (id, name, code, description) => categoryManager.update(id, { name, code, description });
|
|
2725
|
+
MetadataService.deleteCategory = (code) => categoryManager.delete(code);
|
|
2728
2726
|
// --- Context Services ---
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2727
|
+
MetadataService.getContexts = () => contextManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2728
|
+
MetadataService.saveContexts = (items) => contextManager.saveAll(items);
|
|
2729
|
+
MetadataService.addContext = (name, code, description) => contextManager.add({ name, code, description });
|
|
2730
|
+
MetadataService.updateContext = (id, name, code, description) => contextManager.update(id, { name, code, description });
|
|
2731
|
+
MetadataService.deleteContext = (code) => contextManager.delete(code);
|
|
2733
2732
|
// --- Approach Services ---
|
|
2734
|
-
|
|
2735
|
-
|
|
2733
|
+
MetadataService.getApproaches = () => approachManager.getAll().sort((a, b) => a.code.localeCompare(b.code));
|
|
2734
|
+
MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
|
|
2735
|
+
MetadataService.addApproach = (approachData) => {
|
|
2736
2736
|
const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
|
|
2737
2737
|
return approachManager.add({ ...approachData, difficulty });
|
|
2738
2738
|
};
|
|
2739
|
-
|
|
2739
|
+
MetadataService.updateApproach = (id, approachData) => {
|
|
2740
2740
|
const updates = { ...approachData };
|
|
2741
2741
|
if (approachData.rawDifficulty) {
|
|
2742
2742
|
updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
|
|
2743
2743
|
}
|
|
2744
2744
|
return approachManager.update(id, updates);
|
|
2745
2745
|
};
|
|
2746
|
-
|
|
2746
|
+
MetadataService.deleteApproach = (code) => approachManager.delete(code);
|
|
2747
2747
|
// --- LearningObjective Services ---
|
|
2748
|
-
|
|
2748
|
+
MetadataService.getLearningObjectives = (subjectCode) => {
|
|
2749
2749
|
const allLOs = learningObjectiveManager.getAll();
|
|
2750
2750
|
const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
|
|
2751
2751
|
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2752
2752
|
};
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2753
|
+
MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
|
|
2754
|
+
MetadataService.addLearningObjective = (name, code, subjectCode, description) => learningObjectiveManager.add({ name, code, subjectCode, description });
|
|
2755
|
+
MetadataService.updateLearningObjective = (id, name, code, subjectCode, description) => learningObjectiveManager.update(id, { name, code, subjectCode, description });
|
|
2756
|
+
MetadataService.deleteLearningObjective = (code) => learningObjectiveManager.delete(code);
|
|
2757
2757
|
|
|
2758
2758
|
// src/services/questionBankService.ts
|
|
2759
2759
|
var LocalStorageManager2 = class {
|
package/dist/index.d.cts
CHANGED
|
@@ -329,38 +329,47 @@ declare class KnowledgeCardService {
|
|
|
329
329
|
|
|
330
330
|
declare class MetadataService {
|
|
331
331
|
static getSubjects: () => Subject[];
|
|
332
|
+
static saveSubjects: (items: Subject[]) => void;
|
|
332
333
|
static addSubject: (name: string, code: string) => Subject;
|
|
333
334
|
static updateSubject: (id: string, name: string, code: string) => Subject | null;
|
|
334
335
|
static deleteSubject: (code: string) => boolean;
|
|
335
336
|
static getGradeLevels: () => GradeLevel[];
|
|
337
|
+
static saveGradeLevels: (items: GradeLevel[]) => void;
|
|
336
338
|
static addGradeLevel: (name: string, code: string) => GradeLevel;
|
|
337
339
|
static updateGradeLevel: (id: string, name: string, code: string) => GradeLevel | null;
|
|
338
340
|
static deleteGradeLevel: (code: string) => boolean;
|
|
339
341
|
static getTopics: (subjectCode?: string) => Topic[];
|
|
342
|
+
static saveTopics: (items: Topic[]) => void;
|
|
340
343
|
static addTopic: (name: string, code: string, subjectCode: string) => Topic;
|
|
341
344
|
static updateTopic: (id: string, name: string, code: string, subjectCode: string) => Topic | null;
|
|
342
345
|
static deleteTopic: (code: string) => boolean;
|
|
343
346
|
static getBloomLevels: () => BloomLevelType[];
|
|
347
|
+
static saveBloomLevels: (items: BloomLevelType[]) => void;
|
|
344
348
|
static addBloomLevel: (name: string, code: string, description?: string) => BloomLevelType;
|
|
345
349
|
static updateBloomLevel: (id: string, name: string, code: string, description?: string) => BloomLevelType | null;
|
|
346
350
|
static deleteBloomLevel: (code: string) => boolean;
|
|
347
351
|
static getQuestionTypes: () => QuestionTypeType[];
|
|
352
|
+
static saveQuestionTypes: (items: QuestionTypeType[]) => void;
|
|
348
353
|
static addQuestionType: (name: string, code: string, description?: string) => QuestionTypeType;
|
|
349
354
|
static updateQuestionType: (id: string, name: string, code: string, description?: string) => QuestionTypeType | null;
|
|
350
355
|
static deleteQuestionType: (code: string) => boolean;
|
|
351
356
|
static getCategories: () => Category[];
|
|
357
|
+
static saveCategories: (items: Category[]) => void;
|
|
352
358
|
static addCategory: (name: string, code: string, description?: string) => Category;
|
|
353
359
|
static updateCategory: (id: string, name: string, code: string, description?: string) => Category | null;
|
|
354
360
|
static deleteCategory: (code: string) => boolean;
|
|
355
361
|
static getContexts: () => Context[];
|
|
362
|
+
static saveContexts: (items: Context[]) => void;
|
|
356
363
|
static addContext: (name: string, code: string, description?: string) => Context;
|
|
357
364
|
static updateContext: (id: string, name: string, code: string, description?: string) => Context | null;
|
|
358
365
|
static deleteContext: (code: string) => boolean;
|
|
359
366
|
static getApproaches: () => Approach[];
|
|
367
|
+
static saveApproaches: (items: Approach[]) => void;
|
|
360
368
|
static addApproach: (approachData: Omit<Approach, "id" | "difficulty">) => Approach;
|
|
361
369
|
static updateApproach: (id: string, approachData: Partial<Omit<Approach, "id" | "difficulty">>) => Approach | null;
|
|
362
370
|
static deleteApproach: (code: string) => boolean;
|
|
363
371
|
static getLearningObjectives: (subjectCode?: string) => LearningObjectiveMetadata[];
|
|
372
|
+
static saveLearningObjectives: (items: LearningObjectiveMetadata[]) => void;
|
|
364
373
|
static addLearningObjective: (name: string, code: string, subjectCode?: string, description?: string) => LearningObjectiveMetadata;
|
|
365
374
|
static updateLearningObjective: (id: string, name: string, code: string, subjectCode?: string, description?: string) => LearningObjectiveMetadata | null;
|
|
366
375
|
static deleteLearningObjective: (code: string) => boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -329,38 +329,47 @@ declare class KnowledgeCardService {
|
|
|
329
329
|
|
|
330
330
|
declare class MetadataService {
|
|
331
331
|
static getSubjects: () => Subject[];
|
|
332
|
+
static saveSubjects: (items: Subject[]) => void;
|
|
332
333
|
static addSubject: (name: string, code: string) => Subject;
|
|
333
334
|
static updateSubject: (id: string, name: string, code: string) => Subject | null;
|
|
334
335
|
static deleteSubject: (code: string) => boolean;
|
|
335
336
|
static getGradeLevels: () => GradeLevel[];
|
|
337
|
+
static saveGradeLevels: (items: GradeLevel[]) => void;
|
|
336
338
|
static addGradeLevel: (name: string, code: string) => GradeLevel;
|
|
337
339
|
static updateGradeLevel: (id: string, name: string, code: string) => GradeLevel | null;
|
|
338
340
|
static deleteGradeLevel: (code: string) => boolean;
|
|
339
341
|
static getTopics: (subjectCode?: string) => Topic[];
|
|
342
|
+
static saveTopics: (items: Topic[]) => void;
|
|
340
343
|
static addTopic: (name: string, code: string, subjectCode: string) => Topic;
|
|
341
344
|
static updateTopic: (id: string, name: string, code: string, subjectCode: string) => Topic | null;
|
|
342
345
|
static deleteTopic: (code: string) => boolean;
|
|
343
346
|
static getBloomLevels: () => BloomLevelType[];
|
|
347
|
+
static saveBloomLevels: (items: BloomLevelType[]) => void;
|
|
344
348
|
static addBloomLevel: (name: string, code: string, description?: string) => BloomLevelType;
|
|
345
349
|
static updateBloomLevel: (id: string, name: string, code: string, description?: string) => BloomLevelType | null;
|
|
346
350
|
static deleteBloomLevel: (code: string) => boolean;
|
|
347
351
|
static getQuestionTypes: () => QuestionTypeType[];
|
|
352
|
+
static saveQuestionTypes: (items: QuestionTypeType[]) => void;
|
|
348
353
|
static addQuestionType: (name: string, code: string, description?: string) => QuestionTypeType;
|
|
349
354
|
static updateQuestionType: (id: string, name: string, code: string, description?: string) => QuestionTypeType | null;
|
|
350
355
|
static deleteQuestionType: (code: string) => boolean;
|
|
351
356
|
static getCategories: () => Category[];
|
|
357
|
+
static saveCategories: (items: Category[]) => void;
|
|
352
358
|
static addCategory: (name: string, code: string, description?: string) => Category;
|
|
353
359
|
static updateCategory: (id: string, name: string, code: string, description?: string) => Category | null;
|
|
354
360
|
static deleteCategory: (code: string) => boolean;
|
|
355
361
|
static getContexts: () => Context[];
|
|
362
|
+
static saveContexts: (items: Context[]) => void;
|
|
356
363
|
static addContext: (name: string, code: string, description?: string) => Context;
|
|
357
364
|
static updateContext: (id: string, name: string, code: string, description?: string) => Context | null;
|
|
358
365
|
static deleteContext: (code: string) => boolean;
|
|
359
366
|
static getApproaches: () => Approach[];
|
|
367
|
+
static saveApproaches: (items: Approach[]) => void;
|
|
360
368
|
static addApproach: (approachData: Omit<Approach, "id" | "difficulty">) => Approach;
|
|
361
369
|
static updateApproach: (id: string, approachData: Partial<Omit<Approach, "id" | "difficulty">>) => Approach | null;
|
|
362
370
|
static deleteApproach: (code: string) => boolean;
|
|
363
371
|
static getLearningObjectives: (subjectCode?: string) => LearningObjectiveMetadata[];
|
|
372
|
+
static saveLearningObjectives: (items: LearningObjectiveMetadata[]) => void;
|
|
364
373
|
static addLearningObjective: (name: string, code: string, subjectCode?: string, description?: string) => LearningObjectiveMetadata;
|
|
365
374
|
static updateLearningObjective: (id: string, name: string, code: string, subjectCode?: string, description?: string) => LearningObjectiveMetadata | null;
|
|
366
375
|
static deleteLearningObjective: (code: string) => boolean;
|
package/dist/index.mjs
CHANGED
|
@@ -2625,8 +2625,6 @@ var LocalStorageManager = class {
|
|
|
2625
2625
|
this.saveAll([...items, newItem]);
|
|
2626
2626
|
return newItem;
|
|
2627
2627
|
}
|
|
2628
|
-
// ===== FIX IS HERE =====
|
|
2629
|
-
// Changed the type of 'updates' to allow 'code' to be part of the update object.
|
|
2630
2628
|
update(id, updates) {
|
|
2631
2629
|
const items = this.getAll();
|
|
2632
2630
|
const index = items.findIndex((i) => i.id === id);
|
|
@@ -2639,7 +2637,6 @@ var LocalStorageManager = class {
|
|
|
2639
2637
|
this.saveAll(items);
|
|
2640
2638
|
return updatedItem;
|
|
2641
2639
|
}
|
|
2642
|
-
// =======================
|
|
2643
2640
|
delete(code) {
|
|
2644
2641
|
const items = this.getAll();
|
|
2645
2642
|
const newItems = items.filter((i) => i.code !== code);
|
|
@@ -2673,81 +2670,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
|
|
|
2673
2670
|
return "medium";
|
|
2674
2671
|
}
|
|
2675
2672
|
}
|
|
2676
|
-
var
|
|
2673
|
+
var MetadataService = class {
|
|
2677
2674
|
};
|
|
2678
2675
|
// --- Subject Services ---
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
};
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
};
|
|
2686
|
-
_MetadataService.deleteSubject = (code) => {
|
|
2687
|
-
const topics = _MetadataService.getTopics(code);
|
|
2688
|
-
if (topics.length > 0) {
|
|
2676
|
+
MetadataService.getSubjects = () => subjectManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2677
|
+
MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
|
|
2678
|
+
MetadataService.addSubject = (name, code) => subjectManager.add({ code, name, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
|
|
2679
|
+
MetadataService.updateSubject = (id, name, code) => subjectManager.update(id, { name, code, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
|
|
2680
|
+
MetadataService.deleteSubject = (code) => {
|
|
2681
|
+
if (topicManager.getAll().some((t) => t.subjectCode === code)) {
|
|
2689
2682
|
throw new Error("Cannot delete subject: It is referenced by topics.");
|
|
2690
2683
|
}
|
|
2691
2684
|
return subjectManager.delete(code);
|
|
2692
2685
|
};
|
|
2693
2686
|
// --- GradeLevel Services ---
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2687
|
+
MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2688
|
+
MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
|
|
2689
|
+
MetadataService.addGradeLevel = (name, code) => gradeLevelManager.add({ name, code });
|
|
2690
|
+
MetadataService.updateGradeLevel = (id, name, code) => gradeLevelManager.update(id, { name, code });
|
|
2691
|
+
MetadataService.deleteGradeLevel = (code) => gradeLevelManager.delete(code);
|
|
2698
2692
|
// --- Topic Services ---
|
|
2699
|
-
|
|
2693
|
+
MetadataService.getTopics = (subjectCode) => {
|
|
2700
2694
|
const allTopics = topicManager.getAll();
|
|
2701
2695
|
const filtered = subjectCode ? allTopics.filter((t) => t.subjectCode === subjectCode) : allTopics;
|
|
2702
2696
|
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2703
2697
|
};
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2698
|
+
MetadataService.saveTopics = (items) => topicManager.saveAll(items);
|
|
2699
|
+
MetadataService.addTopic = (name, code, subjectCode) => topicManager.add({ name, code, subjectCode });
|
|
2700
|
+
MetadataService.updateTopic = (id, name, code, subjectCode) => topicManager.update(id, { name, code, subjectCode });
|
|
2701
|
+
MetadataService.deleteTopic = (code) => topicManager.delete(code);
|
|
2707
2702
|
// --- BloomLevel Services ---
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2703
|
+
MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2704
|
+
MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
|
|
2705
|
+
MetadataService.addBloomLevel = (name, code, description) => bloomLevelManager.add({ name, code, description });
|
|
2706
|
+
MetadataService.updateBloomLevel = (id, name, code, description) => bloomLevelManager.update(id, { name, code, description });
|
|
2707
|
+
MetadataService.deleteBloomLevel = (code) => bloomLevelManager.delete(code);
|
|
2712
2708
|
// --- QuestionType Services ---
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2709
|
+
MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2710
|
+
MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
|
|
2711
|
+
MetadataService.addQuestionType = (name, code, description) => questionTypeManager.add({ name, code, description });
|
|
2712
|
+
MetadataService.updateQuestionType = (id, name, code, description) => questionTypeManager.update(id, { name, code, description });
|
|
2713
|
+
MetadataService.deleteQuestionType = (code) => questionTypeManager.delete(code);
|
|
2717
2714
|
// --- Category Services ---
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2715
|
+
MetadataService.getCategories = () => categoryManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2716
|
+
MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
|
|
2717
|
+
MetadataService.addCategory = (name, code, description) => categoryManager.add({ name, code, description });
|
|
2718
|
+
MetadataService.updateCategory = (id, name, code, description) => categoryManager.update(id, { name, code, description });
|
|
2719
|
+
MetadataService.deleteCategory = (code) => categoryManager.delete(code);
|
|
2722
2720
|
// --- Context Services ---
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2721
|
+
MetadataService.getContexts = () => contextManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
|
|
2722
|
+
MetadataService.saveContexts = (items) => contextManager.saveAll(items);
|
|
2723
|
+
MetadataService.addContext = (name, code, description) => contextManager.add({ name, code, description });
|
|
2724
|
+
MetadataService.updateContext = (id, name, code, description) => contextManager.update(id, { name, code, description });
|
|
2725
|
+
MetadataService.deleteContext = (code) => contextManager.delete(code);
|
|
2727
2726
|
// --- Approach Services ---
|
|
2728
|
-
|
|
2729
|
-
|
|
2727
|
+
MetadataService.getApproaches = () => approachManager.getAll().sort((a, b) => a.code.localeCompare(b.code));
|
|
2728
|
+
MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
|
|
2729
|
+
MetadataService.addApproach = (approachData) => {
|
|
2730
2730
|
const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
|
|
2731
2731
|
return approachManager.add({ ...approachData, difficulty });
|
|
2732
2732
|
};
|
|
2733
|
-
|
|
2733
|
+
MetadataService.updateApproach = (id, approachData) => {
|
|
2734
2734
|
const updates = { ...approachData };
|
|
2735
2735
|
if (approachData.rawDifficulty) {
|
|
2736
2736
|
updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
|
|
2737
2737
|
}
|
|
2738
2738
|
return approachManager.update(id, updates);
|
|
2739
2739
|
};
|
|
2740
|
-
|
|
2740
|
+
MetadataService.deleteApproach = (code) => approachManager.delete(code);
|
|
2741
2741
|
// --- LearningObjective Services ---
|
|
2742
|
-
|
|
2742
|
+
MetadataService.getLearningObjectives = (subjectCode) => {
|
|
2743
2743
|
const allLOs = learningObjectiveManager.getAll();
|
|
2744
2744
|
const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
|
|
2745
2745
|
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2746
2746
|
};
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2747
|
+
MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
|
|
2748
|
+
MetadataService.addLearningObjective = (name, code, subjectCode, description) => learningObjectiveManager.add({ name, code, subjectCode, description });
|
|
2749
|
+
MetadataService.updateLearningObjective = (id, name, code, subjectCode, description) => learningObjectiveManager.update(id, { name, code, subjectCode, description });
|
|
2750
|
+
MetadataService.deleteLearningObjective = (code) => learningObjectiveManager.delete(code);
|
|
2751
2751
|
|
|
2752
2752
|
// src/services/questionBankService.ts
|
|
2753
2753
|
var LocalStorageManager2 = class {
|