@abi-software/flatmapvuer 1.4.0 → 1.4.1-beta.1
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/README.md +5 -4
- package/dist/flatmapvuer.js +64183 -56171
- package/dist/flatmapvuer.umd.cjs +815 -808
- package/dist/style.css +1 -1
- package/package.json +8 -5
- package/src/App.vue +18 -3
- package/src/components/FlatmapVuer.vue +172 -27
- package/src/components/MultiFlatmapVuer.vue +13 -1
- package/src/icons/imageThumbnail1.js +1 -0
- package/src/icons/imageThumbnail2.js +1 -0
- package/src/icons/imageThumbnail3.js +1 -0
- package/src/main.js +1 -1
- package/src/mixins/imageMixin.js +91 -0
- package/src/services/scicrunchQueries.js +280 -0
- package/src/stores/settings.js +46 -0
- /package/src/{store → stores}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default '<img style="height: auto;width: 50px;margin-right: 80px;" src="data:image/png;base64,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" />'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default '<img style="height: auto;width: 50px;margin-right: 80px;" src="data:image/png;base64,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" />'
|
package/src/main.js
CHANGED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
methods: {
|
|
3
|
+
populateMapWithImages: function (mapImp, images, type) {
|
|
4
|
+
for (const [key, list] of Object.entries(images)) {
|
|
5
|
+
this.downloadImageThumbnail(mapImp, key, list, type);
|
|
6
|
+
}
|
|
7
|
+
},
|
|
8
|
+
downloadImageThumbnail: function (mapImp, key, list, type) {
|
|
9
|
+
const count = list.length;
|
|
10
|
+
if (count > 0) {
|
|
11
|
+
//Pick a random image
|
|
12
|
+
const index = Math.floor(Math.random() * count);
|
|
13
|
+
const thumbnail = list[index].thumbnail;
|
|
14
|
+
this.getThumbnail(thumbnail, type)
|
|
15
|
+
.then((wrapperElement) => {
|
|
16
|
+
this.addImageThumbnailMarker(mapImp, key, wrapperElement);
|
|
17
|
+
})
|
|
18
|
+
.catch(() => {
|
|
19
|
+
//Failed to download, pick another one
|
|
20
|
+
list.splice(index);
|
|
21
|
+
this.downloadImageThumbnail(mapImp, key, list, type);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
getThumbnail: async function (url, type) {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
if (type === "Image" || type === "Segmentation") {
|
|
28
|
+
this.getBinaryThumbnail(url)
|
|
29
|
+
.then((response) => resolve(response))
|
|
30
|
+
.catch((response) => reject(response));
|
|
31
|
+
} else {
|
|
32
|
+
this.getGenericThumbnail(url)
|
|
33
|
+
.then((response) => resolve(response))
|
|
34
|
+
.catch((response) => reject(response));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
getBinaryThumbnail: async function (url) {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
fetch(url)
|
|
41
|
+
.then((response) => {
|
|
42
|
+
if (response.status >= 200 && response.status < 300) {
|
|
43
|
+
return response.text();
|
|
44
|
+
} else {
|
|
45
|
+
reject();
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
.then((data) => {
|
|
49
|
+
if (data) {
|
|
50
|
+
let img = new Image();
|
|
51
|
+
let wrapperElement = document.createElement("div");
|
|
52
|
+
img.style = "height: auto;width: 50px;margin-right: 80px;";
|
|
53
|
+
img.onload = function () {
|
|
54
|
+
wrapperElement.appendChild(img);
|
|
55
|
+
resolve(wrapperElement);
|
|
56
|
+
};
|
|
57
|
+
img.onerror = function () {
|
|
58
|
+
reject(new Error("Failed to load image at " + url));
|
|
59
|
+
};
|
|
60
|
+
img.src = `data:'image/png';base64,${data}`;
|
|
61
|
+
} else {
|
|
62
|
+
reject(new Error("Failed to load image at " + url));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
getGenericThumbnail: async function (url) {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
let img = new Image();
|
|
70
|
+
let wrapperElement = document.createElement("div");
|
|
71
|
+
img.style = "height: auto;width: 50px;margin-right: 80px;";
|
|
72
|
+
img.onload = function () {
|
|
73
|
+
wrapperElement.appendChild(img);
|
|
74
|
+
resolve(wrapperElement);
|
|
75
|
+
};
|
|
76
|
+
img.onerror = function () {
|
|
77
|
+
reject(new Error("Failed to load image at " + url));
|
|
78
|
+
};
|
|
79
|
+
img.src = url;
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
addImageThumbnailMarker: function (mapImp, id, wrapperElement) {
|
|
83
|
+
const markerIdentifier = mapImp.addMarker(id, {
|
|
84
|
+
element: wrapperElement,
|
|
85
|
+
className: "highlight-marker",
|
|
86
|
+
cluster: false,
|
|
87
|
+
type: "image",
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
};
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
const getOrganCuries = async (sparcApi, filetypes = [], species = []) => {
|
|
2
|
+
let params = new URLSearchParams();
|
|
3
|
+
filetypes.forEach((type) => {
|
|
4
|
+
params.append("filetypes", type);
|
|
5
|
+
});
|
|
6
|
+
species.forEach((name) => {
|
|
7
|
+
params.append("species", name);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const response = await fetch(`${sparcApi}/get-organ-curies/?${params}`);
|
|
11
|
+
const data = await response.json();
|
|
12
|
+
|
|
13
|
+
let organCuries = [];
|
|
14
|
+
data.uberon.array.forEach((pair) => {
|
|
15
|
+
const organCurie = {
|
|
16
|
+
id: pair.id.toUpperCase(),
|
|
17
|
+
name: pair.name,
|
|
18
|
+
};
|
|
19
|
+
organCuries.push(organCurie);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
return organCuries;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const getFilesInfoForCuries = async (sparcApi, organCuries, filetypes) => {
|
|
26
|
+
const response = await fetch(`${sparcApi}/get-files-info-for-curies`, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
body: JSON.stringify({
|
|
29
|
+
curies: organCuries.map((item) => item.id),
|
|
30
|
+
filetypes: filetypes,
|
|
31
|
+
}),
|
|
32
|
+
headers: {
|
|
33
|
+
"Content-Type": "application/json",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const data = await response.json();
|
|
37
|
+
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const getFileNameFromPath = (filePath) => {
|
|
42
|
+
return filePath.substring(filePath.lastIndexOf("/") + 1);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const getBiolucidaThumbnailURL = (sparcApi, biolucidaId) => {
|
|
46
|
+
return `${sparcApi}/thumbnail/${biolucidaId}`;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const getBiolucidaThumbnails = async (sparcApi, organCuries, type) => {
|
|
50
|
+
try {
|
|
51
|
+
const data = await getFilesInfoForCuries(sparcApi, organCuries, [
|
|
52
|
+
"biolucida-2d",
|
|
53
|
+
"biolucida-3d",
|
|
54
|
+
]);
|
|
55
|
+
|
|
56
|
+
if (data["files_info"]) {
|
|
57
|
+
let images = {};
|
|
58
|
+
for (const [key, value] of Object.entries(data["files_info"])) {
|
|
59
|
+
if (value.length > 0) {
|
|
60
|
+
let list = [];
|
|
61
|
+
value.forEach((entry) => {
|
|
62
|
+
const thumbnailURL = getBiolucidaThumbnailURL(
|
|
63
|
+
sparcApi,
|
|
64
|
+
entry.biolucida_id
|
|
65
|
+
);
|
|
66
|
+
if (entry.biolucida_id) {
|
|
67
|
+
let image = {
|
|
68
|
+
thumbnail: thumbnailURL,
|
|
69
|
+
resource: entry.file_path,
|
|
70
|
+
id: entry.id,
|
|
71
|
+
title: getFileNameFromPath(entry.file_path),
|
|
72
|
+
type: type,
|
|
73
|
+
link: thumbnailURL,
|
|
74
|
+
mimetype: entry.mimetype,
|
|
75
|
+
species: entry.species,
|
|
76
|
+
version: entry.version,
|
|
77
|
+
};
|
|
78
|
+
list.push(image);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
images[key] = list;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return images;
|
|
85
|
+
}
|
|
86
|
+
} catch (error) {
|
|
87
|
+
console.error("Error:", error);
|
|
88
|
+
}
|
|
89
|
+
return {};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const getSegmentationThumbnailURL = (
|
|
93
|
+
sparcApi,
|
|
94
|
+
datasetId,
|
|
95
|
+
datasetVersion,
|
|
96
|
+
filePath
|
|
97
|
+
) => {
|
|
98
|
+
return `${sparcApi}/thumbnail/neurolucida?datasetId=${datasetId}&version=${datasetVersion}&path=files/${filePath}`;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const getSegmentationThumbnails = async (sparcApi, organCuries, type) => {
|
|
102
|
+
try {
|
|
103
|
+
const data = await getFilesInfoForCuries(sparcApi, organCuries, [
|
|
104
|
+
"mbf-segmentation",
|
|
105
|
+
]);
|
|
106
|
+
|
|
107
|
+
if (data["files_info"]) {
|
|
108
|
+
let images = {};
|
|
109
|
+
for (const [key, value] of Object.entries(data["files_info"])) {
|
|
110
|
+
if (value.length > 0) {
|
|
111
|
+
let list = [];
|
|
112
|
+
value.forEach((entry) => {
|
|
113
|
+
const thumbnailURL = getSegmentationThumbnailURL(
|
|
114
|
+
sparcApi,
|
|
115
|
+
entry.id,
|
|
116
|
+
entry.version,
|
|
117
|
+
entry.file_path
|
|
118
|
+
);
|
|
119
|
+
let image = {
|
|
120
|
+
thumbnail: thumbnailURL,
|
|
121
|
+
resource: entry.file_path,
|
|
122
|
+
id: entry.id,
|
|
123
|
+
title: getFileNameFromPath(entry.file_path),
|
|
124
|
+
type: type,
|
|
125
|
+
link: thumbnailURL,
|
|
126
|
+
mimetype: entry.mimetype,
|
|
127
|
+
species: entry.species,
|
|
128
|
+
version: entry.version,
|
|
129
|
+
};
|
|
130
|
+
list.push(image);
|
|
131
|
+
});
|
|
132
|
+
images[key] = list;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return images;
|
|
136
|
+
}
|
|
137
|
+
} catch (error) {
|
|
138
|
+
console.error("Error:", error);
|
|
139
|
+
}
|
|
140
|
+
return {};
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const findEntryWithPathInArray = (entry, list, type) => {
|
|
144
|
+
if (entry && list) {
|
|
145
|
+
for (let i = 0; i < entry.isSourceOf.length; i++) {
|
|
146
|
+
for (let l = 0; l < list.length; l++) {
|
|
147
|
+
const item = list[l];
|
|
148
|
+
if (
|
|
149
|
+
entry.id === item.id &&
|
|
150
|
+
(!type || item.type === type) &&
|
|
151
|
+
entry.isSourceOf[i] === item.file_path
|
|
152
|
+
) {
|
|
153
|
+
return item;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return undefined;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const getScaffoldThumbnailURL = (sparcApi, entry, list) => {
|
|
162
|
+
const viewEntry = findEntryWithPathInArray(
|
|
163
|
+
entry,
|
|
164
|
+
list,
|
|
165
|
+
"abi-scaffold-view-file"
|
|
166
|
+
);
|
|
167
|
+
const thumbnailEntry = findEntryWithPathInArray(
|
|
168
|
+
viewEntry,
|
|
169
|
+
list,
|
|
170
|
+
"abi-thumbnail"
|
|
171
|
+
);
|
|
172
|
+
if (thumbnailEntry) {
|
|
173
|
+
return `${sparcApi}/s3-resource/${thumbnailEntry.id}/files/${thumbnailEntry.file_path}`;
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
const getScaffoldThumbnails = async (sparcApi, organCuries, type) => {
|
|
179
|
+
try {
|
|
180
|
+
const data = await getFilesInfoForCuries(sparcApi, organCuries, [
|
|
181
|
+
"abi-thumbnail",
|
|
182
|
+
"abi-scaffold-metadata-file",
|
|
183
|
+
"abi-scaffold-view-file",
|
|
184
|
+
]);
|
|
185
|
+
|
|
186
|
+
if (data["files_info"]) {
|
|
187
|
+
let images = {};
|
|
188
|
+
for (const [key, value] of Object.entries(data["files_info"])) {
|
|
189
|
+
if (value.length > 0) {
|
|
190
|
+
let list = [];
|
|
191
|
+
value.forEach((entry) => {
|
|
192
|
+
if (entry.type === "abi-scaffold-metadata-file") {
|
|
193
|
+
const thumbnailURL = getScaffoldThumbnailURL(
|
|
194
|
+
sparcApi,
|
|
195
|
+
entry,
|
|
196
|
+
value
|
|
197
|
+
);
|
|
198
|
+
if (thumbnailURL) {
|
|
199
|
+
let image = {
|
|
200
|
+
thumbnail: thumbnailURL,
|
|
201
|
+
resource: entry.file_path,
|
|
202
|
+
id: entry.id,
|
|
203
|
+
title: getFileNameFromPath(entry.file_path),
|
|
204
|
+
type: type,
|
|
205
|
+
link: thumbnailURL,
|
|
206
|
+
species: entry.species,
|
|
207
|
+
version: entry.version,
|
|
208
|
+
};
|
|
209
|
+
list.push(image);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
images[key] = list;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return images;
|
|
217
|
+
}
|
|
218
|
+
} catch (error) {
|
|
219
|
+
console.error("Error:", error);
|
|
220
|
+
}
|
|
221
|
+
return {};
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const getPlotThumbnailURL = (sparcApi, entry) => {
|
|
225
|
+
//None of the thumbnail for plot is properly annotated.
|
|
226
|
+
//We will use the first in is source of for testing.
|
|
227
|
+
if (entry.isSourceOf.length > 0) {
|
|
228
|
+
return `${sparcApi}/s3-resource/${entry.id}/files/${entry.isSourceOf[0]}`;
|
|
229
|
+
}
|
|
230
|
+
return undefined;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
const getPlotThumbnails = async (sparcApi, organCuries, type) => {
|
|
234
|
+
try {
|
|
235
|
+
const data = await getFilesInfoForCuries(sparcApi, organCuries, [
|
|
236
|
+
"abi-plot",
|
|
237
|
+
"abi-thumbnail",
|
|
238
|
+
]);
|
|
239
|
+
|
|
240
|
+
if (data["files_info"]) {
|
|
241
|
+
let images = {};
|
|
242
|
+
for (const [key, value] of Object.entries(data["files_info"])) {
|
|
243
|
+
if (value.length > 0) {
|
|
244
|
+
let list = [];
|
|
245
|
+
value.forEach((entry) => {
|
|
246
|
+
if (entry.type === "abi-plot") {
|
|
247
|
+
const thumbnailURL = getPlotThumbnailURL(sparcApi, entry);
|
|
248
|
+
if (thumbnailURL) {
|
|
249
|
+
let image = {
|
|
250
|
+
thumbnail: thumbnailURL,
|
|
251
|
+
resource: entry.file_path,
|
|
252
|
+
id: entry.id,
|
|
253
|
+
title: getFileNameFromPath(entry.file_path),
|
|
254
|
+
type: type,
|
|
255
|
+
link: thumbnailURL,
|
|
256
|
+
species: entry.species,
|
|
257
|
+
version: entry.version,
|
|
258
|
+
};
|
|
259
|
+
list.push(image);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
images[key] = list;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return images;
|
|
267
|
+
}
|
|
268
|
+
} catch (error) {
|
|
269
|
+
console.error("Error:", error);
|
|
270
|
+
}
|
|
271
|
+
return {};
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
export {
|
|
275
|
+
getOrganCuries,
|
|
276
|
+
getBiolucidaThumbnails,
|
|
277
|
+
getSegmentationThumbnails,
|
|
278
|
+
getScaffoldThumbnails,
|
|
279
|
+
getPlotThumbnails,
|
|
280
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { defineStore } from "pinia";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable no-alert, no-console */
|
|
4
|
+
|
|
5
|
+
export const useSettingsStore = defineStore("settings", {
|
|
6
|
+
state: () => {
|
|
7
|
+
return {
|
|
8
|
+
organCuries: [],
|
|
9
|
+
imageTypes: [],
|
|
10
|
+
imageThumbnails: {},
|
|
11
|
+
};
|
|
12
|
+
},
|
|
13
|
+
getters: {
|
|
14
|
+
imageTypeCached: (state) => (imageType) => {
|
|
15
|
+
return state.imageTypes.includes(imageType);
|
|
16
|
+
},
|
|
17
|
+
getImageThumbnails:
|
|
18
|
+
(state) =>
|
|
19
|
+
(imageType, uberonIds = undefined) => {
|
|
20
|
+
if (uberonIds) {
|
|
21
|
+
let thumbnails = {};
|
|
22
|
+
Object.entries(state.imageThumbnails).forEach(([key, value]) => {
|
|
23
|
+
if (uberonIds.includes(key)) {
|
|
24
|
+
thumbnails[key] = value.filter((item) => item.type === imageType);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return thumbnails;
|
|
28
|
+
}
|
|
29
|
+
return state.imageThumbnails;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
actions: {
|
|
33
|
+
updateOrganCuries(organCuries) {
|
|
34
|
+
this.organCuries = organCuries;
|
|
35
|
+
},
|
|
36
|
+
updateImageThumbnails(imageType, imageThumbnails) {
|
|
37
|
+
this.imageTypes.push(imageType);
|
|
38
|
+
Object.keys(imageThumbnails).forEach((key) => {
|
|
39
|
+
if (!(key in this.imageThumbnails)) {
|
|
40
|
+
this.imageThumbnails[key] = [];
|
|
41
|
+
}
|
|
42
|
+
this.imageThumbnails[key].push(...imageThumbnails[key]);
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
File without changes
|