@studyportals/fawkes 7.4.2-0 → 7.4.2-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +176 -176
  2. package/dist/src/common/FilterKeyValuesMap.d.ts +1 -1
  3. package/dist/src/common/IPresenter.d.ts +1 -1
  4. package/dist/src/common/ISeoFilterState.d.ts +1 -1
  5. package/dist/src/common/ISeoInfoBase.d.ts +1 -1
  6. package/dist/src/common/rules/OnlineAttendanceRule.js +1 -1
  7. package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +1 -1
  8. package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +1 -1
  9. package/dist/src/enums/AttendanceFilterOptionValue.d.ts +5 -0
  10. package/dist/src/enums/AttendanceFilterOptionValue.js +6 -0
  11. package/dist/src/enums/DegreeTypeFilterOptionValue.d.ts +29 -0
  12. package/dist/src/enums/DegreeTypeFilterOptionValue.js +30 -0
  13. package/dist/src/enums/DurationFilterOptionValue.d.ts +16 -0
  14. package/dist/src/enums/DurationFilterOptionValue.js +17 -0
  15. package/dist/src/enums/EducationalFormFilterOptionValue.d.ts +8 -0
  16. package/dist/src/enums/EducationalFormFilterOptionValue.js +9 -0
  17. package/dist/src/enums/FilterCombinations.d.ts +1 -22
  18. package/dist/src/enums/FilterCombinations.js +1 -22
  19. package/dist/src/enums/FilterKey.d.ts +21 -0
  20. package/dist/src/enums/FilterKey.js +22 -0
  21. package/dist/src/enums/FormatFilterOptionValue.d.ts +4 -0
  22. package/dist/src/enums/FormatFilterOptionValue.js +5 -0
  23. package/dist/src/enums/SpecialProgrammesFilterOptionValue.d.ts +5 -0
  24. package/dist/src/enums/SpecialProgrammesFilterOptionValue.js +6 -0
  25. package/dist/src/enums/TuitionFeeFilterOptionValue.d.ts +3 -0
  26. package/dist/src/enums/TuitionFeeFilterOptionValue.js +4 -0
  27. package/dist/src/errors/InvalidFilterValueError.d.ts +1 -1
  28. package/dist/src/organisations/policies/our-picks/Area.js +1 -1
  29. package/dist/src/organisations/policies/our-picks/AreaAttendance.js +1 -1
  30. package/dist/src/organisations/policies/our-picks/Attendance.js +1 -1
  31. package/dist/src/organisations/policies/our-picks/Continent.js +1 -1
  32. package/dist/src/organisations/policies/our-picks/Country.js +1 -1
  33. package/dist/src/organisations/policies/our-picks/CountryAttendance.js +1 -1
  34. package/dist/src/organisations/policies/ranked/RankedArea.js +1 -1
  35. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +1 -1
  36. package/dist/src/organisations/policies/ranked/RankedAttendance.js +1 -1
  37. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +1 -1
  38. package/dist/src/organisations/policies/ranked/RankedContinent.js +1 -1
  39. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +1 -1
  40. package/dist/src/organisations/policies/ranked/RankedCountry.js +1 -1
  41. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +1 -1
  42. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +1 -1
  43. package/dist/src/organisations/policies/ranked/RankedDiscipline.js +1 -1
  44. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +1 -1
  45. package/dist/src/organisations/rules/ContinentIsEuropeRule.js +1 -1
  46. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.js +1 -1
  47. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.js +1 -1
  48. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.js +1 -1
  49. package/dist/src/presenters/AreaPresenter.d.ts +1 -1
  50. package/dist/src/presenters/AreaPresenter.js +1 -1
  51. package/dist/src/presenters/AttendancePresenter.d.ts +1 -1
  52. package/dist/src/presenters/AttendancePresenter.js +1 -5
  53. package/dist/src/presenters/ContinentPresenter.d.ts +1 -1
  54. package/dist/src/presenters/ContinentPresenter.js +1 -1
  55. package/dist/src/presenters/CountryPresenter.d.ts +1 -1
  56. package/dist/src/presenters/CountryPresenter.js +1 -1
  57. package/dist/src/presenters/DegreePresenter.d.ts +1 -1
  58. package/dist/src/presenters/DegreePresenter.js +2 -1
  59. package/dist/src/presenters/DisciplinePresenter.d.ts +1 -1
  60. package/dist/src/presenters/DisciplinePresenter.js +1 -1
  61. package/dist/src/presenters/DurationPresenter.d.ts +2 -1
  62. package/dist/src/presenters/DurationPresenter.js +2 -1
  63. package/dist/src/presenters/EducationalFormPresenter.d.ts +1 -1
  64. package/dist/src/presenters/EducationalFormPresenter.js +2 -1
  65. package/dist/src/presenters/FormatPresenter.d.ts +1 -1
  66. package/dist/src/presenters/FormatPresenter.js +3 -5
  67. package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +1 -1
  68. package/dist/src/presenters/SpecialProgrammesPresenter.js +2 -5
  69. package/dist/src/presenters/TuitionFeePresenter.d.ts +1 -1
  70. package/dist/src/presenters/TuitionFeePresenter.js +2 -1
  71. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +1 -1
  72. package/dist/src/programmes/SearchIndexabilityManager.js +3 -27
  73. package/dist/src/programmes/policies/Area.d.ts +1 -1
  74. package/dist/src/programmes/policies/Area.js +1 -1
  75. package/dist/src/programmes/policies/Attendance.d.ts +1 -1
  76. package/dist/src/programmes/policies/Attendance.js +1 -1
  77. package/dist/src/programmes/policies/AttendanceDegree.d.ts +4 -3
  78. package/dist/src/programmes/policies/AttendanceDegree.js +7 -8
  79. package/dist/src/programmes/policies/Continent.d.ts +1 -1
  80. package/dist/src/programmes/policies/Continent.js +1 -1
  81. package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +1 -1
  82. package/dist/src/programmes/policies/ContinentTuitionFee.js +1 -1
  83. package/dist/src/programmes/policies/Country.d.ts +1 -1
  84. package/dist/src/programmes/policies/Country.js +1 -1
  85. package/dist/src/programmes/policies/CountryAttendance.d.ts +1 -1
  86. package/dist/src/programmes/policies/CountryAttendance.js +1 -1
  87. package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +1 -1
  88. package/dist/src/programmes/policies/CountryAttendanceDegree.js +2 -2
  89. package/dist/src/programmes/policies/CountryDegree.d.ts +1 -1
  90. package/dist/src/programmes/policies/CountryDegree.js +1 -1
  91. package/dist/src/programmes/policies/CountryDuration.d.ts +3 -3
  92. package/dist/src/programmes/policies/CountryDuration.js +5 -7
  93. package/dist/src/programmes/policies/CountryDurationDegree.d.ts +1 -1
  94. package/dist/src/programmes/policies/CountryDurationDegree.js +2 -2
  95. package/dist/src/programmes/policies/CountryEducationalForm.d.ts +1 -1
  96. package/dist/src/programmes/policies/CountryEducationalForm.js +2 -2
  97. package/dist/src/programmes/policies/CountryFormat.d.ts +1 -1
  98. package/dist/src/programmes/policies/CountryFormat.js +1 -1
  99. package/dist/src/programmes/policies/CountryTuitionFee.d.ts +1 -1
  100. package/dist/src/programmes/policies/CountryTuitionFee.js +1 -1
  101. package/dist/src/programmes/policies/Degree.d.ts +1 -1
  102. package/dist/src/programmes/policies/Degree.js +1 -1
  103. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +2 -3
  104. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +14 -14
  105. package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +1 -1
  106. package/dist/src/programmes/policies/DegreeCountryAttendance.js +2 -2
  107. package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +1 -1
  108. package/dist/src/programmes/policies/DegreeCountryDiscipline.js +2 -2
  109. package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +1 -1
  110. package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +3 -3
  111. package/dist/src/programmes/policies/Discipline.d.ts +1 -1
  112. package/dist/src/programmes/policies/Discipline.js +1 -1
  113. package/dist/src/programmes/policies/DisciplineArea.d.ts +1 -1
  114. package/dist/src/programmes/policies/DisciplineArea.js +1 -1
  115. package/dist/src/programmes/policies/DisciplineAttendance.d.ts +1 -1
  116. package/dist/src/programmes/policies/DisciplineAttendance.js +1 -1
  117. package/dist/src/programmes/policies/DisciplineContinent.d.ts +1 -1
  118. package/dist/src/programmes/policies/DisciplineContinent.js +1 -1
  119. package/dist/src/programmes/policies/DisciplineCountry.d.ts +1 -1
  120. package/dist/src/programmes/policies/DisciplineCountry.js +1 -1
  121. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +1 -1
  122. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +2 -2
  123. package/dist/src/programmes/policies/DisciplineDegree.d.ts +1 -1
  124. package/dist/src/programmes/policies/DisciplineDegree.js +1 -1
  125. package/dist/src/programmes/policies/DisciplineDuration.d.ts +1 -1
  126. package/dist/src/programmes/policies/DisciplineDuration.js +1 -1
  127. package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +1 -1
  128. package/dist/src/programmes/policies/DisciplineEducationalForm.js +2 -2
  129. package/dist/src/programmes/policies/DisciplineFormat.d.ts +1 -1
  130. package/dist/src/programmes/policies/DisciplineFormat.js +1 -1
  131. package/dist/src/programmes/policies/DisciplineTuitionFee.d.ts +1 -1
  132. package/dist/src/programmes/policies/DisciplineTuitionFee.js +1 -1
  133. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +1 -1
  134. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +1 -1
  135. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +3 -2
  136. package/dist/src/programmes/policies/SpecialProgrammes.js +4 -2
  137. package/dist/src/programmes/policies/TuitionFee.d.ts +1 -1
  138. package/dist/src/programmes/policies/TuitionFee.js +1 -1
  139. package/dist/src/programmes/policies/index.d.ts +1 -26
  140. package/dist/src/programmes/policies/index.js +1 -26
  141. package/dist/src/programmes/rules/AffordableTuitionFeeRule.js +2 -2
  142. package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.js +2 -2
  143. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.js +2 -2
  144. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.js +3 -2
  145. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.js +2 -2
  146. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.js +3 -3
  147. package/dist/src/programmes/rules/DegreeDisciplineRule.js +2 -2
  148. package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.js +2 -2
  149. package/dist/src/programmes/rules/IndexableDegreeRule.js +2 -2
  150. package/dist/src/programmes/rules/IndexableDurationRule.js +1 -1
  151. package/dist/src/programmes/rules/IndexableEducationalFormRule.js +2 -2
  152. package/dist/src/programmes/rules/MbaDegreeRule.js +2 -2
  153. package/dist/src/programmes/rules/MbaOrMscDegreeRule.js +2 -2
  154. package/dist/src/programmes/rules/OneYearDurationRule.js +2 -2
  155. package/dist/src/programmes/rules/PartTimeFormatRule.js +2 -2
  156. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +1 -1
  157. package/dist/src/scholarships/policies/Area.js +1 -1
  158. package/dist/src/scholarships/policies/Country.js +1 -1
  159. package/dist/src/scholarships/policies/Discipline.js +1 -1
  160. package/dist/src/scholarships/policies/DisciplineCountry.js +1 -1
  161. package/dist/src/scholarships/policies/UniversityCountry.js +2 -2
  162. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +1 -1
  163. package/dist/src/scholarships/rules/SearchVolumeAreasRule.js +1 -1
  164. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.js +1 -1
  165. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.js +1 -1
  166. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.js +1 -1
  167. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +1 -1
  168. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +1 -1
  169. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +1 -1
  170. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +1 -1
  171. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +1 -1
  172. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +4 -28
  173. package/package.json +104 -105
  174. package/dist/src/common/IPolicyMetaData.d.ts +0 -6
  175. package/dist/src/common/IPolicyMetaData.js +0 -1
  176. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
  177. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
  178. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +0 -6
  179. package/dist/src/organisations/rules/OnlineAttendanceRule.js +0 -14
  180. package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +0 -4
  181. package/dist/src/programmes/IProgrammeSearchApplicationState.js +0 -1
  182. package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +0 -7
  183. package/dist/src/programmes/IProgrammeSearchDependencies.js +0 -1
  184. package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +0 -2
  185. package/dist/src/programmes/IProgrammesSeoDependencies.js +0 -1
  186. package/dist/src/programmes/policies/AttendanceArea.d.ts +0 -16
  187. package/dist/src/programmes/policies/AttendanceArea.js +0 -48
  188. package/dist/src/programmes/policies/AttendanceContinent.d.ts +0 -16
  189. package/dist/src/programmes/policies/AttendanceContinent.js +0 -46
  190. package/dist/src/programmes/policies/AttendanceDuration.d.ts +0 -16
  191. package/dist/src/programmes/policies/AttendanceDuration.js +0 -48
  192. package/dist/src/programmes/policies/AttendanceFormat.d.ts +0 -16
  193. package/dist/src/programmes/policies/AttendanceFormat.js +0 -48
  194. package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -16
  195. package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -49
  196. package/dist/src/programmes/policies/ContinentDuration.d.ts +0 -15
  197. package/dist/src/programmes/policies/ContinentDuration.js +0 -46
  198. package/dist/src/programmes/policies/ContinentFormat.d.ts +0 -15
  199. package/dist/src/programmes/policies/ContinentFormat.js +0 -46
  200. package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +0 -15
  201. package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +0 -46
  202. package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +0 -15
  203. package/dist/src/programmes/policies/CountrySpecialProgrammes.js +0 -46
  204. package/dist/src/programmes/policies/DegreeArea.d.ts +0 -15
  205. package/dist/src/programmes/policies/DegreeArea.js +0 -46
  206. package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -15
  207. package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +0 -52
  208. package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +0 -15
  209. package/dist/src/programmes/policies/DegreeAttendanceFormat.js +0 -52
  210. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +0 -16
  211. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +0 -56
  212. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +0 -16
  213. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +0 -55
  214. package/dist/src/programmes/policies/DegreeContinent.d.ts +0 -16
  215. package/dist/src/programmes/policies/DegreeContinent.js +0 -46
  216. package/dist/src/programmes/policies/DegreeContinentTuitionFee.d.ts +0 -16
  217. package/dist/src/programmes/policies/DegreeContinentTuitionFee.js +0 -52
  218. package/dist/src/programmes/policies/DegreeDuration.d.ts +0 -16
  219. package/dist/src/programmes/policies/DegreeDuration.js +0 -48
  220. package/dist/src/programmes/policies/DegreeFormat.d.ts +0 -16
  221. package/dist/src/programmes/policies/DegreeFormat.js +0 -49
  222. package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +0 -16
  223. package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +0 -52
  224. package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +0 -15
  225. package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +0 -48
  226. package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +0 -15
  227. package/dist/src/programmes/policies/DegreeTuitionFee.js +0 -47
  228. package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +0 -16
  229. package/dist/src/programmes/policies/DisciplineContinentAttendance.js +0 -54
  230. package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +0 -16
  231. package/dist/src/programmes/policies/DisciplineCountryAttendance.js +0 -54
  232. package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +0 -16
  233. package/dist/src/programmes/policies/DisciplineCountryDegree.js +0 -53
  234. package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +0 -15
  235. package/dist/src/programmes/policies/DisciplineCountryFormat.js +0 -52
  236. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +0 -15
  237. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +0 -46
  238. package/dist/src/programmes/policies/Duration.d.ts +0 -15
  239. package/dist/src/programmes/policies/Duration.js +0 -35
  240. package/dist/src/programmes/policies/Format.d.ts +0 -15
  241. package/dist/src/programmes/policies/Format.js +0 -35
  242. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.d.ts +0 -10
  243. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.js +0 -42
  244. package/dist/src/programmes/rules/DegreeCountrySpecificRule.d.ts +0 -10
  245. package/dist/src/programmes/rules/DegreeCountrySpecificRule.js +0 -43
  246. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.d.ts +0 -11
  247. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.js +0 -40
  248. package/dist/src/programmes/rules/MBACountryAttendanceRule.d.ts +0 -11
  249. package/dist/src/programmes/rules/MBACountryAttendanceRule.js +0 -40
  250. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.d.ts +0 -10
  251. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.js +0 -41
  252. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.d.ts +0 -11
  253. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.js +0 -69
  254. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.d.ts +0 -12
  255. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.js +0 -43
  256. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.d.ts +0 -12
  257. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.js +0 -46
  258. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.d.ts +0 -12
  259. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.js +0 -43
  260. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.d.ts +0 -10
  261. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.js +0 -41
  262. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +0 -11
  263. package/dist/src/programmes/rules/OneYearOnlyRule.js +0 -34
  264. package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +0 -6
  265. package/dist/src/programmes/rules/OnlineAttendanceRule.js +0 -15
  266. package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +0 -3
  267. package/dist/src/sitemap-generator/IPageNumberProvider.js +0 -1
