@mapcreator/api 5.0.0-alpha.86 → 5.0.0-alpha.87
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/cjs/api/choropleth.d.ts +81 -4
- package/cjs/api/choropleth.d.ts.map +1 -1
- package/cjs/api/choropleth.js +26 -17
- package/cjs/api/choropleth.js.map +1 -1
- package/cjs/api/font.d.ts.map +1 -1
- package/cjs/api/font.js.map +1 -1
- package/cjs/api/insetMap.d.ts.map +1 -1
- package/cjs/api/insetMap.js +5 -3
- package/cjs/api/insetMap.js.map +1 -1
- package/cjs/api/jobRevision.d.ts.map +1 -1
- package/cjs/api/jobRevision.js +6 -4
- package/cjs/api/jobRevision.js.map +1 -1
- package/cjs/oauth.d.ts +6 -9
- package/cjs/oauth.d.ts.map +1 -1
- package/cjs/oauth.js +203 -28
- package/cjs/oauth.js.map +1 -1
- package/cjs/utils.d.ts.map +1 -1
- package/cjs/utils.js +3 -3
- package/cjs/utils.js.map +1 -1
- package/esm/api/choropleth.d.ts +81 -4
- package/esm/api/choropleth.d.ts.map +1 -1
- package/esm/api/choropleth.js +23 -16
- package/esm/api/choropleth.js.map +1 -1
- package/esm/api/font.d.ts.map +1 -1
- package/esm/api/font.js +1 -1
- package/esm/api/font.js.map +1 -1
- package/esm/api/insetMap.d.ts.map +1 -1
- package/esm/api/insetMap.js +6 -4
- package/esm/api/insetMap.js.map +1 -1
- package/esm/api/jobRevision.d.ts.map +1 -1
- package/esm/api/jobRevision.js +6 -4
- package/esm/api/jobRevision.js.map +1 -1
- package/esm/oauth.d.ts +6 -9
- package/esm/oauth.d.ts.map +1 -1
- package/esm/oauth.js +201 -27
- package/esm/oauth.js.map +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +4 -4
- package/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/api/choropleth.ts +140 -44
- package/src/api/font.ts +1 -9
- package/src/api/insetMap.ts +5 -4
- package/src/api/jobRevision.ts +5 -4
- package/src/oauth.ts +258 -28
- package/src/utils.ts +4 -4
package/esm/oauth.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
export let apiHost = '';
|
|
2
2
|
export let token = null;
|
|
3
|
+
let apiClientId = '';
|
|
3
4
|
let callbackUrl = '';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
}
|
|
5
|
+
let oauthScopes = ['*'];
|
|
6
|
+
const anchorParams = ['access_token', 'token_type', 'expires_in', 'state'];
|
|
7
|
+
const storagePrefix = '_m4n_';
|
|
8
|
+
const statePrefix = 'oauth_state_';
|
|
9
|
+
const storageName = 'api_token';
|
|
10
|
+
const dummyTokenExpires = new Date('2100-01-01T01:00:00');
|
|
11
|
+
const titleCase = (str) => String(str).toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
|
|
13
12
|
/**
|
|
14
13
|
* Setup internal structures to use dummy authentication flow
|
|
15
14
|
*
|
|
@@ -20,9 +19,9 @@ export function initDummyFlow(apiUrl, oauthToken) {
|
|
|
20
19
|
const parts = oauthToken.includes(' ') ? oauthToken.split(' ', 2) : ['Bearer', oauthToken];
|
|
21
20
|
apiHost = apiUrl.replace(/\/+$/, '');
|
|
22
21
|
token = {
|
|
23
|
-
type: parts[0]
|
|
22
|
+
type: titleCase(parts[0]),
|
|
24
23
|
token: parts[1],
|
|
25
|
-
expires:
|
|
24
|
+
expires: dummyTokenExpires,
|
|
26
25
|
toString() {
|
|
27
26
|
return `${this.type} ${this.token}`;
|
|
28
27
|
},
|
|
@@ -32,32 +31,207 @@ export function initDummyFlow(apiUrl, oauthToken) {
|
|
|
32
31
|
* Setup internal structures to use implicit authentication flow
|
|
33
32
|
*
|
|
34
33
|
* @param {string} apiUrl - Full API URL
|
|
34
|
+
* @param {string} clientId - OAuth client id
|
|
35
35
|
* @param {string} [redirectUrl] - Callback URL
|
|
36
|
+
* @param {string[]} [scopes] - A list of required scopes
|
|
36
37
|
*/
|
|
37
|
-
export function initImplicitFlow(apiUrl, redirectUrl = '') {
|
|
38
|
+
export function initImplicitFlow(apiUrl, clientId, redirectUrl = '', scopes = ['*']) {
|
|
38
39
|
apiHost = apiUrl.replace(/\/+$/, '');
|
|
40
|
+
apiClientId = String(clientId);
|
|
39
41
|
callbackUrl = String(redirectUrl || window.location.href.split('#')[0]);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
window.
|
|
42
|
+
oauthScopes = scopes;
|
|
43
|
+
{
|
|
44
|
+
const key = `${storagePrefix}${storageName}`;
|
|
45
|
+
const data = window.localStorage.getItem(key);
|
|
46
|
+
if (data) {
|
|
47
|
+
try {
|
|
48
|
+
const obj = JSON.parse(data);
|
|
49
|
+
if (typeof obj.type === 'string' &&
|
|
50
|
+
typeof obj.token === 'string' &&
|
|
51
|
+
typeof obj.expires === 'string' &&
|
|
52
|
+
new Date(obj.expires) > new Date()) {
|
|
53
|
+
token = {
|
|
54
|
+
type: titleCase(obj.type),
|
|
55
|
+
token: obj.token,
|
|
56
|
+
expires: new Date(obj.expires),
|
|
57
|
+
toString() {
|
|
58
|
+
return `${this.type} ${this.token}`;
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
window.localStorage.removeItem(key);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
/* */
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
{
|
|
72
|
+
const obj = getAnchorToken();
|
|
73
|
+
if (isAnchorToken(obj)) {
|
|
74
|
+
// We'll not go there if anchor contains error and/or message
|
|
75
|
+
// This means that anchor parameters will be preserved for the next processing
|
|
76
|
+
cleanAnchorParams();
|
|
77
|
+
const expires = new Date(Date.now() + Number(obj.expires_in) * 1000);
|
|
78
|
+
if (isValidState(obj.state) && expires > new Date()) {
|
|
79
|
+
token = {
|
|
80
|
+
type: titleCase(obj.token_type),
|
|
81
|
+
token: obj.access_token,
|
|
82
|
+
expires,
|
|
83
|
+
toString() {
|
|
84
|
+
return `${this.type} ${this.token}`;
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
const key = `${storagePrefix}${storageName}`;
|
|
88
|
+
const data = { type: token.type, token: token.token, expires: expires.toUTCString() };
|
|
89
|
+
window.localStorage.setItem(key, JSON.stringify(data));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// TODO: add some logic to handle this
|
|
93
|
+
// throw Error('Invalid state in url');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (authenticated()) {
|
|
98
|
+
const href = sessionStorage.getItem('redirect-url');
|
|
99
|
+
if (href) {
|
|
100
|
+
sessionStorage.removeItem('redirect-url');
|
|
101
|
+
window.history.replaceState(null, document.title, href);
|
|
102
|
+
}
|
|
44
103
|
}
|
|
45
104
|
}
|
|
46
105
|
export async function authenticate() {
|
|
47
106
|
return new Promise(() => {
|
|
107
|
+
if (anchorContainsError()) {
|
|
108
|
+
console.error(getError());
|
|
109
|
+
cleanAnchorParams();
|
|
110
|
+
}
|
|
111
|
+
forget();
|
|
48
112
|
sessionStorage.setItem('redirect-url', window.location.href);
|
|
49
|
-
window.location.assign(
|
|
113
|
+
window.location.assign(buildRedirectUrl());
|
|
50
114
|
});
|
|
51
115
|
}
|
|
52
|
-
export function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
116
|
+
export function authenticated() {
|
|
117
|
+
return token != null && token.expires > new Date() && (token.expires.valueOf() === dummyTokenExpires.valueOf() ||
|
|
118
|
+
!!window.localStorage.getItem(`${storagePrefix}${storageName}`));
|
|
119
|
+
}
|
|
120
|
+
export async function logout() {
|
|
121
|
+
if (token) {
|
|
122
|
+
await fetch(`${apiHost}/oauth/logout`, {
|
|
123
|
+
method: 'POST',
|
|
124
|
+
headers: {
|
|
125
|
+
Accept: 'application/json',
|
|
126
|
+
Authorization: token.toString(),
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
forget();
|
|
131
|
+
}
|
|
132
|
+
function forget() {
|
|
133
|
+
for (let i = 0; i < window.localStorage.length; ++i) {
|
|
134
|
+
const key = window.localStorage.key(i);
|
|
135
|
+
if (key === null || key === void 0 ? void 0 : key.startsWith(storagePrefix)) {
|
|
136
|
+
window.localStorage.removeItem(key);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
token = null;
|
|
140
|
+
}
|
|
141
|
+
function buildRedirectUrl() {
|
|
142
|
+
const queryParams = new URLSearchParams({
|
|
143
|
+
client_id: apiClientId,
|
|
144
|
+
redirect_uri: callbackUrl,
|
|
145
|
+
response_type: 'token',
|
|
146
|
+
scope: oauthScopes.join(' '),
|
|
147
|
+
state: generateState(),
|
|
148
|
+
});
|
|
149
|
+
return `${apiHost}/oauth/authorize?${queryParams}`;
|
|
150
|
+
}
|
|
151
|
+
function getAnchorQuery() {
|
|
152
|
+
return window.location.hash.replace(/^#\/?/, '');
|
|
153
|
+
}
|
|
154
|
+
function getAnchorParams() {
|
|
155
|
+
const query = getAnchorQuery();
|
|
156
|
+
// eslint-disable-next-line @stylistic/padding-line-between-statements,@typescript-eslint/no-unsafe-return
|
|
157
|
+
return Object.fromEntries(query.split('&').map(pair => pair.split('=').map(decodeURIComponent)));
|
|
158
|
+
}
|
|
159
|
+
function getAnchorToken() {
|
|
160
|
+
const params = getAnchorParams();
|
|
161
|
+
return Object.fromEntries(Object.entries(params).filter(([key]) => anchorParams.includes(key)));
|
|
162
|
+
}
|
|
163
|
+
function isAnchorToken(anchorToken) {
|
|
164
|
+
const queryKeys = Object.keys(anchorToken);
|
|
165
|
+
return anchorParams.every(key => queryKeys.includes(key));
|
|
166
|
+
}
|
|
167
|
+
function cleanAnchorParams() {
|
|
168
|
+
const query = window.location.hash.replace(/^#\/?/, '');
|
|
169
|
+
const targets = [...anchorParams, 'error', 'message'];
|
|
170
|
+
const newHash = query
|
|
171
|
+
.split('&')
|
|
172
|
+
.filter(pair => !targets.includes(decodeURIComponent(pair.split('=')[0])))
|
|
173
|
+
.join('&');
|
|
174
|
+
if (newHash) {
|
|
175
|
+
window.location.hash = newHash;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const { origin, pathname, search } = window.location;
|
|
179
|
+
window.history.replaceState(null, document.title, `${origin}${pathname}${search}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function isValidState(state) {
|
|
183
|
+
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
184
|
+
const found = window.localStorage.getItem(key) != null;
|
|
185
|
+
if (found) {
|
|
186
|
+
window.localStorage.removeItem(key);
|
|
187
|
+
}
|
|
188
|
+
return found;
|
|
189
|
+
}
|
|
190
|
+
function anchorContainsError() {
|
|
191
|
+
return 'error' in getAnchorParams();
|
|
192
|
+
}
|
|
193
|
+
function generateState() {
|
|
194
|
+
// @ts-expect-error TS2365
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
196
|
+
const state = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, // @ts-expect-error TS2362
|
|
197
|
+
// @ts-expect-error TS2362
|
|
198
|
+
c => (c ^ ((Math.random() * 256) & (0x0f >>> (c >>> 2)))).toString(16));
|
|
199
|
+
const key = `${storagePrefix}${statePrefix}${state}`;
|
|
200
|
+
window.localStorage.setItem(key, `${Date.now()}`);
|
|
201
|
+
return state;
|
|
202
|
+
}
|
|
203
|
+
class OAuthError extends Error {
|
|
204
|
+
constructor(message, error) {
|
|
205
|
+
super(message);
|
|
206
|
+
this.error = String(error);
|
|
207
|
+
}
|
|
208
|
+
toString() {
|
|
209
|
+
let error = this.error;
|
|
210
|
+
if (error.includes('_')) {
|
|
211
|
+
error = error.replace('_', ' ').replace(/^./, c => c.toUpperCase());
|
|
212
|
+
}
|
|
213
|
+
return this.message ? `${error}: ${this.message}` : error;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function getError() {
|
|
217
|
+
const params = getAnchorParams();
|
|
218
|
+
return params.message
|
|
219
|
+
? new OAuthError(params.message, params.error)
|
|
220
|
+
: new OAuthError(titleCase(params.error), params.error);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Our goal is to support even obsolete platforms (ES2017+ / Node.js 8.10+).
|
|
224
|
+
* This is a small polyfill for possibly missing method used in our codebase.
|
|
225
|
+
*/
|
|
226
|
+
if (!Object.fromEntries) { // eslint-disable-next-line arrow-body-style
|
|
227
|
+
Object.fromEntries = (entries) => {
|
|
228
|
+
return Array.from(entries).reduce((object, entry) => {
|
|
229
|
+
if (!Array.isArray(entry)) {
|
|
230
|
+
throw new TypeError(`Iterator value ${entry} is not an entry object.`);
|
|
231
|
+
}
|
|
232
|
+
object[`${entry[0]}`] = entry[1];
|
|
233
|
+
return object;
|
|
234
|
+
}, {});
|
|
235
|
+
};
|
|
62
236
|
}
|
|
63
237
|
//# sourceMappingURL=oauth.js.map
|
package/esm/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAExB,MAAM,CAAC,IAAI,KAAK,GAML,IAAI,CAAC;AAEhB,IAAI,WAAW,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiHost, authenticate,
|
|
1
|
+
import { apiHost, authenticate, token } from './oauth.js';
|
|
2
2
|
export const myUser = 'me';
|
|
3
3
|
export const myOrganisations = 'mine';
|
|
4
4
|
export const lastJobRevision = 'last';
|
|
@@ -130,6 +130,7 @@ export async function request(path, body, extraHeaders, extraOptions) {
|
|
|
130
130
|
}
|
|
131
131
|
function getRequestInit(body, extraHeaders, extraOptions) {
|
|
132
132
|
var _a;
|
|
133
|
+
const authorization = token ? { Authorization: token.toString() } : null;
|
|
133
134
|
let contentType = null;
|
|
134
135
|
if (body !== undefined) {
|
|
135
136
|
switch (true) {
|
|
@@ -153,10 +154,9 @@ function getRequestInit(body, extraHeaders, extraOptions) {
|
|
|
153
154
|
body = JSON.stringify(body);
|
|
154
155
|
}
|
|
155
156
|
}
|
|
156
|
-
const method = (_a = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.method) !== null && _a !== void 0 ? _a : (body != null ? 'POST' : 'GET'); // don't touch `!=` please
|
|
157
|
-
const authorization = getAuthorizationHeaders(method);
|
|
158
157
|
const headers = Object.assign(Object.assign(Object.assign({ Accept: 'application/json' }, authorization), contentType), extraHeaders);
|
|
159
|
-
|
|
158
|
+
const method = (_a = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.method) !== null && _a !== void 0 ? _a : (body != null ? 'POST' : 'GET'); // don't touch `!=` please
|
|
159
|
+
return { body, headers, method };
|
|
160
160
|
}
|
|
161
161
|
export function getContext(revivers, keys = Object.keys(revivers)) {
|
|
162
162
|
return {
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA2B1D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,YAAY,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAElG,4CAA4C;AAC5C,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,MAAM,OAAO,SAAU,SAAQ,KAAK;IAElC,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEjC,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,OAAO,IAAI,eAAe,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAgC,CAAC,CAAC;YAEjE,GAAG,CAAC,IAAI,CACN,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;gBACrD,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;oBAClB,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;oBACvF,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG;gBACvB,GAAG;aACJ,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;AACJ,CAAC;AAsBD,MAAM,OAAO,OAIX,SAAQ,KAAK;IAKb,YAAY,IAA8B,EAAE,OAAgB,EAAE,MAAc;QAC1E,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAK3B,IAAY,EACZ,IAAuE,EACvE,YAA4C,EAC5C,YAAiC;IAIjC,MAAM,IAAI,GAAG,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;;QAC9D,MAAM,IAAI,YAAY,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,EAAE;SACnE,CAAC,CAAC,CAAM,CAAC;QAEV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAEtB,MAAM,QAAQ,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC;YACxC,MAAM,QAAQ,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC;YACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnD,MAAM,OAAO,GACX,QAAQ,IAAI,IAAI,CAAC,MAAM;gBACrB,CAAC,CAAC,UAAU,CAAC,QAAgD,EAAE,IAAI,CAAC;gBACpE,CAAC,CAAC,aAAa,CAAC;YAEpB,IAAI,MAAS,CAAC;YAEd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,QAAQ,GAAG,EAAkB,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACjC,iDAAiD;gBACjD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;oBACnF,iDAAiD;oBACjD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAEzE,QAAQ,GAAG,MAAM,OAAO,CACtB,IAAI,EAAE,IAAI,kCAAO,YAAY,KAAE,UAAU,EAAE,MAAM,KAAI,YAAY,CAClE,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,GAAG,CACP,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;wBACzB,CAAC,CAAE,IAAuC,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;wBACpE,CAAC,CAAC,IAAI,CACT,CAAC,MAAM,CAAC,QAAQ,CAAM,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,QAAQ,CAAC;gBACpB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,yEAAyE;oBACzE,MAAM,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAM,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,EAAO,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,OAAO,CAAU,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6CAA6C;QAC7C,wCAAwC;QACxC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,MAAM,YAAY,EAAE,CAAC;gBACrB,MAAM,CAAC,QAAQ;YACjB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,MAAM,IAAI,QAAQ,CAChB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAClC,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE;iBAC/D,CAAC,CAAC,CAAa,CACjB,CAAC;YACJ,KAAK,GAAG;gBACN,MAAM,IAAI,OAAO,CACf,CACE,OAAO,EACP,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAA,CAAC,CAAC,CACtF,CAAC;gBAEF,OAAO,OAAO,CAAU,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,IAAuE,EACvE,YAA4C,EAC5C,YAAiC;;IAEjC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,WAAW,GAAG,IAAyC,CAAC;IAE5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO,IAAI,KAAK,QAAQ;gBAC3B,WAAW,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;gBAC/C,MAAM;YACR,KAAK,IAAI,YAAY,QAAQ,CAAC,CAAC,wCAAwC;YACvE,KAAK,IAAI,YAAY,eAAe,EAAE,sDAAsD;gBAC1F,MAAM;YACR,KAAK,IAAI,YAAY,IAAI,EAAE,+BAA+B;gBACxD,WAAW,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,IAAI,0BAA0B,EAAE,CAAC;gBAC1E,MAAM;YACR,KAAK,IAAI,YAAY,WAAW,CAAC;YACjC,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC3B,WAAW,GAAG,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC;gBAC7D,MAAM;YACR,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAA;gBAC3C,MAAM;YACR;gBACE,WAAW,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBACrD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,+CAAK,MAAM,EAAE,kBAAkB,IAAK,aAAa,GAAK,WAAW,GAAK,YAAY,CAAE,CAAC;IAClG,MAAM,MAAM,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B;IAElG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAiB,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,UAAU,CACxB,QAAwB,EACxB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE5B,OAAO;QACL,YAAY,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9E,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC3C,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAEzB,IAAyF;IAEzF,MAAM,MAAM,GAAG,EAA6B,CAAC;IAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC,oDAAoD;AAEtD,MAAM,UAAU,SAAS,CAAoC,IAAO;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC/B,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CAAoC,IAAO;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC/B,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAoC,IAAa;IAC1E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAgC,GAAW;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAgC,GAAW;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAoB,GAAW;IACjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
package/src/api/choropleth.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { type ApiError, type ApiSuccess, Flatten, Revivers, getSearchParams, request } from '../utils.js';
|
|
1
|
+
import { type ApiError, type ApiSuccess, type Flatten, type Revivers, getSearchParams, request } from '../utils.js';
|
|
2
|
+
|
|
3
|
+
import type { RequireAtLeastOne } from 'type-fest';
|
|
2
4
|
import type { Polygon } from 'geojson';
|
|
3
|
-
|
|
5
|
+
|
|
6
|
+
export const boundingBoxRevivers: Revivers<
|
|
7
|
+
{ data: { bounding_box: string } } & Omit<ApiSuccess, 'data'> | ApiError,
|
|
8
|
+
{ boundingBox: Polygon }
|
|
9
|
+
> = {
|
|
10
|
+
boundingBox: (data: { bounding_box: string }) => JSON.parse(data.bounding_box) as Polygon,
|
|
11
|
+
};
|
|
4
12
|
|
|
5
13
|
export type ApiSearchPoint = {
|
|
6
14
|
lat: number;
|
|
@@ -14,23 +22,6 @@ export type ApiSearchBounds = {
|
|
|
14
22
|
max_lng: number;
|
|
15
23
|
};
|
|
16
24
|
|
|
17
|
-
type ApiSingleOrGroupedArea = {
|
|
18
|
-
id: number;
|
|
19
|
-
title: string;
|
|
20
|
-
subtitle: string;
|
|
21
|
-
svg_preview: string;
|
|
22
|
-
bounding_box: string;
|
|
23
|
-
is_group: boolean;
|
|
24
|
-
vector_source: string | null;
|
|
25
|
-
source_layer: string | null;
|
|
26
|
-
feature_id: number | null;
|
|
27
|
-
properties: Record<string, string> | null;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
type ApiSingleOrGroupedAreaArray = {
|
|
31
|
-
data: ApiSingleOrGroupedArea[];
|
|
32
|
-
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
33
|
-
|
|
34
25
|
type SingleOrGroupedAreaBase = {
|
|
35
26
|
id: number;
|
|
36
27
|
title: string;
|
|
@@ -47,14 +38,51 @@ export type GroupedArea = SingleOrGroupedAreaBase & {
|
|
|
47
38
|
// TODO don't export this once search on click is out
|
|
48
39
|
export type SingleArea = SingleOrGroupedAreaBase & {
|
|
49
40
|
isGroup: false;
|
|
41
|
+
properties: Record<string, string>;
|
|
50
42
|
vectorSource: string;
|
|
51
43
|
sourceLayer: string;
|
|
52
44
|
featureId: number;
|
|
53
|
-
properties: Record<string, string>;
|
|
54
45
|
};
|
|
55
46
|
|
|
56
|
-
export type SingleOrGroupedArea =
|
|
47
|
+
export type SingleOrGroupedArea = {
|
|
48
|
+
id: number;
|
|
49
|
+
title: string;
|
|
50
|
+
subtitle: string;
|
|
51
|
+
svgPreview: string;
|
|
52
|
+
boundingBox: Polygon;
|
|
53
|
+
isGroup: boolean;
|
|
54
|
+
properties: Record<string, string> | null;
|
|
55
|
+
vectorSource: string | null;
|
|
56
|
+
sourceLayer: string | null;
|
|
57
|
+
featureId: number | null;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export type ApiSingleOrGroupedArea = {
|
|
61
|
+
data: {
|
|
62
|
+
id: number;
|
|
63
|
+
title: string;
|
|
64
|
+
subtitle: string;
|
|
65
|
+
svg_preview: string;
|
|
66
|
+
bounding_box: string;
|
|
67
|
+
is_group: boolean;
|
|
68
|
+
properties: string | null;
|
|
69
|
+
vector_source: string | null;
|
|
70
|
+
source_layer: string | null;
|
|
71
|
+
feature_id: number | null;
|
|
72
|
+
};
|
|
73
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
74
|
+
|
|
75
|
+
export type ApiSingleOrGroupedAreaData = Flatten<Exclude<ApiSingleOrGroupedArea, ApiError>['data']>;
|
|
76
|
+
|
|
77
|
+
export const singleOrGroupedAreaRevivers: Revivers<ApiSingleOrGroupedArea, SingleOrGroupedArea> = {
|
|
78
|
+
...boundingBoxRevivers,
|
|
79
|
+
properties: (data: ApiSingleOrGroupedAreaData) =>
|
|
80
|
+
(data.properties != null ? JSON.parse(data.properties) as Record<string, string> : null),
|
|
81
|
+
};
|
|
57
82
|
|
|
83
|
+
/**
|
|
84
|
+
* TODO When SAGA search on click is implemented, remove mode and make searchBounds required
|
|
85
|
+
*/
|
|
58
86
|
export async function searchSingleOrGroupedAreas(
|
|
59
87
|
language: string,
|
|
60
88
|
search: RequireAtLeastOne<{
|
|
@@ -64,29 +92,22 @@ export async function searchSingleOrGroupedAreas(
|
|
|
64
92
|
}>,
|
|
65
93
|
mode: 'polygon' | 'group' | 'both' = 'both',
|
|
66
94
|
): Promise<SingleOrGroupedArea[]> {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
...(search.query && { query: search.query }),
|
|
75
|
-
...(search.searchPoint && { point: search.searchPoint }),
|
|
76
|
-
mode,
|
|
77
|
-
})}`,
|
|
78
|
-
).then(result => {
|
|
79
|
-
result.forEach(
|
|
80
|
-
elem => {
|
|
81
|
-
elem.boundingBox = JSON.parse(elem.boundingBox as unknown as string) as Polygon;
|
|
82
|
-
if (!elem.isGroup) {
|
|
83
|
-
elem.properties = JSON.parse(elem.properties as unknown as string) as Record<string, string>;
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
return result;
|
|
95
|
+
const pathname = '/v1/choropleth/polygons/search';
|
|
96
|
+
const query = getSearchParams({
|
|
97
|
+
language,
|
|
98
|
+
...search.searchBounds,
|
|
99
|
+
...(search.query && { query: search.query }),
|
|
100
|
+
...(search.searchPoint && { point: search.searchPoint }),
|
|
101
|
+
mode,
|
|
89
102
|
});
|
|
103
|
+
const path = `${pathname}?${query}`;
|
|
104
|
+
const options = { revivers: singleOrGroupedAreaRevivers };
|
|
105
|
+
|
|
106
|
+
type ApiSingleOrGroupedAreaArray = {
|
|
107
|
+
data: ApiSingleOrGroupedAreaData[];
|
|
108
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
109
|
+
|
|
110
|
+
return request<ApiSingleOrGroupedAreaArray, SingleOrGroupedArea>(path, null, null, options);
|
|
90
111
|
}
|
|
91
112
|
|
|
92
113
|
export type GroupedAreaChild = {
|
|
@@ -114,7 +135,7 @@ type ApiGroupedAreaChild = {
|
|
|
114
135
|
export type ApiGroupedAreaChildData = Flatten<Exclude<ApiGroupedAreaChild, ApiError>['data']>;
|
|
115
136
|
|
|
116
137
|
export const groupedAreaChildRevivers: Revivers<ApiGroupedAreaChild, GroupedAreaChild> = {
|
|
117
|
-
|
|
138
|
+
...boundingBoxRevivers,
|
|
118
139
|
properties: (data: ApiGroupedAreaChildData) => JSON.parse(data.properties) as Record<string, string>,
|
|
119
140
|
};
|
|
120
141
|
|
|
@@ -130,3 +151,78 @@ export async function groupedAreaChildren(groupId: number, language: string): Pr
|
|
|
130
151
|
|
|
131
152
|
return request<ApiApiGroupedAreaChildArray, GroupedAreaChild>(path, null, null, options);
|
|
132
153
|
}
|
|
154
|
+
|
|
155
|
+
export type MatchedGroup = {
|
|
156
|
+
id: number;
|
|
157
|
+
sml: number;
|
|
158
|
+
childrenCount: number;
|
|
159
|
+
matchField: string;
|
|
160
|
+
boundingBox: Polygon;
|
|
161
|
+
property: string;
|
|
162
|
+
name: string;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export type ApiMatchedGroup = {
|
|
166
|
+
data: {
|
|
167
|
+
id: number;
|
|
168
|
+
sml: number;
|
|
169
|
+
children_count: number;
|
|
170
|
+
match_field: string;
|
|
171
|
+
bounding_box: string;
|
|
172
|
+
property: string;
|
|
173
|
+
name: string;
|
|
174
|
+
};
|
|
175
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
176
|
+
|
|
177
|
+
export type ApiMatchedGroupData = Flatten<Exclude<ApiMatchedGroup, ApiError>['data']>;
|
|
178
|
+
|
|
179
|
+
export async function getGroupsByDataSample(
|
|
180
|
+
sample: Record<string, string[]>,
|
|
181
|
+
language: string,
|
|
182
|
+
rowCount: number,
|
|
183
|
+
): Promise<MatchedGroup[]> {
|
|
184
|
+
const path = `/v1/choropleth/groups/sample`;
|
|
185
|
+
const options = { revivers: boundingBoxRevivers };
|
|
186
|
+
|
|
187
|
+
type ApiMatchedGroupArray = {
|
|
188
|
+
data: ApiMatchedGroupData[];
|
|
189
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
190
|
+
|
|
191
|
+
return request<ApiMatchedGroupArray, MatchedGroup>(path, { sample, language, row_count: rowCount }, null, options);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export type BoundPolygon = {
|
|
195
|
+
index: number;
|
|
196
|
+
inputName: string;
|
|
197
|
+
id: number;
|
|
198
|
+
sml: number;
|
|
199
|
+
name: string;
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export type ApiBoundPolygon = {
|
|
203
|
+
data: {
|
|
204
|
+
index: number;
|
|
205
|
+
input_name: string;
|
|
206
|
+
id: number;
|
|
207
|
+
sml: number;
|
|
208
|
+
name: string;
|
|
209
|
+
};
|
|
210
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
211
|
+
|
|
212
|
+
export type ApiBoundPolygonData = Flatten<Exclude<ApiBoundPolygon, ApiError>['data']>;
|
|
213
|
+
|
|
214
|
+
export async function getBoundPolygons(
|
|
215
|
+
groupId: number,
|
|
216
|
+
property: string,
|
|
217
|
+
data: string[],
|
|
218
|
+
language: string,
|
|
219
|
+
): Promise<BoundPolygon[]> {
|
|
220
|
+
const path = `/v1/choropleth/groups/bind`;
|
|
221
|
+
const body = { group_id: groupId, property, data, language };
|
|
222
|
+
|
|
223
|
+
type ApiBoundPolygonArray = {
|
|
224
|
+
data: ApiBoundPolygonData[];
|
|
225
|
+
} & Omit<ApiSuccess, 'data'> | ApiError;
|
|
226
|
+
|
|
227
|
+
return request<ApiBoundPolygonArray, BoundPolygon>(path, body);
|
|
228
|
+
}
|
package/src/api/font.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type ApiCommonData,
|
|
3
|
-
type ApiError,
|
|
4
|
-
type ApiSuccess,
|
|
5
|
-
type Flatten,
|
|
6
|
-
type Revivers,
|
|
7
|
-
getSearchParams,
|
|
8
|
-
request,
|
|
9
|
-
} from '../utils.js';
|
|
1
|
+
import { type ApiCommonData, type ApiError, type ApiSuccess, type Flatten, type Revivers, getSearchParams, request } from '../utils.js';
|
|
10
2
|
|
|
11
3
|
export type Font = {
|
|
12
4
|
id: number;
|
package/src/api/insetMap.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiHost, authenticate,
|
|
1
|
+
import { apiHost, authenticate, token } from '../oauth.js';
|
|
2
2
|
import {
|
|
3
3
|
APIError,
|
|
4
4
|
type ApiCommonData,
|
|
@@ -63,9 +63,10 @@ export async function getInsetMap(insetMapId: number): Promise<InsetMap> {
|
|
|
63
63
|
|
|
64
64
|
export async function getInsetMapTopoJson<TopoJSON>(insetMapId: number): Promise<TopoJSON> {
|
|
65
65
|
const href = `${apiHost}/v1/inset-maps/${insetMapId}/json`;
|
|
66
|
-
const headers =
|
|
67
|
-
const response = await fetch(href, { headers
|
|
68
|
-
|
|
66
|
+
const headers = { Accept: 'application/json', ...(token ? { Authorization: token.toString() } : null) };
|
|
67
|
+
const response = await fetch(href, { headers }).catch((error: Error) => {
|
|
68
|
+
throw new NetworkError(error?.message ?? error);
|
|
69
|
+
});
|
|
69
70
|
|
|
70
71
|
if (response.ok) {
|
|
71
72
|
return response.json().catch(() => {
|