@dra2020/district-analytics 12.1.2 → 14.1.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/district-analytics.js +69 -96
- package/dist/district-analytics.js.map +1 -1
- package/dist/src/_api.d.ts +3 -3
- package/dist/src/_data.d.ts +4 -4
- package/dist/src/index.d.ts +10 -1
- package/dist/src/minority.d.ts +2 -2
- package/package.json +16 -19
|
@@ -44,6 +44,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
44
44
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
45
45
|
exports.AnalyticsSession = void 0;
|
|
46
46
|
const baseclient_1 = __webpack_require__(/*! @dra2020/baseclient */ "@dra2020/baseclient");
|
|
47
|
+
// import * as DT from '@dra2020/dra-types';
|
|
47
48
|
const Score = __importStar(__webpack_require__(/*! @dra2020/dra-score */ "@dra2020/dra-score"));
|
|
48
49
|
const preprocess_1 = __webpack_require__(/*! ./preprocess */ "./src/preprocess.ts");
|
|
49
50
|
const analyze_1 = __webpack_require__(/*! ./analyze */ "./src/analyze.ts");
|
|
@@ -53,6 +54,7 @@ const results_2 = __webpack_require__(/*! ./results */ "./src/results.ts");
|
|
|
53
54
|
const minority_1 = __webpack_require__(/*! ./minority */ "./src/minority.ts");
|
|
54
55
|
const D = __importStar(__webpack_require__(/*! ./_data */ "./src/_data.ts"));
|
|
55
56
|
const U = __importStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"));
|
|
57
|
+
// import * as S from './settings';
|
|
56
58
|
class AnalyticsSession {
|
|
57
59
|
constructor(SessionRequest) {
|
|
58
60
|
this.legislativeDistricts = false; // 2020
|
|
@@ -74,7 +76,7 @@ class AnalyticsSession {
|
|
|
74
76
|
this.legislativeDistricts = SessionRequest['legislativeDistricts'];
|
|
75
77
|
this.state = new D.State(this, SessionRequest['stateXX'], SessionRequest['nDistricts']);
|
|
76
78
|
this.counties = new D.Counties(this, SessionRequest['counties']);
|
|
77
|
-
this.graph = new D.
|
|
79
|
+
this.graph = new D.GraphClass(this, SessionRequest['graph']);
|
|
78
80
|
this.features = new D.Features(this, SessionRequest['data'], this.config['datasets']);
|
|
79
81
|
this.plan = new D.Plan(this, SessionRequest['plan']);
|
|
80
82
|
this.districts = new D.Districts(this, SessionRequest['districtShapes']);
|
|
@@ -102,12 +104,12 @@ class AnalyticsSession {
|
|
|
102
104
|
// Guard against being handed a map w/o any precincts assigned
|
|
103
105
|
if (U.isObjectEmpty(this.plan._planByGeoID))
|
|
104
106
|
return false;
|
|
105
|
-
preprocess_1.doPreprocessData(this, bLog);
|
|
106
|
-
analyze_1.doAnalyzeDistricts(this, bLog);
|
|
107
|
-
analyze_1.doAnalyzePlan(this, bLog);
|
|
108
|
-
this._profile = score_1.profilePlan(this, bLog);
|
|
109
|
-
this._scorecard = score_1.scorePlan(this, this._profile, bLog, overridesJSON);
|
|
110
|
-
results_1.doAnalyzePostProcessing(this, bLog);
|
|
107
|
+
(0, preprocess_1.doPreprocessData)(this, bLog);
|
|
108
|
+
(0, analyze_1.doAnalyzeDistricts)(this, bLog);
|
|
109
|
+
(0, analyze_1.doAnalyzePlan)(this, bLog);
|
|
110
|
+
this._profile = (0, score_1.profilePlan)(this, bLog);
|
|
111
|
+
this._scorecard = (0, score_1.scorePlan)(this, this._profile, bLog, overridesJSON);
|
|
112
|
+
(0, results_1.doAnalyzePostProcessing)(this, bLog);
|
|
111
113
|
}
|
|
112
114
|
catch (e) {
|
|
113
115
|
console.log("Exception caught by analyzePlan().");
|
|
@@ -119,11 +121,11 @@ class AnalyticsSession {
|
|
|
119
121
|
// 11-03-2020 - Added for racially polarized voting analysis
|
|
120
122
|
// NOTE - This assumes that analyzePlan() has been run!
|
|
121
123
|
analyzeRacialPolarization(districtID, groups, bLog = false) {
|
|
122
|
-
return minority_1.doAnalyzeRacialPolarization(this, districtID, groups, bLog);
|
|
124
|
+
return (0, minority_1.doAnalyzeRacialPolarization)(this, districtID, groups, bLog);
|
|
123
125
|
}
|
|
124
126
|
// NOTE - This assumes that analyzePlan() has been run!
|
|
125
127
|
getDistrictStatistics(bLog = false) {
|
|
126
|
-
return results_2.prepareDistrictStatistics(this, bLog);
|
|
128
|
+
return (0, results_2.prepareDistrictStatistics)(this, bLog);
|
|
127
129
|
}
|
|
128
130
|
getPlanProfile(bLog = false) {
|
|
129
131
|
return this._profile;
|
|
@@ -144,7 +146,7 @@ class AnalyticsSession {
|
|
|
144
146
|
}
|
|
145
147
|
// NOTE - This assumes that analyzePlan() has been run!
|
|
146
148
|
getRequirementsChecklist(bLog = false) {
|
|
147
|
-
return results_2.prepareRequirementsChecklist(this, bLog);
|
|
149
|
+
return (0, results_2.prepareRequirementsChecklist)(this, bLog);
|
|
148
150
|
}
|
|
149
151
|
// NOTE - This assumes that analyzePlan() has been run!
|
|
150
152
|
getDiscontiguousDistrictFeatures(bLog = false) {
|
|
@@ -231,8 +233,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
231
233
|
return result;
|
|
232
234
|
};
|
|
233
235
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
234
|
-
exports.
|
|
235
|
-
const
|
|
236
|
+
exports.GraphClass = exports.invertPlan = exports.Plan = exports.State = exports.Counties = exports.fieldForFeature = exports.geoIDForFeature = exports.Features = exports.inferSelectedMinority = exports.Districts = void 0;
|
|
237
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
236
238
|
const U = __importStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"));
|
|
237
239
|
const S = __importStar(__webpack_require__(/*! ./settings */ "./src/settings.ts"));
|
|
238
240
|
const compact_1 = __webpack_require__(/*! ./compact */ "./src/compact.ts");
|
|
@@ -470,7 +472,7 @@ class Districts {
|
|
|
470
472
|
demPct = demVotes / totVotes;
|
|
471
473
|
repPct = repVotes / totVotes;
|
|
472
474
|
othPct = othVotes / totVotes;
|
|
473
|
-
DemSeat = political_1.fptpWin(demPct);
|
|
475
|
+
DemSeat = (0, political_1.fptpWin)(demPct);
|
|
474
476
|
}
|
|
475
477
|
// Total minority VAP
|
|
476
478
|
let minorityPop = totalVAP - whitePop;
|
|
@@ -503,8 +505,8 @@ class Districts {
|
|
|
503
505
|
const features = geoIDs;
|
|
504
506
|
const nakedGraph = graph._graph;
|
|
505
507
|
const nakedPlan = plan._planByGeoID;
|
|
506
|
-
bContiguous =
|
|
507
|
-
bNotEmbedded = (!
|
|
508
|
+
bContiguous = dra_analytics_1.Graph.isConnected(features, nakedGraph, bLog);
|
|
509
|
+
bNotEmbedded = (!dra_analytics_1.Graph.isEmbedded(i, features, nakedPlan, nakedGraph, bLog));
|
|
508
510
|
}
|
|
509
511
|
{ // UPDATE THE DISTRICT STATISTICS
|
|
510
512
|
// NOTE - These are set below for both non-empty & empty districts:
|
|
@@ -619,7 +621,7 @@ class Districts {
|
|
|
619
621
|
// the underlying function and exposing it here to illustrate the parallelism
|
|
620
622
|
// with recalcStatistics(). These are called in tandem by doAnalyzeDistricts().
|
|
621
623
|
extractDistrictShapeProperties(bLog = false) {
|
|
622
|
-
compact_1.extractDistrictProperties(this._session, bLog);
|
|
624
|
+
(0, compact_1.extractDistrictProperties)(this._session, bLog);
|
|
623
625
|
}
|
|
624
626
|
getCountyIndex(geoID) {
|
|
625
627
|
let countyFIPS = U.parseGeoID(geoID)['county'];
|
|
@@ -1082,7 +1084,7 @@ function invertPlan(plan, s, bLog = false) {
|
|
|
1082
1084
|
return invertedPlan;
|
|
1083
1085
|
}
|
|
1084
1086
|
exports.invertPlan = invertPlan;
|
|
1085
|
-
class
|
|
1087
|
+
class GraphClass {
|
|
1086
1088
|
constructor(s, graph) {
|
|
1087
1089
|
this._session = s;
|
|
1088
1090
|
this._graph = graph;
|
|
@@ -1103,7 +1105,7 @@ class Graph {
|
|
|
1103
1105
|
// return U.getObjectKeys(this._graph[node]);
|
|
1104
1106
|
}
|
|
1105
1107
|
}
|
|
1106
|
-
exports.
|
|
1108
|
+
exports.GraphClass = GraphClass;
|
|
1107
1109
|
|
|
1108
1110
|
|
|
1109
1111
|
/***/ }),
|
|
@@ -1134,17 +1136,17 @@ exports.doAnalyzeDistricts = doAnalyzeDistricts;
|
|
|
1134
1136
|
// NOTE - I could make this table-driven, but I'm thinking that the explicit
|
|
1135
1137
|
// calls might make chunking for aync easier.
|
|
1136
1138
|
function doAnalyzePlan(s, bLog = false) {
|
|
1137
|
-
s.tests[0 /* Complete */] = valid_1.doIsComplete(s, bLog);
|
|
1138
|
-
s.tests[1 /* Contiguous */] = valid_1.doIsContiguous(s, bLog);
|
|
1139
|
-
s.tests[2 /* FreeOfHoles */] = valid_1.doIsFreeOfHoles(s, bLog);
|
|
1139
|
+
s.tests[0 /* Complete */] = (0, valid_1.doIsComplete)(s, bLog);
|
|
1140
|
+
s.tests[1 /* Contiguous */] = (0, valid_1.doIsContiguous)(s, bLog);
|
|
1141
|
+
s.tests[2 /* FreeOfHoles */] = (0, valid_1.doIsFreeOfHoles)(s, bLog);
|
|
1140
1142
|
// NOTE - I can't check whether a population deviation is legal or not, until
|
|
1141
1143
|
// the raw % is normalized. A zero (0) would mean "too much" / "not legal," for
|
|
1142
1144
|
// the given type of district (CD vs. LD). The EqualPopulation test is derived
|
|
1143
1145
|
// from PopulationDeviation, as part of scorecard or test log preparation.
|
|
1144
1146
|
// Create an empty test entry here though ...
|
|
1145
1147
|
s.tests[3 /* EqualPopulation */] = s.getTest(3 /* EqualPopulation */);
|
|
1146
|
-
s.tests[5 /* UnexpectedCountySplits */] = cohesive_1.doFindCountiesSplitUnexpectedly(s, bLog);
|
|
1147
|
-
s.tests[6 /* VTDSplits */] = cohesive_1.doFindSplitVTDs(s, bLog);
|
|
1148
|
+
s.tests[5 /* UnexpectedCountySplits */] = (0, cohesive_1.doFindCountiesSplitUnexpectedly)(s, bLog);
|
|
1149
|
+
s.tests[6 /* VTDSplits */] = (0, cohesive_1.doFindSplitVTDs)(s, bLog);
|
|
1148
1150
|
// Enable a Test Log and Scorecard to be generated
|
|
1149
1151
|
s.bPlanAnalyzed = true;
|
|
1150
1152
|
s.bPostProcessingDone = false;
|
|
@@ -1156,7 +1158,7 @@ exports.doAnalyzePlan = doAnalyzePlan;
|
|
|
1156
1158
|
// Equal Population to be secondary pass/fail validation.
|
|
1157
1159
|
//
|
|
1158
1160
|
function doDeriveSecondaryTests(s, bLog = false) {
|
|
1159
|
-
s.tests[3 /* EqualPopulation */] = equal_1.doHasEqualPopulations(s, bLog);
|
|
1161
|
+
s.tests[3 /* EqualPopulation */] = (0, equal_1.doHasEqualPopulations)(s, bLog);
|
|
1160
1162
|
}
|
|
1161
1163
|
exports.doDeriveSecondaryTests = doDeriveSecondaryTests;
|
|
1162
1164
|
|
|
@@ -1410,7 +1412,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
1410
1412
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1411
1413
|
exports.scoreKIWYSICompactness = exports.extractDistrictProperties = void 0;
|
|
1412
1414
|
const baseclient_1 = __webpack_require__(/*! @dra2020/baseclient */ "@dra2020/baseclient");
|
|
1413
|
-
const
|
|
1415
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1414
1416
|
const U = __importStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"));
|
|
1415
1417
|
// HELPER TO EXTRACT PROPERTIES OF DISTRICT SHAPES
|
|
1416
1418
|
function extractDistrictProperties(s, bLog = false) {
|
|
@@ -1461,7 +1463,7 @@ function scoreKIWYSICompactness(s, bLog = false) {
|
|
|
1461
1463
|
goodShapes.features.push(f);
|
|
1462
1464
|
}
|
|
1463
1465
|
}
|
|
1464
|
-
const scores = Compactness.
|
|
1466
|
+
const scores = dra_analytics_1.Compactness.kiwysiScoreShapes(goodShapes, 0 /* Revised */);
|
|
1465
1467
|
// Round & invert the scores here at the source vs. later on, higher up.
|
|
1466
1468
|
// Raw KIWYSI scores will be 1–100 with smaller better, so map to 1–100 bigger better.
|
|
1467
1469
|
return scores.map(n => 100 - Math.round(n) + 1);
|
|
@@ -1564,7 +1566,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1564
1566
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1565
1567
|
};
|
|
1566
1568
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1567
|
-
exports.inferSelectedMinority = exports.fieldForFeature = exports.geoIDForFeature = void 0;
|
|
1569
|
+
exports.uncertaintyOfMembership = exports.effectiveSplits = exports.isAntimajoritarian = exports.ratePartisanBias = exports.inferSelectedMinority = exports.fieldForFeature = exports.geoIDForFeature = void 0;
|
|
1568
1570
|
__exportStar(__webpack_require__(/*! ./_api */ "./src/_api.ts"), exports);
|
|
1569
1571
|
var _data_1 = __webpack_require__(/*! ./_data */ "./src/_data.ts");
|
|
1570
1572
|
Object.defineProperty(exports, "geoIDForFeature", ({ enumerable: true, get: function () { return _data_1.geoIDForFeature; } }));
|
|
@@ -1573,6 +1575,12 @@ Object.defineProperty(exports, "inferSelectedMinority", ({ enumerable: true, get
|
|
|
1573
1575
|
__exportStar(__webpack_require__(/*! ./results */ "./src/results.ts"), exports);
|
|
1574
1576
|
__exportStar(__webpack_require__(/*! ./types */ "./src/types.ts"), exports);
|
|
1575
1577
|
__exportStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"), exports);
|
|
1578
|
+
// Re-export RPV types and COI splitting functions
|
|
1579
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1580
|
+
exports.ratePartisanBias = dra_analytics_1.Rate.ratePartisanBias;
|
|
1581
|
+
exports.isAntimajoritarian = dra_analytics_1.Rate.isAntimajoritarian;
|
|
1582
|
+
exports.effectiveSplits = dra_analytics_1.Splitting.effectiveSplits;
|
|
1583
|
+
exports.uncertaintyOfMembership = dra_analytics_1.Splitting.uncertaintyOfMembership;
|
|
1576
1584
|
|
|
1577
1585
|
|
|
1578
1586
|
/***/ }),
|
|
@@ -1587,31 +1595,12 @@ __exportStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"), exports);
|
|
|
1587
1595
|
//
|
|
1588
1596
|
// PROTECTS MINORITIES
|
|
1589
1597
|
//
|
|
1590
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
1591
|
-
if (k2 === undefined) k2 = k;
|
|
1592
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
1593
|
-
}) : (function(o, m, k, k2) {
|
|
1594
|
-
if (k2 === undefined) k2 = k;
|
|
1595
|
-
o[k2] = m[k];
|
|
1596
|
-
}));
|
|
1597
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
1598
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
1599
|
-
}) : function(o, v) {
|
|
1600
|
-
o["default"] = v;
|
|
1601
|
-
});
|
|
1602
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1603
|
-
if (mod && mod.__esModule) return mod;
|
|
1604
|
-
var result = {};
|
|
1605
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1606
|
-
__setModuleDefault(result, mod);
|
|
1607
|
-
return result;
|
|
1608
|
-
};
|
|
1609
1598
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
1610
1599
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1611
1600
|
};
|
|
1612
1601
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1613
1602
|
exports.doAnalyzeRacialPolarization = exports.getVRASection5 = exports.getMajorityMinority = void 0;
|
|
1614
|
-
const
|
|
1603
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1615
1604
|
const majority_minority_json_1 = __importDefault(__webpack_require__(/*! ../static/majority-minority.json */ "./static/majority-minority.json"));
|
|
1616
1605
|
const vra5_preclearance_json_1 = __importDefault(__webpack_require__(/*! ../static/vra5-preclearance.json */ "./static/vra5-preclearance.json"));
|
|
1617
1606
|
// TODO - Update/revise this, when the update comes out in September:
|
|
@@ -1646,7 +1635,7 @@ function doAnalyzeRacialPolarization(s, districtID, groups, bLog = false) {
|
|
|
1646
1635
|
return undefined;
|
|
1647
1636
|
if (points.comparison.length <= 10)
|
|
1648
1637
|
return undefined;
|
|
1649
|
-
return
|
|
1638
|
+
return dra_analytics_1.Minority.analyzeRacialVoting(points, districtID, groups);
|
|
1650
1639
|
}
|
|
1651
1640
|
exports.doAnalyzeRacialPolarization = doAnalyzeRacialPolarization;
|
|
1652
1641
|
// 11-18-2020 - Moved RPV to racial-voting package.
|
|
@@ -2053,7 +2042,7 @@ function doAnalyzePostProcessing(s, bLog = false) {
|
|
|
2053
2042
|
scorecard.splitting.details['countiesWithSplits'] = simpleSplits['details']['countiesWithSplits'];
|
|
2054
2043
|
// NOTE - Add split precincts in dra-client directly
|
|
2055
2044
|
// Derive secondary tests
|
|
2056
|
-
analyze_1.doDeriveSecondaryTests(s, bLog);
|
|
2045
|
+
(0, analyze_1.doDeriveSecondaryTests)(s, bLog);
|
|
2057
2046
|
// Toggle the semaphore, so postprocessing isn't for both the testlog & scorecard
|
|
2058
2047
|
s.bPostProcessingDone = true;
|
|
2059
2048
|
}
|
|
@@ -2409,7 +2398,7 @@ function isUninhabited(geoID, s) {
|
|
|
2409
2398
|
const f = s.features.featureByIndex(featureID);
|
|
2410
2399
|
// 03-27-21
|
|
2411
2400
|
const dk = s.features._keys["CENSUS" /* CENSUS */];
|
|
2412
|
-
const totalPop = _data_1.fieldForFeature(f, dk, "Tot" /* TotalPop */);
|
|
2401
|
+
const totalPop = (0, _data_1.fieldForFeature)(f, dk, "Tot" /* TotalPop */);
|
|
2413
2402
|
// const totalPop = s.features.fieldForFeature(f, T.Dataset.CENSUS, T.FeatureField.TotalPop);
|
|
2414
2403
|
let bUninhabited = (totalPop > 0) ? false : true;
|
|
2415
2404
|
// HACK for Kentucky's atypical data, so the official map shows as complete
|
|
@@ -2783,26 +2772,6 @@ function doIsFreeOfHoles(s, bLog = false) {
|
|
|
2783
2772
|
exports.doIsFreeOfHoles = doIsFreeOfHoles;
|
|
2784
2773
|
|
|
2785
2774
|
|
|
2786
|
-
/***/ }),
|
|
2787
|
-
|
|
2788
|
-
/***/ "./static/majority-minority.json":
|
|
2789
|
-
/*!***************************************!*\
|
|
2790
|
-
!*** ./static/majority-minority.json ***!
|
|
2791
|
-
\***************************************/
|
|
2792
|
-
/***/ ((module) => {
|
|
2793
|
-
|
|
2794
|
-
module.exports = JSON.parse("{\"AL\":{\"Black\":[7],\"Hispanic\":[],\"Pacific\":[]},\"AK\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"AZ\":{\"Black\":[],\"Hispanic\":[2,4,7],\"Pacific\":[]},\"AR\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"CA\":{\"Black\":[13,37,43],\"Hispanic\":[17,18,20,21,28,31,32,34,35,38,39,43,45,47,51],\"Pacific\":[12,13,14,15,17,18,19,27,34,39,45,47,52]},\"CO\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"CT\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"DC\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"DE\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"FL\":{\"Black\":[5,20,24],\"Hispanic\":[18,21,25],\"Pacific\":[]},\"GA\":{\"Black\":[2,4,5,13],\"Hispanic\":[],\"Pacific\":[]},\"HI\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[2]},\"ID\":{\"Black\":[],\"Hispanic\":[1],\"Pacific\":[]},\"IL\":{\"Black\":[1,2,7],\"Hispanic\":[4],\"Pacific\":[]},\"IN\":{\"Black\":[7],\"Hispanic\":[],\"Pacific\":[]},\"IA\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"KS\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"KY\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"LA\":{\"Black\":[2],\"Hispanic\":[],\"Pacific\":[]},\"ME\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"MD\":{\"Black\":[4,7],\"Hispanic\":[],\"Pacific\":[]},\"MA\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"MI\":{\"Black\":[13,14],\"Hispanic\":[],\"Pacific\":[]},\"MN\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"MS\":{\"Black\":[2],\"Hispanic\":[],\"Pacific\":[]},\"MO\":{\"Black\":[1,5],\"Hispanic\":[],\"Pacific\":[]},\"MT\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"NE\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"NV\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"NH\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"NJ\":{\"Black\":[10,12],\"Hispanic\":[13],\"Pacific\":[6]},\"NM\":{\"Black\":[],\"Hispanic\":[2,13],\"Pacific\":[]},\"NY\":{\"Black\":[5,8,9,13],\"Hispanic\":[12,16],\"Pacific\":[6,7,10]},\"NC\":{\"Black\":[1,12],\"Hispanic\":[],\"Pacific\":[]},\"ND\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"OH\":{\"Black\":[3,11],\"Hispanic\":[],\"Pacific\":[]},\"OK\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"OR\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"PA\":{\"Black\":[2],\"Hispanic\":[],\"Pacific\":[]},\"PR\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"RI\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"SC\":{\"Black\":[6],\"Hispanic\":[],\"Pacific\":[]},\"SD\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"TN\":{\"Black\":[9],\"Hispanic\":[],\"Pacific\":[]},\"TX\":{\"Black\":[9,18,33],\"Hispanic\":[15,16,19,20,23,27,28,29,32],\"Pacific\":[]},\"UT\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"VT\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"VA\":{\"Black\":[3],\"Hispanic\":[],\"Pacific\":[]},\"WA\":{\"Black\":[],\"Hispanic\":[3],\"Pacific\":[9]},\"WV\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]},\"WI\":{\"Black\":[4],\"Hispanic\":[],\"Pacific\":[]},\"WY\":{\"Black\":[],\"Hispanic\":[],\"Pacific\":[]}}");
|
|
2795
|
-
|
|
2796
|
-
/***/ }),
|
|
2797
|
-
|
|
2798
|
-
/***/ "./static/vra5-preclearance.json":
|
|
2799
|
-
/*!***************************************!*\
|
|
2800
|
-
!*** ./static/vra5-preclearance.json ***!
|
|
2801
|
-
\***************************************/
|
|
2802
|
-
/***/ ((module) => {
|
|
2803
|
-
|
|
2804
|
-
module.exports = JSON.parse("{\"AL\":\"all\",\"AK\":\"all\",\"AZ\":\"all\",\"CA\":\"parts\",\"FL\":\"parts\",\"GA\":\"all\",\"LA\":\"all\",\"MI\":\"parts\",\"MS\":\"all\",\"NY\":\"parts\",\"NC\":\"parts\",\"SC\":\"all\",\"SD\":\"parts\",\"TX\":\"all\",\"VA\":\"all\"}");
|
|
2805
|
-
|
|
2806
2775
|
/***/ }),
|
|
2807
2776
|
|
|
2808
2777
|
/***/ "@dra2020/baseclient":
|
|
@@ -2811,57 +2780,57 @@ module.exports = JSON.parse("{\"AL\":\"all\",\"AK\":\"all\",\"AZ\":\"all\",\"CA\
|
|
|
2811
2780
|
\**************************************/
|
|
2812
2781
|
/***/ ((module) => {
|
|
2813
2782
|
|
|
2814
|
-
module.exports = require("@dra2020/baseclient")
|
|
2783
|
+
module.exports = require("@dra2020/baseclient");
|
|
2815
2784
|
|
|
2816
2785
|
/***/ }),
|
|
2817
2786
|
|
|
2818
|
-
/***/ "@dra2020/
|
|
2819
|
-
|
|
2820
|
-
!*** external "@dra2020/
|
|
2821
|
-
|
|
2787
|
+
/***/ "@dra2020/dra-analytics":
|
|
2788
|
+
/*!*****************************************!*\
|
|
2789
|
+
!*** external "@dra2020/dra-analytics" ***!
|
|
2790
|
+
\*****************************************/
|
|
2822
2791
|
/***/ ((module) => {
|
|
2823
2792
|
|
|
2824
|
-
module.exports = require("@dra2020/
|
|
2793
|
+
module.exports = require("@dra2020/dra-analytics");
|
|
2825
2794
|
|
|
2826
2795
|
/***/ }),
|
|
2827
2796
|
|
|
2828
|
-
/***/ "@dra2020/dra-
|
|
2797
|
+
/***/ "@dra2020/dra-score":
|
|
2829
2798
|
/*!*************************************!*\
|
|
2830
|
-
!*** external "@dra2020/dra-
|
|
2799
|
+
!*** external "@dra2020/dra-score" ***!
|
|
2831
2800
|
\*************************************/
|
|
2832
2801
|
/***/ ((module) => {
|
|
2833
2802
|
|
|
2834
|
-
module.exports = require("@dra2020/dra-
|
|
2803
|
+
module.exports = require("@dra2020/dra-score");
|
|
2835
2804
|
|
|
2836
2805
|
/***/ }),
|
|
2837
2806
|
|
|
2838
|
-
/***/ "@dra2020/dra-
|
|
2807
|
+
/***/ "@dra2020/dra-types":
|
|
2839
2808
|
/*!*************************************!*\
|
|
2840
|
-
!*** external "@dra2020/dra-
|
|
2809
|
+
!*** external "@dra2020/dra-types" ***!
|
|
2841
2810
|
\*************************************/
|
|
2842
2811
|
/***/ ((module) => {
|
|
2843
2812
|
|
|
2844
|
-
module.exports = require("@dra2020/dra-
|
|
2813
|
+
module.exports = require("@dra2020/dra-types");
|
|
2845
2814
|
|
|
2846
2815
|
/***/ }),
|
|
2847
2816
|
|
|
2848
|
-
/***/ "
|
|
2849
|
-
|
|
2850
|
-
!***
|
|
2851
|
-
|
|
2817
|
+
/***/ "./static/majority-minority.json":
|
|
2818
|
+
/*!***************************************!*\
|
|
2819
|
+
!*** ./static/majority-minority.json ***!
|
|
2820
|
+
\***************************************/
|
|
2852
2821
|
/***/ ((module) => {
|
|
2853
2822
|
|
|
2854
|
-
module.exports =
|
|
2823
|
+
module.exports = JSON.parse('{"AL":{"Black":[7],"Hispanic":[],"Pacific":[]},"AK":{"Black":[],"Hispanic":[],"Pacific":[]},"AZ":{"Black":[],"Hispanic":[2,4,7],"Pacific":[]},"AR":{"Black":[],"Hispanic":[],"Pacific":[]},"CA":{"Black":[13,37,43],"Hispanic":[17,18,20,21,28,31,32,34,35,38,39,43,45,47,51],"Pacific":[12,13,14,15,17,18,19,27,34,39,45,47,52]},"CO":{"Black":[],"Hispanic":[],"Pacific":[]},"CT":{"Black":[],"Hispanic":[],"Pacific":[]},"DC":{"Black":[],"Hispanic":[],"Pacific":[]},"DE":{"Black":[],"Hispanic":[],"Pacific":[]},"FL":{"Black":[5,20,24],"Hispanic":[18,21,25],"Pacific":[]},"GA":{"Black":[2,4,5,13],"Hispanic":[],"Pacific":[]},"HI":{"Black":[],"Hispanic":[],"Pacific":[2]},"ID":{"Black":[],"Hispanic":[1],"Pacific":[]},"IL":{"Black":[1,2,7],"Hispanic":[4],"Pacific":[]},"IN":{"Black":[7],"Hispanic":[],"Pacific":[]},"IA":{"Black":[],"Hispanic":[],"Pacific":[]},"KS":{"Black":[],"Hispanic":[],"Pacific":[]},"KY":{"Black":[],"Hispanic":[],"Pacific":[]},"LA":{"Black":[2],"Hispanic":[],"Pacific":[]},"ME":{"Black":[],"Hispanic":[],"Pacific":[]},"MD":{"Black":[4,7],"Hispanic":[],"Pacific":[]},"MA":{"Black":[],"Hispanic":[],"Pacific":[]},"MI":{"Black":[13,14],"Hispanic":[],"Pacific":[]},"MN":{"Black":[],"Hispanic":[],"Pacific":[]},"MS":{"Black":[2],"Hispanic":[],"Pacific":[]},"MO":{"Black":[1,5],"Hispanic":[],"Pacific":[]},"MT":{"Black":[],"Hispanic":[],"Pacific":[]},"NE":{"Black":[],"Hispanic":[],"Pacific":[]},"NV":{"Black":[],"Hispanic":[],"Pacific":[]},"NH":{"Black":[],"Hispanic":[],"Pacific":[]},"NJ":{"Black":[10,12],"Hispanic":[13],"Pacific":[6]},"NM":{"Black":[],"Hispanic":[2,13],"Pacific":[]},"NY":{"Black":[5,8,9,13],"Hispanic":[12,16],"Pacific":[6,7,10]},"NC":{"Black":[1,12],"Hispanic":[],"Pacific":[]},"ND":{"Black":[],"Hispanic":[],"Pacific":[]},"OH":{"Black":[3,11],"Hispanic":[],"Pacific":[]},"OK":{"Black":[],"Hispanic":[],"Pacific":[]},"OR":{"Black":[],"Hispanic":[],"Pacific":[]},"PA":{"Black":[2],"Hispanic":[],"Pacific":[]},"PR":{"Black":[],"Hispanic":[],"Pacific":[]},"RI":{"Black":[],"Hispanic":[],"Pacific":[]},"SC":{"Black":[6],"Hispanic":[],"Pacific":[]},"SD":{"Black":[],"Hispanic":[],"Pacific":[]},"TN":{"Black":[9],"Hispanic":[],"Pacific":[]},"TX":{"Black":[9,18,33],"Hispanic":[15,16,19,20,23,27,28,29,32],"Pacific":[]},"UT":{"Black":[],"Hispanic":[],"Pacific":[]},"VT":{"Black":[],"Hispanic":[],"Pacific":[]},"VA":{"Black":[3],"Hispanic":[],"Pacific":[]},"WA":{"Black":[],"Hispanic":[3],"Pacific":[9]},"WV":{"Black":[],"Hispanic":[],"Pacific":[]},"WI":{"Black":[4],"Hispanic":[],"Pacific":[]},"WY":{"Black":[],"Hispanic":[],"Pacific":[]}}');
|
|
2855
2824
|
|
|
2856
2825
|
/***/ }),
|
|
2857
2826
|
|
|
2858
|
-
/***/ "
|
|
2859
|
-
|
|
2860
|
-
!***
|
|
2861
|
-
|
|
2827
|
+
/***/ "./static/vra5-preclearance.json":
|
|
2828
|
+
/*!***************************************!*\
|
|
2829
|
+
!*** ./static/vra5-preclearance.json ***!
|
|
2830
|
+
\***************************************/
|
|
2862
2831
|
/***/ ((module) => {
|
|
2863
2832
|
|
|
2864
|
-
module.exports =
|
|
2833
|
+
module.exports = JSON.parse('{"AL":"all","AK":"all","AZ":"all","CA":"parts","FL":"parts","GA":"all","LA":"all","MI":"parts","MS":"all","NY":"parts","NC":"parts","SC":"all","SD":"parts","TX":"all","VA":"all"}');
|
|
2865
2834
|
|
|
2866
2835
|
/***/ })
|
|
2867
2836
|
|
|
@@ -2873,8 +2842,9 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2873
2842
|
/******/ // The require function
|
|
2874
2843
|
/******/ function __webpack_require__(moduleId) {
|
|
2875
2844
|
/******/ // Check if module is in cache
|
|
2876
|
-
/******/
|
|
2877
|
-
/******/
|
|
2845
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
2846
|
+
/******/ if (cachedModule !== undefined) {
|
|
2847
|
+
/******/ return cachedModule.exports;
|
|
2878
2848
|
/******/ }
|
|
2879
2849
|
/******/ // Create a new module (and put it into the cache)
|
|
2880
2850
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
@@ -2891,10 +2861,13 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2891
2861
|
/******/ }
|
|
2892
2862
|
/******/
|
|
2893
2863
|
/************************************************************************/
|
|
2894
|
-
/******/
|
|
2864
|
+
/******/
|
|
2895
2865
|
/******/ // startup
|
|
2896
2866
|
/******/ // Load entry module and return exports
|
|
2897
|
-
/******/
|
|
2867
|
+
/******/ // This entry module is referenced by other modules so it can't be inlined
|
|
2868
|
+
/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
|
|
2869
|
+
/******/
|
|
2870
|
+
/******/ return __webpack_exports__;
|
|
2898
2871
|
/******/ })()
|
|
2899
2872
|
;
|
|
2900
2873
|
});
|