@abi-software/mapintegratedvuer 1.16.3-simulation.1 → 1.17.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.
Files changed (43) hide show
  1. package/dist/ConnectivityGraph-DbqPx-8k.js +125 -0
  2. package/dist/{ContentMixin-CN4E1Tcm.js → ContentMixin-R9Bw7Ou4.js} +545 -270
  3. package/dist/Flatmap-BYUfDJ9B.js +202 -0
  4. package/dist/{Iframe-NY9zAQZz.js → Iframe-2ofJ9NJW.js} +2 -2
  5. package/dist/{MultiFlatmap-C8gAg-MI.js → MultiFlatmap-CYxpB20e.js} +25 -18
  6. package/dist/{Plot-DH_Px9IB.js → Plot-DmQzP7lz.js} +2 -2
  7. package/dist/{Scaffold-C6XY3IQb.js → Scaffold-C8x1IHb9.js} +53 -79
  8. package/dist/Simulation-D9pblkqI.js +28 -0
  9. package/dist/{index-DaB85Tpy.js → index-raNlNgsS.js} +30069 -28444
  10. package/dist/mapintegratedvuer.js +1 -1
  11. package/dist/mapintegratedvuer.umd.cjs +238 -4270
  12. package/dist/{DynamicMarkerMixin-ToiTtIcj.js → style-QpNSY6to.js} +1 -1
  13. package/dist/style.css +1 -1
  14. package/package.json +6 -11
  15. package/src/App.vue +265 -283
  16. package/src/assets/styles.scss +1 -1
  17. package/src/components/ContentVuer.vue +5 -1
  18. package/src/components/ContextCard.vue +1 -0
  19. package/src/components/EventBus.js +3 -0
  20. package/src/components/MapContent.vue +9 -8
  21. package/src/components/SplitDialog.vue +5 -6
  22. package/src/components/SplitFlow.vue +491 -469
  23. package/src/components/scripts/utilities.js +16 -1
  24. package/src/components/viewers/ConnectivityGraph.vue +146 -0
  25. package/src/components/viewers/Flatmap.vue +84 -136
  26. package/src/components/viewers/MultiFlatmap.vue +9 -5
  27. package/src/components/viewers/Simulation.vue +15 -66
  28. package/src/components.d.ts +1 -3
  29. package/src/main.js +3 -9
  30. package/src/mixins/ContentMixin.js +391 -420
  31. package/src/stores/connectivities.js +6 -1
  32. package/src/stores/entries.js +1 -1
  33. package/src/stores/splitFlow.js +366 -427
  34. package/dist/Flatmap-D7eEw_Q5.js +0 -103398
  35. package/dist/Simulation-Bb3HbeD4.js +0 -72
  36. package/src/components/DummyRouteComponent.vue +0 -1
  37. package/src/components/EventBus.ts +0 -13
  38. package/src/components/FloatingWindow.vue +0 -125
  39. package/src/components/PlotComponent.vue +0 -56
  40. package/src/services/mapping.js +0 -69
  41. package/src/stores/mapping.js +0 -29
  42. package/src/stores/simulationPlotStore.js +0 -104
  43. package/src/types/simulation.js +0 -18
@@ -1,154 +1,156 @@
1
- import { defineStore } from 'pinia'
2
- import { getAvailableTermsForSpecies } from '../components/SimulatedData.js'
3
- import EventBus from '../components/EventBus'
1
+ import { defineStore } from 'pinia';
2
+ import {
3
+ getAvailableTermsForSpecies,
4
+ } from "../components/SimulatedData.js";
5
+ import EventBus from '../components/EventBus.js';
4
6
 
5
7
  /* eslint-disable no-alert, no-console */
