@filerobot/file-explorer
TypeScript icon, indicating that this package has built-in type declarations

0.0.0-beta.42 • Public • Published

@filerobot/file-explorer

Usage

From NPM

The plugin is on NPM as @filerobot/file-explorer

npm install --save @filerobot/file-explorer

then

import FileExplorer from '@filerobot/file-explorer'
...
...
...
filerobot.use(FileExplorer, optionsObject)

From CDN

The plugin from CDN is found inside Filerobot global object Filerobot.FileExplorer

const FileExplorer = window.Filerobot.FileExplorer
...
...
...
filerobot.use(FileExplorer, optionsObject)

Plugin's styles

import '@filerobot/core/dist/style.css'
import '@filerobot/file-explorer/dist/style.css'

or if you prefer the minified version

import '@filerobot/core/dist/style.min.css'
import '@filerobot/file-explorer/dist/style.min.css'

The plugin's css file should be imported after the Core's css file for having the styles shown correctly.

Options

There are different options available for the plugin since it is considered as our main plugin, as a brief the following options are available and for their explanation you would find it below:

{
  id: 'FileExplorer',
  target: '#filerobot-container',
  trigger: '#filerobot-trigger-button',
  inline: false,
  width: 750,
  height: 500,
  floaty: false,
  showBar: true,
  thumbnailWidth: 280,
  waitForThumbnailsBeforeUpload: false,
  showProgressDetails: true,
  hideUploadButton: false,
  hideRetryButton: false,
  hideCancelButton: false,
  note: null,
  closeModalOnClickOutside: false,
  closeAfterFinish: false,
  disableStatusBar: false,
  disableInformer: false,
  disableThumbnailGenerator: false,
  disablePageScrollWhenModalOpen: true,
  animateOpenClose: true,
  onRequestCloseModal: () => this.closeModal(),
  locale: default,
  browserBackButtonCloseModal: false,
  theme: 'light',
  noImgOperationsAndDownload: false,
  disableSelectionActions: false,
  topRightMenuComponentItem: undefined,
  disableExportButton: false,
  tagsInsideGeneral: false,
  viewType: 'grid',
  showFolderTree: false,
  showDetailsView: false,
  contextMenuSubTabs: {
    fileMore: ['META', 'TAGS', 'EMBED', 'VISIBILITY', 'VERSIONING', 'VARIANTS'],
    fileShare: ['SHARE_ASSETS', 'GET_LINK']
  },
  config: {
    container: 'demo',
    apiEndpoint: 'api',
    adminEndpoint: 'admin',
    sassKey: sassKey,
    foldersLimit: 200,
    filesLimit: 50,
    folderPath: '/',
    tagging: {
      language: 'en',
      confidence: 60,
      key: '',
      limit: 10,
      provider: 'google',
      suggestionList: [
        'Alligator',
        'Bask',
        'Crocodilian',
        'Death Roll'
      ]
    }
  },
  noItemsBrowser: false,
  resetAfterClose: false
}

config: object (required)

default: null

The config which contains different options for the backend requests and files/folders handling:

  • container (string - required): Your filerobot container's token which will receive all the requests and handling.
  • apiEndpoint (string - optional): The base API's endpoint will be used for handling the different base APIs, default is api to become https://api.filerobot.com/api/.
  • adminEndpoint (string - optional): The endpoint for handling the different requests communicating with admin's backend, default is admin to become https://admin.filerobot.com/api/.
  • sassKey (string - required): The authorization key for your filerobot account that would allow the plugin to do the different functionalities available.
  • foldersLimit (number - optional ): the number of folders to be retrieved in the 1 request, default is 200,
  • filesLimit (number - optional ): the number of files to be retrieved in the 1 request, default is 50,
  • folderPath (string - optional): the folder path to be used as the root folder and opened as the first folder, default is '/'
  • tagging (object - required): the options that would utizlied for tags functionality with the following properties
    • language (string - optional): the language used for saving & generating tags, default is 'en'.
    • confidence (number - optional): the confidence score from which the auto generated tags would be chosen default is 60.
    • limit (number - optional): the count of tags should be generated, default is 10.
    • provider (string - optional): the provider utilized in generating the tags, default is'google'.
    • suggestionList (array of strings - optional): different tags strings act as suggestions list for the tags functionlaity to be shown while writing some tag and there are some matches between the being written tag & any of the suggestions.

