Skip to content

Releases: github/remote-input-element

v0.4.0

08 Apr 20:09
af06374
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.4.0

v0.3.1

19 Mar 13:47
Compare
Choose a tag to compare
  • fix: output umd build for main key #19

v0.3.0...v0.3.1

v0.3.0

11 Mar 11:28
49b5156
Compare
Choose a tag to compare
  • Remove text/html; fragment from accept header (#22)

v0.2.1...v0.3.0

v0.2.1

29 Jan 08:54
5af14ff
Compare
Choose a tag to compare
  • Accept text/fragment+html as a content-type (#21)

github/auto-complete-element@v0.2.0...v0.2.1

0.2.0

22 Oct 20:03
v0.2.0
Compare
Choose a tag to compare
  • Replace Flow + Babel toolchain with TypeScript #15
  • Remove private state from public API #16
  • Abort in-flight requests #17

v0.1.2

20 Sep 18:45
f02ca30
Compare
Choose a tag to compare
  • Fixed parsing for relative URL in src #13

v0.1.1

12 Sep 11:06
Compare
Choose a tag to compare

v0.1.0...v0.1.1

v0.1.0

10 Sep 21:33
8d4f90c
Compare
Choose a tag to compare
  • Fixed #10 via #11: Only append response text if the response was successful.
  • Added new events:
    • remote-input-success: fired when response is successful and HTML is set.
    • remote-input-error: fired when response is not successful.

v0.0.7

14 Aug 08:13
b8eaa0c
Compare
Choose a tag to compare
  • Merge pull request #8 from github/publish-to-gpr-as-well b24d7b5
  • publish to GPR as a postpublish step 7923480

v0.0.6...v0.0.7

0.0.7

14 Aug 08:12
b24d7b5
Compare
Choose a tag to compare

<remote-input> element

An input element that sends its value to a server endpoint and renders the response body.

Installation

$ npm install @github/remote-input-element

Usage

import '@github/remote-input-element'
<!-- Filter a list of items from the server -->
<remote-input src="/query" aria-owns="results">
  <input>
</remote-input>
<ul id="results"></ul>

A GET request will be sent to /query?q=${input.value}.

The parameter name (q) is customizable with the [param] attribute:

<!-- Live preview of Markdown -->
<remote-input src="/preview" aria-owns="md-preview" param="body">
  <textarea></textarea>
</remote-input>
<div id="md-preview"></div>

Styling loading state

A boolean [loading] attribute is added to <remote-input> when a network request begins and removed when it ends.

.loading-icon { display: none; }
remote-input[loading] .loading-icon { display: inline; }

Events

const remoteInput = document.querySelector('remote-input')

// Network request lifecycle events.
remoteInput.addEventListener('loadstart', function(event) {
  console.log('Network request started', event)
})
remoteInput.addEventListener('loadend', function(event) {
  console.log('Network request complete', event)
})
remoteInput.addEventListener('load', function(event) {
  console.log('Network request succeeded', event)
})
remoteInput.addEventListener('error', function(event) {
  console.log('Network request failed', event)
})

Browser support

Browsers without native custom element support require a polyfill.

  • Chrome
  • Firefox
  • Safari
  • Microsoft Edge

Development

npm install
npm test

License

Distributed under the MIT license. See LICENSE for details.