@xivdyetools/core 4.0.2 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blending/conversions.d.ts +24 -0
- package/dist/blending/conversions.d.ts.map +1 -1
- package/dist/blending/conversions.js +36 -3
- package/dist/blending/conversions.js.map +1 -1
- package/dist/constants/index.d.ts +24 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +38 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/services/APIService.d.ts.map +1 -1
- package/dist/services/APIService.js +23 -9
- package/dist/services/APIService.js.map +1 -1
- package/dist/services/CharacterColorService.d.ts.map +1 -1
- package/dist/services/CharacterColorService.js +13 -2
- package/dist/services/CharacterColorService.js.map +1 -1
- package/dist/services/LocalizationService.d.ts +6 -0
- package/dist/services/LocalizationService.d.ts.map +1 -1
- package/dist/services/LocalizationService.js +7 -1
- package/dist/services/LocalizationService.js.map +1 -1
- package/dist/services/PaletteService.d.ts +6 -1
- package/dist/services/PaletteService.d.ts.map +1 -1
- package/dist/services/PaletteService.js +7 -2
- package/dist/services/PaletteService.js.map +1 -1
- package/dist/services/dye/HarmonyGenerator.d.ts +3 -1
- package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -1
- package/dist/services/dye/HarmonyGenerator.js +41 -8
- package/dist/services/dye/HarmonyGenerator.js.map +1 -1
- package/dist/services/dye/HarmonySelector.d.ts +107 -0
- package/dist/services/dye/HarmonySelector.d.ts.map +1 -0
- package/dist/services/dye/HarmonySelector.js +176 -0
- package/dist/services/dye/HarmonySelector.js.map +1 -0
- package/dist/services/localization/TranslationProvider.d.ts +11 -6
- package/dist/services/localization/TranslationProvider.d.ts.map +1 -1
- package/dist/services/localization/TranslationProvider.js +33 -28
- package/dist/services/localization/TranslationProvider.js.map +1 -1
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +14 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalizationService.d.ts","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAM5E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAOzC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAGnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,CAwBpF;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAkB;IAIvC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkD;IAEhF;;;OAGG;gBACS,MAAM,GAAE,yBAA8B;IAMlD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD;;OAEG;WACU,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;;OAKG;IACG,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D;;OAEG;WACU,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E;;OAEG;WACU,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjF;;;;;;;;;OASG;IACH,gBAAgB,IAAI,UAAU;IAI9B;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,UAAU;IAIrC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO;IAS5C;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO;IAInD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI1D;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIjE;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAI9D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAIrE;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI1D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIjE;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIhE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIvE;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI1D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIjE;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIhE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIvE;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI3D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIlE;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI5D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAInE;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAItD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI7D;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIxD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAI/D;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIlD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIzD;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIlD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAIzD;;;;;;OAMG;IACH,mBAAmB,IAAI,UAAU,EAAE;IAInC;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,UAAU,EAAE;IAI1C
|
|
1
|
+
{"version":3,"file":"LocalizationService.d.ts","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -489,10 +489,16 @@ export class LocalizationService {
|
|
|
489
489
|
* Preload multiple locales for instant switching
|
|
490
490
|
* Useful for apps that need to switch locales without delay
|
|
491
491
|
*
|
|
492
|
+
* BUG-058: this used `setLocale`, which also makes the locale ACTIVE — so
|
|
493
|
+
* preloading `['ja','de','fr']` silently left the singleton speaking French,
|
|
494
|
+
* and preloading in a different order gave a different active locale.
|
|
495
|
+
* Loading is not switching; `ensureLocaleLoaded` registers the data without
|
|
496
|
+
* touching the current locale, which is what "preload" means.
|
|
497
|
+
*
|
|
492
498
|
* @param locales - Array of locale codes to preload
|
|
493
499
|
*/
|
|
494
500
|
async preloadLocales(locales) {
|
|
495
|
-
await Promise.all(locales.map((locale) => this.
|
|
501
|
+
await Promise.all(locales.map((locale) => this.ensureLocaleLoaded(locale)));
|
|
496
502
|
}
|
|
497
503
|
/**
|
|
498
504
|
* Static method: Preload locales using default instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalizationService.js","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LocalizationService.js","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,12 @@ export interface PaletteMatch {
|
|
|
61
61
|
extracted: RGB;
|
|
62
62
|
/** The closest matching FFXIV dye */
|
|
63
63
|
matchedDye: Dye;
|
|
64
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Distance between the extracted colour and the matched dye, measured with
|
|
66
|
+
* the SAME `matchingMethod` that selected it (BUG-008) — so its scale is that
|
|
67
|
+
* method's, and it is directly comparable with what the caller asked for.
|
|
68
|
+
* Lower is better.
|
|
69
|
+
*/
|
|
65
70
|
distance: number;
|
|
66
71
|
/** Percentage of pixels in this cluster (0-100) */
|
|
67
72
|
dominance: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaletteService.d.ts","sourceRoot":"","sources":["../../src/services/PaletteService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"PaletteService.d.ts","sourceRoot":"","sources":["../../src/services/PaletteService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMlD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,KAAK,EAAE,GAAG,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,qCAAqC;IACrC,UAAU,EAAE,GAAG,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmND;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IAEvB,uIAAuI;IACvI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAOrC;IAEF;;;OAGG;gBACS,OAAO,GAAE,qBAA0B;IAI/C;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,wBAA6B,GAAG,cAAc,EAAE;IAkEvF;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CACpB,MAAM,EAAE,GAAG,EAAE,EACb,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,wBAA6B,GACrC,YAAY,EAAE;IAuCjB;;;;;;;OAOG;IACH,MAAM,CAAC,sBAAsB,CAC3B,IAAI,EAAE,iBAAiB,GAAG,MAAM,EAAE,EAClC,cAAc,GAAE,MAAY,GAC3B,GAAG,EAAE;CAgBT"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* const matches = paletteService.extractAndMatchPalette(pixels, 4, dyeService);
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
+
import { DEFAULT_MATCHING_METHOD } from '../types/index.js';
|
|
22
23
|
import { NoOpLogger } from '@xivdyetools/logger/library';
|
|
23
24
|
import { ColorService } from './ColorService.js';
|
|
24
25
|
// ============================================================================
|
|
@@ -309,8 +310,12 @@ export class PaletteService {
|
|
|
309
310
|
const hex = ColorService.rgbToHex(ex.color.r, ex.color.g, ex.color.b);
|
|
310
311
|
const matchedDye = dyeService.findClosestDye(hex, options.matchingMethod ? { matchingMethod: options.matchingMethod } : undefined);
|
|
311
312
|
if (matchedDye) {
|
|
312
|
-
//
|
|
313
|
-
|
|
313
|
+
// BUG-008: report the distance on the SAME metric that chose the match.
|
|
314
|
+
// This used to be an unconditional `rgbDistance` — Euclidean RGB on a
|
|
315
|
+
// 0-441.67 scale — while the winner was picked with `matchingMethod`,
|
|
316
|
+
// so the number a caller received was on a different scale from the
|
|
317
|
+
// metric that produced it, with nothing in the value to say which.
|
|
318
|
+
const distance = ColorService.getDistanceForMethod(hex, matchedDye.hex, options.matchingMethod ?? DEFAULT_MATCHING_METHOD);
|
|
314
319
|
matches.push({
|
|
315
320
|
extracted: ex.color,
|
|
316
321
|
matchedDye,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaletteService.js","sourceRoot":"","sources":["../../src/services/PaletteService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaletteService.js","sourceRoot":"","sources":["../../src/services/PaletteService.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,9 @@ export interface HarmonyOptions {
|
|
|
52
52
|
* Maximum DeltaE distance for matching
|
|
53
53
|
* Only used when algorithm is 'deltaE'
|
|
54
54
|
* Higher values return more matches but less precise
|
|
55
|
-
* @default 40
|
|
55
|
+
* @default per formula — 40 cie76, 25 ciede2000 (and its 'cie2000'
|
|
56
|
+
* alias), 0.13 oklab. OKLAB deltaE runs on a ~0-1 scale, so the CIE76
|
|
57
|
+
* number is not a usable default for it (BUG-059).
|
|
56
58
|
*/
|
|
57
59
|
deltaETolerance?: number;
|
|
58
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HarmonyGenerator.d.ts","sourceRoot":"","sources":["../../../src/services/dye/HarmonyGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"HarmonyGenerator.d.ts","sourceRoot":"","sources":["../../../src/services/dye/HarmonyGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAO,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,QAAQ,CAAC;AA4CxD;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;gBADN,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS;IAG3B;;;;;OAKG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI;IAkCxE;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAKjC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAKnF;;;;;;;;;OASG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAI7D;;;;;;;;OAQG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAI5D;;;;;;;;OAQG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAK9D;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAKtE;;;;;;;OAOG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAmEtF;;;;;;;;OAQG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;IAIxE;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,wBAAwB;IAkEhC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAsC5B"}
|
|
@@ -5,6 +5,40 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ColorManipulator } from '../color/ColorManipulator.js';
|
|
7
7
|
import { ColorConverter, normalizeDeltaEFormula, } from '../color/ColorConverter.js';
|
|
8
|
+
/**
|
|
9
|
+
* Default ΔE tolerance per formula.
|
|
10
|
+
*
|
|
11
|
+
* BUG-059: these used to be a two-way ternary — `ciede2000 ? 25 : 40` — which
|
|
12
|
+
* silently gave `'oklab'` CIE76's tolerance. OKLAB ΔE runs roughly 0-1, so 40
|
|
13
|
+
* admitted the entire dye set. Each value sits just outside its formula's
|
|
14
|
+
* widest calibrated `harmony` band cut in `config/band-vocabulary.ts`
|
|
15
|
+
* (ciede2000 20, cie76 26.2, oklab 0.107), which is the relationship the
|
|
16
|
+
* original two already had.
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_DELTA_E_TOLERANCE = {
|
|
19
|
+
ciede2000: 25,
|
|
20
|
+
cie76: 40,
|
|
21
|
+
oklab: 0.13,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* ΔE between two colours under a canonical formula.
|
|
25
|
+
*
|
|
26
|
+
* BUG-059: both call sites used a two-way ternary (`ciede2000 ? 2000 : 76`),
|
|
27
|
+
* which quietly routed `'oklab'` into the CIE76 branch — an oklab caller got
|
|
28
|
+
* CIE76 numbers under an oklab label, then compared them against an oklab
|
|
29
|
+
* tolerance. Lab values are passed in because they are pre-computed on every
|
|
30
|
+
* dye; only the OKLAB path needs the hex.
|
|
31
|
+
*/
|
|
32
|
+
function deltaEFor(formula, hexA, hexB, labA, labB) {
|
|
33
|
+
switch (formula) {
|
|
34
|
+
case 'ciede2000':
|
|
35
|
+
return ColorConverter.getDeltaE2000(labA, labB);
|
|
36
|
+
case 'oklab':
|
|
37
|
+
return ColorConverter.getDeltaE_Oklab(hexA, hexB);
|
|
38
|
+
case 'cie76':
|
|
39
|
+
return ColorConverter.getDeltaE76(labA, labB);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
8
42
|
/**
|
|
9
43
|
* Color harmony generator
|
|
10
44
|
* Per R-4: Single Responsibility - harmony generation only
|
|
@@ -149,16 +183,16 @@ export class HarmonyGenerator {
|
|
|
149
183
|
if (options?.algorithm === 'deltaE') {
|
|
150
184
|
const baseLab = ColorConverter.hexToLab(baseDye.hex);
|
|
151
185
|
const formula = normalizeDeltaEFormula(options.deltaEFormula ?? 'cie76');
|
|
152
|
-
const tolerance = options.deltaETolerance ??
|
|
186
|
+
const tolerance = options.deltaETolerance ?? DEFAULT_DELTA_E_TOLERANCE[formula];
|
|
153
187
|
const results = [];
|
|
154
188
|
for (const dye of dyes) {
|
|
155
189
|
if (dye.category === 'Facewear' || dye.id === baseDye.id)
|
|
156
190
|
continue;
|
|
157
191
|
// Use pre-computed LAB (always available for DyeInternal)
|
|
158
192
|
const dyeLab = dye.lab;
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
193
|
+
// BUG-059: a two-way ternary silently sent 'oklab' down the CIE76
|
|
194
|
+
// branch, so an oklab caller got CIE76 numbers under an oklab label.
|
|
195
|
+
const deltaE = deltaEFor(formula, baseDye.hex, dye.hex, baseLab, dyeLab);
|
|
162
196
|
// For monochromatic, we want colors that are perceptually similar
|
|
163
197
|
// but have varying lightness (L component)
|
|
164
198
|
if (deltaE <= tolerance) {
|
|
@@ -304,7 +338,7 @@ export class HarmonyGenerator {
|
|
|
304
338
|
*/
|
|
305
339
|
findClosestByDeltaE(targetHex, excludeIds, options) {
|
|
306
340
|
const formula = normalizeDeltaEFormula(options.deltaEFormula ?? 'cie76');
|
|
307
|
-
const tolerance = options.deltaETolerance ??
|
|
341
|
+
const tolerance = options.deltaETolerance ?? DEFAULT_DELTA_E_TOLERANCE[formula];
|
|
308
342
|
const targetLab = ColorConverter.hexToLab(targetHex);
|
|
309
343
|
let bestMatch = null;
|
|
310
344
|
let bestDeltaE = Infinity;
|
|
@@ -315,9 +349,8 @@ export class HarmonyGenerator {
|
|
|
315
349
|
}
|
|
316
350
|
// Use pre-computed LAB (always available for DyeInternal)
|
|
317
351
|
const dyeLab = dye.lab;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
: ColorConverter.getDeltaE76(targetLab, dyeLab);
|
|
352
|
+
// BUG-059: see deltaEFor — 'oklab' used to fall through to CIE76.
|
|
353
|
+
const deltaE = deltaEFor(formula, targetHex, dye.hex, targetLab, dyeLab);
|
|
321
354
|
if (deltaE < bestDeltaE) {
|
|
322
355
|
bestDeltaE = deltaE;
|
|
323
356
|
bestMatch = dye;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HarmonyGenerator.js","sourceRoot":"","sources":["../../../src/services/dye/HarmonyGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HarmonyGenerator.js","sourceRoot":"","sources":["../../../src/services/dye/HarmonyGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harmony slot selection — the one implementation every surface uses.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* The web app and the Discord bot used to answer "which dyes make a triadic
|
|
7
|
+
* harmony with this one?" through completely different code, and they
|
|
8
|
+
* disagreed for **89–100 % of base dyes on every harmony type** (measured
|
|
9
|
+
* 2026-09-03 over all 125 dyes):
|
|
10
|
+
*
|
|
11
|
+
* - the page walked `HARMONY_OFFSETS`, built each target by carrying the base
|
|
12
|
+
* dye's SATURATION AND VALUE onto the rotated hue, and ranked candidates by
|
|
13
|
+
* the user's configured ΔE method;
|
|
14
|
+
* - the bot called a named `DyeService.find*Dyes()` per type, which rotates hue
|
|
15
|
+
* without preserving S/V — and `findComplementaryPair` did not rotate at all,
|
|
16
|
+
* it took an RGB `invert()`.
|
|
17
|
+
*
|
|
18
|
+
* For a desaturated base the difference is not subtle: `/harmony analogous` on
|
|
19
|
+
* Snow White returned Neon Green and Kobold Brown, where the page shows Pure
|
|
20
|
+
* White and Pearl White.
|
|
21
|
+
*
|
|
22
|
+
* This module is the page's algorithm, lifted verbatim so the page's output is
|
|
23
|
+
* unchanged and every other surface now matches it. `HARMONY_OFFSETS` supplies
|
|
24
|
+
* the geometry, so a harmony type is a row in a table rather than a method —
|
|
25
|
+
* which is why `compound` and `shades` work here without any new code.
|
|
26
|
+
*
|
|
27
|
+
* @module services/dye/HarmonySelector
|
|
28
|
+
*/
|
|
29
|
+
import type { Dye } from '@xivdyetools/types';
|
|
30
|
+
import type { MatchingMethod } from '../../types/index.js';
|
|
31
|
+
/** How a caller wants harmony slots chosen. */
|
|
32
|
+
export interface HarmonySelectionConfig {
|
|
33
|
+
/**
|
|
34
|
+
* Rank by the configured ΔE against an S/V-preserving target (`true`), or by
|
|
35
|
+
* plain angular hue distance (`false`). The web app's "strict matching"
|
|
36
|
+
* toggle, on by default.
|
|
37
|
+
*/
|
|
38
|
+
usePerceptualMatching: boolean;
|
|
39
|
+
/** Which ΔE the ranking uses. Ignored when `usePerceptualMatching` is false. */
|
|
40
|
+
matchingMethod: MatchingMethod;
|
|
41
|
+
/** How many runner-up dyes to return per slot. Default 0. */
|
|
42
|
+
companionCount?: number;
|
|
43
|
+
/** Never show one dye in two slots. Default `false`. */
|
|
44
|
+
preventDuplicates?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** One position in a harmony: its ideal, the dye chosen for it, and runners-up. */
|
|
47
|
+
export interface HarmonySlot {
|
|
48
|
+
/** Position in `HARMONY_OFFSETS[harmonyType]`. */
|
|
49
|
+
index: number;
|
|
50
|
+
/** The ideal hue offset in degrees, normalised to 0–359. */
|
|
51
|
+
offset: number;
|
|
52
|
+
/** The absolute ideal hue in degrees, 0–359. */
|
|
53
|
+
targetHue: number;
|
|
54
|
+
/**
|
|
55
|
+
* The ideal colour for this slot: the base's saturation and value on the
|
|
56
|
+
* target hue. This is what a card outlines next to the dye it actually found.
|
|
57
|
+
*/
|
|
58
|
+
targetHex: string;
|
|
59
|
+
/** The dye chosen, or `null` when no candidate was available. */
|
|
60
|
+
dye: Dye | null;
|
|
61
|
+
/** Distance from `dye` to the ideal, in the config's units. */
|
|
62
|
+
deviance: number;
|
|
63
|
+
/** Runners-up, nearest first, excluding `dye`. */
|
|
64
|
+
companions: Dye[];
|
|
65
|
+
}
|
|
66
|
+
/** Anything a caller can fix or exclude before selection runs. */
|
|
67
|
+
export interface HarmonySelectionOptions {
|
|
68
|
+
/**
|
|
69
|
+
* Dyes that must never be chosen — the base dye itself, normally. Given as
|
|
70
|
+
* `itemID`s because that is the identity every surface already keys on.
|
|
71
|
+
*
|
|
72
|
+
* Honoured for slots and companions alike, independently of
|
|
73
|
+
* {@link HarmonySelectionConfig.preventDuplicates}. A pinned dye still wins
|
|
74
|
+
* its slot: an explicit hand-swap outranks this.
|
|
75
|
+
*/
|
|
76
|
+
excludeItemIDs?: readonly number[];
|
|
77
|
+
/**
|
|
78
|
+
* Slot index → a dye the caller has fixed (a user's manual swap). A pinned
|
|
79
|
+
* dye is honoured and still consumes its place in de-duplication.
|
|
80
|
+
*/
|
|
81
|
+
pinned?: ReadonlyMap<number, Dye>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Whether `harmonyType` is one this module can build.
|
|
85
|
+
*
|
|
86
|
+
* Every key of `HARMONY_OFFSETS` works, which is the point: a type is a row in
|
|
87
|
+
* that table, not a bespoke method, so the ten the page offers are the ten
|
|
88
|
+
* every surface can offer.
|
|
89
|
+
*/
|
|
90
|
+
export declare function isKnownHarmonyType(harmonyType: string): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Choose a dye for every slot of a harmony.
|
|
93
|
+
*
|
|
94
|
+
* Callers filter `candidates` themselves — this function does not know about
|
|
95
|
+
* anyone's dye-filter shape, and pre-filtering is what makes "the nearest
|
|
96
|
+
* ALLOWED dye to the ideal" the answer, rather than "the nearest allowed dye to
|
|
97
|
+
* a dye that was thrown away".
|
|
98
|
+
*
|
|
99
|
+
* @param baseHex the colour the harmony is built around; supplies H, S and V
|
|
100
|
+
* @param harmonyType a key of `HARMONY_OFFSETS`
|
|
101
|
+
* @param candidates the pool to choose from, already filtered
|
|
102
|
+
* @param config ranking and de-duplication behaviour
|
|
103
|
+
* @param options dyes to exclude, and any slots the caller has pinned
|
|
104
|
+
* @returns one slot per offset; `dye` is `null` for a slot with no candidate
|
|
105
|
+
*/
|
|
106
|
+
export declare function generateHarmonySlots(baseHex: string, harmonyType: string, candidates: readonly Dye[], config: HarmonySelectionConfig, options?: HarmonySelectionOptions): HarmonySlot[];
|
|
107
|
+
//# sourceMappingURL=HarmonySelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HarmonySelector.d.ts","sourceRoot":"","sources":["../../../src/services/dye/HarmonySelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gFAAgF;IAChF,cAAc,EAAE,cAAc,CAAC;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,UAAU,EAAE,GAAG,EAAE,CAAC;CACnB;AAQD,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AA0CD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,GAAG,EAAE,EAC1B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,uBAAuB,GAChC,WAAW,EAAE,CA2Ff"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harmony slot selection — the one implementation every surface uses.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* The web app and the Discord bot used to answer "which dyes make a triadic
|
|
7
|
+
* harmony with this one?" through completely different code, and they
|
|
8
|
+
* disagreed for **89–100 % of base dyes on every harmony type** (measured
|
|
9
|
+
* 2026-09-03 over all 125 dyes):
|
|
10
|
+
*
|
|
11
|
+
* - the page walked `HARMONY_OFFSETS`, built each target by carrying the base
|
|
12
|
+
* dye's SATURATION AND VALUE onto the rotated hue, and ranked candidates by
|
|
13
|
+
* the user's configured ΔE method;
|
|
14
|
+
* - the bot called a named `DyeService.find*Dyes()` per type, which rotates hue
|
|
15
|
+
* without preserving S/V — and `findComplementaryPair` did not rotate at all,
|
|
16
|
+
* it took an RGB `invert()`.
|
|
17
|
+
*
|
|
18
|
+
* For a desaturated base the difference is not subtle: `/harmony analogous` on
|
|
19
|
+
* Snow White returned Neon Green and Kobold Brown, where the page shows Pure
|
|
20
|
+
* White and Pearl White.
|
|
21
|
+
*
|
|
22
|
+
* This module is the page's algorithm, lifted verbatim so the page's output is
|
|
23
|
+
* unchanged and every other surface now matches it. `HARMONY_OFFSETS` supplies
|
|
24
|
+
* the geometry, so a harmony type is a row in a table rather than a method —
|
|
25
|
+
* which is why `compound` and `shades` work here without any new code.
|
|
26
|
+
*
|
|
27
|
+
* @module services/dye/HarmonySelector
|
|
28
|
+
*/
|
|
29
|
+
import { HARMONY_OFFSETS } from '../../constants/index.js';
|
|
30
|
+
import { ColorService } from '../ColorService.js';
|
|
31
|
+
/**
|
|
32
|
+
* The single definition of "how far is this dye from the slot's target".
|
|
33
|
+
*
|
|
34
|
+
* BUG-064: everything that scores a harmony row goes through here, so a panel
|
|
35
|
+
* can never mix ΔE units with degrees of hue — which is exactly what it used to
|
|
36
|
+
* do when a filtered-out companion's replacement was scored differently from
|
|
37
|
+
* its neighbours.
|
|
38
|
+
*/
|
|
39
|
+
function devianceFor(dye, targetHue, targetHex, config) {
|
|
40
|
+
if (config.usePerceptualMatching) {
|
|
41
|
+
return ColorService.getDistanceForMethod(targetHex, dye.hex, config.matchingMethod);
|
|
42
|
+
}
|
|
43
|
+
const dyeHue = ColorService.hexToHsv(dye.hex).h;
|
|
44
|
+
const hueDiff = Math.abs(dyeHue - targetHue);
|
|
45
|
+
return Math.min(hueDiff, 360 - hueDiff);
|
|
46
|
+
}
|
|
47
|
+
/** Every candidate scored against one slot's ideal, nearest first. */
|
|
48
|
+
function rankCandidates(candidates, targetHue, targetHex, config) {
|
|
49
|
+
const scored = [];
|
|
50
|
+
for (const dye of candidates) {
|
|
51
|
+
// Facewear carries generic names ("Red", "Blue") and is not a dye since
|
|
52
|
+
// schema v2; it must never surface as a harmony match.
|
|
53
|
+
if (dye.category === 'Facewear')
|
|
54
|
+
continue;
|
|
55
|
+
scored.push({ dye, deviance: devianceFor(dye, targetHue, targetHex, config) });
|
|
56
|
+
}
|
|
57
|
+
scored.sort((a, b) => a.deviance - b.deviance);
|
|
58
|
+
return scored;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether `harmonyType` is one this module can build.
|
|
62
|
+
*
|
|
63
|
+
* Every key of `HARMONY_OFFSETS` works, which is the point: a type is a row in
|
|
64
|
+
* that table, not a bespoke method, so the ten the page offers are the ten
|
|
65
|
+
* every surface can offer.
|
|
66
|
+
*/
|
|
67
|
+
export function isKnownHarmonyType(harmonyType) {
|
|
68
|
+
return Object.hasOwn(HARMONY_OFFSETS, harmonyType);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Choose a dye for every slot of a harmony.
|
|
72
|
+
*
|
|
73
|
+
* Callers filter `candidates` themselves — this function does not know about
|
|
74
|
+
* anyone's dye-filter shape, and pre-filtering is what makes "the nearest
|
|
75
|
+
* ALLOWED dye to the ideal" the answer, rather than "the nearest allowed dye to
|
|
76
|
+
* a dye that was thrown away".
|
|
77
|
+
*
|
|
78
|
+
* @param baseHex the colour the harmony is built around; supplies H, S and V
|
|
79
|
+
* @param harmonyType a key of `HARMONY_OFFSETS`
|
|
80
|
+
* @param candidates the pool to choose from, already filtered
|
|
81
|
+
* @param config ranking and de-duplication behaviour
|
|
82
|
+
* @param options dyes to exclude, and any slots the caller has pinned
|
|
83
|
+
* @returns one slot per offset; `dye` is `null` for a slot with no candidate
|
|
84
|
+
*/
|
|
85
|
+
export function generateHarmonySlots(baseHex, harmonyType, candidates, config, options) {
|
|
86
|
+
// Own-property check, not a truthiness one: `HARMONY_OFFSETS['toString']`
|
|
87
|
+
// returns Object.prototype.toString, which is TRUTHY, so a `!offsets` guard
|
|
88
|
+
// sails past it and the `.forEach` below throws. The web app reads this type
|
|
89
|
+
// straight out of a share URL (`?harmony=`), so the key really can be
|
|
90
|
+
// arbitrary.
|
|
91
|
+
if (!isKnownHarmonyType(harmonyType))
|
|
92
|
+
return [];
|
|
93
|
+
const offsets = HARMONY_OFFSETS[harmonyType];
|
|
94
|
+
const baseHsv = ColorService.hexToHsv(baseHex);
|
|
95
|
+
const companionCount = config.companionCount ?? 0;
|
|
96
|
+
const preventDuplicates = config.preventDuplicates ?? false;
|
|
97
|
+
// Two different questions, and they were one set until 2026-09-03.
|
|
98
|
+
//
|
|
99
|
+
// `excluded` is "must never be chosen" — normally the base dye itself, which
|
|
100
|
+
// is never a member of its own harmony. A custom colour has no dye to
|
|
101
|
+
// exclude, which is why this is a list rather than a required base dye:
|
|
102
|
+
// `/harmony color:#FF0000` has a hex and nothing else.
|
|
103
|
+
//
|
|
104
|
+
// `used` is "already on screen", and only matters when the caller asked for
|
|
105
|
+
// no repeats.
|
|
106
|
+
//
|
|
107
|
+
// Seeding `used` with the exclusions conflated them, and `used` is read only
|
|
108
|
+
// on the `preventDuplicates` branch — so with duplicates allowed the
|
|
109
|
+
// exclusions did nothing at all, against this function's own documented
|
|
110
|
+
// contract. bot-logic defaults `preventDuplicates` to false, so `/harmony
|
|
111
|
+
// monochromatic` (a single `[0]` offset, whose ideal IS the base colour)
|
|
112
|
+
// answered the base dye as its own harmony at deltaE 0, and `/harmony
|
|
113
|
+
// analogous` on a near-grey answered the base twice.
|
|
114
|
+
const excluded = new Set(options?.excludeItemIDs ?? []);
|
|
115
|
+
const used = new Set();
|
|
116
|
+
const slots = [];
|
|
117
|
+
offsets.forEach((offset, index) => {
|
|
118
|
+
const normalisedOffset = ((offset % 360) + 360) % 360;
|
|
119
|
+
const targetHue = (baseHsv.h + normalisedOffset) % 360;
|
|
120
|
+
// The ideal carries the BASE's saturation and value onto the rotated hue.
|
|
121
|
+
// That is the whole reason a desaturated base finds desaturated dyes, and
|
|
122
|
+
// the single biggest difference from the per-type find*Dyes() methods.
|
|
123
|
+
const targetHex = ColorService.hsvToHex(targetHue, baseHsv.s, baseHsv.v);
|
|
124
|
+
const ranked = rankCandidates(candidates, targetHue, targetHex, config);
|
|
125
|
+
const pin = options?.pinned?.get(index);
|
|
126
|
+
// Every branch below assigns, so no initialiser: an unread `= null` here
|
|
127
|
+
// would be one more place for a future edit to leave a slot silently empty.
|
|
128
|
+
let chosen;
|
|
129
|
+
if (pin) {
|
|
130
|
+
// An explicit hand-swap wins its slot outright, exclusions included: the
|
|
131
|
+
// user naming a dye outranks our guess about which dyes are eligible.
|
|
132
|
+
chosen = { dye: pin, deviance: devianceFor(pin, targetHue, targetHex, config) };
|
|
133
|
+
}
|
|
134
|
+
else if (preventDuplicates) {
|
|
135
|
+
// First eligible-and-unused, else the nearest eligible even if already
|
|
136
|
+
// shown: a slot with a dye repeated beats a slot left blank. An excluded
|
|
137
|
+
// dye is not a fallback in either case.
|
|
138
|
+
chosen =
|
|
139
|
+
ranked.find((c) => !excluded.has(c.dye.itemID) && !used.has(c.dye.itemID)) ??
|
|
140
|
+
ranked.find((c) => !excluded.has(c.dye.itemID)) ??
|
|
141
|
+
null;
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
chosen = ranked.find((c) => !excluded.has(c.dye.itemID)) ?? null;
|
|
145
|
+
}
|
|
146
|
+
if (chosen)
|
|
147
|
+
used.add(chosen.dye.itemID);
|
|
148
|
+
const companions = [];
|
|
149
|
+
if (companionCount > 0) {
|
|
150
|
+
for (const candidate of ranked) {
|
|
151
|
+
if (companions.length >= companionCount)
|
|
152
|
+
break;
|
|
153
|
+
if (excluded.has(candidate.dye.itemID))
|
|
154
|
+
continue;
|
|
155
|
+
if (chosen && candidate.dye.itemID === chosen.dye.itemID)
|
|
156
|
+
continue;
|
|
157
|
+
if (preventDuplicates && used.has(candidate.dye.itemID))
|
|
158
|
+
continue;
|
|
159
|
+
companions.push(candidate.dye);
|
|
160
|
+
if (preventDuplicates)
|
|
161
|
+
used.add(candidate.dye.itemID);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
slots.push({
|
|
165
|
+
index,
|
|
166
|
+
offset: normalisedOffset,
|
|
167
|
+
targetHue,
|
|
168
|
+
targetHex,
|
|
169
|
+
dye: chosen?.dye ?? null,
|
|
170
|
+
deviance: chosen?.deviance ?? 0,
|
|
171
|
+
companions,
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
return slots;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=HarmonySelector.js.map
|