6
8
  const presetLayouts = (view) => {
7
9
  switch (view) {
8
- case '2horpanel':
10
+ case "2horpanel":
9
11
  return {
10
- 'split-1': { content: false, horizontal: true, children: ['pane-1', 'pane-2'] },
11
- 'pane-1': { content: true, id: 1 },
12
- 'pane-2': { content: true, id: 2 },
13
- }
14
- case '2vertpanel':
12
+ "split-1": {content: false, horizontal: true, children: ["pane-1", "pane-2"]},
13
+ "pane-1": {content: true, id: 1},
14
+ "pane-2": {content: true, id: 2},
15
+ };
16
+ case "2vertpanel":
15
17
  return {
16
- 'split-1': { content: false, horizontal: false, children: ['pane-1', 'pane-2'] },
17
- 'pane-1': { content: true, id: 1 },
18
- 'pane-2': { content: true, id: 2 },
18
+ "split-1": {content: false, horizontal: false, children: ["pane-1", "pane-2"]},
19
+ "pane-1": {content: true, id: 1},
20
+ "pane-2": {content: true, id: 2},
19
21
  }
20
- case '3panel':
22
+ case "3panel":
21
23
  return {
22
- 'split-1': { content: false, horizontal: false, children: ['pane-1', 'split-2'] },
23
- 'split-2': { content: false, horizontal: true, children: ['pane-2', 'pane-3'] },
24
- 'pane-1': { content: true, id: 1 },
25
- 'pane-2': { content: true, id: 2 },
26
- 'pane-3': { content: true, id: 3 },
24
+ "split-1": {content: false, horizontal: false, children: ["pane-1", "split-2"]},
25
+ "split-2": {content: false, horizontal: true, children: ["pane-2", "pane-3"]},
26
+ "pane-1": {content: true, id: 1},
27
+ "pane-2": {content: true, id: 2},
28
+ "pane-3": {content: true, id: 3},
27
29
  }
28
- case '4panel':
30
+ case "4panel":
29
31
  return {
30
- 'split-1': { content: false, horizontal: false, children: ['split-3', 'split-2'] },
31
- 'split-2': { content: false, horizontal: true, children: ['pane-2', 'pane-3'] },
32
- 'split-3': { content: false, horizontal: true, children: ['pane-1', 'pane-4'] },
33
- 'pane-1': { content: true, id: 1 },
34
- 'pane-2': { content: true, id: 2 },
35
- 'pane-3': { content: true, id: 3 },
36
- 'pane-4': { content: true, id: 4 },
32
+ "split-1": {content: false, horizontal: false, children: ["split-3", "split-2"]},
33
+ "split-2": {content: false, horizontal: true, children: ["pane-2", "pane-3"]},
34
+ "split-3": {content: false, horizontal: true, children: ["pane-1", "pane-4"]},
35
+ "pane-1": {content: true, id: 1},
36
+ "pane-2": {content: true, id: 2},
37
+ "pane-3": {content: true, id: 3},
38
+ "pane-4": {content: true, id: 4},
37
39
  }
38
- case '5panel':
40
+ case "5panel":
39
41
  return {
40
- 'split-1': { content: false, horizontal: true, children: ['split-3', 'split-2'] },
41
- 'split-2': { content: false, horizontal: false, children: ['pane-2', 'pane-3'] },
42
- 'split-3': { content: false, horizontal: false, children: ['pane-1', 'pane-4', 'pane-5'] },
43
- 'pane-1': { content: true, id: 1 },
44
- 'pane-2': { content: true, id: 2 },
45
- 'pane-3': { content: true, id: 3 },
46
- 'pane-4': { content: true, id: 4 },
47
- 'pane-5': { content: true, id: 5 },
42
+ "split-1": {content: false, horizontal: true, children: ["split-3", "split-2"]},
43
+ "split-2": {content: false, horizontal: false, children: ["pane-2", "pane-3"]},
44
+ "split-3": {content: false, horizontal: false, children: ["pane-1","pane-4", "pane-5"]},
45
+ "pane-1": {content: true, id: 1},
46
+ "pane-2": {content: true, id: 2},
47
+ "pane-3": {content: true, id: 3},
48
+ "pane-4": {content: true, id: 4},
49
+ "pane-5": {content: true, id: 5},
48
50
  }
49
- case '6panel':
51
+ case "6panel":
50
52
  return {
51
- 'split-1': { content: false, horizontal: true, children: ['split-3', 'split-2'] },
52
- 'split-2': { content: false, horizontal: false, children: ['pane-2', 'pane-3', 'pane-5'] },
53
- 'split-3': { content: false, horizontal: false, children: ['pane-1', 'pane-4', 'pane-6'] },
54
- 'pane-1': { content: true, id: 1 },
55
- 'pane-2': { content: true, id: 2 },
56
- 'pane-3': { content: true, id: 3 },
57
- 'pane-4': { content: true, id: 4 },
58
- 'pane-5': { content: true, id: 5 },
59
- 'pane-6': { content: true, id: 6 },
53
+ "split-1": {content: false, horizontal: true, children: ["split-3", "split-2"]},
54
+ "split-2": {content: false, horizontal: false, children: ["pane-2", "pane-3", "pane-5"]},
55
+ "split-3": {content: false, horizontal: false, children: ["pane-1","pane-4", "pane-6"]},
56
+ "pane-1": {content: true, id: 1},
57
+ "pane-2": {content: true, id: 2},
58
+ "pane-3": {content: true, id: 3},
59
+ "pane-4": {content: true, id: 4},
60
+ "pane-5": {content: true, id: 5},
61
+ "pane-6": {content: true, id: 6},
60
62
  }
61
- case '6panelVertical':
63
+ case "6panelVertical":
62
64
  return {
63
- 'split-1': { content: false, horizontal: false, children: ['split-3', 'split-2'] },
64
- 'split-2': { content: false, horizontal: true, children: ['pane-2', 'pane-3', 'pane-5'] },
65
- 'split-3': { content: false, horizontal: true, children: ['pane-1', 'pane-4', 'pane-6'] },
66
- 'pane-1': { content: true, id: 1 },
67
- 'pane-2': { content: true, id: 2 },
68
- 'pane-3': { content: true, id: 3 },
69
- 'pane-4': { content: true, id: 4 },
70
- 'pane-5': { content: true, id: 5 },
71
- 'pane-6': { content: true, id: 6 },
65
+ "split-1": {content: false, horizontal: false, children: ["split-3", "split-2"]},
66
+ "split-2": {content: false, horizontal: true, children: ["pane-2", "pane-3", "pane-5"]},
67
+ "split-3": {content: false, horizontal: true, children: ["pane-1","pane-4", "pane-6"]},
68
+ "pane-1": {content: true, id: 1},
69
+ "pane-2": {content: true, id: 2},
70
+ "pane-3": {content: true, id: 3},
71
+ "pane-4": {content: true, id: 4},
72
+ "pane-5": {content: true, id: 5},
73
+ "pane-6": {content: true, id: 6},
72
74
  }
73
- case 'singlepanel':
75
+ case "singlepanel":
74
76
  default:
75
77
  return {
76
- 'split-1': { content: false, horizontal: false, children: ['pane-1'] },
77
- 'pane-1': { content: true, id: 1 },
78
- }
78
+ "split-1": {content: false, horizontal: false, children: ["pane-1"]},
79
+ "pane-1": {content: true, id: 1},
80
+ }
79
81
  }
