Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ember-cli-clipboard

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cli-clipboard

Clipboard.js button component

  • 0.6.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
22K
increased by8.89%
Maintainers
1
Weekly downloads
 
Created
Source

ember-cli-clipboard

Downloads Build Status Ember Observer Score

A simple ember wrapper around clipboard.js (no flash)

Demo Page

http://jkusa.github.io/ember-cli-clipboard

Usage

<!-- Set text directly -->
{{#copy-button
  clipboardText='text to be copied'
  success=(action 'success')
  error=(action 'error')
}}
  Click To Copy
{{/copy-button}}

<!-- Get text from target element -->
<input id="url" type="text" value="https://github.com/jkusa/ember-cli-clipboard">
{{#copy-button
  clipboardTarget="#url"
  success=(action 'success')
  error=(action 'error')
}}
  Click To Copy
{{/copy-button}}

Properties

  • clipboardText - string value to be copied
  • clipboardTarget - selector string of element from which to copy text
  • clipboardAction - string value of operation: copy or cut (default is copy)
  • title - string value of the button's title attribute

Actions

The following clipboard.js custom events are sent as actions

  • success sent on successful copy
  • error sent on failed copy

More information about the clipboard.js events can be found here

Template Helper

The helper is-clipboard-supported can be used to check if clipboard.js is supported or not.

{{#if (is-clipboard-supported)}}
  {{#copy-button clipboardTarget="#url"}}  
    Click To Copy
  {{/copy-button}}
{{/if}}

Test Helpers

Some browsers do not allow simulated clicks to fire execCommand('copy'). This makes testing difficult. To assist with integration testing, the following test helpers are available to test the wiring of the success and error action handlers.

Integration Test Helpers

  • triggerSuccess(context, selector='.copy-btn')
  • triggerError(context, selector='.copy-btn')

Example:

// tests/integration/components/my-test.js

...

import {
  triggerError,
  triggerSuccess
} from '../../helpers/ember-cli-clipboard';

...

test('copy-button integration', function(assert) {
  assert.expect(2);

  this.set('success', () => {
    assert.ok(true, '`success` action handler correctly fired');
  });

  this.set('error', () => {
    assert.ok(true, '`error` action handler correctly fired');
  });

  this.render(hbs`
    {{#copy-button
      classNames='my-copy-btn'
      clipboardText='text to copy'
      success=(action success)
      error=(action error)
    }}
      Click To Copy
    {{/copy-button}}
  `);

  triggerError(this, '.my-copy-btn');
  triggerSuccess(this, '.my-copy-btn');
});

Acceptance Test Helpers

  • triggerCopySuccess(selector='.copy-btn')
  • triggerCopyError(selector='.copy-btn')

To use the helpers in acceptance tests you need to register them in the /tests/helpers/start-app.js file.

// tests/helpers/start-app.js

...

import registerClipboardHelpers from '../helpers/ember-cli-clipboard';

registerClipboardHelpers();

export default function startApp(attrs) {

...

Example:

// tests/acceptance/my-test.js

...

test('copy button message', function(assert) {
  assert.expect(3);

  visit('/');
  andThen(() => {
    assert.notOk(!!find('.alert').length,
      'no alert message is initially present');
  });

  triggerCopySuccess();

  andThen(() => {
    assert.ok(!!find('.alert.alert-success').length,
      'a success message is displayed when a copy is successful');
  });

  triggerCopyError();

  andThen(() => {
    assert.ok(!!find('.alert.alert-info').length,
      'an error message is displayed when a copy is unsuccessful');
  });
});

Browser Support

For browser support information, checkout the clipboard.js documentation:

https://github.com/zenorocha/clipboard.js/#browser-support

Installation

  • git clone this repository
  • npm install
  • bower install

Running

Running Tests

  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://www.ember-cli.com/.

Keywords

FAQs

Package last updated on 16 May 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc