@mcp-b/geo-support 0.2.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/LICENSE +21 -0
- package/dist/base/geo-map-element.d.ts +60 -0
- package/dist/base/geo-map-element.d.ts.map +1 -0
- package/dist/base/geo-map-element.js +100 -0
- package/dist/base/geo-map-element.js.map +1 -0
- package/dist/classification/algorithms.d.ts +26 -0
- package/dist/classification/algorithms.d.ts.map +1 -0
- package/dist/classification/algorithms.js +101 -0
- package/dist/classification/algorithms.js.map +1 -0
- package/dist/classification/channel.d.ts +16 -0
- package/dist/classification/channel.d.ts.map +1 -0
- package/dist/classification/channel.js +18 -0
- package/dist/classification/channel.js.map +1 -0
- package/dist/classification/classify-style.d.ts +25 -0
- package/dist/classification/classify-style.d.ts.map +1 -0
- package/dist/classification/classify-style.js +70 -0
- package/dist/classification/classify-style.js.map +1 -0
- package/dist/classification/color-schemes.d.ts +18 -0
- package/dist/classification/color-schemes.d.ts.map +1 -0
- package/dist/classification/color-schemes.js +193 -0
- package/dist/classification/color-schemes.js.map +1 -0
- package/dist/classification/index.d.ts +5 -0
- package/dist/classification/index.d.ts.map +1 -0
- package/dist/classification/index.js +5 -0
- package/dist/classification/index.js.map +1 -0
- package/dist/components/classify-panel/classify-panel.d.ts +70 -0
- package/dist/components/classify-panel/classify-panel.d.ts.map +1 -0
- package/dist/components/classify-panel/classify-panel.js +273 -0
- package/dist/components/classify-panel/classify-panel.js.map +1 -0
- package/dist/components/classify-panel/classify-panel.styles.d.ts +3 -0
- package/dist/components/classify-panel/classify-panel.styles.d.ts.map +1 -0
- package/dist/components/classify-panel/classify-panel.styles.js +96 -0
- package/dist/components/classify-panel/classify-panel.styles.js.map +1 -0
- package/dist/components/legend/legend.d.ts +49 -0
- package/dist/components/legend/legend.d.ts.map +1 -0
- package/dist/components/legend/legend.js +129 -0
- package/dist/components/legend/legend.js.map +1 -0
- package/dist/components/legend/legend.styles.d.ts +3 -0
- package/dist/components/legend/legend.styles.d.ts.map +1 -0
- package/dist/components/legend/legend.styles.js +76 -0
- package/dist/components/legend/legend.styles.js.map +1 -0
- package/dist/docs/custom-elements.json +1796 -0
- package/dist/events/classify.d.ts +23 -0
- package/dist/events/classify.d.ts.map +1 -0
- package/dist/events/classify.js +12 -0
- package/dist/events/classify.js.map +1 -0
- package/dist/events/feature.d.ts +21 -0
- package/dist/events/feature.d.ts.map +1 -0
- package/dist/events/feature.js +17 -0
- package/dist/events/feature.js.map +1 -0
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/layer.d.ts +17 -0
- package/dist/events/layer.d.ts.map +1 -0
- package/dist/events/layer.js +15 -0
- package/dist/events/layer.js.map +1 -0
- package/dist/events/map.d.ts +42 -0
- package/dist/events/map.d.ts.map +1 -0
- package/dist/events/map.js +43 -0
- package/dist/events/map.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/map-host.styles.d.ts +4 -0
- package/dist/styles/map-host.styles.d.ts.map +1 -0
- package/dist/styles/map-host.styles.js +17 -0
- package/dist/styles/map-host.styles.js.map +1 -0
- package/dist/types/coordinates.d.ts +13 -0
- package/dist/types/coordinates.d.ts.map +1 -0
- package/dist/types/coordinates.js +2 -0
- package/dist/types/coordinates.js.map +1 -0
- package/dist/types/geojson.d.ts +18 -0
- package/dist/types/geojson.d.ts.map +1 -0
- package/dist/types/geojson.js +3 -0
- package/dist/types/geojson.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/map.d.ts +17 -0
- package/dist/types/map.d.ts.map +1 -0
- package/dist/types/map.js +2 -0
- package/dist/types/map.js.map +1 -0
- package/dist/types/style.d.ts +48 -0
- package/dist/types/style.d.ts.map +1 -0
- package/dist/types/style.js +2 -0
- package/dist/types/style.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ColorBrewer-style color schemes for choropleth mapping.
|
|
3
|
+
* Keyed by scheme name for direct lookup.
|
|
4
|
+
*
|
|
5
|
+
* @see https://colorbrewer2.org
|
|
6
|
+
*/
|
|
7
|
+
export const colorSchemes = {
|
|
8
|
+
// --- Sequential ---
|
|
9
|
+
Blues: {
|
|
10
|
+
name: "Blues",
|
|
11
|
+
type: "sequential",
|
|
12
|
+
colors: {
|
|
13
|
+
3: ["#deebf7", "#9ecae1", "#3182bd"],
|
|
14
|
+
4: ["#eff3ff", "#bdd7e7", "#6baed6", "#2171b5"],
|
|
15
|
+
5: ["#eff3ff", "#bdd7e7", "#6baed6", "#3182bd", "#08519c"],
|
|
16
|
+
6: ["#eff3ff", "#c6dbef", "#9ecae1", "#6baed6", "#3182bd", "#08519c"],
|
|
17
|
+
7: ["#eff3ff", "#c6dbef", "#9ecae1", "#6baed6", "#4292c6", "#2171b5", "#084594"],
|
|
18
|
+
8: ["#f7fbff", "#deebf7", "#c6dbef", "#9ecae1", "#6baed6", "#4292c6", "#2171b5", "#084594"],
|
|
19
|
+
9: [
|
|
20
|
+
"#f7fbff",
|
|
21
|
+
"#deebf7",
|
|
22
|
+
"#c6dbef",
|
|
23
|
+
"#9ecae1",
|
|
24
|
+
"#6baed6",
|
|
25
|
+
"#4292c6",
|
|
26
|
+
"#2171b5",
|
|
27
|
+
"#08519c",
|
|
28
|
+
"#08306b",
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
Greens: {
|
|
33
|
+
name: "Greens",
|
|
34
|
+
type: "sequential",
|
|
35
|
+
colors: {
|
|
36
|
+
3: ["#e5f5e0", "#a1d99b", "#31a354"],
|
|
37
|
+
4: ["#edf8e9", "#bae4b3", "#74c476", "#238b45"],
|
|
38
|
+
5: ["#edf8e9", "#bae4b3", "#74c476", "#31a354", "#006d2c"],
|
|
39
|
+
6: ["#edf8e9", "#c7e9c0", "#a1d99b", "#74c476", "#31a354", "#006d2c"],
|
|
40
|
+
7: ["#edf8e9", "#c7e9c0", "#a1d99b", "#74c476", "#41ab5d", "#238b45", "#005a32"],
|
|
41
|
+
8: ["#f7fcf5", "#e5f5e0", "#c7e9c0", "#a1d99b", "#74c476", "#41ab5d", "#238b45", "#005a32"],
|
|
42
|
+
9: [
|
|
43
|
+
"#f7fcf5",
|
|
44
|
+
"#e5f5e0",
|
|
45
|
+
"#c7e9c0",
|
|
46
|
+
"#a1d99b",
|
|
47
|
+
"#74c476",
|
|
48
|
+
"#41ab5d",
|
|
49
|
+
"#238b45",
|
|
50
|
+
"#006d2c",
|
|
51
|
+
"#00441b",
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
Reds: {
|
|
56
|
+
name: "Reds",
|
|
57
|
+
type: "sequential",
|
|
58
|
+
colors: {
|
|
59
|
+
3: ["#fee0d2", "#fc9272", "#de2d26"],
|
|
60
|
+
4: ["#fee5d9", "#fcae91", "#fb6a4a", "#cb181d"],
|
|
61
|
+
5: ["#fee5d9", "#fcae91", "#fb6a4a", "#de2d26", "#a50f15"],
|
|
62
|
+
6: ["#fee5d9", "#fcbba1", "#fc9272", "#fb6a4a", "#de2d26", "#a50f15"],
|
|
63
|
+
7: ["#fee5d9", "#fcbba1", "#fc9272", "#fb6a4a", "#ef3b2c", "#cb181d", "#99000d"],
|
|
64
|
+
8: ["#fff5f0", "#fee0d2", "#fcbba1", "#fc9272", "#fb6a4a", "#ef3b2c", "#cb181d", "#99000d"],
|
|
65
|
+
9: [
|
|
66
|
+
"#fff5f0",
|
|
67
|
+
"#fee0d2",
|
|
68
|
+
"#fcbba1",
|
|
69
|
+
"#fc9272",
|
|
70
|
+
"#fb6a4a",
|
|
71
|
+
"#ef3b2c",
|
|
72
|
+
"#cb181d",
|
|
73
|
+
"#a50f15",
|
|
74
|
+
"#67000d",
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
// --- Diverging ---
|
|
79
|
+
RdBu: {
|
|
80
|
+
name: "RdBu",
|
|
81
|
+
type: "diverging",
|
|
82
|
+
colors: {
|
|
83
|
+
3: ["#ef8a62", "#f7f7f7", "#67a9cf"],
|
|
84
|
+
4: ["#ca0020", "#f4a582", "#92c5de", "#0571b0"],
|
|
85
|
+
5: ["#ca0020", "#f4a582", "#f7f7f7", "#92c5de", "#0571b0"],
|
|
86
|
+
6: ["#b2182b", "#ef8a62", "#fddbc7", "#d1e5f0", "#67a9cf", "#2166ac"],
|
|
87
|
+
7: ["#b2182b", "#ef8a62", "#fddbc7", "#f7f7f7", "#d1e5f0", "#67a9cf", "#2166ac"],
|
|
88
|
+
8: ["#b2182b", "#d6604d", "#f4a582", "#fddbc7", "#d1e5f0", "#92c5de", "#4393c3", "#2166ac"],
|
|
89
|
+
9: [
|
|
90
|
+
"#b2182b",
|
|
91
|
+
"#d6604d",
|
|
92
|
+
"#f4a582",
|
|
93
|
+
"#fddbc7",
|
|
94
|
+
"#f7f7f7",
|
|
95
|
+
"#d1e5f0",
|
|
96
|
+
"#92c5de",
|
|
97
|
+
"#4393c3",
|
|
98
|
+
"#2166ac",
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
PiYG: {
|
|
103
|
+
name: "PiYG",
|
|
104
|
+
type: "diverging",
|
|
105
|
+
colors: {
|
|
106
|
+
3: ["#e9a3c9", "#f7f7f7", "#a1d76a"],
|
|
107
|
+
4: ["#d01c8b", "#f1b6da", "#b8e186", "#4dac26"],
|
|
108
|
+
5: ["#d01c8b", "#f1b6da", "#f7f7f7", "#b8e186", "#4dac26"],
|
|
109
|
+
6: ["#c51b7d", "#e9a3c9", "#fde0ef", "#e6f5d0", "#a1d76a", "#4d9221"],
|
|
110
|
+
7: ["#c51b7d", "#e9a3c9", "#fde0ef", "#f7f7f7", "#e6f5d0", "#a1d76a", "#4d9221"],
|
|
111
|
+
8: ["#c51b7d", "#de77ae", "#f1b6da", "#fde0ef", "#e6f5d0", "#b8e186", "#7fbc41", "#4d9221"],
|
|
112
|
+
9: [
|
|
113
|
+
"#c51b7d",
|
|
114
|
+
"#de77ae",
|
|
115
|
+
"#f1b6da",
|
|
116
|
+
"#fde0ef",
|
|
117
|
+
"#f7f7f7",
|
|
118
|
+
"#e6f5d0",
|
|
119
|
+
"#b8e186",
|
|
120
|
+
"#7fbc41",
|
|
121
|
+
"#4d9221",
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
// --- Qualitative ---
|
|
126
|
+
Set1: {
|
|
127
|
+
name: "Set1",
|
|
128
|
+
type: "qualitative",
|
|
129
|
+
colors: {
|
|
130
|
+
3: ["#e41a1c", "#377eb8", "#4daf4a"],
|
|
131
|
+
4: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3"],
|
|
132
|
+
5: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00"],
|
|
133
|
+
6: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33"],
|
|
134
|
+
7: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628"],
|
|
135
|
+
8: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf"],
|
|
136
|
+
9: [
|
|
137
|
+
"#e41a1c",
|
|
138
|
+
"#377eb8",
|
|
139
|
+
"#4daf4a",
|
|
140
|
+
"#984ea3",
|
|
141
|
+
"#ff7f00",
|
|
142
|
+
"#ffff33",
|
|
143
|
+
"#a65628",
|
|
144
|
+
"#f781bf",
|
|
145
|
+
"#999999",
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
Pastel1: {
|
|
150
|
+
name: "Pastel1",
|
|
151
|
+
type: "qualitative",
|
|
152
|
+
colors: {
|
|
153
|
+
3: ["#fbb4ae", "#b3cde3", "#ccebc5"],
|
|
154
|
+
4: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4"],
|
|
155
|
+
5: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6"],
|
|
156
|
+
6: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc"],
|
|
157
|
+
7: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd"],
|
|
158
|
+
8: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec"],
|
|
159
|
+
9: [
|
|
160
|
+
"#fbb4ae",
|
|
161
|
+
"#b3cde3",
|
|
162
|
+
"#ccebc5",
|
|
163
|
+
"#decbe4",
|
|
164
|
+
"#fed9a6",
|
|
165
|
+
"#ffffcc",
|
|
166
|
+
"#e5d8bd",
|
|
167
|
+
"#fddaec",
|
|
168
|
+
"#f2f2f2",
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
Dark2: {
|
|
173
|
+
name: "Dark2",
|
|
174
|
+
type: "qualitative",
|
|
175
|
+
colors: {
|
|
176
|
+
3: ["#1b9e77", "#d95f02", "#7570b3"],
|
|
177
|
+
4: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a"],
|
|
178
|
+
5: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e"],
|
|
179
|
+
6: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02"],
|
|
180
|
+
7: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d"],
|
|
181
|
+
8: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
/** Look up a color scheme by name. */
|
|
186
|
+
export function getColorScheme(name) {
|
|
187
|
+
return colorSchemes[name];
|
|
188
|
+
}
|
|
189
|
+
/** Get the color array for a scheme at a given class count. */
|
|
190
|
+
export function getSchemeColors(name, numClasses) {
|
|
191
|
+
return colorSchemes[name]?.colors[numClasses];
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=color-schemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-schemes.js","sourceRoot":"","sources":["../../src/classification/color-schemes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { equalInterval, quantileBreaks, naturalBreaks, classifyValue } from "./algorithms.js";
|
|
2
|
+
export { colorSchemes, getColorScheme, getSchemeColors, type ColorScheme, } from "./color-schemes.js";
|
|
3
|
+
export { createClassifyStyle } from "./classify-style.js";
|
|
4
|
+
export { subscribeClassify, publishClassify, type ClassifyUpdateDetail } from "./channel.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { equalInterval, quantileBreaks, naturalBreaks, classifyValue } from "./algorithms.js";
|
|
2
|
+
export { colorSchemes, getColorScheme, getSchemeColors, } from "./color-schemes.js";
|
|
3
|
+
export { createClassifyStyle } from "./classify-style.js";
|
|
4
|
+
export { subscribeClassify, publishClassify } from "./channel.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAA6B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type PropertyValues } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
import type { GeoJsonFeature } from "../../types/geojson.js";
|
|
4
|
+
import type { ClassificationMethod, ColorSchemeType } from "../../types/style.js";
|
|
5
|
+
/**
|
|
6
|
+
* A panel of classification controls for choropleth maps.
|
|
7
|
+
*
|
|
8
|
+
* When a `channel` attribute is set, the panel automatically computes
|
|
9
|
+
* classification from its `.data` and publishes updates to sibling
|
|
10
|
+
* `<sigvelo-geo-legend>` and `<sigvelo-*-geojson>` components sharing
|
|
11
|
+
* the same channel name.
|
|
12
|
+
*
|
|
13
|
+
* @tag sigvelo-geo-classify-panel
|
|
14
|
+
*
|
|
15
|
+
* @event sigvelo-classify-change - Fired when any classification setting changes.
|
|
16
|
+
*
|
|
17
|
+
* @csspart container - The outer panel container.
|
|
18
|
+
* @csspart title - The clickable title/header row.
|
|
19
|
+
* @csspart fields - The fields container.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SigveloGeoClassifyPanel extends SigveloElement {
|
|
22
|
+
static styles: import("lit").CSSResult[];
|
|
23
|
+
/**
|
|
24
|
+
* Channel name for auto-syncing with sibling geojson and legend components.
|
|
25
|
+
* Components sharing the same channel value automatically stay in sync.
|
|
26
|
+
*/
|
|
27
|
+
channel: string;
|
|
28
|
+
/** GeoJSON features used to compute classification (required for channel mode). */
|
|
29
|
+
data: GeoJsonFeature[];
|
|
30
|
+
/** Currently selected data property key. */
|
|
31
|
+
property: string;
|
|
32
|
+
/** Available data properties for the property dropdown. */
|
|
33
|
+
properties: {
|
|
34
|
+
value: string;
|
|
35
|
+
label: string;
|
|
36
|
+
}[];
|
|
37
|
+
/** Classification method. */
|
|
38
|
+
method: ClassificationMethod;
|
|
39
|
+
/** Color scheme type filter (sequential, diverging, qualitative). */
|
|
40
|
+
schemeType: ColorSchemeType;
|
|
41
|
+
/** Selected color scheme name. */
|
|
42
|
+
scheme: string;
|
|
43
|
+
/** Number of classes. */
|
|
44
|
+
numClasses: number;
|
|
45
|
+
/** Stroke color passed to the classification. */
|
|
46
|
+
strokeColor: string;
|
|
47
|
+
/** Stroke width passed to the classification. */
|
|
48
|
+
strokeWidth: number;
|
|
49
|
+
/** Fill opacity passed to the classification. */
|
|
50
|
+
fillOpacity: number;
|
|
51
|
+
/** Whether the panel content is collapsed. */
|
|
52
|
+
collapsed: boolean;
|
|
53
|
+
private _getSchemesForType;
|
|
54
|
+
private _getAvailableClasses;
|
|
55
|
+
private _publish;
|
|
56
|
+
protected updated(changed: PropertyValues): void;
|
|
57
|
+
private _handlePropertyChange;
|
|
58
|
+
private _handleMethodChange;
|
|
59
|
+
private _handleTypeChange;
|
|
60
|
+
private _handleSchemeChange;
|
|
61
|
+
private _handleClassesChange;
|
|
62
|
+
private _toggleCollapsed;
|
|
63
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
64
|
+
}
|
|
65
|
+
declare global {
|
|
66
|
+
interface HTMLElementTagNameMap {
|
|
67
|
+
"sigvelo-geo-classify-panel": SigveloGeoClassifyPanel;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=classify-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-panel.d.ts","sourceRoot":"","sources":["../../../src/components/classify-panel/classify-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAMxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAuBlF;;;;;;;;;;;;;;;GAeG;AACH,qBACa,uBAAwB,SAAQ,cAAc;IACzD,MAAM,CAAC,MAAM,4BAAwB;IAErC;;;OAGG;IACS,OAAO,SAAM;IAEzB,mFAAmF;IACnD,IAAI,EAAE,cAAc,EAAE,CAAM;IAE5D,4CAA4C;IAChC,QAAQ,SAAM;IAE1B,2DAA2D;IAC3B,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IAEpF,6BAA6B;IACjB,MAAM,EAAE,oBAAoB,CAAmB;IAE3D,qEAAqE;IAC7B,UAAU,EAAE,eAAe,CAAgB;IAEnF,kCAAkC;IACtB,MAAM,SAAW;IAE7B,yBAAyB;IAC6B,UAAU,SAAK;IAErE,iDAAiD;IACR,WAAW,SAAU;IAE9D,iDAAiD;IACM,WAAW,SAAK;IAEvE,iDAAiD;IACM,WAAW,SAAQ;IAE1E,8CAA8C;IACF,SAAS,UAAS;IAE9D,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,QAAQ;IA+BhB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc;IAgBzC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IAIxB,MAAM;CAuEP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,4BAA4B,EAAE,uBAAuB,CAAC;KACvD;CACF"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from "lit";
|
|
8
|
+
import { customElement, property } from "lit/decorators.js";
|
|
9
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
10
|
+
import hostStyles from "@mcp-b/wc-support/styles/host.styles";
|
|
11
|
+
import { SigveloClassifyChangeEvent } from "../../events/classify.js";
|
|
12
|
+
import { colorSchemes, getSchemeColors } from "../../classification/color-schemes.js";
|
|
13
|
+
import { createClassifyStyle } from "../../classification/classify-style.js";
|
|
14
|
+
import { publishClassify } from "../../classification/channel.js";
|
|
15
|
+
import styles from "./classify-panel.styles.js";
|
|
16
|
+
const chevronSvg = html `
|
|
17
|
+
<svg class="panel__chevron" viewBox="0 0 16 16" aria-hidden="true">
|
|
18
|
+
<path
|
|
19
|
+
d="M4.94 2.94a1.5 1.5 0 0 1 2.12 0L12 7.88a.17.17 0 0 1 0 .24l-4.94 4.94a1.5 1.5 0 0 1-2.12-2.12L8.88 7l-.94-.94L4.94 5.06a1.5 1.5 0 0 1 0-2.12Z"
|
|
20
|
+
/>
|
|
21
|
+
</svg>
|
|
22
|
+
`;
|
|
23
|
+
const METHOD_OPTIONS = [
|
|
24
|
+
{ value: "equalInterval", label: "Equal Interval" },
|
|
25
|
+
{ value: "quantile", label: "Quantile" },
|
|
26
|
+
{ value: "naturalBreaks", label: "Natural Breaks" },
|
|
27
|
+
];
|
|
28
|
+
const TYPE_OPTIONS = [
|
|
29
|
+
{ value: "sequential", label: "Sequential" },
|
|
30
|
+
{ value: "diverging", label: "Diverging" },
|
|
31
|
+
{ value: "qualitative", label: "Qualitative" },
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* A panel of classification controls for choropleth maps.
|
|
35
|
+
*
|
|
36
|
+
* When a `channel` attribute is set, the panel automatically computes
|
|
37
|
+
* classification from its `.data` and publishes updates to sibling
|
|
38
|
+
* `<sigvelo-geo-legend>` and `<sigvelo-*-geojson>` components sharing
|
|
39
|
+
* the same channel name.
|
|
40
|
+
*
|
|
41
|
+
* @tag sigvelo-geo-classify-panel
|
|
42
|
+
*
|
|
43
|
+
* @event sigvelo-classify-change - Fired when any classification setting changes.
|
|
44
|
+
*
|
|
45
|
+
* @csspart container - The outer panel container.
|
|
46
|
+
* @csspart title - The clickable title/header row.
|
|
47
|
+
* @csspart fields - The fields container.
|
|
48
|
+
*/
|
|
49
|
+
let SigveloGeoClassifyPanel = class SigveloGeoClassifyPanel extends SigveloElement {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
/**
|
|
53
|
+
* Channel name for auto-syncing with sibling geojson and legend components.
|
|
54
|
+
* Components sharing the same channel value automatically stay in sync.
|
|
55
|
+
*/
|
|
56
|
+
this.channel = "";
|
|
57
|
+
/** GeoJSON features used to compute classification (required for channel mode). */
|
|
58
|
+
this.data = [];
|
|
59
|
+
/** Currently selected data property key. */
|
|
60
|
+
this.property = "";
|
|
61
|
+
/** Available data properties for the property dropdown. */
|
|
62
|
+
this.properties = [];
|
|
63
|
+
/** Classification method. */
|
|
64
|
+
this.method = "naturalBreaks";
|
|
65
|
+
/** Color scheme type filter (sequential, diverging, qualitative). */
|
|
66
|
+
this.schemeType = "sequential";
|
|
67
|
+
/** Selected color scheme name. */
|
|
68
|
+
this.scheme = "Blues";
|
|
69
|
+
/** Number of classes. */
|
|
70
|
+
this.numClasses = 5;
|
|
71
|
+
/** Stroke color passed to the classification. */
|
|
72
|
+
this.strokeColor = "#666";
|
|
73
|
+
/** Stroke width passed to the classification. */
|
|
74
|
+
this.strokeWidth = 1;
|
|
75
|
+
/** Fill opacity passed to the classification. */
|
|
76
|
+
this.fillOpacity = 0.85;
|
|
77
|
+
/** Whether the panel content is collapsed. */
|
|
78
|
+
this.collapsed = false;
|
|
79
|
+
}
|
|
80
|
+
_getSchemesForType() {
|
|
81
|
+
return Object.values(colorSchemes)
|
|
82
|
+
.filter((s) => s.type === this.schemeType)
|
|
83
|
+
.map((s) => s.name);
|
|
84
|
+
}
|
|
85
|
+
_getAvailableClasses() {
|
|
86
|
+
const scheme = colorSchemes[this.scheme];
|
|
87
|
+
if (!scheme)
|
|
88
|
+
return [];
|
|
89
|
+
return Object.keys(scheme.colors)
|
|
90
|
+
.map(Number)
|
|
91
|
+
.toSorted((a, b) => a - b);
|
|
92
|
+
}
|
|
93
|
+
_publish() {
|
|
94
|
+
this.dispatchEvent(new SigveloClassifyChangeEvent({
|
|
95
|
+
property: this.property,
|
|
96
|
+
method: this.method,
|
|
97
|
+
schemeType: this.schemeType,
|
|
98
|
+
scheme: this.scheme,
|
|
99
|
+
numClasses: this.numClasses,
|
|
100
|
+
}));
|
|
101
|
+
if (this.channel && this.data.length > 0) {
|
|
102
|
+
const result = createClassifyStyle(this.data, {
|
|
103
|
+
property: this.property,
|
|
104
|
+
method: this.method,
|
|
105
|
+
numClasses: this.numClasses,
|
|
106
|
+
colorScheme: this.scheme,
|
|
107
|
+
strokeColor: this.strokeColor,
|
|
108
|
+
strokeWidth: this.strokeWidth,
|
|
109
|
+
fillOpacity: this.fillOpacity,
|
|
110
|
+
});
|
|
111
|
+
publishClassify(this.channel, {
|
|
112
|
+
styleFunction: result.styleFunction,
|
|
113
|
+
breaks: result.breaks,
|
|
114
|
+
colors: result.colors,
|
|
115
|
+
property: result.property,
|
|
116
|
+
method: result.method,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
updated(changed) {
|
|
121
|
+
const classifyProps = [
|
|
122
|
+
"data",
|
|
123
|
+
"property",
|
|
124
|
+
"method",
|
|
125
|
+
"scheme",
|
|
126
|
+
"numClasses",
|
|
127
|
+
"strokeColor",
|
|
128
|
+
"strokeWidth",
|
|
129
|
+
"fillOpacity",
|
|
130
|
+
];
|
|
131
|
+
if (classifyProps.some((p) => changed.has(p))) {
|
|
132
|
+
this._publish();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
_handlePropertyChange(e) {
|
|
136
|
+
this.property = e.target.value;
|
|
137
|
+
}
|
|
138
|
+
_handleMethodChange(e) {
|
|
139
|
+
this.method = e.target.value;
|
|
140
|
+
}
|
|
141
|
+
_handleTypeChange(e) {
|
|
142
|
+
this.schemeType = e.target.value;
|
|
143
|
+
const schemes = this._getSchemesForType();
|
|
144
|
+
if (schemes.length > 0 && !schemes.includes(this.scheme)) {
|
|
145
|
+
this.scheme = schemes[0];
|
|
146
|
+
}
|
|
147
|
+
const classes = this._getAvailableClasses();
|
|
148
|
+
if (classes.length > 0 && !classes.includes(this.numClasses)) {
|
|
149
|
+
this.numClasses = classes[Math.floor(classes.length / 2)];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
_handleSchemeChange(e) {
|
|
153
|
+
this.scheme = e.target.value;
|
|
154
|
+
const classes = this._getAvailableClasses();
|
|
155
|
+
if (classes.length > 0 && !classes.includes(this.numClasses)) {
|
|
156
|
+
this.numClasses = classes[Math.floor(classes.length / 2)];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
_handleClassesChange(e) {
|
|
160
|
+
this.numClasses = Number(e.target.value);
|
|
161
|
+
}
|
|
162
|
+
_toggleCollapsed() {
|
|
163
|
+
this.collapsed = !this.collapsed;
|
|
164
|
+
}
|
|
165
|
+
render() {
|
|
166
|
+
const schemes = this._getSchemesForType();
|
|
167
|
+
const availableClasses = this._getAvailableClasses();
|
|
168
|
+
const previewColors = getSchemeColors(this.scheme, this.numClasses) ?? [];
|
|
169
|
+
const fields = this.collapsed
|
|
170
|
+
? nothing
|
|
171
|
+
: html `
|
|
172
|
+
<div class="panel__fields" part="fields">
|
|
173
|
+
<label class="panel__field">
|
|
174
|
+
<span class="panel__label">Property</span>
|
|
175
|
+
<select .value=${this.property} @change=${this._handlePropertyChange}>
|
|
176
|
+
${this.properties.map((p) => html `<option value=${p.value}>${p.label}</option>`)}
|
|
177
|
+
</select>
|
|
178
|
+
</label>
|
|
179
|
+
|
|
180
|
+
<label class="panel__field">
|
|
181
|
+
<span class="panel__label">Method</span>
|
|
182
|
+
<select .value=${this.method} @change=${this._handleMethodChange}>
|
|
183
|
+
${METHOD_OPTIONS.map((m) => html `<option value=${m.value}>${m.label}</option>`)}
|
|
184
|
+
</select>
|
|
185
|
+
</label>
|
|
186
|
+
|
|
187
|
+
<label class="panel__field">
|
|
188
|
+
<span class="panel__label">Type</span>
|
|
189
|
+
<select .value=${this.schemeType} @change=${this._handleTypeChange}>
|
|
190
|
+
${TYPE_OPTIONS.map((t) => html `<option value=${t.value}>${t.label}</option>`)}
|
|
191
|
+
</select>
|
|
192
|
+
</label>
|
|
193
|
+
|
|
194
|
+
<div>
|
|
195
|
+
<label class="panel__field">
|
|
196
|
+
<span class="panel__label">Scheme</span>
|
|
197
|
+
<select .value=${this.scheme} @change=${this._handleSchemeChange}>
|
|
198
|
+
${schemes.map((name) => html `<option value=${name}>${name}</option>`)}
|
|
199
|
+
</select>
|
|
200
|
+
</label>
|
|
201
|
+
${previewColors.length > 0
|
|
202
|
+
? html `
|
|
203
|
+
<div class="panel__color-bar">
|
|
204
|
+
${previewColors.map((c) => html `<div
|
|
205
|
+
class="panel__color-bar-segment"
|
|
206
|
+
style="background:${c}"
|
|
207
|
+
></div>`)}
|
|
208
|
+
</div>
|
|
209
|
+
`
|
|
210
|
+
: nothing}
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
<label class="panel__field">
|
|
214
|
+
<span class="panel__label">Classes</span>
|
|
215
|
+
<select .value=${String(this.numClasses)} @change=${this._handleClassesChange}>
|
|
216
|
+
${availableClasses.map((n) => html `<option value=${String(n)}>${n}</option>`)}
|
|
217
|
+
</select>
|
|
218
|
+
</label>
|
|
219
|
+
</div>
|
|
220
|
+
`;
|
|
221
|
+
return html `
|
|
222
|
+
<div class="panel" part="container">
|
|
223
|
+
<div class="panel__header" part="title" @click=${this._toggleCollapsed}>
|
|
224
|
+
<span class="panel__title">Classification</span>
|
|
225
|
+
${chevronSvg}
|
|
226
|
+
</div>
|
|
227
|
+
${fields}
|
|
228
|
+
</div>
|
|
229
|
+
`;
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
SigveloGeoClassifyPanel.styles = [hostStyles, styles];
|
|
233
|
+
__decorate([
|
|
234
|
+
property()
|
|
235
|
+
], SigveloGeoClassifyPanel.prototype, "channel", void 0);
|
|
236
|
+
__decorate([
|
|
237
|
+
property({ attribute: false })
|
|
238
|
+
], SigveloGeoClassifyPanel.prototype, "data", void 0);
|
|
239
|
+
__decorate([
|
|
240
|
+
property()
|
|
241
|
+
], SigveloGeoClassifyPanel.prototype, "property", void 0);
|
|
242
|
+
__decorate([
|
|
243
|
+
property({ attribute: false })
|
|
244
|
+
], SigveloGeoClassifyPanel.prototype, "properties", void 0);
|
|
245
|
+
__decorate([
|
|
246
|
+
property()
|
|
247
|
+
], SigveloGeoClassifyPanel.prototype, "method", void 0);
|
|
248
|
+
__decorate([
|
|
249
|
+
property({ attribute: "scheme-type" })
|
|
250
|
+
], SigveloGeoClassifyPanel.prototype, "schemeType", void 0);
|
|
251
|
+
__decorate([
|
|
252
|
+
property()
|
|
253
|
+
], SigveloGeoClassifyPanel.prototype, "scheme", void 0);
|
|
254
|
+
__decorate([
|
|
255
|
+
property({ attribute: "num-classes", type: Number })
|
|
256
|
+
], SigveloGeoClassifyPanel.prototype, "numClasses", void 0);
|
|
257
|
+
__decorate([
|
|
258
|
+
property({ attribute: "stroke-color" })
|
|
259
|
+
], SigveloGeoClassifyPanel.prototype, "strokeColor", void 0);
|
|
260
|
+
__decorate([
|
|
261
|
+
property({ attribute: "stroke-width", type: Number })
|
|
262
|
+
], SigveloGeoClassifyPanel.prototype, "strokeWidth", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
property({ attribute: "fill-opacity", type: Number })
|
|
265
|
+
], SigveloGeoClassifyPanel.prototype, "fillOpacity", void 0);
|
|
266
|
+
__decorate([
|
|
267
|
+
property({ type: Boolean, reflect: true })
|
|
268
|
+
], SigveloGeoClassifyPanel.prototype, "collapsed", void 0);
|
|
269
|
+
SigveloGeoClassifyPanel = __decorate([
|
|
270
|
+
customElement("sigvelo-geo-classify-panel")
|
|
271
|
+
], SigveloGeoClassifyPanel);
|
|
272
|
+
export { SigveloGeoClassifyPanel };
|
|
273
|
+
//# sourceMappingURL=classify-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-panel.js","sourceRoot":"","sources":["../../../src/components/classify-panel/classify-panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-panel.styles.d.ts","sourceRoot":"","sources":["../../../src/components/classify-panel/classify-panel.styles.ts"],"names":[],"mappings":";AAEA,wBA6FE"}
|