@sfgrp/distinguish 0.0.6 → 0.0.9

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.
@@ -1741,19 +1741,19 @@ function traverse(value, seen) {
1741
1741
  return value;
1742
1742
  }
1743
1743
  function useTransitionState() {
1744
- const state2 = {
1744
+ const state = {
1745
1745
  isMounted: false,
1746
1746
  isLeaving: false,
1747
1747
  isUnmounting: false,
1748
1748
  leavingVNodes: /* @__PURE__ */ new Map()
1749
1749
  };
1750
1750
  onMounted(() => {
1751
- state2.isMounted = true;
1751
+ state.isMounted = true;
1752
1752
  });
1753
1753
  onBeforeUnmount(() => {
1754
- state2.isUnmounting = true;
1754
+ state.isUnmounting = true;
1755
1755
  });
1756
- return state2;
1756
+ return state;
1757
1757
  }
1758
1758
  const TransitionHookValidator = [Function, Array];
1759
1759
  const BaseTransitionImpl = {
@@ -1777,7 +1777,7 @@ const BaseTransitionImpl = {
1777
1777
  },
1778
1778
  setup(props, { slots }) {
1779
1779
  const instance = getCurrentInstance();
1780
- const state2 = useTransitionState();
1780
+ const state = useTransitionState();
1781
1781
  let prevTransitionKey;
1782
1782
  return () => {
1783
1783
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
@@ -1795,14 +1795,14 @@ const BaseTransitionImpl = {
1795
1795
  }
1796
1796
  const rawProps = toRaw(props);
1797
1797
  const { mode } = rawProps;
1798
- if (state2.isLeaving) {
1798
+ if (state.isLeaving) {
1799
1799
  return emptyPlaceholder(child);
1800
1800
  }
1801
1801
  const innerChild = getKeepAliveChild(child);
1802
1802
  if (!innerChild) {
1803
1803
  return emptyPlaceholder(child);
1804
1804
  }
1805
- const enterHooks = resolveTransitionHooks(innerChild, rawProps, state2, instance);
1805
+ const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);
1806
1806
  setTransitionHooks(innerChild, enterHooks);
1807
1807
  const oldChild = instance.subTree;
1808
1808
  const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
@@ -1818,18 +1818,18 @@ const BaseTransitionImpl = {
1818
1818
  }
1819
1819
  }
1820
1820
  if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {
1821
- const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state2, instance);
1821
+ const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
1822
1822
  setTransitionHooks(oldInnerChild, leavingHooks);
1823
1823
  if (mode === "out-in") {
1824
- state2.isLeaving = true;
1824
+ state.isLeaving = true;
1825
1825
  leavingHooks.afterLeave = () => {
1826
- state2.isLeaving = false;
1826
+ state.isLeaving = false;
1827
1827
  instance.update();
1828
1828
  };
1829
1829
  return emptyPlaceholder(child);
1830
1830
  } else if (mode === "in-out" && innerChild.type !== Comment) {
1831
1831
  leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
1832
- const leavingVNodesCache = getLeavingNodesForType(state2, oldInnerChild);
1832
+ const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
1833
1833
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
1834
1834
  el._leaveCb = () => {
1835
1835
  earlyRemove();
@@ -1845,8 +1845,8 @@ const BaseTransitionImpl = {
1845
1845
  }
1846
1846
  };
1847
1847
  const BaseTransition = BaseTransitionImpl;
1848
- function getLeavingNodesForType(state2, vnode) {
1849
- const { leavingVNodes } = state2;
1848
+ function getLeavingNodesForType(state, vnode) {
1849
+ const { leavingVNodes } = state;
1850
1850
  let leavingVNodesCache = leavingVNodes.get(vnode.type);
1851
1851
  if (!leavingVNodesCache) {
1852
1852
  leavingVNodesCache = /* @__PURE__ */ Object.create(null);
@@ -1854,10 +1854,10 @@ function getLeavingNodesForType(state2, vnode) {
1854
1854
  }
1855
1855
  return leavingVNodesCache;
1856
1856
  }
1857
- function resolveTransitionHooks(vnode, props, state2, instance) {
1857
+ function resolveTransitionHooks(vnode, props, state, instance) {
1858
1858
  const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;
1859
1859
  const key = String(vnode.key);
1860
- const leavingVNodesCache = getLeavingNodesForType(state2, vnode);
1860
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
1861
1861
  const callHook2 = (hook, args) => {
1862
1862
  hook && callWithAsyncErrorHandling(hook, instance, 9, args);
1863
1863
  };
@@ -1876,7 +1876,7 @@ function resolveTransitionHooks(vnode, props, state2, instance) {
1876
1876
  persisted,
1877
1877
  beforeEnter(el) {
1878
1878
  let hook = onBeforeEnter;
1879
- if (!state2.isMounted) {
1879
+ if (!state.isMounted) {
1880
1880
  if (appear) {
1881
1881
  hook = onBeforeAppear || onBeforeEnter;
1882
1882
  } else {
@@ -1896,7 +1896,7 @@ function resolveTransitionHooks(vnode, props, state2, instance) {
1896
1896
  let hook = onEnter;
1897
1897
  let afterHook = onAfterEnter;
1898
1898
  let cancelHook = onEnterCancelled;
1899
- if (!state2.isMounted) {
1899
+ if (!state.isMounted) {
1900
1900
  if (appear) {
1901
1901
  hook = onAppear || onEnter;
1902
1902
  afterHook = onAfterAppear || onAfterEnter;
@@ -1931,7 +1931,7 @@ function resolveTransitionHooks(vnode, props, state2, instance) {
1931
1931
  if (el._enterCb) {
1932
1932
  el._enterCb(true);
1933
1933
  }
1934
- if (state2.isUnmounting) {
1934
+ if (state.isUnmounting) {
1935
1935
  return remove2();
1936
1936
  }
1937
1937
  callHook2(onBeforeLeave, [el]);
@@ -1959,7 +1959,7 @@ function resolveTransitionHooks(vnode, props, state2, instance) {
1959
1959
  }
1960
1960
  },
1961
1961
  clone(vnode2) {
1962
- return resolveTransitionHooks(vnode2, props, state2, instance);
1962
+ return resolveTransitionHooks(vnode2, props, state, instance);
1963
1963
  }
1964
1964
  };
1965
1965
  return hooks;
@@ -5274,7 +5274,7 @@ var MutationType;
5274
5274
  })(MutationType || (MutationType = {}));
5275
5275
  function createPinia() {
5276
5276
  const scope = effectScope(true);
5277
- const state2 = scope.run(() => ref({}));
5277
+ const state = scope.run(() => ref({}));
5278
5278
  let _p = [];
5279
5279
  let toBeInstalled = [];
5280
5280
  const pinia = markRaw({
@@ -5300,7 +5300,7 @@ function createPinia() {
5300
5300
  _a: null,
5301
5301
  _e: scope,
5302
5302
  _s: /* @__PURE__ */ new Map(),
5303
- state: state2
5303
+ state
5304
5304
  });
5305
5305
  return pinia;
5306
5306
  }
@@ -5348,13 +5348,13 @@ function isComputed(o) {
5348
5348
  return !!(isRef(o) && o.effect);
5349
5349
  }
5350
5350
  function createOptionsStore(id, options, pinia, hot) {
5351
- const { state: state2, actions, getters } = options;
5351
+ const { state, actions, getters } = options;
5352
5352
  const initialState = pinia.state.value[id];
5353
5353
  let store;
5354
5354
  function setup() {
5355
5355
  if (!initialState && true) {
5356
5356
  {
5357
- pinia.state.value[id] = state2 ? state2() : {};
5357
+ pinia.state.value[id] = state ? state() : {};
5358
5358
  }
5359
5359
  }
5360
5360
  const localState = toRefs(pinia.state.value[id]);
@@ -5369,7 +5369,7 @@ function createOptionsStore(id, options, pinia, hot) {
5369
5369
  }
5370
5370
  store = createSetupStore(id, setup, options, pinia, hot, true);
5371
5371
  store.$reset = function $reset() {
5372
- const newState = state2 ? state2() : {};
5372
+ const newState = state ? state() : {};
5373
5373
  this.$patch(($state) => {
5374
5374
  assign($state, newState);
5375
5375
  });
@@ -5477,13 +5477,13 @@ function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore)
5477
5477
  $reset,
5478
5478
  $subscribe(callback, options2 = {}) {
5479
5479
  const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher());
5480
- const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state2) => {
5480
+ const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {
5481
5481
  if (options2.flush === "sync" ? isSyncListening : isListening) {
5482
5482
  callback({
5483
5483
  storeId: $id,
5484
5484
  type: MutationType.direct,
5485
5485
  events: debuggerEvents
5486
- }, state2);
5486
+ }, state);
5487
5487
  }
5488
5488
  }, assign({}, $subscribeOptions, options2)));
5489
5489
  return removeSubscription;
@@ -5526,9 +5526,9 @@ function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore)
5526
5526
  }
5527
5527
  Object.defineProperty(store, "$state", {
5528
5528
  get: () => pinia.state.value[$id],
5529
- set: (state2) => {
5529
+ set: (state) => {
5530
5530
  $patch(($state) => {
5531
- assign($state, state2);
5531
+ assign($state, state);
5532
5532
  });
5533
5533
  }
5534
5534
  });
@@ -5579,20 +5579,6 @@ function defineStore(idOrOptions, setup, setupOptions) {
5579
5579
  useStore.$id = id;
5580
5580
  return useStore;
5581
5581
  }
5582
- const state = {
5583
- baseURL: "",
5584
- projectId: void 0,
5585
- projectToken: void 0,
5586
- userToken: void 0
5587
- };
5588
- const useAPIConfig = () => {
5589
- const updatePreferences = (preferences) => {
5590
- Object.assign(state, preferences);
5591
- };
5592
- return __spreadProps(__spreadValues({}, state), {
5593
- updatePreferences
5594
- });
5595
- };
5596
5582
  var axios$2 = { exports: {} };
5597
5583
  var bind$2 = function bind(fn, thisArg) {
5598
5584
  return function wrap() {
@@ -6813,13 +6799,14 @@ axios$2.exports = axios$1;
6813
6799
  axios$2.exports.default = axios$1;
6814
6800
  var axios = axios$2.exports;
6815
6801
  const useRequest = (instanceConfiguration = {}) => {
6802
+ const store = useSettingsStore();
6816
6803
  const {
6817
6804
  baseURL,
6818
6805
  projectId,
6819
6806
  projectToken,
6820
6807
  userToken,
6821
6808
  csrfToken
6822
- } = useAPIConfig();
6809
+ } = store.getAPIConfig;
6823
6810
  const axiosConfiguration = __spreadValues({
6824
6811
  baseURL,
6825
6812
  params: {
@@ -6935,17 +6922,17 @@ const useObservationMatrixStore = defineStore("observationMatrix", {
6935
6922
  availableLanguages: []
6936
6923
  }),
6937
6924
  getters: {
6938
- getCitation: (state2) => state2.citation,
6939
- getObservationMatrix: (state2) => state2.observationMatrix,
6940
- getDescriptors: (state2) => state2.descriptors,
6941
- getDescriptorById: (state2) => (id) => state2.descriptors.find((d) => d.descriptorId === id),
6942
- getDescriptorsUsed: (state2) => state2.descriptors.filter((d) => d.status === "used"),
6943
- getDescriptorsUseless: (state2) => state2.descriptors.filter((d) => d.status === "useless"),
6944
- getDescriptorsUseful: (state2) => state2.descriptors.filter((d) => d.status === "useful"),
6945
- getEliminated: (state2) => state2.eliminated,
6946
- getKeywords: (state2) => state2.availableKeywords,
6947
- getLanguages: (state2) => state2.availableLanguages,
6948
- getRemaining: (state2) => state2.remaining
6925
+ getCitation: (state) => state.citation,
6926
+ getObservationMatrix: (state) => state.observationMatrix,
6927
+ getDescriptors: (state) => state.descriptors,
6928
+ getDescriptorById: (state) => (id) => state.descriptors.find((d) => d.descriptorId === id),
6929
+ getDescriptorsUsed: (state) => state.descriptors.filter((d) => d.status === "used"),
6930
+ getDescriptorsUseless: (state) => state.descriptors.filter((d) => d.status === "useless"),
6931
+ getDescriptorsUseful: (state) => state.descriptors.filter((d) => d.status === "useful"),
6932
+ getEliminated: (state) => state.eliminated,
6933
+ getKeywords: (state) => state.availableKeywords,
6934
+ getLanguages: (state) => state.availableLanguages,
6935
+ getRemaining: (state) => state.remaining
6949
6936
  },
6950
6937
  actions: {
6951
6938
  setDescriptors(descriptors2) {
@@ -6993,29 +6980,29 @@ const useFilterStore = defineStore("filter", {
6993
6980
  sorting: void 0
6994
6981
  }),
6995
6982
  getters: {
6996
- getKeywordIds: (state2) => state2.keywordIds,
6997
- getLanguageId: (state2) => state2.languageId,
6998
- getRowIds: (state2) => state2.rowIds,
6999
- getDescriptors: (state2) => state2.descriptors,
7000
- getIdentifiedToRank: (state2) => state2.identifiedToRank,
7001
- getEliminateUknown: (state2) => state2.eliminateUnknown,
7002
- getErrorTolerance: (state2) => state2.errorTolerance,
7003
- getSorting: (state2) => state2.sorting,
7004
- getDescriptorValueById: (state2) => (id) => {
7005
- const value = state2.descriptors[id];
6983
+ getKeywordIds: (state) => state.keywordIds,
6984
+ getLanguageId: (state) => state.languageId,
6985
+ getRowIds: (state) => state.rowIds,
6986
+ getDescriptors: (state) => state.descriptors,
6987
+ getIdentifiedToRank: (state) => state.identifiedToRank,
6988
+ getEliminateUknown: (state) => state.eliminateUnknown,
6989
+ getErrorTolerance: (state) => state.errorTolerance,
6990
+ getSorting: (state) => state.sorting,
6991
+ getDescriptorValueById: (state) => (id) => {
6992
+ const value = state.descriptors[id];
7006
6993
  return typeof value === "boolean" ? value : value || "";
7007
6994
  },
7008
- getFilterParams: (state2) => {
7009
- const descriptorsParam = Object.entries(state2.descriptors).map(([key, value]) => Array.isArray(value) ? `${key}:${value.join("|")}` : `${key}:${value}`).join("||");
6995
+ getFilterParams: (state) => {
6996
+ const descriptorsParam = Object.entries(state.descriptors).map(([key, value]) => Array.isArray(value) ? `${key}:${value.join("|")}` : `${key}:${value}`).join("||");
7010
6997
  return {
7011
6998
  selected_descriptors: descriptorsParam,
7012
- language_id: state2.languageId,
7013
- keyword_ids: state2.keywordIds,
7014
- sorting: state2.sorting,
7015
- identified_to_rank: state2.identifiedToRank,
7016
- error_tolerance: state2.errorTolerance,
7017
- eliminate_unknown: state2.eliminateUnknown,
7018
- row_filter: state2.rowIds.join("|")
6999
+ language_id: state.languageId,
7000
+ keyword_ids: state.keywordIds,
7001
+ sorting: state.sorting,
7002
+ identified_to_rank: state.identifiedToRank,
7003
+ error_tolerance: state.errorTolerance,
7004
+ eliminate_unknown: state.eliminateUnknown,
7005
+ row_filter: state.rowIds.join("|")
7019
7006
  };
7020
7007
  }
7021
7008
  },
@@ -7055,16 +7042,23 @@ const useSettingsStore = defineStore("settings", {
7055
7042
  rowFilter: true,
7056
7043
  shouldUpdate: true,
7057
7044
  observationMatrixId: void 0,
7058
- errorMessage: ""
7045
+ errorMessage: "",
7046
+ apiConfig: {
7047
+ baseURL: "",
7048
+ projectId: void 0,
7049
+ projectToken: void 0,
7050
+ userToken: void 0
7051
+ }
7059
7052
  }),
7060
7053
  getters: {
7061
- getErrorMessage: (state2) => state2.errorMessage,
7062
- getIsLoading: (state2) => state2.isLoading,
7063
- getLayout: (state2) => state2.gridLayout,
7064
- getRefreshOnlyTaxa: (state2) => state2.refreshOnlyTaxa,
7065
- getRowFilter: (state2) => state2.rowFilter,
7066
- getShouldUpdate: (state2) => state2.shouldUpdate,
7067
- getObservationMatrixId: (state2) => state2.observationMatrixId
7054
+ getErrorMessage: (state) => state.errorMessage,
7055
+ getIsLoading: (state) => state.isLoading,
7056
+ getLayout: (state) => state.gridLayout,
7057
+ getRefreshOnlyTaxa: (state) => state.refreshOnlyTaxa,
7058
+ getRowFilter: (state) => state.rowFilter,
7059
+ getShouldUpdate: (state) => state.shouldUpdate,
7060
+ getObservationMatrixId: (state) => state.observationMatrixId,
7061
+ getAPIConfig: (state) => state.apiConfig
7068
7062
  },
7069
7063
  actions: {
7070
7064
  setObservationMatrixId(value) {
@@ -7076,6 +7070,9 @@ const useSettingsStore = defineStore("settings", {
7076
7070
  setRefreshOnlyTaxa(value) {
7077
7071
  this.refreshOnlyTaxa = value;
7078
7072
  },
7073
+ setAPIConfig(config) {
7074
+ this.apiConfig = config;
7075
+ },
7079
7076
  checkUpdate() {
7080
7077
  const filterStore = useFilterStore();
7081
7078
  const observationStore = useObservationMatrixStore();
@@ -7093,7 +7090,7 @@ const useSettingsStore = defineStore("settings", {
7093
7090
  }
7094
7091
  }
7095
7092
  });
7096
- const _hoisted_1$w = /* @__PURE__ */ createTextVNode(" Eliminate unknowns ");
7093
+ const _hoisted_1$x = /* @__PURE__ */ createTextVNode(" Eliminate unknowns ");
7097
7094
  const _sfc_main$z = /* @__PURE__ */ defineComponent({
7098
7095
  __name: "FilterEliminateUnknowns",
7099
7096
  setup(__props) {
@@ -7112,12 +7109,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
7112
7109
  }, null, 512), [
7113
7110
  [vModelCheckbox, unref(eliminateUknown)]
7114
7111
  ]),
7115
- _hoisted_1$w
7112
+ _hoisted_1$x
7116
7113
  ]);
7117
7114
  };
7118
7115
  }
7119
7116
  });
7120
- const _hoisted_1$v = /* @__PURE__ */ createBaseVNode("label", {
7117
+ const _hoisted_1$w = /* @__PURE__ */ createBaseVNode("label", {
7121
7118
  for: "languages",
7122
7119
  class: "d-block"
7123
7120
  }, " Error tolerance ", -1);
@@ -7136,7 +7133,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
7136
7133
  });
7137
7134
  return (_ctx, _cache) => {
7138
7135
  return openBlock(), createElementBlock("div", null, [
7139
- _hoisted_1$v,
7136
+ _hoisted_1$w,
7140
7137
  withDirectives(createBaseVNode("select", {
7141
7138
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(errorTolerance) ? errorTolerance.value = $event : null),
7142
7139
  name: "languages",
@@ -7167,7 +7164,7 @@ const RANK_TYPES = [
7167
7164
  "subfamily",
7168
7165
  "family"
7169
7166
  ];
7170
- const _hoisted_1$u = /* @__PURE__ */ createBaseVNode("label", { class: "d-block" }, "Identified to rank", -1);
7167
+ const _hoisted_1$v = /* @__PURE__ */ createBaseVNode("label", { class: "d-block" }, "Identified to rank", -1);
7171
7168
  const _hoisted_2$f = /* @__PURE__ */ createBaseVNode("option", { value: void 0 }, null, -1);
7172
7169
  const _sfc_main$x = /* @__PURE__ */ defineComponent({
7173
7170
  __name: "FilterRank",
@@ -7183,7 +7180,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
7183
7180
  });
7184
7181
  return (_ctx, _cache) => {
7185
7182
  return openBlock(), createElementBlock("div", null, [
7186
- _hoisted_1$u,
7183
+ _hoisted_1$v,
7187
7184
  withDirectives(createBaseVNode("select", {
7188
7185
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(rankSelected) ? rankSelected.value = $event : null)
7189
7186
  }, [
@@ -7198,7 +7195,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
7198
7195
  };
7199
7196
  }
7200
7197
  });
7201
- const _hoisted_1$t = /* @__PURE__ */ createBaseVNode("label", { class: "d-block" }, "Descriptor sorting", -1);
7198
+ const _hoisted_1$u = /* @__PURE__ */ createBaseVNode("label", { class: "d-block" }, "Descriptor sorting", -1);
7202
7199
  const _hoisted_2$e = /* @__PURE__ */ createBaseVNode("option", { value: void 0 }, null, -1);
7203
7200
  const _sfc_main$w = /* @__PURE__ */ defineComponent({
7204
7201
  __name: "FilterSort",
@@ -7219,7 +7216,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
7219
7216
  });
7220
7217
  return (_ctx, _cache) => {
7221
7218
  return openBlock(), createElementBlock("div", null, [
7222
- _hoisted_1$t,
7219
+ _hoisted_1$u,
7223
7220
  withDirectives(createBaseVNode("select", {
7224
7221
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(sortDescriptors) ? sortDescriptors.value = $event : null)
7225
7222
  }, [
@@ -7234,7 +7231,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
7234
7231
  };
7235
7232
  }
7236
7233
  });
7237
- const _hoisted_1$s = /* @__PURE__ */ createBaseVNode("label", {
7234
+ const _hoisted_1$t = /* @__PURE__ */ createBaseVNode("label", {
7238
7235
  for: "languages",
7239
7236
  class: "d-block"
7240
7237
  }, " Languages ", -1);
@@ -7252,7 +7249,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
7252
7249
  });
7253
7250
  return (_ctx, _cache) => {
7254
7251
  return openBlock(), createElementBlock("div", null, [
7255
- _hoisted_1$s,
7252
+ _hoisted_1$t,
7256
7253
  withDirectives(createBaseVNode("select", {
7257
7254
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(language) ? language.value = $event : null),
7258
7255
  name: "languages",
@@ -7271,12 +7268,14 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
7271
7268
  };
7272
7269
  }
7273
7270
  });
7274
- var VBtn_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".btn{border-radius:8px;border:none}.btn-primary-color{background-color:var(--primary-color);color:#fff}.btn-medium-size{min-height:var(--btn-medium-size)}\n")();
7271
+ var VBtn_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".btn{border-radius:8px;border:none}.btn-primary-color{background-color:var(--primary-color);color:#fff}.btn-medium-size{min-height:var(--btn-medium-size)}.btn:disabled{background-color:var(--bg-disabled-color);color:var(--disabled-color)}\n")();
7272
+ const _hoisted_1$s = ["disabled"];
7275
7273
  const _sfc_main$u = /* @__PURE__ */ defineComponent({
7276
7274
  __name: "VBtn",
7277
7275
  props: {
7278
7276
  color: { default: "primary" },
7279
- size: { default: "medium" }
7277
+ size: { default: "medium" },
7278
+ disabled: { type: Boolean }
7280
7279
  },
7281
7280
  setup(__props) {
7282
7281
  const props = __props;
@@ -7287,10 +7286,11 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
7287
7286
  return (_ctx, _cache) => {
7288
7287
  return openBlock(), createElementBlock("button", {
7289
7288
  type: "button",
7290
- class: normalizeClass(["btn", unref(buttonClasses)])
7289
+ class: normalizeClass(["btn", unref(buttonClasses)]),
7290
+ disabled: __props.disabled
7291
7291
  }, [
7292
7292
  renderSlot(_ctx.$slots, "default")
7293
- ], 2);
7293
+ ], 10, _hoisted_1$s);
7294
7294
  };
7295
7295
  }
7296
7296
  });
@@ -7373,13 +7373,15 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
7373
7373
  createVNode(_sfc_main$u, {
7374
7374
  color: "primary",
7375
7375
  size: "medium",
7376
+ disabled: !unref(store).getKeywords.length,
7377
+ title: !unref(store).getKeywords.length ? "No tags defined." : "",
7376
7378
  onClick: _cache[0] || (_cache[0] = ($event) => isModalVisible.value = true)
7377
7379
  }, {
7378
7380
  default: withCtx(() => [
7379
7381
  _hoisted_1$q
7380
7382
  ]),
7381
7383
  _: 1
7382
- }),
7384
+ }, 8, ["disabled", "title"]),
7383
7385
  isModalVisible.value ? (openBlock(), createBlock(_sfc_main$t, {
7384
7386
  key: 0,
7385
7387
  onClose: _cache[2] || (_cache[2] = ($event) => isModalVisible.value = false)
@@ -7464,7 +7466,7 @@ const LAYOUT_MODES = {
7464
7466
  "layout-mode-1": "layout-mode-2",
7465
7467
  "layout-mode-2": "layout-mode-1"
7466
7468
  };
7467
- var VGrid_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".grid[data-v-203acd5e]{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);grid-column-gap:0px;grid-row-gap:0px;grid-gap:1px;background-color:var(--border-color);box-shadow:0 2px 2px #0003}\n")();
7469
+ var VGrid_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".grid[data-v-54dda420]{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);grid-column-gap:0px;grid-row-gap:0px;grid-gap:1px;background-color:var(--border-color);box-shadow:0 1px 1px #0003}\n")();
7468
7470
  const _sfc_main$o = {};
7469
7471
  const _hoisted_1$m = { class: "grid" };
7470
7472
  function _sfc_render(_ctx, _cache) {
@@ -7472,7 +7474,7 @@ function _sfc_render(_ctx, _cache) {
7472
7474
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
7473
7475
  ]);
7474
7476
  }
7475
- var VGrid = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render], ["__scopeId", "data-v-203acd5e"]]);
7477
+ var VGrid = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render], ["__scopeId", "data-v-54dda420"]]);
7476
7478
  var GridToggle_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".grid-icon{width:20px;height:12px;border:2px solid transparent;background-color:transparent;grid-gap:2px}.grid-icon>div{background-color:#fff}\n")();
7477
7479
  const _hoisted_1$l = /* @__PURE__ */ createBaseVNode("div", { class: "panel-descriptors" }, null, -1);
7478
7480
  const _hoisted_2$a = /* @__PURE__ */ createBaseVNode("div", { class: "panel-remaining" }, null, -1);
@@ -7536,7 +7538,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
7536
7538
  };
7537
7539
  }
7538
7540
  });
7539
- var HeaderBar_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".header-bar[data-v-1fab3a2c]{background-color:var(--bg-panel-color);padding:1em;box-shadow:#24252614 4px 4px 15px;border-radius:.9rem;display:flex;justify-content:space-between;align-items:center}.header-bar__buttons[data-v-1fab3a2c]{display:flex;align-items:center}\n")();
7541
+ var HeaderBar_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".header-bar[data-v-055577b4]{background-color:var(--bg-panel-color);padding:1em;box-shadow:#24252614 4px 4px 15px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.header-bar__buttons[data-v-055577b4]{display:flex;align-items:center}\n")();
7540
7542
  const _hoisted_1$i = { class: "header-bar" };
7541
7543
  const _hoisted_2$9 = { class: "header-bar__buttons" };
7542
7544
  const _sfc_main$k = /* @__PURE__ */ defineComponent({
@@ -7600,7 +7602,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
7600
7602
  };
7601
7603
  }
7602
7604
  });
7603
- var HeaderBar = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-1fab3a2c"]]);
7605
+ var HeaderBar = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-055577b4"]]);
7604
7606
  const _hoisted_1$h = ["innerHTML"];
7605
7607
  const _sfc_main$j = /* @__PURE__ */ defineComponent({
7606
7608
  __name: "PanelRowItem",
@@ -8382,8 +8384,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
8382
8384
  const isLoading = computed(() => settingStore.getIsLoading);
8383
8385
  const gridLayout = computed(() => settingStore.getLayout);
8384
8386
  const initialize = () => {
8385
- const api = useAPIConfig();
8386
- api.updatePreferences(props.apiConfig);
8387
+ settingStore.setAPIConfig(props.apiConfig);
8387
8388
  settingStore.setObservationMatrixId(props.observationMatrixId);
8388
8389
  settingStore.checkUpdate();
8389
8390
  };
@@ -8396,7 +8397,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
8396
8397
  return (_ctx, _cache) => {
8397
8398
  return openBlock(), createElementBlock("div", _hoisted_1, [
8398
8399
  createVNode(_sfc_main$1),
8399
- createVNode(HeaderBar, { class: "margin-medium-bottom" }),
8400
+ createVNode(HeaderBar),
8400
8401
  createVNode(VGrid, {
8401
8402
  class: normalizeClass(["w-100", unref(gridLayout)])
8402
8403
  }, {
@@ -8416,7 +8417,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
8416
8417
  };
8417
8418
  }
8418
8419
  }));
8419
- var main = /* @__PURE__ */ (() => ":root{--bg-color: #f7f8fc;--bg-panel-color: #FFFFFF;--error-color: #FF0000;--primary-color: #5D9ECE;--border-color: #CCCCCC;--link-color: #5D9ECE;--btn-medium-size: 28px}.d-block{display:block}.d-flex{display:flex}.justify-between{justify-content:space-between}.align-center{align-items:center}.w-100{height:100%}.margin-medium-bottom{margin-bottom:1em}.margin-small-right{margin-right:.5em}.p-0{padding:0}.link{color:var(--link-color);cursor:pointer}.list-none{list-style:none}body{background-color:var(--bg-color)}.vue-interactive-keys{height:calc(100vh - 160px);max-height:calc(100vh - 160px);font-family:Arial,Helvetica,sans-serif;font-size:13px}.vue-interactive-keys .grid-panel{background-color:#fff;padding:1rem;overflow-y:scroll}.vue-interactive-keys .layout-mode-1 .panel-descriptors{grid-area:1/1/2/3}.vue-interactive-keys .layout-mode-1 .panel-remaining{grid-area:2/1/3/2}.vue-interactive-keys .layout-mode-1 .panel-eliminated{grid-area:2/2/3/3}.vue-interactive-keys .layout-mode-2 .panel-descriptors{grid-area:1/1/3/2}.vue-interactive-keys .layout-mode-2 .panel-remaining{grid-area:1/2/2/3}.vue-interactive-keys .layout-mode-2 .panel-eliminated{grid-area:2/2/3/3}.vue-interactive-keys input,.vue-interactive-keys select{padding:.5em 1em;border:1px solid;border-radius:2px;border-color:var(--border-color);background-color:#fff}.vue-interactive-keys .error-message{color:var(--error-color)}\n")();
8420
+ var main = /* @__PURE__ */ (() => ":root{--bg-color: #f7f8fc;--bg-panel-color: #FFFFFF;--bg-disabled-color: #e5e5e5;--disabled-color: #999;--error-color: #FF0000;--primary-color: #5D9ECE;--border-color: #CCCCCC;--link-color: #5D9ECE;--btn-medium-size: 28px}.d-block{display:block}.d-flex{display:flex}.justify-between{justify-content:space-between}.align-center{align-items:center}.w-100{height:100%}.margin-medium-bottom{margin-bottom:1em}.margin-small-right{margin-right:.5em}.p-0{padding:0}.link{color:var(--link-color);cursor:pointer}.list-none{list-style:none}html,body{margin:0;height:100%}body{background-color:var(--bg-color)}.vue-interactive-keys{height:100vh;max-height:100vh;font-family:Arial,Helvetica,sans-serif;font-size:13px}.vue-interactive-keys .grid{max-height:calc(100% - 140px)}.vue-interactive-keys .grid-panel{background-color:#fff;padding:1rem;overflow-y:scroll}.vue-interactive-keys .layout-mode-1 .panel-descriptors{grid-area:1/1/2/3}.vue-interactive-keys .layout-mode-1 .panel-remaining{grid-area:2/1/3/2}.vue-interactive-keys .layout-mode-1 .panel-eliminated{grid-area:2/2/3/3}.vue-interactive-keys .layout-mode-2 .panel-descriptors{grid-area:1/1/3/2}.vue-interactive-keys .layout-mode-2 .panel-remaining{grid-area:1/2/2/3}.vue-interactive-keys .layout-mode-2 .panel-eliminated{grid-area:2/2/3/3}.vue-interactive-keys input,.vue-interactive-keys select{padding:.5em 1em;border:1px solid;border-radius:2px;border-color:var(--border-color);background-color:#fff}.vue-interactive-keys .error-message{color:var(--error-color)}\n")();
8420
8421
  function discoverInteractiveKey(selector) {
8421
8422
  const tag = selector || '[data-interactive-key="true"]';
8422
8423
  const elements = document.querySelectorAll(tag);