80
82
  }
81
83
 
82
84
  //A method to assign unused entry to pane with duplicated id
83
85
  const autoAssignEntryIdsToPane = (entries, layout) => {
84
- const assignedIds = []
85
- const invalidIdKeys = []
86
+ const assignedIds = [];
87
+ const invalidIdKeys = [];
86
88
  for (const [key, value] of Object.entries(layout)) {
87
89
  if (value.content) {
88
- if (1 > value.id || assignedIds.includes(value.id)) {
90
+ if ((1 > value.id) || assignedIds.includes(value.id)) {
89
91
  //id has got an assigned pane or pane contains an invalid id,
90
92
  //cache it and find one later
91
- invalidIdKeys.push(key)
93
+ invalidIdKeys.push(key);
92
94
  } else {
93
- assignedIds.push(value.id)
95
+ assignedIds.push(value.id);
94
96
  }
95
97
  }
96
98
  }
97
99
 
98
100
  invalidIdKeys.forEach((key) => {
99
- let done = false
101
+ let done = false;
100
102
  for (let i = 0; i < entries.length && !done; i++) {
101
- if (!assignedIds.includes(entries[i].id)) {
102
- layout[key].id = entries[i].id
103
- assignedIds.push(entries.id)
104
- done = true
103
+ if (!(assignedIds.includes(entries[i].id))) {
104
+ layout[key].id = entries[i].id;
105
+ assignedIds.push(entries.id);
106
+ done = true;
105
107
  }
106
108
  }
107
- })
109
+ });
110
+
108
111
  }
109
112
 
110
113
  const extractPaneInfo = (layout) => {
111
- const panes = {}
114
+ const panes = {};
112
115
  for (const [key, value] of Object.entries(layout)) {
113
116
  if (value.content) {
114
- panes[key] = value
117
+ panes[key] = value;
115
118
  }
116
119
  }
117
- return panes
120
+ return panes;
118
121
  }
119
122
 
120
123
  const newLayoutWithOrigInfo = (original, activeView) => {
121
- const panes = extractPaneInfo(original)
122
- const customLayout = presetLayouts(activeView)
124
+ const panes = extractPaneInfo(original);
125
+ const customLayout = presetLayouts(activeView);
123
126
  for (const [key, value] of Object.entries(panes)) {
124
- customLayout[key] = value
127
+ customLayout[key] = value;
125
128
  }
126
-
127
- return customLayout
129
+ return customLayout;
128
130
  }
129
131
 
130
132
  const findKeyWithId = (layout, id) => {
131
- return Object.keys(layout).find((key) => layout[key]['id'] === id)
133
+ return Object.keys(layout).find(key => layout[key]["id"] === id);
132
134
  }
133
135
 
134
136
  const getOriginalState = () => {
135
137
  return {
136
- activeView: 'singlepanel',
138
+ activeView: "singlepanel",
137
139
  idNamePair: {},
138
140
  viewIcons: [
139
- { icon: 'singlepanel', name: 'Single view', min: 1 },
140
- { icon: '2horpanel', name: 'Horizontal split', min: 2 },
141
- { icon: '2vertpanel', name: 'Vertical split', min: 2 },
142
- { icon: '3panel', name: 'Three panes', min: 3 },
143
- { icon: '4panel', name: 'Four panes', min: 4 },
144
- { icon: '5panel', name: 'Five panes', min: 5 },
145
- { icon: '6panel', name: 'Six (horizontal)', min: 6 },
146
- { icon: '6panelVertical', name: 'Six (vertical)', min: 6 },
141
+ { icon: "singlepanel", name: "Single view", min: 1 },
142
+ { icon: "2horpanel", name: "Horizontal split", min: 2 },
143
+ { icon: "2vertpanel", name: "Vertical split", min: 2 },
144
+ { icon: "3panel", name: "Three panes", min: 3 },
145
+ { icon: "4panel", name: "Four panes", min: 4 },
146
+ { icon: "5panel", name: "Five panes", min: 5 },
147
+ { icon: "6panel", name: "Six (horizontal)", min: 6 },
148
+ { icon: "6panelVertical", name: "Six (vertical)", min: 6 },
147
149
  //{ icon: "customise", name: "Customise", min: 2 }
148
150
  ],
149
151
  customLayout: {
150
- 'split-1': { content: false, horizontal: false, children: ['pane-1'] },
151
- 'pane-1': { content: true, id: 1 },
152
+ "split-1": {content: false, horizontal: false, children: ["pane-1"]},
153
+ "pane-1": {content: true, id: 1},
152
154
  /*
153
155
  Example layout
154
156
 
@@ -159,443 +161,380 @@ const getOriginalState = () => {
159
161
  "pane-3": {content: true, id: 3},
160
162
  */
161
163
  },
162
- splitters: { first: 50, second: 50, third: 50 },
163
- }
164
+ splitters: { "first": 50, "second": 50, "third": 50 },
165
+ };
164
166
  }
165
167
 
166
168
  export const useSplitFlowStore = defineStore('splitFlow', {
167
169
  state: () => {
168
- return getOriginalState()
170
+ return getOriginalState();
169
171
  },
170
172
  getters: {
171
173
  getActivePaneIds: (state) => () => {
172
- const availablePaneIDs = []
173
- let activePaneIDs = undefined
174
+ const availablePaneIDs = [];
175
+ let activePaneIDs = undefined;
174
176
  for (const key in state.customLayout) {
175
177
  if (state.customLayout[key].id) {
176
- availablePaneIDs.push(state.customLayout[key].id)
178
+ availablePaneIDs.push(state.customLayout[key].id);
177
179
  }
178
180
  }
179
181
  switch (state.activeView) {
180
- case 'singlepanel':
181
- {
182
- activePaneIDs = availablePaneIDs.slice(0, 1)
183
- }
184
- break
182
+ case 'singlepanel': {
183
+ activePaneIDs = availablePaneIDs.slice(0, 1);
184
+ } break;
185
185
  case '2horpanel':
186
- case '2vertpanel':
187
- {
188
- activePaneIDs = availablePaneIDs.slice(0, 2)
189
- }
190
- break
191
- case '3panel':
192
- {
193
- activePaneIDs = availablePaneIDs.slice(0, 3)
194
- }
195
- break
196
- case '4panel':
197
- {
198
- activePaneIDs = availablePaneIDs.slice(0, 4)
199
- }
200
- break
201
- case '5panel':
202
- {
203
- activePaneIDs = availablePaneIDs.slice(0, 5)
204
- }
205
- break
186
+ case '2vertpanel': {
187
+ activePaneIDs = availablePaneIDs.slice(0, 2);
188
+ } break;
189
+ case '3panel': {
190
+ activePaneIDs = availablePaneIDs.slice(0, 3);
191
+ } break;
192
+ case '4panel': {
193
+ activePaneIDs = availablePaneIDs.slice(0, 4);
194
+ } break;
195
+ case '5panel': {
196
+ activePaneIDs = availablePaneIDs.slice(0, 5);
197
+ } break;
206
198
  case '6panelVertical':
207
- case '6panel':
208
- {
209
- activePaneIDs = availablePaneIDs.slice(0, 6)
210
- }
211
- break
199
+ case '6panel': {
200
+ activePaneIDs = availablePaneIDs.slice(0, 6);
201
+ } break;
212
202
  default:
213
- activePaneIDs = []
214
- break
203
+ activePaneIDs = [];
204
+ break;
215
205
  }
216
- return activePaneIDs
206
+ return activePaneIDs;
217
207
  },
218
208
  getPaneNameById: (state) => (id) => {
219
- return findKeyWithId(state.customLayout, id)
209
+ return findKeyWithId(state.customLayout, id);
220
210
  },
221
211
  getState: (state) => () => {
222
212
  return {
223
213
  activeView: state.activeView,
224
214
  splitters: state.splitters,
225
215
  customLayout: state.customLayout,
226
- }
216
+ };
227
217
  },
228
218
  isPaneActive: (state) => (panelName) => {
229
- const layout = presetLayouts(state.activeView)
230
- return Object.keys(layout).includes(panelName)
219
+ const layout = presetLayouts(state.activeView);
220
+ return (Object.keys(layout).includes(panelName));
231
221
  },
232
222
  },
233
223
  actions: {
234
- assignOrSwapPaneWithIds(payload) {
235
- let sourceKey = findKeyWithId(this.customLayout, payload.source)
236
- let targetKey = findKeyWithId(this.customLayout, payload.target)
224
+ assignOrSwapPaneWithIds(payload, emitSpeciesChanged = true) {
225
+ let sourceKey = findKeyWithId(this.customLayout, payload.source);
226
+ let targetKey = findKeyWithId(this.customLayout, payload.target);
237
227
  if (targetKey) {
238
- this.customLayout[targetKey].id = payload.source
228
+ this.customLayout[targetKey].id = payload.source;
239
229
  }
240
230
  if (sourceKey) {
241
- this.customLayout[sourceKey].id = payload.target
231
+ this.customLayout[sourceKey].id = payload.target;
232
+ }
233
+ if (emitSpeciesChanged) {
234
+ this.updateSplitPanels();
242
235
  }
243
- this.updateSplitPanels()
244
236
  },
245
237
  getAvailableTerms(apiLocation) {
246
- let terms = getAvailableTermsForSpecies()
238
+ let terms = getAvailableTermsForSpecies();
247
239
  for (let i = 0; i < terms.length; i++) {
248
- this.idNamePair[terms[i].id] = terms[i].name
240
+ this.idNamePair[terms[i].id] = terms[i].name;
249
241
  }
250
242
  if (apiLocation) {
251
- if (this._controller) this._controller.abort()
252
- this._controller = new AbortController()
253
- let signal = this._controller.signal
243
+ if (this._controller) this._controller.abort();
244
+ this._controller = new AbortController();
245
+ let signal = this._controller.signal;
254
246
  fetch(`${apiLocation}get-organ-curies`, {
255
247
  signal,
256
248
  })
257
- .then((response) => response.json())
258
- .then((data) => {
259
- this._controller = undefined
260
- data.uberon.array.forEach((pair) => {
261
- this.idNamePair[pair.id.toUpperCase()] = pair.name.charAt(0).toUpperCase() + pair.name.slice(1)
262
- })
263
- return
264
- })
249
+ .then(response => response.json())
250
+ .then(data => {
251
+ this._controller = undefined;
252
+ data.uberon.array.forEach(pair => {
253
+ this.idNamePair[pair.id.toUpperCase()] =
254
+ pair.name.charAt(0).toUpperCase() + pair.name.slice(1);
255
+ });
256
+ return;
257
+ });
265
258
  }
266
259
  },
267
- updateActiveView(payload, autoAssign = true) {
268
- this.activeView = payload.view
269
-
270
- const customLayout = newLayoutWithOrigInfo(this.customLayout, this.activeView)
271
- if (autoAssign) {
272
- autoAssignEntryIdsToPane(payload.entries, customLayout)
273
- }
260
+ updateActiveView(payload, emitSpeciesChanged = true) {
261
+ this.activeView = payload.view;
262
+ const customLayout = newLayoutWithOrigInfo(
263
+ this.customLayout, this.activeView);
264
+ autoAssignEntryIdsToPane(payload.entries, customLayout);
274
265
  for (const [key, value] of Object.entries(customLayout)) {
275
- this.customLayout[key] = value
266
+ this.customLayout[key] = value;
267
+ }
268
+ if (emitSpeciesChanged) {
269
+ this.updateSplitPanels();
276
270
  }
277
- this.updateSplitPanels()
278
271
  },
279
272
  setSplitter(payload) {
280
- if (this.splitters[payload.name]) this.splitters[payload.name] = payload.value
273
+ if (this.splitters[payload.name])
274
+ this.splitters[payload.name] = payload.value;
281
275
  },
282
276
  setState(newState) {
283
277
  if (newState) {
284
- let customLayout = undefined
278
+ let customLayout = undefined;
285
279
  if (newState.activeView) {
286
- this.activeView = newState.activeView
280
+ this.activeView = newState.activeView;
287
281
  }
288
282
  if (newState.customLayout) {
289
- customLayout = newState.customLayout
283
+ customLayout = newState.customLayout;
290
284
  } else {
291
- customLayout = presetLayouts(this.activeView)
285
+ customLayout = presetLayouts(this.activeView);
292
286
  if (newState.slotInfo) {
293
287
  for (let i = 0; i < newState.slotInfo.length; i++) {
294
288
  switch (newState.slotInfo[i].name) {
295
- case 'first':
296
- {
297
- customLayout['pane-1'].id = newState.slotInfo[i].id
298
- }
299
- break
300
- case 'second':
301
- {
302
- if ('pane-2' in customLayout) customLayout['pane-2'].id = newState.slotInfo[i].id
303
- }
304
- break
305
- case 'thrid':
306
- {
307
- if ('pane-3' in customLayout) customLayout['pane-3'].id = newState.slotInfo[i].id
308
- }
309
- break
310
- case 'fourth':
311
- {
312
- if ('pane-4' in customLayout) customLayout['pane-4'].id = newState.slotInfo[i].id
313
- }
314
- break
315
- case 'fifth':
316
- {
317
- if ('pane-5' in customLayout) customLayout['pane-5'].id = newState.slotInfo[i].id
318
- }
319
- break
320
- case 'sixth':
321
- {
322
- if ('pane-6' in customLayout) customLayout['pane-6'].id = newState.slotInfo[i].id
323
- }
324
- break
289
+ case "first": {
290
+ customLayout["pane-1"].id = newState.slotInfo[i].id;
291
+ } break;
292
+ case "second": {
293
+ if("pane-2" in customLayout)
294
+ customLayout["pane-2"].id = newState.slotInfo[i].id;
295
+ } break;
296
+ case "thrid": {
297
+ if("pane-3" in customLayout)
298
+ customLayout["pane-3"].id = newState.slotInfo[i].id;
299
+ } break;
300
+ case "fourth": {
301
+ if("pane-4" in customLayout)
302
+ customLayout["pane-4"].id = newState.slotInfo[i].id;
303
+ } break;
304
+ case "fifth": {
305
+ if("pane-5" in customLayout)
306
+ customLayout["pane-5"].id = newState.slotInfo[i].id;
307
+ } break;
308
+ case "sixth": {
309
+ if("pane-6" in customLayout)
310
+ customLayout["pane-6"].id = newState.slotInfo[i].id;
311
+ } break;
325
312
  default:
326
- break
313
+ break;
327
314
  }
328
315
  }
329
316
  }
330
317
  }
331
318
  for (const [key, value] of Object.entries(customLayout)) {
332
- this.customLayout[key] = value
319
+ this.customLayout[key] = value;
333
320
  }
334
321
  for (const [key, value] of Object.entries(newState.splitters)) {
335
- this.splitters[key] = value
322
+ this.splitters[key] = value;
336
323
  }
337
324
  }
338
325
  },
339
- setIdToPane(id, pane = 'pane-1') {
340
- const currentKey = findKeyWithId(this.customLayout, id)
341
- const firstPaneId = this.customLayout[pane].id
342
- this.customLayout[pane].id = id
326
+ setIdToPrimaryPane(id) {
327
+ const currentKey = findKeyWithId(this.customLayout, id);
328
+ const firstPaneId = this.customLayout["pane-1"].id;
329
+ this.customLayout["pane-1"].id = id;
343
330
  if (currentKey) {
344
- this.customLayout[currentKey].id = firstPaneId
331
+ this.customLayout[currentKey].id = firstPaneId;
345
332
  }
346
333
  },
347
334
  reset() {
348
- const original = getOriginalState()
349
- this.activeView = original.activeView
350
- this.customLayout = original.customLayout
351
- this.splitters = original.splitters
335
+ const original = getOriginalState();
336
+ this.activeView = original.activeView;
337
+ this.customLayout = original.customLayout;
338
+ this.splitters = original.splitters;
352
339
  },
353
340
  closeSlot(payload) {
354
341
  if (payload) {
355
- let availableId = 0
342
+ let availableId = 0;
356
343
  if (payload.entries) {
357
- for (let i = 0; i < payload.entries.length && availableId == 0; i++) {
344
+ for (let i = 0; i < payload.entries.length &&
345
+ availableId == 0; i++) {
358
346
  //Find the first entry not currently in use
359
- if (
360
- payload.entries[i].id !== payload.id &&
361
- findKeyWithId(this.customLayout, payload.entries[i].id) === undefined
362
- ) {
363
- availableId = payload.entries[i].id
347
+ if ((payload.entries[i].id !== payload.id) &&
348
+ findKeyWithId(this.customLayout, payload.entries[i].id) === undefined) {
349
+ availableId = payload.entries[i].id;
364
350
  }
365
351
  }
366
352
  }
367
353
  //Switch the view
368
- if (this.activeView !== 'customise') {
354
+ if (this.activeView !== "customise") {
369
355
  //closePaneWithStandardLayout
370
- const pView = this.activeView
356
+ const pView = this.activeView;
371
357
  switch (this.activeView) {
372
- case '2horpanel':
373
- case '2vertpanel':
374
- this.activeView = 'singlepanel'
375
- break
376
- case '3panel':
377
- this.activeView = '2vertpanel'
378
- break
379
- case '4panel':
380
- this.activeView = '3panel'
381
- break
382
- case '5panel':
383
- this.activeView = '4panel'
384
- break
385
- case '6panelVertical':
386
- case '6panel':
387
- this.activeView = '5panel'
388
- break
358
+ case "2horpanel":
359
+ case "2vertpanel":
360
+ this.activeView = "singlepanel";
361
+ break;
362
+ case "3panel":
363
+ this.activeView = "2vertpanel";
364
+ break;
365
+ case "4panel":
366
+ this.activeView = "3panel";
367
+ break;
368
+ case "5panel":
369
+ this.activeView = "4panel";
370
+ break;
371
+ case "6panelVertical":
372
+ case "6panel":
373
+ this.activeView = "5panel";
374
+ break;
389
375
  default:
390
- break
376
+ break;
391
377
  }
392
- const customLayout = newLayoutWithOrigInfo(this.customLayout, this.activeView)
393
- const key = findKeyWithId(this.customLayout, payload.id)
378
+ const customLayout = newLayoutWithOrigInfo(
379
+ this.customLayout, this.activeView);
380
+ const key = findKeyWithId(this.customLayout, payload.id);
394
381
  // The following move the entry id to the appropriate slot
395
382
  // and remove the target id
396
383
  switch (key) {
397
- case 'pane-1':
398
- {
399
- switch (pView) {
400
- case '2horpanel':
401
- case '2vertpanel':
402
- {
403
- customLayout['pane-1'].id = customLayout['pane-2'].id
404
- customLayout['pane-2'].id = availableId
405
- }
406
- break
407
- case '3panel':
408
- {
409
- customLayout['pane-1'].id = customLayout['pane-2'].id
410
- customLayout['pane-2'].id = customLayout['pane-3'].id
411
- customLayout['pane-3'].id = availableId
412
- }
413
- break
414
- case '4panel':
415
- {
416
- customLayout['pane-1'].id = customLayout['pane-2'].id
417
- customLayout['pane-2'].id = customLayout['pane-3'].id
418
- customLayout['pane-3'].id = customLayout['pane-4'].id
419
- customLayout['pane-4'].id = availableId
420
- }
421
- break
422
- case '5panel':
423
- {
424
- customLayout['pane-1'].id = customLayout['pane-2'].id
425
- customLayout['pane-2'].id = customLayout['pane-3'].id
426
- customLayout['pane-3'].id = customLayout['pane-4'].id
427
- customLayout['pane-4'].id = customLayout['pane-5'].id
428
- customLayout['pane-5'].id = availableId
429
- }
430
- break
431
- case '6panelVertical':
432
- case '6panel':
433
- {
434
- customLayout['pane-1'].id = customLayout['pane-2'].id
435
- customLayout['pane-2'].id = customLayout['pane-3'].id
436
- customLayout['pane-3'].id = customLayout['pane-4'].id
437
- customLayout['pane-4'].id = customLayout['pane-5'].id
438
- customLayout['pane-5'].id = customLayout['pane-6'].id
439
- customLayout['pane-6'].id = availableId
440
- }
441
- break
442
- default:
443
- break
444
- }
384
+ case "pane-1": {
385
+ switch (pView) {
386
+ case "2horpanel":
387
+ case "2vertpanel": {
388
+ customLayout["pane-1"].id = customLayout["pane-2"].id;
389
+ customLayout["pane-2"].id = availableId;
390
+ } break;
391
+ case "3panel": {
392
+ customLayout["pane-1"].id = customLayout["pane-2"].id;
393
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
394
+ customLayout["pane-3"].id = availableId;
395
+ } break;
396
+ case "4panel": {
397
+ customLayout["pane-1"].id = customLayout["pane-2"].id;
398
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
399
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
400
+ customLayout["pane-4"].id = availableId;
401
+ } break;
402
+ case "5panel": {
403
+ customLayout["pane-1"].id = customLayout["pane-2"].id;
404
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
405
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
406
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
407
+ customLayout["pane-5"].id = availableId;
408
+ } break;
409
+ case "6panelVertical":
410
+ case "6panel":
411
+ {
412
+ customLayout["pane-1"].id = customLayout["pane-2"].id;
413
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
414
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
415
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
416
+ customLayout["pane-5"].id = customLayout["pane-6"].id;
417
+ customLayout["pane-6"].id = availableId;
418
+ } break;
419
+ default:
420
+ break;
445
421
  }
446
- break
447
- case 'pane-2':
448
- {
449
- switch (pView) {
450
- case '2horpanel':
451
- case '2vertpanel':
452
- {
453
- customLayout['pane-2'].id = availableId
454
- }
455
- break
456
- case '3panel':
457
- {
458
- customLayout['pane-2'].id = customLayout['pane-3'].id
459
- customLayout['pane-3'].id = availableId
460
- }
461
- break
462
- case '4panel':
463
- {
464
- customLayout['pane-2'].id = customLayout['pane-3'].id
465
- customLayout['pane-3'].id = customLayout['pane-4'].id
466
- customLayout['pane-4'].id = availableId
467
- }
468
- break
469
- case '5panel':
470
- {
471
- customLayout['pane-2'].id = customLayout['pane-3'].id
472
- customLayout['pane-3'].id = customLayout['pane-4'].id
473
- customLayout['pane-4'].id = customLayout['pane-5'].id
474
- customLayout['pane-5'].id = availableId
475
- }
476
- break
477
- case '6panelVertical':
478
- case '6panel':
479
- {
480
- customLayout['pane-2'].id = customLayout['pane-3'].id
481
- customLayout['pane-3'].id = customLayout['pane-4'].id
482
- customLayout['pane-4'].id = customLayout['pane-5'].id
483
- customLayout['pane-5'].id = customLayout['pane-6'].id
484
- customLayout['pane-6'].id = availableId
485
- }
486
- break
487
- default:
488
- break
489
- }
422
+ } break;
423
+ case "pane-2": {
424
+ switch (pView) {
425
+ case "2horpanel":
426
+ case "2vertpanel": {
427
+ customLayout["pane-2"].id = availableId;
428
+ } break;
429
+ case "3panel": {
430
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
431
+ customLayout["pane-3"].id = availableId;
432
+ } break;
433
+ case "4panel": {
434
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
435
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
436
+ customLayout["pane-4"].id = availableId;
437
+ } break;
438
+ case "5panel": {
439
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
440
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
441
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
442
+ customLayout["pane-5"].id = availableId;
443
+ } break;
444
+ case "6panelVertical":
445
+ case "6panel":
446
+ {
447
+ customLayout["pane-2"].id = customLayout["pane-3"].id;
448
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
449
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
450
+ customLayout["pane-5"].id = customLayout["pane-6"].id;
451
+ customLayout["pane-6"].id = availableId;
452
+ } break;
453
+ default:
454
+ break;
490
455
  }
491
- break
492
- case 'pane-3':
493
- {
494
- switch (pView) {
495
- case '3panel':
496
- {
497
- customLayout['pane-3'].id = availableId
498
- }
499
- break
500
- case '4panel':
501
- {
502
- customLayout['pane-3'].id = customLayout['pane-4'].id
503
- customLayout['pane-4'].id = availableId
504
- }
505
- break
506
- case '5panel':
507
- {
508
- customLayout['pane-3'].id = customLayout['pane-4'].id
509
- customLayout['pane-4'].id = customLayout['pane-5'].id
510
- customLayout['pane-5'].id = availableId
511
- }
512
- break
513
- case '6panelVertical':
514
- case '6panel':
515
- {
516
- customLayout['pane-3'].id = customLayout['pane-4'].id
517
- customLayout['pane-4'].id = customLayout['pane-5'].id
518
- customLayout['pane-5'].id = customLayout['pane-6'].id
519
- customLayout['pane-6'].id = availableId
520
- }
521
- break
522
- default:
523
- break
524
- }
456
+ } break;
457
+ case "pane-3": {
458
+ switch (pView) {
459
+ case "3panel": {
460
+ customLayout["pane-3"].id = availableId;
461
+ } break;
462
+ case "4panel": {
463
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
464
+ customLayout["pane-4"].id = availableId;
465
+ } break;
466
+ case "5panel": {
467
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
468
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
469
+ customLayout["pane-5"].id = availableId;
470
+ } break;
471
+ case "6panelVertical":
472
+ case "6panel":
473
+ {
474
+ customLayout["pane-3"].id = customLayout["pane-4"].id;
475
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
476
+ customLayout["pane-5"].id = customLayout["pane-6"].id;
477
+ customLayout["pane-6"].id = availableId;
478
+ } break;
479
+ default:
480
+ break;
525
481
  }
526
- break
527
- case 'pane-4':
528
- {
529
- switch (pView) {
530
- case '4panel':
531
- {
532
- customLayout['pane-4'].id = availableId
533
- }
534
- break
535
- case '5panel':
536
- {
537
- customLayout['pane-4'].id = customLayout['pane-5'].id
538
- customLayout['pane-5'].id = availableId
539
- }
540
- break
541
- case '6panelVertical':
542
- case '6panel':
543
- {
544
- customLayout['pane-4'].id = customLayout['pane-5'].id
545
- customLayout['pane-5'].id = customLayout['pane-6'].id
546
- customLayout['pane-6'].id = availableId
547
- }
548
- break
549
- default:
550
- break
551
- }
482
+ } break;
483
+ case "pane-4": {
484
+ switch (pView) {
485
+ case "4panel": {
486
+ customLayout["pane-4"].id = availableId;
487
+ } break;
488
+ case "5panel": {
489
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
490
+ customLayout["pane-5"].id = availableId;
491
+ } break;
492
+ case "6panelVertical":
493
+ case "6panel": {
494
+ customLayout["pane-4"].id = customLayout["pane-5"].id;
495
+ customLayout["pane-5"].id = customLayout["pane-6"].id;
496
+ customLayout["pane-6"].id = availableId;
497
+ } break;
498
+ default:
499
+ break;
552
500
  }
553
- break
554
- case 'pane-5':
555
- {
556
- switch (pView) {
557
- case '5panel':
558
- {
559
- customLayout['pane-5'].id = availableId
560
- }
561
- break
562
- case '6panelVertical':
563
- case '6panel':
564
- {
565
- customLayout['pane-5'].id = customLayout['pane-6'].id
566
- customLayout['pane-6'].id = availableId
567
- }
568
- break
569
- default:
570
- break
571
- }
501
+ } break;
502
+ case "pane-5": {
503
+ switch (pView) {
504
+ case "5panel": {
505
+ customLayout["pane-5"].id = availableId;
506
+ } break;
507
+ case "6panelVertical":
508
+ case "6panel": {
509
+ customLayout["pane-5"].id = customLayout["pane-6"].id;
510
+ customLayout["pane-6"].id = availableId;
511
+ } break;
512
+ default:
513
+ break;
572
514
  }
573
- break
574
- case 'pane-6':
575
- {
576
- switch (pView) {
577
- case '6panelVertical':
578
- case '6panel':
579
- {
580
- customLayout['pane-6'].id = availableId
581
- }
582
- break
583
- default:
584
- break
585
- }
515
+ } break;
516
+ case "pane-6" : {
517
+ switch (pView) {
518
+ case "6panelVertical":
519
+ case "6panel":
520
+ {
521
+ customLayout["pane-6"].id = availableId;
522
+ } break;
523
+ default:
524
+ break;
586
525
  }
587
- break
526
+ } break;
588
527
  default:
589
- break
528
+ break;
590
529
  }
591
530
  for (const [key, value] of Object.entries(customLayout)) {
592
- this.customLayout[key] = value
531
+ this.customLayout[key] = value;
593
532
  }
594
533
  }
595
534
  }
596
535
  },
597
536
  updateSplitPanels() {
598
- EventBus.emit('species-layout-connectivity-update')
537
+ EventBus.emit('species-layout-connectivity-update');
599
538
  },
600
- },
601
- })
539
+ }
540
+ });