0.0.1 • Published 3 years ago

@lilpwa/pwa-files v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

pwa-files

pwa-files is a web component from the PWABuilder team that brings an awesome "install" experience to your Progressive Web App!

Built with lit-element

Supported Browsers

  • Edge
  • Chrome
  • Firefox
  • Safari

Using this component

Install

There are two ways to use this component. For simple projects or just to get started fast, we recommend using the component by script tag. If your project is using npm then we recommend using the npm package.

Script tag

  • Put this script tag in the head of your index.html:
<script type="module" src="https://cdn.jsdelivr.net/npm/@lilpwa/pwafiles"></script>

NPM

  • Run npm install @lilpwa/pwafiles
  • import with import '@lilpwa/pwafiles'

Then you can use the element <pwa-files></pwa-files> anywhere in your template, JSX, html etc.

API

Properties

PropertyAttributeDescriptionTypeDefault
buttonStringbuttonStringControls the text inside the open files buttonstringChoose A File
modemodeShould the button open files or directories?stringfiles
mimeTypesmimeTypesThe mime type of the file you would like a user to chooseArray<string>['image/*']
extensionsextensionsThe extensions of the file you would like a user to chooseArray<string>[".png", ".jpg", ".webp"]
descriptiondescriptionA description that will appear in the OS system file pickerstring""
recursiverecursiveIf a directory is chosen should directories inside that be recursively openedbooleantrue

Methods

nameDescription
saveFile()Saves the currently opened file

Interactions with the methods requires a reference to the element itself, if using webcomponents or a library like Lit-Element or Fast-Element, this can be done easily within the if using the component from the browser.

Events

nameDescription
file-openedev.blobData contains a blob of the user chosen file
dir-openedev.blobData contains a blob of the user chosen directory
errorWhen an error is caught this event will contain the error message

Styling

Shadow Parts

The contents of this component is just a normal HTML button element, and it can be targeted and styled normally using Shadow Parts. You can target this button element using pwa-files::part(innerbutton). For example, to make the background of the button grey, I would need this CSS:

pwa-files::part(innerbutton) {
  background: grey;
}

Usage Example

<pwa-files id="file" buttonString="Pick A File"></pwa-files>

<pwa-files
  id="dir"
  buttonString="Open A Directory"
  mode="directories"
></pwa-files>

<button onclick="saveFile()">Save Current Opened File</button>

<script>
  function saveFile() {
    document.querySelector("#file").saveFile();
  }
</script>

<script type="module">
  import "../build/pwa-files.js";

  document.querySelector("#file").addEventListener("file-opened", (ev) => {
    console.log(ev);
  });

  document.querySelector("#dir").addEventListener("dir-opened", (ev) => {
    console.log(ev);
  });
</script>