@@ -1,15 +1,16 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
5
+ import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
6
+ import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
5
7
  import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
8
  import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
8
9
  export declare class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
9
10
  readonly name: string;
10
11
  readonly description: string;
11
12
  readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
13
+ protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | IndexableDegreeRule)[];
13
14
  constructor(dependencies: IProgrammeSeoDependencies);
14
15
  protected generateUrls(): Promise<string[]>;
15
16
  get filterCombination(): FilterCombinations;
@@ -1,20 +1,22 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
5
+ import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
6
+ import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
5
7
  import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
8
  import { AttendancePresenter } from '../../presenters/AttendancePresenter';
7
9
  import { DegreePresenter } from '../../presenters/DegreePresenter';
8
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
9
10
  export class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
10
11
  name = 'Attendance Degree Type Policy';
11
- description = 'Determines indexing rules for pages filtered by both study format (online, blended, on-campus, etc.), and degree type prioritizing degrees and formats with demonstrated search demand.';
12
+ description = 'Determines indexing rules for pages filtered by both study format (online, on-campus, etc.), and degree type prioritizing degrees and formats with demonstrated search demand.';
12
13
  filterKeys = [FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE];
13
14
  rules = [
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
15
16
  new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
16
17
  new OnlyFiltersSelectedRule([FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE]),
17
- new IndexableDegreeRule()
18
+ new IndexableDegreeRule(),
19
+ new OnlineAttendanceRule()
18
20
  ];
