Commit 2d650e9a authored by schneider210's avatar schneider210
Browse files

Merge branch 'feature/#113-easy-configurability' into 'develop'

Feature/#113 easy configurability

See merge request subugoe/emo/Qviewer!109
parents 8eb55be0 71145a07
Pipeline #170122 passed with stages
in 2 minutes and 34 seconds
......@@ -36,9 +36,8 @@ Also the commit short hash can be used to see a demo.
- [`Testing`](#testing)
- [`Building` the app for production](#building-the-app-for-production)
- [Configuration](#configuration)
- [a) Configure the Viewer](#a-configure-the-viewer)
- [The Keys in Detail](#the-keys-in-detail)
- [b) Configure the Panels](#b-configure-the-panels)
- [The Keys in Detail](#the-keys-in-detail)
- [Configure the Panels](#configure-the-panels)
- [The Panel Keys in Detail](#the-panel-keys-in-detail)
- [Viewer Components](#viewer-components)
- [Dockerfile](#dockerfile)
......@@ -60,7 +59,7 @@ Please follow these steps to include it for production:
#### Registry setup
Since npm communicates with the package api, it's necessary to setup a valid entrypoint.
Since npm communicates with the package api, it's necessary to setup a valid endpoint.
```bash
echo @subugoe:registry=https://gitlab.gwdg.de/api/v4/packages/npm/ >>.npmrc
......@@ -134,6 +133,7 @@ import '@subugoe/tido/dist/tido'
"all": true,
"info": true,
"navigation": true,
"panelheadings": true,
"toggle": true
},
"labels": {
......@@ -161,6 +161,29 @@ import '@subugoe/tido/dist/tido'
"language": true
}
},
"panels": [
{
"connector": [1],
"panel_label": "Contents",
"show": true
},
{
"connector": [3],
"panel_label": "Image",
"show": true
},
{
"connector": [4],
"panel_label": "Text",
"show": true
},
{
"connector": [2],
"panel_label": "Metadata",
"show": true
}
],
"rtl": false,
"standalone": true
}
</script>
......@@ -237,9 +260,11 @@ npm run dev
#### `Linting`
```bash
npm run lint # to lint js- and vue-files
npm run lint:scss # to lint the styles
npm run lint # to lint all the files at once
npm run lint:js # to lint js files only
npm run lint:markdown # to lint the markdown
npm run lint:scss # to lint the styles
npm run lint:vue # to lint vue files only
```
#### `Testing`
......@@ -264,25 +289,19 @@ npm run build
The Viewer is build with **Vue.js** and **Quasar**.
If you want to change the Quasar configuration, please [refer to their respective docs](https://quasar.dev/quasar-cli/quasar-conf-js) (Configuring quasar.conf.js).
There are two files in regards to configuration:
- a) configure the Viewer (**src/index.template.html**)
- change the color scheme
- show or hide individual bars (info, navigation, toggles)
- rename labels
- usage (standalone / embedded)
- b) configure the panels (**src/config/panels.js**)
- set the order of the panels
- group the components inside a panel (e.g. turn them into tabs)
- rename the panel headings
- switch the panel/s off
You can fully customize the Viewer's behaviour:
### a) Configure the Viewer
There are options to
Locate the `script` section in the `index.template.html` file:
- change the color scheme
- show or hide individual bars (info, navigation, toggles)
- group multiple components inside a single panel
- set the order of the panels
- rename labels and / or panel headings
- filter individual metadata fields
- and **more** ...
As a rule of thumb, every key with a boolean value (e.g. *true* or *false*) defaults to `true` and denotes to show the appropriate component.
As a rule of thumb, each key with a boolean value (e.g. *true* or *false*) defaults to `true` and denotes to show the appropriate element.
```html
<script id="tido-config" type="application/json">
......@@ -290,13 +309,14 @@ As a rule of thumb, every key with a boolean value (e.g. *true* or *false*) defa
"entrypoint": "https://{server}{/prefix}/{collection}/collection.json",
"colors": {
"primary": "",
"secondary": "grey",
"accent": "darkred"
"secondary": "",
"accent": ""
},
"headers": {
"all": true,
"info": true,
"navigation": true,
"panelheadings": true,
"toggle": true
},
"labels": {
......@@ -324,25 +344,44 @@ As a rule of thumb, every key with a boolean value (e.g. *true* or *false*) defa
"language": true
}
},
"panels": [
{
"connector": [1],
"panel_label": "Contents",
"show": true
},
{
"connector": [3],
"panel_label": "Image",
"show": true
},
{
"connector": [4],
"panel_label": "Text",
"show": true
},
{
"connector": [2],
"panel_label": "Metadata",
"show": true
}
],
"rtl": false,
"standalone": true
}
</script>
</script>
```
**Note**:
It's a *JSON* object. So if you are going to make any changes and you have to quote these (see *labels* or *colors*), please use *double quotes* only.
**Note**: It's a *JSON* object. So if you are going to make any changes and you have to quote these (e.g. see *labels* or *colors*), please use **double quotes** only.
#### The Keys in Detail
### The Keys in Detail
- **entrypoint**
to link the viewer to a backend, the entrypoint should point to the collection you want to be displayed.
(Further details below: [Connecting the Viewer to a Backend](#connecting-the-viewer-to-a-backend))
**Note**:
You have to provide at least a valid entrypoint (see below). Otherwise the Viewer won't show anything at all!
**Note**: You have to provide at least a valid entrypoint (see below). Otherwise the Viewer won't show anything at all!
- **colors**
......@@ -372,6 +411,10 @@ It's a *JSON* object. So if you are going to make any changes and you have to qu
set this value to `false` if you want to switch off the NavBar
- **panelheadings**
set this value to `false` if you want to switch off the panels' headings respectively
- **toggle**
set this value to `false` if you want to switch off the ToggleBar.
......@@ -388,12 +431,14 @@ It's a *JSON* object. So if you are going to make any changes and you have to qu
The label of the item respectively
Assuming your collection consists of letters, you'd maybe want to name it "letter" or just "sheet" for instance.
This change affects the captions of the navbuttons located in the headerbar and the metadata section.
This change affects the captions of the navbuttons located in the headerbar and the metadata section.
Defaults to `Sheet`.
- **manifest**:
Same as for `item` but related to the manifest title.
Same as for `item` but related to the manifest title.
Defaults to `Manuscript`.
- **meta**
......@@ -413,78 +458,83 @@ It's a *JSON* object. So if you are going to make any changes and you have to qu
}
```
- **standalone**
- **rtl (right to left)**
denotes if the Viewer will be used as a single page application or if it will be embedded into an existing page. If you want to use it in the latter case, please toggle the value to "false". That way the language toggle in the footer section will not show up.
refers to the direction the text inside the text panel will be displayed.
Defaults to `true`.
set the value to `true` if you want text to be displayed from right to left; e.g. Arabic.
**rtl**
Defaults to `false`.
- **standalone**
this option supports text to be displayed from right to left inside the text panel (e.g. arabic).
set this value to `false` if you want to disable it or rather if you want to display text which is read from left to right (e.g. english).
denotes if the Viewer will be used as a single page application or if it will be embedded into an existing page. If you want to use it in the latter case, please toggle the value to `false`. That way the language toggle in the footer section will not show up.
Defaults to `true`.
### b) Configure the Panels
### Configure the Panels
In order to configure the panels, locate the `panels.js` file inside the `src/config` folder of your project dir and find the *panels* constant at the top of the file:
```json
"panels": [
{
"connector": [1],
"panel_label": "Contents",
"show": true
},
{
"connector": [3],
"panel_label": "Image",
"show": true
},
{
"connector": [4],
"panel_label": "Text",
"show": true
},
{
"connector": [2],
"panel_label": "Metadata",
"show": true
}
],
```js
const panels = [
{
id: uuidv4(),
connector: [1, 2],
panel_label: 'Tabs',
show: true,
},
{
id: uuidv4(),
connector: [3],
panel_label: 'Image',
show: true,
},
{
id: uuidv4(),
connector: [4],
panel_label: 'Text',
show: true,
},
{
id: uuidv4(),
connector: [5],
panel_label: 'Annotations',
show: true,
},
];
```
It consists of four objects according to the maximum number of panels, that can be shown at once.
Each object inside that constant consists of similar keys: `id`, `connector`, `pane_label` and `show`.
The panel-array consists of four objects according to the maximum number of panels, that can be shown at once.
#### The Panel Keys in Detail
Each object inside that constant consists of similar keys: `connector`, `pane_label` and `show`.
- **id**
provides unique IDs. (**Note**: please leave this value untouched; it's meant for internal use only!)
#### The Panel Keys in Detail
- **connector**
references the component id/s according to the appropriate panel/s or rather tab/s:
The numbers below reflect each component's (Text, Image, Meta, ...) id.
- 1 = Treeview
- 2 = Metadata
- 3 = OpenSeadragon
- 4 = Content / Text
- 3 = Image
- 4 = Text
- 5 = Annotations
**Note**:
**Note**: These **IDs** are supposed to be **unique**, so please make sure not to repeat these!
Example given:
These IDs are supposed to be *unique*, so please make sure not to repeat these!
Assuming you want to combine the **Metadata**, **Text** and **Annotations** panels, the configuration could look like this:
```js
{
connector: [2, 4, 5],
panel_label: 'Meta, Text & Anno',
show: true
}
```
- **panel_label**
refers to the heading in each panel's *toolbar* (**Note**: Please make sure to also change the name, if you are going to reorder the panels or turn them into tabs.)
refers to the heading in each panel's *toolbar*. To rename it, change the corresponding `panel_label` according to your needs.
**Note**: Please make sure to also change the name, if you are going to reorder the panels or turn them into tabs.
- **show**
......@@ -492,24 +542,6 @@ Each object inside that constant consists of similar keys: `id`, `connector`, `p
**Note**:
Modifying the *connector* and the *panel_label* works on user configuration as well.
Example given:
Assuming you want to combine the *Metadata*, *Text* and *Annotations* panels:
```js
{
id: uuidv4(),
connector: [2, 4, 5],
panel_label: 'Meta, Text & Anno',
show: true
}
```
To rename a panel heading, change the corresponding `panel_label` according to your needs.
If you intend to hide a component, just toggle its corresponding *show-key* to `false`.
## Viewer Components
![Viewer components](img/Viewer.png)
......
......@@ -1706,9 +1706,9 @@
}
},
"@eslint/eslintrc": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz",
"integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
"integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
......@@ -1718,7 +1718,7 @@
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
"lodash": "^4.17.19",
"lodash": "^4.17.20",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
......@@ -2303,9 +2303,9 @@
}
},
"@quasar/extras": {
"version": "1.9.13",
"resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.9.13.tgz",
"integrity": "sha512-9ptRGMjBqfgxzLmH4MOlzSzmkwg7JAkWaB+EqDuZmjHyqkAGjGkuZj2LK4qbJdgveR94mlsJHb5fKojKzGkt0w=="
"version": "1.9.14",
"resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.9.14.tgz",
"integrity": "sha512-8g2C0qsdKmaSbIR16C87yQbpY/pDubcZU6r69E9NuX/oNLhudWwg1kux9mdk3rlHHG4z7qty3i9+Dedampwt2A=="
},
"@quasar/fastclick": {
"version": "1.1.4",
......@@ -8554,13 +8554,13 @@
}
},
"eslint": {
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz",
"integrity": "sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==",
"version": "7.18.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz",
"integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@eslint/eslintrc": "^0.2.2",
"@eslint/eslintrc": "^0.3.0",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
......@@ -8584,7 +8584,7 @@
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash": "^4.17.19",
"lodash": "^4.17.20",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
......@@ -9139,15 +9139,15 @@
}
},
"eslint-plugin-vue": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.4.1.tgz",
"integrity": "sha512-W/xPNHYIkGJphLUM2UIYYGKbRw3BcDoMIPY9lu1TTa2YLiZoxurddfnmOP+UOVywxb5vi438ejzwvKdZqydtIw==",
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz",
"integrity": "sha512-QnMMTcyV8PLxBz7QQNAwISSEs6LYk2LJvGlxalXvpCtfKnqo7qcY0aZTIxPe8QOnHd7WCwiMZLOJzg6A03T0Gw==",
"dev": true,
"requires": {
"eslint-utils": "^2.1.0",
"natural-compare": "^1.4.0",
"semver": "^7.3.2",
"vue-eslint-parser": "^7.3.0"
"vue-eslint-parser": "^7.4.1"
}
},
"eslint-scope": {
......@@ -16985,9 +16985,9 @@
"dev": true
},
"quasar": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/quasar/-/quasar-1.15.0.tgz",
"integrity": "sha512-GTIz/8AgzpHKPsbrQfO32dPPEGjDSFDWRE4dvt3AHh2LtRRAE5QJwPMqCy11GYGhyLMeZaRl76AuCUVb0BYTzA=="
"version": "1.15.1",
"resolved": "https://registry.npmjs.org/quasar/-/quasar-1.15.1.tgz",
"integrity": "sha512-yiqxAYh/Q56ryel3yLOLulY89m2kqqX38fFhNp/qZpMeHRezCDHceg3jRTKQwGvP2LS2bhJr+mEFVXa/5zKT5w=="
},
"query-string": {
"version": "4.3.4",
......@@ -17875,9 +17875,9 @@
}
},
"sass": {
"version": "1.32.4",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.32.4.tgz",
"integrity": "sha512-N0BT0PI/t3+gD8jKa83zJJUb7ssfQnRRfqN+GIErokW6U4guBpfYl8qYB+OFLEho+QvnV5ZH1R9qhUC/Z2Ch9w==",
"version": "1.32.5",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.32.5.tgz",
"integrity": "sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ==",
"dev": true,
"requires": {
"chokidar": ">=2.0.0 <4.0.0"
......@@ -19137,9 +19137,9 @@
}
},
"stylelint": {
"version": "13.8.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.8.0.tgz",
"integrity": "sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ==",
"version": "13.9.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.9.0.tgz",
"integrity": "sha512-VVWH2oixOAxpWL1vH+V42ReCzBjW2AeqskSAbi8+3OjV1Xg3VZkmTcAqBZfRRvJeF4BvYuDLXebW3tIHxgZDEg==",
"dev": true,
"requires": {
"@stylelint/postcss-css-in-js": "^0.37.2",
......@@ -19148,14 +19148,14 @@
"balanced-match": "^1.0.0",
"chalk": "^4.1.0",
"cosmiconfig": "^7.0.0",
"debug": "^4.2.0",
"debug": "^4.3.1",
"execall": "^2.0.0",
"fast-glob": "^3.2.4",
"fast-glob": "^3.2.5",
"fastest-levenshtein": "^1.0.12",
"file-entry-cache": "^6.0.0",
"get-stdin": "^8.0.0",
"global-modules": "^2.0.0",
"globby": "^11.0.1",
"globby": "^11.0.2",
"globjoin": "^0.1.4",
"html-tags": "^3.1.0",
"ignore": "^5.1.8",
......@@ -19165,7 +19165,7 @@
"lodash": "^4.17.20",
"log-symbols": "^4.0.0",
"mathml-tag-names": "^2.1.3",
"meow": "^8.0.0",
"meow": "^9.0.0",
"micromatch": "^4.0.2",
"normalize-selector": "^0.2.0",
"postcss": "^7.0.35",
......@@ -19187,11 +19187,23 @@
"style-search": "^0.1.0",
"sugarss": "^2.0.0",
"svg-tags": "^1.0.0",
"table": "^6.0.3",
"table": "^6.0.7",
"v8-compile-cache": "^2.2.0",
"write-file-atomic": "^3.0.3"
},
"dependencies": {
"ajv": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz",
"integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
}
},
"camelcase-keys": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
......@@ -19216,6 +19228,29 @@
"yaml": "^1.10.0"
}
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"fast-glob": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.0",
"merge2": "^1.3.0",
"micromatch": "^4.0.2",
"picomatch": "^2.2.1"
}
},
"find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
......@@ -19285,6 +19320,12 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
......@@ -19301,13 +19342,14 @@
"dev": true
},
"meow": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
"integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
"integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
"requires": {
"@types/minimist": "^1.2.0",
"camelcase-keys": "^6.2.2",
"decamelize": "^1.2.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
......@@ -19341,9 +19383,9 @@
}
},
"parse-json": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
"integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
......@@ -19457,6 +19499,18 @@
"min-indent": "^1.0.0"
}
},
"table": {
"version": "6.0.7",
"resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz",
"integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==",
"dev": true,
"requires": {
"ajv": "^7.0.2",
"lodash": "^4.17.20",
"slice-ansi": "^4.0.0",
"string-width": "^4.2.0"
}
},
"trim-newlines": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz",
......@@ -20799,9 +20853,9 @@
"dev": true
},
"vue-eslint-parser": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz",
"integrity": "sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==",
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz",
"integrity": "sha512-AFvhdxpFvliYq1xt/biNBslTHE/zbEvSnr1qfHA/KxRIpErmEDrQZlQnvEexednRHmLfDNOMuDYwZL5xkLzIXQ==",
"dev": true,
"requires": {
"debug": "^4.1.1",
......
......@@ -31,9 +31,9 @@
},
"private": false,
"dependencies": {
"@quasar/extras": "^1.9.13",
"@quasar/extras": "^1.9.14",
"openseadragon": "^2.4.2",
"quasar": "^1.15.0",
"quasar": "^1.15.1",
"vuedraggable": "^2.24.3"
},
"devDependencies": {
......@@ -43,18 +43,18 @@
"babel-eslint": "^10.1.0",
"commitizen": "^4.2.2",
"cz-conventional-changelog": "^3.3.0",