├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── config.yml └── stale.yml ├── .gitignore ├── .npmignore ├── CHANGE.md ├── LICENSE.md ├── README.md ├── bower.json ├── composer.json ├── css ├── fileinput-rtl.css ├── fileinput-rtl.min.css ├── fileinput.css └── fileinput.min.css ├── examples ├── index-bs3.html ├── index-bs4.html └── index-bs5.html ├── img ├── loading-sm.gif └── loading.gif ├── js ├── fileinput.js ├── fileinput.min.js ├── locales │ ├── LANG.js │ ├── ar.js │ ├── az.js │ ├── bg.js │ ├── ca.js │ ├── cr.js │ ├── cs.js │ ├── da.js │ ├── de.js │ ├── el.js │ ├── es.js │ ├── et.js │ ├── eu.js │ ├── fa.js │ ├── fi.js │ ├── fr.js │ ├── gl.js │ ├── he.js │ ├── hu.js │ ├── id.js │ ├── it.js │ ├── ja.js │ ├── ka.js │ ├── kr.js │ ├── kz.js │ ├── lt.js │ ├── lv.js │ ├── ms.js │ ├── nl.js │ ├── no.js │ ├── pl.js │ ├── pt-BR.js │ ├── pt.js │ ├── ro.js │ ├── ru.js │ ├── sk.js │ ├── sl.js │ ├── sr-latn.js │ ├── sv.js │ ├── th.js │ ├── tr.js │ ├── uk.js │ ├── ur.js │ ├── uz-Cy.js │ ├── uz.js │ ├── vi.js │ ├── zh-TW.js │ └── zh.js └── plugins │ ├── buffer.js │ ├── buffer.min.js │ ├── filetype.es6.js │ ├── filetype.es6.min.js │ ├── filetype.js │ ├── filetype.min.js │ ├── piexif.js │ ├── piexif.min.js │ ├── sortable.js │ └── sortable.min.js ├── nuget ├── Package.nuspec └── build.bat ├── package.json ├── scss ├── fileinput-rtl.scss ├── fileinput.scss └── themes │ ├── explorer-fa4 │ └── theme.scss │ ├── explorer-fa5 │ └── theme.scss │ ├── explorer-fa6 │ └── theme.scss │ └── explorer │ └── theme.scss └── themes ├── bs5 ├── theme.js └── theme.min.js ├── explorer-fa4 ├── theme.css ├── theme.js ├── theme.min.css └── theme.min.js ├── explorer-fa5 ├── theme.css ├── theme.js ├── theme.min.css └── theme.min.js ├── explorer-fa6 ├── theme.css ├── theme.js ├── theme.min.css └── theme.min.js ├── explorer ├── theme.css ├── theme.js ├── theme.min.css └── theme.min.js ├── fa4 ├── theme.js └── theme.min.js ├── fa5 ├── theme.js └── theme.min.js ├── fa6 ├── theme.js └── theme.min.js └── gly ├── theme.js └── theme.min.js /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | 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. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | 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. 28 | 29 | 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. 30 | 31 | ## Scope 32 | 33 | 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. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at kartikv2@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. 38 | 39 | 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. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing to bootstrap-fileinput 2 | =================================== 3 | Looking to contribute something to bootstrap-fileinput? **Here's how you can help.** 4 | 5 | Please take a moment to review this document in order to make the contribution 6 | process easy and effective for everyone involved. 7 | 8 | Following these guidelines helps to communicate that you respect the time of 9 | the developers managing and developing this open source project. In return, 10 | they should reciprocate that respect in addressing your issue or assessing 11 | patches and features. 12 | 13 | Using the issue tracker 14 | ----------------------- 15 | When [reporting bugs][reporting-bugs] or 16 | [requesting features][requesting-features], the 17 | [issue tracker on GitHub][issue-tracker] is the recommended channel to use. 18 | 19 | The issue tracker **is not** a place for support requests. Refer the 20 | [plugin documentation](http://plugins.krajee.com/file-input), 21 | [plugin demos](http://plugins.krajee.com/file-input/demo), and / or refer to the 22 | [webtips Q & A forum](http://webtips.krajee.com/questions) which are the better places to get help. 23 | 24 | Reporting bugs with bootstrap-fileinput 25 | --------------------------------------- 26 | We really appreciate clear bug reports that _consistently_ show an issue 27 | _within bootstrap-fileinput_. 28 | 29 | The ideal bug report follows these guidelines: 30 | 31 | 1. **Use the [GitHub issue search][issue-search]** — Check if the issue 32 | has already been reported. 33 | 2. **Check if the issue has been fixed** — Try to reproduce the problem 34 | using the code in the `master` branch. 35 | 3. **Isolate the problem** — Try to create an 36 | [isolated js fiddle][isolated-case] that consistently reproduces the problem. 37 | 38 | Please try to be as detailed as possible in your bug report, especially if an 39 | isolated test case cannot be made. Some useful questions to include the answer 40 | to are: 41 | 42 | - What steps can be used to reproduce the issue? 43 | - What is the bug and what is the expected outcome? 44 | - What browser(s) and Operating System have you tested with? 45 | - Does the bug happen consistently across all tested browsers? 46 | - What version of jQuery are you using? And what version of bootstrap-fileinput? 47 | - Are you using bootstrap-fileinput with other plugins? 48 | 49 | All of these questions will help others fix and identify any potential bugs. 50 | 51 | Requesting features in bootstrap-fileinput 52 | ------------------------------------------ 53 | Before starting work on a major feature for bootstrap-fileinput, **read the 54 | [documentation](http://plugins.krajee.com/file-input) first** or you may risk spending a considerable amount of 55 | time on something which the project developers are not interested in bringing into the project. 56 | 57 | ### Submitting a pull request 58 | 59 | We use GitHub's pull request system for submitting patches. Here are some 60 | guidelines to follow when creating the pull request for your fix. 61 | 62 | 1. Make sure to create a ticket for your pull request. This will serve as the 63 | bug ticket, and any discussion about the bug will take place there. Your pull 64 | request will be focused on the specific changes that fix the bug. 65 | 2. Make sure to reference the ticket you are fixing within your pull request. 66 | This will allow us to close off the ticket once we merge the pull request, or 67 | follow up on the ticket if there are any related blocking issues. 68 | 3. Explain why the specific change was made. Not everyone who is reviewing your 69 | pull request will be familiar with the problem it is fixing. 70 | 4. Run your tests first. If your tests aren't passing, the pull request won't 71 | be able to be merged. If you're breaking existing tests, make sure that you 72 | aren't causing any breaking changes. 73 | 5. Only include source changes. While it's not required, only including changes 74 | from the `src` directory will prevent merge conflicts from occuring. Making 75 | this happen can be as a simple as not committing changes from the `dist` 76 | directory. 77 | 78 | By following these steps, you will make it easier for your pull request to be 79 | reviewed and eventually merged. 80 | 81 | Triaging issues and pull requests 82 | --------------------------------- 83 | Anyone can help the project maintainers triage issues and review pull requests. 84 | 85 | ### Handling new issues 86 | 87 | bootstrap-fileinput regularly receives new issues which need to be tested and organized. 88 | 89 | When a new issue that comes in that is similar to another existing issue, it 90 | should be checked to make sure it is not a duplicate. Duplicates issues should 91 | be marked by replying to the issue with "Duplicate of #[issue number]" where 92 | `[issue number]` is the url or issue number for the existing issue. This will 93 | allow the project maintainers to quickly close off additional issues and keep 94 | the discussion focused within a single issue. 95 | 96 | If you can test issues that are reported to bootstrap-fileinput that contain test cases and 97 | confirm under what conditions bugs happen, that will allow others to identify 98 | what causes a bug quicker. 99 | 100 | ### Reviewing pull requests 101 | 102 | It is very common for pull requests to be opened for issues that contain a clear 103 | solution to the problem. These pull requests should be rigorously reviewed by 104 | the community before being accepted. If you are not sure about a piece of 105 | submitted code, or know of a better way to do something, do not hesitate to make 106 | a comment on the pull request. 107 | 108 | ### Reviving old tickets 109 | 110 | If you come across tickets which have not been updated for a while, you are 111 | encouraged to revive them. While this can be as simple as saying `:+1:`, it is 112 | best if you can include more information on the issue. Common bugs and feature 113 | requests are more likely to be fixed, whether it is by the community or the 114 | developers, so keeping tickets up to date is encouraged. 115 | 116 | Licensing 117 | --------- 118 | 119 | It should also be made clear that **all code contributed to bootstrap-fileinput** must be 120 | licensable under the [BSD-3 license][licensing]. Code that cannot be released 121 | under this license **cannot be accepted** into the project. 122 | 123 | [isolated-case]: https://jsfiddle.net/ 124 | [issue-search]: https://github.com/kartik-v/bootstrap-fileinput/search?q=&type=Issues 125 | [issue-tracker]: https://github.com/kartik-v/bootstrap-fileinput/issues 126 | [licensing]: https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 127 | [reporting-bugs]: #reporting-bugs-with-bootstrap-fileinput 128 | [requesting-features]: #requesting-features-in-bootstrap-fileinput -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | # github: [kartik-v] 4 | open_collective: bootstrap-fileinput 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Prerequisites 2 | 3 | - [ ] I have searched for similar issues in both open and closed tickets and cannot find a duplicate. 4 | - [ ] The issue still exists against the latest `master` branch of bootstrap-fileinput. 5 | - [ ] This is not an usage question. I confirm having read the plugin [documentation](http://plugins.krajee.com/file-input) and [demos](http://plugins.krajee.com/file-input/demo). 6 | - [ ] This is not a general programming / coding question. (Those should be directed to the [webtips Q & A forum](http://webtips.krajee.com/questions)). 7 | - [ ] I have attempted to find the simplest possible steps to reproduce the issue. 8 | - [ ] I have included a failing test as a pull request (Optional). 9 | 10 | ## Steps to reproduce the issue 11 | 12 | 1. 13 | 2. 14 | 3. 15 | 16 | ## Expected behavior and actual behavior 17 | 18 | When I follow those steps, I see... 19 | 20 | I was expecting... 21 | 22 | ## Environment 23 | 24 | Browsers 25 | 26 | - [ ] Google Chrome 27 | - [ ] Mozilla Firefox 28 | - [ ] Internet Explorer 29 | - [ ] Safari 30 | 31 | Operating System 32 | 33 | - [ ] Windows 34 | - [ ] Mac OS X 35 | - [ ] Linux 36 | - [ ] Mobile 37 | 38 | Libraries 39 | 40 | - jQuery version: 41 | - bootstrap-fileinput version: 42 | 43 | ## Isolating the problem 44 | 45 | - [ ] This bug happens [on the plugin demos page](http://plugins.krajee.com/file-input/demo) 46 | - [ ] The bug happens consistently across all tested browsers 47 | - [ ] This bug happens when using bootstrap-fileinput without other plugins 48 | - [ ] I can reproduce this bug in [a jsbin](https://jsbin.com/) 49 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Scope 2 | This pull request includes a 3 | 4 | - [ ] Bug fix 5 | - [ ] New feature 6 | - [ ] Translation 7 | 8 | ## Changes 9 | The following changes were made 10 | 11 | - 12 | - 13 | - 14 | 15 | ## Related Issues 16 | If this is related to an existing ticket, include a link to it as well. -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | # Configuration for sentiment-bot - https://github.com/behaviorbot/sentiment-bot 2 | 3 | # *Required* toxicity threshold between 0 and .99 with the higher numbers being the most toxic 4 | # Anything higher than this threshold will be marked as toxic and commented on 5 | sentimentBotToxicityThreshold: .7 6 | 7 | # *Required* Comment to reply with 8 | sentimentBotReplyComment: > 9 | Please be sure to review the code of conduct and be respectful of other users. cc/ @kartik-v -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - bug 8 | - enhancement 9 | - pinned 10 | - security 11 | # Label to use when marking an issue as stale 12 | staleLabel: wontfix 13 | # Comment to post when marking an issue as stale. Set to `false` to disable 14 | markComment: > 15 | This issue has been automatically marked as stale because it has not had 16 | recent activity. It will be closed if no further activity occurs. Thank you 17 | for your contributions. 18 | # Comment to post when closing a stale issue. Set to `false` to disable 19 | closeComment: false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | nuget/content/ 2 | nuget/bootstrap-fileinput.*.nupkg 3 | .DS_Store 4 | .idea -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .git 2 | .github 3 | .DS_Store 4 | .idea 5 | composer.json 6 | bower.json 7 | nuget 8 | examples -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 - 2024, Kartik Visweswaran 2 | Krajee.com 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, this 12 | list of conditions and the following disclaimer in the documentation and/or 13 | other materials provided with the distribution. 14 | 15 | * Neither the names of Kartik Visweswaran or Krajee nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "5.5.5", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "main": [ 10 | "./css/fileinput.min.css", 11 | "./js/fileinput.min.js" 12 | ], 13 | "keywords": [ 14 | "bootstrap", 15 | "file", 16 | "input", 17 | "preview", 18 | "image", 19 | "upload", 20 | "ajax", 21 | "multiple", 22 | "delete", 23 | "progress", 24 | "gallery" 25 | ], 26 | "dependencies": { 27 | "jquery": ">= 1.9.0", 28 | "bootstrap": ">= 3.4.1" 29 | }, 30 | "license": "BSD-3-Clause", 31 | "ignore": [ 32 | "**/.*", 33 | "node_modules", 34 | "composer.json", 35 | "examples", 36 | "bower_components", 37 | "test", 38 | "tests" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kartik-v/bootstrap-fileinput", 3 | "description": "An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.", 4 | "keywords": [ 5 | "bootstrap", 6 | "jquery", 7 | "file", 8 | "input", 9 | "preview", 10 | "upload", 11 | "image", 12 | "multiple", 13 | "ajax", 14 | "delete", 15 | "progress" 16 | ], 17 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 18 | "license": "BSD-3-Clause", 19 | "authors": [ 20 | { 21 | "name": "Kartik Visweswaran", 22 | "email": "kartikv2@gmail.com", 23 | "homepage": "http://www.krajee.com/" 24 | } 25 | ], 26 | "autoload": { 27 | "psr-4": { 28 | "kartik\\plugins\\fileinput\\": "" 29 | } 30 | }, 31 | "extra": { 32 | "branch-alias": { 33 | "dev-master": "5.5.x-dev" 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /css/fileinput-rtl.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee RTL (Right To Left) default styling for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | 14 | .kv-rtl .close, 15 | .kv-rtl .krajee-default .file-actions, 16 | .kv-rtl .krajee-default .file-other-error { 17 | float: left; 18 | } 19 | 20 | .kv-rtl .krajee-default.file-preview-frame, 21 | .kv-rtl .krajee-default .file-drag-handle, 22 | .kv-rtl .krajee-default .file-upload-indicator { 23 | float: right; 24 | } 25 | 26 | .kv-rtl .file-zoom-dialog, 27 | .kv-rtl .file-error-message pre, 28 | .kv-rtl .file-error-message ul { 29 | text-align: right; 30 | } 31 | 32 | .kv-rtl .file-zoom-dialog .kv-desc-hide { 33 | float: left; 34 | } 35 | 36 | .kv-rtl { 37 | direction: rtl; 38 | } 39 | 40 | .kv-rtl .floating-buttons { 41 | left: 10px; 42 | right: auto; 43 | } 44 | 45 | .kv-rtl .floating-buttons .btn-kv { 46 | margin-left: 0; 47 | margin-right: 3px; 48 | } 49 | 50 | .kv-rtl .file-caption-icon { 51 | left: auto; 52 | padding: 0.5rem; 53 | right: 4px; 54 | } 55 | 56 | .kv-rtl .file-drop-zone { 57 | margin: 12px 12px 12px 15px; 58 | } 59 | 60 | .kv-rtl .btn-kv-prev { 61 | right: 0; 62 | left: auto; 63 | } 64 | 65 | .kv-rtl .btn-kv-next { 66 | left: 0; 67 | right: auto; 68 | } 69 | 70 | .kv-rtl .pull-right, 71 | .kv-rtl .float-right { 72 | float: left !important; 73 | } 74 | 75 | .kv-rtl .pull-left, 76 | .kv-rtl .float-left { 77 | float: right !important; 78 | } 79 | 80 | .kv-rtl .kv-zoom-title { 81 | direction: ltr; 82 | } 83 | 84 | .kv-rtl .krajee-default.file-preview-frame { 85 | box-shadow: -1px 1px 5px 0 #a2958a; 86 | } 87 | 88 | .kv-rtl .krajee-default.file-preview-frame:not(.file-preview-error):hover { 89 | box-shadow: -3px 3px 5px 0 #333; 90 | } 91 | 92 | .kv-rtl .kv-zoom-actions .btn-kv { 93 | margin-left: 0; 94 | margin-right: 3px; 95 | } 96 | 97 | .kv-rtl .file-caption.icon-visible .file-caption-name { 98 | padding-left: 0; 99 | padding-right: 30px; 100 | } 101 | 102 | .kv-rtl .input-group > .input-group-btn:last-child > .btn:last-child { 103 | border-radius: 4px 0 0 4px !important; 104 | } 105 | 106 | .kv-rtl .input-group > .input-group-btn:first-child > .btn:first-child { 107 | border-radius: 0 4px 4px 0 !important; 108 | } 109 | 110 | .kv-rtl .input-group > .input-group-append:last-child > .btn:last-child, 111 | .kv-rtl .input-group > .btn:last-child, 112 | .kv-rtl .input-group > .form-control:last-child { 113 | border-radius: 0.25rem 0 0 0.25rem !important; 114 | 115 | } 116 | 117 | .kv-rtl .input-group > .input-group-prepend:first-child > .btn:first-child, 118 | .kv-rtl .input-group > .input-group > .btn:first-child, 119 | .kv-rtl .input-group > .form-control:first-child { 120 | border-radius: 0 0.25rem 0.25rem 0 !important; 121 | } 122 | 123 | .kv-rtl .input-group > .file-caption-icon:first-child ~ .form-control:last-child { 124 | border-radius: 0.25rem !important; 125 | } 126 | 127 | .kv-rtl .btn-file input[type=file] { 128 | left: auto; 129 | right: 0; 130 | text-align: left; 131 | background: none repeat scroll 100% 0 transparent; 132 | } -------------------------------------------------------------------------------- /css/fileinput-rtl.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee RTL (Right To Left) default styling for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */.kv-rtl .close,.kv-rtl .krajee-default .file-actions,.kv-rtl .krajee-default .file-other-error{float:left}.kv-rtl .krajee-default .file-drag-handle,.kv-rtl .krajee-default .file-upload-indicator,.kv-rtl .krajee-default.file-preview-frame{float:right}.kv-rtl .file-error-message pre,.kv-rtl .file-error-message ul,.kv-rtl .file-zoom-dialog{text-align:right}.kv-rtl .file-zoom-dialog .kv-desc-hide{float:left}.kv-rtl{direction:rtl}.kv-rtl .floating-buttons{left:10px;right:auto}.kv-rtl .floating-buttons .btn-kv{margin-left:0;margin-right:3px}.kv-rtl .file-caption-icon{left:auto;padding:.5rem;right:4px}.kv-rtl .file-drop-zone{margin:12px 12px 12px 15px}.kv-rtl .btn-kv-prev{right:0;left:auto}.kv-rtl .btn-kv-next{left:0;right:auto}.kv-rtl .float-right,.kv-rtl .pull-right{float:left!important}.kv-rtl .float-left,.kv-rtl .pull-left{float:right!important}.kv-rtl .kv-zoom-title{direction:ltr}.kv-rtl .krajee-default.file-preview-frame{box-shadow:-1px 1px 5px 0 #a2958a}.kv-rtl .krajee-default.file-preview-frame:not(.file-preview-error):hover{box-shadow:-3px 3px 5px 0 #333}.kv-rtl .kv-zoom-actions .btn-kv{margin-left:0;margin-right:3px}.kv-rtl .file-caption.icon-visible .file-caption-name{padding-left:0;padding-right:30px}.kv-rtl .input-group>.input-group-btn:last-child>.btn:last-child{border-radius:4px 0 0 4px!important}.kv-rtl .input-group>.input-group-btn:first-child>.btn:first-child{border-radius:0 4px 4px 0!important}.kv-rtl .input-group>.btn:last-child,.kv-rtl .input-group>.form-control:last-child,.kv-rtl .input-group>.input-group-append:last-child>.btn:last-child{border-radius:.25rem 0 0 .25rem!important}.kv-rtl .input-group>.form-control:first-child,.kv-rtl .input-group>.input-group-prepend:first-child>.btn:first-child,.kv-rtl .input-group>.input-group>.btn:first-child{border-radius:0 .25rem .25rem 0!important}.kv-rtl .input-group>.file-caption-icon:first-child~.form-control:last-child{border-radius:.25rem!important}.kv-rtl .btn-file input[type=file]{left:auto;right:0;text-align:left;background:100% 0 none} -------------------------------------------------------------------------------- /img/loading-sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kartik-v/bootstrap-fileinput/4d0f58b64f444a7d510504e99524384c2ff5cd65/img/loading-sm.gif -------------------------------------------------------------------------------- /img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kartik-v/bootstrap-fileinput/4d0f58b64f444a7d510504e99524384c2ff5cd65/img/loading.gif -------------------------------------------------------------------------------- /js/locales/LANG.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput <_LANG_> Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['_LANG_'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: 'file', 27 | filePlural: 'files', 28 | browseLabel: 'Browse …', 29 | removeLabel: 'Remove', 30 | removeTitle: 'Clear selected files', 31 | cancelLabel: 'Cancel', 32 | cancelTitle: 'Abort ongoing upload', 33 | pauseLabel: 'Pause', 34 | pauseTitle: 'Pause ongoing upload', 35 | uploadLabel: 'Upload', 36 | uploadTitle: 'Upload selected files', 37 | msgNo: 'No', 38 | msgNoFilesSelected: 'No files selected', 39 | msgPaused: 'Paused', 40 | msgCancelled: 'Cancelled', 41 | msgPlaceholder: 'Select {files} ...', 42 | msgZoomModalHeading: 'Detailed Preview', 43 | msgFileRequired: 'You must select a file to upload.', 44 | msgSizeTooSmall: 'File "{name}" ({size}) is too small and must be larger than {minSize}.', 45 | msgSizeTooLarge: 'File "{name}" ({size}) exceeds maximum allowed upload size of {maxSize}.', 46 | msgMultipleSizeTooLarge: 'Files "{name}" ({size}) exceeds maximum allowed upload size of {maxSize}.', 47 | msgFilesTooLess: 'You must select at least {n} {files} to upload.', 48 | msgFilesTooMany: 'Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}.', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: 'File "{name}" not found!', 51 | msgFileSecured: 'Security restrictions prevent reading the file "{name}".', 52 | msgFileNotReadable: 'File "{name}" is not readable.', 53 | msgFilePreviewAborted: 'File preview aborted for "{name}".', 54 | msgFilePreviewError: 'An error occurred while reading the file "{name}".', 55 | msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', 56 | msgInvalidFileType: 'Invalid type for file "{name}". Only "{types}" files are supported.', 57 | msgInvalidFileExtension: 'Invalid extension for file "{name}". Only "{extensions}" files are supported.', 58 | msgFileTypes: { 59 | 'image': 'image', 60 | 'html': 'HTML', 61 | 'text': 'text', 62 | 'video': 'video', 63 | 'audio': 'audio', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'object' 67 | }, 68 | msgUploadAborted: 'The file upload was aborted', 69 | msgUploadThreshold: 'Processing …', 70 | msgUploadBegin: 'Initializing …', 71 | msgUploadEnd: 'Done', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: 'No valid data available for upload.', 74 | msgUploadError: 'Upload Error', 75 | msgDeleteError: 'Delete Error', 76 | msgProgressError: 'Error', 77 | msgValidationError: 'Validation Error', 78 | msgLoading: 'Loading file {index} of {files} …', 79 | msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.', 80 | msgSelected: '{n} {files} selected', 81 | msgProcessing: 'Processing ...', 82 | msgFoldersNotAllowed: 'Drag & drop files only! Skipped {n} dropped folder(s).', 83 | msgImageWidthSmall: 'Width of image file "{name}" must be at least {size} px (detected {dimension} px).', 84 | msgImageHeightSmall: 'Height of image file "{name}" must be at least {size} px (detected {dimension} px).', 85 | msgImageWidthLarge: 'Width of image file "{name}" cannot exceed {size} px (detected {dimension} px).', 86 | msgImageHeightLarge: 'Height of image file "{name}" cannot exceed {size} px (detected {dimension} px).', 87 | msgImageResizeError: 'Could not get the image dimensions to resize.', 88 | msgImageResizeException: 'Error while resizing the image.
{errors}
', 89 | msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', 90 | msgAjaxProgressError: '{operation} failed', 91 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 92 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 93 | msgPendingTime: '{time} remaining', 94 | msgCalculatingTime: 'calculating time remaining', 95 | ajaxOperations: { 96 | deleteThumb: 'file delete', 97 | uploadThumb: 'file upload', 98 | uploadBatch: 'batch file upload', 99 | uploadExtra: 'form data upload' 100 | }, 101 | dropZoneTitle: 'Drag & drop files here …', 102 | dropZoneClickTitle: '
(or click to select {files})', 103 | fileActionSettings: { 104 | removeTitle: 'Remove file', 105 | uploadTitle: 'Upload file', 106 | uploadRetryTitle: 'Retry upload', 107 | downloadTitle: 'Download file', 108 | rotateTitle: 'Rotate 90 deg. clockwise', 109 | zoomTitle: 'View details', 110 | dragTitle: 'Move / Rearrange', 111 | indicatorNewTitle: 'Not uploaded yet', 112 | indicatorSuccessTitle: 'Uploaded', 113 | indicatorErrorTitle: 'Upload Error', 114 | indicatorPausedTitle: 'Upload Paused', 115 | indicatorLoadingTitle: 'Uploading …' 116 | }, 117 | previewZoomButtonTitles: { 118 | prev: 'View previous file', 119 | next: 'View next file', 120 | rotate: 'Rotate 90 deg. clockwise', 121 | toggleheader: 'Toggle header', 122 | fullscreen: 'Toggle full screen', 123 | borderless: 'Toggle borderless mode', 124 | close: 'Close detailed preview' 125 | } 126 | }; 127 | })); -------------------------------------------------------------------------------- /js/locales/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Arabic Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Yasser Lotfy 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['ar'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: 'ملف', 28 | filePlural: 'ملفات', 29 | browseLabel: 'تصفح …', 30 | removeLabel: 'إزالة', 31 | removeTitle: 'إزالة الملفات المختارة', 32 | cancelLabel: 'إلغاء', 33 | cancelTitle: 'إنهاء الرفع الحالي', 34 | pauseLabel: 'إيقاف مؤقت', 35 | pauseTitle: 'إيقاف التحميل الجاري مؤقتاً', 36 | uploadLabel: 'رفع', 37 | uploadTitle: 'رفع الملفات المختارة', 38 | msgNo: 'لا', 39 | msgNoFilesSelected: '', 40 | msgPaused: 'متوقف مؤقتاً', 41 | msgCancelled: 'ألغيت', 42 | msgPlaceholder: 'إختر {files} ...', 43 | msgZoomModalHeading: 'معاينة تفصيلية', 44 | msgFileRequired: 'يجب عليك تحديد ملف للتحميل.', 45 | msgSizeTooSmall: 'الملف "{name}" ({size}) صغير جداً ويجب أن يكون أكبر من {minSize}.', 46 | msgSizeTooLarge: 'الملف "{name}" ({size}) تعدى الحد الأقصى المسموح للرفع {maxSize}.', 47 | msgMultipleSizeTooLarge: 'الملف "{name}" ({size}) تعدى الحد الأقصى المسموح للرفع {maxSize}.', 48 | msgFilesTooLess: 'يجب عليك اختيار {n} {files} على الأقل للرفع.', 49 | msgFilesTooMany: 'عدد الملفات المختارة للرفع ({n}) تعدت الحد الأقصى المسموح به لعدد {m}.', 50 | msgTotalFilesTooMany: 'يمكنك تحميل كحد أقصى {m} ملفات ({n} ملفات تم الكشف عنها).', 51 | msgFileNotFound: 'الملف "{name}" غير موجود!', 52 | msgFileSecured: 'قيود أمنية تمنع قراءة الملف "{name}".', 53 | msgFileNotReadable: 'الملف "{name}" غير قابل للقراءة.', 54 | msgFilePreviewAborted: 'تم إلغاء معاينة الملف "{name}".', 55 | msgFilePreviewError: 'حدث خطأ أثناء قراءة الملف "{name}".', 56 | msgInvalidFileName: 'أحرف غير صالحة أو غير مدعومة في اسم الملف "{name}".', 57 | msgInvalidFileType: 'نوعية غير صالحة للملف "{name}". فقط هذه النوعيات مدعومة "{types}".', 58 | msgInvalidFileExtension: 'امتداد غير صالح للملف "{name}". فقط هذه الملفات مدعومة "{extensions}".', 59 | msgFileTypes: { 60 | 'image': 'صورة', 61 | 'html': 'HTML', 62 | 'text': 'نص', 63 | 'video': 'فيديو', 64 | 'audio': 'ملف صوتي', 65 | 'flash': 'فلاش', 66 | 'pdf': 'PDF', 67 | 'object': 'كائن' 68 | }, 69 | msgUploadAborted: 'تم إلغاء رفع الملف', 70 | msgUploadThreshold: 'جاري المعالجة …', 71 | msgUploadBegin: 'جاري التهيئة …', 72 | msgUploadEnd: 'تم', 73 | msgUploadResume: 'استئناف التحميل …', 74 | msgUploadEmpty: 'لا توجد بيانات متاحة للتحميل.', 75 | msgUploadError: 'خطأ في التحميل', 76 | msgDeleteError: 'خطأ حذف', 77 | msgProgressError: 'خطأ', 78 | msgValidationError: 'خطأ التحقق من صحة', 79 | msgLoading: 'تحميل ملف {index} من {files} …', 80 | msgProgress: 'تحميل ملف {index} من {files} - {name} - {percent}% منتهي.', 81 | msgSelected: '{n} {files} مختار(ة)', 82 | msgProcessing: 'Processing ...', 83 | msgFoldersNotAllowed: 'اسحب وأفلت الملفات فقط! تم تخطي {n} مجلد(ات).', 84 | msgImageWidthSmall: 'عرض ملف الصورة "{name}" يجب أن يكون على الأقل {size} px (detected {dimension} px).', 85 | msgImageHeightSmall: 'طول ملف الصورة "{name}" يجب أن يكون على الأقل {size} px (detected {dimension} px).', 86 | msgImageWidthLarge: 'عرض ملف الصورة "{name}" لا يمكن أن يتعدى {size} px (detected {dimension} px).', 87 | msgImageHeightLarge: 'طول ملف الصورة "{name}" لا يمكن أن يتعدى {size} px (detected {dimension} px).', 88 | msgImageResizeError: 'لم يتمكن من معرفة أبعاد الصورة لتغييرها.', 89 | msgImageResizeException: 'حدث خطأ أثناء تغيير أبعاد الصورة.
{errors}
', 90 | msgAjaxError: 'حدث خطأ ما في العملية {operation} . الرجاء معاودة المحاولة في وقت لاحق!', 91 | msgAjaxProgressError: '{operation} فشلت', 92 | msgDuplicateFile: 'الملف "{name}" من نفس الحجم "{size}" ك ب" تم بالفعل اختياره في وقت سابق. تخطى التحديد المكرر.', 93 | msgResumableUploadRetriesExceeded: 'تم إحباط التحميل بعد {max} محاولات للملف {file}! تفاصيل الخطأ:
{error}
', 94 | msgPendingTime: '{time} متبقي', 95 | msgCalculatingTime: 'حساب الوقت المتبقي', 96 | ajaxOperations: { 97 | deleteThumb: 'ملف حذف', 98 | uploadThumb: 'ملف تحميل', 99 | uploadBatch: 'تحميل ملف دفعة واحدة', 100 | uploadExtra: 'تحميل بيانات نموذج' 101 | }, 102 | dropZoneTitle: 'اسحب وأفلت الملفات هنا …', 103 | dropZoneClickTitle: '
(أو انقر لتحديد {files})', 104 | fileActionSettings: { 105 | removeTitle: 'إزالة الملف', 106 | uploadTitle: 'رفع الملف', 107 | uploadRetryTitle: 'إعادة محاولة التحميل', 108 | downloadTitle: 'تنزيل الملف', 109 | rotateTitle: 'Rotate 90 deg. clockwise', 110 | zoomTitle: 'مشاهدة التفاصيل', 111 | dragTitle: 'نقل / إعادة ترتيب', 112 | indicatorNewTitle: 'لم يتم الرفع بعد', 113 | indicatorSuccessTitle: 'تم الرفع', 114 | indicatorErrorTitle: 'خطأ بالرفع', 115 | indicatorPausedTitle: 'توقف التحميل مؤقتاً', 116 | indicatorLoadingTitle: 'جارٍ الرفع …' 117 | }, 118 | previewZoomButtonTitles: { 119 | prev: 'عرض الملف السابق', 120 | next: 'عرض الملف التالي', 121 | rotate: 'Rotate 90 deg. clockwise', 122 | toggleheader: 'تبديل الرأسية', 123 | fullscreen: 'تبديل ملء الشاشة', 124 | borderless: 'تبديل وضع بلا حدود', 125 | close: 'إغلاق المعاينة التفصيلية' 126 | } 127 | }; 128 | })); 129 | -------------------------------------------------------------------------------- /js/locales/et.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Estonian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['et'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: 'fail', 27 | filePlural: 'failid', 28 | browseLabel: 'Sirvi …', 29 | removeLabel: 'Eemalda', 30 | removeTitle: 'Eemalda valitud failid', 31 | cancelLabel: 'Tühista', 32 | cancelTitle: 'Katkesta käimasolev üleslaadimine', 33 | pauseLabel: 'Peata', 34 | pauseTitle: 'Peata käimasolev üleslaadimine', 35 | uploadLabel: 'Salvesta', 36 | uploadTitle: 'Salvesta valitud failid', 37 | msgNo: 'Ei', 38 | msgNoFilesSelected: 'Faile pole valitud', 39 | msgPaused: 'Peatatud', 40 | msgCancelled: 'Tühistatud', 41 | msgPlaceholder: 'Vali {files} ...', 42 | msgZoomModalHeading: 'Detailne eelvaade', 43 | msgFileRequired: 'Faili üleslaadimiseks tuleb valida fail.', 44 | msgSizeTooSmall: 'Fail "{name}" ({size}) on liiga väike ja peab olema suurem kui {minSize}.', 45 | msgSizeTooLarge: 'Fail "{name}" ({size}) ületab maksimaalse lubatud suuruse {maxSize}.', 46 | msgMultipleSizeTooLarge: 'Fail "{name}" ({size}) ületab maksimaalse lubatud suuruse {maxSize}.', 47 | msgFilesTooLess: 'Üleslaadimiseks tuleb valida vähemalt {n} {files}.', 48 | msgFilesTooMany: 'Valitud failide arv ({n}) ületab lubatud maksimumi {m}.', 49 | msgTotalFilesTooMany: 'Maksimaalne lubatud failide arv on {m} (tuvastatud faile: {n}).', 50 | msgFileNotFound: 'Faili "{name}" ei leitud!', 51 | msgFileSecured: 'Turvapiirangud ei luba faili "{name}" lugeda.', 52 | msgFileNotReadable: 'Fail "{name}" pole loetav.', 53 | msgFilePreviewAborted: 'Faili eelvaade katkestati failil "{name}".', 54 | msgFilePreviewError: 'Tekkis viga faili "{name}" lugemisel.', 55 | msgInvalidFileName: 'Failinimes "{name}" on keelatud või toetamatud sümbolid.', 56 | msgInvalidFileType: 'Fail "{name}" on vale tüüpi. Lubatud ainult "{types}" tüübid.', 57 | msgInvalidFileExtension: 'Failil "{name}" on vale laiend. Lubatud ainult "{extensions}" laiendid.', 58 | msgFileTypes: { 59 | 'image': 'pilt', 60 | 'html': 'HTML', 61 | 'text': 'tekst', 62 | 'video': 'video', 63 | 'audio': 'heli', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'objekt' 67 | }, 68 | msgUploadAborted: 'Faili üleslaadimine katkestati', 69 | msgUploadThreshold: 'Töötlen …', 70 | msgUploadBegin: 'Alustan …', 71 | msgUploadEnd: 'Valmis', 72 | msgUploadResume: 'Taastan üleslaadimist …', 73 | msgUploadEmpty: 'Üleslaadimiseks pole kehtivaid andmeid.', 74 | msgUploadError: 'Üleslaadimisviga', 75 | msgDeleteError: 'Kustutamisviga', 76 | msgProgressError: 'Viga', 77 | msgValidationError: 'Valideerimisviga', 78 | msgLoading: 'Laen faili {index} {files} …', 79 | msgProgress: 'Laen faili {index} {files} - {name} - {percent}% valmis.', 80 | msgSelected: 'Valitud {n} {files}', 81 | msgFoldersNotAllowed: 'Lohista ainult faile! {n} lohistatud kaust(ad) jäeti vahele.', 82 | msgImageWidthSmall: 'Pildi laius peab olema vähemalt {size} px (tuvastatud {dimension} px).', 83 | msgImageHeightSmall: 'Pildi kõrgus peab olema vähemalt {size} px (tuvastatud {dimension} px).', 84 | msgImageWidthLarge: 'Pildi "{name}" laius ei tohi ületada {size} px (tuvastatud {dimension} px).', 85 | msgImageHeightLarge: 'Pildi "{name}" kõrgus ei tohi ületada {size} px (tuvastatud {dimension} px).', 86 | msgImageResizeError: 'Ei õnnestunud hankida pildi mõõtmeid suuruse muutmiseks.', 87 | msgImageResizeException: 'Tekkis viga pildi suuruse muutmisel.
{errors}
', 88 | msgAjaxError: 'Midagi läks valesti toimingu {operation} käigus. Proovige hiljem uuesti!', 89 | msgAjaxProgressError: '{operation} ebaõnnestus', 90 | msgDuplicateFile: 'Fail "{name}" suurusega "{size}" on juba varem valitud. Korduv valik jäetakse vahele.', 91 | msgResumableUploadRetriesExceeded: 'Üleslaadimine katkestati pärast {max} katset faili {file} jaoks! Veateave:
{error}
', 92 | msgPendingTime: 'Jäänud aeg: {time}', 93 | msgCalculatingTime: 'arvutan järelejäänud aega', 94 | ajaxOperations: { 95 | deleteThumb: 'faili kustutamine', 96 | uploadThumb: 'faili üleslaadimine', 97 | uploadBatch: 'mitme failide üleslaadimine', 98 | uploadExtra: 'ekstra andmete üleslaadimine' 99 | }, 100 | dropZoneTitle: 'Lohista failid siia …', 101 | dropZoneClickTitle: '
(või kikki, et valida {files})', 102 | fileActionSettings: { 103 | removeTitle: 'Eemalda fail', 104 | uploadTitle: 'Salvesta fail', 105 | uploadRetryTitle: 'Proovi üleslaadimist uuesti', 106 | rotateTitle: 'Pööra 90 kraadi päripäeva', 107 | zoomTitle: 'Vaata detaile', 108 | dragTitle: 'Liiguta / Korralda', 109 | indicatorNewTitle: 'Pole veel üles laetud', 110 | indicatorSuccessTitle: 'Üles laaditud', 111 | indicatorErrorTitle: 'Salvestamise viga', 112 | indicatorPausedTitle: 'Üleslaadimine peatatud', 113 | indicatorLoadingTitle: 'Laen üles …' 114 | }, 115 | previewZoomButtonTitles: { 116 | prev: 'Vaata eelmist faili', 117 | next: 'Vaata järgmist faili', 118 | rotate: 'Pööra 90 kraadi päripäeva', 119 | toggleheader: 'Peida/näita päist', 120 | fullscreen: 'Täisekraani režiim', 121 | borderless: 'Ilma piirjoonteta režiim', 122 | close: 'Sulge detailide eelvaade' 123 | } 124 | }; 125 | })); 126 | -------------------------------------------------------------------------------- /js/locales/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Hebrew Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Daniel Coryat 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['he'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: 'קובץ', 28 | filePlural: 'קבצים', 29 | browseLabel: 'העלאה …', 30 | removeLabel: 'הסרה', 31 | removeTitle: 'נקה קבצים נבחרים', 32 | cancelLabel: 'ביטול', 33 | cancelTitle: 'ביטול העלאה מתמשכת', 34 | pauseLabel: 'Pause', 35 | pauseTitle: 'Pause ongoing upload', 36 | uploadLabel: 'טעינה', 37 | uploadTitle: 'טעינת קבצים נבחרים', 38 | msgNo: 'לא', 39 | msgNoFilesSelected: 'לא נבחרו קבצים', 40 | msgPaused: 'Paused', 41 | msgCancelled: 'מבוטל', 42 | msgPlaceholder: 'בחר {files} ...', 43 | msgZoomModalHeading: 'תצוגה מקדימה מפורטת', 44 | msgSizeTooSmall: 'קובץ "{name}" ({size}) קטן מדי וחייב להיות גדול מ {minSize}.', 45 | msgSizeTooLarge: 'קובץ "{name}" ({size}) חורג מהגודל המרבי המותר להעלאה של {maxSize}.', 46 | msgMultipleSizeTooLarge: 'קובץ "{name}" ({size}) חורג מהגודל המרבי המותר להעלאה של {maxSize}.', 47 | msgFilesTooLess: 'עליך לבחור לפחות {n} {files} להעלאה.', 48 | msgFilesTooMany: 'מספר הקבצים שנבחרו להעלאה ({n}) חורג מהמגבלה המרבית המותרת של {m}.', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: 'קובץ "{name}" לא נמצא!', 51 | msgFileSecured: 'הגבלות אבטחה מונעות קריאת הקובץ "{name}".', 52 | msgFileNotReadable: 'קובץ "{name}" לא קריא.', 53 | msgFilePreviewAborted: 'תצוגה מקדימה של הקובץ בוטלה עבור "{name}".', 54 | msgFilePreviewError: 'אירעה שגיאה בעת קריאת הקובץ "{name}".', 55 | msgInvalidFileName: 'תווים לא חוקיים או לא נתמכים בשם הקובץ "{name}".', 56 | msgInvalidFileType: 'סוג קובץ לא חוקי "{name}". רק "{types}" קבצים נתמכים.', 57 | msgInvalidFileExtension: 'תוסף לא חוקי עבור הקובץ "{name}". רק "{extensions}" קבצים נתמכים.', 58 | msgFileTypes: { 59 | 'image': 'תמונה', 60 | 'html': 'HTML', 61 | 'text': 'טקסט', 62 | 'video': 'וידאו', 63 | 'audio': 'שמע', 64 | 'flash': 'פלאש', 65 | 'pdf': 'PDF', 66 | 'object': 'אובייקט' 67 | }, 68 | msgUploadAborted: 'העלאת הקובץ בוטלה', 69 | msgUploadThreshold: 'מעבד …', 70 | msgUploadBegin: 'מאתחל …', 71 | msgUploadEnd: 'בוצע', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: 'אין נתונים זמינים להעלאה.', 74 | msgValidationError: 'שגיאת אימות', 75 | msgLoading: 'טוען קובץ {index} של {files} …', 76 | msgProgress: 'טוען קובץ {index} של {files} - {name} - {percent}% הושלמה.', 77 | msgSelected: '{n} {files} נבחרו', 78 | msgProcessing: 'Processing ...', 79 | msgFoldersNotAllowed: 'גרירת קבצים ושחרורם בלבד! דילוג {n} גרירת תיקיה(s).', 80 | msgImageWidthSmall: 'רוחב קובץ התמונה "{name}" חייב להיות לפחות {size} px (detected {dimension} px).', 81 | msgImageHeightSmall: 'גובה קובץ התמונה "{name}" חייב להיות לפחות {size} px (detected {dimension} px).', 82 | msgImageWidthLarge: 'רוחב קובץ התמונה "{name}" לא יעלה על {size} px (detected {dimension} px).', 83 | msgImageHeightLarge: 'גובה קובץ התמונה "{name}" לא יעלה על {size} px (detected {dimension} px).', 84 | msgImageResizeError: 'לא ניתן לשנות את גודל מידות התמונה.', 85 | msgImageResizeException: 'שגיאה בעת שינוי גודל התמונה.
{errors}
', 86 | msgAjaxError: 'משהו השתבש עם {operation} המערכת. יש לנסות מאוחר יותר!', 87 | msgAjaxProgressError: '{operation} נכשל', 88 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 89 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 90 | msgPendingTime: '{time} remaining', 91 | msgCalculatingTime: 'calculating time remaining', 92 | ajaxOperations: { 93 | deleteThumb: 'קובץ נמחק', 94 | uploadThumb: 'קובץ הועלה', 95 | uploadBatch: 'קובץ אצווה הועלה', 96 | uploadExtra: 'העלאת נתונים בטופס' 97 | }, 98 | dropZoneTitle: 'גרירת קבצים ושחרורם כאן …', 99 | dropZoneClickTitle: '
(או לחץ /י כדי לבחור {files})', 100 | fileActionSettings: { 101 | removeTitle: 'הסרת קובץ', 102 | uploadTitle: 'טעינת קובץ', 103 | rotateTitle: 'Rotate 90 deg. clockwise', 104 | zoomTitle: 'הצגת פרטים', 105 | dragTitle: 'העברה / סידור מחדש', 106 | indicatorNewTitle: 'עדיין לא הועלה', 107 | indicatorSuccessTitle: 'הועלה', 108 | indicatorErrorTitle: 'שגיאת העלאה', 109 | indicatorPausedTitle: 'Upload Paused', 110 | indicatorLoadingTitle: 'מעלה …' 111 | }, 112 | previewZoomButtonTitles: { 113 | prev: 'הצגת את הקובץ הקודם', 114 | next: 'הצגת את הקובץ הבא', 115 | rotate: 'Rotate 90 deg. clockwise', 116 | toggleheader: 'שינוי כותרת', 117 | fullscreen: 'מעבר למסך מלא', 118 | borderless: 'שינוי המודל ללא שוליים', 119 | close: 'סגירת תצוגה מקדימה מפורטת' 120 | } 121 | }; 122 | })); 123 | -------------------------------------------------------------------------------- /js/locales/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Japanese Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Yuta Hoshina 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | * slugCallback 12 | * \u4e00-\u9fa5 : Kanji (Chinese characters) 13 | * \u3040-\u309f : Hiragana (Japanese syllabary) 14 | * \u30a0-\u30ff\u31f0-\u31ff : Katakana (including phonetic extension) 15 | * \u3200-\u32ff : Enclosed CJK Letters and Months 16 | * \uff00-\uffef : Halfwidth and Fullwidth Forms 17 | */ 18 | (function (factory) { 19 | 'use strict'; 20 | if (typeof define === 'function' && define.amd) { 21 | define(['jquery'], factory); 22 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 23 | factory(require('jquery')); 24 | } else { 25 | factory(window.jQuery); 26 | } 27 | }(function ($) { 28 | "use strict"; 29 | 30 | $.fn.fileinputLocales['ja'] = { 31 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 32 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 33 | fileSingle: 'ファイル', 34 | filePlural: 'ファイル', 35 | browseLabel: 'ファイルを選択 …', 36 | removeLabel: '削除', 37 | removeTitle: '選択したファイルを削除', 38 | cancelLabel: 'キャンセル', 39 | cancelTitle: 'アップロードをキャンセル', 40 | pauseLabel: 'Pause', 41 | pauseTitle: 'Pause ongoing upload', 42 | uploadLabel: 'アップロード', 43 | uploadTitle: '選択したファイルをアップロード', 44 | msgNo: 'いいえ', 45 | msgNoFilesSelected: 'ファイルが選択されていません', 46 | msgPaused: 'Paused', 47 | msgCancelled: 'キャンセル', 48 | msgPlaceholder: 'Select {files} ...', 49 | msgZoomModalHeading: 'プレビュー', 50 | msgFileRequired: 'ファイルを選択してください', 51 | msgSizeTooSmall: 'ファイル"{name}" ({size})はアップロード可能な下限容量{minSize}より小さいです', 52 | msgSizeTooLarge: 'ファイル"{name}" ({size})はアップロード可能な上限容量{maxSize}を超えています', 53 | msgMultipleSizeTooLarge: 'ファイル"{name}" ({size})はアップロード可能な上限容量{maxSize}を超えています', 54 | msgFilesTooLess: '最低{n}個の{files}を選択してください', 55 | msgFilesTooMany: '選択したファイルの数({n}個)はアップロード可能な上限数({m}個)を超えています', 56 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 57 | msgFileNotFound: 'ファイル"{name}"はありませんでした', 58 | msgFileSecured: 'ファイル"{name}"は読み取り権限がないため取得できません', 59 | msgFileNotReadable: 'ファイル"{name}"は読み込めません', 60 | msgFilePreviewAborted: 'ファイル"{name}"のプレビューを中止しました', 61 | msgFilePreviewError: 'ファイル"{name}"の読み込み中にエラーが発生しました', 62 | msgInvalidFileName: 'ファイル名に無効な文字が含まれています "{name}".', 63 | msgInvalidFileType: '"{name}"は無効なファイル形式です。"{types}"形式のファイルのみサポートしています', 64 | msgInvalidFileExtension: '"{name}"は無効な拡張子です。拡張子が"{extensions}"のファイルのみサポートしています', 65 | msgFileTypes: { 66 | 'image': 'image', 67 | 'html': 'HTML', 68 | 'text': 'text', 69 | 'video': 'video', 70 | 'audio': 'audio', 71 | 'flash': 'flash', 72 | 'pdf': 'PDF', 73 | 'object': 'object' 74 | }, 75 | msgUploadAborted: 'ファイルのアップロードが中止されました', 76 | msgUploadThreshold: '処理中 …', 77 | msgUploadBegin: '初期化中 …', 78 | msgUploadEnd: '完了', 79 | msgUploadResume: 'Resuming upload …', 80 | msgUploadEmpty: 'アップロードに有効なデータがありません', 81 | msgUploadError: 'Upload Error', 82 | msgDeleteError: 'Delete Error', 83 | msgProgressError: 'エラー', 84 | msgValidationError: '検証エラー', 85 | msgLoading: '{files}個中{index}個目のファイルを読み込み中 …', 86 | msgProgress: '{files}個中{index}個のファイルを読み込み中 - {name} - {percent}% 完了', 87 | msgSelected: '{n}個の{files}を選択', 88 | msgFoldersNotAllowed: 'ドラッグ&ドロップが可能なのはファイルのみです。{n}個のフォルダ-は無視されました', 89 | msgImageWidthSmall: '画像ファイル"{name}"の幅が小さすぎます。画像サイズの幅は少なくとも{size}px必要です', 90 | msgImageHeightSmall: '画像ファイル"{name}"の高さが小さすぎます。画像サイズの高さは少なくとも{size}px必要です', 91 | msgImageWidthLarge: '画像ファイル"{name}"の幅がアップロード可能な画像サイズ({size}px)を超えています', 92 | msgImageHeightLarge: '画像ファイル"{name}"の高さがアップロード可能な画像サイズ({size}px)を超えています', 93 | msgImageResizeError: 'リサイズ時に画像サイズが取得できませんでした', 94 | msgImageResizeException: '画像のリサイズ時にエラーが発生しました。
{errors}
', 95 | msgAjaxError: '{operation}実行中にエラーが発生しました。時間をおいてもう一度お試しください。', 96 | msgAjaxProgressError: '{operation} failed', 97 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 98 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 99 | msgPendingTime: '{time} remaining', 100 | msgCalculatingTime: 'calculating time remaining', 101 | ajaxOperations: { 102 | deleteThumb: 'ファイル削除', 103 | uploadThumb: 'ファイルアップロード', 104 | uploadBatch: '一括ファイルアップロード', 105 | uploadExtra: 'フォームデータアップロード' 106 | }, 107 | dropZoneTitle: 'ファイルをドラッグ&ドロップ …', 108 | dropZoneClickTitle: '
(または クリックして{files}を選択 )', 109 | slugCallback: function(text) { 110 | return text ? text.split(/(\\|\/)/g).pop().replace(/[^\w\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\u31f0-\u31ff\u3200-\u32ff\uff00-\uffef\-.\\\/ ]+/g, '') : ''; 111 | }, 112 | fileActionSettings: { 113 | removeTitle: 'ファイルを削除', 114 | uploadTitle: 'ファイルをアップロード', 115 | uploadRetryTitle: '再アップロード', 116 | rotateTitle: 'Rotate 90 deg. clockwise', 117 | zoomTitle: 'プレビュー', 118 | dragTitle: '移動 / 再配置', 119 | indicatorNewTitle: 'まだアップロードされていません', 120 | indicatorSuccessTitle: 'アップロード済み', 121 | indicatorErrorTitle: 'アップロード失敗', 122 | indicatorPausedTitle: 'Upload Paused', 123 | indicatorLoadingTitle: 'アップロード中 …' 124 | }, 125 | previewZoomButtonTitles: { 126 | prev: '前のファイルを表示', 127 | next: '次のファイルを表示', 128 | rotate: 'Rotate 90 deg. clockwise', 129 | toggleheader: 'ファイル情報の表示/非表示', 130 | fullscreen: 'フルスクリーン表示の開始/終了', 131 | borderless: 'フルウィンドウ表示の開始/終了', 132 | close: 'プレビューを閉じる' 133 | } 134 | }; 135 | })); 136 | -------------------------------------------------------------------------------- /js/locales/kr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Korean Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['kr'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: '파일', 27 | filePlural: '파일들', 28 | browseLabel: '찾아보기 …', 29 | removeLabel: '지우기', 30 | removeTitle: '선택한 파일들 지우기', 31 | cancelLabel: '취소', 32 | cancelTitle: '진행중인 업로드 중단', 33 | pauseLabel: 'Pause', 34 | pauseTitle: 'Pause ongoing upload', 35 | uploadLabel: '업로드', 36 | uploadTitle: '선택한 파일 업로드', 37 | msgNo: '아니요', 38 | msgNoFilesSelected: '선택한 파일이 없습니다', 39 | msgPaused: 'Paused', 40 | msgCancelled: '취소되었습니다', 41 | msgPlaceholder: '{files} 선택 …', 42 | msgZoomModalHeading: '세부 정보', 43 | msgFileRequired: '업로드를 위해 반드시 파일을 선택해야 합니다.', 44 | msgSizeTooSmall: '파일 "{name}" ({size})이 너무 작습니다. {minSize}보다 용량이 커야 합니다..', 45 | msgSizeTooLarge: '파일 "{name}" ({size})이 너무 큽니다. 허용 파일 사이즈는 {maxSize}.입니다.', 46 | msgMultipleSizeTooLarge: '파일 "{name}" ({size})이 너무 큽니다. 허용 파일 사이즈는 {maxSize}.입니다.', 47 | msgFilesTooLess: '업로드하기 위해 최소 {n} {files}개의 파일을 선택해야 합니다.', 48 | msgFilesTooMany: '선택한 파일의 수 ({n})가 업로드 허용 최고치인 {m}를 넘었습니다..', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: '파일 "{name}"을 찾을 수 없습니다.!', 51 | msgFileSecured: '보안상의 이유로 "{name}"을/를 읽을 수 없습니다..', 52 | msgFileNotReadable: '"{name}"은/는 읽을 수 없습니다.', 53 | msgFilePreviewAborted: '"{name}"의 미리보기가 중단되었습니다.', 54 | msgFilePreviewError: '"{name}"을/를 읽는 도중 에러가 발생했습니다.', 55 | msgInvalidFileName: '파일 이름 "{name}" 중 지원 불가능한 문자가 포함되어 있습니다.', 56 | msgInvalidFileType: '"{name}"의 타입은 지원하지 않습니다. "{types}" 타입의 파일을 선택해 주십시요.', 57 | msgInvalidFileExtension: '"{name}"의 확장자는 지원하지 않습니다. "{extensions}" 확장자를 선택해 주십시요.', 58 | msgFileTypes: { 59 | 'image': 'image', 60 | 'html': 'HTML', 61 | 'text': 'text', 62 | 'video': 'video', 63 | 'audio': 'audio', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'object' 67 | }, 68 | msgUploadAborted: '파일 업로드가 중단되었습니다', 69 | msgUploadThreshold: '처리하는 중 …', 70 | msgUploadBegin: '초기화 중 …', 71 | msgUploadEnd: '완료', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: '업로드 가능한 데이터가 존재하지 않습니다.', 74 | msgUploadError: 'Upload Error', 75 | msgDeleteError: 'Delete Error', 76 | msgProgressError: '오류', 77 | msgValidationError: '유효성 오류', 78 | msgLoading: '{index}/{files}번째 파일을 불러오는 중입니다. …', 79 | msgProgress: '{index}/{files} - {name} - {percent}% 불러오기 완료.', 80 | msgSelected: '{n} {files}이 선택 되었습니다.', 81 | msgFoldersNotAllowed: '파일만 마우스로 끌어올 수 있습니다! 끌어온 폴더는 건너뜁니다.', 82 | msgImageWidthSmall: '"{name}"의 가로는 {size} px (detected {dimension} px) 보다 넓어야 합니다.', 83 | msgImageHeightSmall: '"{name}"의 세로는 {size} px (detected {dimension} px) 보다 높아야 합니다.', 84 | msgImageWidthLarge: '"{name}"의 가로는 {size} px (detected {dimension} px)를 넘을 수 없습니다.', 85 | msgImageHeightLarge: '"{name}"의 세로는 {size} px (detected {dimension} px)를 넘을 수 없습니다.', 86 | msgImageResizeError: '이미지의 치수를 가져올 수 없습니다', 87 | msgImageResizeException: '이미지 사이즈 재조정이 다음 이유로 실패했습니다.
{errors}
', 88 | msgAjaxError: '{operation} 실행 도중 실패했습니다. 잠시 후 다시 시도해 주세요!', 89 | msgAjaxProgressError: '{operation} failed', 90 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 91 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 92 | msgPendingTime: '{time} remaining', 93 | msgCalculatingTime: 'calculating time remaining', 94 | ajaxOperations: { 95 | deleteThumb: 'file delete', 96 | uploadThumb: 'file upload', 97 | uploadBatch: 'batch file upload', 98 | uploadExtra: 'form data upload' 99 | }, 100 | dropZoneTitle: '마우스로 파일을 끌어오세요 …', 101 | dropZoneClickTitle: '
(또는 {files} 선택을 위해 클릭하십시요)', 102 | fileActionSettings: { 103 | removeTitle: '파일 지우기', 104 | uploadTitle: '파일 업로드', 105 | uploadRetryTitle: '업로드 재시도', 106 | downloadTitle: '파일 다운로드', 107 | rotateTitle: 'Rotate 90 deg. clockwise', 108 | zoomTitle: '세부 정보 보기', 109 | dragTitle: '옮기기 / 재배열하기', 110 | indicatorNewTitle: '아직 업로드 되지 않았습니다', 111 | indicatorSuccessTitle: '업로드 성공', 112 | indicatorErrorTitle: '업로드 중 에러 발생', 113 | indicatorPausedTitle: 'Upload Paused', 114 | indicatorLoadingTitle: '업로드 중 …' 115 | }, 116 | previewZoomButtonTitles: { 117 | prev: '이전 파일', 118 | next: '다음 파일', 119 | rotate: 'Rotate 90 deg. clockwise', 120 | toggleheader: '머릿글 토글', 121 | fullscreen: '전체화면 토글', 122 | borderless: '창 테두리 토글', 123 | close: '세부 정보 닫기' 124 | } 125 | }; 126 | })); 127 | -------------------------------------------------------------------------------- /js/locales/kz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Kazakh Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Kali Toleugazy 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['kz'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: 'файл', 28 | filePlural: 'файлдар', 29 | browseLabel: 'Таңдау …', 30 | removeLabel: 'Жою', 31 | removeTitle: 'Таңдалған файлдарды жою', 32 | cancelLabel: 'Күшін жою', 33 | cancelTitle: 'Ағымдағы жүктеуді болдырмау', 34 | pauseLabel: 'Pause', 35 | pauseTitle: 'Pause ongoing upload', 36 | uploadLabel: 'Жүктеу', 37 | uploadTitle: 'Таңдалған файлдарды жүктеу', 38 | msgNo: 'жоқ', 39 | msgNoFilesSelected: 'Файл таңдалмады', 40 | msgPaused: 'Paused', 41 | msgCancelled: 'Күші жойылған', 42 | msgPlaceholder: 'Select {files} ...', 43 | msgZoomModalHeading: 'Алдын ала толық көру', 44 | msgSizeTooLarge: 'Файл "{name}" ({size}) ең үлкен {maxSize} өлшемінен асады.', 45 | msgMultipleSizeTooLarge: 'Файл "{name}" ({size}) ең үлкен {maxSize} өлшемінен асады.', 46 | msgFilesToooLess: 'Жүктеу үшіy кемінде {n} {files} таңдау керек.', 47 | msgFilesTooMany: 'Таңдалған ({n}) файлдардың саны берілген {m} саннан асып кетті.', 48 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 49 | msgFileNotFound: 'Файл "{name}" табылмады!', 50 | msgFileSecured: 'Шектеу қауіпсіздігі "{name}" файлын оқуға тыйым салады.', 51 | msgFileNotReadable: '"{name}" файлды оқу мүмкін емес.', 52 | msgFilePreviewAborted: '"{name}" файл үшін алдын ала қарап көру тыйым салынған.', 53 | msgFilePreviewError: '"{name}" файлды оқығанда қате пайда болды.', 54 | msgInvalidFileType: '"{name}" тыйым салынған файл түрі. Тек мынаналарға рұқсат етілген: "{types}"', 55 | msgInvalidFileExtension: '"{name}" тыйым салынған файл кеңейтімі. Тек "{extensions}" рұқсат.', 56 | msgUploadAborted: 'Файлды жүктеу доғарылды', 57 | msgUploadThreshold: 'Өңдеу …', 58 | msgUploadBegin: 'Initializing …', 59 | msgUploadEnd: 'Done', 60 | msgUploadResume: 'Resuming upload …', 61 | msgUploadEmpty: 'No valid data available for upload.', 62 | msgUploadError: 'Upload Error', 63 | msgDeleteError: 'Delete Error', 64 | msgProgressError: 'Error', 65 | msgValidationError: 'Тексеру қатесі', 66 | msgLoading: '{index} файлды {files} … жүктеу', 67 | msgProgress: '{index} файлды {files} - {name} - {percent}% жүктеу аяқталды.', 68 | msgSelected: 'Таңдалған файлдар саны: {n}', 69 | msgFoldersNotAllowed: 'Тек файлдарды сүйреу рұқсат! {n} папка өткізілген.', 70 | msgImageWidthSmall: '{name} суреттің ені {size} px (detected {dimension} px). аз болмау керек', 71 | msgImageHeightSmall: '{name} суреттің биіктігі {size} px (detected {dimension} px). аз болмау керек', 72 | msgImageWidthLarge: '"{name}" суреттің ені {size} px (detected {dimension} px). аспау керек', 73 | msgImageHeightLarge: '"{name}" суреттің биіктігі {size} px (detected {dimension} px). аспау керек', 74 | msgImageResizeError: 'Суреттің өлшемін өзгерту үшін, мөлшері алынбады', 75 | msgImageResizeException: 'Суреттің мөлшерлерін өзгерткен кезде қателік пайда болды.
{errors}
', 76 | msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', 77 | msgAjaxProgressError: '{operation} failed', 78 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 79 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 80 | msgPendingTime: '{time} remaining', 81 | msgCalculatingTime: 'calculating time remaining', 82 | ajaxOperations: { 83 | deleteThumb: 'file delete', 84 | uploadThumb: 'file upload', 85 | uploadBatch: 'batch file upload', 86 | uploadExtra: 'form data upload' 87 | }, 88 | dropZoneTitle: 'Файлдарды осында сүйреу …', 89 | dropZoneClickTitle: '
(or click to select {files})', 90 | fileActionSettings: { 91 | removeTitle: 'Файлды өшіру', 92 | uploadTitle: 'Файлды жүктеу', 93 | uploadRetryTitle: 'Retry upload', 94 | downloadTitle: 'Download file', 95 | rotateTitle: 'Rotate 90 deg. clockwise', 96 | zoomTitle: 'мәліметтерді көру', 97 | dragTitle: 'Орнын ауыстыру', 98 | indicatorNewTitle: 'Жүктелген жоқ', 99 | indicatorSuccessTitle: 'Жүктелген', 100 | indicatorErrorTitle: 'Жүктелу қатесі ', 101 | indicatorPausedTitle: 'Upload Paused', 102 | indicatorLoadingTitle: 'Жүктелу …' 103 | }, 104 | previewZoomButtonTitles: { 105 | prev: 'Алдыңғы файлды қарау', 106 | next: 'Келесі файлды қарау', 107 | rotate: 'Rotate 90 deg. clockwise', 108 | toggleheader: 'Тақырыпты ауыстыру', 109 | fullscreen: 'Толық экран режимін қосу', 110 | borderless: 'Жиексіз режиміне ауысу', 111 | close: 'Толық көрінісін жабу' 112 | } 113 | }; 114 | })); 115 | -------------------------------------------------------------------------------- /js/locales/lv.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Latvian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Uldis Nelsons 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['lv'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: 'failu', 28 | filePlural: 'faili', 29 | browseLabel: 'Izvēlaties …', 30 | removeLabel: 'Dzēst', 31 | removeTitle: 'Notīrīt izvēlētos failus', 32 | cancelLabel: 'Atcelt', 33 | cancelTitle: 'Atcelt pašreizējo augšupielādi', 34 | uploadLabel: 'Augšuplādēt', 35 | uploadTitle: 'Augšuplādēt izvēlētos failus', 36 | msgNo: 'nē', 37 | msgNoFilesSelected: '', 38 | msgCancelled: 'Atcelts', 39 | msgPlaceholder: 'Izvēlēties {files}...', 40 | msgZoomModalHeading: 'Detalizēts priekšskatījums', 41 | msgFileRequired: 'Jums jāizvēlas augšupielādējamais fails..', 42 | msgSizeTooSmall: 'Fails "{name}" ({size}) ir pārāk mazs un tam jābūt lielākam {minSize}.', 43 | msgSizeTooLarge: 'Fails "{name}" ({size}) pārsniedz maksimālo izmēru {maxSize}.', 44 | msgMultipleSizeTooLarge: 'Failu "{name}" ({size}) pārsniedz maksimālo izmēru {maxSize}.', 45 | msgFilesTooLess: 'Lai lejupielādētu, jums jāizvēlas vismaz {n} {files}.', 46 | msgFilesTooMany: 'Izvēlēto failu skaits ({n}) pārsniedz maksimālo atļauto skaitu {m}.', 47 | msgFileNotFound: 'Fails "{name}" nav atrasts', 48 | msgFileSecured: 'Drošības ierobežojumi aizliedz lasīt failu "{name}".', 49 | msgFileNotReadable: 'Failu "{name}" nevar nolasīt.', 50 | msgFilePreviewAborted: 'Priekšskatījums atcelts failam "{name}".', 51 | msgFilePreviewError: 'Lasot failu "{name}", radās kļūda.', 52 | msgInvalidFileName: 'Nederīgas vai neatbalstītas rakstzīmes faila nosaukumā "{name}".', 53 | msgInvalidFileType: 'Neatļauts faila tips "{name}". Ir atļauti tikai "{types}".', 54 | msgInvalidFileExtension: 'Faila aizliegtais paplašinājums ir "{name}". Ir atļauti tikai "{extensions}".', 55 | msgFileTypes: { 56 | 'image': 'image', 57 | 'html': 'HTML', 58 | 'text': 'text', 59 | 'video': 'video', 60 | 'audio': 'audio', 61 | 'flash': 'flash', 62 | 'pdf': 'PDF', 63 | 'object': 'object' 64 | }, 65 | msgUploadAborted: 'Failu augšupielāde tiek pārtraukta', 66 | msgUploadThreshold: 'Apstrāde...', 67 | msgUploadBegin: 'Inicializēšana...', 68 | msgUploadEnd: 'Gatavs', 69 | msgUploadEmpty: 'Neatļauti lejupielādes dati', 70 | msgUploadError: 'Augšuplādēšanas kļūda', 71 | msgValidationError: 'Validācijas kļūda', 72 | msgLoading: 'Lejupielādē failu {index} no {files} …', 73 | msgProgress: 'Notiek faila {index} ielāde no {files} - {name} - pabeigts {percent}%.', 74 | msgSelected: 'Atlasīti faili: {n}', 75 | msgProcessing: 'Processing ...', 76 | msgFoldersNotAllowed: 'Atļauts ievilkt un noņemt vienīgi failus! Trūkst {n} mapes.', 77 | msgImageWidthSmall: 'Attēla platumam {name} jābūt vismaz {size} px (detected {dimension} px).', 78 | msgImageHeightSmall: 'Attēla augstumam {name} jābūt vismaz {size} px (detected {dimension} px).', 79 | msgImageWidthLarge: 'Attēla platums "{name}" nevar pārsniegt {size} px (detected {dimension} px).', 80 | msgImageHeightLarge: 'Attēla "{name}" augstums nevar pārsniegt {size} px (detected {dimension} px).', 81 | msgImageResizeError: 'Nevar mainīt attēlu, jo neizdevās iegūt tā izmērus', 82 | msgImageResizeException: 'Kļūda, mainot attēla izmērus.
{errors}
', 83 | msgAjaxError: 'Operācijas laikā {darbība} radās kļūda. Vēlāk mēģiniet vēlreiz!', 84 | msgAjaxProgressError: 'Neizdevās izpildīt {operation}', 85 | ajaxOperations: { 86 | deleteThumb: 'dzēst failu', 87 | uploadThumb: 'augšuplādēt failu', 88 | uploadBatch: 'augšuplādēt mapi', 89 | uploadExtra: 'augšuplādēt formas datus' 90 | }, 91 | dropZoneTitle: 'Ievelc šeit failus …', 92 | dropZoneClickTitle: '
(Vai arī noklikšķiniet, lai izvēlētos {files})', 93 | fileActionSettings: { 94 | removeTitle: 'Dzēst failu', 95 | uploadTitle: 'Augšuplādēt failu', 96 | uploadRetryTitle: 'Atkārtot augšuplādēšanu', 97 | downloadTitle: 'Lejuplādēt failu', 98 | rotateTitle: 'Rotate 90 deg. clockwise', 99 | zoomTitle: 'Pārskatīt detaļas', 100 | dragTitle: 'Pārvietot / Mainīt secību', 101 | indicatorNewTitle: 'Vēl nav augšuplādēts', 102 | indicatorSuccessTitle: 'Ir augšuplādēts', 103 | indicatorErrorTitle: 'Augšuplādēšanas kļūda', 104 | indicatorLoadingTitle: 'Augšuplādēšana ...' 105 | }, 106 | previewZoomButtonTitles: { 107 | prev: 'Skatīt iepriekšējo failu', 108 | next: 'Skatīt nākamo failu', 109 | rotate: 'Rotate 90 deg. clockwise', 110 | toggleheader: 'Skatīt nākamo failu', 111 | fullscreen: 'Pārslēgt pilnekrāna režīmu', 112 | borderless: 'Pārslēgt bez kontūrām', 113 | close: 'Aizveriet detalizētu priekšskatījumu' 114 | } 115 | }; 116 | })); 117 | -------------------------------------------------------------------------------- /js/locales/no.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Norwegian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['no'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: 'fil', 27 | filePlural: 'filer', 28 | browseLabel: 'Bla gjennom …', 29 | removeLabel: 'Fjern', 30 | removeTitle: 'Fjern valgte filer', 31 | cancelLabel: 'Avbryt', 32 | cancelTitle: 'Stopp pågående opplastninger', 33 | pauseLabel: 'Pause', 34 | pauseTitle: 'Pause ongoing upload', 35 | uploadLabel: 'Last opp', 36 | uploadTitle: 'Last opp valgte filer', 37 | msgNo: 'Nei', 38 | msgNoFilesSelected: 'Ingen filer er valgt', 39 | msgPaused: 'Paused', 40 | msgCancelled: 'Avbrutt', 41 | msgPlaceholder: 'Select {files} ...', 42 | msgZoomModalHeading: 'Detaljert visning', 43 | msgFileRequired: 'You must select a file to upload.', 44 | msgSizeTooSmall: 'Filen "{name}" ({size}) er for liten og må være større enn {minSize}.', 45 | msgSizeTooLarge: 'Filen "{name}" ({size}) er for stor, maksimal filstørrelse er {maxSize}.', 46 | msgMultipleSizeTooLarge: 'Filer "{name}" ({size}) er for stor, maksimal filstørrelse er {maxSize}.', 47 | msgFilesTooLess: 'Du må velge minst {n} {files} for opplastning.', 48 | msgFilesTooMany: 'For mange filer til opplastning, ({n}) overstiger maksantallet som er {m}.', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: 'Fant ikke filen "{name}"!', 51 | msgFileSecured: 'Sikkerhetsrestriksjoner hindrer lesing av filen "{name}".', 52 | msgFileNotReadable: 'Filen "{name}" er ikke lesbar.', 53 | msgFilePreviewAborted: 'Filvisning avbrutt for "{name}".', 54 | msgFilePreviewError: 'En feil oppstod under lesing av filen "{name}".', 55 | msgInvalidFileName: 'Ugyldige tegn i filen "{name}".', 56 | msgInvalidFileType: 'Ugyldig type for filen "{name}". Kun "{types}" filer er tillatt.', 57 | msgInvalidFileExtension: 'Ugyldig endelse for filen "{name}". Kun "{extensions}" filer støttes.', 58 | msgFileTypes: { 59 | 'image': 'image', 60 | 'html': 'HTML', 61 | 'text': 'text', 62 | 'video': 'video', 63 | 'audio': 'audio', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'object' 67 | }, 68 | msgUploadAborted: 'Filopplastningen ble avbrutt', 69 | msgUploadThreshold: 'Prosesserer …', 70 | msgUploadBegin: 'Initialiserer …', 71 | msgUploadEnd: 'Ferdig', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: 'Ingen gyldige data tilgjengelig for opplastning.', 74 | msgUploadError: 'Upload Error', 75 | msgDeleteError: 'Delete Error', 76 | msgProgressError: 'Error', 77 | msgValidationError: 'Valideringsfeil', 78 | msgLoading: 'Laster fil {index} av {files} …', 79 | msgProgress: 'Laster fil {index} av {files} - {name} - {percent}% fullført.', 80 | msgSelected: '{n} {files} valgt', 81 | msgFoldersNotAllowed: 'Kun Dra & slipp filer! Hoppet over {n} mappe(r).', 82 | msgImageWidthSmall: 'Bredde på bildefilen "{name}" må være minst {size} px (detected {dimension} px).', 83 | msgImageHeightSmall: 'Høyde på bildefilen "{name}" må være minst {size} px (detected {dimension} px).', 84 | msgImageWidthLarge: 'Bredde på bildefilen "{name}" kan ikke overstige {size} px (detected {dimension} px).', 85 | msgImageHeightLarge: 'Høyde på bildefilen "{name}" kan ikke overstige {size} px (detected {dimension} px).', 86 | msgImageResizeError: 'Fant ikke dimensjonene som skulle resizes.', 87 | msgImageResizeException: 'En feil oppstod under endring av størrelse .
{errors}
', 88 | msgAjaxError: 'Noe gikk galt med {operation} operasjonen. Vennligst prøv igjen senere!', 89 | msgAjaxProgressError: '{operation} feilet', 90 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 91 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 92 | msgPendingTime: '{time} remaining', 93 | msgCalculatingTime: 'calculating time remaining', 94 | ajaxOperations: { 95 | deleteThumb: 'file delete', 96 | uploadThumb: 'file upload', 97 | uploadBatch: 'batch file upload', 98 | uploadExtra: 'form data upload' 99 | }, 100 | dropZoneTitle: 'Dra & slipp filer her …', 101 | dropZoneClickTitle: '
(eller klikk for å velge {files})', 102 | fileActionSettings: { 103 | removeTitle: 'Fjern fil', 104 | uploadTitle: 'Last opp fil', 105 | uploadRetryTitle: 'Retry upload', 106 | rotateTitle: 'Rotate 90 deg. clockwise', 107 | zoomTitle: 'Vis detaljer', 108 | dragTitle: 'Flytt / endre rekkefølge', 109 | indicatorNewTitle: 'Opplastning ikke fullført', 110 | indicatorSuccessTitle: 'Opplastet', 111 | indicatorErrorTitle: 'Opplastningsfeil', 112 | indicatorPausedTitle: 'Upload Paused', 113 | indicatorLoadingTitle: 'Laster opp …' 114 | }, 115 | previewZoomButtonTitles: { 116 | prev: 'Vis forrige fil', 117 | next: 'Vis neste fil', 118 | rotate: 'Rotate 90 deg. clockwise', 119 | toggleheader: 'Vis header', 120 | fullscreen: 'Åpne fullskjerm', 121 | borderless: 'Åpne uten kanter', 122 | close: 'Lukk detaljer' 123 | } 124 | }; 125 | })); 126 | -------------------------------------------------------------------------------- /js/locales/sl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Slovenian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author kv1dr 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['sl'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: 'datoteka', 28 | filePlural: 'datotek', 29 | browseLabel: 'Prebrskaj …', 30 | removeLabel: 'Odstrani', 31 | removeTitle: 'Počisti izbrane datoteke', 32 | cancelLabel: 'Prekliči', 33 | cancelTitle: 'Prekliči nalaganje', 34 | pauseLabel: 'Pause', 35 | pauseTitle: 'Pause ongoing upload', 36 | uploadLabel: 'Naloži', 37 | uploadTitle: 'Naloži izbrane datoteke', 38 | msgNo: 'Ne', 39 | msgNoFilesSelected: 'Nobena datoteka ni izbrana', 40 | msgPaused: 'Paused', 41 | msgCancelled: 'Preklicano', 42 | msgPlaceholder: 'Select {files} ...', 43 | msgZoomModalHeading: 'Podroben predogled', 44 | msgSizeTooLarge: 'Datoteka "{name}" ({size}) presega največjo dovoljeno velikost za nalaganje {maxSize}.', 45 | msgMultipleSizeTooLarge: 'Datotek "{name}" ({size}) presega največjo dovoljeno velikost za nalaganje {maxSize}.', 46 | msgFilesTooLess: 'Za nalaganje morate izbrati vsaj {n} {files}.', 47 | msgFilesTooMany: 'Število datotek, izbranih za nalaganje ({n}) je prekoračilo največjo dovoljeno število {m}.', 48 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 49 | msgFileNotFound: 'Datoteka "{name}" ni bila najdena!', 50 | msgFileSecured: 'Zaradi varnostnih omejitev nisem mogel prebrati datoteko "{name}".', 51 | msgFileNotReadable: 'Datoteka "{name}" ni berljiva.', 52 | msgFilePreviewAborted: 'Predogled datoteke "{name}" preklican.', 53 | msgFilePreviewError: 'Pri branju datoteke "{name}" je prišlo do napake.', 54 | msgInvalidFileType: 'Napačen tip datoteke "{name}". Samo "{types}" datoteke so podprte.', 55 | msgInvalidFileExtension: 'Napačna končnica datoteke "{name}". Samo "{extensions}" datoteke so podprte.', 56 | msgFileTypes: { 57 | 'image': 'image', 58 | 'html': 'HTML', 59 | 'text': 'text', 60 | 'video': 'video', 61 | 'audio': 'audio', 62 | 'flash': 'flash', 63 | 'pdf': 'PDF', 64 | 'object': 'object' 65 | }, 66 | msgUploadAborted: 'Nalaganje datoteke je bilo preklicano', 67 | msgUploadThreshold: 'Procesiram …', 68 | msgUploadBegin: 'Initializing …', 69 | msgUploadEnd: 'Done', 70 | msgUploadResume: 'Resuming upload …', 71 | msgUploadEmpty: 'No valid data available for upload.', 72 | msgUploadError: 'Upload Error', 73 | msgDeleteError: 'Delete Error', 74 | msgProgressError: 'Error', 75 | msgValidationError: 'Napaki pri validiranju', 76 | msgLoading: 'Nalaganje datoteke {index} od {files} …', 77 | msgProgress: 'Nalaganje datoteke {index} od {files} - {name} - {percent}% dokončano.', 78 | msgSelected: '{n} {files} izbrano', 79 | msgFoldersNotAllowed: 'Povlecite in spustite samo datoteke! Izpuščenih je bilo {n} map.', 80 | msgImageWidthSmall: 'Širina slike "{name}" mora biti vsaj {size} px (detected {dimension} px).', 81 | msgImageHeightSmall: 'Višina slike "{name}" mora biti vsaj {size} px (detected {dimension} px).', 82 | msgImageWidthLarge: 'Širina slike "{name}" ne sme preseči {size} px (detected {dimension} px).', 83 | msgImageHeightLarge: 'Višina slike "{name}" ne sme preseči {size} px (detected {dimension} px).', 84 | msgImageResizeError: 'Nisem mogel pridobiti dimenzij slike za spreminjanje velikosti.', 85 | msgImageResizeException: 'Napaka pri spreminjanju velikosti slike.
{errors}
', 86 | msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', 87 | msgAjaxProgressError: '{operation} failed', 88 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 89 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 90 | msgPendingTime: '{time} remaining', 91 | msgCalculatingTime: 'calculating time remaining', 92 | ajaxOperations: { 93 | deleteThumb: 'file delete', 94 | uploadThumb: 'file upload', 95 | uploadBatch: 'batch file upload', 96 | uploadExtra: 'form data upload' 97 | }, 98 | dropZoneTitle: 'Povlecite in spustite datoteke sem …', 99 | dropZoneClickTitle: '
(ali kliknite sem za izbiro {files})', 100 | fileActionSettings: { 101 | removeTitle: 'Odstrani datoteko', 102 | uploadTitle: 'Naloži datoteko', 103 | uploadRetryTitle: 'Retry upload', 104 | downloadTitle: 'Download file', 105 | rotateTitle: 'Rotate 90 deg. clockwise', 106 | zoomTitle: 'Poglej podrobnosti', 107 | dragTitle: 'Premaki / Razporedi', 108 | indicatorNewTitle: 'Še ni naloženo', 109 | indicatorSuccessTitle: 'Naloženo', 110 | indicatorErrorTitle: 'Napaka pri nalaganju', 111 | indicatorPausedTitle: 'Upload Paused', 112 | indicatorLoadingTitle: 'Nalagam …' 113 | }, 114 | previewZoomButtonTitles: { 115 | prev: 'Poglej prejšno datoteko', 116 | next: 'Poglej naslednjo datoteko', 117 | rotate: 'Rotate 90 deg. clockwise', 118 | toggleheader: 'Preklopi glavo', 119 | fullscreen: 'Preklopi celozaslonski način', 120 | borderless: 'Preklopi način brez robov', 121 | close: 'Zapri predogled podrobnosti' 122 | } 123 | }; 124 | })); 125 | -------------------------------------------------------------------------------- /js/locales/sv.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput <_LANG_> Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['sv'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: 'fil', 27 | filePlural: 'filer', 28 | browseLabel: 'Bläddra …', 29 | removeLabel: 'Ta bort', 30 | removeTitle: 'Rensa valda filer', 31 | cancelLabel: 'Avbryt', 32 | cancelTitle: 'Avbryt pågående uppladdning', 33 | pauseLabel: 'Pause', 34 | pauseTitle: 'Pause ongoing upload', 35 | uploadLabel: 'Ladda upp', 36 | uploadTitle: 'Ladda upp valda filer', 37 | msgNo: 'Nej', 38 | msgNoFilesSelected: 'Inga filer valda', 39 | msgPaused: 'Paused', 40 | msgCancelled: 'Avbruten', 41 | msgPlaceholder: 'Select {files} ...', 42 | msgZoomModalHeading: 'detaljerad förhandsgranskning', 43 | msgFileRequired: 'You must select a file to upload.', 44 | msgSizeTooSmall: 'Filen "{name}" ({size}) är för liten och måste vara större än {minSize}.', 45 | msgSizeTooLarge: 'File "{name}" ({size}) överstiger högsta tillåtna uppladdningsstorlek {maxSize}.', 46 | msgMultipleSizeTooLarge: 'Filer "{name}" ({size}) överstiger högsta tillåtna uppladdningsstorlek {maxSize}.', 47 | msgFilesTooLess: 'Du måste välja minst {n} {files} för att ladda upp.', 48 | msgFilesTooMany: 'Antal filer valda för uppladdning ({n}) överstiger högsta tillåtna gränsen {m}.', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: 'Filen "{name}" kunde inte hittas!', 51 | msgFileSecured: 'Säkerhetsbegränsningar förhindrar att läsa filen "{name}".', 52 | msgFileNotReadable: 'Filen "{name}" är inte läsbar.', 53 | msgFilePreviewAborted: 'Filförhandsvisning avbröts för "{name}".', 54 | msgFilePreviewError: 'Ett fel uppstod vid inläsning av filen "{name}".', 55 | msgInvalidFileName: 'Ogiltiga eller tecken som inte stöds i filnamnet "{name}".', 56 | msgInvalidFileType: 'Ogiltig typ för filen "{name}". Endast "{types}" filtyper stöds.', 57 | msgInvalidFileExtension: 'Ogiltigt filtillägg för filen "{name}". Endast "{extensions}" filer stöds.', 58 | msgFileTypes: { 59 | 'image': 'bild', 60 | 'html': 'HTML', 61 | 'text': 'text', 62 | 'video': 'video', 63 | 'audio': 'ljud', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'objekt' 67 | }, 68 | msgUploadAborted: 'Filöverföringen avbröts', 69 | msgUploadThreshold: 'Bearbetar …', 70 | msgUploadBegin: 'Påbörjar …', 71 | msgUploadEnd: 'Färdig', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: 'Ingen giltig data tillgänglig för uppladdning.', 74 | msgUploadError: 'Upload Error', 75 | msgDeleteError: 'Delete Error', 76 | msgProgressError: 'Error', 77 | msgValidationError: 'Valideringsfel', 78 | msgLoading: 'Laddar fil {index} av {files} …', 79 | msgProgress: 'Laddar fil {index} av {files} - {name} - {percent}% färdig.', 80 | msgSelected: '{n} {files} valda', 81 | msgFoldersNotAllowed: 'Endast drag & släppfiler! Skippade {n} släpta mappar.', 82 | msgImageWidthSmall: 'Bredd på bildfilen "{name}" måste minst vara {size} pixlar.', 83 | msgImageHeightSmall: 'Höjden på bildfilen "{name}" måste minst vara {size} pixlar.', 84 | msgImageWidthLarge: 'Bredd på bildfil "{name}" kan inte överstiga {size} pixlar.', 85 | msgImageHeightLarge: 'Höjden på bildfilen "{name}" kan inte överstiga {size} pixlar.', 86 | msgImageResizeError: 'Det gick inte att hämta bildens dimensioner för att ändra storlek.', 87 | msgImageResizeException: 'Fel vid storleksändring av bilden.
{errors}
', 88 | msgAjaxError: 'Något gick fel med {operation} operationen. Försök igen senare!', 89 | msgAjaxProgressError: '{operation} misslyckades', 90 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 91 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 92 | msgPendingTime: '{time} remaining', 93 | msgCalculatingTime: 'calculating time remaining', 94 | ajaxOperations: { 95 | deleteThumb: 'file delete', 96 | uploadThumb: 'file upload', 97 | uploadBatch: 'batch file upload', 98 | uploadExtra: 'form data upload' 99 | }, 100 | dropZoneTitle: 'Drag & släpp filer här …', 101 | dropZoneClickTitle: '
(eller klicka för att markera {files})', 102 | fileActionSettings: { 103 | removeTitle: 'Ta bort fil', 104 | uploadTitle: 'Ladda upp fil', 105 | uploadRetryTitle: 'Retry upload', 106 | rotateTitle: 'Rotate 90 deg. clockwise', 107 | zoomTitle: 'Visa detaljer', 108 | dragTitle: 'Flytta / Ändra ordning', 109 | indicatorNewTitle: 'Inte uppladdat ännu', 110 | indicatorSuccessTitle: 'Uppladdad', 111 | indicatorErrorTitle: 'Uppladdningsfel', 112 | indicatorPausedTitle: 'Upload Paused', 113 | indicatorLoadingTitle: 'Laddar upp …' 114 | }, 115 | previewZoomButtonTitles: { 116 | prev: 'Visa föregående fil', 117 | next: 'Visa nästa fil', 118 | rotate: 'Rotate 90 deg. clockwise', 119 | toggleheader: 'Rubrik', 120 | fullscreen: 'Fullskärm', 121 | borderless: 'Gränslös', 122 | close: 'Stäng detaljerad förhandsgranskning' 123 | } 124 | }; 125 | })); -------------------------------------------------------------------------------- /js/locales/th.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Thai Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function (factory) { 12 | 'use strict'; 13 | if (typeof define === 'function' && define.amd) { 14 | define(['jquery'], factory); 15 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 16 | factory(require('jquery')); 17 | } else { 18 | factory(window.jQuery); 19 | } 20 | }(function ($) { 21 | "use strict"; 22 | 23 | $.fn.fileinputLocales['th'] = { 24 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 25 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 26 | fileSingle: 'ไฟล์', 27 | filePlural: 'ไฟล์', 28 | browseLabel: 'เลือกดู …', 29 | removeLabel: 'ลบทิ้ง', 30 | removeTitle: 'ลบไฟล์ที่เลือกทิ้ง', 31 | cancelLabel: 'ยกเลิก', 32 | cancelTitle: 'ยกเลิกการอัพโหลด', 33 | pauseLabel: 'Pause', 34 | pauseTitle: 'Pause ongoing upload', 35 | uploadLabel: 'อัพโหลด', 36 | uploadTitle: 'อัพโหลดไฟล์ที่เลือก', 37 | msgNo: 'ไม่', 38 | msgNoFilesSelected: '', 39 | msgPaused: 'Paused', 40 | msgCancelled: 'ยกเลิก', 41 | msgPlaceholder: 'Select {files} ...', 42 | msgZoomModalHeading: 'ตัวอย่างละเอียด', 43 | msgFileRequired: 'You must select a file to upload.', 44 | msgSizeTooSmall: 'File "{name}" ({size}) is too small and must be larger than {minSize}.', 45 | msgSizeTooLarge: 'ไฟล์ "{name}" ({size}) มีขนาดเกินที่ระบบอนุญาตที่ {maxSize}, กรุณาลองใหม่อีกครั้ง!', 46 | msgMultipleSizeTooLarge: 'ไฟล์ "{name}" ({size}) มีขนาดเกินที่ระบบอนุญาตที่ {maxSize}, กรุณาลองใหม่อีกครั้ง!', 47 | msgFilesTooLess: 'คุณต้องเลือกไฟล์จำนวนอย่างน้อย {n} {files} เพื่ออัพโหลด, กรุณาลองใหม่อีกครั้ง!', 48 | msgFilesTooMany: 'ไฟล์ที่คุณเลือกมีจำนวน ({n}) ซึ่งเกินกว่าที่ระบบอนุญาตที่ {m}, กรุณาลองใหม่อีกครั้ง!', 49 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 50 | msgFileNotFound: 'ไม่พบไฟล์ "{name}" !', 51 | msgFileSecured: 'ระบบความปลอดภัยไม่อนุญาตให้อ่านไฟล์ "{name}".', 52 | msgFileNotReadable: 'ไม่สามารถอ่านไฟล์ "{name}" ได้', 53 | msgFilePreviewAborted: 'ไฟล์ "{name}" ไม่อนุญาตให้ดูตัวอย่าง', 54 | msgFilePreviewError: 'พบปัญหาในการดูตัวอย่างไฟล์ "{name}".', 55 | msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', 56 | msgInvalidFileType: 'ไฟล์ "{name}" เป็นประเภทไฟล์ที่ไม่ถูกต้อง, อนุญาตเฉพาะไฟล์ประเภท "{types}"', 57 | msgInvalidFileExtension: 'ไฟล์ "{name}" เป็น extension ที่ไมถูกต้อง, อนุญาตเฉพาะไฟล์ extension "{extensions}"', 58 | msgFileTypes: { 59 | 'image': 'image', 60 | 'html': 'HTML', 61 | 'text': 'text', 62 | 'video': 'video', 63 | 'audio': 'audio', 64 | 'flash': 'flash', 65 | 'pdf': 'PDF', 66 | 'object': 'object' 67 | }, 68 | msgUploadAborted: 'อัปโหลดไฟล์ถูกยกเลิก', 69 | msgUploadThreshold: 'Processing …', 70 | msgUploadBegin: 'Initializing …', 71 | msgUploadEnd: 'Done', 72 | msgUploadResume: 'Resuming upload …', 73 | msgUploadEmpty: 'No valid data available for upload.', 74 | msgUploadError: 'Upload Error', 75 | msgDeleteError: 'Delete Error', 76 | msgProgressError: 'Error', 77 | msgValidationError: 'ข้อผิดพลาดในการตรวจสอบ', 78 | msgLoading: 'กำลังโหลดไฟล์ {index} จาก {files} …', 79 | msgProgress: 'กำลังโหลดไฟล์ {index} จาก {files} - {name} - {percent}%', 80 | msgSelected: '{n} {files} ถูกเลือก', 81 | msgFoldersNotAllowed: 'Drag & drop เฉพาะไฟล์เท่านั้น! ข้าม dropped folder จำนวน {n}', 82 | msgImageWidthSmall: 'ความกว้างของภาพไฟล์ "{name}" ต้องมีอย่างน้อย {size} px (detected {dimension} px).', 83 | msgImageHeightSmall: 'ความสูงของภาพไฟล์ "{name}" ต้องมีอย่างน้อย {size} px (detected {dimension} px).', 84 | msgImageWidthLarge: 'ความกว้างของภาพไฟล์ "{name}" ไม่เกิน {size} พิกเซล.', 85 | msgImageHeightLarge: 'ความสูงของไฟล์ภาพ "{name}" ไม่เกิน {size} พิกเซล.', 86 | msgImageResizeError: 'ไม่สามารถรับขนาดภาพเพื่อปรับขนาด', 87 | msgImageResizeException: 'ข้อผิดพลาดขณะปรับขนาดภาพ
{errors}
', 88 | msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', 89 | msgAjaxProgressError: '{operation} failed', 90 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 91 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 92 | msgPendingTime: '{time} remaining', 93 | msgCalculatingTime: 'calculating time remaining', 94 | ajaxOperations: { 95 | deleteThumb: 'file delete', 96 | uploadThumb: 'file upload', 97 | uploadBatch: 'batch file upload', 98 | uploadExtra: 'form data upload' 99 | }, 100 | dropZoneTitle: 'Drag & drop ไฟล์ตรงนี้ …', 101 | dropZoneClickTitle: '
(or click to select {files})', 102 | fileActionSettings: { 103 | removeTitle: 'ลบไฟล์', 104 | uploadTitle: 'อัปโหลดไฟล์', 105 | uploadRetryTitle: 'Retry upload', 106 | downloadTitle: 'Download file', 107 | rotateTitle: 'Rotate 90 deg. clockwise', 108 | zoomTitle: 'ดูรายละเอียด', 109 | dragTitle: 'Move / Rearrange', 110 | indicatorNewTitle: 'ยังไม่ได้อัปโหลด', 111 | indicatorSuccessTitle: 'อัพโหลด', 112 | indicatorErrorTitle: 'อัปโหลดข้อผิดพลาด', 113 | indicatorPausedTitle: 'Upload Paused', 114 | indicatorLoadingTitle: 'อัพโหลด …' 115 | }, 116 | previewZoomButtonTitles: { 117 | prev: 'View previous file', 118 | next: 'View next file', 119 | rotate: 'Rotate 90 deg. clockwise', 120 | toggleheader: 'Toggle header', 121 | fullscreen: 'Toggle full screen', 122 | borderless: 'Toggle borderless mode', 123 | close: 'Close detailed preview' 124 | } 125 | }; 126 | })); -------------------------------------------------------------------------------- /js/locales/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Chinese Traditional Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author kangqf 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['zh-TW'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: '單一檔案', 28 | filePlural: '複選檔案', 29 | browseLabel: '瀏覽 …', 30 | removeLabel: '移除', 31 | removeTitle: '清除選取檔案', 32 | cancelLabel: '取消', 33 | cancelTitle: '取消上傳中檔案', 34 | pauseLabel: 'Pause', 35 | pauseTitle: 'Pause ongoing upload', 36 | uploadLabel: '上傳', 37 | uploadTitle: '上傳選取檔案', 38 | msgNo: '沒有', 39 | msgNoFilesSelected: '未選擇檔案', 40 | msgPaused: 'Paused', 41 | msgCancelled: '取消', 42 | zoomTitle: '詳細資料', 43 | msgPlaceholder: '選擇 {files} ...', 44 | msgZoomModalHeading: '內容預覽', 45 | msgFileRequired: '必須選擇壹個文件上傳.', 46 | msgSizeTooSmall: '檔案 "{name}" ({size}) 必須大於限定大小 {minSize}.', 47 | msgSizeTooLarge: '檔案 "{name}" ({size}) 大小超過上限 {maxSize}.', 48 | msgMultipleSizeTooLarge: '檔案 "{name}" ({size}) 大小超過上限 {maxSize}.', 49 | msgFilesTooLess: '最少必須選擇 {n} {files} 來上傳. ', 50 | msgFilesTooMany: '上傳的檔案數量 ({n}) 超過最大檔案上傳限制 {m}.', 51 | msgTotalFilesTooMany: 'You can upload a maximum of {m} files ({n} files detected).', 52 | msgFileNotFound: '檔案 "{name}" 未發現!', 53 | msgFileSecured: '安全限制,禁止讀取檔案 "{name}".', 54 | msgFileNotReadable: '文件 "{name}" 不可讀取.', 55 | msgFilePreviewAborted: '檔案 "{name}" 預覽中止.', 56 | msgFilePreviewError: '讀取 "{name}" 發生錯誤.', 57 | msgInvalidFileName: '附檔名 "{name}" 包含非法字符.', 58 | msgInvalidFileType: '檔案類型錯誤 "{name}". 只能使用 "{types}" 類型的檔案.', 59 | msgInvalidFileExtension: '附檔名錯誤 "{name}". 只能使用 "{extensions}" 的檔案.', 60 | msgFileTypes: { 61 | 'image': 'image', 62 | 'html': 'HTML', 63 | 'text': 'text', 64 | 'video': 'video', 65 | 'audio': 'audio', 66 | 'flash': 'flash', 67 | 'pdf': 'PDF', 68 | 'object': 'object' 69 | }, 70 | msgUploadAborted: '該文件上傳被中止', 71 | msgUploadThreshold: '處理中 …', 72 | msgUploadBegin: '正在初始化 …', 73 | msgUploadEnd: '完成', 74 | msgUploadResume: 'Resuming upload …', 75 | msgUploadEmpty: '無效的文件上傳.', 76 | msgUploadError: 'Upload Error', 77 | msgDeleteError: 'Delete Error', 78 | msgProgressError: '上傳錯誤', 79 | msgValidationError: '驗證錯誤', 80 | msgLoading: '載入第 {index} 個檔案,共 {files} …', 81 | msgProgress: '載入第 {index} 個檔案,共 {files} - {name} - {percent}% 成功.', 82 | msgSelected: '{n} {files} 選取', 83 | msgProcessing: 'Processing ...', 84 | msgFoldersNotAllowed: '只支援單檔拖曳! 無法使用 {n} 拖拽的資料夹.', 85 | msgImageWidthSmall: '圖檔寬度"{name}"必須至少為{size}像素(px).', 86 | msgImageHeightSmall: '圖檔高度"{name}"必須至少為{size}像素(px).', 87 | msgImageWidthLarge: '圖檔寬度"{name}"不能超過{size}像素(px).', 88 | msgImageHeightLarge: '圖檔高度"{name}"不能超過{size}像素(px).', 89 | msgImageResizeError: '無法獲取的圖像尺寸調整。', 90 | msgImageResizeException: '錯誤而調整圖像大小。
{errors}
', 91 | msgAjaxError: '{operation} 發生錯誤. 請重試!', 92 | msgAjaxProgressError: '{operation} 失敗', 93 | msgDuplicateFile: 'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.', 94 | msgResumableUploadRetriesExceeded: 'Upload aborted beyond {max} retries for file {file}! Error Details:
{error}
', 95 | msgPendingTime: '{time} remaining', 96 | msgCalculatingTime: 'calculating time remaining', 97 | ajaxOperations: { 98 | deleteThumb: 'file delete', 99 | uploadThumb: 'file upload', 100 | uploadBatch: 'batch file upload', 101 | uploadExtra: 'form data upload' 102 | }, 103 | dropZoneTitle: '拖曳檔案至此 …', 104 | dropZoneClickTitle: '
(或點擊{files}按鈕選擇文件)', 105 | fileActionSettings: { 106 | removeTitle: '刪除檔案', 107 | uploadTitle: '上傳檔案', 108 | uploadRetryTitle: '重試', 109 | downloadTitle: '下載檔案', 110 | rotateTitle: 'Rotate 90 deg. clockwise', 111 | zoomTitle: '詳細資料', 112 | dragTitle: '移動 / 重置', 113 | indicatorNewTitle: '尚未上傳', 114 | indicatorSuccessTitle: '上傳成功', 115 | indicatorErrorTitle: '上傳失敗', 116 | indicatorPausedTitle: 'Upload Paused', 117 | indicatorLoadingTitle: '上傳中 …' 118 | }, 119 | previewZoomButtonTitles: { 120 | prev: '預覽上壹個文件', 121 | next: '預覽下壹個文件', 122 | rotate: 'Rotate 90 deg. clockwise', 123 | toggleheader: '縮放', 124 | fullscreen: '全屏', 125 | borderless: '無邊界模式', 126 | close: '關閉當前預覽' 127 | } 128 | }; 129 | })); 130 | -------------------------------------------------------------------------------- /js/locales/zh.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Chinese Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author kangqf 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function (factory) { 13 | 'use strict'; 14 | if (typeof define === 'function' && define.amd) { 15 | define(['jquery'], factory); 16 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 17 | factory(require('jquery')); 18 | } else { 19 | factory(window.jQuery); 20 | } 21 | }(function ($) { 22 | "use strict"; 23 | 24 | $.fn.fileinputLocales['zh'] = { 25 | sizeUnits: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 26 | bitRateUnits: ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'], 27 | fileSingle: '文件', 28 | filePlural: '个文件', 29 | browseLabel: '选择 …', 30 | removeLabel: '移除', 31 | removeTitle: '清除选中文件', 32 | cancelLabel: '取消', 33 | cancelTitle: '取消进行中的上传', 34 | pauseLabel: '暂停', 35 | pauseTitle: '暂停上传', 36 | uploadLabel: '上传', 37 | uploadTitle: '上传选中文件', 38 | msgNo: '没有', 39 | msgNoFilesSelected: '未选择文件', 40 | msgPaused: '已暂停', 41 | msgCancelled: '取消', 42 | msgPlaceholder: '选择 {files} ...', 43 | msgZoomModalHeading: '详细预览', 44 | msgFileRequired: '必须选择一个文件上传.', 45 | msgSizeTooSmall: '文件 "{name}" ({size}) 必须大于限定大小 {minSize}.', 46 | msgSizeTooLarge: '文件 "{name}" ({size}) 超过了允许大小 {maxSize}.', 47 | msgMultipleSizeTooLarge: '文件 "{name}" ({size}) 超过了允许大小 {maxSize}.', 48 | msgFilesTooLess: '你必须选择最少 {n} {files} 来上传. ', 49 | msgFilesTooMany: '选择的上传文件个数 ({n}) 超出最大文件的限制个数 {m}.', 50 | msgTotalFilesTooMany: '你最多可以上传 {m} 个文件 (当前有{n} 个文件).', 51 | msgFileNotFound: '文件 "{name}" 未找到!', 52 | msgFileSecured: '安全限制,为了防止读取文件 "{name}".', 53 | msgFileNotReadable: '文件 "{name}" 不可读.', 54 | msgFilePreviewAborted: '取消 "{name}" 的预览.', 55 | msgFilePreviewError: '读取 "{name}" 时出现了一个错误.', 56 | msgInvalidFileName: '文件名 "{name}" 包含非法字符.', 57 | msgInvalidFileType: '不正确的类型 "{name}". 只支持 "{types}" 类型的文件.', 58 | msgInvalidFileExtension: '不正确的文件扩展名 "{name}". 只支持 "{extensions}" 的文件扩展名.', 59 | msgFileTypes: { 60 | 'image': 'image', 61 | 'html': 'HTML', 62 | 'text': 'text', 63 | 'video': 'video', 64 | 'audio': 'audio', 65 | 'flash': 'flash', 66 | 'pdf': 'PDF', 67 | 'object': 'object' 68 | }, 69 | msgUploadAborted: '该文件上传被中止', 70 | msgUploadThreshold: '处理中 …', 71 | msgUploadBegin: '正在初始化 …', 72 | msgUploadEnd: '完成', 73 | msgUploadResume: '继续上传 …', 74 | msgUploadEmpty: '无效的文件上传.', 75 | msgUploadError: '上传出错', 76 | msgDeleteError: '删除出错', 77 | msgProgressError: '上传出错', 78 | msgValidationError: '验证错误', 79 | msgLoading: '加载第 {index} 文件 共 {files} …', 80 | msgProgress: '加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.', 81 | msgSelected: '{n} {files} 选中', 82 | msgProcessing: '处理中 ...', 83 | msgFoldersNotAllowed: '只支持拖拽文件! 跳过 {n} 拖拽的文件夹.', 84 | msgImageWidthSmall: '图像文件的"{name}"的宽度必须是至少{size}像素.', 85 | msgImageHeightSmall: '图像文件的"{name}"的高度必须至少为{size}像素.', 86 | msgImageWidthLarge: '图像文件"{name}"的宽度不能超过{size}像素.', 87 | msgImageHeightLarge: '图像文件"{name}"的高度不能超过{size}像素.', 88 | msgImageResizeError: '无法获取的图像尺寸调整。', 89 | msgImageResizeException: '调整图像大小时发生错误。
{errors}
', 90 | msgAjaxError: '{operation} 发生错误. 请重试!', 91 | msgAjaxProgressError: '{operation} 失败', 92 | msgDuplicateFile: '文件 "{name}",大小 "{size}" 已经被选中.忽略相同的文件.', 93 | msgResumableUploadRetriesExceeded: '文件 {file} 上传失败超过 {max} 次重试 ! 错误详情:
{error}
', 94 | msgPendingTime: '{time} 剩余', 95 | msgCalculatingTime: '计算剩余时间', 96 | ajaxOperations: { 97 | deleteThumb: '删除文件', 98 | uploadThumb: '上传文件', 99 | uploadBatch: '批量上传', 100 | uploadExtra: '表单数据上传' 101 | }, 102 | dropZoneTitle: '拖拽文件到这里 …
支持多文件同时上传', 103 | dropZoneClickTitle: '
(或点击{files}按钮选择文件)', 104 | fileActionSettings: { 105 | removeTitle: '删除文件', 106 | uploadTitle: '上传文件', 107 | downloadTitle: '下载文件', 108 | uploadRetryTitle: '重试', 109 | rotateTitle: '顺时针旋转90度', 110 | zoomTitle: '查看详情', 111 | dragTitle: '移动 / 重置', 112 | indicatorNewTitle: '没有上传', 113 | indicatorSuccessTitle: '上传', 114 | indicatorErrorTitle: '上传错误', 115 | indicatorPausedTitle: '上传已暂停', 116 | indicatorLoadingTitle: '上传 …' 117 | }, 118 | previewZoomButtonTitles: { 119 | prev: '预览上一个文件', 120 | next: '预览下一个文件', 121 | rotate: '顺时针旋转90度', 122 | toggleheader: '缩放', 123 | fullscreen: '全屏', 124 | borderless: '无边界模式', 125 | close: '关闭当前预览' 126 | } 127 | }; 128 | })); 129 | -------------------------------------------------------------------------------- /nuget/Package.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap-fileinput 5 | bootstrap-fileinput 6 | 5.5.5 7 | Kartik Visweswaran 8 | Kartik Visweswaran 9 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 10 | https://github.com/kartik-v/bootstrap-fileinput 11 | http://getbootstrap.com/favicon.ico 12 | false 13 | An enhanced HTML 5 file input for Bootstrap 3.x with file preview for various files, offers multiple selection, and more. 14 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/CHANGE.md 15 | Copyright 2014 - 2024 16 | bootstrap bootstrap-fileinput 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /nuget/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | NuGet Update -self 4 | REM remove package content folder 5 | echo Deleting existing content directory if available. 6 | if exist content ( 7 | rmdir /s /q content 8 | echo Content directory deleted. 9 | ) else ( 10 | echo Content directory not found. 11 | ) 12 | 13 | echo Creating content directory. 14 | 15 | REM create new package content folder 16 | mkdir content 17 | 18 | REM create sub folder for js files 19 | mkdir content\Scripts 20 | 21 | REM create sub folders for css and img files 22 | mkdir content\Content 23 | mkdir content\Content\bootstrap-fileinput 24 | 25 | REM delete the previous package versions 26 | REM del bootstrap-fileinput.* 27 | 28 | REM copy the content to the destination folders 29 | xcopy ..\js content\Scripts /D /E /C /R /I /K /Y 30 | xcopy ..\css content\Content\bootstrap-fileinput\css /D /E /C /R /I /K /Y 31 | xcopy ..\img content\Content\bootstrap-fileinput\img /D /E /C /R /I /K /Y 32 | xcopy ..\themes content\Content\bootstrap-fileinput\themes /D /E /C /R /I /K /Y 33 | xcopy ..\scss content\Content\bootstrap-fileinput\scss /D /E /C /R /I /K /Y 34 | 35 | REM create a new package 36 | NuGet Pack Package.nuspec -Exclude NuGet.exe;build.bat 37 | 38 | REM Upload the new package 39 | REM for %%f in (content\Content\bootstrap-fileinput.*) do ( 40 | REM NuGet Push %%f 41 | REM rmdir /s /q content 42 | REM del %%f 43 | REM ) 44 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "5.5.5", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/kartik-v/bootstrap-fileinput.git" 12 | }, 13 | "bugs": { 14 | "url": "https://github.com/kartik-v/bootstrap-fileinput/issues" 15 | }, 16 | "keywords": [ 17 | "file", 18 | "input", 19 | "preview", 20 | "image", 21 | "upload", 22 | "ajax", 23 | "multiple", 24 | "delete", 25 | "progress", 26 | "gallery" 27 | ], 28 | "dependencies": { 29 | "bootstrap": ">= 3.4.1", 30 | "jquery": ">= 1.9.0", 31 | "opencollective-postinstall": "^2.0.2" 32 | }, 33 | "main": "./js/fileinput.js", 34 | "style": "./css/fileinput.css", 35 | "sass": "scss/fileinput.scss", 36 | "peerDependencies": { 37 | "jquery": ">= 1.9.0", 38 | "bootstrap": ">= 3.0.0" 39 | }, 40 | "license": "BSD-3-Clause", 41 | "collective": { 42 | "type": "opencollective", 43 | "url": "https://opencollective.com/bootstrap-fileinput" 44 | }, 45 | "scripts": { 46 | "postinstall": "opencollective-postinstall || true" 47 | } 48 | } -------------------------------------------------------------------------------- /scss/fileinput-rtl.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee RTL (Right To Left) default styling for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | 14 | //colors 15 | $zorba: #a2958a !default; 16 | $mine-shaft: #333 !default; 17 | 18 | //standard measures 19 | $radius: 4px !default; 20 | $pad: 5px !default; 21 | $border: 1px !default; 22 | 23 | //operations 24 | @function multiply($pixels, $multiplier) { 25 | @return $pixels * $multiplier; 26 | } 27 | 28 | //@extend-elements 29 | %set_float_left { 30 | float: left; 31 | } 32 | 33 | %set_float_right { 34 | float: right; 35 | } 36 | 37 | %set_text_right { 38 | text-align: right; 39 | } 40 | 41 | .kv-rtl { 42 | direction: rtl; 43 | 44 | .floating-buttons { 45 | left: multiply($pad, 2); 46 | right: auto; 47 | 48 | .btn-kv { 49 | margin-left: 0; 50 | margin-right: multiply($pad, 0.6); 51 | } 52 | } 53 | 54 | .file-caption-icon { 55 | left: auto; 56 | right: multiply($pad, 1.6); 57 | } 58 | 59 | .close { 60 | @extend %set_float_left; 61 | } 62 | 63 | .file-zoom-dialog { 64 | @extend %set_text_right; 65 | } 66 | 67 | .kv-desc-hide { 68 | float: left; 69 | } 70 | 71 | .file-error-message { 72 | pre { 73 | @extend %set_text_right; 74 | } 75 | 76 | ul { 77 | @extend %set_text_right; 78 | } 79 | } 80 | 81 | .file-drop-zone { 82 | margin: multiply($pad, 2.4) multiply($pad, 2.4) multiply($pad, 2.4) multiply($pad, 3); 83 | } 84 | 85 | .btn-kv-prev { 86 | right: 0; 87 | left: auto; 88 | } 89 | 90 | .btn-kv-next { 91 | left: 0; 92 | right: auto; 93 | } 94 | 95 | .pull-right { 96 | float: left !important; 97 | } 98 | 99 | .pull-left { 100 | float: right !important; 101 | } 102 | 103 | .float-right { 104 | @extend .pull-right; 105 | } 106 | 107 | .float-left { 108 | @extend .pull-left; 109 | } 110 | 111 | .kv-zoom-title { 112 | direction: ltr; 113 | } 114 | 115 | .krajee-default { 116 | &.file-preview-frame { 117 | @extend %set_float_right; 118 | box-shadow: (-$border) $border multiply($border, 5) 0 $zorba; 119 | 120 | &:not(.file-preview-error):hover { 121 | box-shadow: multiply($border, -3) multiply($border, 3) multiply($border, 5) 0 $mine-shaft; 122 | } 123 | } 124 | 125 | .file-actions { 126 | @extend %set_float_left; 127 | } 128 | 129 | .file-other-error { 130 | @extend %set_float_left; 131 | } 132 | 133 | .file-drag-handle { 134 | @extend %set_float_right; 135 | } 136 | 137 | .file-upload-indicator { 138 | @extend %set_float_right; 139 | } 140 | } 141 | 142 | .kv-zoom-actions .btn-kv { 143 | margin-left: 0; 144 | margin-right: multiply($pad, 0.6); 145 | } 146 | 147 | .file-caption.icon-visible .file-caption-name { 148 | padding-left: 0; 149 | padding-right: multiply($pad, 3); 150 | } 151 | 152 | .input-group { 153 | > .input-group-btn:last-child > .btn:last-child { 154 | border-radius: 4px 0 0 4px !important; 155 | } 156 | 157 | > .input-group-btn:first-child > .btn:first-child { 158 | border-radius: 0 4px 4px 0 !important; 159 | } 160 | 161 | > .input-group-append:last-child > .btn:last-child, 162 | > .btn:last-child, 163 | > .form-control:last-child { 164 | border-radius: 0.25rem 0 0 0.25rem !important; 165 | } 166 | 167 | > .input-group-prepend:first-child > .btn:first-child, 168 | > .input-group > .btn:first-child, 169 | > .form-control:first-child { 170 | border-radius: 0 0.25rem 0.25rem 0 !important; 171 | } 172 | 173 | .file-caption-icon:first-child ~ .form-control:last-child { 174 | border-radius: 0.25rem !important; 175 | } 176 | } 177 | 178 | .btn-file input[type=file] { 179 | left: auto; 180 | right: 0; 181 | text-align: left; 182 | background: none repeat scroll 100% 0 transparent; 183 | } 184 | } -------------------------------------------------------------------------------- /scss/themes/explorer-fa4/theme.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 4.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | //colors 15 | $boston-blue: #428bca !default; 16 | $alto: #ddd !default; 17 | $tapa: #777 !default; 18 | $mystic: #e1edf7 !default; 19 | $perano: #a1abff !default; 20 | $white-smoke: #f5f5f5 !default; 21 | 22 | //fonts 23 | $font: Menlo, Monaco, Consolas, "Courier New", monospace !default; 24 | 25 | //standard measures 26 | $pad: 5px !default; 27 | 28 | //operations 29 | @function multiply($pixels, $multiplier) { 30 | @return $pixels * $multiplier; 31 | } 32 | 33 | .theme-explorer-fa4 { 34 | .file-preview-frame { 35 | border: multiply($pad, 0.2) solid $alto; 36 | margin: multiply($pad, 0.4) 0; 37 | width: 100%; 38 | display: flex; 39 | justify-content: space-between; 40 | align-items: center; 41 | 42 | samp { 43 | font-size: 0.9rem; 44 | } 45 | } 46 | 47 | .file-actions { 48 | text-align: center; 49 | } 50 | 51 | .file-upload-indicator, 52 | .file-drag-handle { 53 | text-align: center; 54 | position: absolute; 55 | display: inline-block; 56 | bottom: multiply($pad, 1.6); 57 | right: multiply($pad, 0.8); 58 | width: multiply($pad, 3.2); 59 | height: multiply($pad, 3.2); 60 | font-size: multiply($pad, 3.2); 61 | } 62 | 63 | .explorer-frame { 64 | .kv-file-content { 65 | width: multiply($pad, 32); 66 | height: multiply($pad, 16); 67 | padding: $pad; 68 | text-align: left; 69 | } 70 | } 71 | 72 | .file-thumb-progress { 73 | .progress { 74 | display: block; 75 | white-space: nowrap; 76 | text-overflow: ellipsis; 77 | overflow: hidden; 78 | margin-top: 5px; 79 | } 80 | } 81 | 82 | .explorer-caption { 83 | display: block; 84 | white-space: nowrap; 85 | text-overflow: ellipsis; 86 | overflow: hidden; 87 | padding: 5px; 88 | color: $tapa; 89 | } 90 | 91 | .file-footer-buttons { 92 | padding: 5px; 93 | text-align: right; 94 | } 95 | 96 | .kvsortable-ghost { 97 | opacity: 0.6; 98 | background: $mystic; 99 | border: multiply($pad, 0.4) solid $perano; 100 | } 101 | 102 | .file-preview { 103 | .table { 104 | margin: 0; 105 | } 106 | } 107 | 108 | .file-error-message { 109 | ul { 110 | padding: 5px 0 0 20px; 111 | } 112 | } 113 | 114 | .file-details-cell { 115 | width: 60%; 116 | font-size: 0.95rem; 117 | text-align: left; 118 | margin-right: auto; 119 | } 120 | 121 | .file-actions-cell { 122 | position: relative; 123 | height: multiply($pad, 16); 124 | width: multiply($pad, 40); 125 | } 126 | } 127 | 128 | .explorer-frame { 129 | .file-preview-other { 130 | text-align: center; 131 | } 132 | 133 | .file-preview-text { 134 | display: inline-block; 135 | color: $boston-blue; 136 | border: 1px solid $alto; 137 | font-family: $font; 138 | outline: none; 139 | padding: multiply($pad, 1.6); 140 | resize: none; 141 | } 142 | 143 | .file-preview-html { 144 | display: inline-block; 145 | border: 1px solid $alto; 146 | padding: multiply($pad, 1.6); 147 | overflow: auto; 148 | } 149 | 150 | .file-other-icon { 151 | font-size: 2.6em; 152 | } 153 | 154 | &:not(.kv-zoom-body):hover { 155 | background-color: $white-smoke; 156 | } 157 | } 158 | 159 | .file-zoom-dialog { 160 | .explorer-frame { 161 | .file-other-icon { 162 | //noinspection CssOverwrittenProperties 163 | font-size: 22em; 164 | //noinspection CssOverwrittenProperties 165 | font-size: 50vmin; 166 | } 167 | } 168 | } 169 | 170 | @media only screen and (max-width: 1249px) { 171 | .theme-explorer-fa4 { 172 | .file-preview-frame { 173 | .file-details-cell { 174 | width: 40%; 175 | } 176 | } 177 | } 178 | } 179 | 180 | @media only screen and (max-width: 1023px) { 181 | .theme-explorer-fa4 { 182 | .file-preview-frame { 183 | .file-details-cell { 184 | width: 30%; 185 | } 186 | } 187 | } 188 | } 189 | 190 | @media only screen and (max-width: 767px) { 191 | .theme-explorer-fa4 { 192 | .file-preview-frame { 193 | .file-details-cell { 194 | width: multiply($pad, 40); 195 | } 196 | } 197 | } 198 | } 199 | 200 | @media only screen and (max-width: 575px) { 201 | .theme-explorer-fa4 { 202 | .file-preview-frame { 203 | flex-direction: column; 204 | 205 | .kv-file-content { 206 | width: auto; 207 | text-align: center; 208 | } 209 | } 210 | 211 | .file-details-cell { 212 | width: multiply($pad, 20); 213 | text-align: center; 214 | margin-right: 0; 215 | } 216 | 217 | .file-actions-cell { 218 | width: 100%; 219 | height: auto; 220 | } 221 | 222 | .file-footer-buttons { 223 | text-align: left; 224 | } 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /scss/themes/explorer-fa5/theme.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | //colors 15 | $boston-blue: #428bca !default; 16 | $alto: #ddd !default; 17 | $tapa: #777 !default; 18 | $mystic: #e1edf7 !default; 19 | $perano: #a1abff !default; 20 | $white-smoke: #f5f5f5 !default; 21 | 22 | //fonts 23 | $font: Menlo, Monaco, Consolas, "Courier New", monospace !default; 24 | 25 | //standard measures 26 | $pad: 5px !default; 27 | 28 | //operations 29 | @function multiply($pixels, $multiplier) { 30 | @return $pixels * $multiplier; 31 | } 32 | 33 | .theme-explorer-fa5 { 34 | .file-preview-frame { 35 | border: multiply($pad, 0.2) solid $alto; 36 | margin: multiply($pad, 0.4) 0; 37 | width: 100%; 38 | display: flex; 39 | justify-content: space-between; 40 | align-items: center; 41 | 42 | samp { 43 | font-size: 0.9rem; 44 | } 45 | } 46 | 47 | .file-actions { 48 | text-align: center; 49 | } 50 | 51 | .file-upload-indicator, 52 | .file-drag-handle { 53 | text-align: center; 54 | position: absolute; 55 | display: inline-block; 56 | bottom: multiply($pad, 1.6); 57 | right: multiply($pad, 0.8); 58 | width: multiply($pad, 3.2); 59 | height: multiply($pad, 3.2); 60 | font-size: multiply($pad, 3.2); 61 | } 62 | 63 | .explorer-frame { 64 | .kv-file-content { 65 | width: multiply($pad, 32); 66 | height: multiply($pad, 16); 67 | padding: $pad; 68 | text-align: left; 69 | } 70 | } 71 | 72 | .file-thumb-progress { 73 | .progress { 74 | display: block; 75 | white-space: nowrap; 76 | text-overflow: ellipsis; 77 | overflow: hidden; 78 | margin-top: 5px; 79 | } 80 | } 81 | 82 | .explorer-caption { 83 | display: block; 84 | white-space: nowrap; 85 | text-overflow: ellipsis; 86 | overflow: hidden; 87 | padding: 5px; 88 | color: $tapa; 89 | } 90 | 91 | .file-footer-buttons { 92 | padding: 5px; 93 | text-align: right; 94 | } 95 | 96 | .kvsortable-ghost { 97 | opacity: 0.6; 98 | background: $mystic; 99 | border: multiply($pad, 0.4) solid $perano; 100 | } 101 | 102 | .file-preview { 103 | .table { 104 | margin: 0; 105 | } 106 | } 107 | 108 | .file-error-message { 109 | ul { 110 | padding: 5px 0 0 20px; 111 | } 112 | } 113 | 114 | .file-details-cell { 115 | width: 60%; 116 | font-size: 0.95rem; 117 | text-align: left; 118 | margin-right: auto; 119 | } 120 | 121 | .file-actions-cell { 122 | position: relative; 123 | height: multiply($pad, 16); 124 | width: multiply($pad, 40); 125 | } 126 | } 127 | 128 | .explorer-frame { 129 | .file-preview-other { 130 | text-align: center; 131 | } 132 | 133 | .file-preview-text { 134 | display: inline-block; 135 | color: $boston-blue; 136 | border: 1px solid $alto; 137 | font-family: $font; 138 | outline: none; 139 | padding: multiply($pad, 1.6); 140 | resize: none; 141 | } 142 | 143 | .file-preview-html { 144 | display: inline-block; 145 | border: 1px solid $alto; 146 | padding: multiply($pad, 1.6); 147 | overflow: auto; 148 | } 149 | 150 | .file-other-icon { 151 | font-size: 2.6em; 152 | } 153 | 154 | &:not(.kv-zoom-body):hover { 155 | background-color: $white-smoke; 156 | } 157 | } 158 | 159 | .file-zoom-dialog { 160 | .explorer-frame { 161 | .file-other-icon { 162 | //noinspection CssOverwrittenProperties 163 | font-size: 22em; 164 | //noinspection CssOverwrittenProperties 165 | font-size: 50vmin; 166 | } 167 | } 168 | } 169 | 170 | @media only screen and (max-width: 1249px) { 171 | .theme-explorer-fa5 { 172 | .file-preview-frame { 173 | .file-details-cell { 174 | width: 40%; 175 | } 176 | } 177 | } 178 | } 179 | 180 | @media only screen and (max-width: 1023px) { 181 | .theme-explorer-fa5 { 182 | .file-preview-frame { 183 | .file-details-cell { 184 | width: 30%; 185 | } 186 | } 187 | } 188 | } 189 | 190 | @media only screen and (max-width: 767px) { 191 | .theme-explorer-fa5 { 192 | .file-preview-frame { 193 | .file-details-cell { 194 | width: multiply($pad, 40); 195 | } 196 | } 197 | } 198 | } 199 | 200 | @media only screen and (max-width: 575px) { 201 | .theme-explorer-fa5 { 202 | .file-preview-frame { 203 | flex-direction: column; 204 | 205 | .kv-file-content { 206 | width: auto; 207 | text-align: center; 208 | } 209 | } 210 | 211 | .file-details-cell { 212 | width: multiply($pad, 20); 213 | text-align: center; 214 | margin-right: 0; 215 | } 216 | 217 | .file-actions-cell { 218 | width: 100%; 219 | height: auto; 220 | } 221 | 222 | .file-footer-buttons { 223 | text-align: left; 224 | } 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /scss/themes/explorer-fa6/theme.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 6.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | //colors 15 | $boston-blue: #428bca !default; 16 | $alto: #ddd !default; 17 | $tapa: #777 !default; 18 | $mystic: #e1edf7 !default; 19 | $perano: #a1abff !default; 20 | $white-smoke: #f5f5f5 !default; 21 | 22 | //fonts 23 | $font: Menlo, Monaco, Consolas, "Courier New", monospace !default; 24 | 25 | //standard measures 26 | $pad: 5px !default; 27 | 28 | //operations 29 | @function multiply($pixels, $multiplier) { 30 | @return $pixels * $multiplier; 31 | } 32 | 33 | .theme-explorer-fa6 { 34 | .file-preview-frame { 35 | border: multiply($pad, 0.2) solid $alto; 36 | margin: multiply($pad, 0.4) 0; 37 | width: 100%; 38 | display: flex; 39 | justify-content: space-between; 40 | align-items: center; 41 | 42 | samp { 43 | font-size: 0.9rem; 44 | } 45 | } 46 | 47 | .file-actions { 48 | text-align: center; 49 | } 50 | 51 | .file-upload-indicator, 52 | .file-drag-handle { 53 | text-align: center; 54 | position: absolute; 55 | display: inline-block; 56 | bottom: multiply($pad, 1.6); 57 | right: multiply($pad, 0.8); 58 | width: multiply($pad, 3.2); 59 | height: multiply($pad, 3.2); 60 | font-size: multiply($pad, 3.2); 61 | } 62 | 63 | .explorer-frame { 64 | .kv-file-content { 65 | width: multiply($pad, 32); 66 | height: multiply($pad, 16); 67 | padding: $pad; 68 | text-align: left; 69 | } 70 | } 71 | 72 | .file-thumb-progress { 73 | .progress { 74 | display: block; 75 | white-space: nowrap; 76 | text-overflow: ellipsis; 77 | overflow: hidden; 78 | margin-top: 5px; 79 | } 80 | } 81 | 82 | .explorer-caption { 83 | display: block; 84 | white-space: nowrap; 85 | text-overflow: ellipsis; 86 | overflow: hidden; 87 | padding: 5px; 88 | color: $tapa; 89 | } 90 | 91 | .file-footer-buttons { 92 | padding: 5px; 93 | text-align: right; 94 | } 95 | 96 | .kvsortable-ghost { 97 | opacity: 0.6; 98 | background: $mystic; 99 | border: multiply($pad, 0.4) solid $perano; 100 | } 101 | 102 | .file-preview { 103 | .table { 104 | margin: 0; 105 | } 106 | } 107 | 108 | .file-error-message { 109 | ul { 110 | padding: 5px 0 0 20px; 111 | } 112 | } 113 | 114 | .file-details-cell { 115 | width: 60%; 116 | font-size: 0.95rem; 117 | text-align: left; 118 | margin-right: auto; 119 | } 120 | 121 | .file-actions-cell { 122 | position: relative; 123 | height: multiply($pad, 16); 124 | width: multiply($pad, 40); 125 | } 126 | } 127 | 128 | .explorer-frame { 129 | .file-preview-other { 130 | text-align: center; 131 | } 132 | 133 | .file-preview-text { 134 | display: inline-block; 135 | color: $boston-blue; 136 | border: 1px solid $alto; 137 | font-family: $font; 138 | outline: none; 139 | padding: multiply($pad, 1.6); 140 | resize: none; 141 | } 142 | 143 | .file-preview-html { 144 | display: inline-block; 145 | border: 1px solid $alto; 146 | padding: multiply($pad, 1.6); 147 | overflow: auto; 148 | } 149 | 150 | .file-other-icon { 151 | font-size: 2.6em; 152 | } 153 | 154 | &:not(.kv-zoom-body):hover { 155 | background-color: $white-smoke; 156 | } 157 | } 158 | 159 | .file-zoom-dialog { 160 | .explorer-frame { 161 | .file-other-icon { 162 | //noinspection CssOverwrittenProperties 163 | font-size: 22em; 164 | //noinspection CssOverwrittenProperties 165 | font-size: 50vmin; 166 | } 167 | } 168 | } 169 | 170 | @media only screen and (max-width: 1249px) { 171 | .theme-explorer-fa6 { 172 | .file-preview-frame { 173 | .file-details-cell { 174 | width: 40%; 175 | } 176 | } 177 | } 178 | } 179 | 180 | @media only screen and (max-width: 1023px) { 181 | .theme-explorer-fa6 { 182 | .file-preview-frame { 183 | .file-details-cell { 184 | width: 30%; 185 | } 186 | } 187 | } 188 | } 189 | 190 | @media only screen and (max-width: 767px) { 191 | .theme-explorer-fa6 { 192 | .file-preview-frame { 193 | .file-details-cell { 194 | width: multiply($pad, 40); 195 | } 196 | } 197 | } 198 | } 199 | 200 | @media only screen and (max-width: 575px) { 201 | .theme-explorer-fa6 { 202 | .file-preview-frame { 203 | flex-direction: column; 204 | 205 | .kv-file-content { 206 | width: auto; 207 | text-align: center; 208 | } 209 | } 210 | 211 | .file-details-cell { 212 | width: multiply($pad, 20); 213 | text-align: center; 214 | margin-right: 0; 215 | } 216 | 217 | .file-actions-cell { 218 | width: 100%; 219 | height: auto; 220 | } 221 | 222 | .file-footer-buttons { 223 | text-align: left; 224 | } 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /scss/themes/explorer/theme.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.5 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer theme style for bootstrap-fileinput. Load this theme file after loading `fileinput.css`. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | //colors 14 | $boston-blue: #428bca !default; 15 | $alto: #ddd !default; 16 | $tapa: #777 !default; 17 | $mystic: #e1edf7 !default; 18 | $perano: #a1abff !default; 19 | $white-smoke: #f5f5f5 !default; 20 | 21 | //fonts 22 | $font: Menlo, Monaco, Consolas, "Courier New", monospace !default; 23 | 24 | //standard measures 25 | $pad: 5px !default; 26 | 27 | //operations 28 | @function multiply($pixels, $multiplier) { 29 | @return $pixels * $multiplier; 30 | } 31 | 32 | .theme-explorer { 33 | .file-preview-frame { 34 | border: multiply($pad, 0.2) solid $alto; 35 | margin: multiply($pad, 0.4) 0; 36 | width: 100%; 37 | display: flex; 38 | justify-content: space-between; 39 | align-items: center; 40 | 41 | samp { 42 | font-size: 0.9rem; 43 | } 44 | } 45 | 46 | .file-actions { 47 | text-align: center; 48 | } 49 | 50 | .file-upload-indicator, 51 | .file-drag-handle { 52 | text-align: center; 53 | position: absolute; 54 | display: inline-block; 55 | bottom: multiply($pad, 1.6); 56 | right: multiply($pad, 0.8); 57 | width: multiply($pad, 3.2); 58 | height: multiply($pad, 3.2); 59 | font-size: multiply($pad, 3.2); 60 | } 61 | 62 | .explorer-frame { 63 | .kv-file-content { 64 | width: multiply($pad, 32); 65 | height: multiply($pad, 16); 66 | padding: $pad; 67 | text-align: left; 68 | } 69 | } 70 | 71 | .file-thumb-progress { 72 | .progress { 73 | display: block; 74 | white-space: nowrap; 75 | text-overflow: ellipsis; 76 | overflow: hidden; 77 | margin-top: 5px; 78 | } 79 | } 80 | 81 | .explorer-caption { 82 | display: block; 83 | white-space: nowrap; 84 | text-overflow: ellipsis; 85 | overflow: hidden; 86 | padding: 5px; 87 | color: $tapa; 88 | } 89 | 90 | .file-footer-buttons { 91 | padding: 5px; 92 | text-align: right; 93 | } 94 | 95 | .kvsortable-ghost { 96 | opacity: 0.6; 97 | background: $mystic; 98 | border: multiply($pad, 0.4) solid $perano; 99 | } 100 | 101 | .file-preview { 102 | .table { 103 | margin: 0; 104 | } 105 | } 106 | 107 | .file-error-message { 108 | ul { 109 | padding: 5px 0 0 20px; 110 | } 111 | } 112 | 113 | .file-details-cell { 114 | width: 60%; 115 | font-size: 0.95rem; 116 | text-align: left; 117 | margin-right: auto; 118 | } 119 | 120 | .file-actions-cell { 121 | position: relative; 122 | height: multiply($pad, 16); 123 | width: multiply($pad, 40); 124 | } 125 | } 126 | 127 | .explorer-frame { 128 | .file-preview-other { 129 | text-align: center; 130 | } 131 | 132 | .file-preview-text { 133 | display: inline-block; 134 | color: $boston-blue; 135 | border: 1px solid $alto; 136 | font-family: $font; 137 | outline: none; 138 | padding: multiply($pad, 1.6); 139 | resize: none; 140 | } 141 | 142 | .file-preview-html { 143 | display: inline-block; 144 | border: 1px solid $alto; 145 | padding: multiply($pad, 1.6); 146 | overflow: auto; 147 | } 148 | 149 | .file-other-icon { 150 | font-size: 2.6em; 151 | } 152 | 153 | &:not(.kv-zoom-body):hover { 154 | background-color: $white-smoke; 155 | } 156 | } 157 | 158 | .file-zoom-dialog { 159 | .explorer-frame { 160 | .file-other-icon { 161 | //noinspection CssOverwrittenProperties 162 | font-size: 22em; 163 | //noinspection CssOverwrittenProperties 164 | font-size: 50vmin; 165 | } 166 | } 167 | } 168 | 169 | @media only screen and (max-width: 1249px) { 170 | .theme-explorer { 171 | .file-preview-frame { 172 | .file-details-cell { 173 | width: 40%; 174 | } 175 | } 176 | } 177 | } 178 | 179 | @media only screen and (max-width: 1023px) { 180 | .theme-explorer { 181 | .file-preview-frame { 182 | .file-details-cell { 183 | width: 30%; 184 | } 185 | } 186 | } 187 | } 188 | 189 | @media only screen and (max-width: 767px) { 190 | .theme-explorer { 191 | .file-preview-frame { 192 | .file-details-cell { 193 | width: multiply($pad, 40); 194 | } 195 | } 196 | } 197 | } 198 | 199 | @media only screen and (max-width: 575px) { 200 | .theme-explorer { 201 | .file-preview-frame { 202 | flex-direction: column; 203 | 204 | .kv-file-content { 205 | width: auto; 206 | text-align: center; 207 | } 208 | } 209 | 210 | .file-details-cell { 211 | width: multiply($pad, 20); 212 | text-align: center; 213 | margin-right: 0; 214 | } 215 | 216 | .file-actions-cell { 217 | width: 100%; 218 | height: auto; 219 | } 220 | 221 | .file-footer-buttons { 222 | text-align: left; 223 | } 224 | } 225 | } 226 | -------------------------------------------------------------------------------- /themes/bs5/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Bootstrap 5.x icon theme configuration for bootstrap-fileinput. Requires bootstrap 5.x icons CSS to be loaded. 6 | * This is used as the default theme within the bootstrap-fileinput plugin. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | (function (factory) { 15 | 'use strict'; 16 | if (typeof define === 'function' && define.amd) { 17 | define(['jquery'],factory); 18 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 19 | factory(require('jquery')); 20 | } else { 21 | factory(window.jQuery); 22 | } 23 | }(function ($) { 24 | 'use strict'; 25 | $.fn.fileinputBsVersion = '5.x.x'; 26 | $.fn.fileinputThemes.bs5 = { 27 | fileActionSettings: { 28 | removeIcon: '', 29 | uploadIcon: '', 30 | uploadRetryIcon: '', 31 | downloadIcon: '', 32 | rotateIcon: '', 33 | zoomIcon: '', 34 | dragIcon: '', 35 | indicatorNew: '', 36 | indicatorSuccess: '', 37 | indicatorError: '', 38 | indicatorLoading: '', 39 | indicatorPaused: '', 40 | }, 41 | layoutTemplates: { 42 | fileIcon: '' 43 | }, 44 | previewZoomButtonIcons: { 45 | prev: '', 46 | next: '', 47 | rotate: '', 48 | toggleheader: '', 49 | fullscreen: '', 50 | borderless: '', 51 | close: '' 52 | }, 53 | previewFileIcon: '', 54 | browseIcon: ' ', 55 | removeIcon: '', 56 | cancelIcon: '', 57 | pauseIcon: '', 58 | uploadIcon: '', 59 | msgValidationErrorIcon: ' ' 60 | }; 61 | })); 62 | -------------------------------------------------------------------------------- /themes/bs5/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Bootstrap 5.x icon theme configuration for bootstrap-fileinput. Requires bootstrap 5.x icons CSS to be loaded. 6 | * This is used as the default theme within the bootstrap-fileinput plugin. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):i("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(i){"use strict";i.fn.fileinputBsVersion="5.x.x",i.fn.fileinputThemes.bs5={fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:''},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:' ',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/explorer-fa4/theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 4.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | .theme-explorer-fa4 .file-preview-frame { 15 | border: 1px solid #ddd; 16 | margin: 2px 0; 17 | width: 100%; 18 | display: flex; 19 | justify-content: space-between; 20 | align-items: center; 21 | } 22 | .theme-explorer-fa4 .file-actions, 23 | .theme-explorer-fa4 .file-upload-indicator, .theme-explorer-fa4 .file-drag-handle, .theme-explorer-fa4 .explorer-frame .kv-file-content, .theme-explorer-fa4 .file-actions, .explorer-frame .file-preview-other { 24 | text-align: center; 25 | } 26 | .theme-explorer-fa4 .file-upload-indicator, .theme-explorer-fa4 .file-drag-handle { 27 | position: absolute; 28 | display: inline-block; 29 | bottom: 8px; 30 | right: 4px; 31 | width: 16px; 32 | height: 16px; 33 | font-size: 16px; 34 | } 35 | .theme-explorer-fa4 .file-thumb-progress .progress, .theme-explorer-fa4 .explorer-caption { 36 | display: block; 37 | white-space: nowrap; 38 | text-overflow: ellipsis; 39 | overflow: hidden; 40 | } 41 | .theme-explorer-fa4 .file-thumb-progress .progress { 42 | margin-top: 5px; 43 | } 44 | .theme-explorer-fa4 .explorer-caption, 45 | .theme-explorer-fa4 .file-footer-buttons { 46 | padding: 5px; 47 | } 48 | .theme-explorer-fa4 .file-footer-buttons { 49 | text-align: right; 50 | } 51 | .theme-explorer-fa4 .explorer-caption { 52 | color: #777; 53 | padding-top: 5px; 54 | } 55 | .theme-explorer-fa4 .kvsortable-ghost { 56 | opacity: 0.6; 57 | background: #e1edf7; 58 | border: 2px solid #a1abff; 59 | } 60 | .theme-explorer-fa4 .file-preview .table { 61 | margin: 0; 62 | } 63 | .theme-explorer-fa4 .file-error-message ul { 64 | padding: 5px 0 0 20px; 65 | } 66 | .explorer-frame .file-preview-text { 67 | display: inline-block; 68 | color: #428bca; 69 | border: 1px solid #ddd; 70 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 71 | outline: none; 72 | padding: 8px; 73 | resize: none; 74 | } 75 | .explorer-frame .file-preview-html { 76 | display: inline-block; 77 | border: 1px solid #ddd; 78 | padding: 8px; 79 | overflow: auto; 80 | } 81 | .explorer-frame .file-other-icon { 82 | font-size: 2.6em; 83 | } 84 | .explorer-frame:not(.kv-zoom-body):hover { 85 | background-color: #f5f5f5; 86 | } 87 | .theme-explorer-fa4 .file-preview-frame samp { 88 | font-size: 0.9rem; 89 | } 90 | .theme-explorer-fa4 .explorer-frame .kv-file-content { 91 | width: 160px; 92 | height: 80px; 93 | padding: 5px; 94 | text-align: left; 95 | } 96 | .theme-explorer-fa4 .file-details-cell { 97 | width: 60%; 98 | font-size: 0.95rem; 99 | text-align: left; 100 | margin-right: auto; 101 | } 102 | .theme-explorer-fa4 .file-actions-cell { 103 | position: relative; 104 | height: 80px; 105 | width: 200px; 106 | } 107 | /*noinspection CssOverwrittenProperties*/ 108 | .file-zoom-dialog .explorer-frame .file-other-icon { 109 | font-size: 22em; 110 | font-size: 50vmin; 111 | } 112 | @media only screen and (max-width: 1249px) { 113 | .theme-explorer-fa4 .file-preview-frame .file-details-cell { 114 | width: 40%; 115 | } 116 | } 117 | @media only screen and (max-width: 1023px) { 118 | .theme-explorer-fa4 .file-preview-frame .file-details-cell { 119 | width: 30%; 120 | } 121 | } 122 | @media only screen and (max-width: 767px) { 123 | .theme-explorer-fa4 .file-preview-frame .file-details-cell { 124 | width: 200px; 125 | } 126 | } 127 | @media only screen and (max-width: 575px) { 128 | .theme-explorer-fa4 .file-preview-frame { 129 | flex-direction: column; 130 | } 131 | 132 | .theme-explorer-fa4 .file-preview-frame .kv-file-content { 133 | width: auto; 134 | text-align: center; 135 | } 136 | 137 | .theme-explorer-fa4 .file-details-cell { 138 | width: 100px; 139 | text-align: center; 140 | margin-right: 0; 141 | } 142 | 143 | .theme-explorer-fa4 .file-preview-frame .kv-file-content, 144 | .theme-explorer-fa4 .file-details-cell, 145 | .theme-explorer-fa4 .file-actions-cell { 146 | width: 100%; 147 | } 148 | 149 | .theme-explorer-fa4 .file-actions-cell { 150 | height: auto; 151 | } 152 | 153 | .theme-explorer-fa4 .file-footer-buttons { 154 | text-align: left; 155 | } 156 | } -------------------------------------------------------------------------------- /themes/explorer-fa4/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | (function (factory) { 16 | 'use strict'; 17 | if (typeof define === 'function' && define.amd) { 18 | define(['jquery'],factory); 19 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 20 | factory(require('jquery')); 21 | } else { 22 | factory(window.jQuery); 23 | } 24 | }(function ($) { 25 | 'use strict'; 26 | $.fn.fileinputThemes['explorer-fa4'] = { 27 | layoutTemplates: { 28 | footer: '
' + 29 | '
{caption}
' + '{size}{progress}' + 30 | '
' + 31 | '
{indicator} {actions}
', 32 | actions: '{drag}\n' + 33 | '
\n' + 34 | ' \n' + 37 | '
', 38 | fileIcon: ' ' 39 | }, 40 | previewSettings: { 41 | html: {width: '100px', height: '60px'}, 42 | text: {width: '100px', height: '60px'}, 43 | video: {width: 'auto', height: '60px'}, 44 | audio: {width: 'auto', height: '60px'}, 45 | flash: {width: '100%', height: '60px'}, 46 | object: {width: '100%', height: '60px'}, 47 | pdf: {width: '100px', height: '60px'}, 48 | other: {width: '100%', height: '60px'} 49 | }, 50 | frameClass: 'explorer-frame', 51 | fileActionSettings: { 52 | removeIcon: '', 53 | uploadIcon: '', 54 | uploadRetryIcon: '', 55 | downloadIcon: '', 56 | rotateIcon: '', 57 | zoomIcon: '', 58 | dragIcon: '', 59 | indicatorNew: '', 60 | indicatorSuccess: '', 61 | indicatorError: '', 62 | indicatorLoading: '', 63 | indicatorPaused: '' 64 | }, 65 | previewZoomButtonIcons: { 66 | prev: '', 67 | next: '', 68 | rotate: '', 69 | toggleheader: '', 70 | fullscreen: '', 71 | borderless: '', 72 | close: '' 73 | }, 74 | previewFileIcon: '', 75 | browseIcon: '', 76 | removeIcon: '', 77 | cancelIcon: '', 78 | pauseIcon: '', 79 | uploadIcon: '', 80 | msgValidationErrorIcon: ' ' 81 | }; 82 | })); -------------------------------------------------------------------------------- /themes/explorer-fa4/theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 4.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */.theme-explorer-fa4 .file-preview-frame{border:1px solid #ddd;margin:2px 0;width:100%;display:flex;justify-content:space-between;align-items:center}.explorer-frame .file-preview-other,.theme-explorer-fa4 .explorer-frame .kv-file-content,.theme-explorer-fa4 .file-actions,.theme-explorer-fa4 .file-drag-handle,.theme-explorer-fa4 .file-upload-indicator{text-align:center}.theme-explorer-fa4 .file-drag-handle,.theme-explorer-fa4 .file-upload-indicator{position:absolute;display:inline-block;bottom:8px;right:4px;width:16px;height:16px;font-size:16px}.theme-explorer-fa4 .explorer-caption,.theme-explorer-fa4 .file-thumb-progress .progress{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.theme-explorer-fa4 .file-thumb-progress .progress{margin-top:5px}.theme-explorer-fa4 .explorer-caption,.theme-explorer-fa4 .file-footer-buttons{padding:5px}.theme-explorer-fa4 .file-footer-buttons{text-align:right}.theme-explorer-fa4 .explorer-caption{color:#777;padding-top:5px}.theme-explorer-fa4 .kvsortable-ghost{opacity:.6;background:#e1edf7;border:2px solid #a1abff}.theme-explorer-fa4 .file-preview .table{margin:0}.theme-explorer-fa4 .file-error-message ul{padding:5px 0 0 20px}.explorer-frame .file-preview-text{display:inline-block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.explorer-frame .file-preview-html{display:inline-block;border:1px solid #ddd;padding:8px;overflow:auto}.explorer-frame .file-other-icon{font-size:2.6em}.explorer-frame:not(.kv-zoom-body):hover{background-color:#f5f5f5}.theme-explorer-fa4 .file-preview-frame samp{font-size:.9rem}.theme-explorer-fa4 .explorer-frame .kv-file-content{width:160px;height:80px;padding:5px;text-align:left}.theme-explorer-fa4 .file-details-cell{width:60%;font-size:.95rem;text-align:left;margin-right:auto}.theme-explorer-fa4 .file-actions-cell{position:relative;height:80px;width:200px}.file-zoom-dialog .explorer-frame .file-other-icon{font-size:22em;font-size:50vmin}@media only screen and (max-width:1249px){.theme-explorer-fa4 .file-preview-frame .file-details-cell{width:40%}}@media only screen and (max-width:1023px){.theme-explorer-fa4 .file-preview-frame .file-details-cell{width:30%}}@media only screen and (max-width:767px){.theme-explorer-fa4 .file-preview-frame .file-details-cell{width:200px}}@media only screen and (max-width:575px){.theme-explorer-fa4 .file-preview-frame{flex-direction:column}.theme-explorer-fa4 .file-preview-frame .kv-file-content{text-align:center}.theme-explorer-fa4 .file-details-cell{text-align:center;margin-right:0}.theme-explorer-fa4 .file-actions-cell,.theme-explorer-fa4 .file-details-cell,.theme-explorer-fa4 .file-preview-frame .kv-file-content{width:100%}.theme-explorer-fa4 .file-actions-cell{height:auto}.theme-explorer-fa4 .file-footer-buttons{text-align:left}} -------------------------------------------------------------------------------- /themes/explorer-fa4/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.fn.fileinputThemes["explorer-fa4"]={layoutTemplates:{footer:'
{caption}
{size}{progress}
{indicator} {actions}
',actions:'{drag}\n
\n \n
',fileIcon:' '},previewSettings:{html:{width:"100px",height:"60px"},text:{width:"100px",height:"60px"},video:{width:"auto",height:"60px"},audio:{width:"auto",height:"60px"},flash:{width:"100%",height:"60px"},object:{width:"100%",height:"60px"},pdf:{width:"100px",height:"60px"},other:{width:"100%",height:"60px"}},frameClass:"explorer-frame",fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/explorer-fa5/theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 5.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | .theme-explorer-fa5 .file-preview-frame { 15 | border: 1px solid #ddd; 16 | margin: 2px 0; 17 | width: 100%; 18 | display: flex; 19 | justify-content: space-between; 20 | align-items: center; 21 | } 22 | .theme-explorer-fa5 .file-actions, 23 | .theme-explorer-fa5 .file-upload-indicator, .theme-explorer-fa5 .file-drag-handle, .theme-explorer-fa5 .explorer-frame .kv-file-content, .theme-explorer-fa5 .file-actions, .explorer-frame .file-preview-other { 24 | text-align: center; 25 | } 26 | .theme-explorer-fa5 .file-upload-indicator, .theme-explorer-fa5 .file-drag-handle { 27 | position: absolute; 28 | display: inline-block; 29 | bottom: 8px; 30 | right: 4px; 31 | width: 16px; 32 | height: 16px; 33 | font-size: 16px; 34 | } 35 | .theme-explorer-fa5 .file-thumb-progress .progress, .theme-explorer-fa5 .explorer-caption { 36 | display: block; 37 | white-space: nowrap; 38 | text-overflow: ellipsis; 39 | overflow: hidden; 40 | } 41 | .theme-explorer-fa5 .file-thumb-progress .progress { 42 | margin-top: 5px; 43 | } 44 | .theme-explorer-fa5 .explorer-caption, 45 | .theme-explorer-fa5 .file-footer-buttons { 46 | padding: 5px; 47 | } 48 | .theme-explorer-fa5 .file-footer-buttons { 49 | text-align: right; 50 | } 51 | .theme-explorer-fa5 .explorer-caption { 52 | color: #777; 53 | padding-top: 5px; 54 | } 55 | .theme-explorer-fa5 .kvsortable-ghost { 56 | opacity: 0.6; 57 | background: #e1edf7; 58 | border: 2px solid #a1abff; 59 | } 60 | .theme-explorer-fa5 .file-preview .table { 61 | margin: 0; 62 | } 63 | .theme-explorer-fa5 .file-error-message ul { 64 | padding: 5px 0 0 20px; 65 | } 66 | .explorer-frame .file-preview-text { 67 | display: inline-block; 68 | color: #428bca; 69 | border: 1px solid #ddd; 70 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 71 | outline: none; 72 | padding: 8px; 73 | resize: none; 74 | } 75 | .explorer-frame .file-preview-html { 76 | display: inline-block; 77 | border: 1px solid #ddd; 78 | padding: 8px; 79 | overflow: auto; 80 | } 81 | .explorer-frame .file-other-icon { 82 | font-size: 2.6em; 83 | } 84 | .explorer-frame:not(.kv-zoom-body):hover { 85 | background-color: #f5f5f5; 86 | } 87 | .theme-explorer-fa5 .file-preview-frame samp { 88 | font-size: 0.9rem; 89 | } 90 | .theme-explorer-fa5 .explorer-frame .kv-file-content { 91 | width: 160px; 92 | height: 80px; 93 | padding: 5px; 94 | text-align: left; 95 | } 96 | .theme-explorer-fa5 .file-details-cell { 97 | width: 60%; 98 | font-size: 0.95rem; 99 | text-align: left; 100 | margin-right: auto; 101 | } 102 | .theme-explorer-fa5 .file-actions-cell { 103 | position: relative; 104 | height: 80px; 105 | width: 200px; 106 | } 107 | /*noinspection CssOverwrittenProperties*/ 108 | .file-zoom-dialog .explorer-frame .file-other-icon { 109 | font-size: 22em; 110 | font-size: 50vmin; 111 | } 112 | @media only screen and (max-width: 1249px) { 113 | .theme-explorer-fa5 .file-preview-frame .file-details-cell { 114 | width: 40%; 115 | } 116 | } 117 | @media only screen and (max-width: 1023px) { 118 | .theme-explorer-fa5 .file-preview-frame .file-details-cell { 119 | width: 30%; 120 | } 121 | } 122 | @media only screen and (max-width: 767px) { 123 | .theme-explorer-fa5 .file-preview-frame .file-details-cell { 124 | width: 200px; 125 | } 126 | } 127 | @media only screen and (max-width: 575px) { 128 | .theme-explorer-fa5 .file-preview-frame { 129 | flex-direction: column; 130 | } 131 | 132 | .theme-explorer-fa5 .file-preview-frame .kv-file-content { 133 | width: auto; 134 | text-align: center; 135 | } 136 | 137 | .theme-explorer-fa5 .file-details-cell { 138 | width: 100px; 139 | text-align: center; 140 | margin-right: 0; 141 | } 142 | 143 | .theme-explorer-fa5 .file-preview-frame .kv-file-content, 144 | .theme-explorer-fa5 .file-details-cell, 145 | .theme-explorer-fa5 .file-actions-cell { 146 | width: 100%; 147 | } 148 | 149 | .theme-explorer-fa5 .file-actions-cell { 150 | height: auto; 151 | } 152 | 153 | .theme-explorer-fa5 .file-footer-buttons { 154 | text-align: left; 155 | } 156 | } -------------------------------------------------------------------------------- /themes/explorer-fa5/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | (function (factory) { 16 | 'use strict'; 17 | if (typeof define === 'function' && define.amd) { 18 | define(['jquery'],factory); 19 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 20 | factory(require('jquery')); 21 | } else { 22 | factory(window.jQuery); 23 | } 24 | }(function ($) { 25 | 'use strict'; 26 | $.fn.fileinputThemes['explorer-fa5'] = { 27 | layoutTemplates: { 28 | footer: '
' + 29 | '
{caption}
' + '{size}{progress}' + 30 | '
' + 31 | '
{indicator} {actions}
', 32 | actions: '{drag}\n' + 33 | '
\n' + 34 | ' \n' + 37 | '
', 38 | fileIcon: ' ' 39 | }, 40 | previewSettings: { 41 | html: {width: '100px', height: '60px'}, 42 | text: {width: '100px', height: '60px'}, 43 | video: {width: 'auto', height: '60px'}, 44 | audio: {width: 'auto', height: '60px'}, 45 | flash: {width: '100%', height: '60px'}, 46 | object: {width: '100%', height: '60px'}, 47 | pdf: {width: '100px', height: '60px'}, 48 | other: {width: '100%', height: '60px'} 49 | }, 50 | frameClass: 'explorer-frame', 51 | fileActionSettings: { 52 | removeIcon: '', 53 | uploadIcon: '', 54 | uploadRetryIcon: '', 55 | downloadIcon: '', 56 | rotateIcon: '', 57 | zoomIcon: '', 58 | dragIcon: '', 59 | indicatorNew: '', 60 | indicatorSuccess: '', 61 | indicatorError: '', 62 | indicatorLoading: '', 63 | indicatorPaused: '' 64 | }, 65 | previewZoomButtonIcons: { 66 | prev: '', 67 | next: '', 68 | rotate: '', 69 | toggleheader: '', 70 | fullscreen: '', 71 | borderless: '', 72 | close: '' 73 | }, 74 | previewFileIcon: '', 75 | browseIcon: '', 76 | removeIcon: '', 77 | cancelIcon: '', 78 | pauseIcon: '', 79 | uploadIcon: '', 80 | msgValidationErrorIcon: ' ' 81 | }; 82 | })); -------------------------------------------------------------------------------- /themes/explorer-fa5/theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 5.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */.theme-explorer-fa5 .file-preview-frame{border:1px solid #ddd;margin:2px 0;width:100%;display:flex;justify-content:space-between;align-items:center}.explorer-frame .file-preview-other,.theme-explorer-fa5 .explorer-frame .kv-file-content,.theme-explorer-fa5 .file-actions,.theme-explorer-fa5 .file-drag-handle,.theme-explorer-fa5 .file-upload-indicator{text-align:center}.theme-explorer-fa5 .file-drag-handle,.theme-explorer-fa5 .file-upload-indicator{position:absolute;display:inline-block;bottom:8px;right:4px;width:16px;height:16px;font-size:16px}.theme-explorer-fa5 .explorer-caption,.theme-explorer-fa5 .file-thumb-progress .progress{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.theme-explorer-fa5 .file-thumb-progress .progress{margin-top:5px}.theme-explorer-fa5 .explorer-caption,.theme-explorer-fa5 .file-footer-buttons{padding:5px}.theme-explorer-fa5 .file-footer-buttons{text-align:right}.theme-explorer-fa5 .explorer-caption{color:#777;padding-top:5px}.theme-explorer-fa5 .kvsortable-ghost{opacity:.6;background:#e1edf7;border:2px solid #a1abff}.theme-explorer-fa5 .file-preview .table{margin:0}.theme-explorer-fa5 .file-error-message ul{padding:5px 0 0 20px}.explorer-frame .file-preview-text{display:inline-block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.explorer-frame .file-preview-html{display:inline-block;border:1px solid #ddd;padding:8px;overflow:auto}.explorer-frame .file-other-icon{font-size:2.6em}.explorer-frame:not(.kv-zoom-body):hover{background-color:#f5f5f5}.theme-explorer-fa5 .file-preview-frame samp{font-size:.9rem}.theme-explorer-fa5 .explorer-frame .kv-file-content{width:160px;height:80px;padding:5px;text-align:left}.theme-explorer-fa5 .file-details-cell{width:60%;font-size:.95rem;text-align:left;margin-right:auto}.theme-explorer-fa5 .file-actions-cell{position:relative;height:80px;width:200px}.file-zoom-dialog .explorer-frame .file-other-icon{font-size:22em;font-size:50vmin}@media only screen and (max-width:1249px){.theme-explorer-fa5 .file-preview-frame .file-details-cell{width:40%}}@media only screen and (max-width:1023px){.theme-explorer-fa5 .file-preview-frame .file-details-cell{width:30%}}@media only screen and (max-width:767px){.theme-explorer-fa5 .file-preview-frame .file-details-cell{width:200px}}@media only screen and (max-width:575px){.theme-explorer-fa5 .file-preview-frame{flex-direction:column}.theme-explorer-fa5 .file-preview-frame .kv-file-content{text-align:center}.theme-explorer-fa5 .file-details-cell{text-align:center;margin-right:0}.theme-explorer-fa5 .file-actions-cell,.theme-explorer-fa5 .file-details-cell,.theme-explorer-fa5 .file-preview-frame .kv-file-content{width:100%}.theme-explorer-fa5 .file-actions-cell{height:auto}.theme-explorer-fa5 .file-footer-buttons{text-align:left}} -------------------------------------------------------------------------------- /themes/explorer-fa5/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.fn.fileinputThemes["explorer-fa5"]={layoutTemplates:{footer:'
{caption}
{size}{progress}
{indicator} {actions}
',actions:'{drag}\n
\n \n
',fileIcon:' '},previewSettings:{html:{width:"100px",height:"60px"},text:{width:"100px",height:"60px"},video:{width:"auto",height:"60px"},audio:{width:"auto",height:"60px"},flash:{width:"100%",height:"60px"},object:{width:"100%",height:"60px"},pdf:{width:"100px",height:"60px"},other:{width:"100%",height:"60px"}},frameClass:"explorer-frame",fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/explorer-fa6/theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 5.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */ 14 | .theme-explorer-fa6 .file-preview-frame { 15 | border: 1px solid #ddd; 16 | margin: 2px 0; 17 | width: 100%; 18 | display: flex; 19 | justify-content: space-between; 20 | align-items: center; 21 | } 22 | .theme-explorer-fa6 .file-actions, 23 | .theme-explorer-fa6 .file-upload-indicator, .theme-explorer-fa6 .file-drag-handle, .theme-explorer-fa6 .explorer-frame .kv-file-content, .theme-explorer-fa6 .file-actions, .explorer-frame .file-preview-other { 24 | text-align: center; 25 | } 26 | .theme-explorer-fa6 .file-upload-indicator, .theme-explorer-fa6 .file-drag-handle { 27 | position: absolute; 28 | display: inline-block; 29 | bottom: 8px; 30 | right: 4px; 31 | width: 16px; 32 | height: 16px; 33 | font-size: 16px; 34 | } 35 | .theme-explorer-fa6 .file-thumb-progress .progress, .theme-explorer-fa6 .explorer-caption { 36 | display: block; 37 | white-space: nowrap; 38 | text-overflow: ellipsis; 39 | overflow: hidden; 40 | } 41 | .theme-explorer-fa6 .file-thumb-progress .progress { 42 | margin-top: 5px; 43 | } 44 | .theme-explorer-fa6 .explorer-caption, 45 | .theme-explorer-fa6 .file-footer-buttons { 46 | padding: 5px; 47 | } 48 | .theme-explorer-fa6 .file-footer-buttons { 49 | text-align: right; 50 | } 51 | .theme-explorer-fa6 .explorer-caption { 52 | color: #777; 53 | padding-top: 5px; 54 | } 55 | .theme-explorer-fa6 .kvsortable-ghost { 56 | opacity: 0.6; 57 | background: #e1edf7; 58 | border: 2px solid #a1abff; 59 | } 60 | .theme-explorer-fa6 .file-preview .table { 61 | margin: 0; 62 | } 63 | .theme-explorer-fa6 .file-error-message ul { 64 | padding: 5px 0 0 20px; 65 | } 66 | .explorer-frame .file-preview-text { 67 | display: inline-block; 68 | color: #428bca; 69 | border: 1px solid #ddd; 70 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 71 | outline: none; 72 | padding: 8px; 73 | resize: none; 74 | } 75 | .explorer-frame .file-preview-html { 76 | display: inline-block; 77 | border: 1px solid #ddd; 78 | padding: 8px; 79 | overflow: auto; 80 | } 81 | .explorer-frame .file-other-icon { 82 | font-size: 2.6em; 83 | } 84 | .explorer-frame:not(.kv-zoom-body):hover { 85 | background-color: #f5f5f5; 86 | } 87 | .theme-explorer-fa6 .file-preview-frame samp { 88 | font-size: 0.9rem; 89 | } 90 | .theme-explorer-fa6 .explorer-frame .kv-file-content { 91 | width: 160px; 92 | height: 80px; 93 | padding: 5px; 94 | text-align: left; 95 | } 96 | .theme-explorer-fa6 .file-details-cell { 97 | width: 60%; 98 | font-size: 0.95rem; 99 | text-align: left; 100 | margin-right: auto; 101 | } 102 | .theme-explorer-fa6 .file-actions-cell { 103 | position: relative; 104 | height: 80px; 105 | width: 200px; 106 | } 107 | /*noinspection CssOverwrittenProperties*/ 108 | .file-zoom-dialog .explorer-frame .file-other-icon { 109 | font-size: 22em; 110 | font-size: 50vmin; 111 | } 112 | @media only screen and (max-width: 1249px) { 113 | .theme-explorer-fa6 .file-preview-frame .file-details-cell { 114 | width: 40%; 115 | } 116 | } 117 | @media only screen and (max-width: 1023px) { 118 | .theme-explorer-fa6 .file-preview-frame .file-details-cell { 119 | width: 30%; 120 | } 121 | } 122 | @media only screen and (max-width: 767px) { 123 | .theme-explorer-fa6 .file-preview-frame .file-details-cell { 124 | width: 200px; 125 | } 126 | } 127 | @media only screen and (max-width: 575px) { 128 | .theme-explorer-fa6 .file-preview-frame { 129 | flex-direction: column; 130 | } 131 | 132 | .theme-explorer-fa6 .file-preview-frame .kv-file-content { 133 | width: auto; 134 | text-align: center; 135 | } 136 | 137 | .theme-explorer-fa6 .file-details-cell { 138 | width: 100px; 139 | text-align: center; 140 | margin-right: 0; 141 | } 142 | 143 | .theme-explorer-fa6 .file-preview-frame .kv-file-content, 144 | .theme-explorer-fa6 .file-details-cell, 145 | .theme-explorer-fa6 .file-actions-cell { 146 | width: 100%; 147 | } 148 | 149 | .theme-explorer-fa6 .file-actions-cell { 150 | height: auto; 151 | } 152 | 153 | .theme-explorer-fa6 .file-footer-buttons { 154 | text-align: left; 155 | } 156 | } -------------------------------------------------------------------------------- /themes/explorer-fa6/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 6.x theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | (function (factory) { 16 | 'use strict'; 17 | if (typeof define === 'function' && define.amd) { 18 | define(['jquery'],factory); 19 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 20 | factory(require('jquery')); 21 | } else { 22 | factory(window.jQuery); 23 | } 24 | }(function ($) { 25 | 'use strict'; 26 | $.fn.fileinputThemes['explorer-fa6'] = { 27 | layoutTemplates: { 28 | footer: '
' + 29 | '
{caption}
' + '{size}{progress}' + 30 | '
' + 31 | '
{indicator} {actions}
', 32 | actions: '{drag}\n' + 33 | '
\n' + 34 | ' \n' + 37 | '
', 38 | fileIcon: ' ' 39 | }, 40 | previewSettings: { 41 | html: {width: '100px', height: '60px'}, 42 | text: {width: '100px', height: '60px'}, 43 | video: {width: 'auto', height: '60px'}, 44 | audio: {width: 'auto', height: '60px'}, 45 | flash: {width: '100%', height: '60px'}, 46 | object: {width: '100%', height: '60px'}, 47 | pdf: {width: '100px', height: '60px'}, 48 | other: {width: '100%', height: '60px'} 49 | }, 50 | frameClass: 'explorer-frame', 51 | fileActionSettings: { 52 | removeIcon: '', 53 | uploadIcon: '', 54 | uploadRetryIcon: '', 55 | downloadIcon: '', 56 | rotateIcon: '', 57 | zoomIcon: '', 58 | dragIcon: '', 59 | indicatorNew: '', 60 | indicatorSuccess: '', 61 | indicatorError: '', 62 | indicatorLoading: '', 63 | indicatorPaused: '' 64 | }, 65 | previewZoomButtonIcons: { 66 | prev: '', 67 | next: '', 68 | rotate: '', 69 | toggleheader: '', 70 | fullscreen: '', 71 | borderless: '', 72 | close: '' 73 | }, 74 | previewFileIcon: '', 75 | browseIcon: '', 76 | removeIcon: '', 77 | cancelIcon: '', 78 | pauseIcon: '', 79 | uploadIcon: '', 80 | msgValidationErrorIcon: ' ' 81 | }; 82 | })); -------------------------------------------------------------------------------- /themes/explorer-fa6/theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 5.x theme style for bootstrap-fileinput. Load this theme file after loading 6 | * font awesome 5.x CSS and `fileinput.css`. 7 | * 8 | * Author: Kartik Visweswaran 9 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 10 | * 11 | * Licensed under the BSD-3-Clause 12 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 13 | */.theme-explorer-fa6 .file-preview-frame{border:1px solid #ddd;margin:2px 0;width:100%;display:flex;justify-content:space-between;align-items:center}.explorer-frame .file-preview-other,.theme-explorer-fa6 .explorer-frame .kv-file-content,.theme-explorer-fa6 .file-actions,.theme-explorer-fa6 .file-drag-handle,.theme-explorer-fa6 .file-upload-indicator{text-align:center}.theme-explorer-fa6 .file-drag-handle,.theme-explorer-fa6 .file-upload-indicator{position:absolute;display:inline-block;bottom:8px;right:4px;width:16px;height:16px;font-size:16px}.theme-explorer-fa6 .explorer-caption,.theme-explorer-fa6 .file-thumb-progress .progress{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.theme-explorer-fa6 .file-thumb-progress .progress{margin-top:5px}.theme-explorer-fa6 .explorer-caption,.theme-explorer-fa6 .file-footer-buttons{padding:5px}.theme-explorer-fa6 .file-footer-buttons{text-align:right}.theme-explorer-fa6 .explorer-caption{color:#777;padding-top:5px}.theme-explorer-fa6 .kvsortable-ghost{opacity:.6;background:#e1edf7;border:2px solid #a1abff}.theme-explorer-fa6 .file-preview .table{margin:0}.theme-explorer-fa6 .file-error-message ul{padding:5px 0 0 20px}.explorer-frame .file-preview-text{display:inline-block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.explorer-frame .file-preview-html{display:inline-block;border:1px solid #ddd;padding:8px;overflow:auto}.explorer-frame .file-other-icon{font-size:2.6em}.explorer-frame:not(.kv-zoom-body):hover{background-color:#f5f5f5}.theme-explorer-fa6 .file-preview-frame samp{font-size:.9rem}.theme-explorer-fa6 .explorer-frame .kv-file-content{width:160px;height:80px;padding:5px;text-align:left}.theme-explorer-fa6 .file-details-cell{width:60%;font-size:.95rem;text-align:left;margin-right:auto}.theme-explorer-fa6 .file-actions-cell{position:relative;height:80px;width:200px}.file-zoom-dialog .explorer-frame .file-other-icon{font-size:22em;font-size:50vmin}@media only screen and (max-width:1249px){.theme-explorer-fa6 .file-preview-frame .file-details-cell{width:40%}}@media only screen and (max-width:1023px){.theme-explorer-fa6 .file-preview-frame .file-details-cell{width:30%}}@media only screen and (max-width:767px){.theme-explorer-fa6 .file-preview-frame .file-details-cell{width:200px}}@media only screen and (max-width:575px){.theme-explorer-fa6 .file-preview-frame{flex-direction:column}.theme-explorer-fa6 .file-preview-frame .kv-file-content{text-align:center}.theme-explorer-fa6 .file-details-cell{text-align:center;margin-right:0}.theme-explorer-fa6 .file-actions-cell,.theme-explorer-fa6 .file-details-cell,.theme-explorer-fa6 .file-preview-frame .kv-file-content{width:100%}.theme-explorer-fa6 .file-actions-cell{height:auto}.theme-explorer-fa6 .file-footer-buttons{text-align:left}} -------------------------------------------------------------------------------- /themes/explorer-fa6/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer Font Awesome 6.x theme configuration for bootstrap-fileinput. 6 | * Load this theme file after loading `fileinput.js`. Ensure that 7 | * font awesome assets and CSS are loaded on the page as well. 8 | * 9 | * Author: Kartik Visweswaran 10 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 11 | * 12 | * Licensed under the BSD-3-Clause 13 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 14 | */ 15 | !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):i("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(i){"use strict";i.fn.fileinputThemes["explorer-fa6"]={layoutTemplates:{footer:'
{caption}
{size}{progress}
{indicator} {actions}
',actions:'{drag}\n
\n \n
',fileIcon:' '},previewSettings:{html:{width:"100px",height:"60px"},text:{width:"100px",height:"60px"},video:{width:"auto",height:"60px"},audio:{width:"auto",height:"60px"},flash:{width:"100%",height:"60px"},object:{width:"100%",height:"60px"},pdf:{width:"100px",height:"60px"},other:{width:"100%",height:"60px"}},frameClass:"explorer-frame",fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/explorer/theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer theme style for bootstrap-fileinput. Load this theme file after loading `fileinput.css`. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | .theme-explorer .file-preview-frame { 14 | border: 1px solid #ddd; 15 | margin: 2px 0; 16 | width: 100%; 17 | display: flex; 18 | justify-content: space-between; 19 | align-items: center; 20 | } 21 | .theme-explorer .file-actions, 22 | .theme-explorer .file-upload-indicator, .theme-explorer .file-drag-handle, .theme-explorer .explorer-frame .kv-file-content, .theme-explorer .file-actions, .explorer-frame .file-preview-other { 23 | text-align: center; 24 | } 25 | .theme-explorer .file-upload-indicator, .theme-explorer .file-drag-handle { 26 | position: absolute; 27 | display: inline-block; 28 | bottom: 8px; 29 | right: 4px; 30 | width: 16px; 31 | height: 16px; 32 | font-size: 16px; 33 | } 34 | .theme-explorer .file-thumb-progress .progress, .theme-explorer .explorer-caption { 35 | display: block; 36 | white-space: nowrap; 37 | text-overflow: ellipsis; 38 | overflow: hidden; 39 | } 40 | .theme-explorer .file-thumb-progress .progress { 41 | margin-top: 5px; 42 | } 43 | .theme-explorer .explorer-caption, 44 | .theme-explorer .file-footer-buttons { 45 | padding: 5px; 46 | } 47 | .theme-explorer .file-footer-buttons { 48 | text-align: right; 49 | } 50 | .theme-explorer .explorer-caption { 51 | color: #777; 52 | padding-top: 5px; 53 | } 54 | .theme-explorer .kvsortable-ghost { 55 | opacity: 0.6; 56 | background: #e1edf7; 57 | border: 2px solid #a1abff; 58 | } 59 | .theme-explorer .file-preview .table { 60 | margin: 0; 61 | } 62 | .theme-explorer .file-error-message ul { 63 | padding: 5px 0 0 20px; 64 | } 65 | .explorer-frame .file-preview-text { 66 | display: inline-block; 67 | color: #428bca; 68 | border: 1px solid #ddd; 69 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 70 | outline: none; 71 | padding: 8px; 72 | resize: none; 73 | } 74 | .explorer-frame .file-preview-html { 75 | display: inline-block; 76 | border: 1px solid #ddd; 77 | padding: 8px; 78 | overflow: auto; 79 | } 80 | .explorer-frame .file-other-icon { 81 | font-size: 2.6em; 82 | } 83 | .explorer-frame:not(.kv-zoom-body):hover { 84 | background-color: #f5f5f5; 85 | } 86 | .theme-explorer .file-preview-frame samp { 87 | font-size: 0.9rem; 88 | } 89 | .theme-explorer .explorer-frame .kv-file-content { 90 | width: 160px; 91 | height: 80px; 92 | padding: 5px; 93 | text-align: left; 94 | } 95 | .theme-explorer .file-details-cell { 96 | width: 60%; 97 | font-size: 0.95rem; 98 | text-align: left; 99 | margin-right: auto; 100 | } 101 | .theme-explorer .file-actions-cell { 102 | position: relative; 103 | height: 80px; 104 | width: 200px; 105 | } 106 | /*noinspection CssOverwrittenProperties*/ 107 | .file-zoom-dialog .explorer-frame .file-other-icon { 108 | font-size: 22em; 109 | font-size: 50vmin; 110 | } 111 | @media only screen and (max-width: 1249px) { 112 | .theme-explorer .file-preview-frame .file-details-cell { 113 | width: 40%; 114 | } 115 | } 116 | @media only screen and (max-width: 1023px) { 117 | .theme-explorer .file-preview-frame .file-details-cell { 118 | width: 30%; 119 | } 120 | } 121 | @media only screen and (max-width: 767px) { 122 | .theme-explorer .file-preview-frame .file-details-cell { 123 | width: 200px; 124 | } 125 | } 126 | @media only screen and (max-width: 575px) { 127 | .theme-explorer .file-preview-frame { 128 | flex-direction: column; 129 | } 130 | 131 | .theme-explorer .file-preview-frame .kv-file-content { 132 | width: auto; 133 | text-align: center; 134 | } 135 | 136 | .theme-explorer .file-details-cell { 137 | width: 100px; 138 | text-align: center; 139 | margin-right: 0; 140 | } 141 | 142 | .theme-explorer .file-preview-frame .kv-file-content, 143 | .theme-explorer .file-details-cell, 144 | .theme-explorer .file-actions-cell { 145 | width: 100%; 146 | } 147 | 148 | .theme-explorer .file-actions-cell { 149 | height: auto; 150 | } 151 | 152 | .theme-explorer .file-footer-buttons { 153 | text-align: left; 154 | } 155 | } -------------------------------------------------------------------------------- /themes/explorer/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer theme configuration for bootstrap-fileinput. Load this theme file after loading `fileinput.js`. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function (factory) { 14 | 'use strict'; 15 | if (typeof define === 'function' && define.amd) { 16 | define(['jquery'],factory); 17 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 18 | factory(require('jquery')); 19 | } else { 20 | factory(window.jQuery); 21 | } 22 | }(function ($) { 23 | "use strict"; 24 | $.fn.fileinputThemes.explorer = { 25 | layoutTemplates: { 26 | footer: '
' + 27 | '
{caption}
' + '{size}{progress}' + 28 | '
' + 29 | '
{indicator} {actions}
', 30 | actions: '{drag}\n' + 31 | '
\n' + 32 | ' \n' + 35 | '
', 36 | }, 37 | previewSettings: { 38 | html: {width: "100px", height: "60px"}, 39 | text: {width: "100px", height: "60px"}, 40 | video: {width: "auto", height: "60px"}, 41 | audio: {width: "auto", height: "60px"}, 42 | flash: {width: "100%", height: "60px"}, 43 | object: {width: "100%", height: "60px"}, 44 | pdf: {width: "100px", height: "60px"}, 45 | other: {width: "100%", height: "60px"} 46 | }, 47 | frameClass: 'explorer-frame' 48 | }; 49 | })); 50 | -------------------------------------------------------------------------------- /themes/explorer/theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer theme style for bootstrap-fileinput. Load this theme file after loading `fileinput.css`. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */.theme-explorer .file-preview-frame{border:1px solid #ddd;margin:2px 0;width:100%;display:flex;justify-content:space-between;align-items:center}.explorer-frame .file-preview-other,.theme-explorer .explorer-frame .kv-file-content,.theme-explorer .file-actions,.theme-explorer .file-drag-handle,.theme-explorer .file-upload-indicator{text-align:center}.theme-explorer .file-drag-handle,.theme-explorer .file-upload-indicator{position:absolute;display:inline-block;bottom:8px;right:4px;width:16px;height:16px;font-size:16px}.theme-explorer .explorer-caption,.theme-explorer .file-thumb-progress .progress{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.theme-explorer .file-thumb-progress .progress{margin-top:5px}.theme-explorer .explorer-caption,.theme-explorer .file-footer-buttons{padding:5px}.theme-explorer .file-footer-buttons{text-align:right}.theme-explorer .explorer-caption{color:#777;padding-top:5px}.theme-explorer .kvsortable-ghost{opacity:.6;background:#e1edf7;border:2px solid #a1abff}.theme-explorer .file-preview .table{margin:0}.theme-explorer .file-error-message ul{padding:5px 0 0 20px}.explorer-frame .file-preview-text{display:inline-block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.explorer-frame .file-preview-html{display:inline-block;border:1px solid #ddd;padding:8px;overflow:auto}.explorer-frame .file-other-icon{font-size:2.6em}.explorer-frame:not(.kv-zoom-body):hover{background-color:#f5f5f5}.theme-explorer .file-preview-frame samp{font-size:.9rem}.theme-explorer .explorer-frame .kv-file-content{width:160px;height:80px;padding:5px;text-align:left}.theme-explorer .file-details-cell{width:60%;font-size:.95rem;text-align:left;margin-right:auto}.theme-explorer .file-actions-cell{position:relative;height:80px;width:200px}.file-zoom-dialog .explorer-frame .file-other-icon{font-size:22em;font-size:50vmin}@media only screen and (max-width:1249px){.theme-explorer .file-preview-frame .file-details-cell{width:40%}}@media only screen and (max-width:1023px){.theme-explorer .file-preview-frame .file-details-cell{width:30%}}@media only screen and (max-width:767px){.theme-explorer .file-preview-frame .file-details-cell{width:200px}}@media only screen and (max-width:575px){.theme-explorer .file-preview-frame{flex-direction:column}.theme-explorer .file-preview-frame .kv-file-content{text-align:center}.theme-explorer .file-details-cell{text-align:center;margin-right:0}.theme-explorer .file-actions-cell,.theme-explorer .file-details-cell,.theme-explorer .file-preview-frame .kv-file-content{width:100%}.theme-explorer .file-actions-cell{height:auto}.theme-explorer .file-footer-buttons{text-align:left}} -------------------------------------------------------------------------------- /themes/explorer/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Krajee Explorer theme configuration for bootstrap-fileinput. Load this theme file after loading `fileinput.js`. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | !function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(e){"use strict";e.fn.fileinputThemes.explorer={layoutTemplates:{footer:'
{caption}
{size}{progress}
{indicator} {actions}
',actions:'{drag}\n
\n \n
'},previewSettings:{html:{width:"100px",height:"60px"},text:{width:"100px",height:"60px"},video:{width:"auto",height:"60px"},audio:{width:"auto",height:"60px"},flash:{width:"100%",height:"60px"},object:{width:"100%",height:"60px"},pdf:{width:"100px",height:"60px"},other:{width:"100%",height:"60px"}},frameClass:"explorer-frame"}}); -------------------------------------------------------------------------------- /themes/fa4/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 4.x icon theme configuration for bootstrap-fileinput. Requires font awesome 4.x assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function (factory) { 14 | 'use strict'; 15 | if (typeof define === 'function' && define.amd) { 16 | define(['jquery'],factory); 17 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 18 | factory(require('jquery')); 19 | } else { 20 | factory(window.jQuery); 21 | } 22 | }(function ($) { 23 | "use strict"; 24 | 25 | $.fn.fileinputThemes.fa4 = { 26 | fileActionSettings: { 27 | removeIcon: '', 28 | uploadIcon: '', 29 | uploadRetryIcon: '', 30 | downloadIcon: '', 31 | rotateIcon: '', 32 | zoomIcon: '', 33 | dragIcon: '', 34 | indicatorNew: '', 35 | indicatorSuccess: '', 36 | indicatorError: '', 37 | indicatorLoading: '', 38 | indicatorPaused: '' 39 | }, 40 | layoutTemplates: { 41 | fileIcon: ' ' 42 | }, 43 | previewZoomButtonIcons: { 44 | prev: '', 45 | next: '', 46 | rotate: '', 47 | toggleheader: '', 48 | fullscreen: '', 49 | borderless: '', 50 | close: '' 51 | }, 52 | previewFileIcon: '', 53 | browseIcon: '', 54 | removeIcon: '', 55 | cancelIcon: '', 56 | pauseIcon: '', 57 | uploadIcon: '', 58 | msgValidationErrorIcon: ' ' 59 | }; 60 | })); 61 | -------------------------------------------------------------------------------- /themes/fa4/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 4.x icon theme configuration for bootstrap-fileinput. Requires font awesome assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.fn.fileinputThemes.fa4={fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:' '},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/fa5/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 5.x icon theme configuration for bootstrap-fileinput. Requires font awesome 5 assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function (factory) { 14 | 'use strict'; 15 | if (typeof define === 'function' && define.amd) { 16 | define(['jquery'],factory); 17 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 18 | factory(require('jquery')); 19 | } else { 20 | factory(window.jQuery); 21 | } 22 | }(function ($) { 23 | "use strict"; 24 | 25 | $.fn.fileinputThemes.fa5 = { 26 | fileActionSettings: { 27 | removeIcon: '', 28 | uploadIcon: '', 29 | uploadRetryIcon: '', 30 | downloadIcon: '', 31 | rotateIcon: '', 32 | zoomIcon: '', 33 | dragIcon: '', 34 | indicatorNew: '', 35 | indicatorSuccess: '', 36 | indicatorError: '', 37 | indicatorLoading: '', 38 | indicatorPaused: '' 39 | }, 40 | layoutTemplates: { 41 | fileIcon: ' ' 42 | }, 43 | previewZoomButtonIcons: { 44 | prev: '', 45 | next: '', 46 | rotate: '', 47 | toggleheader: '', 48 | fullscreen: '', 49 | borderless: '', 50 | close: '' 51 | }, 52 | previewFileIcon: '', 53 | browseIcon: '', 54 | removeIcon: '', 55 | cancelIcon: '', 56 | pauseIcon: '', 57 | uploadIcon: '', 58 | msgValidationErrorIcon: ' ' 59 | }; 60 | })); 61 | -------------------------------------------------------------------------------- /themes/fa5/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 5.x icon theme configuration for bootstrap-fileinput. Requires font awesome 5 assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.fn.fileinputThemes.fa5={fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:' '},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/fa6/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 6.x icon theme configuration for bootstrap-fileinput. Requires font awesome 6 assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function (factory) { 14 | 'use strict'; 15 | if (typeof define === 'function' && define.amd) { 16 | define(['jquery'],factory); 17 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 18 | factory(require('jquery')); 19 | } else { 20 | factory(window.jQuery); 21 | } 22 | }(function ($) { 23 | "use strict"; 24 | 25 | $.fn.fileinputThemes.fa6 = { 26 | fileActionSettings: { 27 | removeIcon: '', 28 | uploadIcon: '', 29 | uploadRetryIcon: '', 30 | downloadIcon: '', 31 | rotateIcon: '', 32 | zoomIcon: '', 33 | dragIcon: '', 34 | indicatorNew: '', 35 | indicatorSuccess: '', 36 | indicatorError: '', 37 | indicatorLoading: '', 38 | indicatorPaused: '' 39 | }, 40 | layoutTemplates: { 41 | fileIcon: ' ' 42 | }, 43 | previewZoomButtonIcons: { 44 | prev: '', 45 | next: '', 46 | rotate: '', 47 | toggleheader: '', 48 | fullscreen: '', 49 | borderless: '', 50 | close: '' 51 | }, 52 | previewFileIcon: '', 53 | browseIcon: '', 54 | removeIcon: '', 55 | cancelIcon: '', 56 | pauseIcon: '', 57 | uploadIcon: '', 58 | msgValidationErrorIcon: ' ' 59 | }; 60 | })); 61 | -------------------------------------------------------------------------------- /themes/fa6/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome 6 icon theme configuration for bootstrap-fileinput. Requires font awesome 6 assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.fn.fileinputThemes.fa6={fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',rotateIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:' '},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); -------------------------------------------------------------------------------- /themes/gly/theme.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Glyphicon (default) theme configuration for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function (factory) { 14 | 'use strict'; 15 | if (typeof define === 'function' && define.amd) { 16 | define(['jquery'], factory); 17 | } else if (typeof module === 'object' && typeof module.exports === 'object') { 18 | factory(require('jquery')); 19 | } else { 20 | factory(window.jQuery); 21 | } 22 | }(function ($) { 23 | "use strict"; 24 | 25 | $.fn.fileinputThemes.gly = { 26 | fileActionSettings: { 27 | removeIcon: '', 28 | uploadIcon: '', 29 | uploadRetryIcon: '', 30 | rotateIcon: '', 31 | downloadIcon: '', 32 | zoomIcon: '', 33 | dragIcon: '', 34 | indicatorNew: '', 35 | indicatorSuccess: '', 36 | indicatorError: '', 37 | indicatorLoading: '', 38 | indicatorPaused: '' 39 | }, 40 | layoutTemplates: { 41 | fileIcon: '' 42 | }, 43 | previewZoomButtonIcons: { 44 | prev: '', 45 | next: '', 46 | rotate: '', 47 | toggleheader: '', 48 | fullscreen: '', 49 | borderless: '', 50 | close: '' 51 | }, 52 | previewFileIcon: '', 53 | browseIcon: ' ', 54 | removeIcon: '', 55 | cancelIcon: '', 56 | pauseIcon: '', 57 | uploadIcon: '', 58 | msgValidationErrorIcon: ' ' 59 | }; 60 | })); 61 | -------------------------------------------------------------------------------- /themes/gly/theme.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v5.5.0 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Glyphicon (default) theme configuration for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2024, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD-3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):i("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(i){"use strict";i.fn.fileinputThemes.gly={fileActionSettings:{removeIcon:'',uploadIcon:'',uploadRetryIcon:'',rotateIcon:'',downloadIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:''},previewZoomButtonIcons:{prev:'',next:'',rotate:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:' ',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}}); --------------------------------------------------------------------------------