@dra2020/district-analytics 12.1.2 → 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 +67 -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'];
|
|
@@ -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.scoreShapes(goodShapes, 0 /* Revised */);
|
|
1466
|
+
const scores = dra_analytics_1.Compactness.scoreShapes(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.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,10 @@ 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.effectiveSplits = dra_analytics_1.Splitting.effectiveSplits;
|
|
1581
|
+
exports.uncertaintyOfMembership = dra_analytics_1.Splitting.uncertaintyOfMembership;
|
|
1576
1582
|
|
|
1577
1583
|
|
|
1578
1584
|
/***/ }),
|
|
@@ -1587,31 +1593,12 @@ __exportStar(__webpack_require__(/*! ./utils */ "./src/utils.ts"), exports);
|
|
|
1587
1593
|
//
|
|
1588
1594
|
// PROTECTS MINORITIES
|
|
1589
1595
|
//
|
|
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
1596
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
1610
1597
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1611
1598
|
};
|
|
1612
1599
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1613
1600
|
exports.doAnalyzeRacialPolarization = exports.getVRASection5 = exports.getMajorityMinority = void 0;
|
|
1614
|
-
const
|
|
1601
|
+
const dra_analytics_1 = __webpack_require__(/*! @dra2020/dra-analytics */ "@dra2020/dra-analytics");
|
|
1615
1602
|
const majority_minority_json_1 = __importDefault(__webpack_require__(/*! ../static/majority-minority.json */ "./static/majority-minority.json"));
|
|
1616
1603
|
const vra5_preclearance_json_1 = __importDefault(__webpack_require__(/*! ../static/vra5-preclearance.json */ "./static/vra5-preclearance.json"));
|
|
1617
1604
|
// TODO - Update/revise this, when the update comes out in September:
|
|
@@ -1646,7 +1633,7 @@ function doAnalyzeRacialPolarization(s, districtID, groups, bLog = false) {
|
|
|
1646
1633
|
return undefined;
|
|
1647
1634
|
if (points.comparison.length <= 10)
|
|
1648
1635
|
return undefined;
|
|
1649
|
-
return
|
|
1636
|
+
return dra_analytics_1.Minority.analyzeRacialVoting(points, districtID, groups);
|
|
1650
1637
|
}
|
|
1651
1638
|
exports.doAnalyzeRacialPolarization = doAnalyzeRacialPolarization;
|
|
1652
1639
|
// 11-18-2020 - Moved RPV to racial-voting package.
|
|
@@ -2053,7 +2040,7 @@ function doAnalyzePostProcessing(s, bLog = false) {
|
|
|
2053
2040
|
scorecard.splitting.details['countiesWithSplits'] = simpleSplits['details']['countiesWithSplits'];
|
|
2054
2041
|
// NOTE - Add split precincts in dra-client directly
|
|
2055
2042
|
// Derive secondary tests
|
|
2056
|
-
analyze_1.doDeriveSecondaryTests(s, bLog);
|
|
2043
|
+
(0, analyze_1.doDeriveSecondaryTests)(s, bLog);
|
|
2057
2044
|
// Toggle the semaphore, so postprocessing isn't for both the testlog & scorecard
|
|
2058
2045
|
s.bPostProcessingDone = true;
|
|
2059
2046
|
}
|
|
@@ -2409,7 +2396,7 @@ function isUninhabited(geoID, s) {
|
|
|
2409
2396
|
const f = s.features.featureByIndex(featureID);
|
|
2410
2397
|
// 03-27-21
|
|
2411
2398
|
const dk = s.features._keys["CENSUS" /* CENSUS */];
|
|
2412
|
-
const totalPop = _data_1.fieldForFeature(f, dk, "Tot" /* TotalPop */);
|
|
2399
|
+
const totalPop = (0, _data_1.fieldForFeature)(f, dk, "Tot" /* TotalPop */);
|
|
2413
2400
|
// const totalPop = s.features.fieldForFeature(f, T.Dataset.CENSUS, T.FeatureField.TotalPop);
|
|
2414
2401
|
let bUninhabited = (totalPop > 0) ? false : true;
|
|
2415
2402
|
// HACK for Kentucky's atypical data, so the official map shows as complete
|
|
@@ -2783,26 +2770,6 @@ function doIsFreeOfHoles(s, bLog = false) {
|
|
|
2783
2770
|
exports.doIsFreeOfHoles = doIsFreeOfHoles;
|
|
2784
2771
|
|
|
2785
2772
|
|
|
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
2773
|
/***/ }),
|
|
2807
2774
|
|
|
2808
2775
|
/***/ "@dra2020/baseclient":
|
|
@@ -2811,57 +2778,57 @@ module.exports = JSON.parse("{\"AL\":\"all\",\"AK\":\"all\",\"AZ\":\"all\",\"CA\
|
|
|
2811
2778
|
\**************************************/
|
|
2812
2779
|
/***/ ((module) => {
|
|
2813
2780
|
|
|
2814
|
-
module.exports = require("@dra2020/baseclient")
|
|
2781
|
+
module.exports = require("@dra2020/baseclient");
|
|
2815
2782
|
|
|
2816
2783
|
/***/ }),
|
|
2817
2784
|
|
|
2818
|
-
/***/ "@dra2020/
|
|
2819
|
-
|
|
2820
|
-
!*** external "@dra2020/
|
|
2821
|
-
|
|
2785
|
+
/***/ "@dra2020/dra-analytics":
|
|
2786
|
+
/*!*****************************************!*\
|
|
2787
|
+
!*** external "@dra2020/dra-analytics" ***!
|
|
2788
|
+
\*****************************************/
|
|
2822
2789
|
/***/ ((module) => {
|
|
2823
2790
|
|
|
2824
|
-
module.exports = require("@dra2020/
|
|
2791
|
+
module.exports = require("@dra2020/dra-analytics");
|
|
2825
2792
|
|
|
2826
2793
|
/***/ }),
|
|
2827
2794
|
|
|
2828
|
-
/***/ "@dra2020/dra-
|
|
2795
|
+
/***/ "@dra2020/dra-score":
|
|
2829
2796
|
/*!*************************************!*\
|
|
2830
|
-
!*** external "@dra2020/dra-
|
|
2797
|
+
!*** external "@dra2020/dra-score" ***!
|
|
2831
2798
|
\*************************************/
|
|
2832
2799
|
/***/ ((module) => {
|
|
2833
2800
|
|
|
2834
|
-
module.exports = require("@dra2020/dra-
|
|
2801
|
+
module.exports = require("@dra2020/dra-score");
|
|
2835
2802
|
|
|
2836
2803
|
/***/ }),
|
|
2837
2804
|
|
|
2838
|
-
/***/ "@dra2020/dra-
|
|
2805
|
+
/***/ "@dra2020/dra-types":
|
|
2839
2806
|
/*!*************************************!*\
|
|
2840
|
-
!*** external "@dra2020/dra-
|
|
2807
|
+
!*** external "@dra2020/dra-types" ***!
|
|
2841
2808
|
\*************************************/
|
|
2842
2809
|
/***/ ((module) => {
|
|
2843
2810
|
|
|
2844
|
-
module.exports = require("@dra2020/dra-
|
|
2811
|
+
module.exports = require("@dra2020/dra-types");
|
|
2845
2812
|
|
|
2846
2813
|
/***/ }),
|
|
2847
2814
|
|
|
2848
|
-
/***/ "
|
|
2849
|
-
|
|
2850
|
-
!***
|
|
2851
|
-
|
|
2815
|
+
/***/ "./static/majority-minority.json":
|
|
2816
|
+
/*!***************************************!*\
|
|
2817
|
+
!*** ./static/majority-minority.json ***!
|
|
2818
|
+
\***************************************/
|
|
2852
2819
|
/***/ ((module) => {
|
|
2853
2820
|
|
|
2854
|
-
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":[]}}');
|
|
2855
2822
|
|
|
2856
2823
|
/***/ }),
|
|
2857
2824
|
|
|
2858
|
-
/***/ "
|
|
2859
|
-
|
|
2860
|
-
!***
|
|
2861
|
-
|
|
2825
|
+
/***/ "./static/vra5-preclearance.json":
|
|
2826
|
+
/*!***************************************!*\
|
|
2827
|
+
!*** ./static/vra5-preclearance.json ***!
|
|
2828
|
+
\***************************************/
|
|
2862
2829
|
/***/ ((module) => {
|
|
2863
2830
|
|
|
2864
|
-
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"}');
|
|
2865
2832
|
|
|
2866
2833
|
/***/ })
|
|
2867
2834
|
|
|
@@ -2873,8 +2840,9 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2873
2840
|
/******/ // The require function
|
|
2874
2841
|
/******/ function __webpack_require__(moduleId) {
|
|
2875
2842
|
/******/ // Check if module is in cache
|
|
2876
|
-
/******/
|
|
2877
|
-
/******/
|
|
2843
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
2844
|
+
/******/ if (cachedModule !== undefined) {
|
|
2845
|
+
/******/ return cachedModule.exports;
|
|
2878
2846
|
/******/ }
|
|
2879
2847
|
/******/ // Create a new module (and put it into the cache)
|
|
2880
2848
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
@@ -2891,10 +2859,13 @@ module.exports = require("@dra2020/racial-voting");;
|
|
|
2891
2859
|
/******/ }
|
|
2892
2860
|
/******/
|
|
2893
2861
|
/************************************************************************/
|
|
2894
|
-
/******/
|
|
2862
|
+
/******/
|
|
2895
2863
|
/******/ // startup
|
|
2896
2864
|
/******/ // Load entry module and return exports
|
|
2897
|
-
/******/
|
|
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__;
|
|
2898
2869
|
/******/ })()
|
|
2899
2870
|
;
|
|
2900
2871
|
});
|