@parliamentarch/core 5.0.0 → 5.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/majority-line.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ type Point = [number, number];
|
|
|
3
3
|
type SeatCenters = ReadonlyMap<Point, SeatInfo>;
|
|
4
4
|
type Rounder = (n: number) => number;
|
|
5
5
|
export interface GetMajorityLineCheckpointsOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Forces a number of seats at the left of the majority line.
|
|
8
|
+
* Overrides the round and ratio parameters.
|
|
9
|
+
*/
|
|
10
|
+
nSeats: number;
|
|
6
11
|
/**
|
|
7
12
|
* Used to round the sharing of the assembly.
|
|
8
13
|
* Rounding up means more seats to the left.
|
|
@@ -42,5 +47,5 @@ export interface MajorityLineCheckpoints {
|
|
|
42
47
|
*/
|
|
43
48
|
rowThickness: number;
|
|
44
49
|
}
|
|
45
|
-
export declare function getMajorityLineCheckpoints(seatCenters: SeatCenters,
|
|
50
|
+
export declare function getMajorityLineCheckpoints(seatCenters: SeatCenters, options?: Partial<Readonly<GetMajorityLineCheckpointsOptions>>): MajorityLineCheckpoints;
|
|
46
51
|
export {};
|
package/dist/majority-line.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getRowArcRadius, getRowThickness } from "./geometry.js";
|
|
2
2
|
const sign = Math.sign;
|
|
3
|
-
export function getMajorityLineCheckpoints(seatCenters,
|
|
4
|
-
const
|
|
3
|
+
export function getMajorityLineCheckpoints(seatCenters, options = {}) {
|
|
4
|
+
const [ratio, nSeatsInLeftPart] = precomputeOptions(seatCenters.size, options);
|
|
5
|
+
const isInRightPart = getIsInRightPart(seatCenters, nSeatsInLeftPart);
|
|
5
6
|
const seatsPerRow = getSeatsPerRow(seatCenters);
|
|
6
7
|
const rowThickness = getRowThickness(seatsPerRow.length);
|
|
7
8
|
const maxSeatRadius = rowThickness / 2;
|
|
@@ -23,10 +24,18 @@ export function getMajorityLineCheckpoints(seatCenters, { round = Math.ceil, rat
|
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
+
function precomputeOptions(total, { nSeats, round = Math.ceil, ratio = .5, }) {
|
|
28
|
+
if (nSeats != undefined) {
|
|
29
|
+
return [nSeats / total, nSeats];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return [ratio, round(total * ratio)];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function getIsInRightPart(seatCenters, nSeatsInLeftPart) {
|
|
27
36
|
const rightPart = new Set([...seatCenters.keys()]
|
|
28
37
|
.sort((k1, k2) => seatCenters.get(k1).angle - seatCenters.get(k2).angle)
|
|
29
|
-
.slice(0, seatCenters.size -
|
|
38
|
+
.slice(0, seatCenters.size - nSeatsInLeftPart));
|
|
30
39
|
return rightPart.has.bind(rightPart);
|
|
31
40
|
}
|
|
32
41
|
function getSeatsPerRow(seatCenters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"majority-line.js","sourceRoot":"","sources":["../src/majority-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAY,MAAM,eAAe,CAAC;AAE3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"majority-line.js","sourceRoot":"","sources":["../src/majority-line.ts"],"names":[],"mappings":"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"}
|