19
21
  constructor(dependencies) {
20
22
  super(dependencies);
@@ -23,12 +25,9 @@ export class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
23
25
  async generateUrls() {
24
26
  const attendanceFragments = AttendancePresenter.getInstance().getFragments();
25
27
  const degreeFragments = DegreePresenter.getInstance().getFragments();
26
- // Allow online and blended learning formats
27
- const allowedAttendanceIds = ["online", "blended"];
28
- const allowedAttendances = attendanceFragments.filter(attendance => allowedAttendanceIds.includes(attendance.id));
29
28
  const paths = [];
30
29
  for (const pageNumber of this.indexablePageNumbers) {
31
- for (const attendance of allowedAttendances) {
30
+ for (const attendance of attendanceFragments) {
32
31
  for (const degree of degreeFragments) {
33
32
  const filterKeyValues = new Map([
34
33
  [FilterKey.DELIVERY_METHOD, [attendance.id]],
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -10,7 +10,7 @@ import { AttendancePresenter } from '../../presenters/AttendancePresenter';
10
10
  import { DegreePresenter } from '../../presenters/DegreePresenter';
11
11
  export class CountryAttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Country Attendance Degree Policy';
13
- description = `Determines indexing rules for pages filtered by country,
13
+ description = `Determines indexing rules for pages filtered by country,
14
14
  study format (online, on-campus, etc.), and degree type.`;
15
15
  filterKeys = [FilterKey.COUNTRY, FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE];
16
16
  rules = [
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,15 +1,15 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { OneYearOnlyRule } from '../rules/OneYearOnlyRule';
5
+ import { IndexableDurationRule } from '../rules/IndexableDurationRule';
6
6
  import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
7
  import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
8
  export declare class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
9
9
  readonly name: string;
10
10
  readonly description: string;
11
11
  readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OneYearOnlyRule)[];
12
+ protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDurationRule)[];
13
13
  constructor(dependencies: IProgrammeSeoDependencies);
14
14
  protected generateUrls(): Promise<string[]>;
15
15
  get filterCombination(): FilterCombinations;
@@ -1,20 +1,20 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { OneYearOnlyRule } from '../rules/OneYearOnlyRule';
5
+ import { IndexableDurationRule } from '../rules/IndexableDurationRule';
6
6
  import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
7
  import { CountryPresenter } from '../../presenters/CountryPresenter';
8
8
  import { DurationPresenter } from '../../presenters/DurationPresenter';
9
9
  export class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Duration Policy';
11
- description = 'Determines indexing rules for pages filtered by both country, and duration (1 year only).';
11
+ description = 'Determines indexing rules for pages filtered by both country, and duration (1 year, 2 years, etc.).';
12
12
  filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION];
13
13
  rules = [
14
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
15
15
  new SingleValueSelectedForFilterRule(FilterKey.DURATION),
16
16
  new OnlyFiltersSelectedRule([FilterKey.COUNTRY, FilterKey.DURATION]),
17
- new OneYearOnlyRule()
17
+ new IndexableDurationRule()
18
18
  ];
19
19
  constructor(dependencies) {
20
20
  super(dependencies);
@@ -23,12 +23,10 @@ export class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
23
23
  async generateUrls() {
24
24
  const countryFragments = CountryPresenter.getInstance().getFragments();
25
25
  const durationFragments = DurationPresenter.getInstance().getFragments();
26
- const allowedDurationIds = ["[360,360]"];
27
- const allowedDurations = durationFragments.filter(duration => allowedDurationIds.includes(duration.id));
28
26
  const paths = [];
29
27
  for (const pageNumber of this.indexablePageNumbers) {
30
28
  for (const country of countryFragments) {
31
- for (const duration of allowedDurations) {
29
+ for (const duration of durationFragments) {
32
30
  const filterKeyValues = new Map([
33
31
  [FilterKey.COUNTRY, [country.id]],
34
32
  [FilterKey.DURATION, [duration.id]]
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -10,7 +10,7 @@ import { DegreePresenter } from '../../presenters/DegreePresenter';
10
10
  import { DurationPresenter } from '../../presenters/DurationPresenter';
11
11
  export class CountryDurationDegree extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Country Duration Degree Policy';
13
- description = `Determines indexing rules for pages filtered by country,
13
+ description = `Determines indexing rules for pages filtered by country,
14
14
  duration (1 year, 2 years, etc.), and degree type.`;
15
15
  filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION, FilterKey.DEGREE_TYPE];
16
16
  rules = [
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,7 +8,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
8
8
  import { EducationalFormPresenter } from '../../presenters/EducationalFormPresenter';
9
9
  export class CountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Educational Form Policy';
11
- description = `Determines indexing rules for pages filtered by both country,
11
+ description = `Determines indexing rules for pages filtered by both country,
12
12
  and educational form (academic, semester, summer school, etc.).`;
13
13
  filterKeys = [FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
14
14
  rules = [
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,16 +1,15 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
5
5
  import { DegreeAttendanceDisciplineSpecificRule } from '../rules/DegreeAttendanceDisciplineSpecificRule';
6
6
  import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
7
  import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
- import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
9
8
  export declare class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy {
10
9
  readonly name: string;
11
10
  readonly description: string;
12
11
  readonly filterKeys: FilterKey[];
13
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | DegreeAttendanceDisciplineSpecificRule)[];
12
+ protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | DegreeAttendanceDisciplineSpecificRule)[];
14
13
  constructor(dependencies: IProgrammeSeoDependencies);
15
14
  protected generateUrls(): Promise<string[]>;
16
15
  get filterCombination(): FilterCombinations;
@@ -1,5 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { DegreeTypeFilterOptionValue } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
3
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
4
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
5
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,7 +7,7 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
8
7
  import { DegreePresenter } from '../../presenters/DegreePresenter';
9
8
  import { AttendancePresenter } from '../../presenters/AttendancePresenter';
10
9
  import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
11
- import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
10
+ import { DegreeTypeFilterOptionValue } from "../../enums/DegreeTypeFilterOptionValue";
12
11
  export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy {
13
12
  name = 'Degree Attendance Discipline Policy';
14
13
  description = 'Determines indexing rules for pages filtered by degree type, attendance, and discipline.';
@@ -19,7 +18,6 @@ export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy
19
18
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
20
19
  new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.DELIVERY_METHOD, FilterKey.DISCIPLINES]),
21
20
  new DegreeAttendanceDisciplineSpecificRule(),
22
- new OnlineAttendanceRule()
23
21
  ];
24
22
  constructor(dependencies) {
25
23
  super(dependencies);
@@ -35,22 +33,24 @@ export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy
35
33
  DegreeTypeFilterOptionValue.MSC,
36
34
  DegreeTypeFilterOptionValue.MBA
37
35
  ];
36
+ const onlineAttendance = attendanceFragments.find(a => a.id === 'online');
37
+ if (!onlineAttendance) {
38
+ return paths;
39
+ }
38
40
  for (const pageNumber of this.indexablePageNumbers) {
39
41
  for (const degreeId of allowedDegreeIds) {
40
42
  const degree = degreeFragments.find(d => d.id === degreeId);
41
43
  if (!degree)
42
44
  continue;
43
45
  for (const discipline of disciplineFragments) {
44
- for (const attendance of attendanceFragments) {
45
- const filterKeyValues = new Map([
46
- [FilterKey.DEGREE_TYPE, [degree.id]],
47
- [FilterKey.DELIVERY_METHOD, [attendance.id]],
48
- [FilterKey.DISCIPLINES, [discipline.id]]
49
- ]);
50
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
51
- if (result) {
52
- paths.push(this.getPathWithPageNumber(`${degree.path}/${attendance.path}/${discipline.path}`, pageNumber));
53
- }
46
+ const filterKeyValues = new Map([
47
+ [FilterKey.DEGREE_TYPE, [degree.id]],
48
+ [FilterKey.DELIVERY_METHOD, [onlineAttendance.id]],
49
+ [FilterKey.DISCIPLINES, [discipline.id]]
50
+ ]);
51
+ const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
52
+ if (result) {
53
+ paths.push(this.getPathWithPageNumber(`${degree.path}/${onlineAttendance.path}/${discipline.path}`, pageNumber));
54
54
  }
55
55
  }
56
56
  }
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,5 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { DegreeTypeFilterOptionValue } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
3
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
4
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
5
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,6 +7,7 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
8
7
  import { DegreePresenter } from '../../presenters/DegreePresenter';
9
8
  import { CountryPresenter } from '../../presenters/CountryPresenter';
10
9
  import { AttendancePresenter } from '../../presenters/AttendancePresenter';
10
+ import { DegreeTypeFilterOptionValue } from "../../enums/DegreeTypeFilterOptionValue";
11
11
  export class DegreeCountryAttendance extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Degree Country Attendance Policy';
13
13
  description = 'Determines indexing rules for pages filtered by degree type, country, and attendance.';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,5 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { DegreeTypeFilterOptionValue } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
3
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
4
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
5
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,6 +7,7 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
8
7
  import { DegreePresenter } from '../../presenters/DegreePresenter';
9
8
  import { CountryPresenter } from '../../presenters/CountryPresenter';
10
9
  import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
10
+ import { DegreeTypeFilterOptionValue } from "../../enums/DegreeTypeFilterOptionValue";
11
11
  export class DegreeCountryDiscipline extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Degree Country Discipline Policy';
13
13
  description = 'Determines indexing rules for pages filtered by degree type, country, and discipline with specific degree-country combinations.';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,6 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { DegreeTypeFilterOptionValue } from '@studyportals/search-filters';
3
- import { TuitionFeeFilterOptionValue } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
4
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
5
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
6
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -9,6 +7,8 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
9
7
  import { DegreePresenter } from '../../presenters/DegreePresenter';
10
8
  import { CountryPresenter } from '../../presenters/CountryPresenter';
11
9
  import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
10
+ import { DegreeTypeFilterOptionValue } from "../../enums/DegreeTypeFilterOptionValue";
11
+ import { TuitionFeeFilterOptionValue } from "../../enums/TuitionFeeFilterOptionValue";
12
12
  export class DegreeCountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
13
13
  name = 'Degree Country Tuition Fee Policy';
14
14
  description = 'Determines indexing rules for pages filtered by degree type, country, and tuition fee.';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -9,7 +9,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
9
9
  import { EducationalFormPresenter } from '../../presenters/EducationalFormPresenter';
10
10
  export class DisciplineCountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
11
11
  name = 'Discipline Country Educational Form Policy';
12
- description = `Determines indexing rules for pages filtered by discipline,
12
+ description = `Determines indexing rules for pages filtered by discipline,
13
13
  country, and educational form (academic, semester, summer school, etc.).`;
14
14
  filterKeys = [FilterKey.DISCIPLINES, FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
15
15
  rules = [
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters';
1
+ import { FilterKey } from "../../enums/FilterKey";
2
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { FilterCombinations } from '../../enums/FilterCombinations';