aboutsummaryrefslogtreecommitdiff
path: root/viewer
diff options
context:
space:
mode:
Diffstat (limited to 'viewer')
-rw-r--r--viewer/.browserslistrc2
-rw-r--r--viewer/.env4
-rw-r--r--viewer/.eslintrc.js34
-rw-r--r--viewer/.gitignore24
-rw-r--r--viewer/.prettierrc.js9
-rw-r--r--viewer/babel.config.js7
-rw-r--r--viewer/package-lock.json12458
-rw-r--r--viewer/package.json48
-rw-r--r--viewer/public/favicon.icobin0 -> 4286 bytes
-rw-r--r--viewer/public/index.html40
-rw-r--r--viewer/readme.md26
-rw-r--r--viewer/src/@types/gallery/index.d.ts45
-rw-r--r--viewer/src/@types/tag/Operation.ts24
-rw-r--r--viewer/src/@types/tag/index.d.ts33
-rw-r--r--viewer/src/assets/scss/_buefy_variables.scss171
-rw-r--r--viewer/src/assets/scss/buefy.scss48
-rw-r--r--viewer/src/assets/scss/global.scss44
-rw-r--r--viewer/src/assets/scss/theme.scss29
-rw-r--r--viewer/src/components/LdButtonFullscreen.vue44
-rw-r--r--viewer/src/components/LdModeRadio.vue41
-rw-r--r--viewer/src/components/LdProposition.vue93
-rw-r--r--viewer/src/components/LdTagInput.vue123
-rw-r--r--viewer/src/components/index.ts41
-rw-r--r--viewer/src/locales/en.json11
-rw-r--r--viewer/src/main.ts37
-rw-r--r--viewer/src/plugins/buefy.ts28
-rw-r--r--viewer/src/plugins/fontawesome.ts44
-rw-r--r--viewer/src/plugins/i18n.ts42
-rw-r--r--viewer/src/router/index.ts41
-rw-r--r--viewer/src/shims-tsx.d.ts13
-rw-r--r--viewer/src/shims-vue.d.ts4
-rw-r--r--viewer/src/store/galleryStore.ts110
-rw-r--r--viewer/src/store/index.ts46
-rw-r--r--viewer/src/store/uiStore.ts56
-rw-r--r--viewer/src/views/Gallery.vue104
-rw-r--r--viewer/src/views/GalleryDirectory.vue45
-rw-r--r--viewer/src/views/GalleryPicture.vue40
-rw-r--r--viewer/src/views/GallerySearch.vue44
-rw-r--r--viewer/src/views/GalleryThumbnail.vue48
-rw-r--r--viewer/src/views/MainLayout.vue121
-rw-r--r--viewer/src/views/PanelLeft.vue42
-rw-r--r--viewer/src/views/PanelTop.vue86
-rw-r--r--viewer/tsconfig.json41
-rw-r--r--viewer/visualstudio.code-workspace14
-rw-r--r--viewer/vue.config.js42
-rw-r--r--viewer/win_start_vueui.cmd32
46 files changed, 14479 insertions, 0 deletions
diff --git a/viewer/.browserslistrc b/viewer/.browserslistrc
new file mode 100644
index 0000000..d6471a3
--- /dev/null
+++ b/viewer/.browserslistrc
@@ -0,0 +1,2 @@
1> 1%
2last 2 versions
diff --git a/viewer/.env b/viewer/.env
new file mode 100644
index 0000000..59b220a
--- /dev/null
+++ b/viewer/.env
@@ -0,0 +1,4 @@
1VUE_APP_I18N_LOCALE=en
2VUE_APP_I18N_FALLBACK_LOCALE=en
3VUE_APP_DATA_URL=/gallery/
4VUE_APP_EXAMPLE_PROJECT=../example/out/
diff --git a/viewer/.eslintrc.js b/viewer/.eslintrc.js
new file mode 100644
index 0000000..996c4f3
--- /dev/null
+++ b/viewer/.eslintrc.js
@@ -0,0 +1,34 @@
1module.exports = {
2 root: true,
3
4 env: {
5 node: true,
6 },
7
8 'extends': [
9 'plugin:vue/essential',
10 '@vue/typescript'
11 ],
12
13 rules: {
14 "no-console": "off",
15 "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
16 'vue/attribute-hyphenation': 'warn',
17 'vue/html-closing-bracket-spacing': 'warn',
18 'vue/html-end-tags': 'error',
19 'vue/html-quotes': 'warn',
20 'vue/html-self-closing': 'off',
21 'vue/no-multi-spaces': 'warn',
22 'vue/no-spaces-around-equal-signs-in-attribute': 'warn',
23 'vue/no-template-shadow': 'error',
24 'vue/v-bind-style': 'warn',
25 'vue/v-on-style': 'warn',
26 'vue/attributes-order': 'warn',
27 'vue/this-in-template': 'warn'
28 },
29
30 parserOptions: {
31 parser: '@typescript-eslint/parser',
32 },
33
34};
diff --git a/viewer/.gitignore b/viewer/.gitignore
new file mode 100644
index 0000000..12a8306
--- /dev/null
+++ b/viewer/.gitignore
@@ -0,0 +1,24 @@
1.DS_Store
2node_modules
3/dist
4
5# local env files
6.env.local
7.env.*.local
8
9# Log files
10npm-debug.log*
11yarn-debug.log*
12yarn-error.log*
13
14# Editor directories and files
15.idea
16.vscode
17*.suo
18*.ntvs*
19*.njsproj
20*.sln
21*.sw?
22
23# Backup files
24*.bak
diff --git a/viewer/.prettierrc.js b/viewer/.prettierrc.js
new file mode 100644
index 0000000..ee0cb9b
--- /dev/null
+++ b/viewer/.prettierrc.js
@@ -0,0 +1,9 @@
1module.exports = {
2 trailingComma: "es5",
3 tabWidth: 2,
4 useTabs: false,
5 singleQuote: false,
6 printWidth: 120,
7 bracketSpacing: true,
8 arrowParens: "avoid",
9};
diff --git a/viewer/babel.config.js b/viewer/babel.config.js
new file mode 100644
index 0000000..7102a6e
--- /dev/null
+++ b/viewer/babel.config.js
@@ -0,0 +1,7 @@
1module.exports = {
2 presets: ["@vue/cli-plugin-babel/preset"],
3 plugins: [
4 '@babel/plugin-proposal-optional-chaining',
5 '@babel/plugin-proposal-nullish-coalescing-operator',
6 ],
7};
diff --git a/viewer/package-lock.json b/viewer/package-lock.json
new file mode 100644
index 0000000..10a0f26
--- /dev/null
+++ b/viewer/package-lock.json
@@ -0,0 +1,12458 @@
1{
2 "name": "ldgallery-viewer",
3 "version": "0.1.0",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "@babel/code-frame": {
8 "version": "7.5.5",
9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
10 "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
11 "dev": true,
12 "requires": {
13 "@babel/highlight": "^7.0.0"
14 }
15 },
16 "@babel/core": {
17 "version": "7.7.7",
18 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz",
19 "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==",
20 "dev": true,
21 "requires": {
22 "@babel/code-frame": "^7.5.5",
23 "@babel/generator": "^7.7.7",
24 "@babel/helpers": "^7.7.4",
25 "@babel/parser": "^7.7.7",
26 "@babel/template": "^7.7.4",
27 "@babel/traverse": "^7.7.4",
28 "@babel/types": "^7.7.4",
29 "convert-source-map": "^1.7.0",
30 "debug": "^4.1.0",
31 "json5": "^2.1.0",
32 "lodash": "^4.17.13",
33 "resolve": "^1.3.2",
34 "semver": "^5.4.1",
35 "source-map": "^0.5.0"
36 }
37 },
38 "@babel/generator": {
39 "version": "7.7.7",
40 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz",
41 "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==",
42 "dev": true,
43 "requires": {
44 "@babel/types": "^7.7.4",
45 "jsesc": "^2.5.1",
46 "lodash": "^4.17.13",
47 "source-map": "^0.5.0"
48 }
49 },
50 "@babel/helper-annotate-as-pure": {
51 "version": "7.7.4",
52 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz",
53 "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==",
54 "dev": true,
55 "requires": {
56 "@babel/types": "^7.7.4"
57 }
58 },
59 "@babel/helper-builder-binary-assignment-operator-visitor": {
60 "version": "7.7.4",
61 "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz",
62 "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==",
63 "dev": true,
64 "requires": {
65 "@babel/helper-explode-assignable-expression": "^7.7.4",
66 "@babel/types": "^7.7.4"
67 }
68 },
69 "@babel/helper-call-delegate": {
70 "version": "7.7.4",
71 "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz",
72 "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==",
73 "dev": true,
74 "requires": {