@dra2020/district-analytics 12.1.0 → 14.0.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 +89 -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 +8 -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'];
|
|
@@ -903,6 +905,26 @@ function fieldForFeature(f, dk /* dt: T.Dataset */, fk) {
|
|
|
903
905
|
}
|
|
904
906
|
// result = (_getFeatures(f, dk, (fk === 'D' ? 'D12' : 'R12')) + _getFeatures(f, dk, (fk === 'D' ? 'D16' : 'R16'))) / 2;
|
|
905
907
|
}
|
|
908
|
+
else if (dk === 'P20GPR') {
|
|
909
|
+
switch (fk) {
|
|
910
|
+
case 'D': {
|
|
911
|
+
result = (_getFeatures(f, 'E16GPR', 'D') + _getFeatures(f, 'E20GPR', 'D')) / 2;
|
|
912
|
+
break;
|
|
913
|
+
}
|
|
914
|
+
case 'R': {
|
|
915
|
+
result = (_getFeatures(f, 'E16GPR', 'R') + _getFeatures(f, 'E20GPR', 'R')) / 2;
|
|
916
|
+
break;
|
|
917
|
+
}
|
|
918
|
+
case 'Tot': {
|
|
919
|
+
result = (_getFeatures(f, 'E16GPR', 'D') + _getFeatures(f, 'E20GPR', 'D') + _getFeatures(f, 'E16GPR', 'R') + _getFeatures(f, 'E20GPR', 'R')) / 2;
|
|
920
|
+
break;
|
|
921
|
+
}
|
|
922
|
+
default: {
|
|
923
|
+
console.log("Field not recognized.");
|
|
924
|
+
break;
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
}
|
|
906
928
|
else
|
|
907
929
|
result = _getFeatures(f, dk, fk);
|
|
908
930
|
return result;
|
|
@@ -1062,7 +1084,7 @@ function invertPlan(plan, s, bLog = false) {
|
|
|
1062
1084
|
return invertedPlan;
|
|
1063
1085
|
}
|
|
1064
1086
|
exports.invertPlan = invertPlan;
|
|
1065
|
-
class
|
|
1087
|
+
class GraphClass {
|
|
1066
1088
|
constructor(s, graph) {
|
|
1067
1089
|
this._session = s;
|
|
1068
1090
|
this._graph = graph;
|
|
@@ -1083,7 +1105,7 @@ class Graph {
|
|
|
1083
1105
|
// return U.getObjectKeys(this._graph[node]);
|
|
1084
1106
|
}
|
|
1085
1107
|
}
|
|
1086
|
-
exports.
|
|
1108
|
+
exports.GraphClass = GraphClass;
|
|
1087
1109
|
|
|
1088
1110
|
|
|
1089
1111
|
/***/ }),
|
|
@@ -1114,17 +1136,17 @@ exports.doAnalyzeDistricts = doAnalyzeDistricts;
|
|
|
1114
1136
|
// NOTE - I could make this table-driven, but I'm thinking that the explicit
|
|
1115
1137
|
// calls might make chunking for aync easier.
|
|
1116
1138
|
function doAnalyzePlan(s, bLog = false) {
|
|
1117
|
-
s.tests[0 /* Complete */] = valid_1.doIsComplete(s, bLog);
|
|
1118
|
-
s.tests[1 /* Contiguous */] = valid_1.doIsContiguous(s, bLog);
|
|
1119
|
-
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);
|
|
1120
1142
|
// NOTE - I can't check whether a population deviation is legal or not, until
|
|
1121
1143
|
// the raw % is normalized. A zero (0) would mean "too much" / "not legal," for
|
|
1122
1144
|
// the given type of district (CD vs. LD). The EqualPopulation test is derived
|
|
1123
1145
|
// from PopulationDeviation, as part of scorecard or test log preparation.
|
|
1124
1146
|
// Create an empty test entry here though ...
|
|
1125
1147
|
s.tests[3 /* EqualPopulation */] = s.getTest(3 /* EqualPopulation */);
|
|
1126
|
-
s.tests[5 /* UnexpectedCountySplits */] = cohesive_1.doFindCountiesSplitUnexpectedly(s, bLog);
|
|
1127
|
-
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);
|
|
1128
1150
|
// Enable a Test Log and Scorecard to be generated
|
|
1129
1151
|
s.bPlanAnalyzed = true;
|
|
1130
1152
|
s.bPostProcessingDone = false;
|
|
@@ -1136,7 +1158,7 @@ exports.doAnalyzePlan = doAnalyzePlan;
|
|
|
1136
1158
|
// Equal Population to be secondary pass/fail validation.
|
|
1137
1159
|
//
|
|
1138
1160
|
function doDeriveSecondaryTests(s, bLog = false) {
|
|
1139
|
-
s.tests[3 /* EqualPopulation */] = equal_1.doHasEqualPopulations(s, bLog);
|
|
1161
|
+
s.tests[3 /* EqualPopulation */] = (0, equal_1.doHasEqualPopulations)(s, bLog);
|
|
1140
1162
|
}
|
|
1141
1163
|
exports.doDeriveSecondaryTests = doDeriveSecondaryTests;
|
|
1142
1164
|
|
|
@@ -1390,7 +1412,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
1390
1412
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1391
1413
|
exports.scoreKIWYSICompactness = exports.extractDistrictProperties = void 0;
|
|
1392
1414
|
const baseclient_1 = __webpack_require__(/*! @dra2020/baseclient */ "@dra2020/baseclient");
|
|
1393
|
-
const
|
|
1415
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1394
1416
|
const U = __importStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"));
|
|
1395
1417
|
// HELPER TO EXTRACT PROPERTIES OF DISTRICT SHAPES
|
|
1396
1418
|
function extractDistrictProperties(s, bLog = false) {
|
|
@@ -1441,7 +1463,7 @@ function scoreKIWYSICompactness(s, bLog = false) {
|
|
|
1441
1463
|
goodShapes.features.push(f);
|
|
1442
1464
|
}
|
|
1443
1465
|
}
|
|
1444
|
-
const scores = Compactness.scoreShapes(goodShapes, 0 /* Revised */);
|
|
1466
|
+
const scores = dra_analytics_1.Compactness.scoreShapes(goodShapes, 0 /* Revised */);
|
|
1445
1467
|
// Round & invert the scores here at the source vs. later on, higher up.
|
|
1446
1468
|
// Raw KIWYSI scores will be 1–100 with smaller better, so map to 1–100 bigger better.
|
|
1447
1469
|
return scores.map(n => 100 - Math.round(n) + 1);
|
|
@@ -1544,7 +1566,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
1544
1566
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1545
1567
|
};
|
|
1546
1568
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1547
|
-
exports.inferSelectedMinority = exports.fieldForFeature = exports.geoIDForFeature = void 0;
|
|
1569
|
+
exports.uncertaintyOfMembership = exports.effectiveSplits = exports.inferSelectedMinority = exports.fieldForFeature = exports.geoIDForFeature = void 0;
|
|
1548
1570
|
__exportStar(__webpack_require__(/*! ./_api */ "./src/_api.ts"), exports);
|
|
1549
1571
|
var _data_1 = __webpack_require__(/*! ./_data */ "./src/_data.ts");
|
|
1550
1572
|
Object.defineProperty(exports, "geoIDForFeature", ({ enumerable: true, get: function () { return _data_1.geoIDForFeature; } }));
|
|
@@ -1553,6 +1575,10 @@ Object.defineProperty(exports, "inferSelectedMinority", ({ enumerable: true, get
|
|
|
1553
1575
|
__exportStar(__webpack_require__(/*! ./results */ "./src/results.ts"), exports);
|
|
1554
1576
|
__exportStar(__webpack_require__(/*! ./types */ "./src/types.ts"), exports);
|
|
1555
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.effectiveSplits = dra_analytics_1.Splitting.effectiveSplits;
|
|
1581
|
+
exports.uncertaintyOfMembership = dra_analytics_1.Splitting.uncertaintyOfMembership;
|
|
1556
1582
|
|
|
1557
1583
|
|
|
1558
1584
|
/***/ }),
|
|
@@ -1567,31 +1593,12 @@ __exportStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"), exports);
|
|
|
1567
1593
|
//
|
|
1568
1594
|
// PROTECTS MINORITIES
|
|
1569
1595
|
//
|
|
1570
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
1571
|
-
if (k2 === undefined) k2 = k;
|
|
1572
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
1573
|
-
}) : (function(o, m, k, k2) {
|
|
1574
|
-
if (k2 === undefined) k2 = k;
|
|
1575
|
-
o[k2] = m[k];
|
|
1576
|
-
}));
|
|
1577
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
1578
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
1579
|
-
}) : function(o, v) {
|
|
1580
|
-
o["default"] = v;
|
|
1581
|
-
});
|
|
1582
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1583
|
-
if (mod && mod.__esModule) return mod;
|
|
1584
|
-
var result = {};
|
|
1585
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1586
|
-
__setModuleDefault(result, mod);
|
|
1587
|
-
return result;
|
|
1588
|
-
};
|
|
1589
1596
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
1590
1597
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1591
1598
|
};
|
|
1592
1599
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1593
1600
|
exports.doAnalyzeRacialPolarization = exports.getVRASection5 = exports.getMajorityMinority = void 0;
|
|
1594
|
-
const
|
|
1601
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1595
1602
|
const majority_minority_json_1 = __importDefault(__webpack_require__(/*! ../static/majority-minority.json */ "./static/majority-minority.json"));
|
|
1596
1603
|
const vra5_preclearance_json_1 = __importDefault(__webpack_require__(/*! ../static/vra5-preclearance.json */ "./static/vra5-preclearance.json"));
|
|
1597
1604
|
// TODO - Update/revise this, when the update comes out in September:
|
|
@@ -1626,7 +1633,7 @@ function doAnalyzeRacialPolarization(s, districtID, groups, bLog = false) {
|
|
|
1626
1633
|
return undefined;
|
|
1627
1634
|
if (points.comparison.length <= 10)
|
|
1628
1635
|
return undefined;
|
|
1629
|
-
return
|
|
1636
|
+
return dra_analytics_1.Minority.analyzeRacialVoting(points, districtID, groups);
|
|
1630
1637
|
}
|
|
1631
1638
|
exports.doAnalyzeRacialPolarization = doAnalyzeRacialPolarization;
|
|
1632
1639
|
// 11-18-2020 - Moved RPV to racial-voting package.
|
|
@@ -2029,9 +2036,11 @@ function doAnalyzePostProcessing(s, bLog = false) {
|
|
|
2029
2036
|
scorecard.splitting.details['nCountiesSplit'] = simpleSplits['details']['nCountiesSplit'];
|
|
2030
2037
|
scorecard.splitting.details['nSingleCountyDistricts'] = simpleSplits['details']['nSingleCountyDistricts'];
|
|
2031
2038
|
scorecard.splitting.details['singleCountyDistrictMax'] = simpleSplits['details']['singleCountyDistrictMax'];
|
|
2039
|
+
// 07-17-21 - Enumerate # of times each split county is split
|
|
2040
|
+
scorecard.splitting.details['countiesWithSplits'] = simpleSplits['details']['countiesWithSplits'];
|
|
2032
2041
|
// NOTE - Add split precincts in dra-client directly
|
|
2033
2042
|
// Derive secondary tests
|
|
2034
|
-
analyze_1.doDeriveSecondaryTests(s, bLog);
|
|
2043
|
+
(0, analyze_1.doDeriveSecondaryTests)(s, bLog);
|
|
2035
2044
|
// Toggle the semaphore, so postprocessing isn't for both the testlog & scorecard
|
|
2036
2045
|
s.bPostProcessingDone = true;
|
|
2037
2046
|
}
|
|
@@ -2387,7 +2396,7 @@ function isUninhabited(geoID, s) {
|
|
|
2387
2396
|
const f = s.features.featureByIndex(featureID);
|
|
2388
2397
|
// 03-27-21
|
|
2389
2398
|
const dk = s.features._keys["CENSUS" /* CENSUS */];
|
|
2390
|
-
const totalPop = _data_1.fieldForFeature(f, dk, "Tot" /* TotalPop */);
|
|
2399
|
+
const totalPop = (0, _data_1.fieldForFeature)(f, dk, "Tot" /* TotalPop */);
|
|
2391
2400
|
// const totalPop = s.features.fieldForFeature(f, T.Dataset.CENSUS, T.FeatureField.TotalPop);
|
|
2392
2401
|
let bUninhabited = (totalPop > 0) ? false : true;
|
|
2393
2402
|
// HACK for Kentucky's atypical data, so the official map shows as complete
|
|
@@ -2761,26 +2770,6 @@ function doIsFreeOfHoles(s, bLog = false) {
|
|
|
2761
2770
|
exports.doIsFreeOfHoles = doIsFreeOfHoles;
|
|
2762
2771
|
|
|
2763
2772
|
|
|
2764
|
-
/***/ }),
|
|
2765
|
-
|
|
2766
|
-
/***/ "./static/majority-minority.json":
|
|
2767
|
-
/*!***************************************!*\
|
|
2768
|
-
!*** ./static/majority-minority.json ***!
|
|
2769
|
-
\***************************************/
|
|
2770
|
-
/***/ ((module) => {
|
|
2771
|
-
|
|
2772
|
-
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\":[]}}");
|
|
2773
|
-
|
|
2774
|
-
/***/ }),
|
|
2775
|
-
|
|
2776
|
-
/***/ "./static/vra5-preclearance.json":
|
|
2777
|
-
/*!***************************************!*\
|
|
2778
|
-
!*** ./static/vra5-preclearance.json ***!
|
|
2779
|
-
\***************************************/
|
|
2780
|
-
/***/ ((module) => {
|
|
2781
|
-
|
|
2782
|
-
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\"}");
|
|
2783
|
-
|
|
2784
2773
|
/***/ }),
|
|
2785
2774
|
|
|
2786
2775
|
/***/ "@dra2020/baseclient":
|
|
@@ -2789,57 +2778,57 @@ module.exports = JSON.parse("{\"AL\":\"all\",\"AK\":\"all\",\"AZ\":\"all\",\"CA\
|
|
|
2789
2778
|
\**************************************/
|
|
2790
2779
|
/***/ ((module) => {
|
|
2791
2780
|
|
|
2792
|
-
module.exports = require("@dra2020/baseclient")
|
|
2781
|
+
module.exports = require("@dra2020/baseclient");
|
|
2793
2782
|
|
|
2794
2783
|
/***/ }),
|
|
2795
2784
|
|
|
2796
|
-
/***/ "@dra2020/
|
|
2797
|
-
|
|
2798
|
-
!*** external "@dra2020/
|
|
2799
|
-
|
|
2785
|
+
/***/ "@dra2020/dra-analytics":
|
|
2786
|
+
/*!*****************************************!*\
|
|
2787
|
+
!*** external "@dra2020/dra-analytics" ***!
|
|
2788
|
+
\*****************************************/
|
|
2800
2789
|
/***/ ((module) => {
|
|
2801
2790
|
|
|
2802
|
-
module.exports = require("@dra2020/
|
|
2791
|
+
module.exports = require("@dra2020/dra-analytics");
|
|
2803
2792
|
|
|
2804
2793
|
/***/ }),
|
|
2805
2794
|
|
|
2806
|
-
/***/ "@dra2020/dra-
|
|
2795
|
+
/***/ "@dra2020/dra-score":
|
|
2807
2796
|
/*!*************************************!*\
|
|
2808
|
-
!*** external "@dra2020/dra-
|
|
2797
|
+
!*** external "@dra2020/dra-score" ***!
|
|
2809
2798
|
\*************************************/
|
|
2810
2799
|
/***/ ((module) => {
|
|
2811
2800
|
|
|
2812
|
-
module.exports = require("@dra2020/dra-
|
|
2801
|
+
module.exports = require("@dra2020/dra-score");
|
|
2813
2802
|
|
|
2814
2803
|
/***/ }),
|
|
2815
2804
|
|
|
2816
|
-
/***/ "@dra2020/dra-
|
|
2805
|
+
/***/ "@dra2020/dra-types":
|
|
2817
2806
|
/*!*************************************!*\
|
|
2818
|
-
!*** external "@dra2020/dra-
|
|
2807
|
+
!*** external "@dra2020/dra-types" ***!
|
|
2819
2808
|
\*************************************/
|
|
2820
2809
|
/***/ ((module) => {
|
|
2821
2810
|
|
|
2822
|
-
module.exports = require("@dra2020/dra-
|
|
2811
|
+
module.exports = require("@dra2020/dra-types");
|
|
2823
2812
|
|
|
2824
2813
|
/***/ }),
|
|
2825
2814
|
|
|
2826
|
-
/***/ "
|
|
2827
|
-
|
|
2828
|
-
!***
|
|
2829
|
-
|
|
2815
|
+
/***/ "./static/majority-minority.json":
|
|
2816
|
+
/*!***************************************!*\
|
|
2817
|
+
!*** ./static/majority-minority.json ***!
|
|
2818
|
+
\***************************************/
|
|
2830
2819
|
/***/ ((module) => {
|
|
2831
2820
|
|
|
2832
|
-
module.exports =
|
|
2821
|
+
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":[]}}');
|
|
2833
2822
|
|
|
2834
2823
|
/***/ }),
|
|
2835
2824
|
|
|
2836
|
-
/***/ "
|
|
2837
|
-
|
|
2838
|
-
!***
|
|
2839
|
-
|
|
2825
|
+
/***/ "./static/vra5-preclearance.json":
|
|
2826
|
+
/*!***************************************!*\
|
|
2827
|
+
!*** ./static/vra5-preclearance.json ***!
|
|
2828
|
+
\***************************************/
|
|
2840
2829
|
/***/ ((module) => {
|
|
2841
2830
|
|
|
2842
|
-
module.exports =
|
|
2831
|
+
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"}');
|
|
2843
2832
|
|
|
2844
2833
|
/***/ })
|
|
2845
2834
|
|
|
@@ -2851,8 +2840,9 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2851
2840
|
/******/ // The require function
|
|
2852
2841
|
/******/ function __webpack_require__(moduleId) {
|
|
2853
2842
|
/******/ // Check if module is in cache
|
|
2854
|
-
/******/
|
|
2855
|
-
/******/
|
|
2843
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
2844
|
+
/******/ if (cachedModule !== undefined) {
|
|
2845
|
+
/******/ return cachedModule.exports;
|
|
2856
2846
|
/******/ }
|
|
2857
2847
|
/******/ // Create a new module (and put it into the cache)
|
|
2858
2848
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
@@ -2869,10 +2859,13 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2869
2859
|
/******/ }
|
|
2870
2860
|
/******/
|
|
2871
2861
|
/************************************************************************/
|
|
2872
|
-
/******/
|
|
2862
|
+
/******/
|
|
2873
2863
|
/******/ // startup
|
|
2874
2864
|
/******/ // Load entry module and return exports
|
|
2875
|
-
/******/
|
|
2865
|
+
/******/ // This entry module is referenced by other modules so it can't be inlined
|
|
2866
|
+
/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
|
|
2867
|
+
/******/
|
|
2868
|
+
/******/ return __webpack_exports__;
|
|
2876
2869
|
/******/ })()
|
|
2877
2870
|
;
|
|
2878
2871
|
});
|