@algoux/standard-ranklist-utils 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,6 +27,7 @@ npm i -S @algoux/standard-ranklist-utils
27
27
  - `resolveColor`
28
28
  - `resolveThemeColor`
29
29
  - `resolveStyle`
30
+ - `resolveUserMarkers`
30
31
 
31
32
  ### ranklist
32
33
 
package/dist/index.cjs CHANGED
@@ -188,6 +188,13 @@ function resolveStyle(style) {
188
188
  backgroundColor: backgroundThemeColor
189
189
  };
190
190
  }
191
+ function resolveUserMarkers(user, markersConfig) {
192
+ if (!user) {
193
+ return [];
194
+ }
195
+ const userMarkers = (Array.isArray(user.markers) ? user.markers : [user.marker]).filter(Boolean).map((marker) => (markersConfig || []).find((m) => m.id === marker)).filter(Boolean);
196
+ return userMarkers;
197
+ }
191
198
 
192
199
  function canRegenerateRanklist(ranklist) {
193
200
  var _a;
@@ -568,7 +575,7 @@ function genSeriesCalcFns(series, rows, ranks, officialRanks) {
568
575
  if (options.ratio) {
569
576
  const { value, rounding = "ceil", denominator = "all" } = options.ratio;
570
577
  const officialRows = filteredRows;
571
- let total = denominator === "submitted" ? officialRows.filter((row) => !row.statuses.every((s) => s.result === null)).length : officialRows.length;
578
+ let total = denominator === "submitted" ? officialRows.filter((row) => !row.statuses.every((s) => s.result === null)).length : denominator === "scored" ? officialRows.filter((row) => row.score.value > 0).length : officialRows.length;
572
579
  const accValues = [];
573
580
  for (let i = 0; i < value.length; i++) {
574
581
  if (i === 0) {
@@ -709,5 +716,6 @@ exports.resolveContributor = resolveContributor;
709
716
  exports.resolveStyle = resolveStyle;
710
717
  exports.resolveText = resolveText;
711
718
  exports.resolveThemeColor = resolveThemeColor;
719
+ exports.resolveUserMarkers = resolveUserMarkers;
712
720
  exports.secToTimeStr = secToTimeStr;
713
721
  exports.sortRows = sortRows;
package/dist/index.d.cts CHANGED
@@ -90,6 +90,7 @@ declare function resolveStyle(style: srk.Style): {
90
90
  textColor: ThemeColor;
91
91
  backgroundColor: ThemeColor;
92
92
  };
93
+ declare function resolveUserMarkers(user: srk.User, markersConfig: srk.Marker[] | undefined): srk.Marker[];
93
94
 
94
95
  declare function canRegenerateRanklist(ranklist: srk.Ranklist): boolean;
95
96
  declare function getSortedCalculatedRawSolutions(rows: srk.RanklistRow[]): CalculatedSolutionTetrad[];
@@ -99,4 +100,4 @@ declare function regenerateRanklistBySolutions(originalRanklist: srk.Ranklist, s
99
100
  declare function regenerateRowsByIncrementalSolutions(originalRanklist: srk.Ranklist, solutions: CalculatedSolutionTetrad[]): srk.RanklistRow[];
100
101
  declare function convertToStaticRanklist(ranklist: srk.Ranklist): StaticRanklist;
101
102
 
102
- export { type CalculatedSolutionTetrad, EnumTheme, MIN_REGEN_SUPPORTED_VERSION, type RankValue, type StaticRanklist, type ThemeColor, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, secToTimeStr, sortRows };
103
+ export { type CalculatedSolutionTetrad, EnumTheme, MIN_REGEN_SUPPORTED_VERSION, type RankValue, type StaticRanklist, type ThemeColor, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, resolveUserMarkers, secToTimeStr, sortRows };
package/dist/index.d.mts CHANGED
@@ -90,6 +90,7 @@ declare function resolveStyle(style: srk.Style): {
90
90
  textColor: ThemeColor;
91
91
  backgroundColor: ThemeColor;
92
92
  };
93
+ declare function resolveUserMarkers(user: srk.User, markersConfig: srk.Marker[] | undefined): srk.Marker[];
93
94
 
94
95
  declare function canRegenerateRanklist(ranklist: srk.Ranklist): boolean;
95
96
  declare function getSortedCalculatedRawSolutions(rows: srk.RanklistRow[]): CalculatedSolutionTetrad[];
@@ -99,4 +100,4 @@ declare function regenerateRanklistBySolutions(originalRanklist: srk.Ranklist, s
99
100
  declare function regenerateRowsByIncrementalSolutions(originalRanklist: srk.Ranklist, solutions: CalculatedSolutionTetrad[]): srk.RanklistRow[];
100
101
  declare function convertToStaticRanklist(ranklist: srk.Ranklist): StaticRanklist;
101
102
 
102
- export { type CalculatedSolutionTetrad, EnumTheme, MIN_REGEN_SUPPORTED_VERSION, type RankValue, type StaticRanklist, type ThemeColor, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, secToTimeStr, sortRows };
103
+ export { type CalculatedSolutionTetrad, EnumTheme, MIN_REGEN_SUPPORTED_VERSION, type RankValue, type StaticRanklist, type ThemeColor, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, resolveUserMarkers, secToTimeStr, sortRows };
package/dist/index.mjs CHANGED
@@ -186,6 +186,13 @@ function resolveStyle(style) {
186
186
  backgroundColor: backgroundThemeColor
187
187
  };
188
188
  }
189
+ function resolveUserMarkers(user, markersConfig) {
190
+ if (!user) {
191
+ return [];
192
+ }
193
+ const userMarkers = (Array.isArray(user.markers) ? user.markers : [user.marker]).filter(Boolean).map((marker) => (markersConfig || []).find((m) => m.id === marker)).filter(Boolean);
194
+ return userMarkers;
195
+ }
189
196
 
190
197
  function canRegenerateRanklist(ranklist) {
191
198
  var _a;
@@ -566,7 +573,7 @@ function genSeriesCalcFns(series, rows, ranks, officialRanks) {
566
573
  if (options.ratio) {
567
574
  const { value, rounding = "ceil", denominator = "all" } = options.ratio;
568
575
  const officialRows = filteredRows;
569
- let total = denominator === "submitted" ? officialRows.filter((row) => !row.statuses.every((s) => s.result === null)).length : officialRows.length;
576
+ let total = denominator === "submitted" ? officialRows.filter((row) => !row.statuses.every((s) => s.result === null)).length : denominator === "scored" ? officialRows.filter((row) => row.score.value > 0).length : officialRows.length;
570
577
  const accValues = [];
571
578
  for (let i = 0; i < value.length; i++) {
572
579
  if (i === 0) {
@@ -690,4 +697,4 @@ function convertToStaticRanklist(ranklist) {
690
697
  };
691
698
  }
692
699
 
693
- export { EnumTheme, MIN_REGEN_SUPPORTED_VERSION, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, secToTimeStr, sortRows };
700
+ export { EnumTheme, MIN_REGEN_SUPPORTED_VERSION, alphabetToNumber, canRegenerateRanklist, convertToStaticRanklist, filterSolutionsUntil, formatTimeDuration, getSortedCalculatedRawSolutions, numberToAlphabet, preZeroFill, regenerateRanklistBySolutions, regenerateRowsByIncrementalSolutions, resolveColor, resolveContributor, resolveStyle, resolveText, resolveThemeColor, resolveUserMarkers, secToTimeStr, sortRows };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algoux/standard-ranklist-utils",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "author": "bLue",
5
5
  "keywords": [
6
6
  "standard ranklist",
@@ -25,7 +25,8 @@
25
25
  ],
26
26
  "scripts": {
27
27
  "dev": "tsx src/index.ts",
28
- "build": "pkgroll"
28
+ "build": "pkgroll",
29
+ "prepublishOnly": "npm run build"
29
30
  },
30
31
  "dependencies": {
31
32
  "@types/semver": "^7.5.0",
@@ -35,7 +36,7 @@
35
36
  "textcolor": "^1.0.2"
36
37
  },
37
38
  "devDependencies": {
38
- "@algoux/standard-ranklist": "^0.3.7",
39
+ "@algoux/standard-ranklist": "^0.3.8",
39
40
  "@types/node": "^16.18.38",
40
41
  "@typescript-eslint/eslint-plugin": "^5.61.0",
41
42
  "@typescript-eslint/parser": "^5.61.0",