Elements - file-uploader-input
Part of the reusable Tradeshift UI Components as Web Components. Demo
<style> table { width:100%; } </style>➤ Properties
Property | Attribute | Type | Default | Description |
---|---|---|---|---|
rtl | rtl | Boolean | false | |
disabled | disabled | Boolean | false | Disable the input |
multiple | multiple | Boolean | false | Allow multiple file select. |
size | size | String | sizes.full | Size of the input: 'full'(default), 'medium', 'small' |
acceptedFileExtensions | accepted-file-extensions | Array | List of accepted file extensions | |
disableDragAndDrop | disable-drag-and-drop | Boolean | false | Disable drag and drop functionality |
helpTextTitle | help-text-title | String | '' | |
helpTextMessages | help-text-messages | Array | [] | |
hideFileTypeHelpText | hide-file-type-help-text | Boolean | false | Hide the help text about allowed file types. |
hideMaxFileNumberHelpText | hide-max-file-number-help-text | Boolean | false | Hide the help text about maximum number of files. |
maxFileNumber | max-file-number | Number | Maximum limit for number of files to be shown as helper message | |
fileUploadWrapper | fileUploadWrapper | INTERNAL |
➤ Slots
Name | Description |
---|---|
placeholder-text | Customize the placeholder text |
button-text | Customize the button text |
➤ Events
Name | Description | Payload |
---|---|---|
change | Emitted on file(s) upload | { originalEvent, files } |
➤ How to use it
- Install the package of fileUploaderInput
$ npm i @tradeshift/elements.file-uploader-input --save
- Import the component
import '@tradeshift/elements.file-uploader-input';
or
<script src="node_modules/@tradeshift/elements.file-uploader-input/lib/file-uploader-input.umd.js"></script>
-
Use it like demo
-
Our components rely on having the
Open Sans
available, You can see thefont-weight
andfont-style
you need to load here, or you can just load it from our package (for now)
<link rel="stylesheet" href="node_modules/@tradeshift/elements/src/fonts.css" />
➤ Polyfills
For supporting IE11 you need to add couple of things
- Don't shim CSS Custom Properties in IE11
<!-- Place this in the <head>, before the Web Component polyfills are loaded -->
<script>
if (!window.Promise) {
window.ShadyCSS = { nativeCss: true };
}
</script>
You have two options for polyfills library:
- Installation
$ npm i @open-wc/polyfills-loader
- Load it
import loadPolyfills from '@open-wc/polyfills-loader';
loadPolyfills().then(() => import('./my-app.js'));
- Installation
$ npm i @webcomponents/webcomponentsjs --save
- Enable ES5 class-less Custom Elements
<script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
- Load appropriate polyfills and shims with
@webcomponents/webcomponentsjs
<script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js" defer></script>
➤ How to contribute
Thanks for your interest and help!
- First thing you need to do is read this [Component Checklist] which contains lots of important information about what you need to consider when you are creating/changing components
General info
You can find some links to useful materials about what we are using and some tutorials and articles that can help you get started.
Polyfill Limitations
➤You can see a list of limitations that we should watch out for, here
➤ License
- You can always create forks on GitHub, submit Issues and Pull Requests.
- You can only use Tradeshift Elements to make apps on a Tradeshift platform, e.g. tradeshift.com.
- You can fix a bug until the bugfix is deployed by Tradeshift.
- You can host Tradeshift Elements yourself.
- If you want to make a bigger change or just want to talk with us, reach out to our team here on GitHub.
You can read the full license agreement in the LICENSE.md.