@dra2020/dra-types 1.8.100 → 1.8.102
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/colormgr.d.ts +2 -0
- package/dist/dra-types.js +54 -9
- package/dist/dra-types.js.map +1 -1
- package/dist/packedfields.d.ts +2 -3
- package/lib/colormgr.ts +54 -7
- package/lib/packedfields.ts +9 -3
- package/package.json +1 -1
package/dist/colormgr.d.ts
CHANGED
|
@@ -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
|
|
@@ -257,7 +258,8 @@ exports.ethnicBackgroundColor = ethnicBackgroundColor;
|
|
|
257
258
|
function ToAllEthnicColor(agg, dc, pd) {
|
|
258
259
|
// Use VAP/CVAP if it exists
|
|
259
260
|
const dataset = dc.primeVDS ? dc.primeVDS : dc.primeDDS;
|
|
260
|
-
|
|
261
|
+
const did = PF.toDatasetID(dataset);
|
|
262
|
+
return AggregateEthnicColor(PF.ToGetter(agg, dc, did, dataset), pd, dataset.endsWith('NH'));
|
|
261
263
|
}
|
|
262
264
|
exports.ToAllEthnicColor = ToAllEthnicColor;
|
|
263
265
|
function ToPartisanColorStr(agg, dc, pd) {
|
|
@@ -269,22 +271,23 @@ function ToPartisanDistrictColor(agg, dc, pd) {
|
|
|
269
271
|
}
|
|
270
272
|
exports.ToPartisanDistrictColor = ToPartisanDistrictColor;
|
|
271
273
|
function ToPartisanColor(agg, dc, stops) {
|
|
274
|
+
const did = PF.toDatasetID(dc.primeEDS);
|
|
272
275
|
if (dc.primeEDS === PF.DS_PVI2020) {
|
|
273
|
-
const getter16 = PF.ToGetter(agg, dc,
|
|
274
|
-
const getter20 = PF.ToGetter(agg, dc,
|
|
276
|
+
const getter16 = PF.ToGetter(agg, dc, did, PF.DS_PRES2016);
|
|
277
|
+
const getter20 = PF.ToGetter(agg, dc, did, PF.DS_PRES2020);
|
|
275
278
|
const pviRaw = PF.calcRaw2020Pvi(getter16, getter20);
|
|
276
279
|
const color = ColorFromRGBPcts((1 - pviRaw / 100), 0, pviRaw / 100, stops);
|
|
277
280
|
//console.log('Pvi (r, d, color): (' + (1 - pviRaw/100) + ', ' + pviRaw/100 + ', ' + color + ')');
|
|
278
281
|
return color;
|
|
279
282
|
}
|
|
280
283
|
else if (dc.primeEDS === PF.DS_PVI2016) {
|
|
281
|
-
const getter = PF.ToGetter(agg, dc,
|
|
284
|
+
const getter = PF.ToGetter(agg, dc, did, dc.primeEDS);
|
|
282
285
|
const pviRaw = PF.calcRawPvi(getter);
|
|
283
286
|
const color = ColorFromRGBPcts((1 - pviRaw / 100), 0, pviRaw / 100, stops);
|
|
284
287
|
return color;
|
|
285
288
|
}
|
|
286
289
|
else {
|
|
287
|
-
const getter = PF.ToGetter(agg, dc,
|
|
290
|
+
const getter = PF.ToGetter(agg, dc, did, dc.primeEDS);
|
|
288
291
|
return AggregatePartisanColorStr(getter, stops);
|
|
289
292
|
}
|
|
290
293
|
}
|
|
@@ -307,6 +310,7 @@ function ToEthnicColorStr(agg, dc, pd, detail) {
|
|
|
307
310
|
let total = 'Tot';
|
|
308
311
|
let bInvert = false;
|
|
309
312
|
const dataset = dc.primeVDS ? dc.primeVDS : dc.primeDDS;
|
|
313
|
+
const did = PF.toDatasetID(dataset);
|
|
310
314
|
switch (detail) {
|
|
311
315
|
case null:
|
|
312
316
|
case '':
|
|
@@ -346,7 +350,7 @@ function ToEthnicColorStr(agg, dc, pd, detail) {
|
|
|
346
350
|
break;
|
|
347
351
|
default: break;
|
|
348
352
|
}
|
|
349
|
-
const getter = PF.ToGetter(agg, dc,
|
|
353
|
+
const getter = PF.ToGetter(agg, dc, did, dataset);
|
|
350
354
|
let den = getter(total);
|
|
351
355
|
let num = getter(ethnic);
|
|
352
356
|
if (den === undefined || isNaN(den) || num === undefined || isNaN(num))
|
|
@@ -569,6 +573,38 @@ function allGroups16Colors(palette, colors) {
|
|
|
569
573
|
return modColors;
|
|
570
574
|
}
|
|
571
575
|
exports.allGroups16Colors = allGroups16Colors;
|
|
576
|
+
function ToExtendedColor(agg, dc, colorBy) {
|
|
577
|
+
var _a;
|
|
578
|
+
// compute pct
|
|
579
|
+
const { datasetid, field } = (0, datasets_1.parseColorBy)(colorBy);
|
|
580
|
+
if (!datasetid || !field || !dc.dsMeta || !dc.dsMeta[datasetid] || !((_a = dc.dsMeta[datasetid]) === null || _a === void 0 ? void 0 : _a.fields[field]))
|
|
581
|
+
return '#ffffff';
|
|
582
|
+
const meta = dc.dsMeta[datasetid];
|
|
583
|
+
let getter = PF.ToGetter(agg, dc, datasetid, datasetid);
|
|
584
|
+
let fields = PF.sortedFieldList(meta);
|
|
585
|
+
let den = 0;
|
|
586
|
+
if (meta.fields['Tot'])
|
|
587
|
+
den = getter('Tot');
|
|
588
|
+
else
|
|
589
|
+
fields.forEach(f => { den += getter(f); });
|
|
590
|
+
let num = 0;
|
|
591
|
+
let dfield = meta.fields[field];
|
|
592
|
+
if (dfield.colorBySum)
|
|
593
|
+
for (let i = 0; i < fields.length; i++) {
|
|
594
|
+
num += getter(fields[i]);
|
|
595
|
+
if (fields[i] === field)
|
|
596
|
+
break;
|
|
597
|
+
}
|
|
598
|
+
else
|
|
599
|
+
num = getter(field);
|
|
600
|
+
// Careful...
|
|
601
|
+
if (den == 0 || den === undefined || isNaN(den) || num === undefined || isNaN(num))
|
|
602
|
+
return '#ffffff';
|
|
603
|
+
const pct = dfield.invert ? 1 - (num / den) : num / den;
|
|
604
|
+
const color = baseclient_1.Util.execGradient(makeStops(exports.EthnicFewStops, baseclient_1.Colors.EthnicFewClassicColors), pct);
|
|
605
|
+
return color;
|
|
606
|
+
}
|
|
607
|
+
exports.ToExtendedColor = ToExtendedColor;
|
|
572
608
|
function computeDistrictColors(params) {
|
|
573
609
|
let dcNew = [];
|
|
574
610
|
for (let i = 0; i < params.aggregates.length; i++) {
|
|
@@ -593,7 +629,12 @@ function computeDistrictColors(params) {
|
|
|
593
629
|
dc.colorSolid = dc.colorEthnic;
|
|
594
630
|
break;
|
|
595
631
|
default:
|
|
596
|
-
|
|
632
|
+
if ((0, datasets_1.isColorBy)(params.colorDistrictsBy)) {
|
|
633
|
+
dc.colorExtended = ToExtendedColor(agg, params.datasetContext, params.colorDistrictsBy);
|
|
634
|
+
dc.colorSolid = dc.colorExtended;
|
|
635
|
+
}
|
|
636
|
+
else
|
|
637
|
+
dc.colorSolid = mapColor;
|
|
597
638
|
break;
|
|
598
639
|
}
|
|
599
640
|
dcNew.push(dc);
|
|
@@ -1395,7 +1436,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1395
1436
|
|
|
1396
1437
|
|
|
1397
1438
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1398
|
-
exports.pvi2020Str = exports.calcRaw2020Pvi = exports.pviStr = exports.calcRawPvi = exports.calcShift = exports.ToGetterPvi20 = exports.ToGetterPvi16 = exports.ToGetter = exports.fieldGetterNotLoaded = exports.findPackedField = exports.getPackedField = exports.diffPackedFields = exports.decrementPackedFields = exports.aggregateCount = exports.aggregatePackedFields = exports.packedCopy = exports.zeroPackedCopy = exports.zeroPackedFields = exports.retrievePackedIndex = exports.retrievePackedFields = exports.pushedExtPackedFields = exports.featurePushedExtPackedFields = exports.featurePushExtPackedFields = exports.isExtDataset = exports.setPackedFields = exports.hasPackedFields = exports.computePackedFields = exports.computeMetaIndex = exports.sortedFieldList = exports.fGet = exports.DS_PRES2016 = exports.DS_PRES2020 = exports.DS_PVI2016 = exports.PVI2020_Title = exports.DS_PVI2020 = exports.DATASET_TYPE_OTHER = exports.DATASET_TYPE_PVI = exports.DATASET_TYPE_ELECTION = exports.DATASET_TYPE_DEMOGRAPHIC = exports.AGG_pvi = exports.AGG_pres2016 = exports.AGG_pres2008 = exports.AGG_DEMOGRAPHIC18 = exports.AGG_DEMOGRAPHIC = void 0;
|
|
1439
|
+
exports.pvi2020Str = exports.calcRaw2020Pvi = exports.pviStr = exports.calcRawPvi = exports.calcShift = exports.ToGetterPvi20 = exports.ToGetterPvi16 = exports.ToGetter = exports.fieldGetterNotLoaded = exports.findPackedField = exports.getPackedField = exports.diffPackedFields = exports.decrementPackedFields = exports.aggregateCount = exports.aggregatePackedFields = exports.packedCopy = exports.zeroPackedCopy = exports.zeroPackedFields = exports.retrievePackedIndex = exports.retrievePackedFields = exports.pushedExtPackedFields = exports.featurePushedExtPackedFields = exports.featurePushExtPackedFields = exports.toDatasetID = exports.isExtDataset = exports.setPackedFields = exports.hasPackedFields = exports.computePackedFields = exports.computeMetaIndex = exports.sortedFieldList = exports.fGet = exports.DS_PRES2016 = exports.DS_PRES2020 = exports.DS_PVI2016 = exports.PVI2020_Title = exports.DS_PVI2020 = exports.DATASET_TYPE_OTHER = exports.DATASET_TYPE_PVI = exports.DATASET_TYPE_ELECTION = exports.DATASET_TYPE_DEMOGRAPHIC = exports.AGG_pvi = exports.AGG_pres2016 = exports.AGG_pres2008 = exports.AGG_DEMOGRAPHIC18 = exports.AGG_DEMOGRAPHIC = void 0;
|
|
1399
1440
|
const baseclient_1 = __webpack_require__(/*! @dra2020/baseclient */ "@dra2020/baseclient");
|
|
1400
1441
|
exports.AGG_DEMOGRAPHIC = 'demographic';
|
|
1401
1442
|
exports.AGG_DEMOGRAPHIC18 = 'demographic18';
|
|
@@ -1507,6 +1548,10 @@ function isExtDataset(did) {
|
|
|
1507
1548
|
return did && reExtDataset.test(did);
|
|
1508
1549
|
}
|
|
1509
1550
|
exports.isExtDataset = isExtDataset;
|
|
1551
|
+
function toDatasetID(datasetKey) {
|
|
1552
|
+
return isExtDataset(datasetKey) ? datasetKey : '';
|
|
1553
|
+
}
|
|
1554
|
+
exports.toDatasetID = toDatasetID;
|
|
1510
1555
|
function featurePushExtPackedFields(f, datasetid, index, data, card) {
|
|
1511
1556
|
var _a;
|
|
1512
1557
|
let blocks = ((_a = f === null || f === void 0 ? void 0 : f.properties) === null || _a === void 0 ? void 0 : _a.blocks) || (card.has(f.properties.id) ? [f.properties.id] : null);
|