From e6c0d1c28af1905009067ac925bae0d0cd56c027 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 12:17:04 +0000 Subject: [PATCH 001/134] initial commit --- .babelrc | 13 + .eslintignore | 2 + .eslintrc.js | 27 ++ .gitignore | 12 + .travis.yml | 22 + CODE_OF_CONDUCT.md | 46 ++ CONTRIBUTING.md | 14 + LICENSE.md | 201 ++++++++ README.md | 3 + assets/build/build.js | 31 ++ assets/build/check-versions.js | 48 ++ assets/build/config.js | 26 + assets/build/dev.js | 35 ++ assets/build/service-worker-dev.js | 17 + assets/build/service-worker-prod.js | 55 +++ assets/build/utils.js | 70 +++ assets/build/vue-loader.conf.js | 12 + assets/build/webpack.base.conf.js | 69 +++ assets/build/webpack.dev.conf.js | 81 ++++ assets/build/webpack.prod.conf.js | 127 +++++ assets/index.html | 116 +++++ assets/src/App.vue | 78 +++ assets/src/assets/fonts/material/icons.woff2 | Bin 0 -> 47620 bytes .../fonts/roboto/medium-cyrillic-ext.woff2 | Bin 0 -> 15292 bytes .../assets/fonts/roboto/medium-cyrillic.woff2 | Bin 0 -> 10060 bytes .../fonts/roboto/medium-greek-ext.woff2 | Bin 0 -> 1412 bytes .../assets/fonts/roboto/medium-greek.woff2 | Bin 0 -> 7176 bytes .../fonts/roboto/medium-latin-ext.woff2 | Bin 0 -> 11912 bytes .../assets/fonts/roboto/medium-latin.woff2 | Bin 0 -> 14596 bytes .../fonts/roboto/medium-vietnamese.woff2 | Bin 0 -> 4780 bytes .../fonts/roboto/normal-cyrillic-ext.woff2 | Bin 0 -> 15832 bytes .../assets/fonts/roboto/normal-cyrillic.woff2 | Bin 0 -> 9996 bytes .../fonts/roboto/normal-greek-ext.woff2 | Bin 0 -> 1432 bytes .../assets/fonts/roboto/normal-greek.woff2 | Bin 0 -> 7208 bytes .../fonts/roboto/normal-latin-ext.woff2 | Bin 0 -> 12008 bytes .../assets/fonts/roboto/normal-latin.woff2 | Bin 0 -> 14584 bytes .../fonts/roboto/normal-vietnamese.woff2 | Bin 0 -> 4896 bytes assets/src/assets/logo.svg | 5 + assets/src/components/Header.vue | 220 +++++++++ assets/src/components/Languages.vue | 23 + assets/src/components/Search.vue | 265 ++++++++++ assets/src/components/Sidebar.vue | 90 ++++ assets/src/components/buttons/Copy.vue | 17 + assets/src/components/buttons/Delete.vue | 17 + assets/src/components/buttons/Download.vue | 39 ++ assets/src/components/buttons/Info.vue | 17 + assets/src/components/buttons/Move.vue | 17 + assets/src/components/buttons/Rename.vue | 17 + assets/src/components/buttons/Schedule.vue | 21 + assets/src/components/buttons/Share.vue | 17 + assets/src/components/buttons/SwitchView.vue | 36 ++ assets/src/components/buttons/Upload.vue | 17 + assets/src/components/files/Editor.vue | 143 ++++++ assets/src/components/files/Listing.vue | 381 +++++++++++++++ assets/src/components/files/ListingItem.vue | 158 ++++++ assets/src/components/files/Preview.vue | 139 ++++++ assets/src/components/prompts/Copy.vue | 69 +++ assets/src/components/prompts/Delete.vue | 80 +++ assets/src/components/prompts/Download.vue | 47 ++ assets/src/components/prompts/FileList.vue | 140 ++++++ assets/src/components/prompts/Help.vue | 34 ++ assets/src/components/prompts/Info.vue | 122 +++++ assets/src/components/prompts/Move.vue | 70 +++ .../src/components/prompts/NewArchetype.vue | 76 +++ assets/src/components/prompts/NewDir.vue | 60 +++ assets/src/components/prompts/NewFile.vue | 61 +++ assets/src/components/prompts/Prompts.vue | 87 ++++ assets/src/components/prompts/Rename.vue | 84 ++++ assets/src/components/prompts/Replace.vue | 31 ++ assets/src/components/prompts/Schedule.vue | 47 ++ assets/src/components/prompts/Share.vue | 162 +++++++ assets/src/css/base.css | 214 ++++++++ assets/src/css/dashboard.css | 420 ++++++++++++++++ assets/src/css/editor.css | 184 +++++++ assets/src/css/fonts.css | 137 ++++++ assets/src/css/header.css | 260 ++++++++++ assets/src/css/listing.css | 237 +++++++++ assets/src/css/login.css | 76 +++ assets/src/css/mobile.css | 113 +++++ assets/src/css/styles.css | 228 +++++++++ assets/src/i18n/en.yaml | 201 ++++++++ assets/src/i18n/es.yaml | 202 ++++++++ assets/src/i18n/fr.yaml | 194 ++++++++ assets/src/i18n/index.js | 61 +++ assets/src/i18n/ja.yaml | 201 ++++++++ assets/src/i18n/pt.yaml | 204 ++++++++ assets/src/i18n/zh-cn.yaml | 199 ++++++++ assets/src/i18n/zh-tw.yaml | 199 ++++++++ assets/src/main.js | 54 +++ assets/src/router/index.js | 161 +++++++ assets/src/store/getters.js | 5 + assets/src/store/index.js | 42 ++ assets/src/store/mutations.js | 81 ++++ assets/src/utils/api.js | 455 ++++++++++++++++++ assets/src/utils/auth.js | 69 +++ assets/src/utils/buttons.js | 66 +++ assets/src/utils/codemirror.js | 60 +++ assets/src/utils/cookie.js | 4 + assets/src/utils/css.js | 28 ++ assets/src/utils/url.js | 12 + assets/src/views/Files.vue | 231 +++++++++ assets/src/views/Layout.vue | 43 ++ assets/src/views/Login.vue | 71 +++ assets/src/views/Settings.vue | 20 + assets/src/views/errors/403.vue | 13 + assets/src/views/errors/404.vue | 13 + assets/src/views/errors/500.vue | 13 + assets/src/views/settings/Global.vue | 187 +++++++ assets/src/views/settings/Profile.vue | 109 +++++ assets/src/views/settings/User.vue | 319 ++++++++++++ assets/src/views/settings/Users.vue | 48 ++ .../img/icons/android-chrome-192x192.png | Bin 0 -> 4299 bytes .../img/icons/android-chrome-512x512.png | Bin 0 -> 12300 bytes .../img/icons/apple-touch-icon-120x120.png | Bin 0 -> 2930 bytes .../img/icons/apple-touch-icon-152x152.png | Bin 0 -> 3723 bytes .../img/icons/apple-touch-icon-180x180.png | Bin 0 -> 8893 bytes .../img/icons/apple-touch-icon-60x60.png | Bin 0 -> 1910 bytes .../img/icons/apple-touch-icon-76x76.png | Bin 0 -> 1977 bytes assets/static/img/icons/apple-touch-icon.png | Bin 0 -> 4299 bytes assets/static/img/icons/favicon-16x16.png | Bin 0 -> 918 bytes assets/static/img/icons/favicon-32x32.png | Bin 0 -> 1645 bytes assets/static/img/icons/favicon.ico | Bin 0 -> 1150 bytes .../img/icons/msapplication-icon-144x144.png | Bin 0 -> 3515 bytes assets/static/img/icons/mstile-150x150.png | Bin 0 -> 3668 bytes assets/static/manifest.json | 20 + assets/static/share/404.html | 50 ++ assets/static/share/index.html | 86 ++++ package.json | 88 ++++ 128 files changed, 9592 insertions(+) create mode 100644 .babelrc create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 assets/build/build.js create mode 100644 assets/build/check-versions.js create mode 100644 assets/build/config.js create mode 100644 assets/build/dev.js create mode 100644 assets/build/service-worker-dev.js create mode 100644 assets/build/service-worker-prod.js create mode 100644 assets/build/utils.js create mode 100644 assets/build/vue-loader.conf.js create mode 100644 assets/build/webpack.base.conf.js create mode 100644 assets/build/webpack.dev.conf.js create mode 100644 assets/build/webpack.prod.conf.js create mode 100644 assets/index.html create mode 100644 assets/src/App.vue create mode 100644 assets/src/assets/fonts/material/icons.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-cyrillic.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-greek-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-greek.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-latin-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-latin.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-vietnamese.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-cyrillic.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-greek-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-greek.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-latin-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-latin.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-vietnamese.woff2 create mode 100644 assets/src/assets/logo.svg create mode 100644 assets/src/components/Header.vue create mode 100644 assets/src/components/Languages.vue create mode 100644 assets/src/components/Search.vue create mode 100644 assets/src/components/Sidebar.vue create mode 100644 assets/src/components/buttons/Copy.vue create mode 100644 assets/src/components/buttons/Delete.vue create mode 100644 assets/src/components/buttons/Download.vue create mode 100644 assets/src/components/buttons/Info.vue create mode 100644 assets/src/components/buttons/Move.vue create mode 100644 assets/src/components/buttons/Rename.vue create mode 100644 assets/src/components/buttons/Schedule.vue create mode 100644 assets/src/components/buttons/Share.vue create mode 100644 assets/src/components/buttons/SwitchView.vue create mode 100644 assets/src/components/buttons/Upload.vue create mode 100644 assets/src/components/files/Editor.vue create mode 100644 assets/src/components/files/Listing.vue create mode 100644 assets/src/components/files/ListingItem.vue create mode 100644 assets/src/components/files/Preview.vue create mode 100644 assets/src/components/prompts/Copy.vue create mode 100644 assets/src/components/prompts/Delete.vue create mode 100644 assets/src/components/prompts/Download.vue create mode 100644 assets/src/components/prompts/FileList.vue create mode 100644 assets/src/components/prompts/Help.vue create mode 100644 assets/src/components/prompts/Info.vue create mode 100644 assets/src/components/prompts/Move.vue create mode 100644 assets/src/components/prompts/NewArchetype.vue create mode 100644 assets/src/components/prompts/NewDir.vue create mode 100644 assets/src/components/prompts/NewFile.vue create mode 100644 assets/src/components/prompts/Prompts.vue create mode 100644 assets/src/components/prompts/Rename.vue create mode 100644 assets/src/components/prompts/Replace.vue create mode 100644 assets/src/components/prompts/Schedule.vue create mode 100644 assets/src/components/prompts/Share.vue create mode 100644 assets/src/css/base.css create mode 100644 assets/src/css/dashboard.css create mode 100644 assets/src/css/editor.css create mode 100644 assets/src/css/fonts.css create mode 100644 assets/src/css/header.css create mode 100644 assets/src/css/listing.css create mode 100644 assets/src/css/login.css create mode 100644 assets/src/css/mobile.css create mode 100644 assets/src/css/styles.css create mode 100644 assets/src/i18n/en.yaml create mode 100644 assets/src/i18n/es.yaml create mode 100644 assets/src/i18n/fr.yaml create mode 100644 assets/src/i18n/index.js create mode 100644 assets/src/i18n/ja.yaml create mode 100644 assets/src/i18n/pt.yaml create mode 100644 assets/src/i18n/zh-cn.yaml create mode 100644 assets/src/i18n/zh-tw.yaml create mode 100644 assets/src/main.js create mode 100644 assets/src/router/index.js create mode 100644 assets/src/store/getters.js create mode 100644 assets/src/store/index.js create mode 100644 assets/src/store/mutations.js create mode 100644 assets/src/utils/api.js create mode 100644 assets/src/utils/auth.js create mode 100644 assets/src/utils/buttons.js create mode 100644 assets/src/utils/codemirror.js create mode 100644 assets/src/utils/cookie.js create mode 100644 assets/src/utils/css.js create mode 100644 assets/src/utils/url.js create mode 100644 assets/src/views/Files.vue create mode 100644 assets/src/views/Layout.vue create mode 100644 assets/src/views/Login.vue create mode 100644 assets/src/views/Settings.vue create mode 100644 assets/src/views/errors/403.vue create mode 100644 assets/src/views/errors/404.vue create mode 100644 assets/src/views/errors/500.vue create mode 100644 assets/src/views/settings/Global.vue create mode 100644 assets/src/views/settings/Profile.vue create mode 100644 assets/src/views/settings/User.vue create mode 100644 assets/src/views/settings/Users.vue create mode 100644 assets/static/img/icons/android-chrome-192x192.png create mode 100644 assets/static/img/icons/android-chrome-512x512.png create mode 100644 assets/static/img/icons/apple-touch-icon-120x120.png create mode 100644 assets/static/img/icons/apple-touch-icon-152x152.png create mode 100644 assets/static/img/icons/apple-touch-icon-180x180.png create mode 100644 assets/static/img/icons/apple-touch-icon-60x60.png create mode 100644 assets/static/img/icons/apple-touch-icon-76x76.png create mode 100644 assets/static/img/icons/apple-touch-icon.png create mode 100644 assets/static/img/icons/favicon-16x16.png create mode 100644 assets/static/img/icons/favicon-32x32.png create mode 100644 assets/static/img/icons/favicon.ico create mode 100644 assets/static/img/icons/msapplication-icon-144x144.png create mode 100644 assets/static/img/icons/mstile-150x150.png create mode 100644 assets/static/manifest.json create mode 100644 assets/static/share/404.html create mode 100644 assets/static/share/index.html create mode 100644 package.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..a2a58cff --- /dev/null +++ b/.babelrc @@ -0,0 +1,13 @@ +{ + "presets": [ + ["env", { "modules": false }], + "stage-2" + ], + "plugins": ["transform-runtime"], + "env": { + "test": { + "presets": ["env", "stage-2"], + "plugins": [ "istanbul" ] + } + } +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..34af3774 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +build/*.js +config/*.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..67c085d6 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,27 @@ +// http://eslint.org/docs/user-guide/configuring + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + }, + // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style + extends: 'standard', + // required to lint *.vue files + plugins: [ + 'html' + ], + // add your custom rules here + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c4bbc189 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules/ +*/dist/* +*.db +*.db.lock +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.idea +.vscode +package-lock.json +yarn.lock \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..7092fe76 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: go + +go: 1.x + +env: + - "PATH=/home/travis/gopath/bin:$PATH" + +install: + - go get ./... + # Install gometalinter and certain linters + - go get github.com/alecthomas/gometalinter + - go get github.com/client9/misspell/cmd/misspell + - go get github.com/gordonklaus/ineffassign + - go get golang.org/x/tools/cmd/goimports + - go get github.com/tsenart/deadcode + +script: + - gometalinter --disable-all -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --exclude="rice-box.go" --tests ./... + - go test ./... -timeout 30s + +after_success: + - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..f0cc78e8 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hacdias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..2b7e1bab --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Contributing + +If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: + +1. `go get github.com/hacdias/filemanager/cmd/filemanager` +2. `cd $GOPATH/src/github.com/hacdias/filemanager` +3. `npm install` +4. `npm run dev` - regenerates the static assets automatically +5. `go install github.com/hacdias/filemanager/cmd/filemanager` +6. Execute `$GOPATH/bin/filemanager` + +The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. + +If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/hacdias/filemanager/caddy/filemanager`. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..5e0fd33c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,201 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "{}" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright {yyyy} {name of copyright owner} + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 00000000..73012ccc --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# filemanager + +TODO diff --git a/assets/build/build.js b/assets/build/build.js new file mode 100644 index 00000000..c7c0fbdb --- /dev/null +++ b/assets/build/build.js @@ -0,0 +1,31 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('./config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.assetsRoot, config.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + }) +}) diff --git a/assets/build/check-versions.js b/assets/build/check-versions.js new file mode 100644 index 00000000..f9133e24 --- /dev/null +++ b/assets/build/check-versions.js @@ -0,0 +1,48 @@ +var chalk = require('chalk') +var semver = require('semver') +var packageConfig = require('../../package.json') +var shell = require('shelljs') +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +var versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + } +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + var warnings = [] + for (var i = 0; i < versionRequirements.length; i++) { + var mod = versionRequirements[i] + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + for (var i = 0; i < warnings.length; i++) { + var warning = warnings[i] + console.log(' ' + warning) + } + console.log() + process.exit(1) + } +} diff --git a/assets/build/config.js b/assets/build/config.js new file mode 100644 index 00000000..885ac29d --- /dev/null +++ b/assets/build/config.js @@ -0,0 +1,26 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + index: path.resolve(__dirname, '../dist/index.html'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + assetsPublicPath: '{{ .BaseURL }}/', + build: { + env: { + NODE_ENV: '"production"' + }, + productionSourceMap: true, + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: { + NODE_ENV: '"development"' + }, + produceSourceMap: true + } +} diff --git a/assets/build/dev.js b/assets/build/dev.js new file mode 100644 index 00000000..9b42a437 --- /dev/null +++ b/assets/build/dev.js @@ -0,0 +1,35 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'development' + +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('./config') +var webpackConfig = require('./webpack.dev.conf') +var fs = require('fs') + +if (fs.existsSync('./rice-box.go')) { + fs.unlinkSync('./rice-box.go') +} + +if (fs.existsSync('./plugins/rice-box.go')) { + fs.unlinkSync('./plugins/rice-box.go') +} + +rm(path.join(config.assetsRoot, config.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + }) +}) diff --git a/assets/build/service-worker-dev.js b/assets/build/service-worker-dev.js new file mode 100644 index 00000000..979e1962 --- /dev/null +++ b/assets/build/service-worker-dev.js @@ -0,0 +1,17 @@ +// This service worker file is effectively a 'no-op' that will reset any +// previous service worker registered for the same host:port combination. +// In the production build, this file is replaced with an actual service worker +// file that will precache your site's local assets. +// See https://github.com/facebookincubator/create-react-app/issues/2272#issuecomment-302832432 + +self.addEventListener('install', () => self.skipWaiting()); + +self.addEventListener('activate', () => { + self.clients.matchAll({ type: 'window' }).then(windowClients => { + for (let windowClient of windowClients) { + // Force open pages to refresh, so that they have a chance to load the + // fresh navigation response from the local dev server. + windowClient.navigate(windowClient.url); + } + }); +}); \ No newline at end of file diff --git a/assets/build/service-worker-prod.js b/assets/build/service-worker-prod.js new file mode 100644 index 00000000..1179ec20 --- /dev/null +++ b/assets/build/service-worker-prod.js @@ -0,0 +1,55 @@ +(function() { + 'use strict'; + + // Check to make sure service workers are supported in the current browser, + // and that the current page is accessed from a secure origin. Using a + // service worker from an insecure origin will trigger JS console errors. + const isLocalhost = Boolean(window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.1/8 is considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) + ); + + window.addEventListener('load', function() { + if ('serviceWorker' in navigator && + (window.location.protocol === 'https:' || isLocalhost)) { + navigator.serviceWorker.register('{{ .BaseURL }}/sw.js') + .then(function(registration) { + // updatefound is fired if service-worker.js changes. + registration.onupdatefound = function() { + // updatefound is also fired the very first time the SW is installed, + // and there's no need to prompt for a reload at that point. + // So check here to see if the page is already controlled, + // i.e. whether there's an existing service worker. + if (navigator.serviceWorker.controller) { + // The updatefound event implies that registration.installing is set + const installingWorker = registration.installing; + + installingWorker.onstatechange = function() { + switch (installingWorker.state) { + case 'installed': + // At this point, the old content will have been purged and the + // fresh content will have been added to the cache. + // It's the perfect time to display a "New content is + // available; please refresh." message in the page's interface. + break; + + case 'redundant': + throw new Error('The installing ' + + 'service worker became redundant.'); + + default: + // Ignore + } + }; + } + }; + }).catch(function(e) { + console.error('Error during service worker registration:', e); + }); + } + }); +})(); diff --git a/assets/build/utils.js b/assets/build/utils.js new file mode 100644 index 00000000..616ceb3a --- /dev/null +++ b/assets/build/utils.js @@ -0,0 +1,70 @@ +var path = require('path') +var config = require('./config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + var assetsSubDirectory = config.assetsSubDirectory + + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + var cssLoader = { + loader: 'css-loader', + options: { + minimize: process.env.NODE_ENV === 'production', + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + var loaders = [cssLoader] + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + return output +} diff --git a/assets/build/vue-loader.conf.js b/assets/build/vue-loader.conf.js new file mode 100644 index 00000000..a17529fc --- /dev/null +++ b/assets/build/vue-loader.conf.js @@ -0,0 +1,12 @@ +var utils = require('./utils') +var config = require('./config') +var isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: isProduction + ? config.build.productionSourceMap + : config.dev.produceSourceMap, + extract: isProduction + }) +} diff --git a/assets/build/webpack.base.conf.js b/assets/build/webpack.base.conf.js new file mode 100644 index 00000000..f8188022 --- /dev/null +++ b/assets/build/webpack.base.conf.js @@ -0,0 +1,69 @@ +var path = require('path') +var utils = require('./utils') +var config = require('./config') +var vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +module.exports = { + entry: { + app: './assets/src/main.js' + }, + output: { + path: config.assetsRoot, + filename: '[name].js', + publicPath: config.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src') + } + }, + module: { + rules: [ + { + test: /\.(yml|yaml)$/, + loader: 'yml-loader' + }, + { + test: /\.(js|vue)$/, + loader: 'eslint-loader', + enforce: 'pre', + include: [resolve('src'), resolve('test')], + options: { + formatter: require('eslint-friendly-formatter') + } + }, + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + // limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + } +} diff --git a/assets/build/webpack.dev.conf.js b/assets/build/webpack.dev.conf.js new file mode 100644 index 00000000..dd75ac4e --- /dev/null +++ b/assets/build/webpack.dev.conf.js @@ -0,0 +1,81 @@ +var fs = require('fs') +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('./config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +var CopyWebpackPlugin = require('copy-webpack-plugin') + +module.exports = merge(baseWebpackConfig, { + watch: true, + module: { + rules: utils.styleLoaders({ + sourceMap: config.dev.produceSourceMap, + extract: true + }) + }, + devtool: '#cheap-module-eval-source-map', + output: { + path: config.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + new webpack.NoEmitOnErrorsPlugin(), + new FriendlyErrorsPlugin(), + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.index, + template: 'assets/index.html', + inject: true, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency', + serviceWorkerLoader: `` + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../../node_modules/codemirror/mode/*/*'), + to: path.join(config.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js') + } + ]) + ] +}) diff --git a/assets/build/webpack.prod.conf.js b/assets/build/webpack.prod.conf.js new file mode 100644 index 00000000..bf992924 --- /dev/null +++ b/assets/build/webpack.prod.conf.js @@ -0,0 +1,127 @@ +var fs = require('fs') +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('./config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var CopyWebpackPlugin = require('copy-webpack-plugin') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') +var SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin') +var UglifyJS = require('uglify-js') + +var env = config.build.env + +var webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true + }) + }, + devtool: config.build.productionSourceMap ? '#source-map' : false, + output: { + path: config.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../../node_modules/codemirror/mode/*/*'), + to: path.join(config.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js'), + transform: function (source, path) { + let result = UglifyJS.minify(source.toString('utf8')) + if (result.error !== undefined) { + return source + } + return result.code + } + } + ]), + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: { + safe: true + } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.index, + template: 'assets/index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true, + minifyCSS: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency', + serviceWorkerLoader: `` + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + // service worker caching + new SWPrecacheWebpackPlugin({ + cacheId: 'File Browser', + filename: 'sw.js', + replacePrefix: '{{ .BaseURL }}/', + staticFileGlobs: ['dist/**/*.{js,html,css}'], + minify: true, + stripPrefix: 'dist/' + }) + ] +}) + +if (config.build.bundleAnalyzerReport) { + var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/assets/index.html b/assets/index.html new file mode 100644 index 00000000..8abc3097 --- /dev/null +++ b/assets/index.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + File Browser + + + + + + + + + + + + + + + + + + + {{ if .ReCaptcha -}} + + {{ end }} + + <% for (var chunk of webpack.chunks) { + for (var file of chunk.files) { + if (file.match(/\.(js|css)$/)) { %> + <% }}} %> + + + + +
+ +
+
+
+
+
+
+
+ + <%= htmlWebpackPlugin.options.serviceWorkerLoader %> + + diff --git a/assets/src/App.vue b/assets/src/App.vue new file mode 100644 index 00000000..ba1aa39d --- /dev/null +++ b/assets/src/App.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/assets/src/assets/fonts/material/icons.woff2 b/assets/src/assets/fonts/material/icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..05a8ab5d2e69c71d6e69bdafbf1601dd5dff2b07 GIT binary patch literal 47620 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 b/assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f63bc9a1934f40bbbc109e7697aacb18ebb2f284 GIT binary patch literal 15292 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 oYzte^_~Cw$>26;&vBT{*8H*1l73GZ(*AS{pN^ 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 b/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7e1a807819496f6e3e52ce083544104841602e05 GIT binary patch literal 1412 zcmXT-cQayOWME)mU~OR#1ks!U3=FL53``(4CYEkgli^`YV2I!d<7~DOVV2<*U|>;TZIWSE;A!-cX5u)(CilX8v$?^MHKp6cS7=-@y}8QKS5-Yv_}nJ- zf0?gNUY&Jo{{}v8<`+hCYfjY`ICJRkz7l#}Lx`y{WQq!}B8dO`G>xEdTa_02PO|Vfn5rG)+vM?jOAMG}`RKrEkvF0&8Lqf8~%m zn`+^_J=@Z)qs2I7(gfy>#~bwY#r7vQ6t-UEcDZ*qrhcZVl*#|L{*J55669HO8ZJ&& z?@zP1@{d2TRrH~@iO!L&3`GkTZV=#{yNk1QTkwwRqYVc=bQ)d>G5+k_I_v-9HmgDp zhw{6B3Og^}X%?7U+4p%T+ns;b+XObukJL#K>TY=wxuCFA@JIZusVP~^9%1^b%Woff z>L7J`^GS)WV+)^|aN2sh&Gy#QF=P-qS0Ot0(bQIp| zW2fu7OERifx7S^gT^;xG?W^ULxizbo$Xk>}o?Nv(OgC;>inVz9yN!FEly4Tfy!Yz2 zA3W#74%ZsLh<*2)IaYP|0x$oQ?T*>L$*-h*mi#N9`mksJ+Iw|f=2wH;xt2-Aeek`# zt?SiE&3QZ5B;4Bfe$|CP8)o0wzw4(@XMysSo1qi0wflU(QV{%by4S{)X4|Ynv}P{7 zIXhL>KQBTsVC}<-uV0f~WoAvvwoSR|v!?uu)x5iMbq7NO)BlvL_n5dh{7m57u6143 ztBmW44{4SQEMIe}WPPH=q@`0imZw$lmR#C@>&fg@zQ=Q4hp0Nwih1ZfxlgKYRg&Rx z?eb*_W)~v=uX?aMUrov}`PXHJmbZ(89YiFU*7TSQ9q?X0mwC&txRu#6bF@SZ%kR&= zx3&E0tP{5?Uz#T6zPZb{_iNyqFDI=xA9+}AZ~Oc4_VjZWfBe>bxyHk{SJwWs@5b^x z8U1Za=U&fTU+G*@Bj#+oT7Q1K;5j+XcRvjGeZKs<)bRh5LhstgSNxmI^<-x5e!Z{g z@oqiIW8RnJ_Alx9R}=ZJue<&8t@=;X*^lO$hYH+3^W$aW<7v0wt^XT%f6@0;>GplM zo_t>TdAE;LcYtWL3QG5lBmpmJW++SRq`I>z^Sgl6WLnLAh-9`$aK zTI8nhv#({*3(d8&Bd>jO{>#ziY9;N_8`gN>z!n43O930dH@P%TyW@X)#g*#2)htH& zhAky#?<7&Jy`>*;~0$mVto*0AH-8PXGV_ literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-greek.woff2 b/assets/src/assets/fonts/roboto/medium-greek.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..314cf3f8557cd9246eeb8be93582e5faf01f240a GIT binary patch literal 7176 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 b/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..604b89354421a545b529e76acaacb9c7f5d50988 GIT binary patch literal 11912 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-latin.woff2 b/assets/src/assets/fonts/roboto/medium-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5f96609d81a812b8f2557a4e9bba6db29205ae0e GIT binary patch literal 14596 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 b/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d92b712507a5d24f7910ccd4c2394570d4f405b5 GIT binary patch literal 4780 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 b/assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e4546e49304d4499c5dfb8dd45626afc3dd8459a GIT binary patch literal 15832 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic.woff2 b/assets/src/assets/fonts/roboto/normal-cyrillic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d08397f7c81d21c7f0c6330658ddeb44544799e6 GIT binary patch literal 9996 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-greek.woff2 b/assets/src/assets/fonts/roboto/normal-greek.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f630772d1010d173db182c0a7d6fa3f95da19972 GIT binary patch literal 7208 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 `#Ch{; zR=2LZcdm|J=ie3{xaPy`C6l_O>KJN2PTN0ai|q|I_un!yf{z9FUb8%N;^~6AB;_xj zD`tN5-qEmfx^qi=>bd{vchr{NedAVQQw^dUMFF!eC zc(;fr^WxLZCy!{fZx>tB_jB`Xzgv!-e^b|Y{n$Bw=KjAt^Y5Fals}%l=1tq%ndhFp zUGrs``m0s#bMEuC99zbeJR`H=p(d-O+zdQSe*OV_&%rUOvj4NE`m+l-Y@!a$C)m1@St7!}GfV!BU4?>L+K0}aUHhi4D-PeZlcD@)8{@s(``A{!j6QYcbV%O%pN7lQ z<=-rD+j*bo+Rj6T#eMTG)T%z(;c~r+L+x}~+l`fxmv$!KTJ85w^4{CiuZy3rtZCn3 zYxMnu6m#U?V+l9soLnJ)d9#u0YuSLtHCOrtyjx@@_}u25YU=Uh%yaY2hpn?^mF)^I zGRAQ(-RQBSD7ELO!KD$-Y?ypV3w{6RO+#U$= zdcDzFrC`=#5tUlKPUBlg&yU;FST9uTgt%_K6eAs(R@VQ3-FwT8Wt+~-k!srfEcbB8 z)b6&kw;KC4eH4#gbMD0_iAANcrdyZrOb)H=UHMDmkNbwywtSn#vwbC)J0h=?HLu~X zas0eEGBevZ^y!1F_4cI|TlYNsXIr$dd+*BLz5Z1t0WR;)-@7LE{+s#At-rW-Iks+2 zJaXe!(8>P1HER!E36E6^c=j@E*X55pUjA5XV1G4r;cg?_rMvGWJARXTYp^?6On#og zTfqww_g-nw6kD9Bpc;7iRiVA2?NSr<(1S1MO!U3t+r9eB90%cql`4tvwd)1^+?QR^ z`W%s~ct+jl`-0`OqI`;3>tFxnvO9C^$;9(&H;=_EJ=?kQVtJ_2QHPa_ESa_Pdykc$ zYGlaYAH9$_a)sC9FQPHV8j~XGrvCn2q_n=LN^Dwn^|R@fmCq;J?mh8j|MI1UQJab^ zVqf0g#kOyk#l&pZXZw!s3-t}_JmJkU)p^>>87ueyUK8=@>E%g96BnG@Ym?%(aYn!1^%j*I%eIL~ zyv&)g;kKcd>#Tha|8Cw%`1iX>)*vANS^im%wzd<@PJG{6*9pz5S^mmFXz})iJ6ley zmG?X0t+^^cTYIhC=_A(d3qohSie1Ha?DQ#iH|f&VFOw%ZC-au_tm|`JR#DwFyYci^ z-g`F=@)w0Tif(>q!ni)WkZ)n_Vx4m_bq87Oug`FhmI~Rt|AP5W!`oNG{vI$72(`D@ zVG~l}ynAa#rl1r@lckKRxGaCZalmh{T?Vt+j#@3hn4C68aI^UK!@8vfZMWDG1FhJs zRBJEmSDn0S>J_N=;nlagMH`bN`CcBq(4lVUw(ITLCW-IA-mKd1V$~8FQuy=Dl+wt# zFP`0(=x`M^PI|w0u0{j@rm()A;}fc1B(~TFe>h{Dqmwu1<bK1sDf4c73-i(y3E{_X#x?b0iGHqG7?fr|{cWN&`bGy0n%IqM!#xk`@ z7VQUXK9?k~?nw=<=FdO9JVL*@RHOWHV0Y(?&Pk55cV2(xT_CgP=#6`3K6*VnK8IPZHFC1t;IUk&{MXsf0veb3*S}BI zW}VKXm*bfFA;!z^NkN2SM+k^WpI zbKHd{uc>xTU3JgP_Jl;w^}ThD7ADUQx4tvws>MW!7w;C_56Qjy$@M=sd*n)n z;!wG5u7^G~^3*±G98-~1%MJa)OlvE0HvAxpJ>otHDbe%Xg1T;j3O{)ij;w(nl# z-`l)=^2IMl*6zN3NB;i1mD6tinDT6q+lS@pr$d}4^Z7{W%U!+NqvyU~UZ&C93k5513N>}sgo?h3x|5UNan$91e zr_7jaC%x#wqDN+q95oexo|m35Qhs_bpTVmy}zv zd}R}!?k@>;i}m3A%Jg_?t~C2;^>6Jvtj~Qg7B8yKx~+D=V`pvWfun`9?7NQ#AGhM0 zChk@oYqjIw(KXTYZe4SU;Oq^1|9a1^wR^rZz5Hs|r@iPzH3#>9hUnP}@z!fv=g;3e zcmICX@2omgrs~dU5%f9dR><<5XG88x=2U0P6;}5Btm3=sGtzoQemU9H?0FsN+#zkh z%<7NRk?)_wB_gbotu9+9ThEj{7yswU+$zD~*V+%_{pY4j?2wk8FE@YLm6y@7d$WzX$c;q>8*SWlH11r!eY~!HOR@a%Z5*CLJbD);_TCJgKVj11*viEQ7pyK_ ze^}@0$k28h4xhVOd2y5pZEnhFU#hLsLm-n%) z{gkS?;L7fbw@o<=|I(H<>1-+KT{hRHY5VymrPF?2vV!*YF5;dg5WDq_Z3%JnR0!%X@wL?xba5CE<5stHlE^DOdGxJM!hsm17*& z^dp$p{rN2saNWqgOkBZynP2g-dCorUX%ZrA+n1eVxbc147fW6r-VJXjZF=qgyfO2# z8t3vY&I=6cU(VO_{}FU}dy){B0pI-92UfZnU9}7Ne#0!Vv24;xOEx{t*(dffJn^{9 zwXiV4PwiPm;*{e3$h+Lc*-WX%GB(}BX=;WHSSoFdT)0>$G=kj$+slA>faaL8}1J{DD;a(m5s*__v9~Vw7 z^388aJ2Ro@18+0CR78Z@$=eNkSi^Vrw%zAn(i2tssycL{c4MUW9j@DcCk>h}PF`S_ zs{ZlK*0`^Vj`mLy=fAZ4VpGk%pngF^dBW=R+a7G&{IK)%9^IFW6$j0xpI^fK;^2}? z=YJ-6D*tgw2%NNA&9)`zMYof{(%7J-Gj}S62WU*-5i}BFdB@(^(XCefeqxEmqK~h3 z9d33?J+sO*de`7<7G*chi$FTHQ| z><2bs7gx^^5nj{7b1Nig>agJXzAdXujB$B74pvfHZl zEVRD~+OzM<%nD!kMD_houU`2WPuC+mzMMChwC>;PXQAJ-B1}!^KYRUWhGd_s^Zp}& z9gn|G^a@Bb-l5{Bo@|pk)s#IZ&U4ny=nFeIn-cZ~%v|A_e8p!~LU{H!&4&+-yAnc; z%|CB5^mBZuSgKII@asAuuFL)`p26znjZ$wCCx*Sz*sQVI+(B2QDnv8FG;UgsoR0hy z(Zz9>jT;Xg(b@WO1NSUTi)xSRK>dsz=LH|u^fxe0D!UnSwR>}t^O?Iv1$9b6!jA

v@iZb#3#GJ|?mHh=+DuS^9}ZGEMVu`@P?t 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 b/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7936b665b54003fab3aafced6d6ae16c751d3736 GIT binary patch literal 4896 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 + + + + \ No newline at end of file diff --git a/assets/src/components/Header.vue b/assets/src/components/Header.vue new file mode 100644 index 00000000..46a10b84 --- /dev/null +++ b/assets/src/components/Header.vue @@ -0,0 +1,220 @@ + + + diff --git a/assets/src/components/Languages.vue b/assets/src/components/Languages.vue new file mode 100644 index 00000000..e40a634d --- /dev/null +++ b/assets/src/components/Languages.vue @@ -0,0 +1,23 @@ + + + diff --git a/assets/src/components/Search.vue b/assets/src/components/Search.vue new file mode 100644 index 00000000..b5b434f3 --- /dev/null +++ b/assets/src/components/Search.vue @@ -0,0 +1,265 @@ + + + diff --git a/assets/src/components/Sidebar.vue b/assets/src/components/Sidebar.vue new file mode 100644 index 00000000..6c18d1c3 --- /dev/null +++ b/assets/src/components/Sidebar.vue @@ -0,0 +1,90 @@ + + + diff --git a/assets/src/components/buttons/Copy.vue b/assets/src/components/buttons/Copy.vue new file mode 100644 index 00000000..164cf347 --- /dev/null +++ b/assets/src/components/buttons/Copy.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Delete.vue b/assets/src/components/buttons/Delete.vue new file mode 100644 index 00000000..bb3c0fdf --- /dev/null +++ b/assets/src/components/buttons/Delete.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Download.vue b/assets/src/components/buttons/Download.vue new file mode 100644 index 00000000..bcef980b --- /dev/null +++ b/assets/src/components/buttons/Download.vue @@ -0,0 +1,39 @@ + + + diff --git a/assets/src/components/buttons/Info.vue b/assets/src/components/buttons/Info.vue new file mode 100644 index 00000000..164e59c9 --- /dev/null +++ b/assets/src/components/buttons/Info.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Move.vue b/assets/src/components/buttons/Move.vue new file mode 100644 index 00000000..5d9250f4 --- /dev/null +++ b/assets/src/components/buttons/Move.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Rename.vue b/assets/src/components/buttons/Rename.vue new file mode 100644 index 00000000..a2fd2cbf --- /dev/null +++ b/assets/src/components/buttons/Rename.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Schedule.vue b/assets/src/components/buttons/Schedule.vue new file mode 100644 index 00000000..0484d6bd --- /dev/null +++ b/assets/src/components/buttons/Schedule.vue @@ -0,0 +1,21 @@ + + + diff --git a/assets/src/components/buttons/Share.vue b/assets/src/components/buttons/Share.vue new file mode 100644 index 00000000..40c769f5 --- /dev/null +++ b/assets/src/components/buttons/Share.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/SwitchView.vue b/assets/src/components/buttons/SwitchView.vue new file mode 100644 index 00000000..bc954caa --- /dev/null +++ b/assets/src/components/buttons/SwitchView.vue @@ -0,0 +1,36 @@ + + + diff --git a/assets/src/components/buttons/Upload.vue b/assets/src/components/buttons/Upload.vue new file mode 100644 index 00000000..f5d738ad --- /dev/null +++ b/assets/src/components/buttons/Upload.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/files/Editor.vue b/assets/src/components/files/Editor.vue new file mode 100644 index 00000000..f0367f3a --- /dev/null +++ b/assets/src/components/files/Editor.vue @@ -0,0 +1,143 @@ + + + diff --git a/assets/src/components/files/Listing.vue b/assets/src/components/files/Listing.vue new file mode 100644 index 00000000..93fd3179 --- /dev/null +++ b/assets/src/components/files/Listing.vue @@ -0,0 +1,381 @@ + + + diff --git a/assets/src/components/files/ListingItem.vue b/assets/src/components/files/ListingItem.vue new file mode 100644 index 00000000..3217ee20 --- /dev/null +++ b/assets/src/components/files/ListingItem.vue @@ -0,0 +1,158 @@ + + + diff --git a/assets/src/components/files/Preview.vue b/assets/src/components/files/Preview.vue new file mode 100644 index 00000000..78aecc9a --- /dev/null +++ b/assets/src/components/files/Preview.vue @@ -0,0 +1,139 @@ + + + diff --git a/assets/src/components/prompts/Copy.vue b/assets/src/components/prompts/Copy.vue new file mode 100644 index 00000000..b1523d1c --- /dev/null +++ b/assets/src/components/prompts/Copy.vue @@ -0,0 +1,69 @@ + + + diff --git a/assets/src/components/prompts/Delete.vue b/assets/src/components/prompts/Delete.vue new file mode 100644 index 00000000..10d1fe80 --- /dev/null +++ b/assets/src/components/prompts/Delete.vue @@ -0,0 +1,80 @@ + + + diff --git a/assets/src/components/prompts/Download.vue b/assets/src/components/prompts/Download.vue new file mode 100644 index 00000000..6eb743b1 --- /dev/null +++ b/assets/src/components/prompts/Download.vue @@ -0,0 +1,47 @@ + + + diff --git a/assets/src/components/prompts/FileList.vue b/assets/src/components/prompts/FileList.vue new file mode 100644 index 00000000..15e9c538 --- /dev/null +++ b/assets/src/components/prompts/FileList.vue @@ -0,0 +1,140 @@ + + + diff --git a/assets/src/components/prompts/Help.vue b/assets/src/components/prompts/Help.vue new file mode 100644 index 00000000..95f983b8 --- /dev/null +++ b/assets/src/components/prompts/Help.vue @@ -0,0 +1,34 @@ + + + + diff --git a/assets/src/components/prompts/Info.vue b/assets/src/components/prompts/Info.vue new file mode 100644 index 00000000..f26450a6 --- /dev/null +++ b/assets/src/components/prompts/Info.vue @@ -0,0 +1,122 @@ + + + diff --git a/assets/src/components/prompts/Move.vue b/assets/src/components/prompts/Move.vue new file mode 100644 index 00000000..8df25dd8 --- /dev/null +++ b/assets/src/components/prompts/Move.vue @@ -0,0 +1,70 @@ + + + diff --git a/assets/src/components/prompts/NewArchetype.vue b/assets/src/components/prompts/NewArchetype.vue new file mode 100644 index 00000000..6ec99fb4 --- /dev/null +++ b/assets/src/components/prompts/NewArchetype.vue @@ -0,0 +1,76 @@ + + + + diff --git a/assets/src/components/prompts/NewDir.vue b/assets/src/components/prompts/NewDir.vue new file mode 100644 index 00000000..7730ad22 --- /dev/null +++ b/assets/src/components/prompts/NewDir.vue @@ -0,0 +1,60 @@ + + + + diff --git a/assets/src/components/prompts/NewFile.vue b/assets/src/components/prompts/NewFile.vue new file mode 100644 index 00000000..c7729b9c --- /dev/null +++ b/assets/src/components/prompts/NewFile.vue @@ -0,0 +1,61 @@ + + + + diff --git a/assets/src/components/prompts/Prompts.vue b/assets/src/components/prompts/Prompts.vue new file mode 100644 index 00000000..84bc4e12 --- /dev/null +++ b/assets/src/components/prompts/Prompts.vue @@ -0,0 +1,87 @@ + + + diff --git a/assets/src/components/prompts/Rename.vue b/assets/src/components/prompts/Rename.vue new file mode 100644 index 00000000..3c65b99b --- /dev/null +++ b/assets/src/components/prompts/Rename.vue @@ -0,0 +1,84 @@ + + + diff --git a/assets/src/components/prompts/Replace.vue b/assets/src/components/prompts/Replace.vue new file mode 100644 index 00000000..a310e9f4 --- /dev/null +++ b/assets/src/components/prompts/Replace.vue @@ -0,0 +1,31 @@ + + + diff --git a/assets/src/components/prompts/Schedule.vue b/assets/src/components/prompts/Schedule.vue new file mode 100644 index 00000000..fbb5b772 --- /dev/null +++ b/assets/src/components/prompts/Schedule.vue @@ -0,0 +1,47 @@ + + + + diff --git a/assets/src/components/prompts/Share.vue b/assets/src/components/prompts/Share.vue new file mode 100644 index 00000000..5408af6a --- /dev/null +++ b/assets/src/components/prompts/Share.vue @@ -0,0 +1,162 @@ + + + + diff --git a/assets/src/css/base.css b/assets/src/css/base.css new file mode 100644 index 00000000..c6eeaa79 --- /dev/null +++ b/assets/src/css/base.css @@ -0,0 +1,214 @@ +body { + font-family: 'Roboto', sans-serif; + padding-top: 4em; + background-color: #fafafa; + color: #333333; +} + +* { + box-sizing: border-box; +} + +*, +*:hover, +*:active, +*:focus { + outline: 0 +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; +} + +audio, +video { + width: 100%; +} + +pre { + padding: 1em; + border: 1px solid #e6e6e6; + border-radius: 0.5em; + background-color: #f5f5f5; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + word-wrap: break-word; +} + +input, +button { + outline: 0 !important; +} + +input[type="submit"], +button { + border: 0; + padding: .5em 1em; + margin-left: .5em; + border-radius: .1em; + cursor: pointer; + background: #2196f3; + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.05); + transition: .1s ease all; +} + +input[type="submit"]:hover, +button:hover { + background-color: #1E88E5; +} + +input[type="submit"].block, +button.block { + display: block; + width: 100%; + margin: 0 0 1em; +} + +button.delete { + background: #F44336; +} + +button.delete:hover { + background: #D32F2F; +} + +button.cancel { + background-color: #ECEFF1; + color: #37474F; +} + +button.cancel:hover { + background-color: #e9eaeb; +} + +button.flat, +input[type="submit"].flat { + color: #1E88E5; + background: transparent; + box-shadow: 0 0 0; + border: 0; + margin-left: 0; + text-transform: uppercase; +} + +button.flat:hover, +input[type="submit"].flat:hover { + background: rgba(0,0,0,0.05) +} + +button.flat.delete { + color: #F44336; +} + +button.flat.cancel { + color: #ccc; +} + +button.flat[disabled] { + color: #ccc; + cursor: not-allowed; +} + +.mobile-only { + display: none !important; +} + +.container { + width: 95%; + max-width: 960px; + margin: 1em auto 0; +} + +i.spin { + animation: 1s spin linear infinite; +} + +#app { + transition: .2s ease padding; +} + +#app.multiple { + padding-bottom: 4em; +} + +nav { + width: 16em; + position: fixed; + top: 4em; + left: 0; +} + +nav .action { + width: 100%; + display: block; + border-radius: 0; + font-size: 1.1em; + padding: .5em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +nav>div { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +nav .action>* { + vertical-align: middle; +} + +main { + min-height: 1em; + margin: 0 1em 1em auto; + width: calc(100% - 19em); +} + +#breadcrumbs { + height: 3em; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +#breadcrumbs span, +#breadcrumbs { + display: flex; + align-items: center; + color: #6f6f6f; +} + +#breadcrumbs a { + color: inherit; + transition: .1s ease-in; + border-radius: .125em; +} + +#breadcrumbs a:hover { + background-color: rgba(0,0,0, 0.05); +} + +#breadcrumbs span a { + padding: .2em; +} + +#progress { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 3px; + z-index: 9999999999; +} + +#progress div { + height: 100%; + background-color: #40c4ff; + width: 0; + transition: .2s ease width; +} diff --git a/assets/src/css/dashboard.css b/assets/src/css/dashboard.css new file mode 100644 index 00000000..dbb22548 --- /dev/null +++ b/assets/src/css/dashboard.css @@ -0,0 +1,420 @@ +.dashboard { + max-width: 600px; + margin: 1em 0; +} + +a { + color: inherit +} + +select, +textarea, +input[type="text"], +input[type="password"] { + padding: 0.5em 0; + line-height: 1; + display: block; + border: 0; + border-bottom: 1px solid #dddddd; + transition: .2s ease border; + width: 100%; + background: transparent; +} + +textarea { + line-height: 1.15; + padding: .5em; + border: 1px solid #ddd; + font-family: monospace; + min-height: 10em; + resize: none; + border-radius: 2px; +} + +.dashboard #locale, +.dashboard #username, +.dashboard #password, +.dashboard #scope { + max-width: 18em; +} + +.dashboard #locale { + margin-top: .5em; +} + +textarea:focus, +textarea:hover, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="text"]:hover, +input[type="password"]:hover { + border-color: #2979ff; +} + +input.red { + border-color: red; +} + +input.green { + border-color: green; +} + +.dashboard p label { + margin-bottom: .2em; + display: block; + font-size: .8em; + font-weight: 500; + color: rgba(0, 0, 0, 0.57); +} + +li code, +p code { + background: rgba(0, 0, 0, 0.05); + padding: .1em; + border-radius: .2em; +} + +.small { + font-size: .8em; + line-height: 1.5; +} + +.dashboard #nav { + list-style: none; + display: flex; + color: rgb(84, 110, 122); + font-weight: 500; + margin: 0 0 1em; + font-size: .8em; + text-align: center; + justify-content: space-between; + padding: 0; +} + +.dashboard #nav li { + width: 100%; + padding: 0 0 1em; + border-bottom: 2px solid rgba(0, 0, 0, 0.05); +} + +.dashboard #nav li.active { + border-color: #2196f3 +} + +.dashboard #nav i { + font-size: 1em; + vertical-align: middle; +} + +table { + border-collapse: collapse; + width: 100%; +} + +table tr { + border-bottom: 1px solid #ccc; +} + +table tr:last-child { + border: 0; +} + +table th { + font-weight: 500; + color: #757575; + text-align: left; +} + +table th, +table td { + padding: .5em 0; +} + +table td.small { + width: 1em; +} + +table tr>*:first-child { + padding-left: 1em; +} + +table tr>*:last-child { + padding-right: 1em; +} + +.card { + position: relative; + margin: .5rem 0 1rem 0; + background-color: #fff; + border-radius: 2px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); +} + +.card.floating { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 99999; + max-width: 25em; + width: 90%; + max-height: 95%; + z-index: 99999; + animation: .1s show forwards; +} + +.card>*>*:first-child { + margin-top: 0; +} + +.card>*>*:last-child { + margin-bottom: 0; +} + +.card .card-title { + padding: 1.5em 1em 1em; + display: flex; +} + +.card .card-title>*:first-child { + margin-right: auto; +} + +.card>div { + padding: 1em 1em; +} + +.card>div:first-child { + padding-top: 1.5em; +} + +.card>div:last-child { + padding-bottom: 1.5em; +} + +.card .card-title * { + margin: 0; +} + +.card .card-action { + text-align: right; +} + +.card .card-content.full { + padding-bottom: 0; +} + +.card h2 { + font-weight: 500; +} + +.card h3 { + color: rgba(0, 0, 0, 0.53); + font-size: 1em; + font-weight: 500; + margin: 2em 0 1em; +} + +.card-content table { + margin: 0 -1em; + width: calc(100% + 2em); +} + +.card code { + word-wrap: break-word; +} + +.card#download { + max-width: 15em; +} + +.card#share ul { + list-style: none; + padding: 0; + margin: 0; +} + +.card#share ul li { + display: flex; + justify-content: space-between; + align-items: center; +} + +.card#share ul li a { + color: #2196F3; + cursor: pointer; + margin-right: auto; +} + +.card#share ul li .action i { + font-size: 1em; +} + +.card#share ul li input, +.card#share ul li select { + padding: .2em; + margin-right: .5em; + border: 1px solid #dadada; +} + +.card#share .action.copy-clipboard::after { + content: 'Copied!'; + position: absolute; + left: -25%; + width: 150%; + font-size: .6em; + text-align: center; + background: #44a6f5; + color: #fff; + padding: .5em .2em; + border-radius: .4em; + top: -2em; + transition: .1s ease opacity; + opacity: 0; +} + +.card#share .action.copy-clipboard.active::after { + opacity: 1; +} + +.overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 9999; + animation: .1s show forwards; +} + + +/* * * * * * * * * * * * * * * * + * PROMPT - MOVE * + * * * * * * * * * * * * * * * */ + +.file-list { + max-height: 50vh; + overflow: auto; + list-style: none; + margin: 0; + padding: 0; + width: 100%; +} + +.file-list li { + width: 100%; + user-select: none; + border-radius: .2em; + padding: .3em; +} + +.file-list li[aria-selected=true] { + background: #2196f3 !important; + color: #fff !important; + transition: .1s ease all; +} + +.file-list li:hover { + background-color: #e9eaeb; + cursor: pointer; +} + +.file-list li:before { + content: "folder"; + color: #6f6f6f; + vertical-align: middle; + line-height: 1.4; + font-family: 'Material Icons'; + font-size: 1.75em; + margin-right: .25em; +} + +.file-list li[aria-selected=true]:before { + color: white; +} + +.help { + max-width: 24em; +} + +.help ul { + padding: 0; + margin: 1em 0; + list-style: none; +} + +@keyframes show { + 0% { + display: none; + opacity: 0; + } + 1% { + display: block; + opacity: 0; + } + 100% { + display: block; + opacity: 1; + } +} + +.collapsible { + border-top: 1px solid rgba(0,0,0,0.1); +} + +.collapsible:last-of-type { + border-bottom: 1px solid rgba(0,0,0,0.1); +} + +.collapsible > input { + display: none; +} + +.collapsible > label { + padding: 1em 0; + cursor: pointer; + border-right: 0; + border-left: 0; + display: flex; + justify-content: space-between; +} + +.collapsible > label * { + margin: 0; + color: rgba(0,0,0,0.57); +} + +.collapsible > label i { + transition: .2s ease transform; + user-select: none; +} + +.collapsible .collapse { + max-height: 0; + overflow: hidden; + transition: .2s ease all; +} + +.collapsible > input:checked ~ .collapse { + padding-top: 1em; + padding-bottom: 1em; + max-height: 20em; +} + +.collapsible > input:checked ~ label i { + transform: rotate(180deg) +} + +.card .collapsible { + width: calc(100% + 2em); + margin: 0 -1em; +} + +.card .collapsible > label { + padding: 1em; +} + +.card .collapsible .collapse { + padding: 0 1em; +} diff --git a/assets/src/css/editor.css b/assets/src/css/editor.css new file mode 100644 index 00000000..971bf423 --- /dev/null +++ b/assets/src/css/editor.css @@ -0,0 +1,184 @@ +@import "~codemirror/lib/codemirror.css"; +@import "~codemirror/theme/ttcn.css"; +#editor { + max-width: 800px; + margin: 0 auto; +} + +#editor .CodeMirror { + box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px; + margin: 2em 0; + border-radius: .5em; +} + +#editor h2 { + color: rgba(0, 0, 0, 0.3); + font-weight: 500; +} + +.CodeMirror { + height: auto; +} + +.markdown .CodeMirror { + padding: .75em; +} + +.cm-s-markdown .CodeMirror-gutter { + border-right: 1px solid #eff3f5; + padding-right: 5px; + margin-right: 15px; + min-width: 2.5em; + padding-bottom: 30px; +} + +.cm-s-markdown .CodeMirror-cursor { + border-right: 2px solid #667880; +} + +.cm-s-markdown .CodeMirror-lines { + margin: 0; +} + +.cm-s-markdown { + color: #3D494E; +} + +.cm-s-markdown span.cm-header { + color: #3D494E; + font-weight: bold; +} + +.cm-s-markdown span.cm-variable-2 { + color: #3D494E; +} + +.cm-s-markdown span.cm-meta { + color: #516066; +} + +.cm-s-markdown span.cm-hr { + color: #516066; +} + +.cm-s-markdown span.cm-comment { + color: #868f93; +} + +.cm-s-markdown span.cm-qualifier { + color: #868f93; +} + +.cm-s-markdown span.cm-number { + color: #197987; +} + +.cm-s-markdown span.cm-variable { + color: #197987; +} + +.cm-s-markdown span.cm-builtin { + color: #197987; +} + +.cm-s-markdown span.cm-link { + color: #197987; + text-decoration: underline; +} + +.cm-s-markdown span.cm-tag { + color: #197987; +} + +.cm-s-markdown span.cm-string { + color: #48abb9; +} + +.cm-s-markdown span.cm-string-2 { + color: #48abb9; +} + +.cm-s-markdown span.cm-quote { + color: #48abb9; +} + +.cm-s-markdown span.cm-atom { + color: #48abb9; +} + +.cm-s-markdown span.cm-property { + color: #82a367; +} + +.cm-s-markdown span.cm-operator { + color: #82a367; +} + +.cm-s-markdown span.cm-variable-3 { + color: #82a367; +} + +.cm-s-markdown span.cm-attribute { + color: #90bb74; +} + +.cm-s-markdown span.cm-def { + color: #90bb74; +} + +.cm-s-markdown span.cm-keyword { + color: #ec6c45; +} + +.cm-s-markdown span.cm-bracket { + color: #ec6c45; +} + +.cm-s-markdown span.cm-error { + color: #e45346; +} + +.cm-s-markdown span.cm-em { + font-style: italic; +} + +.cm-s-markdown span.cm-strong { + font-weight: bold; +} + +.cm-s-markdown .cm-header-1 { + font-size: 200%; + line-height: 200%; +} + +.cm-s-markdown .cm-header-2 { + font-size: 160%; + line-height: 160%; +} + +.cm-s-markdown .cm-header-3 { + font-size: 125%; + line-height: 125%; +} + +.cm-s-markdown .cm-header-4 { + font-size: 110%; + line-height: 110%; +} + +.cm-s-markdown .cm-comment { + background: rgba(0, 0, 0, .05); + border-radius: 2px; +} + +.cm-s-markdown .cm-link { + color: #7f8c8d; +} + +.cm-s-markdown .cm-url { + color: #aab2b3; +} + +.cm-s-markdown .cm-strikethrough { + text-decoration: line-through; +} diff --git a/assets/src/css/fonts.css b/assets/src/css/fonts.css new file mode 100644 index 00000000..f355f0e8 --- /dev/null +++ b/assets/src/css/fonts.css @@ -0,0 +1,137 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-cyrillic-ext.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-cyrillic.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-greek-ext.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-greek.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-vietnamese.woff2) format('woff2'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-latin-ext.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-latin.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-cyrillic-ext.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-cyrillic.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-greek-ext.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-greek.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-vietnamese.woff2) format('woff2'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-latin-ext.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-latin.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} + +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: local('Material Icons'), local('MaterialIcons-Regular'), url(../assets/fonts/material/icons.woff2) format('woff2'); +} + +.prompt .file-list ul li:before, +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: 'liga'; +} diff --git a/assets/src/css/header.css b/assets/src/css/header.css new file mode 100644 index 00000000..7d559daf --- /dev/null +++ b/assets/src/css/header.css @@ -0,0 +1,260 @@ +header { + z-index: 1000; + background-color: #fff; + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + position: fixed; + top: 0; + left: 0; + width: 100%; + padding: 0; + display: flex; +} + +header .overlay { + width: 0; + height: 0; +} + +header a, +header a:hover { + color: inherit; +} + +header>div:first-child>.action, +header img { + margin-right: 1em; +} + +header img { + height: 2.5em; +} + +header>div:first-child>.action { + display: none; +} + +header>div { + display: flex; + width: 100%; + padding: 0.5em 0.5em 0.5em 1em; + align-items: center; +} + +header .action span { + display: none; +} + +header>div div { + vertical-align: middle; + position: relative; +} + +header>div:last-child div { + display: flex; +} + +header>div:first-child { + height: 4em; +} + +header>div:last-child { + justify-content: flex-end; +} + +header .search-button { + display: none; +} + +#more { + display: none; +} + +#search { + position: relative; + height: 100%; + width: 100%; + max-width: 25em; +} + +#search.active { + position: fixed; + top: 0; + right: 0; + width: 100%; + max-width: 100%; + height: 100%; + z-index: 9999; +} + +#search #input { + background-color: #f5f5f5; + display: flex; + padding: 0.75em; + border-radius: 0.3em; + transition: .1s ease all; + align-items: center; + z-index: 2; +} + +#search.active #input { + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + background-color: #fff; + height: 4em; +} + +#search.active>div { + border-radius: 0 !important; +} + +#search.active i, +#search.active input { + color: #212121; +} + +#search #input>.action, +#search #input>i { + margin-right: 0.3em; + user-select: none; +} + +#search input { + width: 100%; + border: 0; + background-color: transparent; + line-height: 0; + padding: 0; +} + +#search #result { + visibility: visible; + max-height: none; + background-color: #f8f8f8; + text-align: left; + padding: 0; + color: rgba(0, 0, 0, 0.6); + height: 0; + transition: .1s ease height, .1s ease padding; + overflow-x: hidden; + overflow-y: auto; + z-index: 1; +} + +#search #result>div>*:first-child { + margin-top: 0; +} + +#search.active #result { + padding: .5em; + height: calc(100% - 4em); +} + +#search ul { + padding: 0; + margin: 0; + list-style: none; +} + +#search li { + margin-bottom: .5em; +} + +#search #result>div { + max-width: 45em; + margin: 0 auto; +} + +#search #result #renew { + width: 100%; + text-align: center; + display: none; + margin: 0; + max-width: none; +} + +#search.ongoing #result #renew { + display: block; +} + +#search.active #result i { + color: #ccc; +} + +#search.active #result>p>i { + text-align: center; + margin: 0 auto; + display: table; +} + +#search.active #result ul li a { + display: flex; + align-items: center; + padding: .3em 0; +} + +#search.active #result ul li a i { + margin-right: .3em; +} + +#search::-webkit-input-placeholder { + color: rgba(255, 255, 255, .5); +} + +#search:-moz-placeholder { + opacity: 1; + color: rgba(255, 255, 255, .5); +} + +#search::-moz-placeholder { + opacity: 1; + color: rgba(255, 255, 255, .5); +} + +#search:-ms-input-placeholder { + color: rgba(255, 255, 255, .5); +} + +#search .boxes { + border: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + background: #fff; + margin: 1em 0; +} + +#search .boxes h3 { + margin: 0; + font-weight: 500; + font-size: 1em; + color: #212121; + padding: .5em; +} + +#search .boxes>div { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-right: -1em; + margin-bottom: -1em; +} + +#search .boxes>div>div { + background: #2196F3; + color: #fff; + text-align: center; + width: 10em; + padding: 1em; + cursor: pointer; + margin-bottom: 1em; + margin-right: 1em; + flex-grow: 1; +} + +#search .boxes p { + margin: 1em 0 0; +} + +#search .boxes i { + color: #fff !important; + font-size: 3.5em; +} diff --git a/assets/src/css/listing.css b/assets/src/css/listing.css new file mode 100644 index 00000000..02bd8d9c --- /dev/null +++ b/assets/src/css/listing.css @@ -0,0 +1,237 @@ +#listing h2 { + margin: 0 0 0 0.5em; + font-size: .9em; + color: rgba(0, 0, 0, 0.38); + font-weight: 500; +} + +#listing .item div:last-of-type * { + text-overflow: ellipsis; + overflow: hidden; +} + +#listing>div { + display: flex; + padding: 0; + flex-wrap: wrap; + justify-content: flex-start; + position: relative; +} + +#listing .item { + background-color: #fff; + position: relative; + display: flex; + flex-wrap: nowrap; + color: #6f6f6f; + transition: .1s ease background, .1s ease opacity; + align-items: center; + cursor: pointer; +} + +#listing .item div:last-of-type { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +#listing .item p { + margin: 0; +} + +#listing .item .size, +#listing .item .modified { + font-size: 0.9em; +} + +#listing .item .name { + font-weight: bold; +} + +#listing .item i { + font-size: 4em; + margin-right: 0.1em; + vertical-align: bottom; +} + +.message { + text-align: center; + font-size: 2em; + margin: 1em auto; + display: block !important; + width: 95%; + color: rgba(0, 0, 0, 0.3); + font-weight: 500; +} + +.message i { + font-size: 2.5em; + margin-bottom: .2em; + display: block; +} + +#listing.mosaic { + padding-top: 1em; + margin: 0 -0.5em; +} + +#listing.mosaic .item { + width: calc(33% - 1em); + margin: .5em; + padding: 0.5em; + border-radius: 0.2em; + box-shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .12); +} + +#listing.mosaic .item:hover { + box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24) !important; +} + +#listing.mosaic .header { + display: none; +} + +#listing.mosaic .item div:first-of-type { + width: 5em; +} + +#listing.mosaic .item div:last-of-type { + width: calc(100% - 5vw); +} + +#listing.list { + flex-direction: column; + padding-top: 3.25em; + width: 100%; + max-width: 100%; + margin: 0; +} + +#listing.list .item { + width: 100%; + margin: 0; + border: 1px solid rgba(0, 0, 0, 0.1); + padding: 1em; + border-top: 0; +} + +#listing.list h2 { + display: none; +} + +#listing .item[aria-selected=true] { + background: #2196f3 !important; + color: #fff !important; +} + +#listing.list .item div:first-of-type { + width: 3em; +} + +#listing.list .item div:first-of-type i { + font-size: 2em; +} + +#listing.list .item div:last-of-type { + width: calc(100% - 3em); + display: flex; + align-items: center; +} + +#listing.list .item .name { + width: 50%; +} + +#listing.list .item .size { + width: 25%; +} + +#listing .item.header { + display: none !important; + background-color: #ccc; +} + +#listing.list .header i { + font-size: 1.5em; + vertical-align: middle; + margin-left: .2em; +} + +#listing.list .item.header { + display: flex !important; + background: #fafafa; + position: fixed; + width: calc(100% - 19em); + top: 7em; + right: 1em; + z-index: 999; + padding: .85em; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +#listing.list .item.header>div:first-child { + width: 0; +} + +#listing.list .item.header .name { + margin-right: 3em; +} + +#listing.list .header a { + color: inherit; +} + +#listing.list .item.header>div:first-child { + width: 0; +} + +#listing.list .name { + font-weight: normal; +} + +#listing.list .item.header .name { + margin-right: 3em; +} + +#listing.list .header span { + vertical-align: middle; +} + +#listing.list .header i { + opacity: 0; + transition: .1s ease all; +} + +#listing.list .header p:hover i, +#listing.list .header .active i { + opacity: 1; +} + +#listing.list .item.header .active { + font-weight: bold; +} + +#listing #multiple-selection { + position: fixed; + bottom: -4em; + left: 0; + z-index: 99999; + width: 100%; + background-color: #2196f3; + height: 4em; + display: flex !important; + padding: 0.5em 0.5em 0.5em 1em; + justify-content: space-between; + align-items: center; + transition: .2s ease bottom; +} + +#listing #multiple-selection.active { + bottom: 0; +} + +#listing #multiple-selection p, +#listing #multiple-selection i { + color: #fff; +} diff --git a/assets/src/css/login.css b/assets/src/css/login.css new file mode 100644 index 00000000..01788f0b --- /dev/null +++ b/assets/src/css/login.css @@ -0,0 +1,76 @@ +#login { + background: #fff; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +#login img { + width: 4em; + height: 4em; + margin: 0 auto; + display: block; +} + +#login h1 { + text-align: center; + font-size: 2.5em; + margin: .4em 0 .67em; +} + +#login form { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + max-width: 16em; + width: 90%; +} + +#login.recaptcha form { + min-width: 304px; +} + +#login #recaptcha { + margin: .5em 0 0; +} + +#login input { + width: 100%; + width: 100%; + margin: .5em 0 0; +} + +#login .wrong { + background: #F44336; + color: #fff; + padding: .5em; + text-align: center; + animation: .2s opac forwards; +} + +@keyframes opac { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +#login input[type="text"], +#login input[type="password"] { + padding: .5em 1em; + border: 1px solid #e9e9e9; + transition: .2s ease border; + color: #333; +} + +#login input[type="text"]:focus, +#login input[type="password"]:focus, +#login input[type="text"]:hover, +#login input[type="password"]:hover { + border-color: #9f9f9f; +} diff --git a/assets/src/css/mobile.css b/assets/src/css/mobile.css new file mode 100644 index 00000000..05d4d46b --- /dev/null +++ b/assets/src/css/mobile.css @@ -0,0 +1,113 @@ +@media (max-width: 1024px) { + nav { + width: 10em + } +} + +@media (max-width: 1024px) { + #listing.list .item.header, + main { + width: calc(100% - 13em) + } +} + +@media (max-width: 736px) { + #more { + display: inherit + } + header .overlay { + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.1); + } + #dropdown { + position: fixed; + top: 1em; + right: 1em; + display: block; + background-color: #fff; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + transform: scale(0); + transition: .1s ease-in-out transform; + transform-origin: top right; + z-index: 99999; + } + #dropdown > div { + display: block; + } + #dropdown.active { + transform: scale(1); + } + #dropdown .action { + display: flex; + align-items: center; + border-radius: 0; + width: 100%; + } + #dropdown .action span:not(.counter) { + display: inline-block; + padding: .4em; + } + #dropdown .counter { + left: 2.25em; + } + #file-selection { + position: fixed; + bottom: 1em; + left: 50%; + transform: translateX(-50%); + display: flex; + align-items: center; + background: #fff; + box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px; + width: 95%; + max-width: 20em; + } + #file-selection .action { + border-radius: 50%; + width: auto; + } + #file-selection > span { + display: inline-block; + margin-left: 1em; + color: #6f6f6f; + margin-right: auto; + } + nav { + top: 0; + z-index: 99999; + background: #fff; + height: 100%; + width: 16em; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + transition: .1s ease left; + left: -17em; + } + nav.active { + left: 0; + } + header .search-button, + header>div:first-child>.action { + display: inherit; + } + header img { + display: none; + } + #listing { + margin-bottom: 5em; + } + #listing.list .item.header, + main { + width: calc(100% - 2em); + } + main { + margin: 0 1em; + width: calc(100% - 2em); + } + #search { + display: none; + } + #search.active { + display: block; + } +} diff --git a/assets/src/css/styles.css b/assets/src/css/styles.css new file mode 100644 index 00000000..69335280 --- /dev/null +++ b/assets/src/css/styles.css @@ -0,0 +1,228 @@ +@import "~normalize.css/normalize.css"; +@import "~noty/lib/noty.css"; +@import "./fonts.css"; +@import "./base.css"; +@import "./header.css"; +@import "./listing.css"; +@import "./editor.css"; +@import "./dashboard.css"; +@import "./login.css"; + +/* * * * * * * * * * * * * * * * + * ACTION * + * * * * * * * * * * * * * * * */ + +.action { + display: inline-block; + cursor: pointer; + transition: 0.2s ease all; + border: 0; + margin: 0; + color: #546E7A; + border-radius: 50%; + background: transparent; + padding: 0; + box-shadow: none; + vertical-align: middle; + text-align: left; + position: relative; +} + +.action.disabled { + opacity: 0.2; + cursor: not-allowed; +} + +.action i { + padding: 0.4em; + transition: .1s ease-in-out all; + border-radius: 50%; +} + +.action:hover { + background-color: rgba(0, 0, 0, .1); +} + +.action ul { + position: absolute; + top: 0; + color: #7d7d7d; + list-style: none; + margin: 0; + padding: 0; + flex-direction: column; + display: flex; +} + +.action ul li { + line-height: 1; + padding: .7em; + transition: .1s ease background-color; +} + +.action ul li:hover { + background-color: rgba(0, 0, 0, 0.04); +} + +#click-overlay { + display: none; + position: fixed; + cursor: pointer; + top: 0; + left: 0; + height: 100%; + width: 100%; +} + +#click-overlay.active { + display: block; +} + +.action .counter { + display: block; + position: absolute; + bottom: 0; + right: 0; + background: #2196f3; + color: #fff; + border-radius: 50%; + font-size: .75em; + width: 1.5em; + height: 1.5em; + text-align: center; + line-height: 1.25em; + border: 2px solid white; +} + + +/* PREVIEWER */ + +#previewer { + background-color: rgba(0, 0, 0, 0.9); + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 9999; + overflow: hidden; +} + +#previewer .bar { + width: 100%; + text-align: right; + display: flex; + padding: 0.5em; + height: 3.7em; +} + +#previewer .action:first-of-type { + margin-right: auto; +} + +#previewer .action i { + color: #fff; +} + +#previewer .action:hover { + background-color: rgba(255, 255, 255, 0.3) +} + +#previewer .action span { + display: none; +} + +#previewer .preview { + margin: 2em auto 4em; + max-width: 80%; + text-align: center; + height: calc(100vh - 9.7em); +} + +#previewer .preview pre { + text-align: left; + overflow: auto; +} + +#previewer .preview pre, +#previewer .preview video, +#previewer .preview img { + max-height: 100%; + margin: 0; +} + +#previewer .pdf { + width: 100%; + height: 100%; +} + +#previewer h2.message { + color: rgba(255, 255, 255, 0.5) +} + +#previewer>button { + margin: 0; + position: fixed; + top: 50%; + transform: translateY(-50%); +} + +#previewer>button:first-of-type { + left: 0.5em; +} + +#previewer>button:last-of-type { + right: 0.5em; +} + + +/* * * * * * * * * * * * * * * * + * PROMPT * + * * * * * * * * * * * * * * * */ + +.noty_buttons { + text-align: right; + padding: 0 10px 10px !important; +} + +.noty_buttons button { + background: rgba(0, 0, 0, 0.05); + border: 1px solid rgba(0,0,0,0.1); + box-shadow: 0 0 0 0; + font-size: 14px; +} + +/* * * * * * * * * * * * * * * * + * FOOTER * + * * * * * * * * * * * * * * * */ + +.credits { + font-size: 0.6em; + margin: 3em 2.5em; + color: #a5a5a5; +} + +.credits span { + display: block; + margin: .3em 0; +} + +.credits a, +.credits a:hover { + color: inherit; + cursor: pointer; +} + + +/* * * * * * * * * * * * * * * * + * ANIMATIONS * + * * * * * * * * * * * * * * * */ + +@keyframes spin { + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} + +@import './mobile.css'; diff --git a/assets/src/i18n/en.yaml b/assets/src/i18n/en.yaml new file mode 100644 index 00000000..1b3ec70e --- /dev/null +++ b/assets/src/i18n/en.yaml @@ -0,0 +1,201 @@ +permanent: Permanent +buttons: + cancel: Cancel + close: Close + copy: Copy + copyFile: Copy file + copyToClipboard: Copy to clipboard + create: Create + delete: Delete + download: Download + info: Info + more: More + move: Move + moveFile: Move file + new: New + next: Next + ok: OK + replace: Replace + previous: Previous + rename: Rename + reportIssue: Report Issue + save: Save + search: Search + select: Select + share: Share + publish: Publish + selectMultiple: Select multiple + schedule: Schedule + switchView: Switch view + toggleSidebar: Toggle sidebar + update: Update + upload: Upload + permalink: Get Permanent Link +success: + linkCopied: Link copied! +errors: + forbidden: You're not welcome here. + internal: Something really went wrong. + notFound: This location can't be reached. +files: + folders: Folders + files: Files + body: Body + clear: Clear + closePreview: Close preview + home: Home + lastModified: Last modified + loading: Loading... + lonely: It feels lonely here... + metadata: Metadata + multipleSelectionEnabled: Multiple selection enabled + name: Name + size: Size + sortByName: Sort by name + sortBySize: Sort by size + sortByLastModified: Sort by last modified +help: + click: select file or directory + ctrl: + click: select multiple files or directories + f: opens search + s: save a file or download the directory where you are + del: delete selected items + doubleClick: open a file or directory + esc: clear selection and/or close the prompt + f1: this information + f2: rename file + help: Help +login: + password: Password + submit: Login + username: Username + wrongCredentials: Wrong credentials +prompts: + copy: Copy + copyMessage: 'Choose the place to copy your files:' + currentlyNavigating: 'Currently navigating on:' + deleteMessageMultiple: Are you sure you want to delete {count} file(s)? + deleteMessageSingle: Are you sure you want to delete this file/folder? + deleteTitle: Delete files + displayName: 'Display Name:' + download: Download files + downloadMessage: Choose the format you want to download. + error: Something went wrong + fileInfo: File information + filesSelected: "{count} files selected." + lastModified: Last Modified + move: Move + moveMessage: 'Choose new house for your file(s)/folder(s):' + newDir: New directory + newDirMessage: Write the name of the new directory. + newFile: New file + newFileMessage: Write the name of the new file. + numberDirs: Number of directories + numberFiles: Number of files + replace: Replace + replaceMessage: > + One of the files you're trying to upload is conflicting because of its name. + Do you wish to replace the existing one? + rename: Rename + renameMessage: Insert a new name for + show: Show + size: Size + schedule: Schedule + scheduleMessage: Pick a date and time to schedule the publication of this post. + newArchetype: Create a new post based on an archetype. Your file will be created on content folder. +settings: + admin: Admin + administrator: Administrator + allowCommands: Execute commands + allowEdit: Edit, rename and delete files or directories + allowNew: Create new files and directories + allowPublish: Publish new posts and pages + avoidChanges: "(leave blank to avoid changes)" + changePassword: Change Password + commands: Commands + commandsHelp: > + Here you can set commands that are executed in the named events. You + write one command per line. If the event is related to files, such as before and + after saving, the environment variable "FILE" will be available with the path + of the file. + commandsUpdated: Commands updated! + customStylesheet: Custom Stylesheet + examples: Examples + globalSettings: Global Settings + language: Language + lockPassword: Prevent the user from changing the password + newPassword: Your new password + newPasswordConfirm: Confirm your new password + newUser: New User + password: Password + passwordUpdated: Password updated! + permissions: Permissions + permissionsHelp: > + You can set the user to be an administrator or choose the permissions + individually. If you select "Administrator", all of the other options will be + automatically checked. The management of users remains a privilege of an administrator. + profileSettings: Profile Settings + ruleExample1: > + prevents the access to any dot file (such as .git, .gitignore) in + every folder. + ruleExample2: blocks the access to the file named Caddyfile on the root of the scope. + rules: Rules + rulesHelp1: > + Here you can define a set of allow and disallow rules for this specific + user. The blocked files won't show up in the listings and they wont be accessible + to the user. We support regex and paths relative to the users scope. + rulesHelp2: > + Each rule goes in one different line and must start with the keyword + {0} or {1}. Then you should write {2} if you are using a regular expression and + then the expression or the path. + scope: Scope + settingsUpdated: Settings updated! + user: User + userCommands: Commands + userCommandsHelp: > + A space separated list with the available commands for this user. + Example: + userCreated: User created! + userDeleted: User deleted! + userManagement: User Management + username: Username + users: Users + userUpdated: User updated! +sidebar: + help: Help + logout: Logout + myFiles: My files + newFile: New file + newFolder: New folder + settings: Settings + siteSettings: Site Settings + hugoNew: Hugo New + preview: Preview +search: + images: Images + music: Music + pdf: PDF + pressToExecute: Press enter to execute. + pressToSearch: Press enter to search. + search: Search... + searchOrCommand: Search or execute a command... + searchOrSupportedCommand: 'Search or use one of your supported commands:' + type: Type and press enter to search. + types: Types + video: Video + writeToSearch: Write here to search +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: Time Unit + seconds: Seconds + minutes: Minutes + hours: Hours + days: Days diff --git a/assets/src/i18n/es.yaml b/assets/src/i18n/es.yaml new file mode 100644 index 00000000..78e875f1 --- /dev/null +++ b/assets/src/i18n/es.yaml @@ -0,0 +1,202 @@ +permanent: Permanente +buttons: + cancel: Cancelar + close: Cerrar + copy: Copiar + copyFile: Copiar archivo + copyToClipboard: Copiar al portapapeles + create: Crear + delete: Borrar + download: Descargar + info: Info + more: Más + move: Mover + moveFile: Mover archivo + new: Nuevo + next: Siguiente + ok: OK + replace: Reemplazar + previous: Anterior + rename: Renombrar + reportIssue: Reportar problema + save: Guardar + search: Buscar + select: Seleccionar + share: Compartir + publish: Publicar + selectMultiple: Selección múltiple + schedule: Programar + switchView: Cambiar vista + toggleSidebar: Mostrar/Ocultar menú + update: Actualizar + upload: Subir + permalink: Link permanente +success: + linkCopied: ¡Link copiado! +errors: + forbidden: No eres bienvenido aquí. + internal: La verdad es que algo ha ido mal. + notFound: No se puede acceder a este lugar. +files: + folders: Carpetas + files: Archivos + body: Cuerpo + clear: Limpiar + closePreview: Cerrar vista previa + home: Inicio + lastModified: Última modificación + loading: Cargando... + lonely: Uno se siente muy sólo aquí... + metadata: Metadatos + multipleSelectionEnabled: Selección múltiple activada + name: Nombre + size: Tamaño + sortByName: Ordenar por nombre + sortBySize: Ordenar por tamaño + sortByLastModified: Ordenar por última modificación +help: + click: seleccionar archivo o carpeta + ctrl: + click: seleccionar múltiples archivos o carpetas + f: abre la búsqueda + s: guarda un archivo o lo descarga a la carpeta en la que estás + del: elimina los items seleccionados + doubleClick: abre un archivo o carpeta + esc: limpia la selección y/o cierra la ventana + f1: esta información + f2: renombrar archivo + help: Ayuda +login: + password: Contraseña + submit: Iniciar sesión + username: Usuario + wrongCredentials: Usuario y/o contraseña incorrectos +prompts: + copy: Copiar + copyMessage: 'Elige el lugar donde quieres copiar tus archivos:' + currentlyNavigating: 'Actualmente estás en:' + deleteMessageMultiple: ¿Estás seguro que quieres eliminar {count} archivo(s)? + deleteMessageSingle: ¿Estás seguro que quieres eliminar este archivo/carpeta? + deleteTitle: Borrar archivos + displayName: 'Nombre:' + download: Descargar archivos + downloadMessage: Elige el formato de descarga. + error: Algo ha fallado + fileInfo: Información del archivo + filesSelected: "{count} archivos seleccionados." + lastModified: Última modificación + move: Mover + moveMessage: 'Elige una nueva casa para tus archivo(s)/carpeta(s):' + newDir: Nueva carpeta + newDirMessage: Escribe el nombre de la nueva carpeta. + newFile: Nuevo archivo + newFileMessage: Escribe el nombre del nuevo archivo. + numberDirs: Número de carpetas + numberFiles: Número de archivos + replace: Reemplazar + replaceMessage: > + Uno de los archivos ue intentas subir está creando conflicto por su nombre. + ¿Quieres cambiar el nombre del ya existente? + rename: Renombrar + renameMessage: Escribe el nuevo nombre para + show: Mostrar + size: Tamaño + schedule: Programar + scheduleMessage: Elige una hora y fecha para programar la publicación de este post. + newArchetype: Crea un nuevo post basado en un arquetipo. Tu archivo será creado en la carpeta de contenido. +settings: + admin: Admin + administrator: Administrador + allowCommands: Ejecutar comandos + allowEdit: Editar, renombrar y borrar archivos o carpetas + allowNew: Crear nuevos archivos y carpetas + allowPublish: Publicar nuevos posts y páginas + avoidChanges: "(dejar en blanco para evitar cambios)" + changePassword: Cambiar contraseña + commands: Comandos + commandsHelp: > + Aquí puedes crear comandos que serán ejecutados en los eventos. Debes + escribir un comando por linea. Si el evento está relacionado con archivos, como + por ejemplo, antes y después de guardar, la variable de entorno "FILE" estará + disponible en la ruta del archivo. + commandsUpdated: ¡Comandos actualizados! + customStylesheet: Modificar hoja de estilos + examples: Ejemplos + globalSettings: Ajustes globales + language: Idioma + lockPassword: Evitar que el usuario cambie la contraseña + newPassword: Tu nueva contraseña + newPasswordConfirm: Confirma tu contraseña + newUser: Nuevo usuario + password: Contraseña + passwordUpdated: ¡Contraseña actualizada! + permissions: Permisos + permissionsHelp: > + Puedes nombrar al usuario como administrador o elegir los permisos + individualmente. Si seleccionas "Administrador", todas las otras opciones + serán activadas automáticamente. La administración de usuarios es un privilegio de administrador. + profileSettings: Ajustes del perfil + ruleExample1: > + previene el acceso a una extensión de archivo (Como .git) en + cada carpeta. + ruleExample2: bloquea el acceso al archivo llamado Caddyfile en la carpeta raíz. + rules: Reglas + rulesHelp1: > + Aquí puedes definir un conjunto de reglas de permisos para este usuario + específico. Los archivos bloqueados no se mostrarán en las listas y no serán accesibles + por el usuario. Puedes utilizar regex y rutas relativas a la raíz del usuario. + rulesHelp2: > + Cada regla va en una línea diferente, y debe comenzar con la palabra clave + {0} or {1}. Entonces, debes escribir {2} si estás usando una expresión regular (REGEX) y + luego la expresión o la ruta. + scope: Raíz + settingsUpdated: ¡Ajustes actualizados! + user: Usuario + userCommands: Comandos + userCommandsHelp: > + Una lista separada por espacios con los comandos permitidos para este usuario. + Ejemplo: + userCreated: ¡Usuario creado! + userDeleted: ¡Usuario eliminado! + userManagement: Administración de usuarios + username: Usuario + users: Usuarios + userUpdated: ¡Usuario actualizado! +sidebar: + help: Ayuda + logout: Cerrar sesión + myFiles: Mis archivos + newFile: Nuevo archivo + newFolder: Nueva carpeta + settings: Ajustes + siteSettings: Ajustes del sitio + hugoNew: Nuevo Hugo + preview: Vista previa +search: + images: Images + music: Música + pdf: PDF + pressToExecute: Presiona enter para ejecutar. + pressToSearch: Presiona enter para buscar. + search: Buscar... + searchOrCommand: Buscar o ejecutar un comando... + searchOrSupportedCommand: 'Buscar o ejecutar uno de los comandos soportados:' + type: Escribe y presiona enter para buscar. + types: Tipos + video: Vídeo + writeToSearch: Escribe aquí para buscar +languages: + en: English + fr: Français + pt: Português + es: Español + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + +time: + unit: Unidad + seconds: Segundos + minutes: Minutos + hours: Horas + days: Días diff --git a/assets/src/i18n/fr.yaml b/assets/src/i18n/fr.yaml new file mode 100644 index 00000000..5d94d5a7 --- /dev/null +++ b/assets/src/i18n/fr.yaml @@ -0,0 +1,194 @@ +permanent: Permanent +buttons: + cancel: Annuler + close: Fermer + copy: Copier + copyFile: Copier le fichier + copyToClipboard: Copier dans le presse-papier + create: Créer + delete: Supprimer + download: Télécharger + info: Info + more: Plus + move: Déplacer + moveFile: Déplacer le fichier + new: Nouveau + next: Suivant + ok: OK + replace: Remplacer + previous: Précédent + rename: Renommer + reportIssue: Rapport d'erreur + save: Enregistrer + search: Chercher + select: Sélectionner + share: Partager + publish: Publier + selectMultiple: Sélection multiple + schedule: Fixer la date + switchView: Changer le mode d'affichage + toggleSidebar: Afficher/Masquer la barre latérale + update: Mettre à jour + upload: Importer + permalink: Obtenir un lien permanent +errors: + forbidden: Vous n'êtes pas autorisé à être ici. + internal: Aïe ! Quelque chose s'est mal passé. + notFound: Impossible d'accéder à cet emplacement. +files: + folders: Dossiers + files: Fichiers + body: Corps + clear: Fermer + closePreview: Fermer la prévisualisation + home: Accueil + lastModified: Dernière modification + loading: Chargement... + lonely: Il semble qu'il n'y ai rien par ici... + metadata: Metadonnées + multipleSelectionEnabled: Sélection multiple activée + name: Nom + size: Taille + sortByName: Trier par nom + sortBySize: Trier par taille + sortByLastModified: Trier par date de dernière modification +help: + click: Sélectionner un élément + ctrl: + click: Sélectionner plusieurs éléments + f: Ouvrir l'invité de recherche + s: Télécharger l'élément actuel + del: Supprimer les éléments sélectionnés + doubleClick: Ouvrir un élément + esc: Désélectionner et/ou fermer la boîte de dialogue + f1: Ouvrir l'aide + f2: Renommer le fichier + help: Aide +login: + password: Mot de passe + submit: Se connecter + username: Utilisateur + wrongCredentials: Identifiants incorrects ! +prompts: + copy: Copier + copyMessage: 'Choisissez l''emplacement où copier la sélection :' + currentlyNavigating: 'Dossier courant :' + deleteMessageMultiple: Etes-vous sûr de vouloir supprimer ces {count} élément(s) ? + deleteMessageSingle: Etes-vous sûr de vouloir supprimer cet élément ? + deleteTitle: Supprimer + displayName: 'Nom :' + download: Télécharger + downloadMessage: 'Choisissez le format de téléchargement :' + error: Quelque chose s'est mal passé + fileInfo: Informations + filesSelected: "{count} éléments sélectionnés" + lastModified: Dernière modification + move: Déplacer + moveMessage: 'Choisissez l''emplacement où déplacer la sélection :' + newDir: Nouveau dossier + newDirMessage: 'Nom du nouveau dossier :' + newFile: Nouveau fichier + newFileMessage: 'Nom du nouveau fichier :' + numberDirs: Nombre de dossiers + numberFiles: Nombre de fichiers + replace: Remplacer + replaceMessage: > + Un des fichiers que vous êtes en train d'importer a le même nom qu'un autre déjà présent. + Voulez-vous remplacer le fichier actuel par le nouveau ? + rename: Renommer + renameMessage: Nouveau nom pour + show: Montrer + size: Taille + schedule: Fixer la date + scheduleMessage: Choisissez une date pour planifier la publication de ce post + newArchetype: Créer un nouveau post basé sur un archétype. Votre fichier sera créé dans le dossier de contenu. +settings: + admin: Admin + administrator: Administrateur + allowCommands: Exécuter des commandes + allowEdit: Editer, renommer et supprimer des fichiers ou des dossiers + allowNew: Créer de nouveaux fichiers et dossiers + allowPublish: Publier de nouveaux posts et pages + avoidChanges: "(Laisser vide pour conserver l'actuel)" + changePassword: Modifier le mot de passe + commands: Commandes + commandsHelp: > + Ici vous pouvez définir des commandes qui seront exécutées lors de l'évènement correspondant. + Vous devez indiquer une commande par ligne. Si l'évènement est en rapport avec des fichiers, + par exemple avant et après enregistrement, la variable d'environement "FILE" sera disponible + et contiendra le chemin d'accès vers le fichier. + commandsUpdated: Commandes mises à jour ! + customStylesheet: Feuille de style personnalisée + examples: Exemples + globalSettings: Paramètres généraux + language: Langue + newPassword: Votre nouveau mot de passe + newPasswordConfirm: Confirmation du nouveau mot de passe + newUser: Nouvel Utilisateur + password: Mot de passe + passwordUpdated: Mot de passe mis à jour ! + permissions: Permissions + permissionsHelp: > + Vous pouvez définir l'utilisateur comme étant un administrateur ou encore choisir les + permissions individuellement. Si vous sélectionnez "Administrateur", toutes les autres + options seront automatiquement activées. La gestion des utilisateurs est un privilège que + seul l'administrateur possède. + profileSettings: Paramètres du profil + ruleExample1: Bloque l'accès à tous les fichiers commençant par un point (comme par exemple .git, .gitignore) dans tous les dossiers + ruleExample2: Bloque l'accès au fichier nommé "Caddyfile" à la racine du dossier utilisateur + rules: Règles + rulesHelp1: > + Vous pouvez définir ici un ensemble de règles pour cet utilisateur. + Les fichiers bloqués ne seront pas affichés et ne seront pas accessibles par l'utilisateur. + Les expressions régulières sont supportées et les chemins d'accès sont relatifs par rapport au dossier de l'utilisateur. + rulesHelp2: > + Chaque règle est définie sur une ligne différente et doit commencer par le mot clé {0} ou {1}. + Vous devez ensuite ajouter {2} si vous utilisez une expression régulière puis l'expression en question ou bien seulement le chemin d'accès. + scope: Portée du dossier utilisateur + settingsUpdated: Les paramètres ont été mis à jour ! + user: Utilisateur + userCommands: Commandes + userCommandsHelp: 'Une liste séparée par des espaces des commandes permises pour l''utilisateur. Exemple :' + userCreated: Utilisateur créé ! + userDeleted: Utilisateur supprimé ! + userManagement: Gestion des utilisateurs + username: Nom d'utilisateur + users: Utilisateurs + userUpdated: Utilisateur mis à jour ! +sidebar: + help: Aide + logout: Se déconnecter + myFiles: Mes fichiers + newFile: Nouveau fichier + newFolder: Nouveau dossier + settings: Paramètres + siteSettings: Paramètres du site + hugoNew: Nouveau Hugo + preview: Prévisualiser +search: + images: Images + music: Musique + pdf: PDF + pressToExecute: Appuyez sur Entrée pour exécuter + pressToSearch: Appuyez sur Entrée pour lancer la recherche + search: Recherche en cours... + searchOrCommand: Rechercher ou exécuter une commande... + searchOrSupportedCommand: 'Lancez une recherche ou exécutez une commande parmis les suivantes :' + type: Tapez votre recherche et appuyez sur Entrée + types: Types + video: Video + writeToSearch: Ecrivez ici pour lancer une recherche +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: Unité de temps + seconds: Secondes + minutes: Minutes + hours: Heures + days: Jours diff --git a/assets/src/i18n/index.js b/assets/src/i18n/index.js new file mode 100644 index 00000000..7ce5ffe5 --- /dev/null +++ b/assets/src/i18n/index.js @@ -0,0 +1,61 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import en from './en.yaml' +import fr from './fr.yaml' +import pt from './pt.yaml' +import ja from './ja.yaml' +import zhCN from './zh-cn.yaml' +import zhTW from './zh-tw.yaml' +import es from './es.yaml' + +Vue.use(VueI18n) + +export function detectLocale () { + let locale = (navigator.language || navigator.browserLangugae).toLowerCase() + switch (true) { + case /^en.*/i.test(locale): + locale = 'en' + break + case /^fr.*/i.test(locale): + locale = 'fr' + break + case /^pt.*/i.test(locale): + locale = 'pt' + break + case /^ja.*/i.test(locale): + locale = 'ja' + break + case /^zh-CN/i.test(locale): + locale = 'zh-cn' + break + case /^zh-TW/i.test(locale): + locale = 'zh-tw' + break + case /^zh.*/i.test(locale): + locale = 'zh-cn' + break + case /^es.*/i.test(locale): + locale = 'es' + break + default: + locale = 'en' + } + + return locale +} + +const i18n = new VueI18n({ + locale: detectLocale(), + fallbackLocale: 'en', + messages: { + 'en': en, + 'fr': fr, + 'pt': pt, + 'ja': ja, + 'zh-cn': zhCN, + 'zh-tw': zhTW, + 'es': es + } +}) + +export default i18n diff --git a/assets/src/i18n/ja.yaml b/assets/src/i18n/ja.yaml new file mode 100644 index 00000000..c3d7f3a5 --- /dev/null +++ b/assets/src/i18n/ja.yaml @@ -0,0 +1,201 @@ +permanent: 永久 +buttons: + cancel: キャンセル + close: 閉じる + copy: コピー + copyFile: ファイルをコピー + copyToClipboard: クリップボードにコピー + create: 作成 + delete: 削除 + download: ダウンロード + info: 情報 + more: More + move: 移動 + moveFile: ファイルを移動 + new: 新規 + next: 次 + ok: OK + replace: 置き換える + previous: 前 + rename: 名前を変更 + reportIssue: 問題を報告 + save: 保存 + search: 検索 + select: 選択 + share: シェア + publish: 発表 + selectMultiple: 複数選択 + schedule: スケジュール + switchView: 表示を切り替わる + toggleSidebar: サイドバーを表示する + update: 更新 + upload: アップロード + permalink: 固定リンク +success: + linkCopied: リンクがコピーされました! +errors: + forbidden: アクセスが拒否されました。 + internal: 内部エラーが発生しました。 + notFound: リソースが見つからなりませんでした。 +files: + folders: フォルダ + files: ファイル + body: 本文 + clear: クリアー + closePreview: プレビューを閉じる + home: ホーム + lastModified: 最終変更 + loading: ローディング... + lonely: ここには何もない... + metadata: メタデータ + multipleSelectionEnabled: 複数選択有効 + name: 名前 + size: サイズ + sortByName: 名前によるソート + sortBySize: サイズによるソート + sortByLastModified: 最終変更日付によるソート +help: + click: ファイルやディレクトリを選択 + ctrl: + click: 複数のファイルやディレクトリを選択 + f: 検索を有効にする + s: ファイルを保存またはカレントディレクトリをダウンロード + del: 選択した項目を削除 + doubleClick: ファイルやディレクトリをオープン + esc: 選択をクリアーまたはプロンプトを閉じる + f1: このヘルプを表示 + f2: ファイルの名前を変更 + help: ヘルプ +login: + password: パスワード + submit: ログイン + username: ユーザ名 + wrongCredentials: ユーザ名またはパスワードが間違っています。 +prompts: + copy: コピー + copyMessage: コピーの目標ディレクトリを選択してください: + currentlyNavigating: 現在閲覧しているディレクトリ: + deleteMessageMultiple: '{count} つのファイルを本当に削除してよろしいですか。' + deleteMessageSingle: このファイル/フォルダを本当に削除してよろしいですか。 + deleteTitle: ファイルを削除 + displayName: 名前: + download: ファイルをダウンロード + downloadMessage: 圧縮形式を選択してください。 + error: あるエラーが発生しました。 + fileInfo: ファイル情報 + filesSelected: '{count} つのファイルは選択されました。' + lastModified: 最終変更 + move: 移動 + moveMessage: 移動の目標ディレクトリを選択してください: + newDir: 新しいディレクトリを作成 + newDirMessage: 新しいディレクトリの名前を入力してください。 + newFile: 新しいファイルを作成 + newFileMessage: 新しいファイルの名前を入力してください。 + numberDirs: ディレクトリ個数 + numberFiles: ファイル個数 + replace: 置き換える + replaceMessage: > + アップロードするファイルの中でかち合う名前が一つあります。 + 既存のファイルを置き換えりませんか。 + rename: 名前を変更 + renameMessage: 名前を変更しようファイルは: + show: 表示 + size: サイズ + schedule: スケジュール + scheduleMessage: このポストの発表日付をスケジュールしてください。 + newArchetype: ある元型に基づいて新しいポストを作成します。ファイルは コンテンツフォルダに作成されます。 +settings: + admin: 管理者 + administrator: 管理者 + allowCommands: コマンドの実行 + allowEdit: ファイルやディレクトリの編集、名前変更と削除 + allowNew: ファイルとディレクトリの作成 + allowPublish: ポストとぺーじの発表 + avoidChanges: "(変更を避けるために空白にしてください)" + changePassword: パスワードを変更 + commands: コマンド + commandsHelp: "\ + ここで、名前付きイベントに実行するコマンドを設定することができます。\ + 一行にコマンド一つを入力してください。\ + イベントはファイルに関連する場合、例えばファイル保存の前にまたは後で、\ + 環境変数 FILE はファイルのパスに割り当てられます。" + commandsUpdated: コマンドは更新されました! + customStylesheet: カスタムスタイルシ ート + examples: 例 + globalSettings: グローバル設定 + language: 言語 + lockPassword: 新しいパスワードを変更に禁止 + newPassword: 新しいパスワード + newPasswordConfirm: 新しいパスワードを確認します + newUser: 新しいユーザー + password: パスワード + passwordUpdated: パスワードは更新されました! + permissions: 権限 + permissionsHelp: "\ + あなたはユーザーを管理者に設定し、または権限を個々に設定しできます。\ + \"管理者\"を選択する場合、その他のすべての選択肢は自動的に設定されます。\ + ユーザーの管理は管理者の権限として保留されました。" + profileSettings: プロファイル設定 + ruleExample1: "\ + 各フォルダに名前はドットで始まるファイル(例えば、.git、.gitignore)\ + へのアクセスを制限します。" + ruleExample2: 範囲のルートパスに名前は Caddyfile のファイルへのアクセスを制限します。 + rules: 規則 + rulesHelp1: "\ + ここに、あなたはこのユーザーの許可または拒否規則を設定できます。\ + ブロックされたファイルはリストに表示されません、それではアクセスも制限されます。\ + 正規表現(regex)のサポートと範囲に相対のパスが提供されています。" + rulesHelp2: "\ + 一行に規則一つを入力してください、\ + その間に規則はキーワード {0} や {1} で始める必要があります。\ + そして正規表現を使う場合、{2} と入力し、表現やパスを入力してください。" + scope: 範囲 + settingsUpdated: 設定は更新されました! + user: ユーザー + userCommands: ユーザーのコマンド + userCommandsHelp: "\ + 空白区切りの有効のコマンドのリストを指定してください。\ + 例:" + userCreated: ユーザーは作成されました! + userDeleted: ユーザーは削除されました! + userManagement: ユーザー管理 + username: ユーザー名 + users: ユーザー + userUpdated: ユーザーは更新されました! +sidebar: + help: ヘルプ + logout: ログアウト + myFiles: 私のファイル + newFile: 新しいファイルを作成 + newFolder: 新しいフォルダを作成 + settings: 設定 + siteSettings: サイト設定 + hugoNew: Hugo New + preview: プレビュー +search: + images: 画像 + music: 音楽 + pdf: PDF + pressToExecute: Enter を押して実行します。 + pressToSearch: Enter を押して検索します。 + search: 検索... + searchOrCommand: コマンドを検索または実行します。 + searchOrSupportedCommand: サポートしているコマンドを検索または実行します: + type: キーワードを入力し、Enter を押して検索します。 + types: 種類 + video: ビデオ + writeToSearch: ここにキーワードを入力してください +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 時間単位 + seconds: 秒 + minutes: 分 + hours: 時間 + days: 日 diff --git a/assets/src/i18n/pt.yaml b/assets/src/i18n/pt.yaml new file mode 100644 index 00000000..33daed4a --- /dev/null +++ b/assets/src/i18n/pt.yaml @@ -0,0 +1,204 @@ +permanent: Permanente +buttons: + cancel: Cancelar + close: Fechar + copy: Copiar + copyFile: Copiar ficheiro + copyToClipboard: Copiar + create: Criar + delete: Eliminar + download: Descarregar + info: Info + more: Mais + move: Mover + moveFile: Mover ficheiro + new: Novo + next: Próximo + ok: OK + previous: Anterior + publish: Publicar + rename: Renomear + replace: Substituir + reportIssue: Reportar Erro + save: Guardar + share: Partilhar + schedule: Agendar + search: Pesquisar + select: Selecionar + selectMultiple: Selecionar múltiplos + switchView: Alterar modo de visão + toggleSidebar: Alternar barra lateral + update: Atualizar + upload: Enviar + permalink: Obter link permanente +success: + linkCopied: Link copiado! +errors: + forbidden: Tu não és bem-vindo aqui. + internal: Algo correu bastante mal. + notFound: Não conseguimos chegar a esta localização. +files: + body: Corpo + clear: Limpar + closePreview: Fechar pré-visualização + files: Ficheiros + folders: Pastas + home: Início + lastModified: Última modificação + loading: A carregar... + lonely: Sinto-me sozinho... + metadata: Metadados + multipleSelectionEnabled: Seleção múltipla ativada + name: Nome + size: Tamanho + sortByLastModified: Ordenar pela última modificação + sortByName: Ordenar pelo nome + sortBySize: Ordenar pelo tamanho +help: + click: selecionar pasta ou ficheiro + ctrl: + click: selecionar várias pastas e ficheiros + f: pesquisar + s: guardar um ficheiro ou descarregar a pasta em que estás a navegar + del: eliminar os ficheiros selecionados + doubleClick: abrir pasta ou ficheiro + esc: limpar seleção e/ou fechar menu + f1: esta informação + f2: renomear ficheiro + help: Ajuda +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +login: + password: Palavra-passe + submit: Login + username: Nome de utilizador + wrongCredentials: Dados errados +prompts: + copy: Copiar + copyMessage: 'Escolhe um lugar para copiar os ficheiros:' + currentlyNavigating: 'A navegar em:' + deleteMessageMultiple: Deseja eliminar {count} ficheiro(s)? + deleteMessageSingle: Deseja eliminar esta pasta/ficheiro? + deleteTitle: Eliminar ficheiros + displayName: 'Nome:' + download: Descarregar ficheiros + downloadMessage: Escolha o formato do ficheiro. + error: Algo correu mal + fileInfo: Informação do ficheiro + filesSelected: "{count} ficheiros selecionados." + lastModified: Última Modificação + move: Mover + moveMessage: 'Escolha uma nova casa para os seus ficheiros:' + newArchetype: Criar um novo post baseado num "archetype". O seu ficheiro será criado + na pasta "content". + newDir: Nova pasta + newDirMessage: Escreva o nome da nova pasta. + newFile: Novo ficheiro + newFileMessage: Escreva o nome do novo ficheiro. + numberDirs: Número de pastas + numberFiles: Número de ficheiros + rename: Renomear + renameMessage: Insira um novo nome para + replace: Substituir + replaceMessage: > + Já existe um ficheiro com nome igual a um dos que está a tentar + enviar. Deseja substituir? + schedule: Agendar + scheduleMessage: Escolha uma data para publicar este post. + show: Mostrar + size: Tamanho +search: + images: Imagens + music: Música + pdf: PDF + pressToExecute: Prima enter para executar. + pressToSearch: Prima enter para pesquisar. + search: Pesquise... + searchOrCommand: Pesquise ou execute um comando... + searchOrSupportedCommand: 'Pesquise ou utilize um dos seus comandos:' + type: Escreva e prima enter para pesquisar. + types: Tipos + video: Vídeos + writeToSearch: Escreva aqui para pesquisar +settings: + admin: Admin + administrator: Administrador + allowCommands: Executar comandos + allowEdit: Editar, renomear e eliminar ficheiros ou pastas + allowNew: Criar novos ficheiros e pastas + allowPublish: Publicar novas páginas e conteúdos + avoidChanges: "(deixe em branco para manter)" + changePassword: Alterar Password + commands: Comandos + commandsHelp: > + Pode definir um conjunto de comandos a executar em determiandos eventos. + Deve escrever um comando por linha. Se o evento estiver relacionado com ficheiros, + como antes e depois de guardar, irá existir uma variável de ambiente denominada + "FILE" com o caminho do ficheiro. + commandsUpdated: Comandos atualizados! + customStylesheet: Estilos Personalizados + examples: Exemplos + globalSettings: Configurações Globais + language: Linguagem + lockPassword: Não permitir que o utilizador altere a palavra-passe + newPassword: Nova palavra-passe + newPasswordConfirm: Confirme a nova palavra-passe + newUser: Novo Utilizador + password: Palavra-passe + passwordUpdated: Palavra-passe atualizada! + permissions: Permissões + permissionsHelp: > + Pode definir o utilizador como administrador ou escolher as permissões + manualmente. Se selecionar a opção "Administrador", todas as outras opções serão + automaticamente selecionadas. A gestão dos utilizadores é um privilégio restringido + aos administradores. + profileSettings: Configurações do Utilizador + ruleExample1: > + previne o acesso a qualquer "dotfile" (como .git, .gitignore) em + qualquer pasta + ruleExample2: bloqueia o acesso ao ficheiro chamado Caddyfile. + rules: Regras + rulesHelp1: > + Aqui pode definir um conjunto de regras para permitir ou bloquear o + acesso do utilizador a determinados ficheiros ou pastas. Os ficheiros bloqueados + não irão aparecer durante a navegação. Suportamos expressões regulares e os caminhos + dos ficheiros devem ser relativos à base do utilizador. + rulesHelp2: > + Cada regra deve ser colocada numa linha diferente e deve começar com + as palavras {0} (permite) ou {1} (bloqueia). Deve escrever, logo de seguida, {2}, + caso queira utilizar uma expressão regular. Depois, escreva o caminho do ficheiro/pasta + ou a expressão regular. + scope: Base + settingsUpdated: Configurações atualizadas! + user: Utilizador + userCommands: Comandos + userCommandsHelp: 'Uma lista, separada com espaços, de comandos disponíveis para + este utilizados. Exemplo:' + userCreated: Utilizador criado! + userDeleted: Utilizador eliminado! + userManagement: Gestão de Utilizadores + username: Nome de utilizador + users: Utilizadores + userUpdated: Utilizador atualizado! +sidebar: + help: Ajuda + hugoNew: Hugo New + logout: Sair + myFiles: Ficheiros + newFile: Novo ficheiro + newFolder: Nova pasta + preview: Pré-visualizar + settings: Configurações + siteSettings: Configurações do Site +time: + unit: Unidades de Tempo + seconds: Segundos + minutes: Minutos + hours: Horas + days: Dias diff --git a/assets/src/i18n/zh-cn.yaml b/assets/src/i18n/zh-cn.yaml new file mode 100644 index 00000000..8ffbaf7e --- /dev/null +++ b/assets/src/i18n/zh-cn.yaml @@ -0,0 +1,199 @@ +permanent: 永久 +buttons: + cancel: 取消 + close: 关闭 + copy: 复制 + copyFile: 复制文件 + copyToClipboard: 复制到剪贴板 + create: 创建 + delete: 删除 + download: 下载 + info: 信息 + more: 更多 + move: 移动 + moveFile: 移动文件 + new: 新 + next: 下一个 + ok: 确定 + replace: 替换 + previous: 上一个 + rename: 重命名 + reportIssue: 报告问题 + save: 保存 + search: 搜索 + select: 选择 + share: 分享 + publish: 发布 + selectMultiple: 选择多个 + schedule: 计划 + switchView: 切换显示方式 + toggleSidebar: 切换侧边栏 + update: 更新 + upload: 上传 + permalink: 获取永久链接 +success: + linkCopied: 链接已复制! +errors: + forbidden: 你被禁止访问。 + internal: 内部出现麻烦了。 + notFound: 找不到文件。 +files: + folders: 文件夹 + files: 文件 + body: Body + clear: 清空 + closePreview: 关闭预览 + home: 主页 + lastModified: 最后修改 + loading: 加载中... + lonely: 这里没有任何文件... + metadata: 元数据 + multipleSelectionEnabled: 多选模式已开启 + name: 名称 + size: 大小 + sortByName: 按名称排序 + sortBySize: 按大小排序 + sortByLastModified: 按最后修改时间排序 +help: + click: 选择文件或目录 + ctrl: + click: 选择多个文件或目录 + f: 打开搜索框 + s: 保存文件或下载当前文件夹 + del: 删除所选的文件/文件夹 + doubleClick: 打开文件/文件夹 + esc: 清除已选项或关闭提示信息 + f1: 显示该帮助信息 + f2: 重命名文件/文件夹 + help: 帮助 +login: + password: 密码 + submit: 登录 + username: 用户名 + wrongCredentials: 用户名或密码错误 +prompts: + copy: 复制 + copyMessage: 请选择欲复制至的目录: + currentlyNavigating: 当前目录: + deleteMessageMultiple: 你确定要删除这 {count} 个文件吗? + deleteMessageSingle: 你确定要删除这个文件/文件夹吗? + deleteTitle: 删除文件 + displayName: 名称: + download: 下载文件 + downloadMessage: 请选择要下载的压缩格式。 + error: 出了一点问题... + fileInfo: 文件信息 + filesSelected: 已选择 {count} 个文件。 + lastModified: 最后修改 + move: 移动 + moveMessage: 请选择欲移动至的目录: + newDir: 新建目录 + newDirMessage: 请输入新目录的名称。 + newFile: 新建文件 + newFileMessage: 请输入新文件的名称。 + numberDirs: 目录数 + numberFiles: 文件数 + replace: 替换 + replaceMessage: "\ + 您尝试上传的文件中有一个与现有文件的名称存在冲突。\ + 是否替换现有的同名文件?" + rename: 重命名 + renameMessage: 请输入新名称,旧名称为: + show: 揭示 + size: 大小 + schedule: 计划 + scheduleMessage: 请选择发布这篇帖子的日期。 + newArchetype: 创建一个基于原型的新帖子。您的文件将会创建在内容文件夹中。 +settings: + admin: 管理员 + administrator: 管理员 + allowCommands: 执行命令(Linux 代码) + allowEdit: 编辑、重命名或删除文件/目录 + allowNew: 创建新文件和目录 + allowPublish: 发布新的帖子与页面 + avoidChanges: '(留空以避免更改)' + changePassword: 更改密码 + commands: 命令(linux 代码) + commandsHelp: "\ + 在这里,您可以设置在指定事件下执行的命令,一行一条。\ + 若事件与文件相关,如“在保存文件前”,\ + 则文件的路径会被赋值给环境变量 \"FILE\"。" + commandsUpdated: 命令已更新! + customStylesheet: 自定义样式表 + examples: 例子 + globalSettings: 全局设置 + language: 语言 + lockPassword: 禁止用户修改密码 + newPassword: 您的新密码 + newPasswordConfirm: 重输一遍新密码 + newUser: 新建用户 + password: 密码 + passwordUpdated: 密码已更新! + permissions: 权限 + permissionsHelp: "\ + 您可以将该用户设置为管理员,也可以单独选择各项权限。\ + 如果选择了“管理员”,则其他的选项会被自动勾上,\ + 同时该用户可以管理其他用户。" + profileSettings: 个人设置 + ruleExample1: "\ + 阻止用户访问所有文件夹下任何以 . 开头的文件\ + (隐藏文件, 例如: .git, .gitignore)。" + ruleExample2: 阻止用户访问其目录范围的根目录下名为 Caddyfile 的文件。 + rules: 规则 + rulesHelp1: "\ + 您可以为该用户制定一组黑名单或白名单式的规则,\ + 被屏蔽的文件将不会显示在列表中,用户也无权限访问,\ + 支持相对于目录范围的路径。" + rulesHelp2: "\ + 每行一条规则,且必须以关键词 {0} 或 {1} 开头。\ + 如要使用正则表达式,请在加上 {2} 之后再附上表达式或路径。" + scope: 目录范围 + settingsUpdated: 设置已更新! + user: 用户 + userCommands: 用户命令(Linux 代码) + userCommandsHelp: "\ + 指定该用户可以执行的命令(Linux 代码),用空格分隔。\ + 例如:" + userCreated: 用户已创建! + userDeleted: 用户已删除! + userManagement: 用户管理 + username: 用户名 + users: 用户 + userUpdated: 用户已更新! +sidebar: + help: 帮助 + logout: 登出 + myFiles: 我的文件 + newFile: 新建文件 + newFolder: 新建文件夹 + settings: 设置 + siteSettings: 网站设置 + hugoNew: Hugo New + preview: 预览 +search: + images: 图像 + music: 音乐 + pdf: PDF + pressToExecute: 按回车键执行。 + pressToSearch: 按回车键搜索。 + search: 搜索... + searchOrCommand: 搜索或者执行命令(Linux 代码)... + searchOrSupportedCommand: 搜索或使用您可以使用的命令(一次只能执行一个命令): + type: 键入并按回车键进行搜索。 + types: 类型 + video: 视频 + writeToSearch: 请输入要搜索的内容 +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 时间单位 + seconds: 秒 + minutes: 分钟 + hours: 小时 + days: 天 diff --git a/assets/src/i18n/zh-tw.yaml b/assets/src/i18n/zh-tw.yaml new file mode 100644 index 00000000..2c32caea --- /dev/null +++ b/assets/src/i18n/zh-tw.yaml @@ -0,0 +1,199 @@ +permanent: 永久 +buttons: + cancel: 取消 + close: 關閉 + copy: 複製 + copyFile: 複製檔案 + copyToClipboard: 複製到剪貼簿 + create: 建立 + delete: 刪除 + download: 下載 + info: 資訊 + more: 更多 + move: 移動 + moveFile: 移動檔案 + new: 新 + next: 下一個 + ok: 確認 + replace: 更換 + previous: 上一個 + rename: 重新命名 + reportIssue: 報告問題 + save: 儲存 + search: 搜尋 + select: 選擇 + share: 分享 + publish: 發佈 + selectMultiple: 選擇多個 + schedule: 計畫 + switchView: 切換顯示方式 + toggleSidebar: 切換側邊欄 + update: 更新 + upload: 上傳 + permalink: 獲取永久連結 +success: + linkCopied: 連結已複製! +errors: + forbidden: 你被禁止存取。 + internal: 內部出現麻煩了。 + notFound: 找不到檔案。 +files: + folders: 資料夾 + files: 檔案 + body: Body + clear: 清空 + closePreview: 關閉預覽 + home: 主頁 + lastModified: 最後修改 + loading: 讀取中... + lonely: 這裡沒有任何檔案... + metadata: 詮釋資料 + multipleSelectionEnabled: 多選模式已開啟 + name: 名稱 + size: 大小 + sortByName: 按名稱排序 + sortBySize: 按大小排序 + sortByLastModified: 按最後修改時間排序 +help: + click: 選擇檔案或目錄 + ctrl: + click: 選擇多個檔案或目錄 + f: 打開搜尋列 + s: 儲存檔案或下載目前資料夾 + del: 刪除所選的檔案/資料夾 + doubleClick: 打開檔案/資料夾 + esc: 清除已選項或關閉提示資訊 + f1: 顯示該幫助資訊 + f2: 重新命名檔案/資料夾 + help: 幫助 +login: + password: 密碼 + submit: 登入 + username: 帳號 + wrongCredentials: 帳號或密碼錯誤 +prompts: + copy: 複製 + copyMessage: 請選擇欲複製至的目錄: + currentlyNavigating: 目前目錄: + deleteMessageMultiple: 你確定要刪除這 {count} 個檔案嗎? + deleteMessageSingle: 你確定要刪除這個檔案/資料夾嗎? + deleteTitle: 刪除檔案 + displayName: 名稱: + download: 下載檔案 + downloadMessage: 請選擇要下載的壓縮格式。 + error: 發出了一點錯誤... + fileInfo: 檔案資訊 + filesSelected: 已選擇 {count} 個檔案。 + lastModified: 最後修改 + move: 移動 + moveMessage: 請選擇欲移動至的目錄: + newDir: 建立目錄 + newDirMessage: 請輸入新目錄的名稱。 + newFile: 建立檔案 + newFileMessage: 請輸入新檔案的名稱。 + numberDirs: 目錄數 + numberFiles: 檔案數 + replace: 替換 + replaceMessage: "\ + 您嘗試上傳的檔案中有一個與現有檔案的名稱存在衝突。\ + 是否取代現有的同名檔案?" + rename: 重新命名 + renameMessage: 請輸入新名稱,舊名稱為: + show: 顯示 + size: 大小 + schedule: 計畫 + scheduleMessage: 請選擇發佈這篇貼文的日期。 + newArchetype: 建立一個基於原型的新貼文。您的檔案將會建立在內容資料夾中。 +settings: + admin: 管理員 + administrator: 管理員 + allowCommands: 執行命令 + allowEdit: 編輯、重命名或刪除檔案/目錄 + allowNew: 創建新檔案和目錄 + allowPublish: 發佈新的貼文與頁面 + avoidChanges: '(留空以避免更改)' + changePassword: 更改密碼 + commands: 命令 + commandsHelp: "\ + 在這裡,您可以設定在指定事件下執行的命令,一行一條。\ + 若事件與檔案相關,如“在保存檔案前”,\ + 則檔案的路徑會被賦值給環境變數 \"FILE\"。" + commandsUpdated: 命令已更新! + customStylesheet: 自定義樣式表 + examples: 範例 + globalSettings: 全域設定 + language: 語言 + lockPassword: 禁止使用者修改密碼 + newPassword: 您的新密碼 + newPasswordConfirm: 重輸一遍新密碼 + newUser: 建立使用者 + password: 密碼 + passwordUpdated: 密碼已更新! + permissions: 權限 + permissionsHelp: "\ + 您可以將該使用者設置為管理員,也可以單獨選擇各項權限。\ + 如果選擇了“管理員”,則其他的選項會被自動勾上,\ + 同時該使用者可以管理其他使用者。" + profileSettings: 個人設定 + ruleExample1: "\ + 封鎖使用者存取所有資料夾下任何以 . 開頭的檔案\ + (隱藏文件, 例如: .git, .gitignore)。" + ruleExample2: 封鎖使用者存取其目錄範圍的根目錄下名為 Caddyfile 的檔案。 + rules: 規則 + rulesHelp1: "\ + 您可以為該使用者製定一組黑名單或白名單式的規則,\ + 被屏蔽的檔案將不會顯示在清單中,使用者也無權限存取,\ + 支持相對於目錄範圍的路徑。" + rulesHelp2: "\ + 每行一條規則,且必須以關鍵字 {0} 或 {1} 開頭。\ + 如要使用規則運算式,請在加上 {2} 之後再附上運算式或路徑。" + scope: 目錄範圍 + settingsUpdated: 設定已更新! + user: 使用者 + userCommands: 使用者命令 + userCommandsHelp: "\ + 指定該使用者可以執行的命令,用空格分隔。\ + 例如:" + userCreated: 使用者已建立! + userDeleted: 使用者已刪除! + userManagement: 使用者管理 + username: 使用者名稱 + users: 使用者 + userUpdated: 使用者已更新! +sidebar: + help: 幫助 + logout: 登出 + myFiles: 我的檔案 + newFile: 建立檔案 + newFolder: 建立資料夾 + settings: 設定 + siteSettings: 網站設定 + hugoNew: Hugo New + preview: 預覽 +search: + images: 影像 + music: 音樂 + pdf: PDF + pressToExecute: 按確定鍵執行。 + pressToSearch: 按確定鍵搜尋。 + search: 搜尋... + searchOrCommand: 搜尋或者執行命令... + searchOrSupportedCommand: 搜尋或使用您可以使用的命令(一次只能執行一個命令): + type: 輸入並按確定鍵進行搜尋。 + types: 類型 + video: 影片 + writeToSearch: 請輸入要搜尋的內容 +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 時間單位 + seconds: 秒 + minutes: 分鐘 + hours: 小時 + days: 天 diff --git a/assets/src/main.js b/assets/src/main.js new file mode 100644 index 00000000..b071129c --- /dev/null +++ b/assets/src/main.js @@ -0,0 +1,54 @@ +import Vue from 'vue' +import App from './App' +import store from './store' +import router from './router' +import i18n from './i18n' +import Noty from 'noty' + +Vue.config.productionTip = true + +const notyDefault = { + type: 'info', + layout: 'bottomRight', + timeout: 1000, + progressBar: true +} + +Vue.prototype.$noty = function (opts) { + new Noty(Object.assign({}, notyDefault, opts)).show() +} + +Vue.prototype.$showSuccess = function (message) { + new Noty(Object.assign({}, notyDefault, { + text: message, + type: 'success' + })).show() +} + +Vue.prototype.$showError = function (error) { + let n = new Noty(Object.assign({}, notyDefault, { + text: error, + type: 'error', + timeout: null, + buttons: [ + Noty.button(i18n.t('buttons.reportIssue'), '', function () { + window.open('https://github.com/hacdias/filemanager/issues/new') + }), + Noty.button(i18n.t('buttons.close'), '', function () { + n.close() + }) + ] + })) + + n.show() +} + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + store, + router, + i18n, + template: '', + components: { App } +}) diff --git a/assets/src/router/index.js b/assets/src/router/index.js new file mode 100644 index 00000000..58ca1d87 --- /dev/null +++ b/assets/src/router/index.js @@ -0,0 +1,161 @@ +import Vue from 'vue' +import Router from 'vue-router' +import Login from '@/views/Login' +import Layout from '@/views/Layout' +import Files from '@/views/Files' +import Users from '@/views/settings/Users' +import User from '@/views/settings/User' +import Settings from '@/views/Settings' +import GlobalSettings from '@/views/settings/Global' +import ProfileSettings from '@/views/settings/Profile' +import Error403 from '@/views/errors/403' +import Error404 from '@/views/errors/404' +import Error500 from '@/views/errors/500' +import auth from '@/utils/auth' +import store from '@/store' + +Vue.use(Router) + +const router = new Router({ + base: document.querySelector('meta[name="base"]').getAttribute('content'), + mode: 'history', + routes: [ + { + path: '/login', + name: 'Login', + component: Login, + beforeEnter: function (to, from, next) { + auth.loggedIn() + .then(() => { + next({ path: '/files' }) + }) + .catch(() => { + document.title = 'Login' + next() + }) + } + }, + { + path: '/*', + component: Layout, + meta: { + requiresAuth: true + }, + children: [ + { + path: '/files/*', + name: 'Files', + component: Files + }, + { + path: '/settings', + name: 'Settings', + component: Settings, + redirect: { + path: '/settings/profile' + }, + meta: { + disableOnNoAuth: true + }, + children: [ + { + path: '/settings/profile', + name: 'Profile Settings', + component: ProfileSettings + }, + { + path: '/settings/global', + name: 'Global Settings', + component: GlobalSettings, + meta: { + requiresAdmin: true + } + }, + { + path: '/settings/users', + name: 'Users', + component: Users, + meta: { + requiresAdmin: true + } + }, + { + path: '/settings/users/*', + name: 'User', + component: User, + meta: { + requiresAdmin: true + } + } + ] + }, + { + path: '/403', + name: 'Forbidden', + component: Error403 + }, + { + path: '/404', + name: 'Not Found', + component: Error404 + }, + { + path: '/500', + name: 'Internal Server Error', + component: Error500 + }, + { + path: '/files', + redirect: { + path: '/files/' + } + }, + { + path: '/*', + redirect: { + name: 'Files' + } + } + ] + } + ] +}) + +router.beforeEach((to, from, next) => { + document.title = to.name + + if (to.matched.some(record => record.meta.requiresAuth)) { + // this route requires auth, check if logged in + // if not, redirect to login page. + auth.loggedIn() + .then(() => { + if (to.matched.some(record => record.meta.requiresAdmin)) { + if (!store.state.user.admin) { + next({ path: '/403' }) + return + } + } + + if (to.matched.some(record => record.meta.disableOnNoAuth)) { + if (store.state.noAuth) { + next({ path: '/403' }) + return + } + } + + next() + }) + .catch(e => { + next({ + path: '/login', + query: { redirect: to.fullPath } + }) + }) + + return + } + + next() +}) + +export default router diff --git a/assets/src/store/getters.js b/assets/src/store/getters.js new file mode 100644 index 00000000..370bc589 --- /dev/null +++ b/assets/src/store/getters.js @@ -0,0 +1,5 @@ +const getters = { + selectedCount: state => state.selected.length +} + +export default getters diff --git a/assets/src/store/index.js b/assets/src/store/index.js new file mode 100644 index 00000000..655222cb --- /dev/null +++ b/assets/src/store/index.js @@ -0,0 +1,42 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import mutations from './mutations' +import getters from './getters' + +Vue.use(Vuex) + +const state = { + user: {}, + req: {}, + clipboard: { + key: '', + items: [] + }, + css: (() => { + let css = window.CSS + window.CSS = null + return css + })(), + recaptcha: document.querySelector('meta[name="recaptcha"]').getAttribute('content'), + staticGen: document.querySelector('meta[name="staticgen"]').getAttribute('content'), + baseURL: document.querySelector('meta[name="base"]').getAttribute('content'), + noAuth: (document.querySelector('meta[name="noauth"]').getAttribute('content') === 'true'), + version: document.querySelector('meta[name="version"]').getAttribute('content'), + jwt: '', + progress: 0, + schedule: '', + loading: false, + reload: false, + selected: [], + multiple: false, + show: null, + showMessage: null, + showConfirm: null +} + +export default new Vuex.Store({ + strict: process.env.NODE_ENV !== 'production', + state, + getters, + mutations +}) diff --git a/assets/src/store/mutations.js b/assets/src/store/mutations.js new file mode 100644 index 00000000..cf608511 --- /dev/null +++ b/assets/src/store/mutations.js @@ -0,0 +1,81 @@ +import * as i18n from '@/i18n' +import moment from 'moment' + +const mutations = { + closeHovers: state => { + state.show = null + state.showMessage = null + }, + showHover: (state, value) => { + if (typeof value !== 'object') { + state.show = value + return + } + + state.show = value.prompt + state.showMessage = value.message + state.showConfirm = value.confirm + }, + showError: (state, value) => { + state.show = 'error' + state.showMessage = value + }, + showSuccess: (state, value) => { + state.show = 'success' + state.showMessage = value + }, + setLoading: (state, value) => { state.loading = value }, + setReload: (state, value) => { state.reload = value }, + setUser: (state, value) => { + let locale = value.locale + + if (locale === '') { + locale = i18n.detectLocale() + } + + moment.locale(locale) + i18n.default.locale = locale + state.user = value + }, + setCSS: (state, value) => (state.css = value), + setJWT: (state, value) => (state.jwt = value), + multiple: (state, value) => (state.multiple = value), + addSelected: (state, value) => (state.selected.push(value)), + addPlugin: (state, value) => { + state.plugins.push(value) + }, + removeSelected: (state, value) => { + let i = state.selected.indexOf(value) + if (i === -1) return + state.selected.splice(i, 1) + }, + resetSelected: (state) => { + state.selected = [] + }, + updateUser: (state, value) => { + if (typeof value !== 'object') return + + for (let field in value) { + state.user[field] = value[field] + } + }, + updateRequest: (state, value) => { + state.req = value + }, + updateClipboard: (state, value) => { + state.clipboard.key = value.key + state.clipboard.items = value.items + }, + resetClipboard: (state) => { + state.clipboard.key = '' + state.clipboard.items = [] + }, + setSchedule: (state, value) => { + state.schedule = value + }, + setProgress: (state, value) => { + state.progress = value + } +} + +export default mutations diff --git a/assets/src/utils/api.js b/assets/src/utils/api.js new file mode 100644 index 00000000..9d429062 --- /dev/null +++ b/assets/src/utils/api.js @@ -0,0 +1,455 @@ +import store from '@/store' + +const ssl = (window.location.protocol === 'https:') + +export function removePrefix (url) { + if (url.startsWith('/files')) { + url = url.slice(6) + } + + if (url === '') url = '/' + if (url[0] !== '/') url = '/' + url + return url +} + +export function fetch (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(new Error(request.status)) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function remove (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function post (url, content = '', overwrite = false, onupload) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + if (typeof onupload === 'function') { + request.upload.onprogress = onupload + } + + if (overwrite) { + request.setRequestHeader('Action', `override`) + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else if (request.status === 409) { + reject(request.status) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => { + reject(error) + } + request.send(content) + }) +} + +export function put (url, content = '', publish = false, date = '') { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + request.setRequestHeader('Publish', publish) + + if (date !== '') { + request.setRequestHeader('Schedule', date) + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send(content) + }) +} + +function moveCopy (items, copy = false) { + let promises = [] + + for (let item of items) { + let from = removePrefix(item.from) + let to = removePrefix(item.to) + + promises.push(new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PATCH', `${store.state.baseURL}/api/resource${from}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + request.setRequestHeader('Destination', to) + + if (copy) { + request.setRequestHeader('Action', 'copy') + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send() + })) + } + + return Promise.all(promises) +} + +export function move (items) { + return moveCopy(items) +} + +export function copy (items) { + return moveCopy(items, true) +} + +export function checksum (url, algo) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/checksum${url}?algo=${algo}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function command (url, command, onmessage, onclose) { + let protocol = (ssl ? 'wss:' : 'ws:') + url = removePrefix(url) + url = `${protocol}//${window.location.host}${store.state.baseURL}/api/command${url}` + + let conn = new window.WebSocket(url) + conn.onopen = () => conn.send(command) + conn.onmessage = onmessage + conn.onclose = onclose +} + +export function search (url, search, onmessage, onclose) { + let protocol = (ssl ? 'wss:' : 'ws:') + url = removePrefix(url) + url = `${protocol}//${window.location.host}${store.state.baseURL}/api/search${url}` + + let conn = new window.WebSocket(url) + conn.onopen = () => conn.send(search) + conn.onmessage = onmessage + conn.onclose = onclose +} + +export function download (format, ...files) { + let url = `${store.state.baseURL}/api/download` + + if (files.length === 1) { + url += removePrefix(files[0]) + '?' + } else { + let arg = '' + + for (let file of files) { + arg += removePrefix(file) + ',' + } + + arg = arg.substring(0, arg.length - 1) + arg = encodeURIComponent(arg) + url += `/?files=${arg}&` + } + + if (format !== null) { + url += `&format=${format}` + } + + window.open(url) +} + +export function getSettings () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/settings/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function updateSettings (param, which) { + return new Promise((resolve, reject) => { + let data = { + what: 'settings', + which: which, + data: {} + } + + data.data[which] = param + + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/settings/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve() + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => { reject(error) } + request.send(JSON.stringify(data)) + }) +} + +// USERS + +export function getUsers () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/users/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function getUser (id) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/users/${id}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function newUser (user) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/users/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 201: + resolve(request.getResponseHeader('Location')) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send(JSON.stringify({ + what: 'user', + which: 'new', + data: user + })) + }) +} + +export function updateUser (user, which) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/users/${user.ID}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(request.getResponseHeader('Location')) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send(JSON.stringify({ + what: 'user', + which: (typeof which === 'string') ? which : 'all', + data: user + })) + }) +} + +export function deleteUser (id) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/users/${id}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve() + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +// SHARE + +export function getShare (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/share${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(JSON.parse(request.responseText)) + } else { + reject(request.status) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function deleteShare (hash) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/share/${hash}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve() + } else { + reject(request.status) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function share (url, expires = '', unit = 'hours') { + url = removePrefix(url) + url = `${store.state.baseURL}/api/share${url}` + if (expires !== '') { + url += `?expires=${expires}&unit=${unit}` + } + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', url, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(JSON.parse(request.responseText)) + } else { + reject(request.responseStatus) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} diff --git a/assets/src/utils/auth.js b/assets/src/utils/auth.js new file mode 100644 index 00000000..a5130c91 --- /dev/null +++ b/assets/src/utils/auth.js @@ -0,0 +1,69 @@ +import cookie from './cookie' +import store from '@/store' +import router from '@/router' +import { Base64 } from 'js-base64' + +function parseToken (token) { + let path = store.state.baseURL + if (path === '') path = '/' + document.cookie = `auth=${token}; max-age=86400; path=${path}` + let res = token.split('.') + let user = JSON.parse(Base64.decode(res[1])) + if (!user.commands) { + user.commands = [] + } + + store.commit('setJWT', token) + store.commit('setUser', user) +} + +function loggedIn () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/auth/renew`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${cookie('auth')}`) + + request.onload = () => { + if (request.status === 200) { + parseToken(request.responseText) + resolve() + } else { + reject(new Error(request.responseText)) + } + } + request.onerror = () => reject(new Error('Could not finish the request')) + request.send() + }) +} + +function login (user, password, captcha) { + let data = {username: user, password: password, recaptcha: captcha} + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/auth/get`, true) + + request.onload = () => { + if (request.status === 200) { + parseToken(request.responseText) + resolve() + } else { + reject(request.responseText) + } + } + request.onerror = () => reject(new Error('Could not finish the request')) + request.send(JSON.stringify(data)) + }) +} + +function logout () { + let path = store.state.baseURL + if (path === '') path = '/' + document.cookie = `auth='nothing'; max-age=0; path=${path}` + router.push({path: '/login'}) +} + +export default { + loggedIn: loggedIn, + login: login, + logout: logout +} diff --git a/assets/src/utils/buttons.js b/assets/src/utils/buttons.js new file mode 100644 index 00000000..0d266e2b --- /dev/null +++ b/assets/src/utils/buttons.js @@ -0,0 +1,66 @@ +function loading (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.dataset.icon = el.innerHTML + el.style.opacity = 0 + + setTimeout(() => { + el.classList.add('spin') + el.innerHTML = 'autorenew' + el.style.opacity = 1 + }, 100) +} + +function done (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.style.opacity = 0 + + setTimeout(() => { + el.classList.remove('spin') + el.innerHTML = el.dataset.icon + el.style.opacity = 1 + }, 100) +} + +function success (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.style.opacity = 0 + + setTimeout(() => { + el.classList.remove('spin') + el.innerHTML = 'done' + el.style.opacity = 1 + + setTimeout(() => { + el.style.opacity = 0 + + setTimeout(() => { + el.innerHTML = el.dataset.icon + el.style.opacity = 1 + }, 100) + }, 500) + }, 100) +} + +export default { + loading, + done, + success +} diff --git a/assets/src/utils/codemirror.js b/assets/src/utils/codemirror.js new file mode 100644 index 00000000..e40ba58c --- /dev/null +++ b/assets/src/utils/codemirror.js @@ -0,0 +1,60 @@ +// Most of the code from this file comes from: +// https://github.com/codemirror/CodeMirror/blob/master/addon/mode/loadmode.js +import * as CodeMirror from 'codemirror' +import store from '@/store' + +// Make CodeMirror available globally so the modes' can register themselves. +window.CodeMirror = CodeMirror +CodeMirror.modeURL = store.state.baseURL + '/static/js/codemirror/mode/%N/%N.js' + +var loading = {} + +function splitCallback (cont, n) { + var countDown = n + return function () { + if (--countDown === 0) cont() + } +} + +function ensureDeps (mode, cont) { + var deps = CodeMirror.modes[mode].dependencies + if (!deps) return cont() + var missing = [] + for (var i = 0; i < deps.length; ++i) { + if (!CodeMirror.modes.hasOwnProperty(deps[i])) missing.push(deps[i]) + } + if (!missing.length) return cont() + var split = splitCallback(cont, missing.length) + for (i = 0; i < missing.length; ++i) CodeMirror.requireMode(missing[i], split) +} + +CodeMirror.requireMode = function (mode, cont) { + if (typeof mode !== 'string') mode = mode.name + if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont) + if (loading.hasOwnProperty(mode)) return loading[mode].push(cont) + + var file = CodeMirror.modeURL.replace(/%N/g, mode) + + var script = document.createElement('script') + script.src = file + var others = document.getElementsByTagName('script')[0] + var list = loading[mode] = [cont] + + CodeMirror.on(script, 'load', function () { + ensureDeps(mode, function () { + for (var i = 0; i < list.length; ++i) list[i]() + }) + }) + + others.parentNode.insertBefore(script, others) +} + +CodeMirror.autoLoadMode = function (instance, mode) { + if (CodeMirror.modes.hasOwnProperty(mode)) return + + CodeMirror.requireMode(mode, function () { + instance.setOption('mode', mode) + }) +} + +export default CodeMirror diff --git a/assets/src/utils/cookie.js b/assets/src/utils/cookie.js new file mode 100644 index 00000000..5004b602 --- /dev/null +++ b/assets/src/utils/cookie.js @@ -0,0 +1,4 @@ +export default function (name) { + let re = new RegExp('(?:(?:^|.*;\\s*)' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$') + return document.cookie.replace(re, '$1') +} diff --git a/assets/src/utils/css.js b/assets/src/utils/css.js new file mode 100644 index 00000000..15ab99fe --- /dev/null +++ b/assets/src/utils/css.js @@ -0,0 +1,28 @@ +export default function getRule (rules) { + for (let i = 0; i < rules.length; i++) { + rules[i] = rules[i].toLowerCase() + } + + let result = null + let find = Array.prototype.find + + find.call(document.styleSheets, styleSheet => { + result = find.call(styleSheet.cssRules, cssRule => { + let found = false + + if (cssRule instanceof window.CSSStyleRule) { + for (let i = 0; i < rules.length; i++) { + if (cssRule.selectorText.toLowerCase() === rules[i]) { + found = true + } + } + } + + return found + }) + + return result != null + }) + + return result +} diff --git a/assets/src/utils/url.js b/assets/src/utils/url.js new file mode 100644 index 00000000..2649a592 --- /dev/null +++ b/assets/src/utils/url.js @@ -0,0 +1,12 @@ +function removeLastDir (url) { + var arr = url.split('/') + if (arr.pop() === '') { + arr.pop() + } + + return arr.join('/') +} + +export default { + removeLastDir: removeLastDir +} diff --git a/assets/src/views/Files.vue b/assets/src/views/Files.vue new file mode 100644 index 00000000..10a2fa05 --- /dev/null +++ b/assets/src/views/Files.vue @@ -0,0 +1,231 @@ + + + diff --git a/assets/src/views/Layout.vue b/assets/src/views/Layout.vue new file mode 100644 index 00000000..d2bc6b9d --- /dev/null +++ b/assets/src/views/Layout.vue @@ -0,0 +1,43 @@ + + + diff --git a/assets/src/views/Login.vue b/assets/src/views/Login.vue new file mode 100644 index 00000000..39c4dfb3 --- /dev/null +++ b/assets/src/views/Login.vue @@ -0,0 +1,71 @@ + + + diff --git a/assets/src/views/Settings.vue b/assets/src/views/Settings.vue new file mode 100644 index 00000000..39db5de2 --- /dev/null +++ b/assets/src/views/Settings.vue @@ -0,0 +1,20 @@ + + + diff --git a/assets/src/views/errors/403.vue b/assets/src/views/errors/403.vue new file mode 100644 index 00000000..47c6c897 --- /dev/null +++ b/assets/src/views/errors/403.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/errors/404.vue b/assets/src/views/errors/404.vue new file mode 100644 index 00000000..61dbe144 --- /dev/null +++ b/assets/src/views/errors/404.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/errors/500.vue b/assets/src/views/errors/500.vue new file mode 100644 index 00000000..0bd86786 --- /dev/null +++ b/assets/src/views/errors/500.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/settings/Global.vue b/assets/src/views/settings/Global.vue new file mode 100644 index 00000000..50a6bf30 --- /dev/null +++ b/assets/src/views/settings/Global.vue @@ -0,0 +1,187 @@ + + + diff --git a/assets/src/views/settings/Profile.vue b/assets/src/views/settings/Profile.vue new file mode 100644 index 00000000..bcf11738 --- /dev/null +++ b/assets/src/views/settings/Profile.vue @@ -0,0 +1,109 @@ + + + diff --git a/assets/src/views/settings/User.vue b/assets/src/views/settings/User.vue new file mode 100644 index 00000000..53a4175b --- /dev/null +++ b/assets/src/views/settings/User.vue @@ -0,0 +1,319 @@ + + + diff --git a/assets/src/views/settings/Users.vue b/assets/src/views/settings/Users.vue new file mode 100644 index 00000000..355aaaed --- /dev/null +++ b/assets/src/views/settings/Users.vue @@ -0,0 +1,48 @@ + + + diff --git a/assets/static/img/icons/android-chrome-192x192.png b/assets/static/img/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..685cdea9d5cf74acf3f02f345faefceab921cf74 GIT binary patch literal 4299 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 WEYo7eFN20E7(8A5T-G@yGywpA6e%A7 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/android-chrome-512x512.png b/assets/static/img/icons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..be4f052601236f72b77a3c93cb6a347446d8e786 GIT binary patch literal 12300 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 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-120x120.png b/assets/static/img/icons/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..f204c14b893b4a521b59a1e0fe86bac74ac4ce4d GIT binary patch literal 2930 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 pCnu+vBpVwWB%3B0Sf=S^Cg literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-180x180.png b/assets/static/img/icons/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3ee3a9efda885c1c31c1f82567ffb4f0db505b GIT binary patch literal 8893 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 PpaAo9^>bP0l+XkKtl&yN literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-76x76.png b/assets/static/img/icons/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cc0f35a3bf5f2d5fec3dfdb9caf319af228bab GIT binary patch literal 1977 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 WEYo7eFN20E7(8A5T-G@yGywpA6e%A7 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/favicon-16x16.png b/assets/static/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..8de7c05e09c2fe972e855eb61fe532a5f4e3fe88 GIT binary patch literal 918 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 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/msapplication-icon-144x144.png b/assets/static/img/icons/msapplication-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..a7db463fe7640580ee18526375c15995b5338abd GIT binary patch literal 3515 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 literal 0 HcmV?d00001 diff --git a/assets/static/manifest.json b/assets/static/manifest.json new file mode 100644 index 00000000..9d5b3577 --- /dev/null +++ b/assets/static/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "File Browser", + "short_name": "File Browser", + "icons": [ + { + "src": "{{ .BaseURL }}/static/img/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "{{ .BaseURL }}/static/img/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "start_url": "{{ .BaseURL }}/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#2979ff" +} diff --git a/assets/static/share/404.html b/assets/static/share/404.html new file mode 100644 index 00000000..53359493 --- /dev/null +++ b/assets/static/share/404.html @@ -0,0 +1,50 @@ + + + + + + + File Browser + + + + + + + + + + + + + + + + +

404 Not Found

+ + diff --git a/assets/static/share/index.html b/assets/static/share/index.html new file mode 100644 index 00000000..b1f410cb --- /dev/null +++ b/assets/static/share/index.html @@ -0,0 +1,86 @@ + + + + + + + {{ .File.Name }} + + + + + + + + + + + + + + + + + +
Download {{ if .File.IsDir }}Folder{{ else }}File{{ end }}
+
+ {{ if .File.IsDir -}} + + + + + {{ else -}} + + + + + {{ end -}} +

{{ .File.Name }}

+
+
+ + diff --git a/package.json b/package.json new file mode 100644 index 00000000..ca9bee2a --- /dev/null +++ b/package.json @@ -0,0 +1,88 @@ +{ + "name": "filebrowser-vue", + "version": "1.0.0", + "author": "File Browser contributors", + "contributors": [ + "Henrique Dias " + ], + "scripts": { + "dev": "node ./assets/build/dev.js", + "build": "node ./assets/build/build.js", + "lint": "eslint --ext .js,.vue assets/src" + }, + "dependencies": { + "clipboard": "^1.7.1", + "codemirror": "^5.31.0", + "filesize": "^3.5.11", + "js-base64": "^2.4.0", + "moment": "^2.19.2", + "normalize.css": "^7.0.0", + "noty": "^3.2.0-beta", + "vue": "^2.5.8", + "vue-i18n": "^7.3.4", + "vue-router": "^3.0.1", + "vuex": "^3.0.1" + }, + "devDependencies": { + "autoprefixer": "^7.1.6", + "babel-core": "^6.26.0", + "babel-eslint": "^8.0.2", + "babel-loader": "^7.1.2", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1", + "babel-preset-stage-2": "^6.24.1", + "babel-register": "^6.26.0", + "chalk": "^2.3.0", + "connect-history-api-fallback": "^1.5.0", + "copy-webpack-plugin": "^4.2.1", + "css-loader": "^0.28.7", + "eslint": "^4.15.0", + "eslint-config-standard": "^11.0.0-beta.0", + "eslint-friendly-formatter": "^3.0.0", + "eslint-loader": "^1.9.0", + "eslint-plugin-html": "^4.0.0", + "eslint-plugin-import": "^2.8.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.6.0", + "eslint-plugin-standard": "^3.0.1", + "eventsource-polyfill": "^0.9.6", + "express": "^4.16.2", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.5", + "friendly-errors-webpack-plugin": "^1.6.1", + "html-webpack-plugin": "^2.30.1", + "http-proxy-middleware": "^0.17.4", + "opn": "^5.1.0", + "optimize-css-assets-webpack-plugin": "^3.2.0", + "ora": "^1.3.0", + "rimraf": "^2.6.2", + "semver": "^5.4.1", + "shelljs": "^0.8.1", + "sw-precache-webpack-plugin": "^0.11.4", + "uglify-js": "^3.1.10", + "url-loader": "^0.6.2", + "vue-loader": "^14.0.3", + "vue-style-loader": "^3.0.3", + "vue-template-compiler": "^2.5.8", + "webpack": "^3.8.1", + "webpack-bundle-analyzer": "^2.9.1", + "webpack-dev-middleware": "^2.0.4", + "webpack-hot-middleware": "^2.20.0", + "webpack-merge": "^4.1.1", + "yml-loader": "^2.1.0" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} From 1f4d0cc3cdbfd350f000d3792929df49b93ddcbb Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 12:40:20 +0000 Subject: [PATCH 002/134] docs: update --- CONTRIBUTING.md | 10 +++++----- assets/index.html | 5 +++++ assets/src/components/Sidebar.vue | 2 +- assets/src/main.js | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b7e1bab..b238a4ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,13 +2,13 @@ If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: -1. `go get github.com/hacdias/filemanager/cmd/filemanager` -2. `cd $GOPATH/src/github.com/hacdias/filemanager` +1. `go get github.com/filebrowser/filebrowser/cmd/filebrowser` +2. `cd $GOPATH/src/github.com/filebrowser/filebrowser` 3. `npm install` 4. `npm run dev` - regenerates the static assets automatically -5. `go install github.com/hacdias/filemanager/cmd/filemanager` -6. Execute `$GOPATH/bin/filemanager` +5. `go install github.com/filebrowser/filebrowser/cmd/filebrowser` +6. Execute `$GOPATH/bin/filebrowser` The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. -If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/hacdias/filemanager/caddy/filemanager`. +If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/filebrowser/caddy/filemanager`. diff --git a/assets/index.html b/assets/index.html index 8abc3097..d2746211 100644 --- a/assets/index.html +++ b/assets/index.html @@ -4,15 +4,19 @@ + + + File Browser + @@ -22,6 +26,7 @@ + diff --git a/assets/src/components/Sidebar.vue b/assets/src/components/Sidebar.vue index 6c18d1c3..0d754952 100644 --- a/assets/src/components/Sidebar.vue +++ b/assets/src/components/Sidebar.vue @@ -59,7 +59,7 @@

- File Browser v{{ version }} + File Browser v{{ version }} {{ $t('sidebar.help') }}

diff --git a/assets/src/main.js b/assets/src/main.js index b071129c..b0053253 100644 --- a/assets/src/main.js +++ b/assets/src/main.js @@ -32,7 +32,7 @@ Vue.prototype.$showError = function (error) { timeout: null, buttons: [ Noty.button(i18n.t('buttons.reportIssue'), '', function () { - window.open('https://github.com/hacdias/filemanager/issues/new') + window.open('https://github.com/filebrowser/filebrowser/issues/new') }), Noty.button(i18n.t('buttons.close'), '', function () { n.close() From 0595638228022aa16c92407e2f1a12ab620a5654 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:43:54 +0000 Subject: [PATCH 003/134] chore: add circle --- .circleci/config.yml | 22 ++ .gitignore | 70 +++++- .travis.yml | 22 -- CODE_OF_CONDUCT.md | 46 ---- CONTRIBUTING.md | 14 -- LICENSE | 202 ++++++++++++++++++ LICENSE.md | 201 ----------------- assets/build/check-versions.js | 48 ----- {assets/build => build}/build.js | 2 - {assets/build => build}/config.js | 0 {assets/build => build}/dev.js | 2 - {assets/build => build}/service-worker-dev.js | 0 .../build => build}/service-worker-prod.js | 0 {assets/build => build}/utils.js | 0 {assets/build => build}/vue-loader.conf.js | 0 {assets/build => build}/webpack.base.conf.js | 2 +- {assets/build => build}/webpack.dev.conf.js | 2 +- {assets/build => build}/webpack.prod.conf.js | 2 +- assets/index.html => index.html | 0 package.json | 12 +- {assets/src => src}/App.vue | 0 .../assets/fonts/material/icons.woff2 | Bin .../fonts/roboto/medium-cyrillic-ext.woff2 | Bin .../assets/fonts/roboto/medium-cyrillic.woff2 | Bin .../fonts/roboto/medium-greek-ext.woff2 | Bin .../assets/fonts/roboto/medium-greek.woff2 | Bin .../fonts/roboto/medium-latin-ext.woff2 | Bin .../assets/fonts/roboto/medium-latin.woff2 | Bin .../fonts/roboto/medium-vietnamese.woff2 | Bin .../fonts/roboto/normal-cyrillic-ext.woff2 | Bin .../assets/fonts/roboto/normal-cyrillic.woff2 | Bin .../fonts/roboto/normal-greek-ext.woff2 | Bin .../assets/fonts/roboto/normal-greek.woff2 | Bin .../fonts/roboto/normal-latin-ext.woff2 | Bin .../assets/fonts/roboto/normal-latin.woff2 | Bin .../fonts/roboto/normal-vietnamese.woff2 | Bin {assets/src => src}/assets/logo.svg | 0 {assets/src => src}/components/Header.vue | 0 {assets/src => src}/components/Languages.vue | 0 {assets/src => src}/components/Search.vue | 0 {assets/src => src}/components/Sidebar.vue | 0 .../src => src}/components/buttons/Copy.vue | 0 .../src => src}/components/buttons/Delete.vue | 0 .../components/buttons/Download.vue | 0 .../src => src}/components/buttons/Info.vue | 0 .../src => src}/components/buttons/Move.vue | 0 .../src => src}/components/buttons/Rename.vue | 0 .../components/buttons/Schedule.vue | 0 .../src => src}/components/buttons/Share.vue | 0 .../components/buttons/SwitchView.vue | 0 .../src => src}/components/buttons/Upload.vue | 0 .../src => src}/components/files/Editor.vue | 0 .../src => src}/components/files/Listing.vue | 0 .../components/files/ListingItem.vue | 0 .../src => src}/components/files/Preview.vue | 0 .../src => src}/components/prompts/Copy.vue | 0 .../src => src}/components/prompts/Delete.vue | 0 .../components/prompts/Download.vue | 0 .../components/prompts/FileList.vue | 0 .../src => src}/components/prompts/Help.vue | 0 .../src => src}/components/prompts/Info.vue | 0 .../src => src}/components/prompts/Move.vue | 0 .../components/prompts/NewArchetype.vue | 0 .../src => src}/components/prompts/NewDir.vue | 0 .../components/prompts/NewFile.vue | 0 .../components/prompts/Prompts.vue | 0 .../src => src}/components/prompts/Rename.vue | 0 .../components/prompts/Replace.vue | 0 .../components/prompts/Schedule.vue | 0 .../src => src}/components/prompts/Share.vue | 0 {assets/src => src}/css/base.css | 0 {assets/src => src}/css/dashboard.css | 0 {assets/src => src}/css/editor.css | 0 {assets/src => src}/css/fonts.css | 0 {assets/src => src}/css/header.css | 0 {assets/src => src}/css/listing.css | 0 {assets/src => src}/css/login.css | 0 {assets/src => src}/css/mobile.css | 0 {assets/src => src}/css/styles.css | 0 {assets/src => src}/i18n/en.yaml | 0 {assets/src => src}/i18n/es.yaml | 0 {assets/src => src}/i18n/fr.yaml | 0 {assets/src => src}/i18n/index.js | 0 {assets/src => src}/i18n/ja.yaml | 0 {assets/src => src}/i18n/pt.yaml | 0 {assets/src => src}/i18n/zh-cn.yaml | 0 {assets/src => src}/i18n/zh-tw.yaml | 0 {assets/src => src}/main.js | 0 {assets/src => src}/router/index.js | 0 {assets/src => src}/store/getters.js | 0 {assets/src => src}/store/index.js | 0 {assets/src => src}/store/mutations.js | 0 {assets/src => src}/utils/api.js | 0 {assets/src => src}/utils/auth.js | 0 {assets/src => src}/utils/buttons.js | 0 {assets/src => src}/utils/codemirror.js | 0 {assets/src => src}/utils/cookie.js | 0 {assets/src => src}/utils/css.js | 0 {assets/src => src}/utils/url.js | 0 {assets/src => src}/views/Files.vue | 0 {assets/src => src}/views/Layout.vue | 0 {assets/src => src}/views/Login.vue | 0 {assets/src => src}/views/Settings.vue | 0 {assets/src => src}/views/errors/403.vue | 0 {assets/src => src}/views/errors/404.vue | 0 {assets/src => src}/views/errors/500.vue | 0 {assets/src => src}/views/settings/Global.vue | 0 .../src => src}/views/settings/Profile.vue | 0 {assets/src => src}/views/settings/User.vue | 0 {assets/src => src}/views/settings/Users.vue | 0 .../img/icons/android-chrome-192x192.png | Bin .../img/icons/android-chrome-512x512.png | Bin .../img/icons/apple-touch-icon-120x120.png | Bin .../img/icons/apple-touch-icon-152x152.png | Bin .../img/icons/apple-touch-icon-180x180.png | Bin .../img/icons/apple-touch-icon-60x60.png | Bin .../img/icons/apple-touch-icon-76x76.png | Bin .../img/icons/apple-touch-icon.png | Bin .../img/icons/favicon-16x16.png | Bin .../img/icons/favicon-32x32.png | Bin .../static => static}/img/icons/favicon.ico | Bin .../img/icons/msapplication-icon-144x144.png | Bin .../img/icons/mstile-150x150.png | Bin {assets/static => static}/manifest.json | 0 {assets/static => static}/share/404.html | 0 {assets/static => static}/share/index.html | 0 126 files changed, 293 insertions(+), 354 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 .travis.yml delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md create mode 100644 LICENSE delete mode 100644 LICENSE.md delete mode 100644 assets/build/check-versions.js rename {assets/build => build}/build.js (95%) rename {assets/build => build}/config.js (100%) rename {assets/build => build}/dev.js (96%) rename {assets/build => build}/service-worker-dev.js (100%) rename {assets/build => build}/service-worker-prod.js (100%) rename {assets/build => build}/utils.js (100%) rename {assets/build => build}/vue-loader.conf.js (100%) rename {assets/build => build}/webpack.base.conf.js (97%) rename {assets/build => build}/webpack.dev.conf.js (98%) rename {assets/build => build}/webpack.prod.conf.js (99%) rename assets/index.html => index.html (100%) rename {assets/src => src}/App.vue (100%) rename {assets/src => src}/assets/fonts/material/icons.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-cyrillic-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-cyrillic.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-greek-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-greek.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-latin-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-latin.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-vietnamese.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-cyrillic-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-cyrillic.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-greek-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-greek.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-latin-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-latin.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-vietnamese.woff2 (100%) rename {assets/src => src}/assets/logo.svg (100%) rename {assets/src => src}/components/Header.vue (100%) rename {assets/src => src}/components/Languages.vue (100%) rename {assets/src => src}/components/Search.vue (100%) rename {assets/src => src}/components/Sidebar.vue (100%) rename {assets/src => src}/components/buttons/Copy.vue (100%) rename {assets/src => src}/components/buttons/Delete.vue (100%) rename {assets/src => src}/components/buttons/Download.vue (100%) rename {assets/src => src}/components/buttons/Info.vue (100%) rename {assets/src => src}/components/buttons/Move.vue (100%) rename {assets/src => src}/components/buttons/Rename.vue (100%) rename {assets/src => src}/components/buttons/Schedule.vue (100%) rename {assets/src => src}/components/buttons/Share.vue (100%) rename {assets/src => src}/components/buttons/SwitchView.vue (100%) rename {assets/src => src}/components/buttons/Upload.vue (100%) rename {assets/src => src}/components/files/Editor.vue (100%) rename {assets/src => src}/components/files/Listing.vue (100%) rename {assets/src => src}/components/files/ListingItem.vue (100%) rename {assets/src => src}/components/files/Preview.vue (100%) rename {assets/src => src}/components/prompts/Copy.vue (100%) rename {assets/src => src}/components/prompts/Delete.vue (100%) rename {assets/src => src}/components/prompts/Download.vue (100%) rename {assets/src => src}/components/prompts/FileList.vue (100%) rename {assets/src => src}/components/prompts/Help.vue (100%) rename {assets/src => src}/components/prompts/Info.vue (100%) rename {assets/src => src}/components/prompts/Move.vue (100%) rename {assets/src => src}/components/prompts/NewArchetype.vue (100%) rename {assets/src => src}/components/prompts/NewDir.vue (100%) rename {assets/src => src}/components/prompts/NewFile.vue (100%) rename {assets/src => src}/components/prompts/Prompts.vue (100%) rename {assets/src => src}/components/prompts/Rename.vue (100%) rename {assets/src => src}/components/prompts/Replace.vue (100%) rename {assets/src => src}/components/prompts/Schedule.vue (100%) rename {assets/src => src}/components/prompts/Share.vue (100%) rename {assets/src => src}/css/base.css (100%) rename {assets/src => src}/css/dashboard.css (100%) rename {assets/src => src}/css/editor.css (100%) rename {assets/src => src}/css/fonts.css (100%) rename {assets/src => src}/css/header.css (100%) rename {assets/src => src}/css/listing.css (100%) rename {assets/src => src}/css/login.css (100%) rename {assets/src => src}/css/mobile.css (100%) rename {assets/src => src}/css/styles.css (100%) rename {assets/src => src}/i18n/en.yaml (100%) rename {assets/src => src}/i18n/es.yaml (100%) rename {assets/src => src}/i18n/fr.yaml (100%) rename {assets/src => src}/i18n/index.js (100%) rename {assets/src => src}/i18n/ja.yaml (100%) rename {assets/src => src}/i18n/pt.yaml (100%) rename {assets/src => src}/i18n/zh-cn.yaml (100%) rename {assets/src => src}/i18n/zh-tw.yaml (100%) rename {assets/src => src}/main.js (100%) rename {assets/src => src}/router/index.js (100%) rename {assets/src => src}/store/getters.js (100%) rename {assets/src => src}/store/index.js (100%) rename {assets/src => src}/store/mutations.js (100%) rename {assets/src => src}/utils/api.js (100%) rename {assets/src => src}/utils/auth.js (100%) rename {assets/src => src}/utils/buttons.js (100%) rename {assets/src => src}/utils/codemirror.js (100%) rename {assets/src => src}/utils/cookie.js (100%) rename {assets/src => src}/utils/css.js (100%) rename {assets/src => src}/utils/url.js (100%) rename {assets/src => src}/views/Files.vue (100%) rename {assets/src => src}/views/Layout.vue (100%) rename {assets/src => src}/views/Login.vue (100%) rename {assets/src => src}/views/Settings.vue (100%) rename {assets/src => src}/views/errors/403.vue (100%) rename {assets/src => src}/views/errors/404.vue (100%) rename {assets/src => src}/views/errors/500.vue (100%) rename {assets/src => src}/views/settings/Global.vue (100%) rename {assets/src => src}/views/settings/Profile.vue (100%) rename {assets/src => src}/views/settings/User.vue (100%) rename {assets/src => src}/views/settings/Users.vue (100%) rename {assets/static => static}/img/icons/android-chrome-192x192.png (100%) rename {assets/static => static}/img/icons/android-chrome-512x512.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-120x120.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-152x152.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-180x180.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-60x60.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-76x76.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon.png (100%) rename {assets/static => static}/img/icons/favicon-16x16.png (100%) rename {assets/static => static}/img/icons/favicon-32x32.png (100%) rename {assets/static => static}/img/icons/favicon.ico (100%) rename {assets/static => static}/img/icons/msapplication-icon-144x144.png (100%) rename {assets/static => static}/img/icons/mstile-150x150.png (100%) rename {assets/static => static}/manifest.json (100%) rename {assets/static => static}/share/404.html (100%) rename {assets/static => static}/share/index.html (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..f193814a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,22 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/node:9.5 + working_directory: ~/repo + + steps: + - checkout + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + - v1-dependencies- + - run: yarn install + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + - run: | + yarn lint + yarn build diff --git a/.gitignore b/.gitignore index c4bbc189..4908e2d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,66 @@ -.DS_Store -node_modules/ -*/dist/* -*.db -*.db.lock +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* -.idea -.vscode + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + package-lock.json -yarn.lock \ No newline at end of file +yarn.lock + +dist/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7092fe76..00000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: go - -go: 1.x - -env: - - "PATH=/home/travis/gopath/bin:$PATH" - -install: - - go get ./... - # Install gometalinter and certain linters - - go get github.com/alecthomas/gometalinter - - go get github.com/client9/misspell/cmd/misspell - - go get github.com/gordonklaus/ineffassign - - go get golang.org/x/tools/cmd/goimports - - go get github.com/tsenart/deadcode - -script: - - gometalinter --disable-all -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --exclude="rice-box.go" --tests ./... - - go test ./... -timeout 30s - -after_success: - - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index f0cc78e8..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hacdias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index b238a4ba..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,14 +0,0 @@ -# Contributing - -If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: - -1. `go get github.com/filebrowser/filebrowser/cmd/filebrowser` -2. `cd $GOPATH/src/github.com/filebrowser/filebrowser` -3. `npm install` -4. `npm run dev` - regenerates the static assets automatically -5. `go install github.com/filebrowser/filebrowser/cmd/filebrowser` -6. Execute `$GOPATH/bin/filebrowser` - -The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. - -If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/filebrowser/caddy/filemanager`. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f9aa7c03 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 File Browser contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 5e0fd33c..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "{}" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - -Copyright {yyyy} {name of copyright owner} - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/assets/build/check-versions.js b/assets/build/check-versions.js deleted file mode 100644 index f9133e24..00000000 --- a/assets/build/check-versions.js +++ /dev/null @@ -1,48 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../../package.json') -var shell = require('shelljs') -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - } -] - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }) -} - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/assets/build/build.js b/build/build.js similarity index 95% rename from assets/build/build.js rename to build/build.js index c7c0fbdb..46f904d6 100644 --- a/assets/build/build.js +++ b/build/build.js @@ -1,5 +1,3 @@ -require('./check-versions')() - process.env.NODE_ENV = 'production' var ora = require('ora') diff --git a/assets/build/config.js b/build/config.js similarity index 100% rename from assets/build/config.js rename to build/config.js diff --git a/assets/build/dev.js b/build/dev.js similarity index 96% rename from assets/build/dev.js rename to build/dev.js index 9b42a437..12bc7989 100644 --- a/assets/build/dev.js +++ b/build/dev.js @@ -1,5 +1,3 @@ -require('./check-versions')() - process.env.NODE_ENV = 'development' var rm = require('rimraf') diff --git a/assets/build/service-worker-dev.js b/build/service-worker-dev.js similarity index 100% rename from assets/build/service-worker-dev.js rename to build/service-worker-dev.js diff --git a/assets/build/service-worker-prod.js b/build/service-worker-prod.js similarity index 100% rename from assets/build/service-worker-prod.js rename to build/service-worker-prod.js diff --git a/assets/build/utils.js b/build/utils.js similarity index 100% rename from assets/build/utils.js rename to build/utils.js diff --git a/assets/build/vue-loader.conf.js b/build/vue-loader.conf.js similarity index 100% rename from assets/build/vue-loader.conf.js rename to build/vue-loader.conf.js diff --git a/assets/build/webpack.base.conf.js b/build/webpack.base.conf.js similarity index 97% rename from assets/build/webpack.base.conf.js rename to build/webpack.base.conf.js index f8188022..79b5663b 100644 --- a/assets/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -9,7 +9,7 @@ function resolve (dir) { module.exports = { entry: { - app: './assets/src/main.js' + app: './src/main.js' }, output: { path: config.assetsRoot, diff --git a/assets/build/webpack.dev.conf.js b/build/webpack.dev.conf.js similarity index 98% rename from assets/build/webpack.dev.conf.js rename to build/webpack.dev.conf.js index dd75ac4e..6497edea 100644 --- a/assets/build/webpack.dev.conf.js +++ b/build/webpack.dev.conf.js @@ -39,7 +39,7 @@ module.exports = merge(baseWebpackConfig, { // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.index, - template: 'assets/index.html', + template: './index.html', inject: true, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', diff --git a/assets/build/webpack.prod.conf.js b/build/webpack.prod.conf.js similarity index 99% rename from assets/build/webpack.prod.conf.js rename to build/webpack.prod.conf.js index bf992924..7b4b21c4 100644 --- a/assets/build/webpack.prod.conf.js +++ b/build/webpack.prod.conf.js @@ -72,7 +72,7 @@ var webpackConfig = merge(baseWebpackConfig, { // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.index, - template: 'assets/index.html', + template: './index.html', inject: true, minify: { removeComments: true, diff --git a/assets/index.html b/index.html similarity index 100% rename from assets/index.html rename to index.html diff --git a/package.json b/package.json index ca9bee2a..3620934f 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "filebrowser-vue", + "name": "filebrowser-frontend", "version": "1.0.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " ], "scripts": { - "dev": "node ./assets/build/dev.js", - "build": "node ./assets/build/build.js", - "lint": "eslint --ext .js,.vue assets/src" + "dev": "node ./build/dev.js", + "build": "node ./build/build.js", + "lint": "eslint --ext .js,.vue src" }, "dependencies": { "clipboard": "^1.7.1", @@ -71,10 +71,6 @@ "webpack-merge": "^4.1.1", "yml-loader": "^2.1.0" }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, "postcss": { "plugins": { "autoprefixer": {} diff --git a/assets/src/App.vue b/src/App.vue similarity index 100% rename from assets/src/App.vue rename to src/App.vue diff --git a/assets/src/assets/fonts/material/icons.woff2 b/src/assets/fonts/material/icons.woff2 similarity index 100% rename from assets/src/assets/fonts/material/icons.woff2 rename to src/assets/fonts/material/icons.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 b/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 rename to src/assets/fonts/roboto/medium-cyrillic-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic.woff2 b/src/assets/fonts/roboto/medium-cyrillic.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-cyrillic.woff2 rename to src/assets/fonts/roboto/medium-cyrillic.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 b/src/assets/fonts/roboto/medium-greek-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-greek-ext.woff2 rename to src/assets/fonts/roboto/medium-greek-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-greek.woff2 b/src/assets/fonts/roboto/medium-greek.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-greek.woff2 rename to src/assets/fonts/roboto/medium-greek.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 b/src/assets/fonts/roboto/medium-latin-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-latin-ext.woff2 rename to src/assets/fonts/roboto/medium-latin-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-latin.woff2 b/src/assets/fonts/roboto/medium-latin.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-latin.woff2 rename to src/assets/fonts/roboto/medium-latin.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 b/src/assets/fonts/roboto/medium-vietnamese.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-vietnamese.woff2 rename to src/assets/fonts/roboto/medium-vietnamese.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 b/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 rename to src/assets/fonts/roboto/normal-cyrillic-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic.woff2 b/src/assets/fonts/roboto/normal-cyrillic.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-cyrillic.woff2 rename to src/assets/fonts/roboto/normal-cyrillic.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-greek-ext.woff2 b/src/assets/fonts/roboto/normal-greek-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-greek-ext.woff2 rename to src/assets/fonts/roboto/normal-greek-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-greek.woff2 b/src/assets/fonts/roboto/normal-greek.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-greek.woff2 rename to src/assets/fonts/roboto/normal-greek.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-latin-ext.woff2 b/src/assets/fonts/roboto/normal-latin-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-latin-ext.woff2 rename to src/assets/fonts/roboto/normal-latin-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-latin.woff2 b/src/assets/fonts/roboto/normal-latin.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-latin.woff2 rename to src/assets/fonts/roboto/normal-latin.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 b/src/assets/fonts/roboto/normal-vietnamese.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-vietnamese.woff2 rename to src/assets/fonts/roboto/normal-vietnamese.woff2 diff --git a/assets/src/assets/logo.svg b/src/assets/logo.svg similarity index 100% rename from assets/src/assets/logo.svg rename to src/assets/logo.svg diff --git a/assets/src/components/Header.vue b/src/components/Header.vue similarity index 100% rename from assets/src/components/Header.vue rename to src/components/Header.vue diff --git a/assets/src/components/Languages.vue b/src/components/Languages.vue similarity index 100% rename from assets/src/components/Languages.vue rename to src/components/Languages.vue diff --git a/assets/src/components/Search.vue b/src/components/Search.vue similarity index 100% rename from assets/src/components/Search.vue rename to src/components/Search.vue diff --git a/assets/src/components/Sidebar.vue b/src/components/Sidebar.vue similarity index 100% rename from assets/src/components/Sidebar.vue rename to src/components/Sidebar.vue diff --git a/assets/src/components/buttons/Copy.vue b/src/components/buttons/Copy.vue similarity index 100% rename from assets/src/components/buttons/Copy.vue rename to src/components/buttons/Copy.vue diff --git a/assets/src/components/buttons/Delete.vue b/src/components/buttons/Delete.vue similarity index 100% rename from assets/src/components/buttons/Delete.vue rename to src/components/buttons/Delete.vue diff --git a/assets/src/components/buttons/Download.vue b/src/components/buttons/Download.vue similarity index 100% rename from assets/src/components/buttons/Download.vue rename to src/components/buttons/Download.vue diff --git a/assets/src/components/buttons/Info.vue b/src/components/buttons/Info.vue similarity index 100% rename from assets/src/components/buttons/Info.vue rename to src/components/buttons/Info.vue diff --git a/assets/src/components/buttons/Move.vue b/src/components/buttons/Move.vue similarity index 100% rename from assets/src/components/buttons/Move.vue rename to src/components/buttons/Move.vue diff --git a/assets/src/components/buttons/Rename.vue b/src/components/buttons/Rename.vue similarity index 100% rename from assets/src/components/buttons/Rename.vue rename to src/components/buttons/Rename.vue diff --git a/assets/src/components/buttons/Schedule.vue b/src/components/buttons/Schedule.vue similarity index 100% rename from assets/src/components/buttons/Schedule.vue rename to src/components/buttons/Schedule.vue diff --git a/assets/src/components/buttons/Share.vue b/src/components/buttons/Share.vue similarity index 100% rename from assets/src/components/buttons/Share.vue rename to src/components/buttons/Share.vue diff --git a/assets/src/components/buttons/SwitchView.vue b/src/components/buttons/SwitchView.vue similarity index 100% rename from assets/src/components/buttons/SwitchView.vue rename to src/components/buttons/SwitchView.vue diff --git a/assets/src/components/buttons/Upload.vue b/src/components/buttons/Upload.vue similarity index 100% rename from assets/src/components/buttons/Upload.vue rename to src/components/buttons/Upload.vue diff --git a/assets/src/components/files/Editor.vue b/src/components/files/Editor.vue similarity index 100% rename from assets/src/components/files/Editor.vue rename to src/components/files/Editor.vue diff --git a/assets/src/components/files/Listing.vue b/src/components/files/Listing.vue similarity index 100% rename from assets/src/components/files/Listing.vue rename to src/components/files/Listing.vue diff --git a/assets/src/components/files/ListingItem.vue b/src/components/files/ListingItem.vue similarity index 100% rename from assets/src/components/files/ListingItem.vue rename to src/components/files/ListingItem.vue diff --git a/assets/src/components/files/Preview.vue b/src/components/files/Preview.vue similarity index 100% rename from assets/src/components/files/Preview.vue rename to src/components/files/Preview.vue diff --git a/assets/src/components/prompts/Copy.vue b/src/components/prompts/Copy.vue similarity index 100% rename from assets/src/components/prompts/Copy.vue rename to src/components/prompts/Copy.vue diff --git a/assets/src/components/prompts/Delete.vue b/src/components/prompts/Delete.vue similarity index 100% rename from assets/src/components/prompts/Delete.vue rename to src/components/prompts/Delete.vue diff --git a/assets/src/components/prompts/Download.vue b/src/components/prompts/Download.vue similarity index 100% rename from assets/src/components/prompts/Download.vue rename to src/components/prompts/Download.vue diff --git a/assets/src/components/prompts/FileList.vue b/src/components/prompts/FileList.vue similarity index 100% rename from assets/src/components/prompts/FileList.vue rename to src/components/prompts/FileList.vue diff --git a/assets/src/components/prompts/Help.vue b/src/components/prompts/Help.vue similarity index 100% rename from assets/src/components/prompts/Help.vue rename to src/components/prompts/Help.vue diff --git a/assets/src/components/prompts/Info.vue b/src/components/prompts/Info.vue similarity index 100% rename from assets/src/components/prompts/Info.vue rename to src/components/prompts/Info.vue diff --git a/assets/src/components/prompts/Move.vue b/src/components/prompts/Move.vue similarity index 100% rename from assets/src/components/prompts/Move.vue rename to src/components/prompts/Move.vue diff --git a/assets/src/components/prompts/NewArchetype.vue b/src/components/prompts/NewArchetype.vue similarity index 100% rename from assets/src/components/prompts/NewArchetype.vue rename to src/components/prompts/NewArchetype.vue diff --git a/assets/src/components/prompts/NewDir.vue b/src/components/prompts/NewDir.vue similarity index 100% rename from assets/src/components/prompts/NewDir.vue rename to src/components/prompts/NewDir.vue diff --git a/assets/src/components/prompts/NewFile.vue b/src/components/prompts/NewFile.vue similarity index 100% rename from assets/src/components/prompts/NewFile.vue rename to src/components/prompts/NewFile.vue diff --git a/assets/src/components/prompts/Prompts.vue b/src/components/prompts/Prompts.vue similarity index 100% rename from assets/src/components/prompts/Prompts.vue rename to src/components/prompts/Prompts.vue diff --git a/assets/src/components/prompts/Rename.vue b/src/components/prompts/Rename.vue similarity index 100% rename from assets/src/components/prompts/Rename.vue rename to src/components/prompts/Rename.vue diff --git a/assets/src/components/prompts/Replace.vue b/src/components/prompts/Replace.vue similarity index 100% rename from assets/src/components/prompts/Replace.vue rename to src/components/prompts/Replace.vue diff --git a/assets/src/components/prompts/Schedule.vue b/src/components/prompts/Schedule.vue similarity index 100% rename from assets/src/components/prompts/Schedule.vue rename to src/components/prompts/Schedule.vue diff --git a/assets/src/components/prompts/Share.vue b/src/components/prompts/Share.vue similarity index 100% rename from assets/src/components/prompts/Share.vue rename to src/components/prompts/Share.vue diff --git a/assets/src/css/base.css b/src/css/base.css similarity index 100% rename from assets/src/css/base.css rename to src/css/base.css diff --git a/assets/src/css/dashboard.css b/src/css/dashboard.css similarity index 100% rename from assets/src/css/dashboard.css rename to src/css/dashboard.css diff --git a/assets/src/css/editor.css b/src/css/editor.css similarity index 100% rename from assets/src/css/editor.css rename to src/css/editor.css diff --git a/assets/src/css/fonts.css b/src/css/fonts.css similarity index 100% rename from assets/src/css/fonts.css rename to src/css/fonts.css diff --git a/assets/src/css/header.css b/src/css/header.css similarity index 100% rename from assets/src/css/header.css rename to src/css/header.css diff --git a/assets/src/css/listing.css b/src/css/listing.css similarity index 100% rename from assets/src/css/listing.css rename to src/css/listing.css diff --git a/assets/src/css/login.css b/src/css/login.css similarity index 100% rename from assets/src/css/login.css rename to src/css/login.css diff --git a/assets/src/css/mobile.css b/src/css/mobile.css similarity index 100% rename from assets/src/css/mobile.css rename to src/css/mobile.css diff --git a/assets/src/css/styles.css b/src/css/styles.css similarity index 100% rename from assets/src/css/styles.css rename to src/css/styles.css diff --git a/assets/src/i18n/en.yaml b/src/i18n/en.yaml similarity index 100% rename from assets/src/i18n/en.yaml rename to src/i18n/en.yaml diff --git a/assets/src/i18n/es.yaml b/src/i18n/es.yaml similarity index 100% rename from assets/src/i18n/es.yaml rename to src/i18n/es.yaml diff --git a/assets/src/i18n/fr.yaml b/src/i18n/fr.yaml similarity index 100% rename from assets/src/i18n/fr.yaml rename to src/i18n/fr.yaml diff --git a/assets/src/i18n/index.js b/src/i18n/index.js similarity index 100% rename from assets/src/i18n/index.js rename to src/i18n/index.js diff --git a/assets/src/i18n/ja.yaml b/src/i18n/ja.yaml similarity index 100% rename from assets/src/i18n/ja.yaml rename to src/i18n/ja.yaml diff --git a/assets/src/i18n/pt.yaml b/src/i18n/pt.yaml similarity index 100% rename from assets/src/i18n/pt.yaml rename to src/i18n/pt.yaml diff --git a/assets/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml similarity index 100% rename from assets/src/i18n/zh-cn.yaml rename to src/i18n/zh-cn.yaml diff --git a/assets/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml similarity index 100% rename from assets/src/i18n/zh-tw.yaml rename to src/i18n/zh-tw.yaml diff --git a/assets/src/main.js b/src/main.js similarity index 100% rename from assets/src/main.js rename to src/main.js diff --git a/assets/src/router/index.js b/src/router/index.js similarity index 100% rename from assets/src/router/index.js rename to src/router/index.js diff --git a/assets/src/store/getters.js b/src/store/getters.js similarity index 100% rename from assets/src/store/getters.js rename to src/store/getters.js diff --git a/assets/src/store/index.js b/src/store/index.js similarity index 100% rename from assets/src/store/index.js rename to src/store/index.js diff --git a/assets/src/store/mutations.js b/src/store/mutations.js similarity index 100% rename from assets/src/store/mutations.js rename to src/store/mutations.js diff --git a/assets/src/utils/api.js b/src/utils/api.js similarity index 100% rename from assets/src/utils/api.js rename to src/utils/api.js diff --git a/assets/src/utils/auth.js b/src/utils/auth.js similarity index 100% rename from assets/src/utils/auth.js rename to src/utils/auth.js diff --git a/assets/src/utils/buttons.js b/src/utils/buttons.js similarity index 100% rename from assets/src/utils/buttons.js rename to src/utils/buttons.js diff --git a/assets/src/utils/codemirror.js b/src/utils/codemirror.js similarity index 100% rename from assets/src/utils/codemirror.js rename to src/utils/codemirror.js diff --git a/assets/src/utils/cookie.js b/src/utils/cookie.js similarity index 100% rename from assets/src/utils/cookie.js rename to src/utils/cookie.js diff --git a/assets/src/utils/css.js b/src/utils/css.js similarity index 100% rename from assets/src/utils/css.js rename to src/utils/css.js diff --git a/assets/src/utils/url.js b/src/utils/url.js similarity index 100% rename from assets/src/utils/url.js rename to src/utils/url.js diff --git a/assets/src/views/Files.vue b/src/views/Files.vue similarity index 100% rename from assets/src/views/Files.vue rename to src/views/Files.vue diff --git a/assets/src/views/Layout.vue b/src/views/Layout.vue similarity index 100% rename from assets/src/views/Layout.vue rename to src/views/Layout.vue diff --git a/assets/src/views/Login.vue b/src/views/Login.vue similarity index 100% rename from assets/src/views/Login.vue rename to src/views/Login.vue diff --git a/assets/src/views/Settings.vue b/src/views/Settings.vue similarity index 100% rename from assets/src/views/Settings.vue rename to src/views/Settings.vue diff --git a/assets/src/views/errors/403.vue b/src/views/errors/403.vue similarity index 100% rename from assets/src/views/errors/403.vue rename to src/views/errors/403.vue diff --git a/assets/src/views/errors/404.vue b/src/views/errors/404.vue similarity index 100% rename from assets/src/views/errors/404.vue rename to src/views/errors/404.vue diff --git a/assets/src/views/errors/500.vue b/src/views/errors/500.vue similarity index 100% rename from assets/src/views/errors/500.vue rename to src/views/errors/500.vue diff --git a/assets/src/views/settings/Global.vue b/src/views/settings/Global.vue similarity index 100% rename from assets/src/views/settings/Global.vue rename to src/views/settings/Global.vue diff --git a/assets/src/views/settings/Profile.vue b/src/views/settings/Profile.vue similarity index 100% rename from assets/src/views/settings/Profile.vue rename to src/views/settings/Profile.vue diff --git a/assets/src/views/settings/User.vue b/src/views/settings/User.vue similarity index 100% rename from assets/src/views/settings/User.vue rename to src/views/settings/User.vue diff --git a/assets/src/views/settings/Users.vue b/src/views/settings/Users.vue similarity index 100% rename from assets/src/views/settings/Users.vue rename to src/views/settings/Users.vue diff --git a/assets/static/img/icons/android-chrome-192x192.png b/static/img/icons/android-chrome-192x192.png similarity index 100% rename from assets/static/img/icons/android-chrome-192x192.png rename to static/img/icons/android-chrome-192x192.png diff --git a/assets/static/img/icons/android-chrome-512x512.png b/static/img/icons/android-chrome-512x512.png similarity index 100% rename from assets/static/img/icons/android-chrome-512x512.png rename to static/img/icons/android-chrome-512x512.png diff --git a/assets/static/img/icons/apple-touch-icon-120x120.png b/static/img/icons/apple-touch-icon-120x120.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-120x120.png rename to static/img/icons/apple-touch-icon-120x120.png diff --git a/assets/static/img/icons/apple-touch-icon-152x152.png b/static/img/icons/apple-touch-icon-152x152.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-152x152.png rename to static/img/icons/apple-touch-icon-152x152.png diff --git a/assets/static/img/icons/apple-touch-icon-180x180.png b/static/img/icons/apple-touch-icon-180x180.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-180x180.png rename to static/img/icons/apple-touch-icon-180x180.png diff --git a/assets/static/img/icons/apple-touch-icon-60x60.png b/static/img/icons/apple-touch-icon-60x60.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-60x60.png rename to static/img/icons/apple-touch-icon-60x60.png diff --git a/assets/static/img/icons/apple-touch-icon-76x76.png b/static/img/icons/apple-touch-icon-76x76.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-76x76.png rename to static/img/icons/apple-touch-icon-76x76.png diff --git a/assets/static/img/icons/apple-touch-icon.png b/static/img/icons/apple-touch-icon.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon.png rename to static/img/icons/apple-touch-icon.png diff --git a/assets/static/img/icons/favicon-16x16.png b/static/img/icons/favicon-16x16.png similarity index 100% rename from assets/static/img/icons/favicon-16x16.png rename to static/img/icons/favicon-16x16.png diff --git a/assets/static/img/icons/favicon-32x32.png b/static/img/icons/favicon-32x32.png similarity index 100% rename from assets/static/img/icons/favicon-32x32.png rename to static/img/icons/favicon-32x32.png diff --git a/assets/static/img/icons/favicon.ico b/static/img/icons/favicon.ico similarity index 100% rename from assets/static/img/icons/favicon.ico rename to static/img/icons/favicon.ico diff --git a/assets/static/img/icons/msapplication-icon-144x144.png b/static/img/icons/msapplication-icon-144x144.png similarity index 100% rename from assets/static/img/icons/msapplication-icon-144x144.png rename to static/img/icons/msapplication-icon-144x144.png diff --git a/assets/static/img/icons/mstile-150x150.png b/static/img/icons/mstile-150x150.png similarity index 100% rename from assets/static/img/icons/mstile-150x150.png rename to static/img/icons/mstile-150x150.png diff --git a/assets/static/manifest.json b/static/manifest.json similarity index 100% rename from assets/static/manifest.json rename to static/manifest.json diff --git a/assets/static/share/404.html b/static/share/404.html similarity index 100% rename from assets/static/share/404.html rename to static/share/404.html diff --git a/assets/static/share/index.html b/static/share/index.html similarity index 100% rename from assets/static/share/index.html rename to static/share/index.html From 9ca02c90edb58d206b927606e5bd9c0ccc2a43ae Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:46:05 +0000 Subject: [PATCH 004/134] chore: fix ci --- .circleci/config.yml | 2 +- LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f193814a..35f851f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: build: docker: - - image: circleci/node:9.5 + - image: circleci/node:9.4 working_directory: ~/repo steps: diff --git a/LICENSE b/LICENSE index f9aa7c03..6011a2a4 100644 --- a/LICENSE +++ b/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2017 File Browser contributors + Copyright 2018 File Browser contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From ebdf5a0601a42f9c5dc8609a65c4b49fdcefe0ce Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:50:48 +0000 Subject: [PATCH 005/134] docs: update readme --- README.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73012ccc..587e5646 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,25 @@ -# filemanager +# File Browser Front-end -TODO +[![CircleCI](https://img.shields.io/circleci/project/github/filebrowser/frontend.svg?style=flat-square)](https://circleci.com/gh/filebrowser/frontend) +[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg)]() +[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> This is an example file with default selections. + +## Install + +``` +npm install filebrowser-frontend +``` + +## Usage + +This package is not prepared to be used by other projects than [File Browser](https://github.com/filebrowser/filebrowser) itself. + +## Contribute + +Check the [community repository](https://github.com/filebrowser/community) for more information. + +## License + +[Apache 2.0](./LICENSE) File Browser Contributors From 2d5e97e1408c5ee30a2b1e5664986c6e9176bf94 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:51:07 +0000 Subject: [PATCH 006/134] docs: fix npm badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 587e5646..68068b71 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # File Browser Front-end [![CircleCI](https://img.shields.io/circleci/project/github/filebrowser/frontend.svg?style=flat-square)](https://circleci.com/gh/filebrowser/frontend) -[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg)]() +[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg?style=flat-square)]() [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) > This is an example file with default selections. From a49fb208850b038252ed88f300251e9e17ca99d9 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:52:51 +0000 Subject: [PATCH 007/134] chore: add npmignore --- .npmignore | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..6cf2a6ef --- /dev/null +++ b/.npmignore @@ -0,0 +1,6 @@ +.* +static/ +src/ +.circleci/ +build/ +index.html From a7e4596e97f21a5e3b232d7739436e20fc2ff2d5 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:57:55 +0000 Subject: [PATCH 008/134] chore: bump version --- .npmignore | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.npmignore b/.npmignore index 6cf2a6ef..bbf2c8e4 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,4 @@ static/ src/ .circleci/ build/ -index.html +/index.html diff --git a/package.json b/package.json index 3620934f..52425c6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.0", + "version": "1.0.1", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 8c60cc70848ebb56e023a9c7719ac122c6ccd136 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 15:30:19 +0000 Subject: [PATCH 009/134] fix: notification style --- src/css/styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/styles.css b/src/css/styles.css index 69335280..a61aa317 100644 --- a/src/css/styles.css +++ b/src/css/styles.css @@ -1,5 +1,6 @@ @import "~normalize.css/normalize.css"; @import "~noty/lib/noty.css"; +@import "~noty/lib/themes/mint.css"; @import "./fonts.css"; @import "./base.css"; @import "./header.css"; From 02f6b0ec61bed7cd569222a870e49e7c3a4fd591 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 15:30:34 +0000 Subject: [PATCH 010/134] chore: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 52425c6c..9e399a0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.1", + "version": "1.0.2", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From a78e1d504b71c940056b3ce1d8aab0f45530f901 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 3 Feb 2018 00:11:19 +0100 Subject: [PATCH 011/134] =?UTF-8?q?feat:=20add=20German=20translation?= =?UTF-8?q?=C2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Languages.vue | 1 + src/i18n/de.yaml | 199 +++++++++++++++++++++++++++++++++++ src/i18n/en.yaml | 1 + src/i18n/es.yaml | 2 +- src/i18n/fr.yaml | 1 + src/i18n/index.js | 7 +- src/i18n/ja.yaml | 1 + src/i18n/zh-cn.yaml | 1 + src/i18n/zh-tw.yaml | 1 + 9 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 src/i18n/de.yaml diff --git a/src/components/Languages.vue b/src/components/Languages.vue index e40a634d..3e27d6ca 100644 --- a/src/components/Languages.vue +++ b/src/components/Languages.vue @@ -7,6 +7,7 @@ + diff --git a/src/i18n/de.yaml b/src/i18n/de.yaml new file mode 100644 index 00000000..306c28af --- /dev/null +++ b/src/i18n/de.yaml @@ -0,0 +1,199 @@ +permanent: Permanent +buttons: + cancel: Abbrechen + close: Schließen + copy: Kopieren + copyFile: Kopiere Datei + copyToClipboard: In Zwischenablage kopieren + create: Neu + delete: Löschen + download: Downloaden + info: Info + more: mehr + move: Verschieben + moveFile: Verschiebe Datei + new: Neu + next: nächste + ok: OK + replace: Ersetzen + previous: vorherige + rename: umbenennen + reportIssue: Fehler melden + save: Speichern + search: Suchen + select: Auswählen + share: Teilen + publish: Veröffentlichen + selectMultiple: Mehrfachauswahl + schedule: Planung + switchView: Ansicht wechseln + toggleSidebar: Seitenleiste anzeigen + update: Update + upload: Upload + permalink: permanenten Verweis anzeigen +success: + linkCopied: Verweis wurde kopiert ! +errors: + forbidden: Sie verfügen nicht über die nötigen Rechte! + internal: Etwas ist schief gelaufen. + notFound: Dieser Ort kann nicht angezeigt werden. +files: + folders: Ordner + files: Dateien + body: Body + clear: Clear + closePreview: Vorschau schließen + home: Home + lastModified: zuletzt verändert + loading: Lade... + lonely: Hier scheint nichts zu sein... + metadata: Metadaten + multipleSelectionEnabled: Mehrfachauswahl ausgewählt + name: Name + size: Größe + sortByName: Nach Namen sortieren + sortBySize: Nach Größe sortieren + sortByLastModified: Nach Änderungsdatum sortieren +help: + click: wähle Datei oder Ordner + ctrl: + click: markiere mehrere Dateien oder Ordner + f: öffnet eine neue Suche + s: speichert eine Datei oder einen Ordner am akutellen Ort + del: löscht die ausgewählten Elemente + doubleClick: öffnet eine Datei oder einen Ordner + esc: Auswahl zurücksetzen und/oder Dialog schließen + f1: diese Informationsseite + f2: Datei umbenennen + help: Hilfe +login: + password: Passwort + submit: Login + username: Benutzername + wrongCredentials: Falsche Zugangsdaten +prompts: + copy: Kopieren + copyMessage: 'Wählen Sie einen Zielort zum Kopieren:' + currentlyNavigating: 'Aktueller Ort:' + deleteMessageMultiple: Sind Sie sicher, dass Sie {count} Datei(en) löschen möchten? + deleteMessageSingle: Sind Sie sicher, dass Sie diesen Ordner/diese Datei löschen möchten? + deleteTitle: Lösche Dateien + displayName: 'Display Name:' + download: Lade Dateien + downloadMessage: Wählen Sie ein Format zum downloaden aus. + error: Etwas ist schief gelaufen + fileInfo: Dateiinformation + filesSelected: "{count} Dateien ausgewählt." + lastModified: Zuletzt geändert + move: Verschieben + moveMessage: 'Choose new house for your file(s)/folder(s):' + newDir: Neuer Ordner + newDirMessage: Geben Sie den Namen des neuen Ordners an. + newFile: Neue Datei + newFileMessage: Geben Sie den Namen der neuen Datei an. + numberDirs: Anzahl der Ordner + numberFiles: Anzahl der Dateien + replace: Ersetzen + replaceMessage: > + Eine der Datei mit dem gleichen Namen, wie die Sie hochladen wollen, + existiert bereits. Soll die vorhandene Datei ersetzt werden ? + rename: Umbenennen + renameMessage: Fügen Sie einen Namen ein für + show: Anzeigen + size: Größe + schedule: Plan + scheduleMessage: Wählen Sie ein Datum und eine Zeit für die Veröffentlichung dieses Beitrags. + newArchetype: Erstelle neuen Beitrag auf dem Archetyp. Ihre Datei wird im Inhalteordner erstellt. +settings: + admin: Admin + administrator: Administrator + allowCommands: Befehle ausführen + allowEdit: Bearbeiten, Umbenennen und Löschen von Dateien oder Ordnern + allowNew: Erstellen neuer Dateien und Ordner + allowPublish: Veröffentlichen von neuen Beiträgen und Seiten + avoidChanges: "(leer lassen um Änderungen zu vermeiden)" + changePassword: Ändere das Passwort + commands: Befehle + commandsHelp: > + Hier können Befehle benannt werden, die bei Ereignissen ausgeführt werden. + Man schreibt einen Befehl pro Zeile. Wenn ein Befehl einen Dateinamen benötigt, wie vor oder + nach dem Speichern, ist die Umgebungsvariable "FILE" mit dem Pfad der Datei verfügbar. + commandsUpdated: Befehle aktualisiert! + customStylesheet: Individuelles Stylesheet + examples: Beispiele + globalSettings: Globale Einstellungen + language: Sprache + lockPassword: Verhindere, dass der Benutzer sein Passwort ändert + newPassword: Ihr neues Passwort. + newPasswordConfirm: Bestätigen Sie Ihr neues Passwort + newUser: Neuer Benutzer + password: Passwort + passwordUpdated: Passwort aktualisiert! + permissions: Berechtigungen + permissionsHelp: > + Sie können einem Benutzer Administratorrechte einräumen oder die Berechtigunen individuell festlegen. + Wenn Sie "Administrator" auswählen, werden alle anderen Rechte automatisch vergeben. + Die Nutzerverwaltung kann nur durch einen Administrator erfolgen. + profileSettings: Profileinstellungen + ruleExample1: > + Verhindert den Zugang zu dot Dateien (dot Files, wie .git, .gitignore) in allen Ordnern + ruleExample2: blockiert den Zugang auf Dateien mit dem Namen Caddyfile in der Wurzel/Basis des scopes. + rules: Regeln + rulesHelp1: > + Hier können Sie erlaubte und verbotene Aktionen für einen einzelnen Benutzer festlegen. + Bockierte Dateien werden nicht im Listing angezeigt und sind nicht erreichbar für den Nutzer. + Wir unterstützen reguläre Ausdrücke (Regex) und Pfade die relativ zum Benutzerordner sind. + rulesHelp2: > + Jede Regel hat seine eigene Zeile und beginnt mit dem Schlüsselwort {0} oder {1}. + Wenn ein regulärer Ausdruck verwendet wird folgt {2} mit dem Ausdruck oder dem Pfad. + scope: Scope + settingsUpdated: Einstellungen aktualisiert! + user: Benutzer + userCommands: Befehle + userCommandsHelp: > + Eine Liste, mit einem Leerzeichen als Trennung, mit den für diesen Nutzer verfügbaren Befehlen. + Example: + userCreated: Benutzer angelegt! + userDeleted: Benutzer gelöscht! + userManagement: Benutzerverwaltung + username: Nutzername + users: Nutzer + userUpdated: Benutzer aktualisiert! +sidebar: + help: Hilfe + logout: Logout + myFiles: Meine Dateien + newFile: Neue Datei + newFolder: Neuer Ordner + settings: Einstellungen + siteSettings: Seiteneinstellungen + hugoNew: Hugo Neu + preview: Vorschau +search: + images: Bilder + music: Musik + pdf: PDF + pressToExecute: Drücken Sie Enter zum Ausführen. + pressToSearch: Drücken Sie Enter zum Suchen. + search: Suche... + searchOrCommand: Suche oder führe Befehl aus... + searchOrSupportedCommand: 'Suche oder nutze eines Ihrer verfügbaren Befehle:' + type: Tippen und mit Enter bestätigen zum Suchen. + types: Typen + video: Video + writeToSearch: Hier schreiben zum Suchen +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español + de: Deutsch +time: + unit: Zeiteinheit + seconds: Sekunden + minutes: Minuten + hours: Stunden + days: Tage diff --git a/src/i18n/en.yaml b/src/i18n/en.yaml index 1b3ec70e..0e2459d8 100644 --- a/src/i18n/en.yaml +++ b/src/i18n/en.yaml @@ -193,6 +193,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: Time Unit seconds: Seconds diff --git a/src/i18n/es.yaml b/src/i18n/es.yaml index 78e875f1..8fbc2d45 100644 --- a/src/i18n/es.yaml +++ b/src/i18n/es.yaml @@ -193,7 +193,7 @@ languages: ja: 日本語 zhCN: 中文 (简体) zhTW: 中文 (繁體) - + de: Deutsch time: unit: Unidad seconds: Segundos diff --git a/src/i18n/fr.yaml b/src/i18n/fr.yaml index 5d94d5a7..de5c19fd 100644 --- a/src/i18n/fr.yaml +++ b/src/i18n/fr.yaml @@ -186,6 +186,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: Unité de temps seconds: Secondes diff --git a/src/i18n/index.js b/src/i18n/index.js index 7ce5ffe5..789a9533 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -7,6 +7,7 @@ import ja from './ja.yaml' import zhCN from './zh-cn.yaml' import zhTW from './zh-tw.yaml' import es from './es.yaml' +import de from './de.yaml' Vue.use(VueI18n) @@ -37,6 +38,9 @@ export function detectLocale () { case /^es.*/i.test(locale): locale = 'es' break + case /^de.*/i.test(locale): + locale = 'de' + break default: locale = 'en' } @@ -54,7 +58,8 @@ const i18n = new VueI18n({ 'ja': ja, 'zh-cn': zhCN, 'zh-tw': zhTW, - 'es': es + 'es': es, + 'de': de } }) diff --git a/src/i18n/ja.yaml b/src/i18n/ja.yaml index c3d7f3a5..e0348fa3 100644 --- a/src/i18n/ja.yaml +++ b/src/i18n/ja.yaml @@ -193,6 +193,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 時間単位 seconds: 秒 diff --git a/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml index 8ffbaf7e..f28d0d80 100644 --- a/src/i18n/zh-cn.yaml +++ b/src/i18n/zh-cn.yaml @@ -191,6 +191,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 时间单位 seconds: 秒 diff --git a/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml index 2c32caea..5b7b6e28 100644 --- a/src/i18n/zh-tw.yaml +++ b/src/i18n/zh-tw.yaml @@ -191,6 +191,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 時間單位 seconds: 秒 From 441639a8d5fe8a1139f3f8cd1c3985ba79ae45ca Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 3 Feb 2018 00:13:08 +0100 Subject: [PATCH 012/134] chore: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e399a0c..ae6a915a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.2", + "version": "1.0.3", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From cb7fa99fd3199376eb2f94f31e3d621d0ba7a777 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 24 Feb 2018 08:40:46 +0000 Subject: [PATCH 013/134] fix: select last item on mobile --- src/css/mobile.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/css/mobile.css b/src/css/mobile.css index 05d4d46b..2d1e4346 100644 --- a/src/css/mobile.css +++ b/src/css/mobile.css @@ -12,6 +12,9 @@ } @media (max-width: 736px) { + body { + padding-bottom: 5em; + } #more { display: inherit } From 2ca22656d64cfaa0a9e34e0aeafb1e3eb3fac26b Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 24 Feb 2018 08:42:08 +0000 Subject: [PATCH 014/134] chore: bump version to 1.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae6a915a..8eb823bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.3", + "version": "1.0.4", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From fe829aa850b702588ccf92dbec370cedd3fd88a0 Mon Sep 17 00:00:00 2001 From: Equim Date: Sun, 25 Feb 2018 01:29:45 +0800 Subject: [PATCH 015/134] build: also uglify service worker --- build/service-worker-prod.js | 4 ++-- build/webpack.prod.conf.js | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/build/service-worker-prod.js b/build/service-worker-prod.js index 1179ec20..8b8493e6 100644 --- a/build/service-worker-prod.js +++ b/build/service-worker-prod.js @@ -4,7 +4,7 @@ // Check to make sure service workers are supported in the current browser, // and that the current page is accessed from a secure origin. Using a // service worker from an insecure origin will trigger JS console errors. - const isLocalhost = Boolean(window.location.hostname === 'localhost' || + var isLocalhost = Boolean(window.location.hostname === 'localhost' || // [::1] is the IPv6 localhost address. window.location.hostname === '[::1]' || // 127.0.0.1/8 is considered localhost for IPv4. @@ -26,7 +26,7 @@ // i.e. whether there's an existing service worker. if (navigator.serviceWorker.controller) { // The updatefound event implies that registration.installing is set - const installingWorker = registration.installing; + var installingWorker = registration.installing; installingWorker.onstatechange = function() { switch (installingWorker.state) { diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js index 7b4b21c4..9751b880 100644 --- a/build/webpack.prod.conf.js +++ b/build/webpack.prod.conf.js @@ -84,8 +84,16 @@ var webpackConfig = merge(baseWebpackConfig, { }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', - serviceWorkerLoader: `` + serviceWorkerLoader: (() => { + let sw = fs.readFileSync(path.join(__dirname, './service-worker-prod.js'), 'utf-8') + + let result = UglifyJS.minify(sw) + if (result.error == null) { + sw = result.code + } + + return '' + })() }), // split vendor js into its own file new webpack.optimize.CommonsChunkPlugin({ From 8a764ceb67b98c7983c00f757b30c18e8a11cd88 Mon Sep 17 00:00:00 2001 From: Equim Date: Wed, 28 Feb 2018 01:08:14 +0800 Subject: [PATCH 016/134] feat: varied recaptcha host --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index d2746211..cd8446db 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ {{ if .ReCaptcha -}} - + {{ end }} <% for (var chunk of webpack.chunks) { From 0af5e07eed984f8c15267434c2e03b1ad8822ea4 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Tue, 27 Feb 2018 17:09:18 +0000 Subject: [PATCH 017/134] chore: bump version to 1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8eb823bb..b68a4b3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.4", + "version": "1.1.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 56ec440272b2f6781ccdbd756ba9d3b01ca4acc5 Mon Sep 17 00:00:00 2001 From: Equim Date: Wed, 28 Feb 2018 13:51:52 +0800 Subject: [PATCH 018/134] i18n: zh: minor fix --- src/i18n/zh-cn.yaml | 2 +- src/i18n/zh-tw.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml index f28d0d80..52ef8682 100644 --- a/src/i18n/zh-cn.yaml +++ b/src/i18n/zh-cn.yaml @@ -35,7 +35,7 @@ success: linkCopied: 链接已复制! errors: forbidden: 你被禁止访问。 - internal: 内部出现麻烦了。 + internal: 服务器出了点问题。 notFound: 找不到文件。 files: folders: 文件夹 diff --git a/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml index 5b7b6e28..07607848 100644 --- a/src/i18n/zh-tw.yaml +++ b/src/i18n/zh-tw.yaml @@ -35,7 +35,7 @@ success: linkCopied: 連結已複製! errors: forbidden: 你被禁止存取。 - internal: 內部出現麻煩了。 + internal: 伺服器出了點問題。 notFound: 找不到檔案。 files: folders: 資料夾 From 325e6e0904fca138165ff86c0cd198264b20b9a3 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 10 Mar 2018 13:19:52 +0000 Subject: [PATCH 019/134] chore: bump version to 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b68a4b3b..dee9313b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.1.0", + "version": "1.2.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 4c30b2c665801bafead37fa89712202eac6d0e26 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 1 Apr 2018 11:49:59 +0100 Subject: [PATCH 020/134] chore: update dependencies (#6) --- package.json | 72 ++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index dee9313b..c25453d6 100644 --- a/package.json +++ b/package.json @@ -11,64 +11,64 @@ "lint": "eslint --ext .js,.vue src" }, "dependencies": { - "clipboard": "^1.7.1", - "codemirror": "^5.31.0", - "filesize": "^3.5.11", - "js-base64": "^2.4.0", - "moment": "^2.19.2", - "normalize.css": "^7.0.0", + "clipboard": "^2.0.0", + "codemirror": "^5.36.0", + "filesize": "^3.6.1", + "js-base64": "^2.4.3", + "moment": "^2.22.0", + "normalize.css": "^8.0.0", "noty": "^3.2.0-beta", - "vue": "^2.5.8", - "vue-i18n": "^7.3.4", + "vue": "^2.5.16", + "vue-i18n": "^7.6.0", "vue-router": "^3.0.1", "vuex": "^3.0.1" }, "devDependencies": { - "autoprefixer": "^7.1.6", + "autoprefixer": "^8.2.0", "babel-core": "^6.26.0", - "babel-eslint": "^8.0.2", - "babel-loader": "^7.1.2", + "babel-eslint": "^8.2.2", + "babel-loader": "^7.1.4", "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-env": "^1.6.1", "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", - "chalk": "^2.3.0", + "chalk": "^2.3.2", "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^4.2.1", - "css-loader": "^0.28.7", - "eslint": "^4.15.0", - "eslint-config-standard": "^11.0.0-beta.0", - "eslint-friendly-formatter": "^3.0.0", - "eslint-loader": "^1.9.0", - "eslint-plugin-html": "^4.0.0", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.6.0", + "copy-webpack-plugin": "^4.5.1", + "css-loader": "^0.28.11", + "eslint": "^4.19.1", + "eslint-config-standard": "^11.0.0", + "eslint-friendly-formatter": "^4.0.0", + "eslint-loader": "^2.0.0", + "eslint-plugin-html": "^4.0.2", + "eslint-plugin-import": "^2.10.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.7.0", "eslint-plugin-standard": "^3.0.1", "eventsource-polyfill": "^0.9.6", - "express": "^4.16.2", + "express": "^4.16.3", "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^1.1.5", + "file-loader": "^1.1.11", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", - "http-proxy-middleware": "^0.17.4", - "opn": "^5.1.0", + "http-proxy-middleware": "^0.18.0", + "opn": "^5.3.0", "optimize-css-assets-webpack-plugin": "^3.2.0", - "ora": "^1.3.0", + "ora": "^2.0.0", "rimraf": "^2.6.2", - "semver": "^5.4.1", + "semver": "^5.5.0", "shelljs": "^0.8.1", - "sw-precache-webpack-plugin": "^0.11.4", + "sw-precache-webpack-plugin": "^0.11.5", "uglify-js": "^3.1.10", - "url-loader": "^0.6.2", - "vue-loader": "^14.0.3", - "vue-style-loader": "^3.0.3", - "vue-template-compiler": "^2.5.8", + "url-loader": "^1.0.1", + "vue-loader": "^14.2.2", + "vue-style-loader": "^4.1.0", + "vue-template-compiler": "^2.5.16", "webpack": "^3.8.1", - "webpack-bundle-analyzer": "^2.9.1", + "webpack-bundle-analyzer": "^2.11.1", "webpack-dev-middleware": "^2.0.4", - "webpack-hot-middleware": "^2.20.0", - "webpack-merge": "^4.1.1", + "webpack-hot-middleware": "^2.21.2", + "webpack-merge": "^4.1.2", "yml-loader": "^2.1.0" }, "postcss": { From 390c53097f76fe33ae596cf7b56200000b825987 Mon Sep 17 00:00:00 2001 From: 1138-4EB <1138-4EB@users.noreply.github.com> Date: Mon, 23 Apr 2018 21:21:36 +0200 Subject: [PATCH 021/134] fix filebrowser/filebrowser#312, use prefix $ for commands (#7) --- src/components/Search.vue | 62 ++++++++++++++++++++++++--------------- src/i18n/en.yaml | 6 ++-- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/components/Search.vue b/src/components/Search.vue index b5b434f3..62593101 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -125,7 +125,7 @@ export default { computed: { ...mapState(['user', 'show']), // Placeholder value. - placeholder: function () { + placeholder () { if (this.user.allowCommands && this.user.commands.length > 0) { return this.$t('search.searchOrCommand') } @@ -134,7 +134,7 @@ export default { }, // The text that is shown on the results' box while // there is no search result or command output to show. - text: function () { + text () { if (this.ongoing) { return '' } @@ -144,17 +144,27 @@ export default { return `${this.$t('search.searchOrSupportedCommand')} ${this.user.commands.join(', ')}.` } - this.$t('search.type') + this.$t('search.typeSearch') } - if (!this.supported() || !this.user.allowCommands) { + if (!(this.value[0] === '$') || !this.user.allowCommands) { return this.$t('search.pressToSearch') } else { + if (this.command.length === 0) { + return this.$t('search.typeCommand') + } + if (!this.supported()) { + return this.$t('search.notSupportedCommand') + } return this.$t('search.pressToExecute') } + }, + // The command, without the leading symbol ('$') with or without a following space (' ') + command () { + return this.value[1] === ' ' ? this.value.slice(2) : this.value.slice(1) } }, - mounted: function () { + mounted () { // Gets the result div which will be scrollable. this.scrollable = document.querySelector('#search #result') @@ -181,14 +191,15 @@ export default { }, // Checks if the current input is a supported command. supported () { - let pieces = this.value.split(' ') - - for (let i = 0; i < this.user.commands.length; i++) { - if (pieces[0] === this.user.commands[i]) { - return true + let cmd = this.command.split(' ')[0] + let cl = this.user.commands.length + if (cl !== 0) { + for (let i = 0; i < cl; i++) { + if (cmd.match(this.user.commands[i])) { + return true + } } } - return false }, // Initializes the search with a default value. @@ -227,19 +238,22 @@ export default { } // In case of being a command. - if (this.supported() && this.user.allowCommands) { - api.command(path, this.value, - (event) => { - this.commands.push(event.data) - this.scrollable.scrollTop = this.scrollable.scrollHeight - }, - (event) => { - this.reload = true - this.ongoing = false - this.scrollable.scrollTop = this.scrollable.scrollHeight - } - ) - + if (this.value[0] === '$') { + if (this.supported() && this.user.allowCommands) { + api.command(path, this.command, + (event) => { + this.commands.push(event.data) + this.scrollable.scrollTop = this.scrollable.scrollHeight + }, + (event) => { + this.reload = true + this.ongoing = false + this.scrollable.scrollTop = this.scrollable.scrollHeight + } + ) + return + } + this.ongoing = false return } diff --git a/src/i18n/en.yaml b/src/i18n/en.yaml index 0e2459d8..932d70e7 100644 --- a/src/i18n/en.yaml +++ b/src/i18n/en.yaml @@ -175,13 +175,15 @@ sidebar: search: images: Images music: Music + notSupportedCommand: This is a not supported command. pdf: PDF pressToExecute: Press enter to execute. pressToSearch: Press enter to search. search: Search... searchOrCommand: Search or execute a command... - searchOrSupportedCommand: 'Search or use one of your supported commands:' - type: Type and press enter to search. + searchOrSupportedCommand: 'Search or prepend ''$'' and use one of your supported commands:' + typeCommand: Type and press enter to execute. + typeSearch: Type and press enter to search. types: Types video: Video writeToSearch: Write here to search From a10f286f0ff42c4db56a8857c2c47f3473547af8 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Mon, 23 Apr 2018 20:22:43 +0100 Subject: [PATCH 022/134] chore: update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c25453d6..c6050eef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.2.0", + "version": "1.3.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From d3e363a4d508d3f1c0dd9243047d1de58eaddc12 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 20 May 2018 12:44:06 +0100 Subject: [PATCH 023/134] fix: material in TTF and EOT (#8) Fixes https://github.com/filebrowser/filebrowser/issues/404. --- src/assets/fonts/material/icons.eot | Bin 0 -> 143258 bytes src/assets/fonts/material/icons.ttf | Bin 0 -> 128180 bytes src/assets/fonts/material/icons.woff | Bin 0 -> 57620 bytes src/assets/fonts/material/icons.woff2 | Bin 47620 -> 44300 bytes src/css/fonts.css | 6 +++++- 5 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 src/assets/fonts/material/icons.eot create mode 100644 src/assets/fonts/material/icons.ttf create mode 100644 src/assets/fonts/material/icons.woff diff --git a/src/assets/fonts/material/icons.eot b/src/assets/fonts/material/icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..70508ebabc9992e64f1314f866b2d7ab90438c58 GIT binary patch literal 143258 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�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 Tz+(f93=#~WQ{2=T)EUG9`1`~4 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material/icons.woff b/src/assets/fonts/material/icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..b648a3eea2d16b6ce783906d6b7d5f251b9eb56c GIT binary patch literal 57620 zcmXT-cXMN4WME)mcqqca$H2hA_@#t_5h4N-MaJ$fu5Jtrj4lie49W})3@R)P48iUJ z{=p0kj2R3J47v;q3}z1`-p_Fl4s~K+V4T6gpl;8=kQwmg(#k;pV0|M728|mG3=9qo z3=9ce#Y)M^xrqe~44M)Q49qeN3~WpvKNvnpPb@BAV9+sPU|`??;s5^`nA3AA(-;_Z zY#10;o?~DvlKS5f*_x4>n8Lttjfa7O!4zaK+pU*=85yaG3=G#m?h^&OkCBNbBe$f2 zf#F&V0|S#K0|WbltY?{SIr+(n3=B7BFfgz;Gcd5v;jhm+lABmjz`*c8hJk@W0fbr9 z86M^(=B6?*Jg{M4U^vXcz*r^2Z~CMlzqo{f;UOqkghA^5w=o!1FeWFYBqTgwOp;Vc zV{%GkD_t;y?X#r9Y*r1nDeMfw?2O?IFf~aNk_{3Q&UosaOn#7%kjT*V|NlXwo})8E zR|afkwAwyPuxUwZHfDqwVE(`I;}c-0iFX z+*Q9<^QgUv-`3@oiYjl=ls!{aleRfLO>y5DT^GLaR#5DUxbVXz-S@)gua&=U|H{*E z_U4_%TZ;F7-t>93@wv6-;icuJ{-yb)@n!WT?iIJPzngvg_Wj(qyzg;e_I>+RY5Zr& z{!RPW)~~2vSHJrIn*SUBFSkE5UwlckX!F_Tz0HrCyPIz}FK_o`0nAthn)|1K79J{>#s=73DJQ@HN}(Eo(shrwK*wi?mKM|9OO7luwaGQhb?uE zpK5QVEtu8vOEU6@l8v2;=9*uXU#4F(Iv&-cw5x8VzO}GorsB4{#cRAJ`SUEFxORT& z{@^Wsc3YL(tzTQRrt~aS+Ms5!YoUMN*OLy@SUr!1C@!1e!KbB}@xe8ozunJEXbn@F zzNZIEllzh*huPvTu>Osom3+JDqKCKG>5w(2u&(TfQjXRrf@0O48YC(dt zVyxGEDam}ZGILi__IKy?{V&Q=Dz&fqm97=(le%a)_sU|G)Gb~iuKf}Umqc#6-kAE; z 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 HV)`Q7(bvUfkt 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 literal 47620 zcmXT-cQayOWME)m*u}!Y&%nUIB>jYeVdruNuoy@j6-%i|o5?gjkz-3>=n>;!5#-=% zn^)3u-HCgG4g;eZlM3?$0~Q6=rW$sIXvX!0jlE~rq)VLYWmNcGef61%SA>Fj{-oWi zD-^CPPLWmEqP?WJ?%V(Wl_yhrO0DZ+{8OC2Z!Q;xc-#308sd<;NHL2YFhk$KM zfyKGQcHd=G0zN8W?>z>C}`vAANSsI z=h@j7-jMzm`@FaBsC0489q;0Ag8Tc{nE41u3Q7t(N_Ofpd9LDo^~SkvqV1nfg}W=B zR9~GHyrQ+J;-qvhr{DhmPuuLZf9JPO2w5WZH}ul|q}@&-i-e}Ga8c!KiZES&JeGA? z!OcRI$=d$=eAEIr9@}rb`TIm>9-)hySd@JAjNBHmDf#~j4|(->|I7UXdMSTwj%9fq zV&1f?FaFS*r_)xidp&KHTj;NU_H(XQ-1cnxqmt7QV7Fy*=w#!I&$V_x*M9!%`JM3R z<{u0)FWrw7``2Ql9B{9Kg_kAksi7u|#366}OsyKls$$(U^W~QW&t^JcQnGGWDfgnU zoAez1wfsH6x3j^(*Y>L9#V>~~{%j~!D!ZZDzV?J?)c>h#PIUe0_$+@elC9&C&kat^ z7mVB%9zVUz`7S=mtIl8eT#n&*qo{b=161cW!g1CYXCu8Fs zX*0zY4JVnM8dy@Qzi-^pkmI%J(V=HS_ocH%bCz$-J;acEch{#&D`U5m9Wg7JuXQ)g z!)pKK4C}dik0h4w-{xl>%)ER}pYK`Sw;FHF|ET}-`SRTU_#{u2P$$JyC$Wy_>&0|mJ{@Okf_qw9vNn^to0`MhgCNP_s`icy8Ftc{hpzl*MD`;O>}vlG>Wdlm96JtqPC0V9m7mX0q<8kFj}rerw`pC^ z4oc2iJnO>EDZl=$V{x|Jn)c1I*uQaM>SB=$%Y@Ue9+xiqNXzfMwaz~NrFK1Q<5TY- z=Y&RI*8(BW;scgH=9g#v-TUou_0smaKJ3QE-d!OrM>KgiB*%L!ny;4SZomK1`jT(@ zWkC{p{0WWXxAX#Y-p{sq=akJ*u%Ui7*Tv7r<87bMi=Q<^!SW36w#PCRhn9%6?+!h^ z?eOlG)}B*VB=8)&bGJ?Zi@zu9lP5JOiL zi{?v?jIEa8eU7V3xpr!-zq6_I?Y-2umzJ)+<{J3xy{~U{o$ChWIYw_|R=t?B%)T|G z>Wayg!?*wQ*zCEh_p{L;>zsmEirx9fGqE$!aq@0zVty4hAWUg@FVjV`Ni|h@2@{`=Hk!Hg?Ga>oi!CZI@BFqY)-zD{eRwe|NsBy+3#xC|E-;Odqv=4 zEf7#rTJ>$?oUqneIfl$d9s2#()n>l?e|c5t{WletTxTY}b!bSLT=iYNFzS9E|BBm} z9M?|~F=*Xzc9O1o{cFw?<@$!8+NwuJz3XJwsxf#*R_rxq&e-#M+d^4}t2#xgY&GoX zzFv|JbE=WDy;pYqZM2#2PKL`~pX)pC{+}t=w$bfS9^b#coWXo=cDUE{bFJ$67q6r9 zDCxHGS?l}%zdX>B)Yx}(DaSR9<5B!O#h%G*ZBUwYqELXZiukceOQuD?)hr2E-lSEG2F5Tks^GU^BwT)dnGA{0s*qmw;ea7}m{{bbz zj0O)j1unt1CSc zb})Immb*`{KhLGEhy%{6x*vWwnB=B*rn5zpok8umNAwjY-9kJ559tM_a^hKKb8p>F zX0eDlpmnN+YchLKcI_lnkrz%Hywc}a{OVTUQ9DVu?C-~*pU+#~d8f_SjEh<8)YF%8 zuE@DrF__bPU+TK>NeSQPxVkS~7QK3NtSXl-o0JI%)bsL z3;xpAI<#`}U6J(c+T2AZ$L1WdJNfVC#|2&?%{@OCyZ*I(CAM*Q^fj^0#94CYhkP@| zZ!0Qr`sKZNm%HJ^ve`cqjM!YZybbz4;h)Q<1Et5C_sz@YoLXIaa82Z-*>4r@3PpL{ zwTw4WT3%8gIo%`L<23V@sTZc+_*#>Z<8<`gA{ExNQ};z3QDiY|bPBhAyfIH`=4r>} zH*U;HvA%S9a=OijDvh#*n){F5Udt=>kXvczx=9Tyx?daHg*C=#=*Z0R*Dtu?eZFLa z;N<2D%&cch*>!$qTocRFN_!?{ocOEpI_=2PyE`4{h`MAi^MAv( z>-@2z(zkn5#8xO@+aFl2b&E0MC|l01sCx$12VE3m6vggd;=C;V`D?NztAB&|;&Pn{ zp_i|7O;*|^T+-W|vrs&BwV-}yZ|KbR3wQRrX9!=Hf1>K??*3oO&iKX2#kv3Xx~=Q= zJt?|7T>L|`qwk}q+Q&V%i}fuEPAK0oV@uKFdH(8KkLV^8?Y69PUAbUKxTfdk`v09i zcT@al&;4TfR^zyB*_k!P8B)*I<}F-PC0_g5Lgj&nW5Br?8(kmfg-_}T-Fqo`Ma9~a z)t0)=8SK2DoAz0WeEIKla@xJ?QXP}N@3XQ|mym6fW5)(Gcd(GMH9JF7$ zx9^)T!#RHe+ixC)3Quc)9te6U{->(RD1tG6+Q-E{M@|VkEed$@$L-;+mOl0V-mVM# z%<}F;pIKS>g?Wy3H+#9MlafU9>_YXr#u;bND|t_?-d@MzpkjX2`{LSH^VHN^xF(qT zDBY=1-X9Qtw{#lwA~CuCHxJ4e&3q9sdExQsbsV?m>Zbize<+6Y#;GGhXB;;Q3$7|< z_+@K0`AECMdu^?bqLd;VC##QfyLR3cm^krzD>q+T=#!^U3d2@kDqVh4;i5(^TOR)s z&;QITFMoH4sFLUK^%wkgN+&@7HA9n8R)y`v$#>ViU#Xx|@ME4_jHaEE->d_@p99!0 z9n9}w6?rr7BpU#VPEv7XDBe$@#ZK6PBV&MI{^ z$nv>?!L$5u?gRI?FV*K-GrRu670#^Hn;&VPWs6gBpZwWCyU8pixn=4pv&$`88Y=e2 zzwG!f>281Z4r|i3$fs517a~IymCJaxU9oIbFg*L1Ie6o)@}T!6+Nao$F3l>xw4^lX z`q2j;l2+##Y)Q%58o*)AWN66IV`gj-A26>?dE!pP?p1P~JS_HCSpJ_sEy>ebEXu8P z@r{YfQ*XGX%pL+CF?Zh;O*YXzJt|lB-EVY znuYPX)6ADUFPJS4@AlGuB-kx&$B?GObSlwvqXy$z<+&$1w`*n?aw@e6UhQ=je0F}} z^2~Lj54Sq~dDeAGqyEVe@m>8F>zH0{F}&my{4(~6qEgspbFJkaUI8W?r(P{}ozJ>Q zvDf3cZ-9(*cS26$FTGpKdadSgZ}5IpzJ=B5#=FOvmo9lY{CFdG_+`p$&48_^@0?m( z6r{W>Rc(j(6lWig%Li{P*{*PEPJh|8pBoCBcFfr1Jx6qjknfs3?wlplTJslr1f4Md z*yM3PP}SOY{-IWuEoNbT=gsfynM~ennCz1$WZtyn`Dx!J1!}7uV($c9aSKa0v`OQA z$?sS#j-2dj%MTK6%qEx4iPX9L>JRsmsxo5 z*Rr}=v}EfngCi>HOigkM?hGBO_bm2pU37;tb)L1&%9ZCB)jyP-IP$Dg?%uomvWGtO z2S_ZO5p}}+)Ytqysdwg7KNgnZVign*nG>Y-DY1IvZ;so|YnRkN{PKCNRmeWJX|L<9 ziJvr>Y&qv=_H&E0FWyq|XC z{|7UDo>~Z;ooL{;WaZq>(;Lg>9gJi`bR#cn#MZ2zZ{gJuZ*C)-BNDKsx8de1F7;dD zKkGR*crcuMx#7a$%O)FFcsXyaGM{z+@4YJ_pE%UJtE(!5t_wU`6l1dF)`+Tvl+u7zl5_h6K z>b5>nIU=nh!}}mvV(Y~xS%LN1c^4j8x*odi9TZUKufgogW1lmXHByHEZxHQ!~UMc<29uxYX2L%o35K!JXu4l?6N_2 zYIao2t;Mr^wX{XqCiYhJ9JZchygYb{`p>CH`fts@^`&t`QR{iH1?P^7wwEng7WMa7zStk&X<+s4$IGG< z3k%pq9z6N`Qr7XVx$5Pzd;Qn1Za=kcmBs%lVjOvHj2cZsXqU`O_WQ!;kFjUnS$HQL}h@50l~j zbpL;I?Gu`6Kk?81|Kxw{&$;sNikd&aW1Yk&_3F-qkI7Q zHZwfq@z~dN;=$l~+pc?*G0S-{_avyC7Fr;2@ySiD;Oe6CA7@O=V}+J2$o*|$6X0pm zr|z9Hd3R3r*+VUFz3jfG7(HyS?OCM2xTr<=U&G@iE7LsX>dxg|WU_kW>9M>bF27ja z_esLP?@>+H-bI`YvWWMItC_TLId8<4t6akGR?K+2isRM2F6%s(TfuvZ`!4KXkWhGN z^52HG&rg;(_Z0>Y#Fo}f zI`M`{yj&zx#!RqkUFV~M6TIgx?U>$LB9bvv-0q~+jo#-9%NwVDxSUiUS-M#F=ZkNX zU2ku_wXN?~*p%a)@r?d_Nvvm-9v*pj@mkdDNqx1RHy3v8s!$ONXRo^#!Y5GGcF>~Y z*6!z~hMfHu4hjZ23rRQ12W*yleco5SVNFoFMjpGtCN}wti&oZ|v2**$Gj4lq_Fg(Y zH?H-h>c<|7kZBuRgB2z*oqt^Y$Bb?DZQf=6G3P(1M&{XWUhDca#HK%3XqoD%gP-+m zgL)1L*-k#OeXo7%<^y+E7I{pGHz+O)yM9^KXZ2pSiT47c)H&}9+?XEKP}efoJ7mh_ z>aNwNRc7vv@cXKS4wZhy-2QE?+vtIfvSYj()Jd9NCDTi5OvPxeIv_Oe&<4Q?IB zt6Alw^&fwP*qqh^=o&kqi~l~nZIQM)qsUF^HnXYc;b zDms2;@mr~?IY%PJzgOx!e_nfWj;P{#U7l$#Oc>Lz?d7dHz47+c0bo|E9#VnQab}e8HMeCQF=lo7-PwRqMS}uvg9VFRUb$RHPT8yUh=`<@#b96ozsyY&VL19~P{#M2<|Eeq| zDJ8t$FzX__jmvM=2l6R(4a@En9IDp{o@cIGS;+gnuV>TU?>W-d?yHZ^TD5iI z6yesM_`gh(b+(_)^#9x2mk^RHCn99)F4?BieIk6x1(weaS8Kb=RalL}v%a1=8n>fU z^|gzyqw@VFC!BUDODkP(nYL`9c{9iQmmZFemNU&OH}$T1vh1*c*Oixgsp?BB=CnLa zH?hw#FMIVyVZp6^4LU_`>PAmxcdk{I*X9bDzufc5>yro0PkOSU#`Yc0D`k=E1&jUf ztX{Y|WvcCwb5hIJ{CqqsXQt=d)MG#Pe(jOWITRYzxGla`{#r!F^x6NO$-H%lIODM7 zPPTU3;YX+5ZoQTGkz?*AKldG%l-%a%)=s_C%-u8et2g zPnXY}u`YtKon0a6+N&)u^$eS=;=ah0w9&6?cUAsJ8QGTXUp2_=5OPwUXpF6Wh{r&x; z4=(UXhv=W4J%3xy$K3VOKJn{5uzfth^r$xd;;PG5m!~^la(JYwbn?Mlc~<7G;OLR}!J3-@0&9>z( zLW}0MJpRkN*seXyH=>%|xm!(bO(H|3LIWqmmX{Zgv~7CY&fKV9!l&*Pb!^w2=)+dM zUiu1MWl<^&)e)P2DZN;A(v)#gb?KK}@eMIX%O+d#i}x!mjTh++`+qwv^LEDD9shz9 zYc9GJuey6X@RaJNPRS4VZDVh_H>(oUy8)rH*1L*4 zSKkgXShF_4XFa2SkdN+aTgLdP_;2{y^+}J{^!wN=AKNN)Z_Bcl zPmgCDG*7v4!O4I9IsG!*;$F7?@>qury}~!%{`FDXzi75eL`F69{g6p#pUQk$bpF8< zo<5Cp$3w)-l>GPIe#?3Eq*sfqjO&-1F2^>c=q0B_2|q|}u3J*y?XvFnqA>Azx3100 zZ9RMblv>*e8vhSSeZNEKo=;stqC(STq_`6+FIK{a>n^tqB*W1}RP9))jq`8RWiro=t&I}^)1tG9Y;?96M3T^v|o#J*Iq zeq~Xf`-}2Ri`+{Z8v;G5e6nY>KRgttyI%gZ=#*H=J8c>r%RPCfI%=}*wDC@z=Ci(l zZ`X{S_K6(^&q_2jR{PEPF2&MZEaLI^kX)8*mK|&D^{xvR4Dt~+7q}UtjBh;o|9tB% z@sOW23%BhrSCrl^F0RmU@9u@0Imai?u25k7y{=%d)a4%O`MWq4SpCwxVZY5`j;!?s z>+{BEuM{V-eLs7ShyUNkdCA|{_inNO7PrRew%GLA^8!zIxSbCc`*~_}^3&{_Ns+&M zqe5OD>R7%#!i2*_@d&N#?2TU`PNO0Te%kx}JMS*Q9$MZ@=n?Tp0w*TMJw2Kdbu8%nQtn+&nwe*L&k^naxeCZLj^<>XQ0Q&vD=Qd7z3fvue47rF@&_PwphO*K*HP`cHjc zE_v+RH0wu|T@xyFg3kt~30h9sQzv=!*0hp@2BeZ=P{7Zo{Gp3o3j$W)W2?q5vzFIZX^mRfRZ zS;3R<>)*`oJ22C^eD&KX!`b^QIVxs3%w4uQ_lnis#S)y6dmc9SMN8R!DiRhtz>kq`u(SQ5M;m93b=GQsAx@n8H%BM=4wgXjV8*Gb83zq zdh(8KS=BSHufEgT)Sn-Zu}QBMe0<60^x{Jwed0dIX*(=ZcP-5IneW*plp{6eO4Z#a zpEc()>!$q)4bkD{tZ6F6qeFE z|3*Wub*8-Di+!7AR5PZ#ZDaU&=!xvY)fd+3?msJ^cx{{Pw#4h43sk-?e_em^NP4Ri z=Z2I&9a_h^cY3;~IJofn?%1a0IlEE1<)G5rrkt7n{U5}<_PYAL`MhX}M&@k~5f{dt zb_pGqb6$PYlo7iAZmr3+O=YP*$?jGQQuf45Iu~;4jA_*R;-^#EnZxyp|!;AC0g zKXtmxQ!L~Dtd%JX=G}YK6#u5W>iDra`|itl_xzlGSci{o%^Akedfms~MQq!@ zF)*h>rz^#_^@Yu}48g5o`d9y?{NL5)$RMWreb;f1vi}wJXBtQ|l|6P0P!^3tV?y8?fq{x#Puh&5(63yp*}NE_$(2S8eZC2EB_R zG1rPX7HQ^i`RvJ$d(rTGrBm1L!grbOEoS_m|357Jde1Z~(kf+=$$|-!7y0$;u{`J& zUXfI;W^_$`)0#I2cAen-s4JC`sc7(c2ip~=phYHLwd;%2etyl77P#rXmfcr==G93z zTAHM{i@n-BQTOK0ecLZ`a9?ecJd^))Yx#=B)8}>BIkq<1E?rfUugm%Qm-9vy`x!o4 zbgie}c2+7hNzuQU&+VdIwz`hvUw%2~s+-Cz?*g-z7ggmG0=R$seQa9Wsw#L_g?~pp=O@h!gL}4xoR7BT zio3eZ&5N08quPGcTsHB}cgd`IJ(e?PUbxLUaqHRF1|MFDcE@fy8_NIBsO?A1ngdxI zH~GEK+V?tTQm*4U$H)2|C58f9cN_>_QoX1`?s}DB4ZqjwihaKGRi`;6-co+;_$uSe z`3F(2>YKB7zfWCvIa&L`w_87sE_3F)^X>d21^4wEJKp#uXGZBazD)b5`Yhho@0?@Z z^GvqHpYOL!+bUhsWdDlAW~Xz*zUNVQ?dN-)5`UXCF>czG^V{a`>OaXE+uV4ZmCcQ* zOt*ZM-Odl**ETP3E;7F;*HrjBv+u9p8N6#v=!*9Ug_?+1hT+rORI z9{2fUyIk$3O#bW3o@dR@PdYg(I=1*_*VAiven(pOTR%VH%D1lW*T?L6bx$TW-@bER zGd-^4|6jG&JnQs@G@PCZ=Qd|;_hw$}e0!C!?6%_U|GIq=K1Cr{_}8x8qcnw~zS#1x zgyNe|o(C61_%7SPw3Y31U$5%nV?~=hV#q7LFjkaf;F~X56fjW&&J)_KB@JhkVJ?cw_!!QvEHeP zncMB3T1-#b^hAFn$JT1mQ?F#IA5ICXn%FW+K|Rx`J45%?1D(YT^G>Zi`Qgr+$EQji z-maa(V#6hq606CL44X zq;Q?F)haZ8!uTw0h4rnnD!y^%TfR7}IG+xP0K zwlMj-(v(g7)|+nrojs`yDR3<_;dl2M-7`FdW% zhaVk{2W%=CmQ7dB5>{Qc^U9fv3uM)V?my?9c*ySSCbdy^I31%mjzAxUi-IYMpPK>exMLFch9CRH_EQ_ ztoA&z+i5}a3;l={FQ2E?E{y$VR~7WZO!3U}D_{Kbv!4nmtoq}3<%L?YV_U0@{wm=L z(T!hJOge8@nE&ZpAZ@mftEBls>gz305{kT=Cts6$BC^fZ*__>6nD68Bc|McN3b(F( zP}D5-ZQ7L=Tqaew9C9BeZh1VnP1iSOl0!=rhuIn)&XzsfC!A+n_g0DX#R>)kt&-QGE9<_AMWUkc@xQ`%@z~*-fY1t zzK1hiE>xZPC^K_9Plo3F^``~Je{1jRm#{l_()+bpNNUm+uUbwmL$SGMxwndbs;t`l zHbK+=!o!@p2N#;-S|;tVD7WZOWWi2!-V>G1 zE!GNVy_spgW{+%%X3?|9cTC?K9K0p##nAtHogwqi&uYyC0H*|}NL zZ{%M6|81!^E%UivvMFY-z`Y1+{wqi;fq+iX=TZ|4T)1S7PRf2bfY05I4$tSj6vm#{Z!M$UQs>{Z;0!?ylUE?6%sQsdw8{;RjT>}?;5)4EI7bN)D3pIvlt zr_{G#>-QQTSls_8i!a$_{>Qxek@+jJ-1k~@x2#!r{bBR1856$ct9vgh`m2?duzR=`>Jy5E~+h7{~@p_y_WM(g@$_a&%H;jj^;1_{k-|s%*0uY z>3jV}h59o;B|4t`B$B~g9JX=V+3PvGm%J`&O{`d>Z2N1ngwZz>c7AEgpfIUtuS?dS z=AHdq_3Z-ryFqpZi+J^dj;@+qKH;5alc%Q9Tcbxe-1o43tW@Mw}0R3OZlC+c`&9x$9+Rb>Q%o-ZErI~?5<8c zb>+d-B$kVz0)5}&E03Y=3J#zc*w=&s_b}+k#=<_v})E z(`Po^W4vDL$6n}ecg%6+^66!2CxhI&q{H}(r*D5Wb-w3I?_;;#KmKQ=8t~|Fa-g61 z@!Cb4A1gn}z3N~z6ugu4H9+C`iEggLstaGV24A@sC?m6lS*?=s48Qs8t<%07dc*YB zaKS=m`%;dK!+Q^|d6sJRF0SiE=!4fw?*_yyouFQR-K?8ALs!9eLXSPS?WV3BXMXaq zTyXMys+4$ab?@h+9~@=B>vr!AO1gYX?scV<6|+Ry;+8F&Uv1kjwe4@!WuGa>?xe5! z^iq4O#hhi|w|Gb$Jd=@J5x^hIww|qQUEPwj-d4tCKNo(O=zdK`bsNj1=%^?90x_F7 z6Y_g93ae-HT;Y@{QCqx}VgD(ooko$Z-uoWzoxQSLtBY?%PHEci^}8#!KIf@oc3Se* z^VC<{mUku*tdb`_@U+Cn%Dbsd;RXW3V0|p%d)On z*lHV-bW-ZKRPUzCwd*hVei7K){-_{e-xJw8VtL;U1KX#4Ieq;7ybCe!47Kky)_(2z zoc;f9I{!S|sx~|S#T^1cGGQiSOPkbIeawq5U{WbP#5}`8X>LxD<`R)Zkz#8$yk0S{ ze|P?2rn}DifjYnR-StwtZ`bUFYxT_G)X+ z&@3_Y@=Pr(-+v-c(P(|kjD(&B5oRr}O?!Rpe_d){mpOZvOVF%>O>Z5l3qt>{y%krx z>sLxCgU&3|QpZ%FA4qR3T-ceRvORW!M_64ev_znF4GXrBa<18u?#Y_0_9ebp82fuN?vt z&M(ZE{%&Ey!wWyvEi^b8j_bQ@id?;G?d>G{-A|c#n~t~4=6K`MbTRMDl)rwmYm5u- z{WOz*%IRD8gfsRC>xL$kv-9}pb#cx+rM+Bb>Q$~S_AEAw1*(p{WVPwplX-R4d)p5O zCb`S){J7}p$5a3Rr0!fgyE5IWYyYNidl@&)T(B~?Eb=YS^P3N}uHSse#((Q^V!rk9 z-TOYd>^?`nl&YLA2+Qoe_ObB zwqNbe<;G2M@$XchsnpJsxykmZiDAiu6RRG)F<0ixG&y-RVU2)i{-G1$BGY=KRBN&y zRQs?uU2Wp}bIfJt-Xja+HmoWac^4+$>36rHsul{UusX`RnXBBf#_SHhW9p4l?0&DG z956Vtv1#vShX~hG&e{wtD+BpTnGJ~@560NaoCz=SZZMk@*>r%(k zh0_fd@LYDX%6RD8bY<1S?=v`ZTfV-#Sza~2=fLSbuivvDQ20`Gf9D59u8y=ju8-!} z{$7`C)$3}ibD^y}?}}YXT9Eh_@oD>`W#5H0cC%MbX#ZRy&TKq)3-h}Pp5YEF^jr$r zwGPbHKRl&C(|FqZlP=wAmqS)^uVdP7ynVX|=lRy2w%t3*Uv4y5>{+!;%I8FZ*u)CkCpH)6$UgOF>P0I5J^ZJ<5Biu}D&wb}(ns7W@?ftCA zbESDQ${$4fk8n4H|75tEJnyi{PtUzoOJm#?Pcd_`YV@j^807o1f8K-8%uLQey(bPE zrubZ(XKYs&kr;9J%poDoSH8_$z7Jnra7{Ph_x8zL@=xviz4-sdA^V@ivbILmCgkSd zoRwJE&El{~xqGwXq{geCukbI}9c3-R)~~iS`|_1N%30mF8dsZaef2n0bA`U*=WQB! zOX6QLmI}-?xizKO-|_awZx2%EU0zaIw?~>uOzg%YCYwNp31auQm)@0~d%EBq^F+%Z z?rt}fJvVsI4)lD?{@1VGLZvwMuEY0&Nqu)}>(=!uRh(Jn&h2-@)ou&Du1>n zu8XT>0-sKJ=DF3jg2u`l4eZO0?tEj?du?yl_Tuiy%qP)%j!h|9_|&a-Cu8jHvv)28 zXGN^uYIC4t^29KXwquWcw<<21ws>xH$;VBPKSukPg)V4v(&WAKaAWcFyu%ewS)$&} zV)-yfDD~9b>QJ3J^RJfW^46zkIJ^5^c9&;9nqsQG#9`Y30R zvHa|n_~$x@6h8HcOg!ekYU#2wZp_=J39+74XcH6Ry zRf}34D?Ezc@L1bH~Hxc>uFi3M+ za`?eZd0B@q3578!KIhvzW%i0UP703%78u7|S5dSvuSxm-{d?bqO{EXB6PNBO)jsY1 zvhDPa2+^2rUUN7~=iKt`6|M9Y^=v zB6`N)aqdhB@n8EAbbt0{q;&23x@cATQ`0-T(_S$4>b|IZe|_7Bl?ID?HJ2r(mhgML ziJjo;vgyDXQJ?c0m}iL2O>$czcPeykba+ug(}ykV|0VzX$$ZN~?9}{3Ei7LuV1*S zTV394Rpjy?Tf8*jZ`A6Yi>2%X=U)5WQeNdCKgqTD zZldGVr4jpVJvO$pb!^k9PS1$nuA;6Z6EdY!d`kDWR-ud&VW-5+f3+3`-cr3Syg}Q( z@Yh4XV`sE~yjoJIml3$EZ=ae--H!nM6UR(e8klWfawOzV!7q`Y3f@1m{$#D?Ke*sX zZM}iT4;|@mzbqxX7%kYMU5-sM{{Hf!tGwlwwcG9IiSlb$U3&MdavtB&9!bfKfwLw| zF+3J_zdin>$jUeC-t2oH$ESYtkB5bjm5TYL+xm*n1vJl9pPmw2&bYNB^Pr0OlTQMH zEnGk2n!i76W?3usu~x29tE(&gN+PRUrcChbn;N~>s{Tpz2CE*)Uz1mJX2qFb3-j63 zGT!X8*_wNaBV=(_#*F>>eu1eaO$-N2W6~GQ;IpZ`C|2|6 z4*zk!)vp6xbKH+L7@GITq|MaqNRdpBY)r8Fe@1psf#k{C0xO)CF4b*QP^|B7`j@7A zU|H}ck;;lETN|&%&&}}K_Oj+2%O_v0mj}6x-*VUg(yZ`MW>oNK_xxcXMjy2fzNUzQVoV+*aB@>ghW+(KM#Vq;7BDYtdu}$@7!{ zO{iGAGi+s6;!WRYEx~#VvN+DUW+oLsaQW(cD)POa;BMt6p+!5-wk}D(-E8`V=gnP? zPhb20mc^`a;7)#9=4`X*Hmm)y1*|QacMmSRHS=}4fv3@)>ace6Q{`2mb^k6-h+h6Q zcZ=#(K{GdxYd-&D(w>}AzOm=(rj21`*Su_$y=oRKC+DeuknG6%pK+&pn-qWT-x9mU zPx*8XTE1Ck;-evPzed!<{RhjI$A4V<>J5LIO_M(6>on!e1c#qr?q4~iv|`bu>w9`u zE%{H}v0`QPOFkKYWK(E1!@Kqg#ev&rugN+jo)}s)XLY)H z`Oh==XJuP$OK1IBwlkEM>)zh5U!6138=fqesrK_|le(#!5K)}+g(+ZS{!guGa-U8y zis-q$b$(T^+#GkmGE*u3>kp*43M;}-Mu+$);>Z`+K%Hr3gyqXmvOsQfKTar~K@B0K52qDy@J!i2iIKhN*Z zUlPkKxz9O8&7kP5uoJ)Qfg{U|Rw-CJE&jRFQh%*;fk)(@Ag>ft%_e1s9|}$eulB49 zv&~4|e~ne-WY^zpfoaLlE^VG`aDD2jIeCvyWbvJnGT53Ev&DR|QJ8bUw$o2y zJddf`-ZORjF(JnC!ImvD`@U5E6Q8i4Kg3*mtJs>0;j=uqgdX`2dd51o`1%a5vgx{+ zqVKM#{w&n~eM8HWIJ)Zo99W|D&dg-$^A{`n7M)9&q`)oBvLc4j z?Ld%kSKr;uzbua2zplLJq3X;;hQy!7|L;fLe|1x~*sR)X2Va(g9P_I2(0895tVRKA(yu+$VCto1#?^C!`%D7fdZv!(D|HZdjk#9P;!bu{-q zE6L+2E@>_~agc%SUQ+H`rknS4lN{3-d$QG)Qu8HjP4pjXPjWi_%PRA43D3N6O$o)@ zPLgjAHE!H07r7^h!}!PMR|x?uP2oRR8tu5QJHhE*g{*kE21C|@(mB4;FD>;PoMx9k zTbwgHB2zk7@oAaYU8z>LFyjn^fPdfA*F`ouPpi$SJ?$*S!hT`4$=)s(!;_y?R<(MI zw!aXM<*jg>AY3P1zIn==SZ=;II!zDOU0j@MV*jznZEm^v6K}JIQ$Lsv2nl$esL5tM ze$Y_*g0bN=@3lSqSoloNIlRvHkY98!U)?OJHRWqxZ>f}l{k;P(pQtI$dKLcPT%gOv zsOOS8_k;AwnSQbJM>2!-PHNy+XU&#%axB*+_DVQL$~upZmT-=&rcw> zBEj$S0`6N1x!cyHZ4Nkk?a%-FWgLGlq{Jj#*m7qRV~M-fCf3_NoRuj%=N)|Y_p0rp z`Cs-29?jKp?C!pD)S8PY>zw&cu{A#ziZStg=G^Eaez&;)-hv}{{gS51pV=`%PsYTl zVKu{D9S6<-YdgM9p8ku8FHik?e>3}+w-4_ue*Wii?2E&j|9zeD>7Q%u-|3HdzqD|* zF*;BD%QtJQ@xIeulZB+0%={Y_eNEH7f9(OzDL)qnZ<%@Cd(**_CRg}mmoZz&TVQUbZXKjx~QbXO-yU@{QIpoi{2^Jd1xd?dq1-X(`I>Vf7p8 zYR@GFig4$g|Mgg7sieuW`uw@F{ZV~ay~>O>tkZOU`K0sRgo{>JYxbJ5%gAThIjuSs zAhzUQ_~A2~b=Mx7a^1q3UsIaf?N(IV9VO0Ne_PJy%-J%jqImV@{Bu3^fjYecrImTd z-(348d}FdX+a__Vy0^SFf6ta!Onb4bY{8Lr{K0V-#UhkH-V?lj?e+JV%Zu-a2Y)_CDKs(Zye)Xi1Oq zku!buiynr>ds$xUcz$}-(@48JuTL-DH{;vWC9Q$Y+5TsKJ=*Y^!}7AJtlK)4Eg5?4 z;S=-@>KB~3_E=tokCkV}{w4i4{kqxR%?rOK=TEnda4_V^E^ZF}^f*%MkN*ko^~$#HhOKSa(J&&E(8a6lMyvvGzI@Tx8XiPdCwZ>qA zsO?ExkJ?>1iK`oWO^O8m{I&;a{6AE zn#z(ze6EM5J(BJSQH$ZeH(@~?S9;yqGO3-u-AcPZe_<*!h;9Av;xX^6fJuk_=A~Q0 zvQP6>>Go}n`&*In_TG+ro9{dm$S<81@ZDAFY|Z_r$7a2qk#~0fmTM0~UVm8M8LpmN zwNuUS`xXX=_c*75$^n%@fuy3RJI)>d*PKaG7r4h89t!!)v@>pE<9fE&gMX z#G#25>59y;`5Dh1iJ3(_n%rMB@zlXh|888rbamx1p9+@LDwiAFYCGgv?~0zu`XDmb zs;FA>sp-eQ_MM??C48M=tHOz$NjCGasoMK4{*$fb+7BR*T2`XNu2* zCrcGd3xsM)US3;y?qAIE3qrM8g+UjlFNmM9{L%R}f|qO=dn9vIY|gD?dh^s&yFXlO(?|mq4q%m#7ve`xKEwSZ&@WdGWB+ne8Vm z6vCxS&ol&>F36i8An;P6I^pKs)-C)K7YSzGs-5o;(&$;tJb!uBloz|SjOy&qR4sFu zmecu7cc$*`-!8g~?s?64FZN2U&gMj-{9mc6l>TcAFR=^Glz0A`KHYY;rRB`+@i<=`@FOXwE6keyM7;RnQulP4>6z#5Tjw>NvETLP{`Q^n)!Fx- zPy1fx`Y}X4b3sXG9>umXuiay^~M>_b3*igPSv-(o1!SKRqB^maV6?d+Sz>Pn=78` zoLC~L`2N~qM!t;8_4N(#L&ehV?E8BcvsNbFxHZ3tXS(|Z>x=@+ z)rS_Hs=2|jOo8+3`3d35&4w2)W^#TM+1+k=s`7Nu z|4cv5fAD9??d4eby!XWE&ozDt97#)m{)zA_`SR?MmdA3%&yiJim2CAh@9FDl8~${Y zxT~bISm6Ozf~mpl)t0xOv?aHF{1g;rlVG~=-P)cNJ6?+P*jSy|WfdtKHEY=u-9W?_e;TvS!M(|#w0%rp$*TKVt>Yukc19$6G*H)fZA|>l4GV@nY(Gy|%dhc-K=G@1YH?J=FWBe!hY<2g~ z&wC78Cx>ia$0YGh-%h&MvU1(rpWD1+<`_@RzWMUMx}5I*Ni*cPOjj*3+SvIrcLI+z zr>4vNZ!R4DRSP#2B~0I^uzwAIo+Oj$3eO%T8?RIUmm3{i&~j|WO=ay50T*u_j9oNQ zcA;j1^MOA;q8_Ps4(3y4suaHa>U3h!&T|_jU#pqlE?Qpo-DG}W%NCJYQJLl&7K=|c z`d}@r`9*8XnJIaPRZK2+%t>DOu=}{>jViA>oK;H=i+O~oL}UaE?wIZK^u~*6Z)FM-LuWW>yLVcxZd2~_mprm0QKL@jb!+cU4o`W7fX8`% z4zj8&U~v9xr?Tm)+?RcPYhDNF9M)A9lw7@v$!F5!u7(AVUW-4{bxU=XF}=9p;*2i2 zsM>!be{Y^)ua?$OdyqB5!T!s^*#a^tmJ{MCCLR$l-W2cA*WiEpXQuqk)N8Z$>|BuJ ztoAPG<((WoE6JUEICHNW82o#8zG9o170bEGE1jMW5y1fInd!w8q{L=%9+sWm=w;Wfcr?KKJ->oRxSrmoU17&x{j7cC#(ZwG zm{io`go>T+7alHc_`h5tD-l$h`7M{q_xWLm#`g=mEae*vfF@+}2(_HX_wI;C!B zMuXg5^Zys#KB`z1z+xn`Nb^rq_b!z`XR-{9CzVXuv-5j*={o5v)?N}CSB_0e6*;)< zk`CLGv)7a_I;c;2)+B%KXm{S0sLE9vkMDlak@mJxpyWfSj?b@Ula~11j5eRWL*tjh z;ki6FRWeW5CS2Xg<@4cepw0C+$3tIhZm2qE$K*Nb#-kMregsR#usmaUsOlj)tL|C^ zH~(Kjo!V5VtJ^FVXjq=9y33%%|8Dz?>rOraPMocuBroVK5Uro$)mnY8KVeN&eD{lg zrLsw7y()Vu^VAk;xyP@ONPP0<#!JSPDH-n9uiM95&W;i@a$B`yVxH9$**PoZTJs`| zIXiL#G6c-$%C>Di7Vti|FfnYQ`4JGkDZ=We~!bK(IL>pCrEsDhg%4;-7k_%aaLwlX1xtQj*=ge+ z7;d7_*=)36%_Tlt+5i7-4Vl*fF`h z-Z$d>p4F!|?C=O;yI96vbjf(5VYjToYpEYStr`{+V~)38Gx#@!J2zuS@S{6fm+gc& zqD}~f81<>VagMkmcIvom^0R*e*|(Cm?f>9^Ix}G1zKTKIiIfR~AZ|`Je zN#rid5y`FKwVbs1K`h^cLoQ2WpJb*7p1Gwc7jD<}?5tFtQBy*o!lPj0BDHg$o2TTt z2^@>v^1TTX^dC%tA1YVs>&l1jfDwr94DA?LBT+79rvGhdN z-rf$o!xy{HCH$NH**CfB^`6O_Uv#tGP(8l5FT>1el}$wLHBXBo<9%$=tJid7+C9;~ zP}r0pa837zGUJ-~7kmmKt}j2xzljfg^!~^+hO@sW#Yn0a`Ana%sPVb+ZP!n`j^=F^ z{UD{Y?Q~RKSGtC*KdY!l@ENVo<-seBLc$ndnU|e3I2+v8c0iBgPrPRCi|8lKrzYQA zlesp*%h{3Dxa-J0KH(!t0Y@$b*G5$>Gyb{iiqX{Dq1h9-R9q-_DlF`e_M&cW#H#L(|p%$90@lN7~RF0OQ1P~m-8!jA*aEH1N^?JH8{_<~G&qO$5#MRix+^wv+*}PXM^6h=U zEkyz{ysP?jH*IRaB)@vy<^-O~8V0>~4YN02jvGz?sm@pCxS)Ufgc9eETDuauV;28Q z{q*;@TidZ??I%~S&$(Un^6A>lTFbHt{Jj5+exBCPy;=73>f2qJ_n*A@@Z-jZc_EEb z4iq8&{?z;~`1B9$jgOuvd{N#-u%ZwRv!H!CI(hZ9{uYJ7mH1eBfLQd^##pu$Ml!Jwp>zI$-eKe8LA^Mrb z-VTEk?*$*PO87M)cJkN7wd<}orPr*#Q8)c>)9Mw+Ctt3cy{+Kkti6`v>Xpf*Xtdw*8EYHAs) zpi`0->uCw$RnsCPCN)et7gWC@JTP?2(Yc>9KZL(?6=YU!WZ7UFa&1HUga<#Gq8;X4 zxgvYf{7;8@k>+ac38GJ=ug#PYI5Tfbf6ym3({I5>CnX*&*R{Iz*<*d`okRMwnqU3* z_E0*-JL%z@0_C|2bvTZG{2lo#i0f(J#5cY#HJ>k^t1WTCcS{7L#_d&$Cq=a0&@@kV z`19joUz5h6*OS`+ZK`OjiZS5qI(E49!-{L^&yCkkoPU8;@xcGxJ1+Hp)8q7fTpOb- zzjpuY$@f?3)>(Jx*$D1VS-I;%gVPmJ3C92V*Pg52se3r>qv~p|%B$PO*WWz3g6rDu zrMmLCGGaTv)8&44zs~R;?)b4Elaw41k=FC>TlCx7|lAX3->(g&Xryp@RzBNH-P2ZB;Q5TO|KbZ4XM)L74 z`)bP;5fkryztegRF8tmSY9lmL?!d~-Ouc@M^FiHeD^KouaP0H^6vJl`8@oPKJo&Qo zYsdZ>1v|wz{`9pn9XC0kp3b57RyM7`#5kT*<-^;qzAO zERZ{L$iH#s&QJeWIhg9HM%vz+(r7In@JFZV7I(naZJOQIyiZ?GT9&ZF>~pJYXXkID zBPBkD-@~Ww`@BF&OPqV>1ogLyEDii-Z~xltW@BoZF7eHB|Fn~tk|pMgEP}7gip-g= z_S0g&y56tQo2vEK-v7wk-6!9?@g*WKgz3+EO7`(C>}q zlZ3umU4FBcU)IunuBFkz^iBK0OU1lxlU{z_`ekir@{BcNviE{w44;er_U8`TGV%LH zLCqUNpPqJ#sL2`pz8;}7GpYFM8s#0YtXfz5+%bz4&e%{}y?L7b?CVc`pQx^OH=48S zfJ^nv#2@L~U$KSk*zwGfZ>qRWN{f?IJ-gAhw>DPIHpZ5wt`f7Qb5fUmo4dkX@$;qk zcHbA6-@mx-a?)MtM9mj@4Prau6piAzf1I9CHBqrzVt$fDg42Zuopq}n|9QQ=Un_Ts zORb$XJ*XgZSuJ;$s>9v;|1TYx#`3hzOhr~D#VX)i>{+Xz^B=_@zJAc%E8(YRe&C{Y zO*)G?=eg7ayJY5i|H#$+?0cy!Bj{C>yRNmGbMi#9*aeaIuTE=NSj_*VEUfxM;Y01` z0tyl9D);c8+;n>0{d1G8FIi{HPVe7K7vcp{^*ZsaaAInVgGUH=`o z-nxBf`3S zosz8Dh1G9@rpjy88aPdO;cKVjd-R*$%lYPh9Zzk0(${-M9jr`K5C6LP*q*o}6Tcpb zst{{m^-MbG;%1YgZwc?OeRTO5divFe@B?h_!u$Tt3!-O8Lo8A88??E0N`A~j_ z@cB3QJ06}^D`_9~yCUoIo1+D4S-L@?>66+Y|4!U6so9rTSMtT9RTowqo2)ZKM&Tu2 z;ghKKryrJ?e0)4(()HV#lLF2+9@>BQPOq}ycVoBX)@qxt>8q_evO(m0m)q2HveWu@ zKHnw9aPw*U*)zXR@0X~3B=st2<7Z$gjBWKj1)HWUXr=DK-HmGtMG<$5`@sm^XK|JL-W zcbIoSz0a$_V%%|HL3GUlebum~HWhkXvwj}mbja(O^O^m}7l%D_eEGThdFeLAYZFD{ z#;nWRhL|Nm{T`E7M{6sAAo6Z?l-PF{xQ@B;WurHnS z<)Ee0%k%o$rAyy__f7M3e#nq=`wefMKZii!XVWNNw^aYjZY65-#P-Uad$-lt_Wi*L z_L60Xk5{O?zsi)&%s#J2QEp4?0i(6-oj2dyF8tPaSLrDOzx1V7x1(e*Ni}>N@+`B7omwn&qKgzgx|( z?w&E>_uhj+ZCCwQ&WieyounC`am2N8xye?Qi|ZHv2-*_4yUcjb4hg%L`(6cP%VgPX zZxTuIa%G6RId}2$Vn?k+(UzNhWom*;G<@!NvM=uXKR-KbdiP-lu`8S*FU8j!Fmkl{ zx-sp>jeu0^`-ayG6Yn|9l#_kDyK;8g>s~gYv!c-fQ=&fWJQsGIp;;ne`(=suiMcMS z#S<@u?U+y?o_YV_Ol=*@?+Lq?D@#rfU|M}~s__Pv&n2PL9IpEQj}mna6z;CCRsXeV zTX{F52)#vnitQyeVuFJm){SC*cRFDmGDq2 z`OV=}zuf8S^q`yVTs8cayq?+)dGSX+*3Iz`o}TdYp_F67cfFNb;*AHAQ?hzCE4k;a zny`gIKJn$W>UCz@%eCDW`%G34*|gDO>%L<$-L8kHeZ3&os$@UUOIR!Ha+&%i(JmMJ zr$O`0RUaFl%#~R$Xe4Q@w_2#kD#D^+?NycvyDf`FFPop*+!U~Gwnt0FG?vRLm-ra+ zm+-m#mEtW9o;Bw{z4&jo{K|EkoC0bm^O!f~)Rfw#s$Srn{3pqJ?lO7*vZFn(=f8E$ zzg+GfpVO$XSHG+Mlc#p&x63z<@BU!@YkIidP1(6|Dzb5Pe1S46B*MCzT@_uYJt=W8 zyz2k_^iD%@*V3>B(Gz#N8tu%Pzly8riK52&g)8clO?_7>I5D~PEPuYF)|d6^xpkZm zdA_baA;HjGn6)#~W1_-jV;PPsM%#q{hDI)u`B}c4 zSh6Qkx>H}5<({b5L*Y*bGqSn2|6O&Rbq(9zD8Z+fuAfM(yts&=SXC_Q_9icXKi{p- z3QtO|SR3{?XXeC^Wo~c#lB5wz zUrhOC>XYuz|D(`%i|5nSs}uO%N%rYZtZmoi=7{65l&U?)@hgC-+hr%~H!p78cQdBf zrMYD^FLo-nU9d{6@QoN(LX2LA%MQEQO)giLXs5T-a$TCQE*o(&CTdbfyk6zBH9Ot5 z>BQOT%kPP~{OI4)FIWF~zO-HVV3zgLCBH5S`dd8ntll$!S!--x0n@xAitcBum(3_X za(G?MCDHQT2DmSWaPoTB&-`_F2Q90QR-3yW|qq+B&^(eyJ2(mNiRt zA;aeaulnx?bIl?)9Y1Fp>GY$c_OE;d^OQ43nlCwq?X6l9boN&?``1V2=N@aGnzrCU zj*9Zyy8C=GMit7{e@(4Dwuy8f+RM`%GxJHx`of2A0v;}%cqj31YrxSx=^x(h}tAN!nTg8&raH`th zFkQX6FY8*EY?lGC7Gu*-OoLBC`kQ>xzaVs%*MU_EAHf6*lf+ec3EWKl>YDc zg=EfNV%$2zch=Oy3muZGMWzV!F=(UUJjr+=aj!v%5~k zx`A$(mQHXg)81PtxaES`_91G?5ZAf3yhXKsnh*BJ?qZ$)&`|S^?R3WIC}Ql<(gAwGdJuvb?e(cskU_U{mZMTd{f>hSX0-# z+GgI*Hi^fXhEEe79hSN*cadrJy7<`}HX82TdsF6=1;?_z58C|}+uCY(`k)DGHd_D4yc}J=_0?b>VK6vbYGcok;0_~{v6J1us^@`*~tlawA`_l5TpvA{@Ib|AdMC8bn zv$n^*pZ#Z+_A;(XpY-;e(pkAAZ4vX4z}z1OMmF>F*PBFFemeH#^{-Fo&BXizqUQfl zy;Yoh!cgm_=*vr!(oe46xpBkuDO+>TnZA_E*I%W`@^;O1Hf6E(bJsP-&we!b3-dJ< z?cf~d=by8e{JC|_Jnr^Cw*36np5j_-E>C)po@mKEVd>JMxh}${qI&PHdM#GktN4P? zvdrn2x!vEkvc0>c&#j5_ms{g|x=hO1|4g~==bFoB9^^zTFFDxX!|18byf&e!gKg>? zEqU{cZ2$bUOZUynp7h^lM%LLp*-6w z+JWh;A9Yk&Kki?s8t3)i(`pGrUTxdkiRq1gd#=8{anxbihOK^QN)4WdMWhu}&7YX2 zonHFw{Ir!PYgVqvQeC=0@T}P)AGI&b-*rxXqtz~cjJ@>b3Z8#aYo7BQ*zu=ub=8@e zy)(Nd7HaTFFh$PTSCL(I>h$DE{ZI1GYdq_H?dj(K?iP36%!qEmk1<7)7aeb&8PgH! z*=pyu=hB0`nB%5h+ddxNJon3jwEgc)@7HjihIq5`|iDG=DW^FzKuuZysw*OZt2hI znZ|Ljyz0f7H_m5oDHe*aRsO8V@g-~9hi&g)Y9!Wwm=pGAdG3lUtnUoAaC@GeVil0Y z#>mB_eK0y=+oc~h%o}oc2yfjnWAl3z%jCm}o?#KnCmI97`E+8UEjn24yPlY)@wi;E z*`MP>YmwQfiC*g;?H9I{yYk;O=(>pM{S|hvcPeDv-(~me=${#v&M@(>__Sp9|GFQS zt`@k(y#MjsdP{x$J*|)3`>cZ(305E5w85fFdfqcl0k?&sb6*wwH(KQ3bD3RR>XGQ{ zpFb+zCLM2LFT4;M!s;I;$My7kgWW!pu(06Oj-t6$Z|8i_soXgKZa|>#_A|#e-`$b@ zPg+`^q3NINgwwy@|IB!5+A=4{OH2B2)2qO3r`6OxTP|JjA>3%PMW9#h&!BxySJXen zJiqff%S?R7pG}Q3cXQnN)8F<$aQ%Cs3yYUexfdt7KKkVA?e>#Prk5UHXnpu;-GR%M zd25}{IE!Abi*lCzt3I*CE2CU2-YIPVoC|suv%}v^30`T$cWtHy*BZX?Eo-`~BQ*n) z-rRT__w}Dcvta$k#)&PNT~;{@_@~wwv>9*(1mAS|`R4HUjP4#~n`s6C)9)VbOKG$8 zzw(UxxOk&wU$0J-fZn-P*W0eC@8Ivd_VA$m?#ZU7W?u19lWGgFt~lqI{aQBKE2Ts1 z&6NK;TwW(EyF2S%;N$oxF(33+mZg3!28o*% zM+1XTi*YJNi77r2$?Ox$)egTF*Vj8u_4J}-{q<{NIrnGWyz}gHO0=~5>cju0yNlMZ z)DCC)ZTNJKrQW69=H}&m=BqcZ&MUp}@$o*}-G{%j^;sV%Y`eNucWqROZ<*(o8Iu{a zT2uTEd93rWSZt8F#!0qQQpR%42BCB3pQimh;OQHDKv8A(hwT;1cn%bqTSVMH)N0Yk zoW1dZsKG%NL7UU;w`zr1d!Lv7w{hUeN^#1+d%d}@EJA{>q>PPe-l`}0;-^EyR%l+m zd-bPb`Sqn2gBROPeyRKG^Z&DjSxtvthV1%t`*7F3^7{BKqLP+H69kmc{oHVP`r^Ky zd!Ed@{QlN=he*@rnejU>sV>Rd8Wr^~$x4ZJtK93WO;X8!4hE&xHM2-gOXW;{_ttcM z&AI(kmTiydy5PU&`xpE-5V%net>Y%lr5n8^!tE ze<&;GxgC1awENTUR_+7xJA2>16}^4StnE$MIo~_WZ;Gx`@zOlcF87eXjV0&gC+#c7 z-;XgH9lXMF)R14Wb(%qzu2ajy586f!Qo=&pcdq=XAaQDr`E(_nV;tdi(nlTmDh2eD z81*;ZXrA80%CNq5jm*S{=To~JtoQ03?Z{O)@^10!xC2vL)~%kL7J6+-lFI5ueOlY5 zOliAzd(PC-OCmnAW5dEOPu#S9yV!=Z*VneqdZf5-sbW(Hw;;92m zpLlV#)x3O{#+O!h?1zN*74O@%Fi?KZUIY6j%@2K-O;b3O_-=l0s-eoKpoLM}EVd-3 z{j(Q%w@&I`_!g#}0;knC8gM`4P~qeg>^`xtE+^p2xBc@>|7%H4c3e2oGQPj*bm%d~ z&?)NE0^6K+{l0sqRX3}ll;`+6ZNBm1obU>#sI5 zpWAB2AUGvRW`lTj#F@k`noUWJZRLj~GfzmL{SsGa6#c^Slz&&3?{^*ZU^b)w0X17^ zy?mLt;z>fnx}@Cd)VPD2ymhj3FC4V&++J8-tMTTpc39Z9mR(Ogm&-1z|MjH_p-px5pO?xm%Q<9ESxuc`t1|En@U!> z27FZsSrKj3DryqvIdy6YIS3WP-y(N3`mb9 zqkvN0=d){zdk*fucq6iBYwe8qwd(E$;zw8~Uyg|oxU+L(kMQ;T;jbskJ)aq^&mZ-J zGx@t%?xnx}wVf)~HYSb9))!s;-`)LxHuBe5n}zkJKSFO7t^LpCasTcX^+&6p`Cm`? zu<2^2-;4zp0)mYu94b83=bAIUQu4>Vsg36^7>4wO20V6I8a4gzraIR3%d(%CzT(*z zbM(j(*J#%4l39P2<;0jdOfU#&DVe^~FNy7R?~G#;c*|15n@ms6x-d0mddx(DlXDj9 zc5>7vs&|C&!QuQ@j{TvRai zMm+y*L*tbx-G7Qy6z0kPaWRl)Hpt&)Z}520G0ncc>oTACZOm6TXnStJzSHNx!#A&Z z4BT9l1t%W8+0B(ybl^?-nL}58o%cyusX4R5l~Id#U7@ItVQgi)&8&qlgKvK~YkTo_)_PS#h6?AGyotygtg&{0>xyIP+2_=#!r@_AQTU0Zbg?OX%>9n$Pq?inZ>{HYXg ze>QRUgUU1A?~ZGpt5kn)7PKuZ<;QY2J^_cT)>Aq=R_?a^;97kCV^y5cw2I0gS)VWI z=hs=BT)}EuyeW9;GRd!T@01q2{CvGihv$h=y>!EaT(gY3%l0g?sJp!E$D{X)FKt|S zTtfMkjaQoOx{eR`w{o!dbllF2`sO0Ii96KC;jZE>QD!+EF1dQ(kX-a&h& z&65V@QYYW8P9vc!?Dps9Rj=IIKYL=Z-kC&;bB&u#H(J%d`_=pN-^cCVo7ZWIaB&|_ z@L>=0JD8|&Op9Za_L~X)Ed1VYtgp}U+p_lM?wohI@hd-m6<+@Eoa{jso`@|E12B^l<}=_Lh*y#eGIP)z18fzt}J&_J8zzQXtWPMTPlO%$oeWyEYm+-84Jv z^S{(P{{G<|C$j!dFY31V>lz&LRGQsko*u)tKfP>Qcv#ofXV%&2X*(V{1*4$zj zt~UtXcTU3M+=Tggt5)}W2K;zS~e|k z|73BWna={NmOacWDa<>!t1kG-t9L@Dv!{zW7c8|e&Ar{ooSVIWSN648)zzQvuj@=+ z68v&fjqmJ9X?yQ_Nl3SqIKSL~X3r1P)yezo3ZG3^oaUE#HY4Y($HL{zJ#4%0nYRjD z{PVzR0_P$HhPy27Z>PtL?ElAQoVRlA)VQrt+vT?^-cFYd>()2?R?mFn<8uD&xVu&d zq?=f$Kd{;$@v!^HjE{Dk7q1qS`o8Dn6KPw+SJgG|9^CP*Z=dg#`@)so_KJmSK=73C z4@|7jOFEw`*ejl$Je4J<>x|H`nSL`@mZ)F(shQ4y?A*K;butXg1Lyx(FZMR?^{?7J z2U7)j#d)u9OgzVFIPrHzd8(?b4{H|_vpM%HE$$CD*KOXxpw^x^ZPtZ3nqO+*IB({J#*DC$(nm4w8PB^1-%CB2NMA$lFak8Tjg}V53L2 zOU{#mBm4id7MU}N^6qpy%Kco}tAX*{Y{7Kp9ny=HO~OOAY|>KPx2NWYor_)84yGT; zpDUH@=YLb+myH!%{q87xM`*v^{TPkp$EVWU=V`_6ixJ3XAS z>8Yz;`K{x6$seh;U#Ex6nEH61o z6>UGJvF*Ij^SCBO&(vh2eunGk3TLKED*UfgDJ}nf-QQN#@BZuJ`vLcM>_7baXy@zp z_Ry5rJ`*3S9nFjSP9-rfoxybbK>4pPCr+#>{%;|}V7~3`{rlUlUAUHJVgK=3v~cQf zzd1L)hR&H`J6HGEN!K6O_?J9=^jBZb;=;0^-64@R3(oGpAG*BDFMOH%>N7Ku2)Ja_$0V z-iRY_-WXLoRL^?K)y`^}W!QJFI_|CfB>&eh#iv;9*R%L?QGqqkMX1^PjZr#7S5pJu zdImkEzSSr7FD*VA_xWzw+~nZWSg{{>EM9oeteR19^uh$z;u}qJRXS!$|2$mYBIjdd(CP}t;+S8@2nKlr3F2jCjL+T{&~i~ZW)#%!IG)l^Y-p_{?k;yFYj~nl(zqK z50&4NJn=}iruJLY;;4h1XTMpUO$fPq%XrIS%~d*Ft&jG7p0%<^Gp+OfJn3Ff=ffGt z9xf<5@&7wZx%HF#L07hycQY}zOXxT6P_Njxv9*86GL1e?qww4JYT56;YzwdYZf^2L zSaM-U&;GK6yWu#^iY? z_a^(L%x7ox3%T!aIi16tr_*xz|2NBDT$=LRerkVj*Qy;dp|4uQ=jW{9n_lBO@6UUw z5*6R|`cZkGma6uvES(z0-=e$zb##x1-b&7&8RsRJoa(5Z^y{m%M#U!S6V)5qAD1p; zx-x~wG&ICa&3TWC#q!;^%0iE4?p*Tk(La^>mIsstS)bnhW$}H|$?2DRqm3RLW#9c% zQ+rqT@GG;lnO*B-l(w>HD78HJ(6QHpt^O@fNX10)rn^F$gBMu6+BP?%^hVSId6Rn< z#}BMNqQBMSn)ZSxHYsJI=JImK8nzyB{-*0E{$BOjCY_%C1>2iSyB3)@FfB2^x=B2) z<(t@*Eg>!vx?K{9)8SbATYqQ=( z+lYj3uTpMGnXfT;Q8oRF$Yn{pjP(nDD<8i0PO;1D>L#sYqu;_!C+_m$J20E4U9S>(PM!&BAo9QKW#`dsX|Ia6end@^Ny}We% z-lD=6i!#!g8##_B>Ig1er)s{*$$Xd8V%2)fMax#)@tJq+pzqO|v~{Vs8`5TNn#^@$ z-wXY-3T;fz96qU{ii_?ftGfM>e+yQ1E1y z_>L<-u6(R>QA!YaBeq+iWCzRnl(ly|-zd$Pnv}oZH;@iFgBj>}ESdyFjk%|A*Po<21<=b--HrB1Hj+1KU?9q*IA!aV(}zWTeQ zaIdOsTu*23mR`7jW7W^67w$f4>&Z=j{wkhbyS1h&=MDR=a!T*uqjIFlXm(zDm{uCbldk2ky~a?fO2*pvwI5>F?i(>NP{LQ^TwY1`G8I_;Z-Fhhd+2LW&bu)zvDl@n2R4o?je=^Bsg3b@M za21nX4^s`AC!Q!{WbXXoe0h`ipRg@0PxAI%yFPPSOiYpNy|TSARwh}Q*A!zjT+`EC zUtEh8~%&JgI(v{gS$`Q|;HxOyZkSy`10R)K$~(FQ)vgXY^zJ zA?Gj3yxm7pdyfBHo@uM@x_C@sGHI?_@Kd6Cy2{G{ z72gRzx{QCm7QVQ}wy@UD)X_5a(pC=p;}MLHo~X>?Ii~WyhErMnzgo!SCk;WH?N2J+ z+wsm)nfn+^hr@K|^j5(*qw%x~FoT z-pHPz|7jEBv*Jn98RvGTZ+~|2MPFv%i+SB^dV5TlZn~5i$=4gQBF=Nk(`D{==4I#n zS@M12;>5eJ_=2xL_#5nb*}dOKV>xr9=F=||7Ykob*ZLAGDgF0h`$fb3{L`-N5;7^T zO?|GuX|X#qW1n3ilSqO4!ACpK)Oc{ZG2U*!;I8)Ri7Jz_^Rdqls)O?%2XV=sp6W7l zM^1Q$s`<@8p(P()|KWO2y7`f&oZ{KMhqJBq5`Kro54~M8p~QUk0X&`$s5amNAKHT z_{boYctpx_V)EQw-S*d?EvAp0;wYpY@KKbN98+P6ig|8cSWypwsC`lKh~#`>ow z%U>{5G80lhsMMUn5yPRibBSJnYFU^^RBzP7>vuz6u$S1~jq)yUkWIN-ayu+qI>r}L}N z!R!4!zg{p0wa@X3JAH1p;-m(HzfH$QRi~#+zcD>NV(IRiWx?BDu@>6x-jHx@WA!`1 z<;$g{UH`@(<$7&hmHumE$ooy5#`FI9+x=Vd_s5ql89}_>Z&|f<#9nl~ntw!zdxj6I z;7h5^I)6_WJ&y^DpBOXotY??+_L4@S>$_$C=_rQh9p}0#Xf^#L@7$@+rcPZouk$QN zN$8a2K7Z$&e$x7I#hxchPt7-pDCkD0+iSCI*(}bUq-l}3O=&@Itc%3P`4SKJ?3uP{ zUbTzNPuGJxIucy;xOPt#H*KGzbnG7k-`^aTX>AvD4z2TCx1oV6G)-S=!hLbWE_R`S zCpR9gnQ`aY>~4ji_J|S|)8CI3LRVI$-Ys!HZ1VM6rP}1Z`&kvG=`CZMf>KI@Q1Mqr%nbdy)RnGyt#Kt#dH@zf1RanC419Vw_NMIWVJM) zn<>&V=a{3zfu?OuODqsPYB6}zu}4!Pc&`qcGC0rN!uj~)k@ zxaB#VXY9)Rx!dJg_Zk<$J98vNH@&bry8F?xXMz(h%qUmjSvGt3((o+v?|b>KJx`r- zt$VLdcgt0Ktw+TtLlql-`oC1_xN9D}Xh&Xa`bmLxdj;lje>u<;o|2s671=X&X1avQ z_q`RN$CD;LQ$8#IVPek$DThO68n?7*$BUn{JtZdAnVkHpYFWYk#r;mJf?Q{cPgx`i9iS_sY@?Ji*a^b?4FIK#KxKQ)ymv3)p%{F-OGIaHk#k`d@@2Uff@8!6u zCzY;`i%8!2ZA+zmjh1bg+)77hjrtE9^X*ewLRLylWPfSNTCvYW%=~m$%f0^B!s5&~ zKCjxmrqJq{XbO%Zyvs@O@Sf4B?~}Knm`iZOCALk%v!z^TZFF4vYH^MPj~ahc4$tvd z4hL-5Z8qiHTH&Qu>~W;^1MifHR~k=dx}OpXd(Cs7!68Yl?IOF*M7`Y?7VXN|v7(4I z;>3dD18Ua_jV6SAT%fXlcSTjGG#1%a3pK`UDX_Q)?D|tb{Q@4^UT`{KW!WnVYX}ox5Uk ze3q_Q=u#2U)ZPO@hl47L1jS|i{&;$@I40O~C_8ks`W;}o(tclDn#*X3d>iXjahCcH z);mH|80U6f3p=q&Xz70qvz+Lk$1lz~)U!Oi<@mo}r<2MroLa#AQM;~F|3ZD8Gxr0F zGpsJtHnel-+ zy~k_MQogyff7K$YfV_&6T4mi=2MT_J6VUK^3vluqt_(be&U`=Nrs7O1KwVy!PGcl9@BT?APyD%{^t#p>&lk zPnb-XS}ooea#m7r)w&1TtQ$6bx$xNI`Spt&)vZmRX5CK9j`Q=(<}G>hO;T{Cp0|JP z@pWoO-#M;**b~5H`=KHK_%}=WQ0ae8g%cHJ5_7g4Pp>_!eYWe*%lSu+1#Kz$c75&A z6}!xId3nn>y-KbRST;%H>O|J5Q(0H#mT!Mn8*pgOj+jR`ug~k^wO{+>iLjc{HpV@E zJjdS_JrPozxIoV`M_*9owc0d}l<7?e7Oh?{QoOdG+jdSn%bZ&RE($?MY=gh}%vt1r z#V31NfmyQkfhQZ}x&#C7J&pUUWKwUx^`?#CMoIH`GC2p@!p=36*2#tmsVaY(g|E7SG+xzJ)`%ZsMOt>%f;vejgVJEfY{= zcrR$XnNw>{Lv#vWp1Q2i@)C+#%P`SXziqp zd({PBnrz<6(mkUrYT2)&#~+ylJ)Sb1b35Pl_TpCW8}0AS;?u2T_q}lK zFywy{_4-}oa|WUG6vcpK`Hr;Cj6HpVb|;qo{z5b-i7a#yhjZr9Fx>UKugO z`Ln2XGTq)^WwFj?3OjRZtj+eauC22^t2(uv`e$-Dd5NXejrQCgj{O#);oFQ;JEIqM zx-s=!*?dIbvcX{Pohc>rRw_^JoF4vy+xU;x=Qfv9i@R+NkI1K~pWf-`=WDTO9q+F4 znsBjc{)ZTj#6OyOC#oXQbBfGv-yLpM8FJ>EExJ;FR36oB^%c6ljmgPf?BIF@l?m3K zY)8NKACtUaqr5gR$7P1l%Gz4rB>C6%>umx}8s`Q(XZ2Y0ZM<{Mg@MD!`n!P7r}xe5 z>w{)LIMI7+MK$-Q_pScgJlqyK-=_STq3V9FM%tEVUx>)PZ?YaG!V7DEEBh95T-%&2 zeuwY-%w=m6MbCNneX4z6bFgLN<_|1_N5l&GyA6^zN9MImY2a4c<>R?aa$o*ezek1b zxBpb{_EnsH!RN$@euv#<0Xuw*6$JUenY_2_nq#w``%a1X^Xs)a%gz{WK6a-**m!DT zh@0%$6Kkh@^X6V!dntSg%dw&$1(wAQG2QAvByDaa?o&ScQM1%O~Gu>$HOZ@qT_id)0#5iB0N?g`(3sj~B0dYI9WN)c39@DO~e} z^>;p)apUdN9P3k0*C)1YSmqOVPhjy+AK^aHZOInf-hW_tf5h*@3#E09M?dHvvVFL( zK=F^W3pwF zT}{|`>i+Dab-Pl`^iP&vHJ>gi&0cP1v#WG9qvVcj?_&+B1>c-mTHGntai?I9DL3n< zZL_ZOEnYU$JJi1KR`rr{qbF_wiI2G=vm& zPi%bTT9fjmG-qCpUzz7Nh2QHROL4C@{nztacA}v4)RnS<>v~pAoIQ6_!SROE8pWoo z+$zcpwrzCN3lfxEIAKD^O;=|ou?ue{R%$CvNnnz`c4_GnCMhG`#E1j-?2j1Q+{#!R zt&_fAUbx08OnK3r7pr*JoIUb#&pHN$GeL`@asve3Ro5&%;M?EYB`Yf~E!FI#Qrxer zqIk)2sg_ohu8@ZCCP$;XxQ%1H~OL*ECvo?Nt|Ovy|_EmrM-Mv&VkggpWdxhGQP5t{m{KReINHvN^sm-7++$v;aV(5&}1ul zOTUdbB#%x@?U$}dHu~4mnD)`CsB?WJ(}##!kB#xyj2>Lye&zm`Cy_D?X}oD`TEBJg z-1}tzMCV=Y8p@ycKX9IHyWIEl_D?&W&E;n*nEX#I_;>z>OQN3>?lv2)E5A4SVrYnw zMGI@=S?@C|*qL+`k32MPk4Q?1DSkM$)y3^zg|mv|owb?&b(Bt(XzkTd`Zm)-_068G zJN{+3{++nF^vmkL{_C%MR;ttK%aNZqFxRGAr#aKJ3(aF6M(_$xjqE^KkD6k>GLVm)pe zynd(51Lol65*?djQ}({Q94v6H>Rqmc@XiwtmIoxuxH)pIo|dsFCcE-``sb!}wC{l{@T>J)zoNVu%{n*K#~B|4p+VR6Z~2z04c`eewPHK*M*R z_kOI3zyCV_N6lkVQ5Uy{jDD+aKN;t3OH2~kW0oM|AUwNRHLPReWR>)x2H)M>f2q32{C~LVdCy}K3Stvi#Qt%ep!rbX?oz$wc^`t@CO90tr~R$qN^4A^ zsaf^JaBbC?W{sce8h1ZyI;KgS;5>Fb^+x3+tJg)-_SQ`NT503u^|Da!@7+tgw;cO* z;<6~GcZFo4;?xRXPsZ+}+h6<$TIO{`DcMcQ=lDg}+So9~gT6mvp7%B?x0oq0?(Efy z-eMy2AX?w;Y=c1U-(WZYsudr18+})j&{f)4Fm3a(DJ8F!f1N({v*-Gi+}JC-%QCmr zSXpjYFi$R#ktpn7K4f#tY<-e?o#Ydn_pR9l3SqwvJubSXt~Mk5r}Zt+kOOp^Y6a? zP4eJr`#U$9J32d7WgZP(`RRoFq@%7n0ykal)H+V|o!XG|VS;Oa;rH;G7Z1IKsv zfu&p2W-(S(JQ@^L~_0dA`m*gI4k4t!q@!$2m-ONxeq8__dY<2#z zmWyqz>M^V#eN+8y3|{b6RBoK?uaVob#h@qWbISG1?P)c^RmQ(($8P&9{o$DN-sM_G zk9EKOjyw4)cJ{fST%Q68KHiRJlX>>@wc4B9lUHW0;he8^Iq&|yaurn**|X;tf4MMa zV)g0c#=bvSZdo3=Ht*fUUr(K`FbTdrtc+9VwfVb<9w#Vp>H<9@8_aK6_gh75k@*%-d%%HJqwHWR(7J z%b)!U4=qoxJhyAL_tIa{Z`kEK7PU$(*HM~%s!%3o0KU3d)`6yXKP3EPFW9XYsiY6B)B_cJ-aV zvNDkAMHZXkEx*MEdk!o8>AHG?`XRq!;kolG_OB?6Ub%fjYG==y`wl9COIr6n zHd|q|s99Gf?^WFUjKrN^6Eq{WN=w`_7S8KVP`cl4rXv*jYo^T2t7W;mm$Fp1UzL#0 zy7#VU{ftyDYf~}4XU<&l?|G+w_;&E1+Y$da!p9~W>`tzDa^}8d;k?az<_HA`UfFSH z#)JIx#oD4@>h;7Yu&w>`?^&?gnYCKxQ`bK#n0oa81Ft2Pmv7C|3ew=Z#-i!5J$%LC zH5oIk1r8p5Whdc$G@#*6;Mdppl4}k3ZROs*Gl{*`2*) zyRJar_K61;sEc#A1O;FHzxAZRyr;_Ac7@;=|Jvwf<>6D*k&OoY}~ryKAH1Ifbw1LQ6Sh zAG*zX#Cmu3yk%+H9?P#c$6Z#6V7;Ak`^?$ZJZsmo?+80AmCgO-@=2qmJy*Bws5#@o z-Q3apOdv1+w89;;|Gt$;jbT?Z!PNAW4;jDAtQ!aYg-Z*9~ zon(48>N^wKT^+U8UCeR|P~IA~HX~tCs$rF*yz*vI?M0>+s~me@WSsr^ zd~2~Pr=j!qsh297guAcKsMY)|3ov!zTc-EUF!l9v!rf6%XsU(>cFMCs~_&jiu&`{efs?POrGbb zHx3HcHkr>jp9NH0TC?xp^X%qU_Gbsvbjub*Xw+2ciCfnb5XnFOOrZOrye|8P~Cd@%e(zw%XHp#M9ZGB*b$HK6<$PjPSbI5!2Z$4(+@zyr{|>2)t}er*Ufw<{aH|c!;UxW*#26sQt-LDX{+(0O(9d1+SH}o z&K|V#Pj#P|S)DHbO-DpQ=iQd+?#)3Pk4P;O)V&iVaowOwSnSosIyI&Ae1^(B3;W&w z-ekGa{HoeTzt$LcV2t>@5$-CA)CT#gx|?- ztlE;2V)~{+v!VKqhQr=_K{=iIvF`fdB-%4>o1kAKd%yz$A(oa^CvHs%CqdX?`|_xUGw49MXl&~uZnwV;Wxu#i!J(Wt#-3V zp1rL$;iyb_(rSkn^BONbUj9~Q$==>KCnKi`8b6Ni;Q2hcZBsByYS{DZcQ3K#Sxt(G zd$(GnK49kFr5EFtYU|F=F7MlUEQw$AtkmO{^D&_rg72^_2hLw*}f|qeX7Yn zyrHVCyUnus^aPuW4`2USl)UipmXD_opGec%yI{iEvv0$X+?C*ev7wOB&ib&zE}qkx z&ZpX?_B?+5f6dHEA;%fAtiRkmSv=`Y|E7g6dzNo7eJgn@?1g9E$t5c|G+mCay0Ct7 z%C?5f9#?mMX+1c(GWBrEx7jnww@yqtu;9tsecYdO9t9~W2*v%@Qi+)N^|##TV%rNV z(v6u8yHw3H{vIOa$hviFtP6KX#@y+}Gmh%m%`v`N^!>Kkjc@NYH|*Oq?^K@lwSbW2 zzvtDvmIjJyG&D8DKk-sru(9#=`zc#}|9sNtjyAQu?-u+cwKcqAclj0Ft4~w9#93=z zeLCKK^~8s=%l0o*mrs9t;_Xq>*;d&szc$6Z;5xB1`_gm6;1y+uKCe3&B$vN!&xeVR zt<87H<{fWqXY;q&$G_Ly=|e!x2gQvG3m2Sh@H!LpsM`2ke!E(2_3pW*Ek{+9)l;ub$x^D}8` zT9Xp1T-87SWp?^52a~>sRr_pxu}$)P^eq>2v4mo!gjol9Hho=p=7d}74A1FHxnIsI z;onhVJMnZ7`{$s;|K4mr66|tP^#B|1(R?+*&$XQ1>y0y~&dNCX|J%F0zV6#kPD;JM zIx6+D4@1)OjSINkN++jCur3N;xaYZeZ;#Ux3%?Kpo~BFzzbg+@Zhuu;)bso4|Nr+R zdZ*SbZQxtowj}Q51g@^t1_Dhh|5t_1x<7vz$CM*+{DE&KZx>O#p3MER`q#RqU&S1M z^dvr|dtLarex{(s1F0Ww%x%)2A2V(9n4J(E_^5xsQ2FfG+Ed=Mc&>W-XH8F0P@1{Z ze3fa`#EF|Ou&)hF{+lKI)?mHn9?7WoL>C@0+>#QF{J@Yi<=?&(Ai@ zTlZ$;JIPt6XB1ma-*MYkz1Z6Oz>sbFbOgg)P$5UA77ZxT=VzA zq8lMf-Rn6Fg-=v3Sx{8f%86QW<6YJlXik-$zqfDatp|6$L>&0#a>L@)$~mV_ToZjAWxQzF|I)7)+NG{| zJnK5P&)?x~M0nsuhHHP1y{_9mS5z`ma9_5Gb?xogh}zPf&9hYJ>^Wb5r(>7AjNDnf zfJHMGr96Ih%T>UP@9w_Zub!X(U6`BNZo5kU!-gA6>z_=#C}?!)eb$20@u&AW)V14u z(9c_Y>cCd14ewT+i(B_(%Jr>3zw^r3N3`EBQEot^g_}izPPk#HT=l!1||8h!q@O zJo9O1TTpP)v&A0^4t9L#aj1N7>chnf3)Sa2eyM&0d~?&2wr z0~tbZvzaVq%5rOeb7WoWO@%3+-}mlW*V=uvD}7elC(D_xljAa1Fp0m3``vcV#a`gt zQI-9xdH7r&yj=G3567zS$A1*xI(6mp#=lwXZ^``V@^m!VmDj1K?))d_!1CvIb?c>; zy3~e$NLjR`+F-eOXnEPyf@!5kW{ECabtbVi&|3R&Abb8@W9b#UGgja7Dqs2bevj&6 zsg=@doU?zFAJJR!S$f&JnhjU=PKy;cmFtI?TR(|wTJ-o+EayB!3t{H+g)X|c1w8X3 zChlZPo%7Yz>eH|7^(#+r)V{Nb_jJu)jpIAE|NXcraKXCzIJbRgFWkzCh`oI$YT}hi zCo>&9IK<*x9{u)6^PaSPL+E88CEkmM8;pVYulj z>(i&w$>v9$dMc;uJ>SOqk9Ujvt{&EZ;St>pMR_xO2cE z`gY^rw`-Zrz8h}-Tew*AfY6n<4?V@-fA(|Eu#!K)eoZ4K<%)XL&FA%u4#%=LH?mCY zIJh~_zG%fk_Cp&3P6)B>$lYS^dj6`v_G;el*ibI3fMY{=WI) zW~X_a|Mc|N{_#+D51Kq#O;}S&=5$r~_nW_71@%9wFfFM|s-Nn$`{B#b_l^?`yRU!0 z`Tg5$wgM$*b9c8ZR*RJd*6RQ56FTiEI?fCCgjKuC|-AC8x&#M;8isqKQEo}MbM`hl@RSsOQ4>gHAImmED z|CB<9gvDehR!)PO_d;6@-_G&!va(&NqP$62d8W2T$g^2&`~QE_`&hclbZ^niv){KF ze`Y}mA^KJoOlh?Ca?>Jt@93+E>oF#0ZXcz?tDr0k9EL>teu z%~wxP))rXvDZ%Q9eeU~TbAH4oux0%%nKUus@@oF`$7P>8NKgGUTeNn^*#<|)y-O?A z0u2{kJ#sd1qv4+euhiazCk3W|%P7lm=bZb4t}iGKf;v?F%T(AencVXA%0@VWAKoyvU)a_&baU0HRbgKvJl%)?jz+zxK~ z{G-;<;^>J_$zfZ6OkKRKtnAaClMh)w-ROMzF!a(74!MOgLG4@m%u=r!LzV>^Xm*7Y4*PKU7d6i1fZ^-+eI6Yg2+nD=z(Cj(e z55MT0cK9&~H~=wP^dXE%Fu@j`e*ri&fPWtIqK# z@@$%z?it(`X8W&AQ|wW&3Pi&f4%VuIYNWI_uZyk9RMBd-?hG zrED2L)xcdW2WNfB*_wQR=i=|*fBDS~yAXTztn!JZlBlAnlIg~bo0MP7nD+nR&r%*e z`8G~9WqV%d>b$fZapm;ZCI9`hWmg97ym0INYaSCR`OfPzC%^ZU_u#F!tEi4-$6T>}4t)TG{0_;e&H(}HlIm+zr}6?FDOZ>w5i4Ncvi>=Wpf> zE2caW`fOa$|E3Gtu=${oVD~KHWYjWvk5&`}Ae4Z+O>cO__J1u{XN!&h>Qy zELDGx)Lyx~YQEJ``(4g!%XXWFusm=$Q@Ysv$gvHw)$;{cGv7_xw6pTSL$!8~=X0OE z-_~X+!@T=ddYD|x-@Bq@ztWB_^F-6ug@6STb97 zU-)^A3adu~Mhl$RW{F0?%v#VJUTs}{fNzaS)R`Qsh75$ z>${^jb^iW)bypwrIW%3{eQvd=*h}l$yZnBzONQoUO5Lf$MIwZ;QCOe2-bUraTG0Ej4`}k7B5H?b%}!{!M-StVw_`UqQQN zQ?ya;%%!TP`o;U#r%YEZ`E#ggu3F1BVHe@u243tv{FnGuzBx26pWQg&+BlabP4 z>t!SYU;MPW-65D9xG}qpS0*cC;l$S`7qJF^o<3{iv+I7E%4a+!PklY_u6^}=5%1OB zfJJ_HX0FuwIBmt9PZs$ACAFx?u?}@6r@lEnadv03ys}m6` zUwgGBPr06LC(6~T+xj`zMOIW^NPg?%(`R0u(Tw3ab*xk?<4b?vIfVr_HJaKT?hkjU z+pW7YeZv3g87JOG6uCBSNa*XlxY9j(OT%&3?_WbtoqEW*^U?GQ@v#I?)P0dZ^-@;JV{nk23cjxb0 z-?MLtzuZcTPm7NpJhi$0PL8o@>+-$xmen~Z-%n*>3rAu<)=$tr@t)My>kC6 zb2{?<_n1z&U3+zk_Z=lU$BD;}9y1o$Jyq-N2k+S@=1pG7^SarlHoy7U&gJD=tG+O@ zXmc!x;Cphk&8D)w^6jw=C7U8Xn!nJf(wN7|BcQM+w$lBW_I-D+_sZ^vc3l+{zVkqS zuI&DGCnvw}KV1>w_;lOL;YlM^2l)ITAH(X37@kp2?A1 zEK|$%7%N;3*p^L<{L)z_A}^3rEX{XAwBsTJR5R-d>1ZSOAABzBY2tkiyT_9nA0 zG3)<1-#@wD@VjmCt)dfqmMu}+d(JS^a@XA}PYiY#mTy(f0uFSmXU%mEPOU2|D_XBftbWG~Go%`O!RcNa3tS!&J6!B(p zMwHWZ(Q1>QpHDY5C(Gx{zIgugl$TI(RkZQ8JDaP;yt$$dew=?iIW_cYLH*4;FY^C3 zs)wxfXK|~Eo}sx^?Uv-^Wj@`7ZpEAYHNW}tzuEXR;dT6(E~UtiUz^wMy+5siW&4t7 zuAhl^r;ShK9nO1fq~E4#Ynp!B)>}!xXp;9f_Lp0-K1}Sqv*jM!t}A&`cIu^eM}LbY z>=!sNAxr$unIjXjE*l){Zd6xUaMC(C`4Dq<2rK)7sua6wF=5+Arp`t08-M?>9=-iC+E>jcl${uUA4_oo(_gty_XX}^zd%Vnl z^XKXxx4yFUJJ|hyHoMJjrG7!&>bl3j4*dG+yY?dE{4F1|9TFp^ZOEFiT<-J!0NwDv z6YA6)DkfftZjltpt?a4XwZ-H{RCVC@XL)DM zcE&57E)8x=uDjjMq<%pERns@UgRIrps#y|?JCsT3ra7~bRng|PZ%^EI@B6i)X4U$vPnQ)t5fm;YFM0Q_#JOpeQ+A%*;xS9KT$C}T+3@hyhC8*3A8w!IrMGm!qN3E3ZM>@5p}$!p zTXp4UT|4AiUHA9*ud3Fnu(>a!&dHUj&SG-?`)mJyuhMJBU;01HbFItXvGIy}{SDtu zVtSFr$N%(Y9r@-L8yq}Ii$UYfyrkpa(&o0(#U~Rqw%xw>^y@#}f4YC!Kk*h9H#z*V zjO6Eic!+)e87s?{_UNqe^>a-)ra6h+Vp_UDD0K19#D4K9(F~KVzB{h5Z>c!^!&S-k z#r#LpuCq1jIHudb-?E5$|J^2r#zO0Zm+rpJx%Sw( z*{7dIN0&3mtPWokBevdVy@91dRA9Ml%&ek6=WDdtW-NMj;=wobX)KJT?XKUw-9OGc zDs0W}e{uDEiM>|auU$AL8^L>AQo{%aWmJK^+xNeW?D!j?Ur*e2x*hQb?Z-FNR_Yt-S?57)7SCri>Fqs?D4xV)ue8H z&fmHzeQoRBTN3-eg?ey4k82dkI%?m{9LM>FTjb-v1Dy4H zl794+m)OX68gm&4UD)Z}u;78xkqH4={?k@`%er)HzVDF@ErJsc#OT+=6~ypVPB^~9 z`k}UdYVt8-A4%>o_S}|j0f%#+9AjQnb1dV9-LdDt<7V1&CE4C+ZvUs-eq23g*X}L$ zORq;J3VSj*e>}R_?);oHmGx^a`OAM_>HoawW8JxwSqi}p2O|Y`AAWSRQ#XZihFr>% zXYV;)T{<$;h%3$H{Q64+EGlgt*0TJLpzDuRb=RPV?^|}nC~myxA{T8X-4VNa>YSjymTcF}0j4cQ zuUVTM|Lh6o=&1TF7-Dp29-p9AXzIsvtt!*|`^#9avAmPbd*1Rn!cnAQhj6OX`<<(P z-^}=A$aBmldgrpU;j8y=)Ro$odsQS${!Ui4?_BoE4=JhJoC4#*%YOeq*ck6R-{k7s zJpI2MO?U4F9Cf@=r+WLu+uP|+Hm%PQKf&`& z@i-0N$y*O!+h!O)Q);14LHJJfW?lY@sYkYkGBYz;d3TwJO*Jv&F*V~eHJK)&t6rd! zJ!ALZ2#Em8_7sdhN?T(OEK9&-eUbWH?bLp9oY$tff z;E;ltPsJHozFLPb&5`R3XWDTsUj1#)96@Qet+MTRnHOA=w7Y!duyDYUH3m9;aVyuo zmUqZ|kXY>7tFN$c>dgP{DPHCK%Tnb0Ltow4oMCCVnYnz9g3Q4tg#@R?E=POiWgdw+ z2?bg&cs3`%dFCDs|1}G8jI$M9yq=tq=sNQZj}w>4iPUqKnkJ^Zq#3cyS{P%p;LvN2 zn$)=lA+}#7c~5WiRn7PH`IFc`$IHa&&*~tt!$(fU)wGLgE?s5$bkd)f%OmG)7E$bO zwf}E&-0EEWyEW&SJ|17kwDeN$K@%x6PJ{G{H~1(Azy6$Es2Nd1&fVX#u- zzt>Q6FEhF>#vt#`#*OhsuAkc1JQn3&CHji}>wC7=De{m0O25nZ&S)-(X4t(UBgSI( zbvcW9b7Xt&uY0!2-u80&&rP+n*Vo;BlAT*IWAC>M67x6v&hy7f= zPbs_hyktkqL-8KQd)ty$RsOhMH|_5C9|ubPqnCFd3Rtf`Qyu z>HP)&ng2e%nE2_e`$|nM4G-ygM=h2IE6nO&`F!#n`Fa1HxR04IJGu}VmSUu&{n~6`KZezS}cKe@V%->`2W_J%w=2+;NP=v)oNz95v?{{R`3Z`3{{Z4DyL8NwcbXzw0+% z?zpbg*1Q*<6kb0pkU!txa#h|J1JMGN_@DZ_eLSZqs)xmOT>n}6@%KadjS*@lbwxpU zc88mU{_5 zZbj%SMHf9iCYRS?@NaS4v*RCc_Cy>o+mdu73yP}C``ZCwTs$+L9Jj=f< zB+Gk{C0%LKkGIEJ+AsPnRsX9lcl5dZmE!@yvoyJu9{=Os+hDi4GI$z`O32+Q^IP|p zZM=On!RPul1ee;riHUjFu?N}ulZg@%7aJR}-F8-{T^Yn4uq+PLoIidnrJT$?3h zzWjQ}-pkxm$|oT?J5a=;@uYtLlAlXFH^xuh@pyMr;}Y@ysXNM-?fE-zUC!U=Xf3sm zDsR?Z{`c&ORw>d7rJ(KJBM(7ssFFNj@Oj_xpdm;Qn5>wQo6> zG_Fg?kP_1>iB#XDtjiO$`lIQ&;@NFio21qT84K`m+uwJ7c#yr;y1ehVO@E^Pw3mkE zO`Bd$ojUvfo?m62*{>VJiW>H~uD&iiue--7=kGh>CKCdtm0pF8tL%)D8(LakZd z-&2=m`kb7ZsGYSkbA`d_e|+w*v~E6%Q!O?5%pVfTo>;VY=gjp>)Ah5y-uxe3zPazR z_|sv5Ab8dtvBwIcjlo@!RBs*F|sNeqL1c?3l1(;Hp3E*{dVoG=*ND z#J!_w?f=AGy`}$kSA1|2|5HA9nd?3`tL;BizlWlxu{EmvR+WgX9*6dmnzp8Ymb*5_IrNm$U zLUOkSM6USW(}?Q~Q@=9F^PN#oPFdEhU-mka?;q3Kuw7Bzf5!J5g&mD~8J&CPxhdXk z=y8)hn={2)aPO7BEe_v*?p#(ifiwHYrmc!o_S;1S|1GX`zA;TVk@q_PvFnp_zpCt$ z$z!>5X~F%B7kCcg2^0!iB@OCh6_r;n%rJVvA>-`h2F&96Ix?^Be zl~wYj^WZ_@#r=-2LnqG7X1nUd`r(|+>aNR|FUijquL_&P`>LBGJ1)NBdT_-;&tG0V zQ+g2OSYd+;<+0XOn z^qhI%x2BqO(bownj-S$k7Hes0W)^SywmLL4RQvSlmqpJFPag8F=kNOe>hJzH=jNW^ zJ@q0saSE%R_q|DTHmO>2#{JzMR=)M@aaM)N$7-5iA2&-^_i6-rArSQPB%~9d?YdG&I zSBZ&-OGj>9ymzl;)zhhE)r;iM{r})xeOr9-;*A?)JuMmUp7&WPb>mav*@=z)x~2P1 z1TOK~l{DR-Fa64^FO@rX$yl53wyirg@#NFmqW$S+sRj@E`@a0D=ziOka7MuRUZZYM zLeY1Ihj$}m1A`g`zioO_DD2ksSC#Q=%zkF}X(IViifjj3rgfVO`^8w9HBXXWJO8^J z$BUht_MGnun!!?;og9|^>%+qvOT2DQpJ%^j`soS$wT)sImZi?Rct7U{ORRBTeXQz( zQw)6$f;YZZEY^MfBxwD+?AzC^*w5)@1@GUw-SG4`@Asv152jr>sM`{q+y4I2(%Hq+ zYi4yX-We@-?~8u@x}(3ouC32)5r6;h<{ zoP4~kds^GH1WER-Y5p!&!rP{ATK@U2U$NKgf)_3sB`@{`EcKSG($U#vF47ivFG_#z zv~^oqw`QNMU#jB8dhD~`?!Q-(xmagw>&Z2Qm>a}gclI!@Bxy%Z146A>KES3HB9y6}Br6F=cw`n_YP?EXMKiL-DTX7xykJYu>G;WgZwO z{`E~g|Kv@XrK*!Fb8lJB`0`b${oPGP{($z7Zu__A+5;Cq*miL4*Hz9}n*NK{2Lyy( zeYWA))5XE!e;x~)AGA24*lT~@A(u^PN7al-|0WkDrF&;Do~xgeU{UB4Jlp55+I+tK zakaG{pWOO1XIeuT*XQYBM%q_P|GxIJ=Q_ndsg+f~eoFuElGi!YLbv}m&oz2;FXP4) z`Au4OT6Liw|37`V&h|E2^LEeHDH@`UlcHCY9kFxqHp}K;d1~Ht-u#(YN>qGRS51;t zwN!1N94a2V%kJ(mn;gx^t!{tL@BbZio>hNeap}WV@1Gs=jmzG;@0ZqzV}HG0J<4L9 z$e#V<*OiF9oi#sa&ySlBG>t{NccIY#-Avr?oYfPq7JOfF!}noSj$xqm;jJg9mGGU* zpFd&lmX$$Xg(r1v!pk53+xBt7kGub8E)`Xt8s9mY{hpT8tCJF^CER5rDkjWW>C)Yz zS{7L)d{1nNd_l8biwMJEjz3Q;=JZz8Kee2^QftBW?C`!m`P{($@}fWgwM~`2H@)mw ze!ZI7ubFQ-FNRb!EjPdV*VZ!rtNZaCHy;)Hdw$qiQ2V-m;=0rx2Zy%*Th-PW)=L~_ zlJE3j*?uqoO8JsAQ+$@M&y^5FP|8(0w!HmlfTy8!1 z|3&xYBR{K(*_XOIJ3TqLX~(h0oU^C5UQkr*Qg%0enmF}Sz|Tz!me?Jws$8L@@}su$ z^2fDX-rSGp{T(Oy%5vF``rHX$Qh#omu${krtxzqd3%WEl5?p+I{N;ol*))u{JmBKnB~~#nQ-5impV*hlM*^$9s?RfBrl8T)SSeY! zVEvUz0l^Y6_xV}hPpYVDt$mQ_!{N8U-@$%$di~^DvncGW#4?YiVcC*a zTZ_Cz&q~}|ZuE2Y5!+oge5S7!?r32;7$1>s;C;Ac=3VvFDK#Q}d*9@%2|kSp4$*!& sgJt&9ri;xou0=l?TzGOPE6p(Q^^~hBKRK@*|25xPih+Rv0JLw*6aWAK diff --git a/src/css/fonts.css b/src/css/fonts.css index f355f0e8..35c936eb 100644 --- a/src/css/fonts.css +++ b/src/css/fonts.css @@ -114,7 +114,11 @@ font-family: 'Material Icons'; font-style: normal; font-weight: 400; - src: local('Material Icons'), local('MaterialIcons-Regular'), url(../assets/fonts/material/icons.woff2) format('woff2'); + src: url(../assets/fonts/material/icons.eot); + src: local('Material Icons'), + local('MaterialIcons-Regular'), + url(../assets/fonts/material/icons.woff2) format('woff2'), + url(../assets/fonts/material/icons.ttf) format('truetype'); } .prompt .file-list ul li:before, From 4f1d25fba7324aad1c18110f5eac76d4aced5789 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 20 May 2018 13:02:09 +0100 Subject: [PATCH 024/134] chore: bump version 1.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c6050eef..aeb113ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.3.0", + "version": "1.4.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 294efef38c4481249114bf9c5706f712809b0563 Mon Sep 17 00:00:00 2001 From: 1138-4EB <1138-4EB@users.noreply.github.com> Date: Tue, 26 Jun 2018 17:12:12 +0100 Subject: [PATCH 025/134] update icon/favicon (#9) Related to filebrowser/filebrowser#417, filebrowser/filebrowser#433 and filebrowser/filebrowser#436. I used https://realfavicongenerator.net to generate multiple favicon files of the new design by @timonss in different formats. These are the previews: ![android](https://user-images.githubusercontent.com/6628437/41185230-25aa4292-6b7e-11e8-9bb4-714c443eeefb.png) ![ios](https://user-images.githubusercontent.com/6628437/41185232-2733a9be-6b7e-11e8-97f6-ae8915f21980.png) ![safari](https://user-images.githubusercontent.com/6628437/41185235-28bed84e-6b7e-11e8-9b45-95a227bebbe4.png) ![win](https://user-images.githubusercontent.com/6628437/41185237-2a379904-6b7e-11e8-918d-ea600d8704a4.png) --- src/assets/logo.svg | 150 +++++++++++++++++- static/img/icons/android-chrome-192x192.png | Bin 4299 -> 9367 bytes static/img/icons/android-chrome-512x512.png | Bin 12300 -> 23072 bytes static/img/icons/apple-touch-icon-120x120.png | Bin 2930 -> 0 bytes static/img/icons/apple-touch-icon-152x152.png | Bin 3723 -> 0 bytes static/img/icons/apple-touch-icon-180x180.png | Bin 8893 -> 0 bytes static/img/icons/apple-touch-icon-60x60.png | Bin 1910 -> 0 bytes static/img/icons/apple-touch-icon-76x76.png | Bin 1977 -> 0 bytes static/img/icons/apple-touch-icon.png | Bin 4299 -> 7420 bytes static/img/icons/browserconfig.xml | 9 ++ static/img/icons/favicon-16x16.png | Bin 918 -> 843 bytes static/img/icons/favicon-32x32.png | Bin 1645 -> 1250 bytes static/img/icons/favicon.ico | Bin 1150 -> 15086 bytes .../img/icons/msapplication-icon-144x144.png | Bin 3515 -> 0 bytes static/img/icons/mstile-144x144.png | Bin 0 -> 7213 bytes static/img/icons/mstile-150x150.png | Bin 3668 -> 7022 bytes static/img/icons/mstile-310x150.png | Bin 0 -> 7644 bytes static/img/icons/mstile-310x310.png | Bin 0 -> 14508 bytes static/img/icons/mstile-70x70.png | Bin 0 -> 5005 bytes static/img/icons/safari-pinned-tab.svg | 42 +++++ static/manifest.json | 2 +- static/share/404.html | 8 +- static/share/index.html | 8 +- 23 files changed, 206 insertions(+), 13 deletions(-) delete mode 100644 static/img/icons/apple-touch-icon-120x120.png delete mode 100644 static/img/icons/apple-touch-icon-152x152.png delete mode 100644 static/img/icons/apple-touch-icon-180x180.png delete mode 100644 static/img/icons/apple-touch-icon-60x60.png delete mode 100644 static/img/icons/apple-touch-icon-76x76.png create mode 100644 static/img/icons/browserconfig.xml delete mode 100644 static/img/icons/msapplication-icon-144x144.png create mode 100644 static/img/icons/mstile-144x144.png create mode 100644 static/img/icons/mstile-310x150.png create mode 100644 static/img/icons/mstile-310x310.png create mode 100644 static/img/icons/mstile-70x70.png create mode 100644 static/img/icons/safari-pinned-tab.svg diff --git a/src/assets/logo.svg b/src/assets/logo.svg index 62e6798a..5e78eccf 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1,5 +1,147 @@ - - - - + +image/svg+xml + + + + \ No newline at end of file diff --git a/static/img/icons/android-chrome-192x192.png b/static/img/icons/android-chrome-192x192.png index 685cdea9d5cf74acf3f02f345faefceab921cf74..e9131e42a46292f0c302a0ec1d490da84773a053 100644 GIT binary patch literal 9367 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 WEYo7eFN20E7(8A5T-G@yGywpA6e%A7 diff --git a/static/img/icons/android-chrome-512x512.png b/static/img/icons/android-chrome-512x512.png index be4f052601236f72b77a3c93cb6a347446d8e786..d4d3f2e2d78204548458e2fd806fa9a0d4a8edd0 100644 GIT binary patch literal 23072 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4mJh`hA$OYelajGu%tWsIx;Y9?C1WI$jZRL zppfhl{igr+@xgh6Uf%vWi_wQ!jj7Zj_ucOd`+I-xGaPm(>R$g) z_RkLa7Yw%=zD?Y>hoyO0ys@C<+{J7TM`X__FE=qKj&_azH_o|_zDH``Deyy53> zsU|kXWUD0}As~f9=I3%AG~BuVZ|8fxg9W=q^f)UH7(JMJ=X+{gQ`+T&E{hy^8$23| zzCVt=7yTxE*10gnsGG|)8Enp43uyL8F-#2HQ7H4^?}3Rs*B@@!+n{y%W{S3Cg6IdH z4G+|cT<^<_+uQ04>IrnCo|4>a`;vRz*2;uFZMAgWsa|DW>#&jXz- zhkpj`3}gJx{GG8sORh0Q$do~-GH*^TN7rA^1BMQJU-}4nIUjh;a`wRAxTfpA>_VEV zrVK)sd2>7u6tcMfcWL_iO{q1?*}$s6{=_I&?q9s^3GfM9_q3|0kh6DONov(y|ziSeW}M7w|bgw7*dzH&Lic z?uTf>>gfxvmq@J4$znJnVSbLi;k@vj+w(K5`aLAS3ZD_(anJjM`Q^kVMk^U7Y$|%} z!*1vNA+tXIa;1w?g5|*#2hPSdm0eC;QnZ3`!lr`9I}R*8u)NUUQ=ejf24o8|Y1?8R~uWj}MCQ~oh=`UAnsi7LCUFnCCw4sL zd-T)j18c&jmo`d**O>nZ{g}z8GU;OwvqJK-V>9_{x)Z|om%S3!oNrQK{J~cLVAkct zBYs&7OA_+t>^$)F0INgqOB*Fo9o9PxF%MNE@~wJqxbikUIorEgxInT%G3u1MkecTM zs|W0HO}@(xcgS90IKlVS@9}S|0>KLjR{b40*A)tM3#R%hPmv8|R=EB2*i5etQ{D?D zOnPafG-9fu$DWw*xe^?*aWV)=m!!nCOYl?Kb(7{Rjyc?@7SGp{D)5h_P z{m%jK3+YxpQ|3!Ga6LX&*zmc5#o%~}oS5QHJX0^>Gn+* zoOq$KF`@3jEchc;{1${nU z{K|Oatl6V*1!D(;xu0x- z<-yKc(`BDMUWSA_US`S2I#GN7kE!4+shU}82aZ^+SlM*z)!O~nL!5K3UbAPPaOyyT z)puLwm0!&4r~ke;zhxcc3#pP9ug?Fi_Re$A;uW0JX7DK`FK0Utls6~q!EKiB&sO<7pZMo&W)th? zhqap%uV=m&`#E=ZlmCyvY3B~Ktt+41Tq?^~pWin1?1qh}ORO{l+7i}XEZ@tLc{y=O zK^B9~lVdl9cd%NVDG|H5ud{T+^_++e!a6rjroW%t^gr*)vD3=0WSc_IZb%YdbLYv1 zqTmnr|4L=>?M`nf-pi6dgHNe7kU2rp{9JnD{Kb<07G4VAWM|U5#D_)?LW)+%xBIV)N-VcYODhk&gzO?niwQQ@YPyX=jxZr&u z)2idm3@HZg9ff_Yc}&k{oeNs|?0n17&k2F+9-N<>W;HPQ=X$BP*jwvNs3{GcygPCI(Yj`g_KW#KCfV=%Yr@QV4%PL2MIr`sjTwwKI)1n@3 zW%HMf=fyO~ovEDXFs{c;e-e#TdQvE7S8z&VLD39XYdpfwf~-OX|vlZqDsT{vsgjf^are$ z9ku34F&w^QARv z_G9lQANc4Wth(%|)hpFtbXxZQZ}x;~FLlgTt!@+k#^3f+{Jim8H#0@WBwBMfJcza&iix=i| zk9j$>{ARtAXyvgqfH^=dZ_avVdxnzsT@0Vo4ph4TnzK#g#}|E}vXdr%GBy8v(`+}* zU3NL*IJ@3wp_o)F57hwXfTX-RSxu4uX1xh-IQsd)pT#wHTl&?$cFwJlm#dY{t1+@z z;KB9DyD5}u*UBKLEC#O=y_Y=-Y@Ts0+k9hzme`qR_Wv{H|1EvD(B*{o>xakGo31k7 z3RcMHXGpK)EV)tKxq?w+;vJv=)eX!(>72V)Nz5q{sQDNXfBcQtlC|#};%y!keD}^` z`Lu<{B2t^h%bC}Kb4MW`(?6y+Nmkx7Ecxbav5zU4bAFHHvdbM)&d)O2@h!3acN}M) z=!q5g*z8`ZR-7!Eup*E-ASG|kE^P@9Wyp>l3Z7-vBOkh z@hj$Y--Pa@TX{@b!Kk5Re(rh0YlgWh`(@qr8@l_y-waPyR(c=t&+N}1#dh_uS$;xU zk`J8p53cuR@8mLNaD8-aC(94csAuMjoWD1C+r25C&}S`lbKUfNP1$lK72kX>dpezF z-}gv$$FY(L8Uf4!EO~QIH@=^FPSCA*)&ptv-!kuK`6(s!x7+OaB-h>>yKHjHwe5RY z!e{U$TAMOFesXN5(2rd&WfFs9S?Ako&A1sKpKR6JQQH=Du&eRD4QHmTjmf0ddsyxp z$R0||VmNl9_p!j7XXO)L>LeDwko&MUxc1wOOsme0zxQ%l-~Wx=&bsY!RMTaa&=bcT zcn?VIC|uPL&-{GmIUzM;sfYjPJt_XwxNLHV%XwS&UO1#{`_%lzdi4wo73$b!WPH9Cm6{d zQOjcBdT?wddmVqxk&m2ZX()0|hT zFN|f6uw^lPn(+Hcy}s5z3%;5^2|K>9%-7^ycDcjjyF$$0hQsgYU*C4fvY$czqQ`;0 zm5etU@7VsgUzAvXXKwS&zwB?atU5b#vTyE6*xIoDV9BI_9pXP`JY(tc<2|5JwE1uT z@Os^fDZvWSB422)ZmoA$u zv6Q)G+d{Sk?w!iD^;uT!oV;5dAKK?Ge5s-oq*Y&Kn8CuJ zV~^nvxwFlz`Yd1DpVEqck1u;~O5G8PxSC_tDQNeh5}X4#nN1lQq@Sxi$Xjr#WLlAR zvSH0<5#FEOA(Ix0)cntD-yLT#_ecj%LD%#Lc9$J}R{vl-&|56s^h!~1@p zEuSh}_H;QiWp{j2{r_OsdqOXm`@Vsi^Bta|cNumRK4bD{-aX@7kRNy2;j7PooSC0! z)!8v)+b&+cy;l=cpWYR!khZwvz2RPoK(N*}#)8KtO#V#lAob~TOw;GCQLGoNydJ<+ zSI~cW?)jO1L1m{K7Vlx%yR3Oez(n2#>E%*CxC@$I>O3`CD7Npj;rz+`CUad}4!xQ; z{h@VziNuOE(M&ho~?eFM$_k_9md)MCQGyHRSK9{Qn+JSleUtPG30Tv1tS`{#1LtQEVDx@LEJL-HP$iFuV;iJ}M2uWWdSKry++M^hM$ts)J5q6`${$+?#}jA*W9Vt zG?z)aGABqyn!)^BNrL8v*)MgLemPkC;FW(?biAPE{)HkjRl5%-ub=G~RFu!yy@%!P zvSyL!C(jr_t&?lN+;{z`&k_9dCq}eh&~WiSwF>@UHyYGF% zK0hvR*xzyE&5XUx-;ItN&RwGNOz4V2cI0h_9ffw>b5gC`HEZ6woc$&~F~cG^@xwf^ z!1SkC6Q{13!~EdbP2md887WrY8)FMhYD{{ zUb`{evAB9b*JZmNNOjpRX z^03R<#adt~sQu5{{Gh)5>PPxYQ&WqaKiu11Jo%-H>vnU;wVRqmL1n>Tj&JdOXB2*3 z;rwu4{MVV;pyI1TGW*tp%hxSS_-6P8g=i*Boc{_~vYn|ow^!+E^#%m}A?fCnQ z?R}@|#96n_K4jUdeZ{Gk`#|qz?FWJrP5&FRud}-ST$vq|w}kY*>ou>x|8N3tzNc1* z{DUgaYcu&a*(S;}{$Lf<{Kqi8Hsol$ONxrTr9wr2&je2vQ=KhN;CSVnlVjz+aZatq z9O0SLl1fTP%g;SLSe@E3XU^)>g(9b-!Tsj!13H%@yAt197TmV~c_ngt;F1oHO4Z9B zR{k%F*m$vI(xObpd+$|W7|5nXC(1JZ5ERq|`Sz9nsvq4QPZqDUsyN?s;Z#E;i>Ypj z({+X&g?&ut%;zqS*!S5`_q(v5=8-*;2dmRt=FDH6yHIEq+kxK44ECmT7e}14VezxO zP{JiB_Z@E6JUEPkf?LCfGQma|#y z4DLS6uD_*oj^Xk^HFuaZQ3lq zpekF<9XUJwPX}z7HMcZ>-@(oOc0p5)&$?vNy8B;#hB?FPitT%+F5GXKLC?OhL|s*U+pv#);9@9|Mwa{an3 zhi5y7eo2v$d9chhQm^LX@~tO&+gRT3taeM9OYC}BZntP8H?qgf`Z;F2{ z>sbalkKapbZ&=6}o9C$t1!c;csU)xQKIZZB!o)8>my2)yb3JS8$)h3*zu&vbvh@Oo zGN``LDpJUB7Y^@&DmFH__Ho%*|+bSni&5`O%-f7y0=N0*;(4QVM*^ zymqBTcH1h66ILq5cK5$+`tv*6E|Yh@=+T$m&EJzw`zo&JOb!3WcA(dodB>3>N5#C8 zZEF@gegAp>$3cVT9Z%F}wr+1rI+$xLANTf~<#WsV|8q^}>PYP?+~mLb>+TZ;p6kq} zP3;tHSkF9}$0q+`&CkPjm)GuV+UWiJ*B5;wvAa7xo9qX^x7qIb z{s~W~m0lA!SZr6A@!?+1&h8@9O*yA*nF=H?1U!4LBXyi}+We5#mmI2s8_zi$OZ*xj zn!8eh@5Ax!wdd*&roU}?nNqf@i}n54zPrp*c&Geauwc_vBlB}H4-OT@#cZtolVFh$ zep%B+g{x+P?$>v9Qni}%y{D)CeCQSLopby_Lu~W+jMK3*R!>b0JU5p?pZ(RTA2qI~ zrA#qZO>HkvCHmQ(S=0J*Yd}0}tY(IM+q9Gq$s12UDCjcPotu;KT5YcE-YucWlit`Q zbA3+pUApkvKi7LdCB7xb8XbF*HUFk*s2 zaz*gUsd}yBlcz3aEO>l|T~Fh9@zhh{ejjEgy*=Cg!Ma3C#{Ba080Q32)^XtWb%`qb?d4JR zb_gPJlh(n7xPN|FT-MuqB#$2 zZ+|*@YyQcr=O$?#_x_T4X1HPAD8!Y>6PArf6?$s+TA+>Dl?)@44*KgfD zf8fG~m#2-?o*w>{(zAW?LBFQ|x8D@ME4EwzDyA_o_D|w`$z$hkYIo^B$;vo6rHbXj z=YU(>8cY9IPdcxXeOi@aQyPwA1 zx4OFg*1hQF-9lGDhTL8<@iA}r!_Dpo<&1rockr?Qcs1{7_KLD~{Az4nF0twF8W!H` zIlRnqzIm7VS0$rwGbHyck6x3qb&Cq9zZ8)Wcrva}Xx3$xc$={K|GHlu(A?lZQ~mLr zU6cRuEHzqETVXAkTx;Yu*KMEMm!rwG&rD|e8K!j?nQndI_4WGGY}Fb=uUFFQzpq5^ zP7Sp9J74mt{;~J@Etyeb8lp?|9~)e}#d>{dXuR;A?a^ygOt-$^ZIC|B>ZkSdbRbjv zJI3R?mj%0=-^iA?+~R=XWuN$+9+h9ezmz-hP3C=+t>T9zF}b>{f_fNYygvNPp6k8k z+5Q)=k_^@#G5)_j{XFNd&r?oax_b9$LC|g1y#Ax_Kk_-|>aJP@N=q*fEI<9VOXTuJ z?lt%At)`?&-f>TC`&KZ4>&mTLUS&Mb^+TGP%ee2o*8Tc2rdM}XQa?itn|J@8y+10l ztq%vx&fUa#L55+a!%UyHZQIN)8#Fxr<9WMrUhF<_c{Q?an^9Bm4ahP=|!MVBO2`g#q2q5B@9m zUA{u+HTy&RdpduYe@YQs7qis=zmoFF6r(L$S6Sb?^sl&iR>H#KV$+H<$E=wO)Gnm_ z3e~vs(>?O`$H=$l`3G}fdw>67_rdpkqU-#Z+M=B6Q;a;*-P>PEEKJJu%}`o#Fxl)L z+ksvF|39Z4X#Zw7cTrL7&QlNH`5vv0k>By_Js-bBM4>{`?0fg(*nX83JxG(kb^MlS z;^S2Zlk*tvSQs}v_KB}uc+UFLE!hQ1im#pT6z?dS>b%Rtw>)1;FYeig+1q{M=XTiM zx_x`AXF%U$maPY!jz7)%IHM<>guL!PMtMZx@fsBS5`~vDo&6Y%NaN1J>Tyy`z|;=^t4d! z`fmrG$Cdne6V(1cSM_};(_PIUpWQ4TOSZ4y_i97kg)dV(ZfMT+%bvVo&aPJr+#)j0 zY_0HldZE{t`^SWrtMy!BO=~_GT-Hoc(Jwj39m`j0XptkOGv|%*Zn?CpjmA|z9c{TMIB-&A#U5U{{L3o56N_HGdbMcVy1rk(sxAli%rY}vAzEK| zv1C$Hh~Skc|8>5Y_k9&>C_Vf?U2aW(kCM{u%hzssspVdGzaO+=OIXiJHSs&3p)v;d z+52ueotdBc){S3DDRtu6w9Km~8+GQ1U*S0|Gk5h_R>{*G2O^XI)E=8t>XG`tRZQ^Y z@edz1m~kFDHA_%=#aY(>%bX%j|HKEgF4r@e>*R8TueP@K%lFW4WwVy+@np59a;-bd zYRZr|C$>@9Cq7lNuRQS;%VkX$mp2zLUOf2W!-kg<$9(1{Jk@M;f09*lk4u)(LU=<~ z*SE;_DDx@GN=Z}R|K757Ti6#hN3m;s?M&y{G`28W9Q`6HmUKO{;6)ACq{)8EGqYFU z@onOpD}P1cv`EO}&!E&bxk1@CK34IZO~mhi-5otwFFa7V8ymYUS>mBZm>#E%QTXc5 zK_@s46gsSZx%zZ?D39H;+W)RD$CmEiJ^SFnQ+M)zCwDhRB~6UtvRJZyg17a>FH=Py zUHECR_+kmy#8blB2UkRE$_0PAe(##wE+%u%Sr;>&=04ezU78}@Ak4oZ?}eL+klK~& zM#)7Vzulc@Sg9oZYOQ2V&ys}63#N75Q8{raD(DVqB#YnR{Fl(Dt9NnP?OFd)L}}{l z1GZfErmWHFS52NS<#+Moy*w+oo3$197c7fNiCdTUK470RLs;#v{|Dw7EIkNvN$J0j z?FI|irQPW_UbwF9bHDwOFHb%E>g(-m_wHSmJmuE&w87pJ~& z&pY9!67?7AD=RAxwaFmup5Lxc*^~8+ zPnyBpkGY`dIy6JPQq-WDl`*o$!%<_|0-(9@w+~Y<&mWX1HFB7XB7n^3fF3P>PW@SwA!%QB& z@UB(a9zA>SC?(sEH~%3Kl0^0UZxmH-nw;bhH3S-ml~-TBjm44bB{NltCIhf zW$W*K7wZD;cpE|w|5v|ho*b<5Nh&M*M)~$r8e&tEAl1;UWqzizOLhFL4m`hjeQi{K zm5_A?!>5_d31?Xj?8>q*TfehkNy#YA*4CDXhi67#pxE(u!dE1^-)t!Bzs0blu#D}S zQLX4tt1L#JHO6zDT$U7V*}iq6*HWM38aq2n9eX#Ph}$W(FVoOpWE74aH7Y{H*ZvC${5Km zUZS(wl)HFqjmzR*1{trq(=5&pHGaQ4+tK0T7o9CVlOta!C35XbwG~g5rPeZTNc&Om zq^oo5E@;T(WQx(mc_KS9zAtzdk+OSh%@(!;vp5^t-)G)6>s3;kIMqk(<*PR)vWr!+ zRyEB^p7{3KCqZcj^FHR910}C&BF$8km4qty?%n(4`}f&>fkM-+&f$NO^{YB3pXI^d z2GifxQD&OXE=!b3wrqDVnyhd->s(0FtbcO1vl-S%{+n+v3>y1&a&g)A6k0k*UJmTa zdcJJIw}_M@v+`=0H&o1f$)cpR$@XQ*tZ(05&`CZW$-}*878M{{xGd8^p4I&hPMeQCeDRXd*J#w@GKUZS~Wv-(hZ2j0KF^ zVpq>*wCud>vs^%MV$GJV+a`G~_dTxBwexb5R7$5-)2)3|CrULi`>3CtZuVbLaHG4~ z?4_novsog;n(qbQUYo}tcB_=%&1K0WUVi?|H!mhyxdldqHGj%t_+~!WD1O@AWqzN^;cQbmUA-Z~gIYs#m)F|1)sEm8udH zoS3`ha^|gDQNG6|#7}2k3^ToVi!EV)?3!6Mib_h#5>hgYcCS8N(qp)Jjact3h6rQE zf`fj`ggZJs3`@$(jV&xPtd7ly2SI_RgU_1Fj1EdlftT)GbGvoOx2Y_TD{GRf zn;c`oW99cEB5u`Z*^W#8f85dGVZkz+WoyKC&k2uNOiv2st-Hn?-OuobFXH0y2(u?j zN=lU;yvtu?mmD%8a$*P*jlKrkaLANbhUsj9fE1p@LyKKG3k+|HoYtPIyZjT84 z!M}X#8nwN_uh;HoHCWCm_1YH{^+BgV&7hkXUCpntZ#^mW+3bJ9X|@Ahf(@)?rBO;s zMsCi|&LyQ~v-&2AcV|uBtIY6z^K(}*!HI>hUcO9BNH|c^BfDvZ+1cBFnk5>fmy6xF zS+c6;jn&yzH>W8n8Tq}<&0P|tdD+k{H8A&6V{Q z4jAMMr3B^{op{T-VJG8^bgRI9&u)EI>hAEExFksPma~oKg-y3i`0wR1teL?eQCz~- z(BZKZUO))Gy(4l(!}|>TX*Y&6-?mpD^f^TZCklbe21}C^t7Fw6;jE^oggzhG#CBkl zqL`qdX5+SPW=1o6UP`=A4D6l7{@#osOef(+>MT%JONvsP%=vVQLwDAdoQmy?GxDr_ z?VkDZUYFn2(J^D9kDBv#&k3%kSymC(7$UZuadL6-TC;uo^nd^AE*suU4D8*so^ivA ze_b6NQykr^t24|vH?44E1x=SRW*E#>li$322FTNiu+~`Q<-nX(fxLNh+9amc{9@0T zm0;D_(b3{-HJ9(Gn&Y&qD_&kRVYnJc+jzG*Y4i586oLc<4nJqFia~A zQ&I{_i;a!tk-VpJVo_9TAalY|9acd>!!3p zbycU~fv&4x#dueDba;3`GU(}VHDXs+?UD${wsN&oi@Lb1qr>9{4=>-vyH`V}J>Rq< z>}r%TQ$X_hcV0?LLPmG*-sR!roA#$tXH{tFH4}!dS3#M!e$5cO zs#Pt;(5)8M(b1tg37kp9-hR|s6)JX?al`V}LV|+bU%q@XFfa(1avbEhV?LnZGhDlO zZEuKHs+C*h(S}d+rdqhIe01)zfS_RI@n@5nkM9O~EX#sTq+ZrVbJDc3?{0#ED+^YJ zbbTxINlATZEq_BU0seO#m=3p(%yFL zOSSH*P|xaT3^$C|C@CpT%g&X)4T=}7>SqiQCSak{X`7N~iDU$>-Sk4N!4?!^E)GUB zbt)z+AO(SnQdM>J%lGfk|Go~gXD4eyV7RK1lHjF__x!Rf_Mblm3Whw!h%2F;9Ud(| z_W5ULYv0T%Yu|ruQPk8m$0kKH{0-Zp8I*IC&u5+CT&E=lwV4w43fBsBgObGUTQe-P zudUdBZc&tJOs}dkL+nw@<&HXq1;T&oHz$P29+A16>B9AxIrs1f4{e*Pa(}kp$S){> zb{IC@jZY3->lMcQ^L(DcitG!H|9i9!uPlD>W9G8pj-I*9XV$cCE^n+9ez5=gOh1*Q zm#$uQ&5hOl`juDt|9{79yNzFtH}GB7{B$wZb+*#ut-*V{_Pd;37@WA?b6K#5;nuC& zCi?Z;+&;f3>Z%~~vGPxjGeM#Dc*Aj)%bYG<`QO_<+PAg1o9+JV+oZE9G}my!-IA`F zh%bvySzG}{wB|mkzkB=UJbajFWqr@OAun)kRyebQl9CY{sAur?Ywp)#v8!6$QVoum zIbB>_wq3h<@!$us*({MEt97yXRg*=RiX>d{ zHrP>F*d@A{;WfAQv`811B{{RISNXc12)AwsRg4-lzs|k(W}}Xh zlIXE(YzuCd%&OUwdvqnMl2TBoP8P$ghj-Z$dS9CSydc9MD9E`wty-$Vl;LXhKldA3 zzp!NMtX}P-K5;|l`zAxZp`=B!=1 zUh4k5^Kz>XZi;4DaGT*%T))om-Cg^qxSl^C@ZJ9Zu9p%*PP5-cGI8vjwSOmL1b11_ z>@3X%Iji@EN4t3aeDQvE&yhvH|Jym9<(Fd6KWMPwV9BbQHLouOIo!Nu`1@_5Ra3|W z{#Wm3_arQ~d*Z+IooIXspH4=UdS5Fb#if0xnM7|cu2~)*T2gqASie_?6&bA z{@Yh7wA~pP;%cLX8C_kDtO;EkX3DU*k0IhR!=4>wfBF@bl#Jv~n_r#X7trz6oFT3$ zZNb%&LwnXG*`{n-7TnR{vGi1mY}l47Gy5j4zXodPc^HeYkzkdOX}fL?n$A#~`s(br zsJ2Vj?)269=gO~S+>oa9fO{9Of|633&i$0L%j+c;Zi}{NV)*bVD%(n5P_T2x)3afw z43)hgC+J+|Xz1vWNczm;AhDD2!-KnXn+~m6D}JqfhM%I6($utIf77|lq05q=WFMJZ zcmFa&1t(i$=(5Ytyg!3V{yRFqzwFlvzrB6a-oM=Q4dn9Rl09p%*sjzC8Z!a{WaTHG5&~N zw`~9MjCP6WV(AAj%@tCQ9&!~F+!$%~`opE$-|qi!zbM_Hx-9s4c0$B#rp^wJm%8^u zjwfiD{bSdf|MuFaSAlhxH#=0Z?^iRK7xS{7ywQn)ofmxjm3!XMi z&9azmD(k4_p|x1@_|#LI{QqxgmXce^_MlLgeT~O*nQwLHY+f-uJ3A}Os>|hu-sR;5 zw-SGU>RilkBzIof4QzB8{C{pq#r;l%6UX7h^5s$Ay7lB?Zj zmPhRVoXPOcxK^}vNB+#vdIu$?q{id-W@K17Ei41e$+5Qi#Cz_W7sa~w+7eO0i5p(a zZ_E2p-?5;qKdYU$VS0i<#hou#pJ-2QY_|oC<)~==+m^=ka!u&s)BVr0zOVRn_xy!b zw;8_gPr52UrK6)ILZtn_;(u_+Fw|Ew?<&9XyQ8C{XPvp^=C>c@Pi#(mewCquGmib* zjD3r0mKuL}Py{mdNSXiIc^S7q{GSzb_TECLK9fyZA`j};vIz)IEUfy|%ehQhMC*N& z>`k@@H?M*gWw&;8+*nn-pliB$gz0a2uPY2TJUp}aZK_G#^x^nYP-g8|D;HzgxhD2_ zH^1(1@6_Yf2`JaXt{ePq+Em*dDY3} zT!wcnM$6Xk5a8d#B>NW>Ivx?F{GlI@%)U1F&-8@{ZvLO$yOQyP&=!XNS^Hi&sa!7j zZ46QMH?>mvu;gpEZuzrUpEUKBvM}iE;Vrm*neXJ5mm*3^LS~00+jmcoHvh?gEU^3d zWrjPf5utw8zaIKq$ve2XZ2NfOlxGQl=*+&r6()|la+3`~rK%a1MTvq=-R~*q*aZY9 zmj65uds=OFpP?B4bI_1)It#-CvCHA{D@=1gym$?9h0W$Nru_2g?O*thMK&L=zI1Tz zf%6S&m)AQf=G9z!c;kDvghEzWZbtIaU1Bw_pMCJSVQF_}zOiii^_v#Iev4Y}ufKW9 z|9@;x;kW;3k3lijoHr-Bq1$J_P-{gZ@19L^-{xmqb&4E*P|(F)|F8O9-g`4ySEamX zQ#$_~7xzy;mhyU9*U7Rq87m)O_5Hdmx#y^ET+_jiHU}#585#bZ`m)+U%-n9FnVr_W zy4tm%nm)VSzJKqhWiKUyT=sAOe9vBF;kUlsj30#du-N4PnyPWdS#HgHgSk#!iKWHM zUvdOFhMB+aRn{{58uIx{mbQEGyz^J@6>1*iV2H5bnsD-vzT8C(2N9X_1HXOTCvX-0 zX{?^vr{G%j`jXnFGCy{0ud}*g%mvyBcincE?-yCaC9wOgUA2~Y?H3Oz^(!;`lmyK- z?wfXAuAYPa?as|FHG)|3%dda~D;AY8Vs;nOxE<2nL?RmJ}cD4F0V)ox$|ew*7^V5e-Qd2 z_PDX@62p_2{#0Iu1GVc9Jhx}zPMhtg^!TZTL1|F)O9>^RqHL?I%0Il?@BcanWOpx$ z*v{}l=nrp1-jk;i?DyNV<%7cYm4Y<$>h^J3+yB{Y6Q13@D1+CbuXHk_Vuav^Ke?bJ zzvN2T)~lOR&azxKJhp0u>9!lZ2hKWds#)*)@lVWR1|_A5<(G?tecdHit2p-R&RS%~ z5Z6@pVE^f#T_UH2wI43s4jxPj`Z()#Mcv%3pIiP}hbMP0yP?d$5Z*j@d-%G_0FWVp zsUMfu&tI@jEcBu@gMK6Xo$$W!B{$~P8qeTYP*S=GvOex!!qa*G8NNTw$_|{G#KQ2v zUA4~8>)EMlnYJKsg59WcneV#p%rvWG6;qZho3@1UgOClAj_%9TflAW5x43TT@R)LE z*Oty{`;zjigTuUwLGzNPObj0$3)z)<{(a_IvH2>fOD(y+G}iP^>if?6fJ0GHr`R6w zCB$;d?@zfT`QzSvQ!WLiq}|!`=lEG=zy1BwswpZ;NHv>b4@>5QSwXgSD{X(P-TAx; zlu3=k`v24}IxGC2VI6b^mw}~P?E91-mR`^P-+g`|{pmJ0C8epk2^Pn``bXP-T;Hzr z?zjD!pO~(`C&%RGLbUDy0L?U4HOLyEx**FAZE>Ea{i{~w=}Y%1HI zet*vDxvHV-{GZ-uw&T4r<>k+=S4+1)SSSAAan^(K6S*xduQxvzbI<*KAoumdSNpA1 zHZK$IY6(8msDJkJ&pS3N?j>FNb=&#F+v_s(-kQw4z*k>eE41G9`piB139@^}VE}9th>&&`>hkw>~ z+aJ*T`r$KkP1&|8qw2~pYRPv#tl9eeZ+@Bcy0mFAmh98l9k{f(iP4Jv!7KJPvEET) z&(F2K+PHf z98isITM)Z*-g=R`|28_Ci?SDgs;GbbB0u0N-y74DC0-Lh+}x_D@oDkR-4{zv6+~YQ zI?lX4`oB`_bkNF|cP~}#8P>>peE*x!exT=Fa{mgge#S{zyo);axa;)Si~syH%WLY_ z=Fa+Q{S$eFuAJDUna%t_^#)5!^ttCczf5x){#RZr=_;t&kou*3#WNM1&1KOV6E8(x z=Fetx`)}I6Z6))KdHX9S|E!LF`$PW3n(SiJO*uX~20OW47=PH~`gt?E?5(x?nl`@l zNOOO?;r|A~yqo8AC-o)%IHk>ZSjtwgl3)JECv86IcDH~3zndOjfBoGLL#yDa*HudR z!U``J`z}lF36}@2H_AWvST&>gaSU_K<~!$Ob@n>Tf%V-r&`*mhM$6n2fz4sq}`+6aKlk8g8H`{l~`&Hh0_$D^tzT5oFtsBZ1w?(h+1>eEf138YvK#f`^S_@pn!Cg%?V4lue*s~s z*9CKgM1LI1lqp(}{VT||YgN{(Gn4H0z5l&rlC#MXt#por+;ramKd+QrHtc$srQbL) zcb?C?^Z$h(cpu1VmOPfK!8-lkvx4K(YhJCr^LRr+uW4w>7yb(-D@|g{pFfFB_@uW? zKX}OswqySV7QcEYpU`#n^nLEhKGrI7vs{gG|9T`FJL;Moy3s4F@2D?e{`Jq%Pj22D zOg03?Y^%4e{o7pf_1o=zPuz}F*^H-ge zea_GM!TVv+L!QUqjxYV7{(8NV{ro#?XSEu?ekm)lWar}UgHH@*<~-%G?rL#Vo1JQ4 z=~L`3zL&ZA&GnF@?#n~nm_K|t`Qve|POfy_^XIEpC0#k9mBABqWI~9Ub6WS^6MQqGj&7~~YOvJm zS8~zoU0FXq#abJu{J&s-fPF7Z|7@OwJ&X(mkN@ylTrTPRcq`lN&cCClX7U$2{-n3A zQaEa|!Gu$fUN39#IB99&v!c^*GvB|=yh;5bC)EEx+;Uj8e$L@pe6P*_Fz&eQT`=vX zKw>7tGsg9d*XEZamXm&{o$o7cKFMpT$IlIVk!!^qmbAzuT;FA4I`IcX%#8UqX3hK8 zbsV|yU*JQX{z0kBj!qXD7KX>*}z``wj{C<{ z{M4;_d6Cge{-#^sqAx3M6IsP}!21F7|0FB-jdy;^fGe-3#>vlok~RkXohl^gZTsna z=bismOWef%tA;;zQZ9LaEv`wuQQG&p#ZqswKP*=dL%1T~_Q$Opwsqdsi`1(f#4I>(`B!t~^=7Be?NO!7;^;7kt=) z6LtMrvlUllE)+f$e#83$V+_bWYi@9ahh3;?&+u z@8s1j7dTUy86K$aklk^-q%Udb!mxvJ!YnvZLLr@3YxvuD}* z>hsQ9qFG^kUd1(qH?H=1uCeSKAO zFE`Vzy}E3%$Zf8ss8rT$DF%HT2?B=^n#tZi+o7DLRFAs{A-dX=c zX;Qn7*^Q^?Z;PC4J}k6TDwTJ&RKuM2Oy_6t1?Kec<-7mS`OEu>`SbV}I5)d!oj2|G ze?D`&+Kj$HuJZy{)K*7)*L$Pt!TelkA#an}@5ezuKK{L!&$Mdw>X~-QZ7(I1g537k zrD^f6o0DSYrul{O`LnFap=+`k81}H_GlUG?##fW*DqW+Fhw)i=eWQ` zqaS}aoxJn2DCPg&_&KXRuWj4}^28suA9G*IEd8+fx9qHD9{26STg>&}B)B zT%2WRyuIvAS;zY6t6jr3ZDTyKQ=sF{ysCZt_jjFs_|ZeRO6F$IOyiZSy6#vd2r|yA zUfnp~#%^xL+Yi6{zOtB}hzbLB(EJ|AEBvw66V;mBy8h0y50|2sO`Z~_BbI#3M^;Kj z$aKBw^^bqs(dMMx z$sHaO_gsrPzWx1tUnAL*kN7_mGKb59QhT~_p3m@Z&f?))X6-NbL+nHJ88 zF>)$Ffgs17es{BTUrNZS)73hvD=e=S|LK^s|HZMJ(iMCiPr`~r4S(E|v|FxgGIvSI zrkgsm&GJ;{Zp$<6?GW(!@%!ZC%Zshv@L%ATd8E2%qi$_V)RsH)Cn}c}Pw`UYzW-;h z@JrREjS)RFH>bV4pdiTox9(<2-Jcgd8sha0pBDxFQFP*EXqf(h|G?B`#Z$W8ALf5w zth6^Wz}J`ea!JO7j?lWlXF}?}e%Z3(+_(F0PQ~073N;!{k=MbyHrk|e^yRO>HFX9A~P)+qKh8;sLxoj5wY{>*Olut z{DNxsy}!ICQ~2=V!^;+ToZx7?eDI*1;N9Ex-iU2bBJK<){yNTOg?lsq)Q9_;*!RpN!_M6OId?n2E@XqU&Ych@JF8LuP zB{jn)b<;};C8j-hV-GI{)oOiFmjh2doW4^^C~{&RLy?}E#cIn-W+exguP?4JEmBu@ z2)-Qh>Xr7R%WWPRYjf5nyK7@Ay8`FDPcFPaCL8JelI-F1XUd`?`6-(Pm>wpU^|;ZczN6$tE=EEPB&X#!>n`Y%%7#bRCn7r&6bH|k1$@xA{?!TKKs(G}Y!(y*cmwku_ zsK}0R+7O)Zq}?V+^2aY(zU_9oR-T1duU@^p#JSn!)U)%a)r+tGKc^!5_U>P^&zxny zqLZvVc7`0$ZP49WxX-VpocqqTo9&0p{l2a2zL2~7+BGpYcBLKP0##Jnj6r?CV|&-T ze#)5o_GjDl2U?dEPpy0;#lT>GuJnMo&vT9Gd!MsNvz_fe!Lf^vS4ea2_TAYYHYStJ zZ)+zl`=7S|i%?94mCMf1GrA4AF)TI-RxUf&+~7!$eO++=^s>n!pvvOdnVD859!pNh z{rv5sw=dgospx<96%Dq@Zb1{385r{BxIOTEz;HS8)XOu@4>nC+ys@?*K3-n-?Zi6^ zyqBzLyUe#g!l?Im{Q4D&^$n>90^^$EE<5_HxWUG7FH-J@$%gKiI#0JGn8nogo&Upe zM<^pdfBF9P=Sz45v)8^~_3$_U*)>zn)^7V^R#36@%nx}_S96e+%?;`eT~>AL7K;6Q zYcfBW&uDH+P0juE%g1^_bM1jHYd-H^t@iP=`ZD7w>vr7EtUYisu4%dtyWz@5(x8y> zJaE@x>PwxcWyg|!Jku<@FXXZOa?Y(CjX7cU(_KFq&MDjRZRN{9rLL~E?{4Za&v~S} z<9vz0WyIdr80|gRb9Vd+wyQp4GB@Q78yj0jcCM+cv&xrirL3F(XcwH2Z`%5A{&%52 zw@M}$1Tb%4H9x0%z~A?|!NP@N`$|`x&*b)1m)w2soL^P7QiaYUkBK&WiiG}uOmXG= zng2~ct|{B6orBwy;da5}7`~eGC49kl+cYv*a`viT*pn%IGUZYU&%^-FWwPsPi>&z9 ztvR9i|Lne}syhyqbQlCO8!(xln|k27?{kCH^N|O28^1?Zlmw|wPJGBwwW2?)yYSDDo-0?@Rz5cI! zd)et}H?Lp6e)-Ck6sxul!@13&F+V@})P1_q%1D-#bb_iOF@D<|yY8>!QBvhh^S=nC_^@+o zn=)8~_B{UMs5w$1cKOcSX3i$|H(6GmbtM@SLMDmomi{?D`SQ=|Xji@Wx3BFzaC{HT zEyWy>EQU`Hj;&Px!CkuMrOq--76E*}hPf#~Mr}E(Z3QmTES1dnHaoVNp@Xcy6c>VhA(#4Apm+(wn^r>XZFsNHmL@tCvHr2{dw$r9xu52;P&!gZ)}g3OuD#r z`__y1@8?^!c?9mc8F#wg#&YiUS+9NEIVV>)_P?H7|L+Qeh=#fPgD|a{qzBVhC4E?V z_`xIo-#%O~e^2D&ounZl(N}o+v+td~HAYsylC;a2p1+t^pLm6#$1$(;!1~6|KIxp3 zC3`>A`+u_h>2TT8ZJO888(RvMe_89BRXuqxyz}47%o4tg9re=tS?!kJ{MQ=HY~YqB z!~VlkbWh}kZ!){wH$*A)v~%-*`F{D@wKS_Xk9*fjuNJ(We7UmHdGAYh?tjngmu zIleJ~*}!k=zT6MrLc$NG_c!UwN$)FWwX(K)@%F8$taD1p$t{Q1de7dGeKY0K%?anX zm^$D7-8WgPL21Po<`y^O<(&HpH=X~u?xo86Pqp)(J@e&JZ})W!>xGw# zgH7-3ueJLiD*G~8CX1o#MDJ(I2UZT7OSV0J!CLU~quuX!NmiUZynL4~T}rZQ<5+zw zYv;?ID{c0lYr4Dj%t;3ED$crGE02&Bj2cGf=R6O{I=IU3*{ghfcfrMvcHC*R&tANH z)wR5Q`^)LhT32TEMdj7)>r~BFo6#p!R(s%PT+?qK_D&&F2Gs}0EIEE~3pAbI`S7Vl z!KHr%7Ypq^r_DHh@zR|$7bbk;oA{}6_wKgY^Yb5lG*`>|^{a0$Z_O3&50hRh1TJP< z;Bv>JxUm{>;zhuQq=a`{KH1ls%}xbnZKEhRouyk>E}s=W-R$FsRi3v_sN0`zn7o(e zwJ&?8k|~4glVh1Ib?kEzth#wuB^_Mb___bv&HB8``PMUiF73&j{BpX3QkJW??EZMO znajicLmr;L&wL;pT|rX@)n~_6s@+)g2y~uF%10ZE{~Gi8-v;kH+y+`3ab=-n zkc!=hGq*VZ{Cj$G&o0l+zqr46KTy(dJoiaY(Uc+e(XpRaADFlJY*2umAj0wL)CQGZ zYqw5qY-GGVT~|!{oQ2JnBB65K*=KIwRlLor{io)Ek^aHZWz8W>rVOc1j#X4pwex$W%_sQ1Y;G4>R=uKYzfS&>cTamuURT`PD8Y2@vk>eIleD}!$_@4m zn|;zZ2F9As*MyYl}ju6WTjMED@ucHzwbBeRKGXpM1dP~P4X3{Iqy^>lB_&b z1DO*X@>&nfJ&?F;^NpN;J{GS9<_C)(x}v1N_}%;W%VXQwPL_S)3H^BCROg-lRm!h- znVhlrJI|1wwXFW2JHUv&{@`)_h;)b|J z1!tUr?2=0>896x3&y_qVdr)yXa?!F~Ty`7O=j_;jzEICZ%;K7ng@wmzKHjc9{~k)z zM;n9Y{7!i1U(fE?Zz9KJ_fj>(T-N0ZLra(Ra;_arKiXdE1cnB)y1!#pmwizD#?D}) z-v0a7uU>WS=i}{~b18Ct6JwjZ>M~<2fuOI0MsHcxvuHBSHFuYdM4 z_>`i9nFWIK=Im{ZZggF?IizcE+Tn}b4_2_+b(itGac`S)GUdjW!o_^Nn|!QZZ>R~D z1sU_Rly}X`6{fN)C+V=B`zW-=K-T4+H?Kp-&cZB?JkA>4j+y6zJ=LxpdRWbN_P|B% zgy+j1JTJ|dARF~-Rpq<2Y;h6y4|wNaH=c3He!kIZCVM4`PyRFcl$C>-6By0UZ9L%X zF!TJ0$!DLP=i$?c+Oqq6)5}_)FQ)C9K4xD-HrE8(uFqSQ{Bv1V?z!Y^RS)F%u=LO1 zQ(7F%oWN;*F64pL1D(r}EX#b)JUS{kzZ1nv!;Ji^y(&=`_FOSvPw#%Vy0Bxpc$%rK>6R~1YxLqP9DSy0CQn;A+pjiB7_2n}S4bMK=r6cTQS7l%zvshhn@!I{fp3TcL`?~M< z)jQF?(e|g{KB)HXdGK4zetYE>#kr*(sdLKrE#Jg)fBTP} zCC3sKo?e)}W>LDvwBM^1sY@>YKKH%h+a=<)nh&%daOpcn~Pjsj;-#0VEfcV^nb=h4hNT=g=MUD zjB|3Vx;r9X%RT6hYbssV?D26WV~2(LIrWD5jGKMZ1qHLWFifxD%rlpD@p9kJpmfgr zgZ+Wujncm9f`Zz2IQGOJwf|+p6ySKr!ky8cRSa~n+``XHAN1pz)P30}e!9Tnz~aD6sj>U0-GyJea`&hpJln0&JcUgvkQQ>=A zfx(AA=|o-}kVr_H7rmUdcG2@U*P$pVSB32U0Fq zx+tw-|DpQ9SoWg!3s^+-QwW|_=(o=t7mIprX?zXxPlCja`EX4Mm-X3CHh^X|jK;uCYj z(yaPDIBoquWd0A6J*T{ECF6vE!pAZ$7dYl{o6J0?9K;fPK=;78&-pOo97dRvOLm(j4YVrvVqXUas zzJGgvDYHhX40b}OGIKh!JG0^CnM)R>HmY-U{hJ%tBzC#c<`uy0<_633#oEB^=%;$PKWpY%^Ns#~ddoRoS z*?cNNURexF7Co6JUe~ce(n9dY=@K==EYXANe||T(Z;kQS>Xc$wnUObVF6T2I8Bc?W z1&X(d6;@q3(9I(JV;lOy_zZTO#~J+Hqq% zlg(>Y2?JR#6`d;#9X*G7A2YmvemAh`Fh`zrhVi0;lL9=??VaCUw*4?`xWPO|FbZgbj{&h9LK!(qd{y02#UuQO!t zWs$tB=(-5BqS`TUPSm|z0W)*f&kZ*Ze9_$}<&&;^LE*x_qv6Ky#lD?&ty?=i;YLZo zM6ac64o8@FRBD z{4RNYp}PO}?R?v9zKJY6%fP^(TH+c}l9E`GYL#4+npl#`U}Ruup=)5KYiJZ=U}$A( zWMyQjZD3?&V9=egSs6t`ZhlH;S|x4`ziheZGcYhnf@}!RPb(=;EJ|f4FE7{2%*!rL zPAo{(%P&fw{mw>;fq@~sDkP#LD6w3jpeR2rGbdG{q_QAYA+w+)nSr5V&f`x!9ED*T z8mIhEpYePe#K5e~t(VL#tSsz3S%g_w!KK0Ea0;{X<`9L`H?EvGa^{H45%$v!9t*tm a7+#4BmV9zDoyx$#z~JfX=d#Wzp$PyLR8Ru| literal 12300 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4mJh`hA$OYelajGa29w(7BeuY$AK{8`GXOC z3=9eko-U3d6}R5r_0NepKK1=a`IBmzvxH7|GqjrgAl`l$yaL^sy>KM3)!>n<|KhBD}_MD z7(Wn~d=c*T%i?U> z6rMG1oQ&ln4J-^FG+vx{VXTicdAra&JJ4u@m$RY=1A}>UU0jeM*RM675?5Po(8_FG z3o_&-+uyXv`3w5DOlmCJx+JuXS%tyDNc(TA#*51b*u}3bN=cY`iot`S;YV}b#Hn^R zt9Ul}g4}$1fxR&6pG6gge1Ck|rnxdJdN4F>W2!G+`rp=#nQ^D2Dw8%3s|Q1ad-!ke zi&^t)Yg^W+Wx6hlZ&=0P!7$5dgq1;vp+)ouci@Bc zeEEu9vjdd^(li{H816II2VRIpPsD^cJz)Ri!P51Gqk)BCFWW!Wi+9+6bfh^> zU|8_@fW2bzw;2ccTPAYo6!bHAFcgG6c+MoRU=yRkBE(>0`a}Ha)V&Tbb|gutF#OQ^ zAiikoL7ByjDQ>Q5(F@K5Okhx`Zmd`1`m<*)|A}?81C=%$3`p^}cb;(a!G4v@xexeL z?tNET>t4*Xfxly5L`*#FS) zD6(((X1bkKOoB^`;e+vq=c%XumV9S^5$2i}oiKNy0%ODP#{HEu&!3mzWiYG^j!|-9 zVp!f>?`ZOqaYM73qY#6|u2=Dsz9_pfH>BpDyrbq}+Q7oF<`-iCFDPQZGB1!~5Mqen z{8#dWxqwxj)#j)z!#~#ls-E%!e;6&2{4TM_sQa)od}I3Wv*p$PV;KwuSE53AZzO1} zU{IL%z+S(2w){c)hSTd#-chnR9}vLkkl#4p&7NW3BF70V46$tWQhynK^sza%Z)AOt z_CeoEOZX3CMV?=f<*dsNtPJTa|3y8oOL8(a?hMqO$T5N8!IA^^%9&F`?Hd|GRn8WB z9pKGj+#&df+bH%QOFe_)?8%m@0SOu&3>^QSed@XIC6#W%kaA$hlKVx40l#iAdFX%e z_lOev{g+|W>$WAVeO!|mQZ#>@@AzBCFyRHa0^^B*59d$Id|dp5pTW&HsPQ+`Bv*ci zO$YaDd{&ZgvS*Nyo?f{yVB$grMh?Rt`rcKuCo(iFud<${J&|D>!yERxS$`Q87@M$9 zVqg*cb9&KDeg>=1i7&YoI5)KDGE^V5*Vp^b*pO$c&wI*PB!r=c`(NtCH|z|1AGI)u zGUPYaPkg}7uu)PxUt|f>1J4i3FUvE$saPC!iR-Wf>w&Eg_B(uFXIOo&?^#p;V}aU_ z^&QD|3=^hEUlodG3Sr>*$1uV4`r@79Dhw?33<{hKoD2u$89bN@w5k}a`2PqSt^c(5 zSO!Cb@U@gU%`m%>HV`o_R@YMspjjRqI*c$}SoQ#n$IT$d3LEsN#g9-!O zEQjA=oc|ae#0qUVWiWx^%cfuPf_MKhJXoA9BdEgoLiI=SIeCUZM{OD58X%T?FkBG& zBhK-UK_Exy!0MLh0^tXRAN0Mzp|)Uepl%@V0w$2XYbvd0eO}3svX{wV_liAdT%((aG_t;MbxBo=lH|=ybw#@if+o00Ga$xBLd&SJyOR4+V3lc@`O*Fsu zdoU|sdQkCQyZpMzt4oQ#R=1}A+m%0wX%&0Hk!4G2!tN`~ILXrR`|reQje?ryc})Kv z9NoZFyS?+^L)*y$R~D-6?m-6ofesyjhf%V)f7RUHdv7fA7P=mv&}` z{nQI*-?v9wHfQD%h8ID;&r%MsaW?!vIKQu6;EN|)gI~&{6bG?oTSc4fZ~b!$xW}KI zI@x&s;}fdeI4?}~nZv`e3lu}Dp7xI;kFAVvI`}wYqI9y2Q`mje&IA8s^^}~V@2#1( z#f9lX{0DuHU%Kb@=cQ!?S&6gOrJVmK`|`B4jP8+{{}x6C&15++|AD>otbZS-T>ZCG z^W{wKHQx$jM1MTm_T{NqDB~QB8_Ny^R5OHe{>v~mNNW0bqS)li!;PK=K2ozM>s?v; z*WcIZz+a{eL%E|YU39cJOLNV#0}F&0 z@_spAzOclkYU=BXi?iErU%IFJi{-=A1$kUNYK$FuzqGqA**DHVz%RsjBXIIgd4-PI zOwAq)JKnIf)J@<}P&^nTB;sX#Md;xC1N z{VMN%oX(xK^G5l;Z@#7p|M`+93f|kNf8aEWg4L(*jOSx-+<4x8{ssSuDbs6g zq+Y}_9hkWPgX!tNi^C=<+AqW zlHCoa{cJ&u8+QEC?+E|Hw)>U*{K;+0CAeE&CwQ+4UBSk3W_37w^<)N@rT3$5BLXEU79%W{nQ@p$Wb2hh$_;!Yhv+Mu6>3NF(>(i@WAl|#HKCwVT1@xqVi%O`rj@n_1svG#(@3&rJ9OtGsNF8p{dIcqY*zWNs(!Mu%r zAq*LRK6~F^uyaky6QN|rCAt6mcG^yO=CI!4qQDC;)`XeQ56*v34+^~pT@$^ZS)V-H z7+0wDZ0S6PGkU8u^8S3*`f<6HXUEc?i*zS3L+}GFFS&Z%6Kd{Gy z-JhBz`dNF<^k3S|m)9|TSQQ^1CVpS-2Xjrh;NmOsl5?V16{7y;cbu!&R})$HmG#fX z72eBCb+RCw4R>{RxCHMLf>H#r$fop z_ojB~?CKqk#pmWf;BT4D(sRBra>C(#;zv&;Xft@%9Lr;?&-=lA=y-4AId2m;wP_3+ zeyRUpR^U9aa-C`FI$E=zst{m*kbZg_ZVZt#?S6AALu=P zAo2P;lS&|C#G~R8_s?7RF+p?&&3>$uxd*5GR@>4c5p=Be(hZT!!Gk=!{ zJ)W@fgqP@nGS-Hx`c6bxa(#wp-1@z@dzPv&G@kA)ye96DuJ=dQw~_CoHsg%g5W`b3 z6Bg}r%zTu3jM1UJ*!|oY*%oh*a(yq!tUB$jAhlaP*PI&g7+$yeS>8@Ugx`)Jw6w(PIqkxCVVb6gCo|8Lnp z!}1to!_ii^zE(Gn(1r-1h7~{GOU?JTYFlpkiCtmg&$OC_3$ zzsw#I(Tpp*Ri7Q3${_O7Cg_h+&@c80PYyM&ZP;>DsJPmXA>*Gn|I&Jfm1pg9SeNYj z*1cHLppWZ-&3sob$sY>a|1x@9Z;jl>6m+Hd&D)o14tf8)&;Jx(8mRY-VZx@p(U+R} zCEKTbDKSo1FUk=1U-Lw-;2*{viBoR7?_JCEWfsGQzw?>A{xi&&yg+U?<8D8OH1Vn8 z>;L-RIiZ@FF{zN@LEl18V{^sA;y|5uUi$1Ox_W9i{bE~sQCyOJ%lp>Amo=xi+teSc zocs0G$M^DAmiB*>aNd&s#r5TB-Fp%Z4`$^a=DxY-XDZz1 z`SR27^Xt!x@BaP0&c6K9{r?r`Rajo{KHhoI{o;LQ6=U<>xP^)ate@|yF~rVg>hR)| zH+XllZl~IR{ptTwV(aewF=_sHrC?Y6ytU1bQxf)m%V1@^d3lBR?fZ;iz`t5-%{ zstN)H@uaxF`#nCKUnK6f^t#&FQ+4MKzTUR1?d z8l9*k6!u0oDH2Wp%`JV4{Jj?kj#GK}Cmz(rL zb)`b-G=`F3#v209|405^oc*)#C40R2?`IS4?N{JOqrpJV0|%VP&qkLJ(FD+&9X7smYW@9byBO@~7p zo}YZi5j@D}ML>`}xlo z)4wy#pIcm%9K-X(mC0cDiYAq)Y#nR&=lhG}>cgV`Re$?kYi5;T=NzYVWX|-!$LU`g z=Y%pQe9e!%ui*YahUcICPOlIAs+>PghE8I*-V?J((m?UE3PWGL;Dfji?hzhLGHaMF z@XTm&(&u!T_feTq;YYIyL*Zgc1Hrqwj4sveZ~jM5kv6sm2{-)Y7n^g7{lfj+mkewE zasE@_WGG(nnM;L%PikHo563?R&IG=eYEWq~O}^&bzvZu617Eh+AGS!j%KyKun(306 zfs@dLhI88((!@=b-~Hb{o8bcE>{Txl&;3k~{XCB$k0(Ws=gw1&W!pgocK%JvP4}*t zy#J>DBe|rZoZUb?Z9CV8Ei4NTR79SsSYG+je^y=9)Yr9zZ+-@T_EC_nwcN%i6tIBl zfftj*No~`k`5%(xZC+mO-s3gHaw3<*Wz%D)<-FoFYnhK#F4dp+?pN_MNyg%&hILz~ zGR*nxgxiJ-_{jXkc+9AcKnWPKMR>M_w!s*ZjM|ruEEb+0R{XtFNCHt!IKWxjHW+*ooWibUL)V#61A@kq+9RK=&U+(WgE^0~n z^3;P#M>~K~VKZ-3UCb}N^;NDu`+n<)vlxb_EoO3HN;s)-{k+<;6S?&dW+tt3InK!t z&M^6E)!VI}QvU_^?=1YB)420e@pV5RhI!xiC46xB-SRi;LylqkqnA<1wf`@BF?aBn z$EZL4n!Z$1FTYVW`0z7H=Hg|~{d^d9Fm&Wx%a-}gd|skh?c5Z5O~x4sF%>f+|1yU# z&M56NIE>3^EmqAQ)1%rx;yZf%vpM@`f1|DNPSy4Bo znsJ8p;nfUh4D~)rFPYgYDp~RDz@3+UJKcpEZn}p3zb2QYw{=5SRYcWPL$^b5dr!P> znrZ#_YR}KJTny?AIkrcpY+O@S+hxdbUanZ(YD&H@!wQCo3+5io3%+{J=*#)=rq#0k z*%=uw?G+3W=M!!o-t=m#XWu_X+u*}7{AXmO+*ldJ3Z`8xVmctFSiv^a`Qp|zrho(u z9Ui^s5o^O480I-X3n*FRz+?dFnBT)ulO(8Alar=SF$n6he2a+ zQ~E?pk-M`peHrwOdPjwIcU$+ejXlK*qAPKW@+E7*pNo92Gu$7Th-6sXiA^7Q)F*Ag9MXzq;_@qwKEqb zSmt>?3pz51p@4e^c28Z56;Ixp71DifX9$_nD{>SJN> zS;uf*!-GM9{ZwdKKpg9Njbg1wz6@y+Z54s*HZ|YAcEI@5oUR*ZzI2;2HeD4xVBEE4 z=NU1EJs)j;uYMrOn&b=`&*x-#bl~pQkBfIp*{nXZQh~8RE`NQOeD&%Fk*R*HoD2*M z3XBX43@Qv9LhGYg&uck=^ms5ZFfbs=F)%c+FfcF(F)%PVFfr^%-g``CuOTq|Y@MfckMkbBo9j0v%`JrZa??Sv2G(BZV+~hDE8Gswd1WTVP|^G@>q8Hd z3WML`n4?d)Kwc_(o{x)SQja(9+ERMJ;(%{7dk&+)@~YIm@t61>GlWGjoL4hS zZP#V+mdi6{^V#&^CQI?k-76RlXz$4qwVCZu1Bwfs2k)}fB0uCb?Y#2TeVQ(VcSZG7 zTT!*B4?afI7p1E(Oe@Gansn6-Fn=Rk$ked&%4IHxFWUJmTPE(@RDQIJ+on5#uk?IcHq(ZK6-VAr zIHpiN`JL@C2Al3P3twDv%VuKW?)xUmJbSg?HpU6t_9|;JoLTrUON}A5O{uQ_>BFt_ zSQu=Y&n$cqF_Wty)nt9dyc*5DP3aRXMQpli}3Lm1ZB z9(f}eRr=kbs^8G<(7oO1^K1>uf31-G96g&so2R?AeTJ>h>$5xN{kA#zuwo+GiG~mGwIxs%Uh29I)0yZ!?6z^9DcvKo4eBK zyFpUe%EGt$#i;^voge@DYx63^#biyKGu2;``Gb#P_#+l+6^4|pj?wEq_b09wGyHir zea`Rnb!Xg|0@7;U*j~BAK4DJ$ooV0tB-p>Cz3Ed3m-st}`l$(R9|7?l>&-q_jk7d)72YSg9 zw#>huq|Gq*wzbiDz8T8QpIma(89gpswEG^d{`MVXG~q|1JY}A!fq9w{3^}Xb7s(j#^1r&Y{}2D; z24kV4{};Zt=k2xn{{MDaP|o}MQ~#%FH|qYH6cldtGT(RC!QQ-zF6sG25BZCeHu&|t z{QGtqm%#jH-D3*6+Vef$7hctn`+U!Kmg`L6!*TyhCNWHr)bHm19lMS3(wEQCmyTEW zF!%I-xA-)DncG~p11wWkGFY@s3a^^=m%)TJ>3v6S{WB*mhW?H`?prBmbix=lDwn=` z*SO__`lN<6?EhQs3-8U}X;3k{|2{)S7;A%8!`t?Mdeh^Uyj^VjQvCmEia|*45`P?)(JI~?EO6ROa7bxY3KIeHJWcbgV}h257Pq$y?qLt3TT*!J;=F~PFSFMh@U5#%42k+zomtYb@q_6P{Xd-2v8seSp- z>~TWm+Net|`l1cS-W)IP9?qSW81v=gyf6Op1-Tpg?fUGjoAy_~+RgI6Wsc--PX-xB z=bqW`zsYUx zGyCa64aU_BDw$=0(v$Rz=at3Im^yFgA&VV4_IiI`-@hdOVAeD5+G{&^9{G9o|6i@g z6B^EDc^VgnFsxuw`SG;j_Oc06_jX{Rp=fFifcc$78 z3-Z3r`2X00vHm+gXf^A7=q6|hUB`?G44d*@!VZIdk_5Wq| zXT}W0(mG)bt5n~5L?!#YecaI#KWjP53O1Gfua=*_FE3N-cO^<>bMk72EwMokJd+J zUH9I)XU0b)SKqc`yK$uOz>@;o4gce2PpPYLoh6l~vuk6i!rw>RzUUo1oE`If_KIzN z|4pCnI-yf{L_&SKDZj6g*uJXr+kf`_TNCn!t#c>cbnt-`qQ zWdCfJ2Uoj$T2tP=`+qfl#|iZ#SN}hMZ_LN}YQ>-XzN`x(lNN9}h%&@Rt)DsnW#Y@P zn!%DMZhbp&%`rss<|7OF)%8b~Ja+q=C)8lX>98r%WG_SFF6puZvv*y49*)bW0` zWv+G)j6Y&4^?Q?1zGC20zyFPW+rhDKJ?WU_`;;fgmYjTVz!xbPWaMz+{Ia+A3qSfF z%DOs9ZPE$`6K~$@lAlwql%KV|r954tTPI_l+y&j2t$~v{o*Z9d=^ymY%Qx!2>3?4N zw;wCh&i<2as^{9ZYx(lqED1AN6dq2!(tc@Y=1TqJ5h*Ft90eE{_&0&p0-SWO?q|FB zXUEUV#4CT6+_m0NTJR@5=bM?rZmCk^aK*yYcmFuY<}!NBVe>frQ+(;g)jiBn^E&So z8Wq^3Yq35r{wQzyr{esbL)-Ud*X6R+<~=*C%sn;w60=allF~bW?`N|vh%8zlX>d~i zdhW|Rs-O|HhK~#Cex2GqQ({Y)fZyd`?=#t|7Rb8)PU~}ev}@n8{nJ?zT3Hk#d!2*h zq-Q7VT$p#9*+R7{B6>kh#xo6-yrsA6H|)P%zai?AP^kG^zHUZQSrZ&?%b%t5U6}eYQCox-@92wG7J&(^S7Ou(|l#k*IR$Y z%UKapUOV=V5XS=X zJKvu7fD51h-oJJKCQkpc=Ti9U4~G;O?poeTx4x(tmb7XrmqQ5a1CIsFMah?r=6ly# z9%FK-mMVRD@4e>V-J7O$e|`}!B+Aek$Dn?teChA{G#Q31@Bhu`{KvOZ%sW?|!PIW| zm$&x~?HLZ#JiPwu{%Mv4QJ4CXD&h?vZH!i2%wDkT*SeY74|=X@OsfiKoRGm*a%%7Q zOfHs!O^a)d-4AGnC9k;3qOfbr1Gf1KrKQ@RdGPD=GJQC4C!qfso8Irjlf66i|9S3W zau7XW_%*ig8$(4%ukN8UYySy*GA!ar>pg!-mc9JubLNCMVHGF)oAYkP{Z$WTT)_1} z!K#+gfZsxUV)BPUQh80XZRu*RT{hPqTaFg@j_j}79+rM7@e~C6j2%`rRgTSAM9z8xLAPdTb0#+Be zGYGsXpR@Vjnt#FT7(9X|p1=9<>cRJ(Obr6f|M%W67GCjKsK2*Uo#76jhY*9p&j;tl z=3mZJDSUUom8-!;pTU!Xp~*g|w{xWm%y>o5D(&8@^|M47JfkL5UN;2Wxp~Dh5$#7S zRT(Z?_f7x##}niZ<1EXr)|*}ov;KdaWLC-c$Af7`0K>l39cR;Sbw3CZZqWD~`N;A^ zO47qk3Jvcy9&MWP>{a}vUsAnpuNE8ZUQy~C-KGe=R$OeH+%MiEmYWX>`6bz9{+9k<*tBa3nL{DB6;L?}hvF{nJ6i zfjhpizbY@7&}F0kZ{>Th+xwG~n11vfoPOh346DK_rZrx_!F&y*Z(** zhCrbMVGak{)Xs(;+7rT|XnD(g`%l|DX*x{Ld|&QgdH=9u+@vE%XEavr$nA4_dpAi( zplxsTvzcl?*w-rY=db^|j!7Vt@zW%`2Q#^&^L%z0WUpds=s)@9ua^67qerUO&;Mx; zVtmlFpl8KlU(SfW z<7=2LRa(68{Jq>+e~ePrMg<+bZolV!aAx48T}uk*9X_Cb-TCFg_DlbkUwYAf>4fSr zmUlPyE5EJvSgMtr_32NoXOwkMd!*Xz07M%xLYzsr~Czu&OG-?;K?SG-WeW0eHY zOXn-<3SUi6n6Qdrb?pO}{4noCnV+X)KpxRvq$!Yls&{7Bfe%|=N;mxP`?j=sciK_^ zV0kNnn9KKtKgY7!9bxsXyeQIP7T)oF^|SPfD5-gq&iP)pcrn{8_SdI%B^y$k>@O_z z60vR)s{v)tGabtuzBHsXEa*S8!t+$P_bmlR4t35G-oF~srS~SyJ|O!w_VN+;N_oR7 z%_+10c`(TNGIc##=5Qn<;fM;8^W1BD&1Cu=&^7&d! z&$=XhP`WN~{OQAOB^B>2J}^&X`PgPJ)UbJSgJ_`<1E(s>PD3r0yK6qoep;)*c(DA> ze3jLg1=X1++<5i%;Wo=^y_vercXpUqq^)9UetgrHORDtchP1Hn?Yo2ax_Qd4JmGTO zUbMk|HG{B`It$F15L7kC9kyE4VaU;V7(V157zMK5DVGsJEu;-u$ z1H-}jEDEzd5A;iNGH_h$=lpm422%x3ISYfs1f$Ap^SK<-r#38FBHhEnAn?bN!Gno` zfdy<81H-}l`Cl03B$frHdR~{{WcY9@YU>iF!w#$q#6KIAyD~HU3Fv&5H-Vu)m9!L!x|p&3pH3wYA|(UW|*_l?ZbPSW-M#k4Kw0s}{1F!Hgfa3K4H<&zbzF9O)!xivV=#ds z#gODIWRrN^m1hE$bn7y(yTr5nVq$1nxAVULhviHS!mAjyC#^FUVqhw6 zzWyVK@xaTg4T~xkD>M|C+<)Q@QemdeSm~+#$d-xWPw2#uCmr&l3?*Tl8T$f1=(;gC zwBHk&{yTut;r!KxpDUyeXfiUaTkX2~Uuats7em#0wl$~b2t_2DFj(aHE;~K{fj=vQ z*eXWvM~@U3-c@dnx+HYifr(+aCj)O2LyY6%`O9xGeGuSnVvuoMEHBEiB!XAN$0YhI&VVR#-kL7cx-JjJ)(+f|ntE zhi2x&s7q|lj!X>&LXAxsLM#PFv;KH6OlWjT@VwM?LyRHe)Zf!FkG+{1-l#AdCq*-y z*d=XL{a2cYm6Ku9bPkb4E)AEN9LhpczWqE667yi`GFs01f}i2gR>`$L!X>ySFf1_T zoH5}g?*e-U4sYLOm$t{~X0|_M;AHUgW|^iMn{LAJ{_X_L@4`PEnHshUH%iXTWfWpO zaQ=XQv%Ckxg<_=*N-w1rGg|a_*EldW+z@Vb3K3KgWVo|gZ0(QJpe48tN(=%&7=;)j zJXyq!q&hiB<((?|3O4PEP^08U9S)V&XLb`94%~D}h`XcAaAc)g=F|iHLJT|RaTF{R z5QqmYZk@nz;B?9Yjdc=iR!67qRbX^5=yY&2;bBT&xRGClfx}F2MyF8Yq8oAyD#6d< zJDL8o9cC0_NKus3aO-6F&Z*FSO=WGsGj>jf6`<9=t7{ur7-p{HI@2A;*z$DQlF+c< z3XBZ5R&$+k4{fw`W070svidJXaF;jRr$8kG{XXGCxwDPLzpV-Jj!L(1U}88jn@6YP zHrvC#XZ!3Nrivt5|IRpZ6w6YN3^2R5f9I32&u!n%q%BYA54wZh8z;vYcEzf}}ZxOX~yZg)GB zv)Yw$zYJ@Q7s!=HQv^&_Ggk^V`LO)?`b=wn1HTXhgL){(r=-&d%4h2`&KI?FU}D%Z zSKy3Gr-QNLf|VC?vvnEk=N_|dU}5Ok?e*aYe>D5atZAS2|4J<7pTNM78OoKm$jkBb z_Ym$!(O2_b>{C6Z*SujAVmL7Uh=P7?sY;>Ko(C@qMLn$p8}4_8ePyWvxz5OPMusQP zr;GRXT=t*Sn8SADY{u7h8V9twK3E$qtv+{)S%rbY&qIVuxBjM&#FvOi3s{8OuQ{wc p&a^Ws?A@d#Sua;7@E>seFaKX9{Jq-Nqo$xieot3Fmvv4FO#pSM49x%l diff --git a/static/img/icons/apple-touch-icon-120x120.png b/static/img/icons/apple-touch-icon-120x120.png deleted file mode 100644 index f204c14b893b4a521b59a1e0fe86bac74ac4ce4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2930 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 pCnu+vBpVwWB%3B0Sf=S^Cg diff --git a/static/img/icons/apple-touch-icon-180x180.png b/static/img/icons/apple-touch-icon-180x180.png deleted file mode 100644 index 8c3ee3a9efda885c1c31c1f82567ffb4f0db505b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8893 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 PpaAo9^>bP0l+XkKtl&yN diff --git a/static/img/icons/apple-touch-icon-76x76.png b/static/img/icons/apple-touch-icon-76x76.png deleted file mode 100644 index d9cc0f35a3bf5f2d5fec3dfdb9caf319af228bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1977 zcmeAS@N?(olHy`uVBq!ia0y~yVDJH94rT@hh7X<#B^ekPSkfJR9T^xl_H+M9WMyDr zU@Q)DcVbv~PUa;81A{`cN02WALzNl>LqiJ#!!HH~hK3gm45bDP46hOx7_4S6Fo+k- z*%fHRz`z&~;1lA?z`&qc`G07jivLvjCs@B42!`M=@R|Jn`z4f_6@&i`+@ z?!V2B|91QS+aLUIfB3({;s2Ud|4kSCx8C~S;pl&dBmZ^V|C=rSZ@1^acKv^ox&Li< z|JUpMZ#e0{?au#3)BoG=|8IZfzun>g&PV_IpZs5V`Tx{=|JObHzx&ny&{O}feER?8 z&;Nh_LBQ$g|LSZ1uYUUf=ih(VqyMMe`~TtB|F3`kzyJ0B@4x@|mIqH@U|_H)3GxeO zU|Ex`yYM#$8Fnv?z}+Ix;JY%y*Gbm)SLUBC+&vPoUc}g{G%Q} z_eKNz`$AH5n0T@pdJUpjOPzV^f53nPxN$g42d|r zcE-!-%s`Q2-&eVWOmQ=pGVy3$7On1*dM+@-W{Q)^_5c6h$`x+?R@m}9^8Ip~H}UVI zs^4ZBUJJQ!_3q-AS6}`5!scl3;&;idIA8yA@eO^ff0>)zE??LX>0rdqKeMNq`LFCp z1~<3k$G$eL`XZdXSowk;f5N3t>0UovgTqdzL|ZW2{&Hr`1*gr%m$zNBn6df1{uZau zEe84XvmKj{s-PC(e?pTL-w7VZ~Owf?&bW?s9U{Fv~vf@y&Mw;Wg&aG@AXR3wxyBEz^;rY*4 z#{T0mseC-rte&z-gvg^;|YH*9jX>uU@ty|IXD^AHfy8|D``&q@^hNkI zAMV)CTUuYvGM#ZJa6?|yhLl^qP1`<;uR5mlC$8e=sqm|}Rn0T5eahu^TXV-IE@tb& zRZreF%?^Hj!aQgC?f1cr+aio~CmedbtZd5dZ$I{WhwNYeH)Z?J9+`b~9s>h|YKdz^NlIc#s#S7PYGO$$ zgOP!uxvqh^u7OF2p_!GDrIoR%wt<0_fx(e(rR69Za`RI%(<*Um*m`Z2Gy?;J8_0&@ z{Irtt#G+IN&)mfHRNut(%;anZGd*)X3tdYEBLhPdT?12HLnDPiLoRhmDz5Jr|J8f?n7#J8NKqiJ{l;$Q`S-IpVm*%GCl~`E?B&MepGZ-%azgr(o z4cJaAtBlml^o$Y)LrWumhN4ym1_p5?bD(O%GgC@3KuRvJQRHA?V30&o;+vV9T2fh% z$^dqienDQk{iZNKG;@4IGILWI3{5O84J}N~%}oP#h_*2>Fz_Rp6P#I<%3$E+G-Z+9 z8wLi3FeItaAWw$0%$!s!eSQ7hypo*!bp5o%vdrZCykdPs#ONm_rI;lqnIxJRTBezr tnwTb;Cnu+vBpVwWB%3B0Sf=S^Cgt~c6VX; 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 X3zmFxGM&o6z`)??>gTe~DWM4f$9)7^ literal 4299 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$SkfJR9T^xl_H+M9WMyDr zU@Q)DcVbv~PUa;81A{`cN02WALzNl>LqiJ#!!HH~hK3gm45bDP46hOx7_4S6Fo+k- z*%fHRz`!&&z$e6&fq_A@^8YBJZ3tBS*R1-lRr6oF{=ZJ+f1T$4IxYXTYX9r^{x_QX z-(=o@^JV`n*Z#NK^xtONf14fuZFm2--Sc0&;lEz@f8&||&6oeT-t^!8z<-A${~eD0 z*Q)-n)B4|N+JDP6{~Zqhx83#MaO!`n4gZa%|F_=q-{H`It-AjP{r|1j|F=K%-+bwR z`~ClIw*EJs{oiiif6I0M^*a9R_x!in{@-@zf0H@??T`GoJN)1F@PD^s|Gkg@4>|Qe z`po~tbN?NW{0}_&KljrA{yYEIJpF(4?f;vf|3CWn|M`#qZ+`x7xbc6>i~o1N{Qvsr z|G)nr;C%Fd>V^MHAOFAi_5ZJb|5MKY-|+nZ+n@h~PyL_&@c+vn|4Xm@zx46{-~a#Z zj{NsL{(t8E{~vz+*YEoubn5@FzyHHe|3Cijzi#XQ_rLyM{P_Rw*Z=z6|IKG<*)uRO zl$8Ye1v4-(^D0;d74$CKbN2SDPfUV30p)Y{-+1}`&p$Dnta&G1{N&P3oO}L*Y07wIY?)JAU&Os{im3pSId=hkxzW_)XwFE-g*zc>(-$CA9=T@L-t-*<(9fq}EYBeIx* zK|KzH8P6Y#=wo2u*7J0645_&FcJ9yU$=8LB-{<@-blA_q>?X@i@qYJaChyvevieq@F1^g*415Gves|C{Wm(#Ou%$c@jdhRv!8s~ z`T56e#(ne8oU!~oulSxNkMa^m4;!1kdunU`{$XZXI$6YQwhAxLhwq=ie*E_7%LE3F zU+Sz^^tieBIC;7IJEpk1YQKpnnPOw4WTRuEV&U;DPefs+jIgx$d;?d%lnii*6PmtB`u z<*Wbs_)dV)<|~yGSpv*n`v*O|673shxB84GCvQOD%W%~#HJd|!hK6Ul|EfQd1c)#y?%fZX@PTsG+{?UL* zBT6gb=E<`~)5R>k7y@>m3H@|-+nQ^JOedoM?bH6ME%IK!JjIRSX4lJgSJwyl#2?(h zf#IarbRK*C*(Iv?ABt#&tu5PHwRvq^=)rCVmDP3yTgz70Zs_Xgci47GcVGSHwQ(nH z`4#e8AAelGW#-}i9=n=eN3d+T)A;eYQdDU8e#g5BMqk^0Sxr4;IN{~#ooCsX{e10w z?~!Qlt7Xr6XZg;Kj@rH@*YIz4?#(@(n>X(Cyu0E7??=VulDr9LdFmd8zK!0VxqW+S z$*Z`{=lZt2y_Fk%JM@pjw8E8I4;C-2x$^!+*0pUBTgq>la=UhK+nLQS-?mgIWbLGT3q`l$jmIWOmKyK@{OgLSx>qY z{MDs>814F=XzZ{1K94Wx>tY_+>ay#_E**bnXz(u3m^%B9DQeR)5&(Hr;tYzN4cYo&yTzi}?I$`^ajMW#_;;)u3n7_P++v$I!o!(2E zR6{f6*=YuRukBB*Yi^gBknd+BOCa}+CXNMDY#M&?aWA}=)&BcL^NJ~|9S4%-3V+C0YMr>A zUwr7I@{vT7{6~M88!TJABTkj^&R;mcHDP{RiQk0tGcT}y@YGuPuPxbW)%IH(*_@iL z_^UBA?77+UtN%OKudlb~T&SKiAz|BJ8@3hyruh87uI_RnU&-R5spP@sSIe3?w6Zw9 z)+=|_2_H0XVKM!7Es{a2bKaw)m;L<|dN)31($H48R39_v$40?93a6XDrj{|-DO=hv z$PrMkKQ8!1sMj@g{=wIh0e*}2|DCbomoLllj%UrE!Z$M<=vHBVW%B5h`RrwV4jxZd zv$CGJr_i~#{(A@ihW8wulV+~Bkv}|3sEOf~@TPw=Pn5X-=4e`x!n;St@hHo$tL<|a z+;=IMv1FHCon~8t(Luk6xz{8=on5Bt(VRLtp6Q2-zVpJSM45E+b@9?W ztulV;2fcpp7OUXfe38S;J@a;Fw#DJI(cAa$P2Q4RzHe{sYcRaBwyZcs!XUV+1E4cUlIm9+$N@MMoc^4Sle)G#oMZSI5{5!?( z!q;obtBfY)Fr2(mDfKi@iTy>pTP=jpw9LCZgS%+*!KjX92`hT5J!C%o zIC)v#@MqfZk1r=5SJAt1x#OkR#wkk-EJceC)LVHRdVceSzsj%PWAokSO>7Bt7k<{X z{*x}l)ZmHdSDLW!8Q940b6j@cWCfqSy26Fb4KH_Sv7Kqo(0Ru2RZr%?hd=2-Khu8C zY;f4lt-Ctems#_~BZG!Kn^t*y>1T`XXUNpGJ$K}{nt62QB!;F(6aC-b=(KY9pVDGc zmlJ66iAA=%#JXJJ(xYY{hJ&0P%)4#{G%Q?RzT>6&+0*{*0S(*Y1;kZmXa#XNmTjGS zHiJb{?(eD4{TF|{RyN_iurk53gHu7IaI#mor9=IH^LM{`kKKQl?6~A|(&GRPgGmNY zjNj^Ju-HDB!LZGwqTyHoci6>NPl^5lm8NY;n`bi(^!(`bAE{VL@huj5E#U3%u6%!PHd9*^ATdVi> zMv)z7!}njTkoInR>*1*WJ#EvC@@-SIQp7Is|2rrD;Jf3uMvv=lA;N)?J^GWFd_DO1 zW1iZy@7-V>&VHlbI%?uCqdE=;<3~>y3jX`mdrUCL>e#gxe%@hrLBq5_ca)Hv-6}^gcpVFE^3oaIQ^e7gJ1F08T>TFa1f@h=n0*Yyi_JoI*8S>MuE&)M`Nj9cFTKp?atM!ZW2(-TytByg zSp7+<Rxp8OP%-37h^R8~Yx#!02zE{U?CT-Wd|F`?b z+S6yJpZ~CH&(Yjj$Aj#r{(r|4uJ?vHx86Kkln9 z_Fp=;bUN3++_?2f@Z zH<~wF>z?Z49^-YD|9{&b+4JmfkHX4zj^`~tZJjeK>*29~opS>MU%D4*HEs?SJrdIK z=WD;xl(Smmdv;8ic3!Kvt47;7?d2IE#_lV3Ce2(r(=RyRb%KcKd4Y_8spmEHgzUe? zyPr7yT~DLr2Jg;R)_Xq>o!{NU18%wT89aHGlCElLSr+HmaAeDuOvxkFn;+|HCEv3D zKlR0)BdLiVUVffyADOtihc8{GqQ0~7S0IOHU2aZH4bw%o=TlmK?6`5OMtq5`HS>w4 zCTFL^hm@6`2A1s=lvVBT;o#@y<>Z^R^KAHksn#QhFQ2}B{Q7x&g#fE-UsEQT7#z5N z{`&FTr!PAzZTR+|G5_(&quM|CY#A6BR7+eVN>UO_QmvAUQWHy38H@}J&2JEUk=9wG9lc3=EERD=kOSkei>9nO2Eg!`5rFq!}0(+(0%I=ckpFCl;kLc;+Ui zr}`$QXC`MWnCY48S?F3S7#SFv=o*;n8X74C8k#9&l#~=$>Fbx5m+NJMROf*W`v z-)Vcxz`(#D0WvWpqck_k%E~1_ximL5uf)nKATd3)n89%Q|K0j%YQT0{S!JYVre~Be zm>L=#xDWv9SBN8-1632AnNpGgQX*5se20O7K@v%cZ)R?4No7GQ1K3si1$pWAo5K7U z7#NVv@eRq$O=U1Nv9vU_Ff}(f4cH;t#=yY9k7Q18W>qSKfs@meMRso(7#JLoq(Xx{ z8PYOyQmyp$^-FRK^wSc{GL!T3iuIF{Qp^&QOcG5DEz?X*O-z%_lao_Sl8ucGl1&p0 WEYo7eFN20E7(8A5T-G@yGywpA6e%A7 diff --git a/static/img/icons/browserconfig.xml b/static/img/icons/browserconfig.xml new file mode 100644 index 00000000..7f82fb31 --- /dev/null +++ b/static/img/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #455a64 + + + diff --git a/static/img/icons/favicon-16x16.png b/static/img/icons/favicon-16x16.png index 8de7c05e09c2fe972e855eb61fe532a5f4e3fe88..b02a47ffca4473521e7cfe01021301839ee60eab 100644 GIT binary patch delta 762 zcmbQnewuB9$wWt;`r83MA+G=b|8H3TKWEARh-v?9TK_XJ{4ZGgKWys%yv6?wYX5um z{I6Q`f9dgm`nCV(9{l&`@4tWl{#|+UujR)7wDbSfCm!4S{Qt~L?KJr+5&;R_BpMU)LQF-;h+SJp_AOD~K;D6r9&rcrLKmPOQ z&x8B-U%q%zc@xlQ_sDcdGmYWqOWsr|D1pI{oFf0@87%c*7c|E z@~^n9_Y*eVtT_FtcjG&Q+JC=({d)M|!JgAk^=kfq`uwG2+0W@aK1|#GzF^^(|Ns9N z@Dy}2FfeeI1o;IsIP8A*hjGQzT|pLx!3+!xj7jz0?k)@+tg;>;B?TUl#S9D#sUXa_ z>YDg^1_lQ95>H=O_D5_yj3(mQU){_Y7#MbYx;TbNT#h||T-y$a*qit^9rBxkTUEO;rPxFXxZa6_u~y4N?v%%0>3^&2%-9q|$Jx%5Wc zcSHS+?Kaa+KKs;~wDOFNH}fvv$fZ%M&1coE_I)eTz?Uq$|Mu&ze-jK!6ddw|JQ(G7 zdayq3G~l(EuejAHp2J&k&4QXOo9}VlZg~Gq^XFSd8?J|)?&-dAWjl*riamb+@_Wi1 z*NvHfPT9^||NY;ZQ-81iXLued*7owR| zDNig)WhgH%*UQYyE>2D?NY%?PN}v7Cra+2;fg!vqB%&lJv0R~`C_gPTCsm=OvLIC< zv!EoIfuUl~<4-&sg<%>Rr~FT!@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn> puADe>=7`J@_R|d>3%v9gUWp5qd~!0K%D}+D;OXk;vd$@?2>|W9aLNDx literal 918 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 literal 1150 zcmZQzU}Ruq5D);-3Je)63=Con3=A3!3=9Gc3=9ek5OD?&U}0d0Q-@#>7a9Mr)MWTy zsmcDoQq${yrRK{2m6}igS8D!&Vh|f729g7*fop~81L>9gU#U6yf2HR8|CO5m|5u=4 zkQhV`qz0rGqz8sU{7rCu)ms1mx9k4@Kgke+L2Qs1$V`YiAhjSpApLAmdm(nV>Hhz} z+T#EJ{dWKVA9jFX5E~>0l0%pQatBDS_y0=GcVPE|ecKL1G{|kQ$I$h#Q`O;|IhBg%!xZAU8kT0M`m{EpfI2${6KL)N&JD*04Obxn|?rP z5R?`{X%b=vD1Je41PUh*2C+e6kTCoIzfu#V7NiHH7luK6kUL1qKd_7l&4-}83Cg3O fFa_mVg8BCWI|IW3W(I}^Mwm&2X^>iw9*|xDy5pRU diff --git a/static/img/icons/msapplication-icon-144x144.png b/static/img/icons/msapplication-icon-144x144.png deleted file mode 100644 index a7db463fe7640580ee18526375c15995b5338abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3515 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H9Lx+13>Rhybuln7u%tWsIx;Y9?C1WI$jZRL zz*rpQ?!>U}oXkrG1_p&>k04(LhAK4%hK3dfhF=T}3=J1UYX9pr{nzXK zZ#enC$(;XYOa5D|{%^JMzxCGtHaq^??D}uB^S@@*f9;0<`aS=RXZ|-|{@-fTf7{*v z?GOHUIQ-w?=zsn0|EBZ)TW$Dnf9Su%k^ed^|Ba^ow_N+*ZqI++w*Mw`|66bVuU-FN ztLneSs{i);|JxtrMadkNmek{NL{If7he`eNX%k zIrTs0?Ej>5|DBKi4?Xq2;PU@TcmJ<{_W$_1|2IDWfAH=9)9?R1kN?lT^nd=N|EJ&o zfA!=4?|=XQ|Nn1y7#J7|OM?7@85p=EwVe~{ z=59ZG_x0C*N>1s0>rXv+|MM@4kXgp;V-G(wiQAQL{>EvTxAy+8b@`0K9#bxTk&Sx( zCsIZ_dCS}IP4AX!w%q1B@Lg-d3%`9oL`&7@d}OxW%IY6~izl=23HK|FZDlVHN+rE9 zvagtR{L#iR7S1BbS!i(^Q| zt*di>I{Rcx96vu>Ojj%ORtN`gr{glYT3T-s1$oUQK8-uc&N_s(r* z_RL+m2XChCTRr=CQ|o1qWreyi58geqx_|WM0-rOR#Vd8Wtv@kt#hH|_ENj->pM<-@j3F~&!^Sb zfAKyljJUnwUiRYkb`vG$_}2ZKy>+qV_Ot)$W`Ait@}s`g;el9eLBwq#i49Tu3y<(v zsYS0XIhuGjYjx+ub1psGo0^Wz_-B%c~`Ht*LUO}hoMc<^F+LwKI zdn@SM67Xf8MBwIW5}*5Sit7q-zO_$ypQ0f*t8A0~hIkQyNyp?&Wcae#lb0Uq6tEIe zH`L+x^?t<1`Ay2I!_l(PV z)BWSdR~J3r&ndzGv?QtUDsdwCOOTu!`T`Cl_DIyN}^2%|A)Xh?MM+|$2z>{WlTt}R8d z<~6TnY~18nEe7}IkXf<8=U!W!<}m09xZ!6vZ&z2;LW{>9TSZH2T&xc>D2Pa%+ibTd zFy_7jlY8@(fcTo`-z#??a{lPDsbR9srzcN47E5lQVk4SzCn?96$3Yrfi@JxizVR=ZpFI*sZ0S-T$KuI$QoZj|R1U;#=Ck>`*X3eebi$t>v$vN%OYF$I-_w5k#;58p zE9 z7lrwgBd-=nRPOZocth&Pg{6A&uRnfp4}NmJk@s!H=dl%a-QAmmv5`r&D-+4 zcCYREc}2oguQ?oE{9WkzM@J2Tt_81h^cv&#)LgYUXiaO%T=4(uY4I4L)aK^E1!)>i zpB4KHxt3^2%ShF&J$B>u!-WTp_@*Xws(g-|uNa=NRO5MHw-!d}#<#;wx-pxJgK)qg*)vU{vn#?Jm)jt#_scHnAKEBaE z%kQ_zH$j!4Ff}IMUAGP7Ht%JqShIuc%k>jC(oOqo<)j(+hOzQq7taxFeWu6aw2Ng{ zXlTBh{l||6QoT)uOEee{RXvPx@qGJ1QDuLX?3Ww2`TyAX$n0gUE&Hn#r<852X__tf zU}JVG!-T94-2!r3f1OrPn7HYK)Pv2Hn>CVO9MR#IYKi09E6(<%?uF`yj!QNR0;`ix zvDoXJ3jVZ^qsmmL$9=6_9jj|#9ao%ECui!b26ivq1JyoXxBTB4u;BXN1ACU~cpPQ6 zoDr1PSFylEp(ScQFUQls)$H@OGC59ZV=ppUyy(N~@Jg$?8DXVgIC>O(MZT6iP}TA} z&TQ!#_{^aq^@01sYwUXuRbF{@kG-N(MABjNvnj0qnt%8lNap{2gyE|#OU*RSH%Yo0 z4`vuY6f)qlto+7J6kdK zFF)kuUVL&*Fk^09m(UpX&R&rH%M-h@xy$x^`p-VgaJr!Ql_RCqkJ#KEE#rHn7XE0O z{1M#?9npt`wx3YXlXkh|HgU&Vlfri1BeKT@$`f2~?qFs#b9S$q^2O$h){3MwKHE-f zF|~IO=IjXPX4zX~`P}E)Yt569F3-4a9>o<-`YtqM$Mq*qRD}wbN2R>v_sCeqT6t3A z$kNvW6D~aY9_w`Z%<`JQrn*nFk4=8`Z{EB&o-wx+3OlDhSvpT>`W)}LUq+Rj_l_(* zFuB~bVMn&e8&_fTMS8O~gcl}t?CNs9m#X?`UGc>7hrN5W8=u6^Qh6VxSt*|1xqFt+ z#PZ792d>|iJsO{Hp2Nss{*jeI*@x@%97 z{gi!NN^`Fj_p06ReKMtImP3)^iWOo@Yi}B^f7+&LZFbNlAaR@L%p+6QMd#kQR65zm zLu<*7`Nx9omp@sccv}7+d-xBPl|lZi#26SDR7+eVN>UO_QmvAUQWHy38H@}J&2JEUk=9wG9lc3=EERD=kOSkei>9nO2Eg!`5rFq!}0(+(0%I=ckpFCl;kL zc;+Uir}`$QXC`MWnCY48S?F3S7#SFv=o*;n8X74C8k#9&l#~=$>Fbx5m+NJMROf*W`v-)Vcxz`(#D0WvWpqck_k%E~1_ximL5uf)nKATd3)n89%Q|K0j%YQT0{S!JYV zre~Be7+M>Fev~=9T2+r|YLBmSraA=N0QCB1S(cDa9-?$t2Ol&@#=`)WkH&JUKbV mB-z;5AlWq0z%orQGdW+cATPb}_|y4A0#j?Ot~c6VX; z4}uH!E}zW6z`$PO>Fdh=h>eHQM6$;>+mL}l>YS&GV@SoVw{t5?Vy@18ZvXx2s!1V} zytjC%Yv=vk5~V7mSOa>igq!%UwTGW={{SE@NVa6 zp;I?i&6>KtZE=jH#FCSyKB+qM=2pEnS+Z8df9FiU#q;{BYW`faJ>!?&Eph7m<`ZJ# zQybp!WojC3SatE(+kXPrzy8QLH7#P2>vF~AkuSH*s91jb=z3WAJ<*u}+d z9vb<>ar$i4i4wbNZcpK2lihes>)X!1e=fX!9-7|W@$|M@=&~sdZ}=>qZ?ckm`L*zK z!h}gRw-jN#RaV2PrH5<&B-p`=yR$jdU9+_!%MS! z@4sz&`9b+n!oIgV7wr9MmSD85)*~)F@!?57@z0-gz3nnKU3~Sm`1?QhBi28+r7Cd+ zIcUpGHJ`gfvAwm;Ih=iG{)tJ-Z*I)Uwd60~apP5v;K!QVlgk-( zYa{fGC2w4Oz1Z;nHitu88LlY%?O6H)ki7txXBbee{3ZrIrLQ9!|mD_9+4#DlAW>+P2wQ z++@$KZQ5pMah3m|$GcZbEN50c+Zp`#&chr*%RQeZq(2n~?{+@7Zu6$q*N=b6xxe}n z)Ach=s+(1>pY!W*O<8#@NX=#Ie%^0eIqfVs=gH_qU5U(m|Fv-MX4fsL|MSu(7c!A&E^vij3W92WC}HQr(<*Zp$0aXHFiR$Ey?KrT0{Z6nxnHrnFJjO=+sw zyQ<%EA5X_zGfeNl_HM$nV_Ngx7JZ(YGv$6xb1AoKwzyMp=(?<>Zp)?PELrqrg-Uj8 zD(*j~Rd@esTJvUCmg2zWb2v`Co8Wsj^^L5=sWpppE*!kYx}k1kisLow!)J5j1hi~oM@iaL3ocB9~BM?E}*WBwm(zA61G-Pb{T`>CzXj&VG$m-)8}FkOr1 zot-}+Bx+M?Vd8_2hlSU3$Nexc=G*S+zvj-F>EG{Y$DM538!33<)$u2DZSCr&bv{_P zlXt_@XDgpSUUK?jS;ddkgBy8tqIz6h?`{1o_wlpO?U{v)YwLXORo*&nzx4O@;H)O! z_$fINTvoc5!~A%Y3M_U++EAb$SYc7eOc+$iiWVfso8hy;=I0}-JHSp=kaxw z%gc5&&(W;f^I`9Om1h$#IWAXRt+VEIO8GQH#@NpbV#GQ(s>{xI=eV&$=v|z${>|;@ zT#h{Y@MLz=+v-c7dwr^s*krYhpGKs+IE3F*f9odOen~PnG;+aHv6H8?jS?>&Jw4C9 zF}eM~++#wWM?ExTk`vY1eq?fkB2QFR#y5RldY$o~AKQ|qPt~!F`?32u%Uao$(*pyW z&Pyl6?V8-12}rngmIjj4EK)@iA&oh+_@kRzwgZ^Q41SE)T`BI4(r+vFZK z&n;Q>{4(WvrQHd)uXjK4WZkUz@y#_|uf08uic-?6E6ilAgX)+;iS_Jdxw?t3zTS^w zy}x&%!=la0EbOadKU{ftWqtmNC;OM|>Y6_ZRMPA|azcG&TT0D$wv*et0?$i6U3r&N zaj8@1L=S~C@ymq#m)vQ+DSIg(JvDsQqo3Ebx*nZmdTDdrLBe_N)Y!82ki6hj#`1^~jd^btUluxFRk!)q)}W@72l#e7 ztKALq{J-JmvArvE_O9HdqQ=?n{Pj+vnaaG%P_Bjgd+nrV=iZt9=KbVXhu-krOfb8! zZr4kHjvp`Yi%eJlbabBm!TM@9jrDV9^13t&E>qvkY^LehlVcus&u~|vYG!A;2ABW5 z2{K=uY+BcSetfun!pF_#`EjL{#@uN>-gj4syx=8kN))6vgv1J6#Jg)-X|B*UoBLS)eBo&5pu6$ zVGE!5mqs79Z7Zc>v%HRcUh>*RUS6zXQPT{T&R_eT5|w`cF+3MzYiLA8Q9$9`vOMOTh*>||4Z74Gd{g_8J$uPHmfX6E zozWY1+gE>=>1RG}ee>V5IveLs_K?W5w8yiuBW;#zF8y>!$WHQF#S7t+^1B`~T8E?+ zJlU0~`RBCbl;kzqIyRg!rWd~p?`sshqc6TPjZIidkYWDXpK^=Y&g)FNW9+_Zk<_y( z2YE|B)Ian7_xsJAvMB$(8|Np_t^HEL_VOc7(VETu%kSNoU$*n!iiGP852V>2guk7+ zda|GQmflxp@BPF-i{H^#pL2iShLx|iuhh=}8b0~zUE%+w%bu*_+;z-4-RNQYO$C8I zm9LRnM^xr;ar`Tv{eUt3nah@hsztpaGkv%pbDelMq4-v;PVi38m6{v#wP)9?%zN~n zWy7T~k9EbrSROH5FW{JYu!m=Men9z(+p#*Et)I;KxKBFVVfxjN9jnf6*Hc_Q`(Fvu zEd2>LwtrmY^=Gz%T>s<3-Ns>YOI0t1X?e`NaHQh?Ty=%r&abL!@2n|e-mJLsuEp#l zDsv>}{V|``G9F1s^FeE}D@`AW5qar0m!{uut9d9Tp&-PUzGTg-O)j%n8b~Zza_Ern^SZiu4XbqiI4n(Q z)|;rREdFO5_qO`7f1BF$x%&E9WgF+rm?*wv%9pQS1^d&}wiQ11>U1n*zh807B3tgn zy9w9y%)M-%++uxVa`cq2I?MW!!$#6qW~$`Y9hColaOzC^b4_Yey+#-A`{%~S-b%e1 zu5#<$cX_pX-|4ee%i6c}*($hMFTc>cihcT;_&L8Po?m|W!)m@C@$f}Hf3=zW{W?2mME%}J^i0((wSWi0!>@J|7)dx??3+d%lEHKZBOnfTNovFJ3=Nf z=|^$Jc}ewM7mvN2|4k+S!XnAm*}SIWYod+%pBATIFrP7F{z_f_rQ3|QSAIYA&_Hi` z_p4X0rku`L<+bH$`|?Tqmt8#emi?irgt9_?$Lo;1J!$ur-mdKpijJICd~wd{4;KW~ zCUM0x)u9z>CJhBsv_tjcCOv+zR_UZ558KBI8_n3&x0WrQ zb&-LsIqTo~t*-xOG1oi-BtX$E>Uap-U~S%GBZP#6i7-0%uksU z+a1)=o;|~BxAUv72XsW)tJ2P1`B;BSYSx5}n`ONtgZhdMwwHZLeet3xrSrII?cTjt z%uVK)-n5i-Qn~eQvP$zicN1gp_~2uqf1OWCn@_!GcRBoC#l7^{1OEQcZf|-c-031A zA+ccDGPRf4Y1h^C6&hw4t-F-9Rwvvrr!4nk<2KL1Kr-`ch{Y+82Es@%IX zO+Dy?xcTwNuVqUsO0n?91{X@h}y~`gr+`H(LF-2It<+keMyk9k{A! zqVLP=u3U`~Iy*hxu5Rl+s&Q4RaEjUE2&1Bsn29mMT&)GW)$Lb=Zp~FL)QM7=_J@y0 zQRw+9@tL!DezAS@-(jiP)_i>9@{?yg%`?8%qQ;pek{jQ(IdzJ;O?5?;Y*K}~RamUIn8&5if7{Btg61!B- znfqXOh(-CNz@@#tRfnn;&l8vs;!>tDi(|e{%fuV;GZI5hr!1+}s;w(@eb9T)rKqDu zp#S*G*Kbp!YHbxbG+i1czP5Z}ll9CmoFc?D@sLFC-{(~`=6_P0-P)?oRDY(h@A$@+ z!-;qF#Gif2TDs&3n=Iqm1q(&?g=y4HSjcd%Y388_2IrXz7b^a`n`PO-BUR_S-1((e z__I$kqM8PNwd=$(mtQtqb3J=Uh+fv~X6>TcFKjg*6?&RD?=0Tb>$qH-!~RpuE!(W+ zkuOYRsuVL?kI2nWv6y-5+{86PU2Z>rJwE?X%IC4cSD8&k_jKg$d{|mDyHIYf+}2h< z#f+=pe^&6{nDfRpx3=k!l?Q`Qm2Ld~I>CDnr}(cwr&&Ck%Xr1AyKB`J*vY?t`Mcd> zQBhzt_gU%v0V$hDS78_(I*G_Ex4$zQc@!ND*K?#kscZZ!v=Tn{dhx@3FC zPeO3QW>=oIbv|Wv?-XBNKK6a9XkWvkix$!KnIh zSO0xBU)uRu&X6U!NF~Z=4|9$3O{aS{T0f3`I`rcBm#W_Mf5+GUG)q49DR1^ILvQ6M z#$!u(&(>^IphZDc%zOme(XqJDo+OV?%VRQ=nJH(|~=e<5gns z*~Kl}VzBh`ghq~ZzeV=S3hCV+u7`hEdFpJuRfxrC;$(5|>WN6ESKl_>UEr)~^}Ut(==KXCPrv$~ znp&5CLGbmrO|@^*(>YJvRI2F>eG{ztW$NJzwx(|9U5{NbU-JCzSeO-T6IsxW1Vxt6Rw|M{WOh9>-n;M1q}bb?Yc8(ww2s0wG}$rigOwt_ZKx@U1XMX z&g5M~-*u7Q>x+yT*Ut|>|M!m#qh++qn`P=xPB%O5o0jwNAcxK0bq{t&+L_lWnfQMA zzCC9C^lE?CxSXw8t$7SrA}cHZGe5HVUvY!rT@{j=|gROG}%$HcExd`;fE zy(VK4q9)r&TE+;ZFU((GROwvNY-Yt0|3 zIBcKp+i+;+z7L1mKRjJsT->)Ryk*w8x9R`O)Vx{ovhcrfxg-dTzR}e8YNE_uHHHe+1K`-Jj)6 zau3sqXSyuTP~fdR<@LkqZw1aT@Rppu;qCoZQ@>v}xtUS>`S+s-F8BR!or$wAUoBPj z#>8f~d9f&a#C?wY^EjiQi5+`YzimdE*OkK0sgqbmXX^fbTEG30*@Agj9ym$O2yyr= zFYw+Zq{!*(vfKBBzN91+8H)J6G5PCk{%0HaJe$J8-x0QoH_C!Obf16l;zUWT#vTxnONx~rgKHp|@>$S8fa4!3mztJi}m*Ah;7{QK)&pnhV{9EWpCA0 zSK7bSx7GW9l;)cb)d7l%>MGCp>wcL}ni{?&raoz-#NFlo z>Qh(kKXFs$g+}7({eHn^bI!6YI>>Q(uI{6z^zSNPg^rh(?dSTXo=pg<#|_c zxHoaf+Feq6<8+(e1wB5#d-cx+vANSsuH(#n-HQzd9eX!Vs&8{w0wK4HYDyr+Bt-RY= zzcR@{YU9l*=T7Waxly>JN!C4R_C7sBp_kzC8jbClUYBdmiCqlKe7G(|`}gAOu2K1m zE^RV8b?TGI-mr$8`{75w)vn|>($c;2G)GYLX^iJ;{U49`pK{0M?VI%K>ua%t%JF`= z+oHTY{macCepou&&R$IXPepm@sk>qh$)fw~U$ZCGuDZT_Yudf1Y0jlHe_g1XGM(?x zvUtG?hM~EN%OXmo$~fyhLz7V_5V-Fobzi@%Hg0%b<(X(j#X7v zMzKrx2u|v6$k5g-!YI_qhMDnQWGp>Q(+V`O`T$d3*2gzAOgY8Moch znap?P`_Gz+JHhsa6E`0}vaNo#pC-@Om=dX?SyOi#>B^m$)Sz&2E-zc9q3rw@JriL= zP-+|J-MW6=`@sA!h8e7_`YS$m{|(*q&$H5vZ;HXo&Z)D17OCxCyD_CS@Z~J_r<-=9 zgj+4%ym88`2iH^!j&oVQG<#KH8Ra|Z8*I>Ve8&6V>HT;yv%{H3H^ncGIb@cx8(_qRq> zzMWk3^zE_9fq_l=7H2N`@LW|_RzH2KtUYIyUh?|`0=+YJt}kfb%AN4{(Z|{)3l}QJ z2+!%Cmv1L`^U3#bAA_FiNQy7o)w8ZqaoRF#&lxUQ|I`%YW>xQG(f#j>HXppHR5Z!N`gx;i ze1%Wl<;Ty{8x6A3xmBYTC(dw>GWOq;Vipsp{_>@rugav~x(<_Egx)L9pIy2A?4gT! z#n=3zv<-z;ZYj8a`+GoJ66>5Bo~`n@ zrlspSr>gi#vGLmZ(=SxrS~G>wF7(x!E&WG6KlvjuXHV<5o3fV-Hn%OemwvD<=GRWQ zy-QXqITfe2ybKkbr6v4-y~%L{X_d6YM<$00ak!Z@2{x*)SbR8n!R6!ycXK`d++SUm z610nBB8Ri>)$_6|S(;OiwAI`x(eaj_cG`!n?8`5s*9pr%JM>g}b}IJWoDfiEpv2)~ zawss+puP55NrmY1KzIxv*AUzwGA=eGF?v8!jhr%R&ZWAFIHx2x@bsV^=vrNJ%olBI-QwsJ1DG3Tse7H=D+x|t-W)&fC`xF&?=}UJ6P|2wmKJ z`>*1<*B>uV$#?8^VJ?gE*>m~nqw9?vyN}P?ZhCd+3YHSRvUZ)-TB%=6wBvc*cNQ6V zOwOKhDyP$Hxnl0pic@Dxq`uZ%dHi_$yTmf9XqUtm=9I?nD2K<1Qm5`b#YA)F!^|ht9%85;uvAHdNd2+=1heA!)?Bw5n zZMpgy}J_l}wqiD#@PsvQH#I3=0ZsKbO28Qsekcg6?#Bzm#qWrYX zoK%I9%7Rpd%z~0+28N0`k3aEn6ozSNobo??#`9?q1G6%>UNX0^vat7L5oTcpmj;u= xDa^{7LljQmxN_pinIkes*iScjEb!7}cqJ}a^2y0`Dgy%pgQu&X%Q~loCIEf-@VNj0 literal 0 HcmV?d00001 diff --git a/static/img/icons/mstile-150x150.png b/static/img/icons/mstile-150x150.png index 8515f250ea71c08ab0d7a74abbd58ce4cf5c6760..7130a1e36b733c50556c7563149b9c3a22a58897 100644 GIT binary patch literal 7022 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 Pfq}u()z4*}Q$iB}jgbf7 literal 3668 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 diff --git a/static/img/icons/mstile-310x150.png b/static/img/icons/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0dc0a1fcef6451f75332f1256535c282e43f2c GIT binary patch literal 7644 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 literal 0 HcmV?d00001 diff --git a/static/img/icons/mstile-70x70.png b/static/img/icons/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..556d2cd1d4be6f75c133316f599b5bea99794b8b GIT binary patch literal 5005 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 + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + + diff --git a/static/manifest.json b/static/manifest.json index 9d5b3577..4977df5b 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -16,5 +16,5 @@ "start_url": "{{ .BaseURL }}/", "display": "standalone", "background_color": "#ffffff", - "theme_color": "#2979ff" + "theme_color": "#455a64" } diff --git a/static/share/404.html b/static/share/404.html index 53359493..563420bb 100644 --- a/static/share/404.html +++ b/static/share/404.html @@ -9,13 +9,13 @@ - + - - - + + + - - -

404 Not Found

- - diff --git a/static/share/index.html b/static/share/index.html deleted file mode 100644 index 4af67378..00000000 --- a/static/share/index.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - {{ .File.Name }} - - - - - - - - - - - - - - - - -
-
Download {{ if .File.IsDir }}Folder{{ else }}File{{ end }}
-
- {{ if .File.IsDir -}} - - - - - {{ else -}} - - - - - {{ end -}} -

{{ .File.Name }}

-
-
- - diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 00000000..4a9f1e07 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,4 @@ +module.exports = { + runtimeCompiler: true, + baseUrl: '[{[ .StaticURL ]}]' +} \ No newline at end of file From 95fc3dfdfbe21b1d55538add66bf0d5f38197320 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 5 Jan 2019 16:24:09 +0000 Subject: [PATCH 054/134] feat: update i18n License: MIT Signed-off-by: Henrique Dias --- src/i18n/ar.json | 26 ++++++++++++---------- src/i18n/de.json | 26 ++++++++++++---------- src/i18n/es.json | 54 +++++++++++++++++++++++---------------------- src/i18n/fr.json | 26 ++++++++++++---------- src/i18n/it.json | 26 ++++++++++++---------- src/i18n/ja.json | 26 ++++++++++++---------- src/i18n/ko.json | 26 ++++++++++++---------- src/i18n/pl.json | 26 ++++++++++++---------- src/i18n/pt-br.json | 26 ++++++++++++---------- src/i18n/pt.json | 26 ++++++++++++---------- src/i18n/ru.json | 26 ++++++++++++---------- src/i18n/zh-cn.json | 26 ++++++++++++---------- src/i18n/zh-tw.json | 26 ++++++++++++---------- 13 files changed, 196 insertions(+), 170 deletions(-) diff --git a/src/i18n/ar.json b/src/i18n/ar.json index 47e23fb2..407497fe 100644 --- a/src/i18n/ar.json +++ b/src/i18n/ar.json @@ -1,6 +1,7 @@ { "permanent": "دائم", "buttons": { + "shell": "Toggle shell", "cancel": "إلغاء", "close": "إغلاق", "copy": "نسخ", @@ -37,7 +38,7 @@ "linkCopied": "تم نسخ الملف" }, "errors": { - "forbidden": "أنت غير مرحب بك هنا!.", + "forbidden": "You don't have permissions to access this.", "internal": "لقد حدث خطأ ما.", "notFound": "لا يمكن الوصول لهذا المحتوى." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "تم تعديل المستخدم", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "مساعدة", + "login": "Login", + "signup": "Signup", "logout": "تسجيل خروج", "myFiles": "ملفاتي", "newFile": "ملف جديد", @@ -194,18 +198,12 @@ "search": { "images": "الصور", "music": "الموسيقى", - "notSupportedCommand": "هذا الأمر غير متاح.", "pdf": "PDF", - "pressToExecute": "إغضط زر Enter للتنفيذ.", - "pressToSearch": "إضغط زر Enter للبحث.", - "search": "البحث...", - "searchOrCommand": "إبحث او قم بتنفيذ أمر...", - "searchOrSupportedCommand": "إبحث او قم باضافة بادئة '$' واستخدم واحد من الاوامر الخاصة بك:", - "typeCommand": "أكتب واضغط Enter للتنفيذ.", - "typeSearch": "أكتب واضغط Enter للبحث.", "types": "الأنواع", "video": "فيديوهات", - "writeToSearch": "أكتب هنا للبحث" + "search": "البحث...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "دقائق", "hours": "ساعات", "days": "أيام" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/de.json b/src/i18n/de.json index bcd53f45..d31e567c 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Abbrechen", "close": "Schließen", "copy": "Kopieren", @@ -37,7 +38,7 @@ "linkCopied": "Verweis wurde kopiert !" }, "errors": { - "forbidden": "Sie verfügen nicht über die nötigen Rechte!", + "forbidden": "You don't have permissions to access this.", "internal": "Etwas ist schief gelaufen.", "notFound": "Dieser Ort kann nicht angezeigt werden." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Benutzer aktualisiert!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Hilfe", + "login": "Login", + "signup": "Signup", "logout": "Logout", "myFiles": "Meine Dateien", "newFile": "Neue Datei", @@ -194,18 +198,12 @@ "search": { "images": "Bilder", "music": "Musik", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Drücken Sie Enter zum Ausführen.", - "pressToSearch": "Drücken Sie Enter zum Suchen.", - "search": "Suche...", - "searchOrCommand": "Suche oder führe Befehl aus...", - "searchOrSupportedCommand": "Suche oder nutze eines Ihrer verfügbaren Befehle:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Typen", "video": "Video", - "writeToSearch": "Hier schreiben zum Suchen" + "search": "Suche...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuten", "hours": "Stunden", "days": "Tage" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/es.json b/src/i18n/es.json index 85baee15..66d63414 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Cerrar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "¡Link copiado!" }, "errors": { - "forbidden": "No eres bienvenido aquí.", + "forbidden": "You don't have permissions to access this.", "internal": "La verdad es que algo ha ido mal.", "notFound": "No se puede acceder a este lugar." }, @@ -75,11 +76,11 @@ }, "login": { "password": "Contraseña", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "Confirmación de contraseña", "submit": "Iniciar sesión", - "createAnAccount": "Create an account", + "createAnAccount": "Crear una cuenta", "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", + "passwordsDontMatch": "Las contraseñas no coinciden", "usernameTaken": "Username already taken", "signup": "Signup", "username": "Usuario", @@ -120,9 +121,9 @@ "settings": { "instanceName": "Instance name", "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", + "documentation": "documentación", "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", + "disableExternalLinks": "Deshabilitar enlaces externos (excepto documentación)", "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", "admin": "Admin", "administrator": "Administrador", @@ -132,7 +133,7 @@ "allowPublish": "Publicar nuevos posts y páginas", "avoidChanges": "(dejar en blanco para evitar cambios)", "changePassword": "Cambiar contraseña", - "commandRunner": "Command runner", + "commandRunner": "Executor de comandos", "commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.", "commandsUpdated": "¡Comandos actualizados!", "customStylesheet": "Modificar hoja de estilos", @@ -163,25 +164,28 @@ "username": "Usuario", "users": "Usuarios", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", + "allowSignup": "Permitir registro de usuarios", "insertRegex": "Insert regex expression", - "insertPath": "Insert the path", + "insertPath": "Introduce la ruta", "userUpdated": "¡Usuario actualizado!", - "generalSettings": "General settings", - "userDefaults": "User default settings", + "userDefaults": "Configuración de usuario por defecto", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "edit": "Edit files", - "execute": "Execute commands", + "create": "Crear ficheros y directorios", + "delete": "Eliminar ficheros y directorios", + "download": "Descargar", + "modify": "Edit files", + "execute": "Executar comandos", "rename": "Rename or move files and directories", - "share": "Share files" + "share": "Compartir ficheros" } }, "sidebar": { "help": "Ayuda", + "login": "Login", + "signup": "Signup", "logout": "Cerrar sesión", "myFiles": "Mis archivos", "newFile": "Nuevo archivo", @@ -194,18 +198,12 @@ "search": { "images": "Images", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Presiona enter para ejecutar.", - "pressToSearch": "Presiona enter para buscar.", - "search": "Buscar...", - "searchOrCommand": "Buscar o ejecutar un comando...", - "searchOrSupportedCommand": "Buscar o ejecutar uno de los comandos soportados:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeo", - "writeToSearch": "Escribe aquí para buscar" + "search": "Buscar...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Días" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 126b792a..f5d7d88f 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Annuler", "close": "Fermer", "copy": "Copier", @@ -37,7 +38,7 @@ "linkCopied": "Link copied!" }, "errors": { - "forbidden": "Vous n'êtes pas autorisé à être ici.", + "forbidden": "You don't have permissions to access this.", "internal": "Aïe ! Quelque chose s'est mal passé.", "notFound": "Impossible d'accéder à cet emplacement." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utilisateur mis à jour !", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Aide", + "login": "Login", + "signup": "Signup", "logout": "Se déconnecter", "myFiles": "Mes fichiers", "newFile": "Nouveau fichier", @@ -194,18 +198,12 @@ "search": { "images": "Images", "music": "Musique", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Appuyez sur Entrée pour exécuter", - "pressToSearch": "Appuyez sur Entrée pour lancer la recherche", - "search": "Recherche en cours...", - "searchOrCommand": "Rechercher ou exécuter une commande...", - "searchOrSupportedCommand": "Lancez une recherche ou exécutez une commande parmis les suivantes :", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Types", "video": "Video", - "writeToSearch": "Ecrivez ici pour lancer une recherche" + "search": "Recherche en cours...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutes", "hours": "Heures", "days": "Jours" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/it.json b/src/i18n/it.json index 9e066b73..9537ab87 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Annulla", "close": "Chiudi", "copy": "Copia", @@ -37,7 +38,7 @@ "linkCopied": "Link copiato!" }, "errors": { - "forbidden": "Spiecente, sembra che tu non abbia i permessi per accedere a questa pagina.", + "forbidden": "You don't have permissions to access this.", "internal": "Qualcosa è andato veramente male.", "notFound": "Questo percorso non può essere raggiunto." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utente aggiornato!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Aiuto", + "login": "Login", + "signup": "Signup", "logout": "Esci", "myFiles": "I miei file", "newFile": "Nuovo file", @@ -194,18 +198,12 @@ "search": { "images": "Immagini", "music": "Musica", - "notSupportedCommand": "Questo no nè un comando supportato.", "pdf": "PDF", - "pressToExecute": "Premi invio per eseguire.", - "pressToSearch": "Permi invio per cercare.", - "search": "Cerca...", - "searchOrCommand": "Cerca o esegui un comando...", - "searchOrSupportedCommand": "Cerca o anteponi '$' e usa uno dei comandi supportati:", - "typeCommand": "Scrivi e premi invio per eseguire.", - "typeSearch": "Scrivi e premi invio per cercare.", "types": "Tipi", "video": "Video", - "writeToSearch": "Scrivi qui per cercare" + "search": "Cerca...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuti", "hours": "Ore", "days": "Giorni" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ja.json b/src/i18n/ja.json index 421defe9..30e040ca 100644 --- a/src/i18n/ja.json +++ b/src/i18n/ja.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "キャンセル", "close": "閉じる", "copy": "コピー", @@ -37,7 +38,7 @@ "linkCopied": "リンクがコピーされました!" }, "errors": { - "forbidden": "アクセスが拒否されました。", + "forbidden": "You don't have permissions to access this.", "internal": "内部エラーが発生しました。", "notFound": "リソースが見つからなりませんでした。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "ユーザーは更新されました!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "ヘルプ", + "login": "Login", + "signup": "Signup", "logout": "ログアウト", "myFiles": "私のファイル", "newFile": "新しいファイルを作成", @@ -194,18 +198,12 @@ "search": { "images": "画像", "music": "音楽", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Enter を押して実行します。", - "pressToSearch": "Enter を押して検索します。", - "search": "検索...", - "searchOrCommand": "コマンドを検索または実行します。", - "searchOrSupportedCommand": "サポートしているコマンドを検索または実行します:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "種類", "video": "ビデオ", - "writeToSearch": "ここにキーワードを入力してください" + "search": "検索...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分", "hours": "時間", "days": "日" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ko.json b/src/i18n/ko.json index e18ceabc..466daa51 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -1,6 +1,7 @@ { "permanent": "영구적인", "buttons": { + "shell": "Toggle shell", "cancel": "취소", "close": "닫기", "copy": "복사", @@ -37,7 +38,7 @@ "linkCopied": "링크가 복사되었습니다!" }, "errors": { - "forbidden": "허가되지 않은 접속입니다!", + "forbidden": "You don't have permissions to access this.", "internal": "먼가 오류가 있네요?!", "notFound": "해당 경로를 찾을 수 없습니다." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "유저 정보 업데이트 완료!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "도움(Help)", + "login": "Login", + "signup": "Signup", "logout": "로그아웃", "myFiles": "내 파일들", "newFile": "새로운 파일", @@ -194,18 +198,12 @@ "search": { "images": "이미지", "music": "음악", - "notSupportedCommand": "지원 되지 않은 커맨드입니다.", "pdf": "PDF", - "pressToExecute": "엔터를 누르시면 실행합니다.", - "pressToSearch": "엔터를 누르시면 검색됩니다.", - "search": "검색...", - "searchOrCommand": "커맨드를 검색하거나 실행합니다...", - "searchOrSupportedCommand": "검색하거나 '$'를 앞에 붙여 지원되는 커맨드들을 사용해보세요:", - "typeCommand": "엔터를 누르시면 실행합니다.", - "typeSearch": "엔터를 누르시면 검색됩니다.", "types": "Types", "video": "비디오", - "writeToSearch": "검색하고 싶은것을 적어주세요" + "search": "검색...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "분", "hours": "시", "days": "일" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pl.json b/src/i18n/pl.json index 1c85b452..d758ef09 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Anuluj", "close": "Zamknij", "copy": "Kopiuj", @@ -37,7 +38,7 @@ "linkCopied": "Link Skopiowany!" }, "errors": { - "forbidden": "Nie jesteś tu mile widziany.", + "forbidden": "You don't have permissions to access this.", "internal": "Pojawił się poważny problem.", "notFound": "Ten adres nie jest poprawny." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Użytkownik zapisany!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Pomoc", + "login": "Login", + "signup": "Signup", "logout": "Wyloguj", "myFiles": "Moje pliki", "newFile": "Nowy plik", @@ -194,18 +198,12 @@ "search": { "images": "Zdjęcia", "music": "Muzyka", - "notSupportedCommand": "Polecenie niedozwolone.", "pdf": "PDF", - "pressToExecute": "Naciśniej Enter aby wykonać.", - "pressToSearch": "Naciśnij Enter aby wyszukać.", - "search": "Szukaj...", - "searchOrCommand": "Szukaj lub wykonaj polecenie...", - "searchOrSupportedCommand": "Szukaj lub wpisz '$' i wybierz jedno z dostęnych poleceń:", - "typeCommand": "Wpisz i naciśnij Enter aby wykonać.", - "typeSearch": "Wpisz i naciśni Enter aby wyszukać.", "types": "Typy", "video": "Video", - "writeToSearch": "Wpisz tu aby wyszukać" + "search": "Szukaj...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuty", "hours": "Godziny", "days": "Dni" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pt-br.json b/src/i18n/pt-br.json index 7e2b64c0..9bfa399c 100644 --- a/src/i18n/pt-br.json +++ b/src/i18n/pt-br.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Fechar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "Link copiado!" }, "errors": { - "forbidden": "Ops! Você não pode acessar aqui.", + "forbidden": "You don't have permissions to access this.", "internal": "Ops! Algum erro ocorreu.", "notFound": "Ops! Nada foi encontrado." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Usuário atualizado!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Ajuda", + "login": "Login", + "signup": "Signup", "logout": "Sair", "myFiles": "Arquivos", "newFile": "Novo arquivo", @@ -194,18 +198,12 @@ "search": { "images": "Imagens", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Pressione enter para executar.", - "pressToSearch": "Pressione enter para pesquisar.", - "search": "Pesquise...", - "searchOrCommand": "Pesquise ou execute um comando...", - "searchOrSupportedCommand": "Pesquise ou utilize um dos seus comandos:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeos", - "writeToSearch": "Escreva aqui para pesquisar" + "search": "Pesquise...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Dias" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pt.json b/src/i18n/pt.json index 7cc44002..2afe8bb6 100644 --- a/src/i18n/pt.json +++ b/src/i18n/pt.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Fechar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "Link copiado!" }, "errors": { - "forbidden": "Tu não és bem-vindo aqui.", + "forbidden": "You don't have permissions to access this.", "internal": "Algo correu bastante mal.", "notFound": "Não conseguimos chegar a esta localização." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utilizador atualizado!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Ajuda", + "login": "Login", + "signup": "Signup", "logout": "Sair", "myFiles": "Ficheiros", "newFile": "Novo ficheiro", @@ -194,18 +198,12 @@ "search": { "images": "Imagens", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Prima enter para executar.", - "pressToSearch": "Prima enter para pesquisar.", - "search": "Pesquise...", - "searchOrCommand": "Pesquise ou execute um comando...", - "searchOrSupportedCommand": "Pesquise ou utilize um dos seus comandos:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeos", - "writeToSearch": "Escreva aqui para pesquisar" + "search": "Pesquise...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Dias" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 3e19d58e..5699682b 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -1,6 +1,7 @@ { "permanent": "Постоянный", "buttons": { + "shell": "Toggle shell", "cancel": "Отмена", "close": "Закрыть", "copy": "Копировать", @@ -37,7 +38,7 @@ "linkCopied": "Ссылка скопирована!" }, "errors": { - "forbidden": "Доступ запрещен.", + "forbidden": "You don't have permissions to access this.", "internal": "Что-то пошло не так.", "notFound": "Неправильная ссылка." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Пользователь изменен!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Помощь", + "login": "Login", + "signup": "Signup", "logout": "Выход", "myFiles": "Файлы", "newFile": "Новый файл", @@ -194,18 +198,12 @@ "search": { "images": "Изображения", "music": "Музыка", - "notSupportedCommand": "Команда не поддерживается.", "pdf": "PDF", - "pressToExecute": "Enter для запуска.", - "pressToSearch": "Enter для поиска.", - "search": "Поиск...", - "searchOrCommand": "Поиск или выполнение команды...", - "searchOrSupportedCommand": "Поиск или выполнение команды, начинающейся с '$':", - "typeCommand": "Введи текст и нажми Enter для запуска.", - "typeSearch": "Введи текст и нажми Enter для поиска.", "types": "Типы", "video": "Видео", - "writeToSearch": "Введи текст для поиска" + "search": "Поиск...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Минуты", "hours": "Часы", "days": "Дни" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 7ab25ba7..36fb96af 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "取消", "close": "关闭", "copy": "复制", @@ -37,7 +38,7 @@ "linkCopied": "链接已复制!" }, "errors": { - "forbidden": "你被禁止访问。", + "forbidden": "You don't have permissions to access this.", "internal": "服务器出了点问题。", "notFound": "找不到文件。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "用户已更新!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "帮助", + "login": "Login", + "signup": "Signup", "logout": "登出", "myFiles": "我的文件", "newFile": "新建文件", @@ -194,18 +198,12 @@ "search": { "images": "图像", "music": "音乐", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "按回车键执行。", - "pressToSearch": "按回车键搜索。", - "search": "搜索...", - "searchOrCommand": "搜索或者执行命令(Linux 代码)...", - "searchOrSupportedCommand": "搜索或加入\"$\"前缀以使用其中一个您可以使用的命令:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "类型", "video": "视频", - "writeToSearch": "请输入要搜索的内容" + "search": "搜索...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分钟", "hours": "小时", "days": "天" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 3d7947cd..271a251e 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "取消", "close": "關閉", "copy": "複製", @@ -37,7 +38,7 @@ "linkCopied": "連結已複製!" }, "errors": { - "forbidden": "你被禁止存取。", + "forbidden": "You don't have permissions to access this.", "internal": "伺服器出了點問題。", "notFound": "找不到檔案。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "使用者已更新!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "幫助", + "login": "Login", + "signup": "Signup", "logout": "登出", "myFiles": "我的檔案", "newFile": "建立檔案", @@ -194,18 +198,12 @@ "search": { "images": "影像", "music": "音樂", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "按確定鍵執行。", - "pressToSearch": "按確定鍵搜尋。", - "search": "搜尋...", - "searchOrCommand": "搜尋或者執行命令...", - "searchOrSupportedCommand": "搜尋或使用您可以使用的命令(一次只能執行一個命令):", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "類型", "video": "影片", - "writeToSearch": "請輸入要搜尋的內容" + "search": "搜尋...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分鐘", "hours": "小時", "days": "天" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file From ac512612e790e045151ba26f26a470ac04e27f45 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 09:49:41 +0000 Subject: [PATCH 055/134] fix: fixed header License: MIT Signed-off-by: Henrique Dias --- src/css/listing.css | 5 ----- src/css/mobile.css | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/css/listing.css b/src/css/listing.css index 2922f04e..994d396c 100644 --- a/src/css/listing.css +++ b/src/css/listing.css @@ -101,7 +101,6 @@ #listing.list { flex-direction: column; - padding-top: 3.25em; width: 100%; max-width: 100%; margin: 0; @@ -160,10 +159,6 @@ #listing.list .item.header { display: flex !important; background: #fafafa; - position: fixed; - width: calc(100% - 19em); - top: 7em; - right: 1em; z-index: 999; padding: .85em; border: 0; diff --git a/src/css/mobile.css b/src/css/mobile.css index da172ba6..556ca033 100644 --- a/src/css/mobile.css +++ b/src/css/mobile.css @@ -5,7 +5,6 @@ } @media (max-width: 1024px) { - #listing.list .item.header, main { width: calc(100% - 13em) } @@ -105,10 +104,6 @@ #listing { margin-bottom: 5em; } - #listing.list .item.header, - main { - width: calc(100% - 2em); - } main { margin: 0 1em; width: calc(100% - 2em); From 7a6397af22380eec65f20836d713256b5397d182 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 10:06:08 +0000 Subject: [PATCH 056/134] feat: show search progressively License: MIT Signed-off-by: Henrique Dias --- src/components/Search.vue | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/Search.vue b/src/components/Search.vue index 7c6086f3..211baf23 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -23,7 +23,7 @@ > -
+
-
    -
  • +
      +
    • folder insert_drive_file @@ -69,8 +69,6 @@ import { mapState, mapGetters, mapMutations } from "vuex" import url from "@/utils/url" import { search } from "@/api" -// TODO: show fifty at the tie - var boxes = { image: { label: "images", icon: "insert_photo" }, audio: { label: "music", icon: "volume_up" }, @@ -92,7 +90,7 @@ export default { } }, watch: { - show(val, old) { + show (val, old) { this.active = val === "search" if (old === "search" && !this.active) { @@ -102,12 +100,19 @@ export default { document.body.style.overflow = "auto" this.reset() + this.value = '' + this.active = false this.$refs.input.blur() } else if (this.active) { this.reload = false this.$refs.input.focus() document.body.style.overflow = "hidden" } + }, + value () { + if (this.results.length) { + this.reset() + } } }, computed: { @@ -125,6 +130,9 @@ export default { } return this.value === '' ? this.$t("search.typeToSearch") : this.$t("search.pressToSearch") + }, + filteredResults () { + return this.results.slice(0, this.resultsCount) } }, mounted() { @@ -133,6 +141,12 @@ export default { this.closeHovers() } }) + + this.$refs.result.addEventListener('scroll', event => { + if (event.target.offsetHeight + event.target.scrollTop >= event.target.scrollHeight - 100) { + this.resultsCount += 50 + } + }) }, methods: { ...mapMutations(["showHover", "closeHovers", "setReload"]), @@ -157,8 +171,6 @@ export default { this.$refs.input.focus() }, reset () { - this.value = '' - this.active = false this.ongoing = false this.resultsCount = 50 this.results = [] @@ -177,6 +189,7 @@ export default { this.ongoing = true + this.results = await search(path, this.value) this.ongoing = false } From 0e7d4ef110ee550375d4bf15dfa9ded70214076a Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 12:01:23 +0000 Subject: [PATCH 057/134] fix: drop to itself (close #33 ) License: MIT Signed-off-by: Henrique Dias --- src/api/files.js | 6 +++--- src/components/files/Listing.vue | 5 ----- src/components/files/ListingItem.vue | 17 ++++++++++++++--- src/components/prompts/Copy.vue | 2 +- src/components/prompts/Move.vue | 2 +- src/components/prompts/Rename.vue | 1 - 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/api/files.js b/src/api/files.js index 9ed7b793..917e46ec 100644 --- a/src/api/files.js +++ b/src/api/files.js @@ -116,9 +116,9 @@ function moveCopy (items, copy = false) { let promises = [] for (let item of items) { - let from = removePrefix(item.from) - let to = encodeURIComponent(removePrefix(item.to)) - let url = `${from}?action=${copy ? 'copy' : 'rename'}&destination=${to}` + const from = removePrefix(item.from) + const to = encodeURIComponent(removePrefix(item.to)) + const url = `${from}?action=${copy ? 'copy' : 'rename'}&destination=${to}` promises.push(resourceAction(url, 'PATCH')) } diff --git a/src/components/files/Listing.vue b/src/components/files/Listing.vue index 9d34a533..020d6879 100644 --- a/src/components/files/Listing.vue +++ b/src/components/files/Listing.vue @@ -242,11 +242,6 @@ export default { for (let item of this.$store.state.clipboard.items) { const from = item.from.endsWith('/') ? item.from.slice(0, -1) : item.from const to = this.$route.path + item.name - - if (from === to) { - return - } - items.push({ from, to }) } diff --git a/src/components/files/ListingItem.vue b/src/components/files/ListingItem.vue index 5556666d..2cb03b2b 100644 --- a/src/components/files/ListingItem.vue +++ b/src/components/files/ListingItem.vue @@ -55,6 +55,17 @@ export default { if (this.type === 'audio') return 'volume_up' if (this.type === 'video') return 'movie' return 'insert_drive_file' + }, + canDrop () { + if (!this.isDir) return false + + for (let i of this.selected) { + if (this.req.items[i].url === this.url) { + return false + } + } + + return true } }, methods: { @@ -77,7 +88,7 @@ export default { } }, dragOver: function (event) { - if (!this.isDir) return + if (!this.canDrop) return event.preventDefault() let el = event.target @@ -91,7 +102,7 @@ export default { el.style.opacity = 1 }, drop: function (event) { - if (!this.isDir) return + if (!this.canDrop) return event.preventDefault() if (this.selectedCount === 0) return @@ -101,7 +112,7 @@ export default { for (let i of this.selected) { items.push({ from: this.req.items[i].url, - to: this.url + encodeURIComponent(this.req.items[i].name) + to: this.url + this.req.items[i].name }) } diff --git a/src/components/prompts/Copy.vue b/src/components/prompts/Copy.vue index 91471bf4..42c262bf 100644 --- a/src/components/prompts/Copy.vue +++ b/src/components/prompts/Copy.vue @@ -49,7 +49,7 @@ export default { for (let item of this.selected) { items.push({ from: this.req.items[item].url, - to: this.dest + encodeURIComponent(this.req.items[item].name) + to: this.dest + this.req.items[item].name }) } diff --git a/src/components/prompts/Move.vue b/src/components/prompts/Move.vue index c827ea48..4aa67931 100644 --- a/src/components/prompts/Move.vue +++ b/src/components/prompts/Move.vue @@ -47,7 +47,7 @@ export default { for (let item of this.selected) { items.push({ from: this.req.items[item].url, - to: this.dest + encodeURIComponent(this.req.items[item].name) + to: this.dest + this.req.items[item].name }) } diff --git a/src/components/prompts/Rename.vue b/src/components/prompts/Rename.vue index f452e8df..2c35244e 100644 --- a/src/components/prompts/Rename.vue +++ b/src/components/prompts/Rename.vue @@ -68,7 +68,6 @@ export default { oldLink = this.req.items[this.selected[0]].url } - this.name = encodeURIComponent(this.name) newLink = url.removeLastDir(oldLink) + '/' + this.name try { From 90d690c187279b245c9e701268e7dcc07c4c4871 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 12:57:44 +0000 Subject: [PATCH 058/134] chore(deps-dev): bump @vue/cli-plugin-eslint from 3.2.2 to 3.3.0 (#68) Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli) from 3.2.2 to 3.3.0.
      Changelog *Sourced from [@vue/cli-plugin-eslint's changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md).* > # [3.3.0](https://github.com/vuejs/vue-cli/compare/v3.2.3...v3.3.0) (2019-01-08) > > ## babel-preset-app > > #### Features > > * replace babel-plugin-transform-vue-jsx with [[**vue**](https://github.com/vue)](https://github.com/vue)/babel-preset-jsx ([#3218](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3218)) ([f15dcf7](https://github.com/vuejs/vue-cli/commit/f15dcf7)) > > ## cli-service > > #### Bug Fixes > > * **cli-service:** fix copy plugin's ignore pattern (fix [#3119](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3119)) ([#3130](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3130)) ([8b4471e](https://github.com/vuejs/vue-cli/commit/8b4471e)) > * fix loaderOptions.postcss detection ([#3201](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3201)) ([d5b5e3b](https://github.com/vuejs/vue-cli/commit/d5b5e3b)), closes [#3194](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3194) > > ## cli-ui > > #### Bug Fixes > > * typo in welcome tips ([#3246](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3246)) [ci skip] ([4070507](https://github.com/vuejs/vue-cli/commit/4070507)) > > ## docs > > #### Features > > * deprecate confusing `baseUrl` option, use `publicPath` instead. ([#3143](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3143)) ([e7af0d8](https://github.com/vuejs/vue-cli/commit/e7af0d8)) > > > > # [3.2.3](https://github.com/vuejs/vue-cli/compare/v3.2.2...v3.2.3) (2019-01-03) > > ## cli-plugin-e2e-cypress > > #### Bug Fixes > > * make cypress config file compatible with eslint-config-airbnb rules ([0fc972e](https://github.com/vuejs/vue-cli/commit/0fc972e)) > > ## cli-plugin-unit-jest > > #### Bug Fixes > > * fix typo in jest config ([4feaacf](https://github.com/vuejs/vue-cli/commit/4feaacf)) > > ## cli-service > > #### Bug Fixes > > * fix a regression that `pages` doesn't allow entry-only string format ([a7fa191](https://github.com/vuejs/vue-cli/commit/a7fa191)), closes [#3233](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3233)
      Commits - [`04203aa`](https://github.com/vuejs/vue-cli/commit/04203aa4ee03fe3d15fa6f240a13dbf75a360ac3) chore: vue-cli-version-marker@3.3.0 - [`8975f06`](https://github.com/vuejs/vue-cli/commit/8975f0670d4e90513efbbee70ab311e90fa983e8) chore: 3.3.0 changelog [ci skip] - [`5937a67`](https://github.com/vuejs/vue-cli/commit/5937a67a48af1ff4c0053be787e8cd64440466df) v3.3.0 - [`bcdf6d0`](https://github.com/vuejs/vue-cli/commit/bcdf6d0938d5789e9938fa6e1948139ff71a4de6) chore: pre release sync - [`d5b5e3b`](https://github.com/vuejs/vue-cli/commit/d5b5e3bfde008f3229a199491f33de8d8d550807) fix: fix loaderOptions.postcss detection ([#3201](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3201)) - [`f15dcf7`](https://github.com/vuejs/vue-cli/commit/f15dcf7f48b80a3634b548f0486068b9f91f8dc3) feat: replace babel-plugin-transform-vue-jsx with @vue/babel-preset-jsx ([#3218](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3218)) - [`e7af0d8`](https://github.com/vuejs/vue-cli/commit/e7af0d8fa374311693f14d1605e7ae442e43c3a6) feat: deprecate confusing `baseUrl` option, use `publicPath` instead. ([#3143](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3143)) - [`8b4471e`](https://github.com/vuejs/vue-cli/commit/8b4471e78cefced2bbce5beab57e2655a654344f) fix(cli-service): fix copy plugin's ignore pattern (fix [#3119](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3119)) ([#3130](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3130)) - [`4070507`](https://github.com/vuejs/vue-cli/commit/4070507de64bee83c8e019e96c336068e3e950b9) fix: typo in welcome tips ([#3246](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3246)) [ci skip] - [`d88f2fa`](https://github.com/vuejs/vue-cli/commit/d88f2faf64e7fa75ad0ac14bf897f81214d2e3dd) chore: vue-cli-version-marker@3.2.3 - Additional commits viewable in [compare view](https://github.com/vuejs/vue-cli/compare/vue-cli-version-marker@3.2.2...vue-cli-version-marker@3.3.0)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=@vue/cli-plugin-eslint&package-manager=npm_and_yarn&previous-version=3.2.2&new-version=3.3.0)](https://dependabot.com/compatibility-score.html?dependency-name=@vue/cli-plugin-eslint&package-manager=npm_and_yarn&previous-version=3.2.2&new-version=3.3.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 111 +++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 77 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95610bdc..a16cd250 100644 --- a/package-lock.json +++ b/package-lock.json @@ -876,12 +876,12 @@ } }, "@vue/cli-plugin-eslint": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.2.2.tgz", - "integrity": "sha512-usaTfKjMq7mGkUyTkgoGT36XLnfWjbxTAK00Hl46u3Iz24/ACapS9/p5O+uMv2Lj7epYWV+C36g72agzRrMP9A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.3.0.tgz", + "integrity": "sha512-kL68xVHv8xFqB06DmzACSviuNPaJcTvlKrCeZarxrXecry2MiOhbyiBToCQXiu2YhfxH8pUy3GFsSRyn3eYEuw==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.2.2", + "@vue/cli-shared-utils": "^3.3.0", "babel-eslint": "^10.0.1", "eslint": "^4.19.1", "eslint-loader": "^2.1.1", @@ -889,6 +889,26 @@ "globby": "^8.0.1" }, "dependencies": { + "@vue/cli-shared-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.3.0.tgz", + "integrity": "sha512-V/sU1jc7/jMCAbU8uA5f4j9Yd8lTqdi3I6FEHfLG1nstwhaNi4BU3WKWOAl72NYVWFYG8VuCrYWDn75kMimtuw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "execa": "^1.0.0", + "joi": "^14.3.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "opn": "^5.3.0", + "ora": "^3.0.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "semver": "^5.5.0", + "string.prototype.padstart": "^3.0.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -910,6 +930,18 @@ "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } } }, "debug": { @@ -988,16 +1020,6 @@ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -1594,7 +1616,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -1750,7 +1772,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -1759,7 +1781,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -4693,7 +4715,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -4702,7 +4724,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -4767,7 +4789,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4788,12 +4811,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4808,17 +4833,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4935,7 +4963,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4947,6 +4976,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4961,6 +4991,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4968,12 +4999,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4992,6 +5025,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5072,7 +5106,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5084,6 +5119,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5169,7 +5205,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5205,6 +5242,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5224,6 +5262,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5267,12 +5306,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -8632,7 +8673,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -10406,7 +10447,7 @@ }, "vue-eslint-parser": { "version": "2.0.3", - "resolved": "http://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", "dev": true, "requires": { @@ -10695,7 +10736,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -10814,7 +10855,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { @@ -10825,7 +10866,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { diff --git a/package.json b/package.json index 2c25c1be..fcf9459b 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@vue/cli-plugin-babel": "^3.2.2", - "@vue/cli-plugin-eslint": "^3.2.2", + "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.2.3", "babel-eslint": "^10.0.1", "eslint": "^5.12.0", From ee169b3a466633bb9c477b5fbd4e167dbb098d40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 14:05:23 +0000 Subject: [PATCH 059/134] chore(deps-dev): bump @vue/cli-service from 3.2.3 to 3.3.0 (#69) Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli) from 3.2.3 to 3.3.0. - [Release notes](https://github.com/vuejs/vue-cli/releases) - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md) - [Commits](https://github.com/vuejs/vue-cli/compare/v3.2.3...vue-cli-version-marker@3.3.0) Signed-off-by: dependabot[bot] --- package-lock.json | 100 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index a16cd250..abd2c957 100644 --- a/package-lock.json +++ b/package-lock.json @@ -859,9 +859,9 @@ } }, "@vue/cli-overlay": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.2.0.tgz", - "integrity": "sha512-RKMSfgTtRs4VOXQhmbrNZJaCCheshebji9NcPNGyXzukCMBtoAbu3cG9HxizCSUA//oFFAdPP5BGeHvv0cpu/A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.3.0.tgz", + "integrity": "sha512-UyfeuX6txu8sRtfhJOJlPgETzU3KjshKY2qAnC34KJKcS+7oIYRpeOo8jMMLjImVE0g6d8Rn3A1GkXjRiKWW6w==", "dev": true }, "@vue/cli-plugin-babel": { @@ -1029,14 +1029,14 @@ } }, "@vue/cli-service": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.2.3.tgz", - "integrity": "sha512-lRCwf8R/YCo67SAqt1MiYhJnvybedQJz1O3uWSJzv7mDPwRUp2980gzQ3wfsTt0tkUtxRcAOmD+V1co4tWOgrw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.0.tgz", + "integrity": "sha512-7PNitKBBCFcGfCvXSiuUGV2GpGA6KEupQcuxQ2xPL5T3UMSAzJLpx7Siw/9++yO4nQEib6yP3YQk2zTfeXWTSA==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", - "@vue/cli-overlay": "^3.2.0", - "@vue/cli-shared-utils": "^3.2.2", + "@vue/cli-overlay": "^3.3.0", + "@vue/cli-shared-utils": "^3.3.0", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", "acorn": "^6.0.4", @@ -1101,9 +1101,9 @@ } }, "@vue/cli-shared-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.2.2.tgz", - "integrity": "sha512-pkJDucxDxSnmhN3/zgyvKXDFJDx42sfAdNo02mRYPhv3u2tqJW4/GR0X1/O8p4+LUNwBgtGNmDAACYoLzv101Q==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.3.0.tgz", + "integrity": "sha512-V/sU1jc7/jMCAbU8uA5f4j9Yd8lTqdi3I6FEHfLG1nstwhaNi4BU3WKWOAl72NYVWFYG8VuCrYWDn75kMimtuw==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -1121,9 +1121,9 @@ } }, "@vue/component-compiler-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.4.0.tgz", - "integrity": "sha512-LZyagnP+93GPiVHhu6HELEuHaSe83tfVrUgfl3ugwEc/k5yVbMu3OdaWrVqNo4hh1KK8o5fYOk2E/QpsfAxqiQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.5.0.tgz", + "integrity": "sha512-mSB8jWmE/ZeYZHPDEx9hNiiRh5P2V1Q0tObxEQWtxxfXtkIAvPnj7oucGm5SO8Y/QwIlDJgAGqHfj5MCjoKoOg==", "dev": true, "requires": { "consolidate": "^0.15.1", @@ -2752,9 +2752,9 @@ } }, "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "console-browserify": { @@ -4789,8 +4789,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -5205,8 +5204,7 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -5262,7 +5260,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5306,14 +5303,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -7754,21 +7749,52 @@ "dev": true }, "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.8.tgz", + "integrity": "sha512-WudsIzuTKRw9IInRTPBgVXJ7DKR26HT09Rxp0g3w0Fqh3TUtYICcUmvC0xURj04o3vdcDtnjCAUCECg/p341iQ==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.0.0" }, "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -10482,9 +10508,9 @@ "integrity": "sha512-qey+OyZSUIje0xJW8HZrvpIss1jW8yBBRe+0QlUn7HENU31m/+Med/u4pcwjoeCaErHU9WMscBEhqK5aAvvEEQ==" }, "vue-loader": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.5.0.tgz", - "integrity": "sha512-aw+eJsAxxmlD4Ad0ww4s69u4pGs4jjwv9WVDiW5qj2zPYSmgNPWaD0xCl5jQyqgtXstkzYurhdG49cpQmNgRgg==", + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.5.1.tgz", + "integrity": "sha512-gsTA9xRzu9jGBzkcrAB8my14RkHMzdr5rY/mCFmxgY2tOVsd2Z1MaYCDXHu5nX6PyHAsVK2/hXmarPln/2MiIw==", "dev": true, "requires": { "@vue/component-compiler-utils": "^2.4.0", @@ -10565,9 +10591,9 @@ } }, "webpack": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.3.tgz", - "integrity": "sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.1.tgz", + "integrity": "sha512-qAS7BFyS5iuOZzGJxyDXmEI289h7tVNtJ5XMxf6Tz55J2riOyH42uaEsWF0F32TRaI+54SmI6qRgHM3GzsZ+sQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.7.11", diff --git a/package.json b/package.json index fcf9459b..159a6e16 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@vue/cli-plugin-babel": "^3.2.2", "@vue/cli-plugin-eslint": "^3.3.0", - "@vue/cli-service": "^3.2.3", + "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", "eslint": "^5.12.0", "eslint-plugin-vue": "^5.1.0", From 2ed87febcb71c71588f53d5b6ed560cd5c99f526 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 14:16:24 +0000 Subject: [PATCH 060/134] chore(deps-dev): bump @vue/cli-plugin-babel from 3.2.2 to 3.3.0 (#70) --- package-lock.json | 145 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 132 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index abd2c957..6881c9fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -838,10 +838,30 @@ "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", "dev": true }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0-beta.1.tgz", + "integrity": "sha512-N5uSbvShCF7pMuk4gOoMaM/oAhr4Vt5s1DRnevuhCeRP2UtwDC6GuFFNFuhuefOsWwpAX/PmrSxA6kDH/GGQlg==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0-beta.1.tgz", + "integrity": "sha512-/ZV09X4BtA5OPdnQqQaxhD1aRBQF8PVY/ZUnQtrk4jld7+Mfy9CxT4gCznoJ+KFooCbyjvwhotB72Hg7N3T4zg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, "@vue/babel-preset-app": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.2.2.tgz", - "integrity": "sha512-qQkf/bAATfwC1aTKpjPXPeoITSV0uJaeCYrlBXrAH93+ycKWkK+mz7hjwYlGVo7xM/UTICXd3H14XPn1svK5yg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.3.0.tgz", + "integrity": "sha512-ZnuzErAub1hiFp9c/BI94JMEG7AcbS3/nqToJofOYJFspwWerozxefHF3i3owy6KymBQODVetdyI+iZu80b23A==", "dev": true, "requires": { "@babel/plugin-proposal-class-properties": "^7.0.0", @@ -852,12 +872,86 @@ "@babel/preset-env": "^7.0.0", "@babel/runtime": "^7.0.0", "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0-beta.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-plugin-dynamic-import-node": "^2.2.0", "babel-plugin-transform-vue-jsx": "^4.0.1", "core-js": "^2.6.1" } }, + "@vue/babel-preset-jsx": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0-beta.1.tgz", + "integrity": "sha512-Nx6+KEJKApsofsYElwFaU7bnBWjMatAgUBFR45qMNl2KpwVOrgNABCbrX/9IqxZIOGCpRuzD96pWmnxFnu2HVQ==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "@vue/babel-sugar-functional-vue": "^1.0.0-beta.1", + "@vue/babel-sugar-inject-h": "^1.0.0-beta.1", + "@vue/babel-sugar-v-model": "^1.0.0-beta.1", + "@vue/babel-sugar-v-on": "^1.0.0-beta.1" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0-beta.1.tgz", + "integrity": "sha512-FD53t0SxlkNtCk78C/fl1WR79tOLYMOEcku0ie0nKhjn/gy56fhYOMlUjutjE/mdVa4wHSHnz2WC7N8e4zbxPg==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0-beta.1.tgz", + "integrity": "sha512-/0Key+jZfxjRb1b7NPS29rrYzPXGqoYxRim54eVFzcAF255O5DCcBDbePGb/ktza2aA8ZvzPfnc/uNxcLA82FQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0-beta.1.tgz", + "integrity": "sha512-TLcBppivEHL9oeAafLfxBG3M4FFnVp1BX8joBJwvfgMOFgarNux8QhttbqQSMAAVX4j6GOf1xlXpXK2odQHB0w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0-beta.1.tgz", + "integrity": "sha512-K+QecqeKZseWoGkxMAuV08XqumPqBpQ681NwFsSZyj6Pfz5XpEPPlCH3nQ+7KC4yxjbH9bjIGVtkpvbONIfbvA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } + } + }, "@vue/cli-overlay": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.3.0.tgz", @@ -865,13 +959,13 @@ "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.2.2.tgz", - "integrity": "sha512-ya2UbXs3+Ac/qxnrdChhtM/0JBNifpeO05jL83Q31d3P+AHGp9psqVLHTdB9zReuHri5OAXSGUg1wpQUYNZyYQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.3.0.tgz", + "integrity": "sha512-HS5DwLe42fmkDgu4+78zMITNK+WiLoHKHBCCOuoEqjmsvvKaH/ByCGJOHYgTTe0aI+AiTAAkR2sZ2YulAjlvlQ==", "dev": true, "requires": { "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.2.2", + "@vue/babel-preset-app": "^3.3.0", "babel-loader": "^8.0.4" } }, @@ -4789,7 +4883,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5204,7 +5299,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5260,6 +5356,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5303,12 +5400,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -5650,6 +5749,12 @@ "uglify-js": "3.4.x" } }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -6366,9 +6471,9 @@ "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" }, "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.5.tgz", + "integrity": "sha512-ap2aTez3WZASzMmJvgvG+nsrCCrtHPQ+4YB+WQjYQpXgLkM+WqwkpzdlVs5l7Xhk128I/CisIk4CdXl7pIchUA==", "dev": true }, "js-message": { @@ -6648,6 +6753,12 @@ "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=", "dev": true }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, "lodash.mapvalues": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", @@ -9723,6 +9834,12 @@ "has-flag": "^3.0.0" } }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, "svgo": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.1.1.tgz", diff --git a/package.json b/package.json index 159a6e16..c08f99ae 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "vuex-router-sync": "^5.0.0" }, "devDependencies": { - "@vue/cli-plugin-babel": "^3.2.2", + "@vue/cli-plugin-babel": "^3.3.0", "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", From bc518a0e82ca2a4eeb798149f3772b9e5cc9fff2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 14 Jan 2019 12:52:21 +0000 Subject: [PATCH 061/134] chore(deps): bump vue and vue-template-compiler (#72) Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together. Updates `vue` from 2.5.21 to 2.5.22 - [Release notes](https://github.com/vuejs/vue/releases) - [Commits](https://github.com/vuejs/vue/compare/v2.5.21...v2.5.22) Updates `vue-template-compiler` from 2.5.21 to 2.5.22 - [Release notes](https://github.com/vuejs/vue/releases) - [Commits](https://github.com/vuejs/vue/compare/v2.5.21...v2.5.22) Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6881c9fc..6117dad7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10584,9 +10584,9 @@ } }, "vue": { - "version": "2.5.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.21.tgz", - "integrity": "sha512-Aejvyyfhn0zjVeLvXd70h4hrE4zZDx1wfZqia6ekkobLmUZ+vNFQer53B4fu0EjWBSiqApxPejzkO1Znt3joxQ==" + "version": "2.5.22", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.22.tgz", + "integrity": "sha512-pxY3ZHlXNJMFQbkjEgGVMaMMkSV1ONpz+4qB55kZuJzyJOhn6MSy/YZdzhdnumegNzVTL/Dn3Pp4UrVBYt1j/g==" }, "vue-eslint-parser": { "version": "2.0.3", @@ -10653,9 +10653,9 @@ } }, "vue-template-compiler": { - "version": "2.5.21", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz", - "integrity": "sha512-Vmk5Cv7UcmI99B9nXJEkaK262IQNnHp5rJYo+EwYpe2epTAXqcVyExhV6pk8jTkxQK2vRc8v8KmZBAwdmUZvvw==", + "version": "2.5.22", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.22.tgz", + "integrity": "sha512-1VTw/NPTUeHNiwhkq6NkFzO7gYLjFCueBN0FX8NEiQIemd5EUMQ5hxrF7O0zCPo5tae+U9S/scETPea+hIz8Eg==", "dev": true, "requires": { "de-indent": "^1.0.2", diff --git a/package.json b/package.json index c08f99ae..9da558c2 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "moment": "^2.23.0", "normalize.css": "^8.0.1", "noty": "^3.2.0-beta", - "vue": "^2.5.21", + "vue": "^2.5.22", "vue-i18n": "^8.7.0", "vue-router": "^3.0.2", "vuex": "^3.0.1", @@ -30,7 +30,7 @@ "babel-eslint": "^10.0.1", "eslint": "^5.12.0", "eslint-plugin-vue": "^5.1.0", - "vue-template-compiler": "^2.5.21" + "vue-template-compiler": "^2.5.22" }, "eslintConfig": { "root": true, From de53b24536f11c11584a1b0bc272b462bd993c56 Mon Sep 17 00:00:00 2001 From: freedomlang Date: Wed, 16 Jan 2019 22:31:26 +0800 Subject: [PATCH 062/134] update i18n for simplified chinese --- src/i18n/zh-cn.json | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 36fb96af..8638cfc0 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -1,7 +1,7 @@ { "permanent": "永久", "buttons": { - "shell": "Toggle shell", + "shell": "激活 shell", "cancel": "取消", "close": "关闭", "copy": "复制", @@ -38,7 +38,7 @@ "linkCopied": "链接已复制!" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "你无权限访问", "internal": "服务器出了点问题。", "notFound": "找不到文件。" }, @@ -76,13 +76,13 @@ }, "login": { "password": "密码", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "确认密码", "submit": "登录", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", - "signup": "Signup", + "createAnAccount": "创建用户", + "loginInstead": "已有用户登录", + "passwordsDontMatch": "密码不一致", + "usernameTaken": "用户名已经被使用", + "signup": "注册", "username": "用户名", "wrongCredentials": "用户名或密码错误" }, @@ -164,28 +164,28 @@ "username": "用户名", "users": "用户", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", - "insertRegex": "Insert regex expression", + "allowSignup": "允许用户注册", + "insertRegex": "插入正则表达式", "insertPath": "Insert the path", "userUpdated": "用户已更新!", - "userDefaults": "User default settings", - "defaultUserDescription": "This are the default settings for new users.", + "userDefaults": "用户默认设置", + "defaultUserDescription": "这些是新用户的默认设置", "executeOnShell": "Execute on shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "modify": "Edit files", - "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "create": "创建文件和文件夹", + "delete": "删除文件和文件夹", + "download": "下载", + "modify": "编辑", + "execute": "执行命令", + "rename": "重命名或移动文件和文件夹", + "share": "分享文件" } }, "sidebar": { "help": "帮助", - "login": "Login", - "signup": "Signup", + "login": "登录", + "signup": "注册", "logout": "登出", "myFiles": "我的文件", "newFile": "新建文件", @@ -202,8 +202,8 @@ "types": "类型", "video": "视频", "search": "搜索...", - "typeToSearch": "Type to search...", - "pressToSearch": "Press enter to search..." + "typeToSearch": "输入搜索...", + "pressToSearch": "回车搜索..." }, "languages": { "ar": "العربية", @@ -229,7 +229,7 @@ "days": "天" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "下载文件", + "downloadFolder": "下载文件夹" } } \ No newline at end of file From e1e8979e0bece8ba85fffa07c0080448ce4ca2b4 Mon Sep 17 00:00:00 2001 From: freedomlang Date: Wed, 16 Jan 2019 22:51:28 +0800 Subject: [PATCH 063/134] update language file for zh-tw --- src/i18n/zh-tw.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 271a251e..3da4d942 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -82,7 +82,7 @@ "loginInstead": "Already have an account", "passwordsDontMatch": "Passwords don't match", "usernameTaken": "Username already taken", - "signup": "Signup", + "signup": "註冊", "username": "帳號", "wrongCredentials": "帳號或密碼錯誤" }, @@ -173,19 +173,19 @@ "executeOnShell": "Execute on shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "modify": "Edit files", + "create": "建立檔案和資料夾", + "delete": "刪除檔案和資料夾", + "download": "下載", + "modify": "編輯檔案", "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "rename": "重命名或移動檔案/資料夾", + "share": "分享檔案" } }, "sidebar": { "help": "幫助", - "login": "Login", - "signup": "Signup", + "login": "登入", + "signup": "註冊", "logout": "登出", "myFiles": "我的檔案", "newFile": "建立檔案", @@ -229,7 +229,7 @@ "days": "天" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "下載檔案", + "downloadFolder": "下載資料夾" } } \ No newline at end of file From 6c1bbb324888e01466cd73c83c151ec8e42c17b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 18 Jan 2019 11:26:12 +0000 Subject: [PATCH 064/134] chore(deps): bump vuex from 3.0.1 to 3.1.0 Bumps [vuex](https://github.com/vuejs/vuex) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/vuejs/vuex/releases) - [Commits](https://github.com/vuejs/vuex/compare/v3.0.1...v3.1.0) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6117dad7..b7105843 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10669,9 +10669,9 @@ "dev": true }, "vuex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", - "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.0.tgz", + "integrity": "sha512-mdHeHT/7u4BncpUZMlxNaIdcN/HIt1GsGG5LKByArvYG/v6DvHcOxvDCts+7SRdCoIRGllK8IMZvQtQXLppDYg==" }, "vuex-router-sync": { "version": "5.0.0", diff --git a/package.json b/package.json index 9da558c2..a8efddeb 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "vue": "^2.5.22", "vue-i18n": "^8.7.0", "vue-router": "^3.0.2", - "vuex": "^3.0.1", + "vuex": "^3.1.0", "vuex-router-sync": "^5.0.0" }, "devDependencies": { From a438fc746f98e5b0c2d6ebfca447ab3c38db31a9 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 19 Jan 2019 08:37:32 +0000 Subject: [PATCH 065/134] feat: update translations (#76) License: MIT Signed-off-by: Henrique Dias --- src/i18n/de.json | 42 +++++++++++++++++++++--------------------- src/i18n/es.json | 20 ++++++++++---------- src/i18n/zh-cn.json | 18 +++++++++--------- src/i18n/zh-tw.json | 16 ++++++++-------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/i18n/de.json b/src/i18n/de.json index d31e567c..408f3043 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -38,7 +38,7 @@ "linkCopied": "Verweis wurde kopiert !" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "Sie haben keine Berechtigung dies abzurufen.", "internal": "Etwas ist schief gelaufen.", "notFound": "Dieser Ort kann nicht angezeigt werden." }, @@ -76,13 +76,13 @@ }, "login": { "password": "Passwort", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "Passwort Bestätigung", "submit": "Login", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", - "signup": "Signup", + "createAnAccount": "Account erstellen", + "loginInstead": "Account besteht bereits", + "passwordsDontMatch": "Passwörter stimmen nicht überein", + "usernameTaken": "Benutzername ist bereits vergeben", + "signup": "Registrieren", "username": "Benutzername", "wrongCredentials": "Falsche Zugangsdaten" }, @@ -121,9 +121,9 @@ "settings": { "instanceName": "Instance name", "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", + "documentation": "Dokumentation", "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", + "disableExternalLinks": "Externe Links deaktivieren (außer Dokumentation)", "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", "admin": "Admin", "administrator": "Administrator", @@ -164,28 +164,28 @@ "username": "Nutzername", "users": "Nutzer", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", + "allowSignup": "Erlaube Benutzern sich zu registrieren", "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Benutzer aktualisiert!", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", - "executeOnShell": "Execute on shell", + "executeOnShell": "In shell ausführen", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", + "create": "Dateien und Ordner erstellen", + "delete": "Dateien und Ordner löschen", "download": "Download", "modify": "Edit files", - "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "execute": "Befehle ausführen", + "rename": "Umbenennen oder Verschieben von Dateien oder Ordnern", + "share": "Datei teilen" } }, "sidebar": { "help": "Hilfe", - "login": "Login", - "signup": "Signup", + "login": "Anmelden", + "signup": "Registrieren", "logout": "Logout", "myFiles": "Meine Dateien", "newFile": "Neue Datei", @@ -202,7 +202,7 @@ "types": "Typen", "video": "Video", "search": "Suche...", - "typeToSearch": "Type to search...", + "typeToSearch": "Tippe um zu suchen...", "pressToSearch": "Press enter to search..." }, "languages": { @@ -229,7 +229,7 @@ "days": "Tage" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "Download Datei", + "downloadFolder": "Download Ordner" } } \ No newline at end of file diff --git a/src/i18n/es.json b/src/i18n/es.json index 66d63414..055a0157 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -1,7 +1,7 @@ { "permanent": "Permanente", "buttons": { - "shell": "Toggle shell", + "shell": "Presiona Enter para buscar...", "cancel": "Cancelar", "close": "Cerrar", "copy": "Copiar", @@ -79,9 +79,9 @@ "passwordConfirm": "Confirmación de contraseña", "submit": "Iniciar sesión", "createAnAccount": "Crear una cuenta", - "loginInstead": "Already have an account", + "loginInstead": "Usuario ya existente", "passwordsDontMatch": "Las contraseñas no coinciden", - "usernameTaken": "Username already taken", + "usernameTaken": "Nombre usuario no disponible", "signup": "Signup", "username": "Usuario", "wrongCredentials": "Usuario y/o contraseña incorrectos" @@ -119,7 +119,7 @@ "newArchetype": "Crea un nuevo post basado en un arquetipo. Tu archivo será creado en la carpeta de contenido." }, "settings": { - "instanceName": "Instance name", + "instanceName": "Nombre de la instancia", "brandingDirectoryPath": "Branding directory path", "documentation": "documentación", "branding": "Branding", @@ -165,20 +165,20 @@ "users": "Usuarios", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", "allowSignup": "Permitir registro de usuarios", - "insertRegex": "Insert regex expression", + "insertRegex": "Introducir expresión regular", "insertPath": "Introduce la ruta", "userUpdated": "¡Usuario actualizado!", "userDefaults": "Configuración de usuario por defecto", "defaultUserDescription": "This are the default settings for new users.", - "executeOnShell": "Execute on shell", + "executeOnShell": "Ejecutar en la shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Crear ficheros y directorios", "delete": "Eliminar ficheros y directorios", "download": "Descargar", - "modify": "Edit files", + "modify": "Editar ficheros", "execute": "Executar comandos", - "rename": "Rename or move files and directories", + "rename": "Renombrar o mover ficheros y directorios", "share": "Compartir ficheros" } }, @@ -229,7 +229,7 @@ "days": "Días" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "Descargar fichero", + "downloadFolder": "Descargar directorio" } } \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 8638cfc0..6950c66c 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -45,7 +45,7 @@ "files": { "folders": "文件夹", "files": "文件", - "body": "Body", + "body": "内容", "clear": "清空", "closePreview": "关闭预览", "home": "主页", @@ -120,11 +120,11 @@ }, "settings": { "instanceName": "Instance name", - "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", - "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", - "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", + "brandingDirectoryPath": "品牌信息文件夹路径", + "documentation": "帮助文档", + "branding": "品牌", + "disableExternalLinks": "禁止外部链接(帮助文档除外)", + "brandingHelp": "您可以通过改变名称,更换商标,加入自定义样式,甚至禁用外部链接来自定义File Browser的外观和给人的感觉。\n想获得更多信息,请查看 {0} 。", "admin": "管理员", "administrator": "管理员", "allowCommands": "执行命令(Linux 代码)", @@ -133,7 +133,7 @@ "allowPublish": "发布新的帖子与页面", "avoidChanges": "(留空以避免更改)", "changePassword": "更改密码", - "commandRunner": "Command runner", + "commandRunner": "命令执行器", "commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.", "commandsUpdated": "命令已更新!", "customStylesheet": "自定义样式表", @@ -163,14 +163,14 @@ "userManagement": "用户管理", "username": "用户名", "users": "用户", - "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", + "globalRules": "这是全局允许与禁止规则。它们作用于所有用户。您可以给每个用户定义单独的特殊规则来覆盖全局规则。", "allowSignup": "允许用户注册", "insertRegex": "插入正则表达式", "insertPath": "Insert the path", "userUpdated": "用户已更新!", "userDefaults": "用户默认设置", "defaultUserDescription": "这些是新用户的默认设置", - "executeOnShell": "Execute on shell", + "executeOnShell": "在Shell中执行", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "创建文件和文件夹", diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 3da4d942..3a4ce4f3 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -1,7 +1,7 @@ { "permanent": "永久", "buttons": { - "shell": "Toggle shell", + "shell": "切換 shell", "cancel": "取消", "close": "關閉", "copy": "複製", @@ -38,14 +38,14 @@ "linkCopied": "連結已複製!" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "您無權訪問。", "internal": "伺服器出了點問題。", "notFound": "找不到檔案。" }, "files": { "folders": "資料夾", "files": "檔案", - "body": "Body", + "body": "内容", "clear": "清空", "closePreview": "關閉預覽", "home": "主頁", @@ -76,12 +76,12 @@ }, "login": { "password": "密碼", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "確認密碼", "submit": "登入", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", + "createAnAccount": "新建賬戶", + "loginInstead": "已有賬戶登錄", + "passwordsDontMatch": "密碼不匹配", + "usernameTaken": "用戶名已存在", "signup": "註冊", "username": "帳號", "wrongCredentials": "帳號或密碼錯誤" From 0a46ac3e1ba682196e524453540c7baaf90e5e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 21 Jan 2019 14:55:46 +0000 Subject: [PATCH 066/134] chore(deps-dev): bump eslint from 5.12.0 to 5.12.1 (#80) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [eslint](https://github.com/eslint/eslint) from 5.12.0 to 5.12.1.
      Release notes *Sourced from [eslint's releases](https://github.com/eslint/eslint/releases).* > ## v5.12.1 > * [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) (薛定谔的猫) > * [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) (Peter Metz) > * [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) (Kai Cataldo) > * [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) (Kai Cataldo) > * [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) (Merlin Mason) > * [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) (Gabriel Cousin) > * [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) (Remco Haszing) > * [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) (eyal0803) > * [`da9174e`](https://github.com/eslint/eslint/commit/da9174e0798c1d785ddabb3ae405860fc5b89311) Docs: fixes typo peerDepencies ([#11252](https://github-redirect.dependabot.com/eslint/eslint/issues/11252)) (Christian Kühl) > * [`9c31625`](https://github.com/eslint/eslint/commit/9c31625f19176664ef76dcf088ce50703c41c324) Docs: Improve custom formatter docs ([#11258](https://github-redirect.dependabot.com/eslint/eslint/issues/11258)) (Nicholas C. Zakas)
      Changelog *Sourced from [eslint's changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md).* > v5.12.1 - January 18, 2019 > > * [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) (薛定谔的猫) > * [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) (Peter Metz) > * [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) (Kai Cataldo) > * [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) (Kai Cataldo) > * [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) (Merlin Mason) > * [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) (Gabriel Cousin) > * [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) (Remco Haszing) > * [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) (eyal0803) > * [`da9174e`](https://github.com/eslint/eslint/commit/da9174e0798c1d785ddabb3ae405860fc5b89311) Docs: fixes typo peerDepencies ([#11252](https://github-redirect.dependabot.com/eslint/eslint/issues/11252)) (Christian Kühl) > * [`9c31625`](https://github.com/eslint/eslint/commit/9c31625f19176664ef76dcf088ce50703c41c324) Docs: Improve custom formatter docs ([#11258](https://github-redirect.dependabot.com/eslint/eslint/issues/11258)) (Nicholas C. Zakas)
      Commits - [`faf3c4e`](https://github.com/eslint/eslint/commit/faf3c4eda0d27323630d0bc103a99dd0ecffe842) 5.12.1 - [`1010c98`](https://github.com/eslint/eslint/commit/1010c98b811a607753c20f8efff269865b86ad0c) Build: changelog update for 5.12.1 - [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) - [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) - [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) - [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) - [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) - [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) - [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) - [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) - Additional commits viewable in [compare view](https://github.com/eslint/eslint/compare/v5.12.0...v5.12.1)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=5.12.0&new-version=5.12.1)](https://dependabot.com/compatibility-score.html?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=5.12.0&new-version=5.12.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7105843..e0bfb4e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3901,9 +3901,9 @@ "dev": true }, "eslint": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.0.tgz", - "integrity": "sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.1.tgz", + "integrity": "sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4073,9 +4073,9 @@ } }, "table": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", - "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.1.tgz", + "integrity": "sha512-qmhNs2GEHNqY5fd2Mo+8N1r2sw/rvTAAvBZTaTx+Y7PHLypqyrxr1MdIu0pLw6Xvl/Gi4ONu/sdceP8vvUjkyA==", "dev": true, "requires": { "ajv": "^6.6.1", diff --git a/package.json b/package.json index a8efddeb..60e25cc7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", - "eslint": "^5.12.0", + "eslint": "^5.12.1", "eslint-plugin-vue": "^5.1.0", "vue-template-compiler": "^2.5.22" }, From 9264e344d7ef910c38ac1b057f36b6112a196b51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 21 Jan 2019 14:55:54 +0000 Subject: [PATCH 067/134] chore(deps): bump js-base64 from 2.5.0 to 2.5.1 (#79) Bumps [js-base64](https://github.com/dankogai/js-base64) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/dankogai/js-base64/releases) - [Commits](https://github.com/dankogai/js-base64/compare/2.5.0...2.5.1) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0bfb4e0..a48701bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6466,9 +6466,9 @@ } }, "js-base64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz", - "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" }, "js-levenshtein": { "version": "1.1.5", diff --git a/package.json b/package.json index 60e25cc7..f1b91695 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dependencies": { "ace-builds": "^1.4.2", "clipboard": "^2.0.4", - "js-base64": "^2.5.0", + "js-base64": "^2.5.1", "lodash.clonedeep": "^4.5.0", "material-design-icons": "^3.0.1", "moment": "^2.23.0", From 5d5cef2a877e3b283f6e5b717c6b2106c6022a25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 22 Jan 2019 17:33:32 +0000 Subject: [PATCH 068/134] chore(deps): bump moment from 2.23.0 to 2.24.0 (#83) Bumps [moment](https://github.com/moment/moment) from 2.23.0 to 2.24.0.
      Changelog *Sourced from [moment's changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md).* > ### 2.24.0 [See full changelog](https://gist.github.com/marwahaha/12366fe45bee328f33acf125d4cd540e) > > * Release Jan 21, 2019 > > * [#4338](https://github-redirect.dependabot.com/moment/moment/pull/4338) [bugfix] Fix startOf/endOf DST issues while boosting performance > * [#4553](https://github-redirect.dependabot.com/moment/moment/pull/4553) [feature] Add localeSort param to Locale weekday methods > * [#4887](https://github-redirect.dependabot.com/moment/moment/pull/4887) [bugfix] Make Duration#as work with quarters > * 3 new locales (it-ch, ga, en-SG) > * Lots of locale improvements
      Commits - [`96d0d67`](https://github.com/moment/moment/commit/96d0d6791ab495859d09a868803d31a55c917de1) Build 2.24.0 - [`f57faac`](https://github.com/moment/moment/commit/f57faac11ce872e145f2721c8ac84551bb8d7c21) Bump version to 2.24.0 - [`7eb0ea8`](https://github.com/moment/moment/commit/7eb0ea815ef68f8775dd0f742eb06c927b0be974) Update changelog for 2.24.0 - [`38a19a7`](https://github.com/moment/moment/commit/38a19a7c5b08c6ad5275dc2d4517d083fe0bbda6) [locale] fo: Fixed relativeTimes for m and M ([#4609](https://github-redirect.dependabot.com/moment/moment/issues/4609)) ([#4682](https://github-redirect.dependabot.com/moment/moment/issues/4682)) - [`01ae8ca`](https://github.com/moment/moment/commit/01ae8ca220d1ff84d3d26491eadea1afc5780d2b) [misc] Remove unused variable defaults ([#4959](https://github-redirect.dependabot.com/moment/moment/issues/4959)) - [`24e55df`](https://github.com/moment/moment/commit/24e55dfe72a0f462a1564ed6f827dfd2df24b526) [locale] Extend cs locale with name of the months in genitive ([#4771](https://github-redirect.dependabot.com/moment/moment/issues/4771)) - [`3b80f6a`](https://github.com/moment/moment/commit/3b80f6aab233121b902bbad7c92e9046c34a2b61) [feature] Add localeSort param to Locale weekday methods ([#4553](https://github-redirect.dependabot.com/moment/moment/issues/4553)) - [`bb484bc`](https://github.com/moment/moment/commit/bb484bc7b80520be14466bc49c244bf1433bd3bc) [locale] (es-us) long date is D [de] MMMM [de] YYYY ([#4954](https://github-redirect.dependabot.com/moment/moment/issues/4954)) - [`ba125e7`](https://github.com/moment/moment/commit/ba125e707089c45311a4d14cac92f873aef79f19) [bugfix] (TypeScript) allow update of a single relativeTime handler - [`91550f8`](https://github.com/moment/moment/commit/91550f810c424415559d28eabb9dc3247da24c11) [locale] Capitalization of pt month names ([#4557](https://github-redirect.dependabot.com/moment/moment/issues/4557)) - Additional commits viewable in [compare view](https://github.com/moment/moment/compare/2.23.0...2.24.0)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=moment&package-manager=npm_and_yarn&previous-version=2.23.0&new-version=2.24.0)](https://dependabot.com/compatibility-score.html?dependency-name=moment&package-manager=npm_and_yarn&previous-version=2.23.0&new-version=2.24.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index a48701bf..6122db29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7123,9 +7123,9 @@ } }, "moment": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.23.0.tgz", - "integrity": "sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "move-concurrently": { "version": "1.0.1", diff --git a/package.json b/package.json index f1b91695..51c22a91 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "js-base64": "^2.5.1", "lodash.clonedeep": "^4.5.0", "material-design-icons": "^3.0.1", - "moment": "^2.23.0", + "moment": "^2.24.0", "normalize.css": "^8.0.1", "noty": "^3.2.0-beta", "vue": "^2.5.22", From 3ed5f8c0bd53069e4ebf2fea724bb4f2f7eb1197 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 22 Jan 2019 17:33:41 +0000 Subject: [PATCH 069/134] chore(deps-dev): bump @vue/cli-service from 3.3.0 to 3.3.1 (#82) Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli) from 3.3.0 to 3.3.1.
      Commits - See full diff in [compare view](https://github.com/vuejs/vue-cli/commits)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=@vue/cli-service&package-manager=npm_and_yarn&previous-version=3.3.0&new-version=3.3.1)](https://dependabot.com/compatibility-score.html?dependency-name=@vue/cli-service&package-manager=npm_and_yarn&previous-version=3.3.0&new-version=3.3.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 147 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 75 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6122db29..9f25976a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1123,9 +1123,9 @@ } }, "@vue/cli-service": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.0.tgz", - "integrity": "sha512-7PNitKBBCFcGfCvXSiuUGV2GpGA6KEupQcuxQ2xPL5T3UMSAzJLpx7Siw/9++yO4nQEib6yP3YQk2zTfeXWTSA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.1.tgz", + "integrity": "sha512-fo8Mt4pi6GBxRywPxM3uPRAIW/SltauYPw9RHA44rHWpq2adb4B8REtkqBGXTrtQPw9zsdiqHr0djkVO/yv9BA==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", @@ -1172,7 +1172,7 @@ "thread-loader": "^1.2.0", "url-loader": "^1.1.2", "vue-loader": "^15.4.2", - "webpack": "4", + "webpack": ">=4 < 4.29", "webpack-bundle-analyzer": "^3.0.3", "webpack-chain": "^4.11.0", "webpack-dev-server": "^3.1.14", @@ -4244,9 +4244,9 @@ "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true }, "eventsource": { @@ -4864,9 +4864,9 @@ "dev": true }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", "dev": true, "optional": true, "requires": { @@ -4893,7 +4893,7 @@ "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, "dev": true, "optional": true, @@ -4919,7 +4919,7 @@ } }, "chownr": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true @@ -4958,7 +4958,7 @@ } }, "deep-extend": { - "version": "0.5.1", + "version": "0.6.0", "bundled": true, "dev": true, "optional": true @@ -5007,7 +5007,7 @@ } }, "glob": { - "version": "7.1.2", + "version": "7.1.3", "bundled": true, "dev": true, "optional": true, @@ -5027,12 +5027,12 @@ "optional": true }, "iconv-lite": { - "version": "0.4.21", + "version": "0.4.24", "bundled": true, "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -5097,17 +5097,17 @@ "optional": true }, "minipass": { - "version": "2.2.4", + "version": "2.3.5", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { - "version": "1.1.0", + "version": "1.2.1", "bundled": true, "dev": true, "optional": true, @@ -5131,7 +5131,7 @@ "optional": true }, "needle": { - "version": "2.2.0", + "version": "2.2.4", "bundled": true, "dev": true, "optional": true, @@ -5142,18 +5142,18 @@ } }, "node-pre-gyp": { - "version": "0.10.0", + "version": "0.10.3", "bundled": true, "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", - "needle": "^2.2.0", + "needle": "^2.2.1", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" @@ -5170,13 +5170,13 @@ } }, "npm-bundled": { - "version": "1.0.3", + "version": "1.0.5", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.1.10", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true, @@ -5253,12 +5253,12 @@ "optional": true }, "rc": { - "version": "1.2.7", + "version": "1.2.8", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -5288,16 +5288,16 @@ } }, "rimraf": { - "version": "2.6.2", + "version": "2.6.3", "bundled": true, "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.1.1", + "version": "5.1.2", "bundled": true, "dev": true, "optional": true @@ -5315,7 +5315,7 @@ "optional": true }, "semver": { - "version": "5.5.0", + "version": "5.6.0", "bundled": true, "dev": true, "optional": true @@ -5368,17 +5368,17 @@ "optional": true }, "tar": { - "version": "4.4.1", + "version": "4.4.8", "bundled": true, "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.2" } }, @@ -5389,12 +5389,12 @@ "optional": true }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { @@ -5404,7 +5404,7 @@ "optional": true }, "yallist": { - "version": "3.0.2", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true @@ -6693,9 +6693,9 @@ } }, "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "loader-utils": { @@ -7246,9 +7246,9 @@ } }, "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", "dev": true, "requires": { "assert": "^1.1.1", @@ -7258,7 +7258,7 @@ "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", - "events": "^1.0.0", + "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "0.0.0", @@ -7272,7 +7272,7 @@ "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", - "util": "^0.10.3", + "util": "^0.11.0", "vm-browserify": "0.0.4" }, "dependencies": { @@ -7636,9 +7636,9 @@ "dev": true }, "pako": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", - "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", "dev": true }, "parallel-transform": { @@ -7679,16 +7679,17 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-json": { @@ -7860,14 +7861,14 @@ "dev": true }, "postcss": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.8.tgz", - "integrity": "sha512-WudsIzuTKRw9IInRTPBgVXJ7DKR26HT09Rxp0g3w0Fqh3TUtYICcUmvC0xURj04o3vdcDtnjCAUCECg/p341iQ==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.13.tgz", + "integrity": "sha512-h8SY6kQTd1wISHWjz+E6cswdhMuyBZRb16pSTv3W4zYZ3/YbyWeJdNUeOXB5IdZqE1U76OUEjjjqsC3z2f3hVg==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^6.0.0" + "supports-color": "^6.1.0" }, "dependencies": { "chalk": { @@ -7899,9 +7900,9 @@ "dev": true }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -9513,9 +9514,9 @@ } }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -10499,9 +10500,9 @@ "dev": true }, "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" @@ -10663,9 +10664,9 @@ } }, "vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.8.1.tgz", + "integrity": "sha512-mxBBMuSaPG9+NkVMbh28r8gvWQJ8UXxqDxVNeLy2KBUZiSNxZsagjYwLL8gjROb4oaaYtwRv3K8gAmw76I/U7Q==", "dev": true }, "vuex": { @@ -10708,9 +10709,9 @@ } }, "webpack": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.1.tgz", - "integrity": "sha512-qAS7BFyS5iuOZzGJxyDXmEI289h7tVNtJ5XMxf6Tz55J2riOyH42uaEsWF0F32TRaI+54SmI6qRgHM3GzsZ+sQ==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", + "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.7.11", diff --git a/package.json b/package.json index 51c22a91..38cd3ee4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@vue/cli-plugin-babel": "^3.3.0", "@vue/cli-plugin-eslint": "^3.3.0", - "@vue/cli-service": "^3.3.0", + "@vue/cli-service": "^3.3.1", "babel-eslint": "^10.0.1", "eslint": "^5.12.1", "eslint-plugin-vue": "^5.1.0", From b394540f535b5e9720d7948017bdefe05ef1c7dd Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Wed, 23 Jan 2019 14:48:50 +0000 Subject: [PATCH 070/134] fix: only show size when is file or selection License: MIT Signed-off-by: Henrique Dias --- src/components/prompts/Info.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/prompts/Info.vue b/src/components/prompts/Info.vue index 60bdfdfc..3d1cc0d5 100644 --- a/src/components/prompts/Info.vue +++ b/src/components/prompts/Info.vue @@ -8,7 +8,7 @@

      {{ $t('prompts.filesSelected', { count: selected.length }) }}

      {{ $t('prompts.displayName') }} {{ name }}

      -

      {{ $t('prompts.size') }}: {{ humanSize }}

      +

      {{ $t('prompts.size') }}: {{ humanSize }}

      {{ $t('prompts.lastModified') }}: {{ humanTime }}