@thanh01.pmt/interactive-quiz-kit 1.0.55 → 1.0.57

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.
@@ -4671,8 +4671,6 @@ var LocalStorageManager = class {
4671
4671
  this.saveAll([...items, newItem]);
4672
4672
  return newItem;
4673
4673
  }
4674
- // ===== FIX IS HERE =====
4675
- // Changed the type of 'updates' to allow 'code' to be part of the update object.
4676
4674
  update(id2, updates) {
4677
4675
  const items = this.getAll();
4678
4676
  const index3 = items.findIndex((i) => i.id === id2);
@@ -4685,7 +4683,6 @@ var LocalStorageManager = class {
4685
4683
  this.saveAll(items);
4686
4684
  return updatedItem;
4687
4685
  }
4688
- // =======================
4689
4686
  delete(code4) {
4690
4687
  const items = this.getAll();
4691
4688
  const newItems = items.filter((i) => i.code !== code4);
@@ -4719,81 +4716,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
4719
4716
  return "medium";
4720
4717
  }
4721
4718
  }
4722
- var _MetadataService = class _MetadataService {
4719
+ var MetadataService = class {
4723
4720
  };
4724
4721
  // --- Subject Services ---
4725
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4726
- _MetadataService.addSubject = (name3, code4) => {
4727
- return subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4728
- };
4729
- _MetadataService.updateSubject = (id2, name3, code4) => {
4730
- return subjectManager.update(id2, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4731
- };
4732
- _MetadataService.deleteSubject = (code4) => {
4733
- const topics = _MetadataService.getTopics(code4);
4734
- if (topics.length > 0) {
4722
+ MetadataService.getSubjects = () => subjectManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4723
+ MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
4724
+ MetadataService.addSubject = (name3, code4) => subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4725
+ MetadataService.updateSubject = (id2, name3, code4) => subjectManager.update(id2, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4726
+ MetadataService.deleteSubject = (code4) => {
4727
+ if (topicManager.getAll().some((t2) => t2.subjectCode === code4)) {
4735
4728
  throw new Error("Cannot delete subject: It is referenced by topics.");
4736
4729
  }
4737
4730
  return subjectManager.delete(code4);
4738
4731
  };
4739
4732
  // --- GradeLevel Services ---
4740
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4741
- _MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
4742
- _MetadataService.updateGradeLevel = (id2, name3, code4) => gradeLevelManager.update(id2, { name: name3, code: code4 });
4743
- _MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
4733
+ MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4734
+ MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
4735
+ MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
4736
+ MetadataService.updateGradeLevel = (id2, name3, code4) => gradeLevelManager.update(id2, { name: name3, code: code4 });
4737
+ MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
4744
4738
  // --- Topic Services ---
4745
- _MetadataService.getTopics = (subjectCode) => {
4739
+ MetadataService.getTopics = (subjectCode) => {
4746
4740
  const allTopics = topicManager.getAll();
4747
4741
  const filtered = subjectCode ? allTopics.filter((t2) => t2.subjectCode === subjectCode) : allTopics;
4748
4742
  return filtered.sort((a2, b) => a2.name.localeCompare(b.name));
4749
4743
  };
4750
- _MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
4751
- _MetadataService.updateTopic = (id2, name3, code4, subjectCode) => topicManager.update(id2, { name: name3, code: code4, subjectCode });
4752
- _MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
4744
+ MetadataService.saveTopics = (items) => topicManager.saveAll(items);
4745
+ MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
4746
+ MetadataService.updateTopic = (id2, name3, code4, subjectCode) => topicManager.update(id2, { name: name3, code: code4, subjectCode });
4747
+ MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
4753
4748
  // --- BloomLevel Services ---
4754
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4755
- _MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
4756
- _MetadataService.updateBloomLevel = (id2, name3, code4, description) => bloomLevelManager.update(id2, { name: name3, code: code4, description });
4757
- _MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
4749
+ MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4750
+ MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
4751
+ MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
4752
+ MetadataService.updateBloomLevel = (id2, name3, code4, description) => bloomLevelManager.update(id2, { name: name3, code: code4, description });
4753
+ MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
4758
4754
  // --- QuestionType Services ---
4759
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4760
- _MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
4761
- _MetadataService.updateQuestionType = (id2, name3, code4, description) => questionTypeManager.update(id2, { name: name3, code: code4, description });
4762
- _MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
4755
+ MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4756
+ MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
4757
+ MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
4758
+ MetadataService.updateQuestionType = (id2, name3, code4, description) => questionTypeManager.update(id2, { name: name3, code: code4, description });
4759
+ MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
4763
4760
  // --- Category Services ---
4764
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4765
- _MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
4766
- _MetadataService.updateCategory = (id2, name3, code4, description) => categoryManager.update(id2, { name: name3, code: code4, description });
4767
- _MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
4761
+ MetadataService.getCategories = () => categoryManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4762
+ MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
4763
+ MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
4764
+ MetadataService.updateCategory = (id2, name3, code4, description) => categoryManager.update(id2, { name: name3, code: code4, description });
4765
+ MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
4768
4766
  // --- Context Services ---
4769
- _MetadataService.getContexts = () => contextManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4770
- _MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
4771
- _MetadataService.updateContext = (id2, name3, code4, description) => contextManager.update(id2, { name: name3, code: code4, description });
4772
- _MetadataService.deleteContext = (code4) => contextManager.delete(code4);
4767
+ MetadataService.getContexts = () => contextManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4768
+ MetadataService.saveContexts = (items) => contextManager.saveAll(items);
4769
+ MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
4770
+ MetadataService.updateContext = (id2, name3, code4, description) => contextManager.update(id2, { name: name3, code: code4, description });
4771
+ MetadataService.deleteContext = (code4) => contextManager.delete(code4);
4773
4772
  // --- Approach Services ---
4774
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a2, b) => a2.code.localeCompare(b.code));
4775
- _MetadataService.addApproach = (approachData) => {
4773
+ MetadataService.getApproaches = () => approachManager.getAll().sort((a2, b) => a2.code.localeCompare(b.code));
4774
+ MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
4775
+ MetadataService.addApproach = (approachData) => {
4776
4776
  const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
4777
4777
  return approachManager.add({ ...approachData, difficulty });
4778
4778
  };
4779
- _MetadataService.updateApproach = (id2, approachData) => {
4779
+ MetadataService.updateApproach = (id2, approachData) => {
4780
4780
  const updates = { ...approachData };
4781
4781
  if (approachData.rawDifficulty) {
4782
4782
  updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
4783
4783
  }
4784
4784
  return approachManager.update(id2, updates);
4785
4785
  };
4786
- _MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
4786
+ MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
4787
4787
  // --- LearningObjective Services ---
4788
- _MetadataService.getLearningObjectives = (subjectCode) => {
4788
+ MetadataService.getLearningObjectives = (subjectCode) => {
4789
4789
  const allLOs = learningObjectiveManager.getAll();
4790
4790
  const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
4791
4791
  return filtered.sort((a2, b) => a2.name.localeCompare(b.name));
4792
4792
  };
4793
- _MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
4794
- _MetadataService.updateLearningObjective = (id2, name3, code4, subjectCode, description) => learningObjectiveManager.update(id2, { name: name3, code: code4, subjectCode, description });
4795
- _MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
4796
- var MetadataService = _MetadataService;
4793
+ MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
4794
+ MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
4795
+ MetadataService.updateLearningObjective = (id2, name3, code4, subjectCode, description) => learningObjectiveManager.update(id2, { name: name3, code: code4, subjectCode, description });
4796
+ MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
4797
4797
 
4798
4798
  // src/services/questionBankService.ts
4799
4799
  init_react_shim();
@@ -4645,8 +4645,6 @@ var LocalStorageManager = class {
4645
4645
  this.saveAll([...items, newItem]);
4646
4646
  return newItem;
4647
4647
  }
4648
- // ===== FIX IS HERE =====
4649
- // Changed the type of 'updates' to allow 'code' to be part of the update object.
4650
4648
  update(id2, updates) {
4651
4649
  const items = this.getAll();
4652
4650
  const index3 = items.findIndex((i) => i.id === id2);
@@ -4659,7 +4657,6 @@ var LocalStorageManager = class {
4659
4657
  this.saveAll(items);
4660
4658
  return updatedItem;
4661
4659
  }
4662
- // =======================
4663
4660
  delete(code4) {
4664
4661
  const items = this.getAll();
4665
4662
  const newItems = items.filter((i) => i.code !== code4);
@@ -4693,81 +4690,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
4693
4690
  return "medium";
4694
4691
  }
4695
4692
  }
4696
- var _MetadataService = class _MetadataService {
4693
+ var MetadataService = class {
4697
4694
  };
4698
4695
  // --- Subject Services ---
4699
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4700
- _MetadataService.addSubject = (name3, code4) => {
4701
- return subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4702
- };
4703
- _MetadataService.updateSubject = (id2, name3, code4) => {
4704
- return subjectManager.update(id2, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4705
- };
4706
- _MetadataService.deleteSubject = (code4) => {
4707
- const topics = _MetadataService.getTopics(code4);
4708
- if (topics.length > 0) {
4696
+ MetadataService.getSubjects = () => subjectManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4697
+ MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
4698
+ MetadataService.addSubject = (name3, code4) => subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4699
+ MetadataService.updateSubject = (id2, name3, code4) => subjectManager.update(id2, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
4700
+ MetadataService.deleteSubject = (code4) => {
4701
+ if (topicManager.getAll().some((t2) => t2.subjectCode === code4)) {
4709
4702
  throw new Error("Cannot delete subject: It is referenced by topics.");
4710
4703
  }
4711
4704
  return subjectManager.delete(code4);
4712
4705
  };
4713
4706
  // --- GradeLevel Services ---
4714
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4715
- _MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
4716
- _MetadataService.updateGradeLevel = (id2, name3, code4) => gradeLevelManager.update(id2, { name: name3, code: code4 });
4717
- _MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
4707
+ MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4708
+ MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
4709
+ MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
4710
+ MetadataService.updateGradeLevel = (id2, name3, code4) => gradeLevelManager.update(id2, { name: name3, code: code4 });
4711
+ MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
4718
4712
  // --- Topic Services ---
4719
- _MetadataService.getTopics = (subjectCode) => {
4713
+ MetadataService.getTopics = (subjectCode) => {
4720
4714
  const allTopics = topicManager.getAll();
4721
4715
  const filtered = subjectCode ? allTopics.filter((t2) => t2.subjectCode === subjectCode) : allTopics;
4722
4716
  return filtered.sort((a2, b) => a2.name.localeCompare(b.name));
4723
4717
  };
4724
- _MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
4725
- _MetadataService.updateTopic = (id2, name3, code4, subjectCode) => topicManager.update(id2, { name: name3, code: code4, subjectCode });
4726
- _MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
4718
+ MetadataService.saveTopics = (items) => topicManager.saveAll(items);
4719
+ MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
4720
+ MetadataService.updateTopic = (id2, name3, code4, subjectCode) => topicManager.update(id2, { name: name3, code: code4, subjectCode });
4721
+ MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
4727
4722
  // --- BloomLevel Services ---
4728
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4729
- _MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
4730
- _MetadataService.updateBloomLevel = (id2, name3, code4, description) => bloomLevelManager.update(id2, { name: name3, code: code4, description });
4731
- _MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
4723
+ MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4724
+ MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
4725
+ MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
4726
+ MetadataService.updateBloomLevel = (id2, name3, code4, description) => bloomLevelManager.update(id2, { name: name3, code: code4, description });
4727
+ MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
4732
4728
  // --- QuestionType Services ---
4733
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4734
- _MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
4735
- _MetadataService.updateQuestionType = (id2, name3, code4, description) => questionTypeManager.update(id2, { name: name3, code: code4, description });
4736
- _MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
4729
+ MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4730
+ MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
4731
+ MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
4732
+ MetadataService.updateQuestionType = (id2, name3, code4, description) => questionTypeManager.update(id2, { name: name3, code: code4, description });
4733
+ MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
4737
4734
  // --- Category Services ---
4738
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4739
- _MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
4740
- _MetadataService.updateCategory = (id2, name3, code4, description) => categoryManager.update(id2, { name: name3, code: code4, description });
4741
- _MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
4735
+ MetadataService.getCategories = () => categoryManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4736
+ MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
4737
+ MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
4738
+ MetadataService.updateCategory = (id2, name3, code4, description) => categoryManager.update(id2, { name: name3, code: code4, description });
4739
+ MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
4742
4740
  // --- Context Services ---
4743
- _MetadataService.getContexts = () => contextManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4744
- _MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
4745
- _MetadataService.updateContext = (id2, name3, code4, description) => contextManager.update(id2, { name: name3, code: code4, description });
4746
- _MetadataService.deleteContext = (code4) => contextManager.delete(code4);
4741
+ MetadataService.getContexts = () => contextManager.getAll().sort((a2, b) => a2.name.localeCompare(b.name));
4742
+ MetadataService.saveContexts = (items) => contextManager.saveAll(items);
4743
+ MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
4744
+ MetadataService.updateContext = (id2, name3, code4, description) => contextManager.update(id2, { name: name3, code: code4, description });
4745
+ MetadataService.deleteContext = (code4) => contextManager.delete(code4);
4747
4746
  // --- Approach Services ---
4748
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a2, b) => a2.code.localeCompare(b.code));
4749
- _MetadataService.addApproach = (approachData) => {
4747
+ MetadataService.getApproaches = () => approachManager.getAll().sort((a2, b) => a2.code.localeCompare(b.code));
4748
+ MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
4749
+ MetadataService.addApproach = (approachData) => {
4750
4750
  const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
4751
4751
  return approachManager.add({ ...approachData, difficulty });
4752
4752
  };
4753
- _MetadataService.updateApproach = (id2, approachData) => {
4753
+ MetadataService.updateApproach = (id2, approachData) => {
4754
4754
  const updates = { ...approachData };
4755
4755
  if (approachData.rawDifficulty) {
4756
4756
  updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
4757
4757
  }
4758
4758
  return approachManager.update(id2, updates);
4759
4759
  };
4760
- _MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
4760
+ MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
4761
4761
  // --- LearningObjective Services ---
4762
- _MetadataService.getLearningObjectives = (subjectCode) => {
4762
+ MetadataService.getLearningObjectives = (subjectCode) => {
4763
4763
  const allLOs = learningObjectiveManager.getAll();
4764
4764
  const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
4765
4765
  return filtered.sort((a2, b) => a2.name.localeCompare(b.name));
4766
4766
  };
4767
- _MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
4768
- _MetadataService.updateLearningObjective = (id2, name3, code4, subjectCode, description) => learningObjectiveManager.update(id2, { name: name3, code: code4, subjectCode, description });
4769
- _MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
4770
- var MetadataService = _MetadataService;
4767
+ MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
4768
+ MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
4769
+ MetadataService.updateLearningObjective = (id2, name3, code4, subjectCode, description) => learningObjectiveManager.update(id2, { name: name3, code: code4, subjectCode, description });
4770
+ MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
4771
4771
 
4772
4772
  // src/services/questionBankService.ts
4773
4773
  init_react_shim();
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 _MetadataService = class _MetadataService {
2679
+ var MetadataService = class {
2683
2680
  };
2684
2681
  // --- Subject Services ---
2685
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2686
- _MetadataService.addSubject = (name, code) => {
2687
- return subjectManager.add({ code, name, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
2688
- };
2689
- _MetadataService.updateSubject = (id, name, code) => {
2690
- return subjectManager.update(id, { name, code, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
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
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2701
- _MetadataService.addGradeLevel = (name, code) => gradeLevelManager.add({ name, code });
2702
- _MetadataService.updateGradeLevel = (id, name, code) => gradeLevelManager.update(id, { name, code });
2703
- _MetadataService.deleteGradeLevel = (code) => gradeLevelManager.delete(code);
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
- _MetadataService.getTopics = (subjectCode) => {
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
- _MetadataService.addTopic = (name, code, subjectCode) => topicManager.add({ name, code, subjectCode });
2711
- _MetadataService.updateTopic = (id, name, code, subjectCode) => topicManager.update(id, { name, code, subjectCode });
2712
- _MetadataService.deleteTopic = (code) => topicManager.delete(code);
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
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2715
- _MetadataService.addBloomLevel = (name, code, description) => bloomLevelManager.add({ name, code, description });
2716
- _MetadataService.updateBloomLevel = (id, name, code, description) => bloomLevelManager.update(id, { name, code, description });
2717
- _MetadataService.deleteBloomLevel = (code) => bloomLevelManager.delete(code);
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
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2720
- _MetadataService.addQuestionType = (name, code, description) => questionTypeManager.add({ name, code, description });
2721
- _MetadataService.updateQuestionType = (id, name, code, description) => questionTypeManager.update(id, { name, code, description });
2722
- _MetadataService.deleteQuestionType = (code) => questionTypeManager.delete(code);
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
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2725
- _MetadataService.addCategory = (name, code, description) => categoryManager.add({ name, code, description });
2726
- _MetadataService.updateCategory = (id, name, code, description) => categoryManager.update(id, { name, code, description });
2727
- _MetadataService.deleteCategory = (code) => categoryManager.delete(code);
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
- _MetadataService.getContexts = () => contextManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2730
- _MetadataService.addContext = (name, code, description) => contextManager.add({ name, code, description });
2731
- _MetadataService.updateContext = (id, name, code, description) => contextManager.update(id, { name, code, description });
2732
- _MetadataService.deleteContext = (code) => contextManager.delete(code);
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
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a, b) => a.code.localeCompare(b.code));
2735
- _MetadataService.addApproach = (approachData) => {
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
- _MetadataService.updateApproach = (id, approachData) => {
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
- _MetadataService.deleteApproach = (code) => approachManager.delete(code);
2746
+ MetadataService.deleteApproach = (code) => approachManager.delete(code);
2747
2747
  // --- LearningObjective Services ---
2748
- _MetadataService.getLearningObjectives = (subjectCode) => {
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
- _MetadataService.addLearningObjective = (name, code, subjectCode, description) => learningObjectiveManager.add({ name, code, subjectCode, description });
2754
- _MetadataService.updateLearningObjective = (id, name, code, subjectCode, description) => learningObjectiveManager.update(id, { name, code, subjectCode, description });
2755
- _MetadataService.deleteLearningObjective = (code) => learningObjectiveManager.delete(code);
2756
- var MetadataService = _MetadataService;
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 _MetadataService = class _MetadataService {
2673
+ var MetadataService = class {
2677
2674
  };
2678
2675
  // --- Subject Services ---
2679
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2680
- _MetadataService.addSubject = (name, code) => {
2681
- return subjectManager.add({ code, name, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
2682
- };
2683
- _MetadataService.updateSubject = (id, name, code) => {
2684
- return subjectManager.update(id, { name, code, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
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
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
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);
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
- _MetadataService.getTopics = (subjectCode) => {
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
- _MetadataService.addTopic = (name, code, subjectCode) => topicManager.add({ name, code, subjectCode });
2705
- _MetadataService.updateTopic = (id, name, code, subjectCode) => topicManager.update(id, { name, code, subjectCode });
2706
- _MetadataService.deleteTopic = (code) => topicManager.delete(code);
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
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2709
- _MetadataService.addBloomLevel = (name, code, description) => bloomLevelManager.add({ name, code, description });
2710
- _MetadataService.updateBloomLevel = (id, name, code, description) => bloomLevelManager.update(id, { name, code, description });
2711
- _MetadataService.deleteBloomLevel = (code) => bloomLevelManager.delete(code);
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
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2714
- _MetadataService.addQuestionType = (name, code, description) => questionTypeManager.add({ name, code, description });
2715
- _MetadataService.updateQuestionType = (id, name, code, description) => questionTypeManager.update(id, { name, code, description });
2716
- _MetadataService.deleteQuestionType = (code) => questionTypeManager.delete(code);
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
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2719
- _MetadataService.addCategory = (name, code, description) => categoryManager.add({ name, code, description });
2720
- _MetadataService.updateCategory = (id, name, code, description) => categoryManager.update(id, { name, code, description });
2721
- _MetadataService.deleteCategory = (code) => categoryManager.delete(code);
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
- _MetadataService.getContexts = () => contextManager.getAll().sort((a, b) => a.name.localeCompare(b.name));
2724
- _MetadataService.addContext = (name, code, description) => contextManager.add({ name, code, description });
2725
- _MetadataService.updateContext = (id, name, code, description) => contextManager.update(id, { name, code, description });
2726
- _MetadataService.deleteContext = (code) => contextManager.delete(code);
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
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a, b) => a.code.localeCompare(b.code));
2729
- _MetadataService.addApproach = (approachData) => {
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
- _MetadataService.updateApproach = (id, approachData) => {
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
- _MetadataService.deleteApproach = (code) => approachManager.delete(code);
2740
+ MetadataService.deleteApproach = (code) => approachManager.delete(code);
2741
2741
  // --- LearningObjective Services ---
2742
- _MetadataService.getLearningObjectives = (subjectCode) => {
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
- _MetadataService.addLearningObjective = (name, code, subjectCode, description) => learningObjectiveManager.add({ name, code, subjectCode, description });
2748
- _MetadataService.updateLearningObjective = (id, name, code, subjectCode, description) => learningObjectiveManager.update(id, { name, code, subjectCode, description });
2749
- _MetadataService.deleteLearningObjective = (code) => learningObjectiveManager.delete(code);
2750
- var MetadataService = _MetadataService;
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 {
package/dist/react-ui.cjs CHANGED
@@ -133291,8 +133291,6 @@ var LocalStorageManager = class {
133291
133291
  this.saveAll([...items, newItem]);
133292
133292
  return newItem;
133293
133293
  }
133294
- // ===== FIX IS HERE =====
133295
- // Changed the type of 'updates' to allow 'code' to be part of the update object.
133296
133294
  update(id3, updates) {
133297
133295
  const items = this.getAll();
133298
133296
  const index3 = items.findIndex((i2) => i2.id === id3);
@@ -133305,7 +133303,6 @@ var LocalStorageManager = class {
133305
133303
  this.saveAll(items);
133306
133304
  return updatedItem;
133307
133305
  }
133308
- // =======================
133309
133306
  delete(code4) {
133310
133307
  const items = this.getAll();
133311
133308
  const newItems = items.filter((i2) => i2.code !== code4);
@@ -133339,81 +133336,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
133339
133336
  return "medium";
133340
133337
  }
133341
133338
  }
133342
- var _MetadataService = class _MetadataService {
133339
+ var MetadataService = class {
133343
133340
  };
133344
133341
  // --- Subject Services ---
133345
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133346
- _MetadataService.addSubject = (name3, code4) => {
133347
- return subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133348
- };
133349
- _MetadataService.updateSubject = (id3, name3, code4) => {
133350
- return subjectManager.update(id3, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133351
- };
133352
- _MetadataService.deleteSubject = (code4) => {
133353
- const topics = _MetadataService.getTopics(code4);
133354
- if (topics.length > 0) {
133342
+ MetadataService.getSubjects = () => subjectManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133343
+ MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
133344
+ MetadataService.addSubject = (name3, code4) => subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133345
+ MetadataService.updateSubject = (id3, name3, code4) => subjectManager.update(id3, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133346
+ MetadataService.deleteSubject = (code4) => {
133347
+ if (topicManager.getAll().some((t4) => t4.subjectCode === code4)) {
133355
133348
  throw new Error("Cannot delete subject: It is referenced by topics.");
133356
133349
  }
133357
133350
  return subjectManager.delete(code4);
133358
133351
  };
133359
133352
  // --- GradeLevel Services ---
133360
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133361
- _MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
133362
- _MetadataService.updateGradeLevel = (id3, name3, code4) => gradeLevelManager.update(id3, { name: name3, code: code4 });
133363
- _MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
133353
+ MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133354
+ MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
133355
+ MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
133356
+ MetadataService.updateGradeLevel = (id3, name3, code4) => gradeLevelManager.update(id3, { name: name3, code: code4 });
133357
+ MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
133364
133358
  // --- Topic Services ---
133365
- _MetadataService.getTopics = (subjectCode) => {
133359
+ MetadataService.getTopics = (subjectCode) => {
133366
133360
  const allTopics = topicManager.getAll();
133367
133361
  const filtered = subjectCode ? allTopics.filter((t4) => t4.subjectCode === subjectCode) : allTopics;
133368
133362
  return filtered.sort((a4, b2) => a4.name.localeCompare(b2.name));
133369
133363
  };
133370
- _MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
133371
- _MetadataService.updateTopic = (id3, name3, code4, subjectCode) => topicManager.update(id3, { name: name3, code: code4, subjectCode });
133372
- _MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
133364
+ MetadataService.saveTopics = (items) => topicManager.saveAll(items);
133365
+ MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
133366
+ MetadataService.updateTopic = (id3, name3, code4, subjectCode) => topicManager.update(id3, { name: name3, code: code4, subjectCode });
133367
+ MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
133373
133368
  // --- BloomLevel Services ---
133374
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133375
- _MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
133376
- _MetadataService.updateBloomLevel = (id3, name3, code4, description) => bloomLevelManager.update(id3, { name: name3, code: code4, description });
133377
- _MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
133369
+ MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133370
+ MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
133371
+ MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
133372
+ MetadataService.updateBloomLevel = (id3, name3, code4, description) => bloomLevelManager.update(id3, { name: name3, code: code4, description });
133373
+ MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
133378
133374
  // --- QuestionType Services ---
133379
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133380
- _MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
133381
- _MetadataService.updateQuestionType = (id3, name3, code4, description) => questionTypeManager.update(id3, { name: name3, code: code4, description });
133382
- _MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
133375
+ MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133376
+ MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
133377
+ MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
133378
+ MetadataService.updateQuestionType = (id3, name3, code4, description) => questionTypeManager.update(id3, { name: name3, code: code4, description });
133379
+ MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
133383
133380
  // --- Category Services ---
133384
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133385
- _MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
133386
- _MetadataService.updateCategory = (id3, name3, code4, description) => categoryManager.update(id3, { name: name3, code: code4, description });
133387
- _MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
133381
+ MetadataService.getCategories = () => categoryManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133382
+ MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
133383
+ MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
133384
+ MetadataService.updateCategory = (id3, name3, code4, description) => categoryManager.update(id3, { name: name3, code: code4, description });
133385
+ MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
133388
133386
  // --- Context Services ---
133389
- _MetadataService.getContexts = () => contextManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133390
- _MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
133391
- _MetadataService.updateContext = (id3, name3, code4, description) => contextManager.update(id3, { name: name3, code: code4, description });
133392
- _MetadataService.deleteContext = (code4) => contextManager.delete(code4);
133387
+ MetadataService.getContexts = () => contextManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133388
+ MetadataService.saveContexts = (items) => contextManager.saveAll(items);
133389
+ MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
133390
+ MetadataService.updateContext = (id3, name3, code4, description) => contextManager.update(id3, { name: name3, code: code4, description });
133391
+ MetadataService.deleteContext = (code4) => contextManager.delete(code4);
133393
133392
  // --- Approach Services ---
133394
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a4, b2) => a4.code.localeCompare(b2.code));
133395
- _MetadataService.addApproach = (approachData) => {
133393
+ MetadataService.getApproaches = () => approachManager.getAll().sort((a4, b2) => a4.code.localeCompare(b2.code));
133394
+ MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
133395
+ MetadataService.addApproach = (approachData) => {
133396
133396
  const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
133397
133397
  return approachManager.add({ ...approachData, difficulty });
133398
133398
  };
133399
- _MetadataService.updateApproach = (id3, approachData) => {
133399
+ MetadataService.updateApproach = (id3, approachData) => {
133400
133400
  const updates = { ...approachData };
133401
133401
  if (approachData.rawDifficulty) {
133402
133402
  updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
133403
133403
  }
133404
133404
  return approachManager.update(id3, updates);
133405
133405
  };
133406
- _MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
133406
+ MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
133407
133407
  // --- LearningObjective Services ---
133408
- _MetadataService.getLearningObjectives = (subjectCode) => {
133408
+ MetadataService.getLearningObjectives = (subjectCode) => {
133409
133409
  const allLOs = learningObjectiveManager.getAll();
133410
133410
  const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
133411
133411
  return filtered.sort((a4, b2) => a4.name.localeCompare(b2.name));
133412
133412
  };
133413
- _MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
133414
- _MetadataService.updateLearningObjective = (id3, name3, code4, subjectCode, description) => learningObjectiveManager.update(id3, { name: name3, code: code4, subjectCode, description });
133415
- _MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
133416
- var MetadataService = _MetadataService;
133413
+ MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
133414
+ MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
133415
+ MetadataService.updateLearningObjective = (id3, name3, code4, subjectCode, description) => learningObjectiveManager.update(id3, { name: name3, code: code4, subjectCode, description });
133416
+ MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
133417
133417
 
133418
133418
  // node_modules/date-fns/addDays.mjs
133419
133419
  init_react_shim();
package/dist/react-ui.mjs CHANGED
@@ -133264,8 +133264,6 @@ var LocalStorageManager = class {
133264
133264
  this.saveAll([...items, newItem]);
133265
133265
  return newItem;
133266
133266
  }
133267
- // ===== FIX IS HERE =====
133268
- // Changed the type of 'updates' to allow 'code' to be part of the update object.
133269
133267
  update(id3, updates) {
133270
133268
  const items = this.getAll();
133271
133269
  const index3 = items.findIndex((i2) => i2.id === id3);
@@ -133278,7 +133276,6 @@ var LocalStorageManager = class {
133278
133276
  this.saveAll(items);
133279
133277
  return updatedItem;
133280
133278
  }
133281
- // =======================
133282
133279
  delete(code4) {
133283
133280
  const items = this.getAll();
133284
133281
  const newItems = items.filter((i2) => i2.code !== code4);
@@ -133312,81 +133309,84 @@ function mapRawDifficultyToStandard(rawDifficulty) {
133312
133309
  return "medium";
133313
133310
  }
133314
133311
  }
133315
- var _MetadataService = class _MetadataService {
133312
+ var MetadataService = class {
133316
133313
  };
133317
133314
  // --- Subject Services ---
133318
- _MetadataService.getSubjects = () => subjectManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133319
- _MetadataService.addSubject = (name3, code4) => {
133320
- return subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133321
- };
133322
- _MetadataService.updateSubject = (id3, name3, code4) => {
133323
- return subjectManager.update(id3, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133324
- };
133325
- _MetadataService.deleteSubject = (code4) => {
133326
- const topics = _MetadataService.getTopics(code4);
133327
- if (topics.length > 0) {
133315
+ MetadataService.getSubjects = () => subjectManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133316
+ MetadataService.saveSubjects = (items) => subjectManager.saveAll(items);
133317
+ MetadataService.addSubject = (name3, code4) => subjectManager.add({ code: code4, name: name3, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133318
+ MetadataService.updateSubject = (id3, name3, code4) => subjectManager.update(id3, { name: name3, code: code4, updatedAt: (/* @__PURE__ */ new Date()).toISOString() });
133319
+ MetadataService.deleteSubject = (code4) => {
133320
+ if (topicManager.getAll().some((t4) => t4.subjectCode === code4)) {
133328
133321
  throw new Error("Cannot delete subject: It is referenced by topics.");
133329
133322
  }
133330
133323
  return subjectManager.delete(code4);
133331
133324
  };
133332
133325
  // --- GradeLevel Services ---
133333
- _MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133334
- _MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
133335
- _MetadataService.updateGradeLevel = (id3, name3, code4) => gradeLevelManager.update(id3, { name: name3, code: code4 });
133336
- _MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
133326
+ MetadataService.getGradeLevels = () => gradeLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133327
+ MetadataService.saveGradeLevels = (items) => gradeLevelManager.saveAll(items);
133328
+ MetadataService.addGradeLevel = (name3, code4) => gradeLevelManager.add({ name: name3, code: code4 });
133329
+ MetadataService.updateGradeLevel = (id3, name3, code4) => gradeLevelManager.update(id3, { name: name3, code: code4 });
133330
+ MetadataService.deleteGradeLevel = (code4) => gradeLevelManager.delete(code4);
133337
133331
  // --- Topic Services ---
133338
- _MetadataService.getTopics = (subjectCode) => {
133332
+ MetadataService.getTopics = (subjectCode) => {
133339
133333
  const allTopics = topicManager.getAll();
133340
133334
  const filtered = subjectCode ? allTopics.filter((t4) => t4.subjectCode === subjectCode) : allTopics;
133341
133335
  return filtered.sort((a4, b2) => a4.name.localeCompare(b2.name));
133342
133336
  };
133343
- _MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
133344
- _MetadataService.updateTopic = (id3, name3, code4, subjectCode) => topicManager.update(id3, { name: name3, code: code4, subjectCode });
133345
- _MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
133337
+ MetadataService.saveTopics = (items) => topicManager.saveAll(items);
133338
+ MetadataService.addTopic = (name3, code4, subjectCode) => topicManager.add({ name: name3, code: code4, subjectCode });
133339
+ MetadataService.updateTopic = (id3, name3, code4, subjectCode) => topicManager.update(id3, { name: name3, code: code4, subjectCode });
133340
+ MetadataService.deleteTopic = (code4) => topicManager.delete(code4);
133346
133341
  // --- BloomLevel Services ---
133347
- _MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133348
- _MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
133349
- _MetadataService.updateBloomLevel = (id3, name3, code4, description) => bloomLevelManager.update(id3, { name: name3, code: code4, description });
133350
- _MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
133342
+ MetadataService.getBloomLevels = () => bloomLevelManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133343
+ MetadataService.saveBloomLevels = (items) => bloomLevelManager.saveAll(items);
133344
+ MetadataService.addBloomLevel = (name3, code4, description) => bloomLevelManager.add({ name: name3, code: code4, description });
133345
+ MetadataService.updateBloomLevel = (id3, name3, code4, description) => bloomLevelManager.update(id3, { name: name3, code: code4, description });
133346
+ MetadataService.deleteBloomLevel = (code4) => bloomLevelManager.delete(code4);
133351
133347
  // --- QuestionType Services ---
133352
- _MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133353
- _MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
133354
- _MetadataService.updateQuestionType = (id3, name3, code4, description) => questionTypeManager.update(id3, { name: name3, code: code4, description });
133355
- _MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
133348
+ MetadataService.getQuestionTypes = () => questionTypeManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133349
+ MetadataService.saveQuestionTypes = (items) => questionTypeManager.saveAll(items);
133350
+ MetadataService.addQuestionType = (name3, code4, description) => questionTypeManager.add({ name: name3, code: code4, description });
133351
+ MetadataService.updateQuestionType = (id3, name3, code4, description) => questionTypeManager.update(id3, { name: name3, code: code4, description });
133352
+ MetadataService.deleteQuestionType = (code4) => questionTypeManager.delete(code4);
133356
133353
  // --- Category Services ---
133357
- _MetadataService.getCategories = () => categoryManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133358
- _MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
133359
- _MetadataService.updateCategory = (id3, name3, code4, description) => categoryManager.update(id3, { name: name3, code: code4, description });
133360
- _MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
133354
+ MetadataService.getCategories = () => categoryManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133355
+ MetadataService.saveCategories = (items) => categoryManager.saveAll(items);
133356
+ MetadataService.addCategory = (name3, code4, description) => categoryManager.add({ name: name3, code: code4, description });
133357
+ MetadataService.updateCategory = (id3, name3, code4, description) => categoryManager.update(id3, { name: name3, code: code4, description });
133358
+ MetadataService.deleteCategory = (code4) => categoryManager.delete(code4);
133361
133359
  // --- Context Services ---
133362
- _MetadataService.getContexts = () => contextManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133363
- _MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
133364
- _MetadataService.updateContext = (id3, name3, code4, description) => contextManager.update(id3, { name: name3, code: code4, description });
133365
- _MetadataService.deleteContext = (code4) => contextManager.delete(code4);
133360
+ MetadataService.getContexts = () => contextManager.getAll().sort((a4, b2) => a4.name.localeCompare(b2.name));
133361
+ MetadataService.saveContexts = (items) => contextManager.saveAll(items);
133362
+ MetadataService.addContext = (name3, code4, description) => contextManager.add({ name: name3, code: code4, description });
133363
+ MetadataService.updateContext = (id3, name3, code4, description) => contextManager.update(id3, { name: name3, code: code4, description });
133364
+ MetadataService.deleteContext = (code4) => contextManager.delete(code4);
133366
133365
  // --- Approach Services ---
133367
- _MetadataService.getApproaches = () => approachManager.getAll().sort((a4, b2) => a4.code.localeCompare(b2.code));
133368
- _MetadataService.addApproach = (approachData) => {
133366
+ MetadataService.getApproaches = () => approachManager.getAll().sort((a4, b2) => a4.code.localeCompare(b2.code));
133367
+ MetadataService.saveApproaches = (items) => approachManager.saveAll(items);
133368
+ MetadataService.addApproach = (approachData) => {
133369
133369
  const difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
133370
133370
  return approachManager.add({ ...approachData, difficulty });
133371
133371
  };
133372
- _MetadataService.updateApproach = (id3, approachData) => {
133372
+ MetadataService.updateApproach = (id3, approachData) => {
133373
133373
  const updates = { ...approachData };
133374
133374
  if (approachData.rawDifficulty) {
133375
133375
  updates.difficulty = mapRawDifficultyToStandard(approachData.rawDifficulty);
133376
133376
  }
133377
133377
  return approachManager.update(id3, updates);
133378
133378
  };
133379
- _MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
133379
+ MetadataService.deleteApproach = (code4) => approachManager.delete(code4);
133380
133380
  // --- LearningObjective Services ---
133381
- _MetadataService.getLearningObjectives = (subjectCode) => {
133381
+ MetadataService.getLearningObjectives = (subjectCode) => {
133382
133382
  const allLOs = learningObjectiveManager.getAll();
133383
133383
  const filtered = subjectCode ? allLOs.filter((lo) => lo.subjectCode === subjectCode) : allLOs;
133384
133384
  return filtered.sort((a4, b2) => a4.name.localeCompare(b2.name));
133385
133385
  };
133386
- _MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
133387
- _MetadataService.updateLearningObjective = (id3, name3, code4, subjectCode, description) => learningObjectiveManager.update(id3, { name: name3, code: code4, subjectCode, description });
133388
- _MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
133389
- var MetadataService = _MetadataService;
133386
+ MetadataService.saveLearningObjectives = (items) => learningObjectiveManager.saveAll(items);
133387
+ MetadataService.addLearningObjective = (name3, code4, subjectCode, description) => learningObjectiveManager.add({ name: name3, code: code4, subjectCode, description });
133388
+ MetadataService.updateLearningObjective = (id3, name3, code4, subjectCode, description) => learningObjectiveManager.update(id3, { name: name3, code: code4, subjectCode, description });
133389
+ MetadataService.deleteLearningObjective = (code4) => learningObjectiveManager.delete(code4);
133390
133390
 
133391
133391
  // node_modules/date-fns/addDays.mjs
133392
133392
  init_react_shim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thanh01.pmt/interactive-quiz-kit",
3
- "version": "1.0.55",
3
+ "version": "1.0.57",
4
4
  "description": "A comprehensive library for creating, managing, and playing interactive quizzes, with AI generation and SCORM support.",
5
5
  "keywords": [
6
6
  "react",