id: string (optional)

default: 'FileExplorer'

An unique identifier for the plugin to be indentified between the other plugins through it.

target: string (required)

default: 'body'

The selector that would be used for rendering the whole plugin, it is passed to querySelector function so it is possible to provide it with an HTML tag ex. body or some CSS selector ex. #filerobot-container or .filerobot-container.

trigger: string (required if inline: false)

default: null

The selector that would be used for triggering the whole plugin's rendering it is passed to querySelectorAll function so it is possible to provide it with an HTML tag ex. body or some CSS selector ex. #filerobot-trigger-button or .filerobot-trigger-button and also you could have multiple triggers as click event would attached to all of them.

inline: boolean (required)

default: false

Defines the way to open the plugin, if true it would open in the element referred to in target property if false it would open as a modal.

width: number/string (required)

default: 700(px)

Defines the width of the plugin, it should be number if you need it specified in px ex. 700 or a percentage string ex. 50%.

height: number/string (required)

default: 500(px)

Defines the height of the plugin, it should be number if you need it specified in px ex. 500 or a percentage string ex. 35%.

floaty: boolean (optional)

default: false

Defines the mode of the plugin whether it is floaty in the current document (the items would be floaty in the document as you are opening the plugin from the document itself ex. scrolling would be from the page's body or plugin's container scroll bar...etc.) that is if the value is true otherwise false would be treated as a normal mode the plugin is embedded in the page and have its own container that would be scrolled...etc.

Note: using this would change some behavior/styles in the whole plugin ex. bigger spacings for some elemnts, having close button instead of back for slided wrappers/modals ...etc. so make sure that you need to use it.

showBar: boolean (optional)

default: true

Whether to choose from showing or hiding the plugin's top bar which contains the search & upload button, if true it would be shown false would be hidden.

thumbnailWidth: number (optional)

default: 280

Defining the width of the thumbnails that would be generated for some of the files being uploaded should be a number refers to px unit ex. 280 which is 280px.

waitForThumbnailsBeforeUpload: boolean (optional)

default: false

Delays the start of uploading process till the thumbnails for files selected to be uploaded are generated.

showProgressDetails: boolean (optional)

default: true

Choose if you need to keep the progress details of uploading process shown or not example of these details are (uploaded files count of total, ETA for the process, total size).

hideUploadButton: boolean (optional)

default: false

Gives the chance to hide the upload files button from the whole pluign.

hideRetryButton: boolean (optional)

default: false

Gives the chance to hide the retry button which retries the uploading process.

hideCancelButton: boolean (optional)

default: false

Gives the same chance for hiding the cancel button while uploading some file(s).

note: string (optional)

default: null

Some text that is being added & shown in the add files panel (which lets you show which pluign to use to upload from) at the bottom for giving the user some note to consider.

closeModalOnClickOutside: boolean (optional)

default: false

It's clear that it adds the possibility to close the pluign's modal on clicking outside of the modal.

closeAfterFinish: boolean (optional)

default: false

Close the modal after finish uploading if true.

Note: Doesn't work with inline: true as it is related to closing the modal only.

disableStatusBar: boolean (optional)

default: false

Disables the status-bar plugin which shows the progress of uploading/downloading if true.

disableInformer: boolean (optional)

default: false

Disables the informer plugin if true that shows some info, warnings & errors to the user which seems very helpful for the user to know.

disableThumbnailGenerator: boolean (optional)

default: false

Disables the thumbnail-generator plugin that generates thumbnails for some of the images.

disablePageScrollWhenModalOpen: boolean (optional)

