@dra2020/dra-types 1.8.100 → 1.8.101

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.
@@ -51,6 +51,7 @@ export declare function allGroups16Colors(palette: PaletteName, colors: string[]
51
51
  export interface DistrictCache {
52
52
  colorElection?: string;
53
53
  colorEthnic?: string;
54
+ colorExtended?: string;
54
55
  colorSolid?: string;
55
56
  }
56
57
  export interface ColorProp {
@@ -66,4 +67,5 @@ export interface DistrictColorParams {
66
67
  usePalette: string;
67
68
  colorDistrictsBy: string;
68
69
  }
70
+ export declare function ToExtendedColor(agg: PF.PackedFields, dc: PF.DatasetContext, colorBy: string): string;
69
71
  export declare function computeDistrictColors(params: DistrictColorParams): DistrictCache[];
package/dist/dra-types.js CHANGED
@@ -107,9 +107,10 @@ exports.BucketMap = {
107
107
 
108
108
 
109
109
  Object.defineProperty(exports, "__esModule", ({ value: true }));
110
- exports.computeDistrictColors = exports.allGroups16Colors = exports.colorsFromStopsPartisan = exports.colorsFromStops = exports.PaletteNames = exports.ColorFromRGBPcts = exports.AggregatePartisanColorStr = exports.AggregatePartisanColor = exports.AggregateEthnicColor = exports.ToEthnicColorStr = exports.ToPartisanShiftColor = exports.ToPartisanDistrictColor = exports.ToPartisanColorStr = exports.ToAllEthnicColor = exports.ethnicBackgroundColor = exports.makeStops = exports.DefaultPaletteDefaults = exports.EthnicFewStops = exports.PartisanPrecinctStops = exports.PartisanDistrictStops = exports.ColorByGreatD = exports.ColorByGoodD = exports.ColorByFairD = exports.ColorByEven = exports.ColorByFairR = exports.ColorByGoodR = exports.ColorByGreatR = exports.EthnicTextColor = exports.ColorByBlackAsian = exports.ColorByAsianHispanic = exports.ColorByAsianWhite = exports.ColorByHispanicBlack = exports.ColorByBlackWhite = exports.ColorByHispanicWhite = exports.ColorByMix = exports.ColorByMostlyNative = exports.ColorByMostlyAsian = exports.ColorByMostlyHispanic = exports.ColorByMostlyBlack = exports.ColorByMostlyWhite = exports.ColorBySolidAsian = exports.ColorBySolidHispanic = exports.ColorBySolidBlack = exports.ColorBySolidWhite = void 0;
110
+ exports.computeDistrictColors = exports.ToExtendedColor = exports.allGroups16Colors = exports.colorsFromStopsPartisan = exports.colorsFromStops = exports.PaletteNames = exports.ColorFromRGBPcts = exports.AggregatePartisanColorStr = exports.AggregatePartisanColor = exports.AggregateEthnicColor = exports.ToEthnicColorStr = exports.ToPartisanShiftColor = exports.ToPartisanDistrictColor = exports.ToPartisanColorStr = exports.ToAllEthnicColor = exports.ethnicBackgroundColor = exports.makeStops = exports.DefaultPaletteDefaults = exports.EthnicFewStops = exports.PartisanPrecinctStops = exports.PartisanDistrictStops = exports.ColorByGreatD = exports.ColorByGoodD = exports.ColorByFairD = exports.ColorByEven = exports.ColorByFairR = exports.ColorByGoodR = exports.ColorByGreatR = exports.EthnicTextColor = exports.ColorByBlackAsian = exports.ColorByAsianHispanic = exports.ColorByAsianWhite = exports.ColorByHispanicBlack = exports.ColorByBlackWhite = exports.ColorByHispanicWhite = exports.ColorByMix = exports.ColorByMostlyNative = exports.ColorByMostlyAsian = exports.ColorByMostlyHispanic = exports.ColorByMostlyBlack = exports.ColorByMostlyWhite = exports.ColorBySolidAsian = exports.ColorBySolidHispanic = exports.ColorBySolidBlack = exports.ColorBySolidWhite = void 0;
111
111
  // App libraries
112
112
  const PF = __webpack_require__(/*! ./packedfields */ "./lib/packedfields.ts");
113
+ const datasets_1 = __webpack_require__(/*! ./datasets */ "./lib/datasets.ts");
113
114
  const baseclient_1 = __webpack_require__(/*! @dra2020/baseclient */ "@dra2020/baseclient");
114
115
  // All Groups Mosaic has 16 colors
115
116
  // Index values into the 16 colors
@@ -569,6 +570,38 @@ function allGroups16Colors(palette, colors) {
569
570
  return modColors;
570
571
  }
571
572
  exports.allGroups16Colors = allGroups16Colors;
573
+ function ToExtendedColor(agg, dc, colorBy) {
574
+ var _a;
575
+ // compute pct
576
+ const { datasetid, field } = (0, datasets_1.parseColorBy)(colorBy);
577
+ if (!datasetid || !field || !dc.dsMeta || !dc.dsMeta[datasetid] || !((_a = dc.dsMeta[datasetid]) === null || _a === void 0 ? void 0 : _a.fields[field]))
578
+ return '#ffffff';
579
+ const meta = dc.dsMeta[datasetid];
580
+ let getter = PF.ToGetter(agg, dc, datasetid, datasetid);
581
+ let fields = PF.sortedFieldList(meta);
582
+ let den = 0;
583
+ if (meta.fields['Tot'])
584
+ den = getter('Tot');
585
+ else
586
+ fields.forEach(f => { den += getter(f); });
587
+ let num = 0;
588
+ let dfield = meta.fields[field];
589
+ if (dfield.colorBySum)
590
+ for (let i = 0; i < fields.length; i++) {
591
+ num += getter(fields[i]);
592
+ if (fields[i] === field)
593
+ break;
594
+ }
595
+ else
596
+ num = getter(field);
597
+ // Careful...
598
+ if (den == 0 || den === undefined || isNaN(den) || num === undefined || isNaN(num))
599
+ return '#ffffff';
600
+ const pct = dfield.invert ? 1 - (num / den) : num / den;
601
+ const color = baseclient_1.Util.execGradient(makeStops(exports.EthnicFewStops, baseclient_1.Colors.EthnicFewClassicColors), pct);
602
+ return color;
603
+ }
604
+ exports.ToExtendedColor = ToExtendedColor;
572
605
  function computeDistrictColors(params) {
573
606
  let dcNew = [];
574
607
  for (let i = 0; i < params.aggregates.length; i++) {
@@ -593,7 +626,12 @@ function computeDistrictColors(params) {
593
626
  dc.colorSolid = dc.colorEthnic;
594
627
  break;
595
628
  default:
596
- dc.colorSolid = mapColor;
629
+ if ((0, datasets_1.isColorBy)(params.colorDistrictsBy)) {
630
+ dc.colorExtended = ToExtendedColor(agg, params.datasetContext, params.colorDistrictsBy);
631
+ dc.colorSolid = dc.colorExtended;
632
+ }
633
+ else
634
+ dc.colorSolid = mapColor;
597
635
  break;
598
636
  }
599
637
  dcNew.push(dc);