default: true

Defines if to give the user the possibility to scroll the document while the plugin's modal is shown or not, if true the scroll will be disabled for the document while the modal is shown if false the scroll will be possible and enabled normally for the document.

onRequestCloseModal: () => undefined (optional)

default: closeModal function

Adding some custom function to be triggered when trying to close the modal.

Note: The default behavior which is closing the modal would be overriden.

animateOpenClose: boolean (optional)

default: true

Animates the modal's opening & closing, if true it would be animated, if false it won't.

locale: object (optional)

default: default locales & default locales ext.

Customizing some of the translations or the language's strings and replace the default locale.

theme: string (optional)

default: 'light'

Changing the theme mode (light/dark/auto),

  • light: uses the light theme
  • dark: uses the dark theme
  • auto: respecting the user's default mode and depending on it choosing between dark/light

browserBackButtonCloseModal: boolean (optional)

default: false

Makes the go back button of the browser closes the plugin's modal, works only in case you are having inline: true and showing the plugin in modal.

noImgOperationsAndDownload: boolean (optional)

default: false

For hiding image's operations and download items in context menu (ex. download, edit image...etc.).

disableSelectionActions: boolean (optional)

default: false

For disabling the actions buttons at the top bar that shown on selecting some item.

disableExportButton: boolean (optional)

default: false

Hiding the export button at the top left and showing selected label with the count of selected items.

topRightMenuComponentItem: React.Component (optional)

default: undefined

A react component that would be added at the top right menu of the top bar for appending/expanding some functionality.

tagsInsideGeneral: boolean (optional)

default: false

if true the tags tab would be moved to General tab and General tab would be renamed to General & Tags.

viewType: string (optional)

default: 'grid'

Defines the view type for the items in the plugin (also it is possible to be changed from the pluign's top right options), its values are:

  • grid: shows the items as cards in a grid.
  • list: shows the items as horizontal rows in a list (act like table).
  • tiles: same as list but with more comfortable spaces between the data and default shown columns are fewer.

showFolderTree: boolean (optional)

default: false

Whether to show the folders tree navigation on the left side or not, if true it would be shown by default if false it won't be shown by default (it is possible to be changed from the pluign's top right options).

showDetailsView: boolean (optional)

default: false

Whether to show the details view side navigation on the right which is responsible for showing a brief data or information about the current open folder or selected folder(s)/file(s) (it is possible to be changed from the pluign's top right options).

contextMenuSubTabs: object (optional)

default:

{
  fileMore: ['META', 'TAGS', 'EMBED', 'VISIBILITY', 'VERSIONING', 'VARIANTS'],
  fileShare: ['SHARE_ASSETS', 'GET_LINK']
}

If you need to customize the sub tabs that are opened from the parent tabs of the context menu (the menu shown on clicking right click on the file/folder):

  • fileMore (array of strings): the sub tabs for more details parent tab inside file's context menu, those are all the sub tabs available for that parent tab ['META', 'TAGS', 'EMBED', 'VISIBILITY', 'VERSIONING', 'VARIANTS'].
  • fileShare (array of strings): the sub tabs for share parent tab inside file's context menu, those are all the sub tabs available for that parent tab ['SHARE_ASSETS', 'GET_LINK'].

noItemsBrowser: boolean (optional)

default: false

If true, hides the items browser that shows files/folders, topbar and makes the add files panel (which gives the user chance to choose to upload a file from which plugin) as the primary panel.

resetAfterClose: boolean (optional)

default: false

If true, resets and removes the current uploading state & files after closing the plugin's modal in case inline:false.

Dependents (0)

Package Sidebar

Install

npm i @filerobot/file-explorer

Weekly Downloads

1

Version

0.0.0-beta.42

License

MIT

Unpacked Size

762 kB

Total Files

76

Last publish

Collaborators

  • philipka
  • amrw.js
  • amr26
  • ahmeeedmostafa
  • vitaly.shaposhnik