npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

shotify

v0.0.1

Published

Allow users to give feedback with highlighted screenshots

Downloads

5

Readme

Shotify

This library helps you build a feedback form similar to Google.

Working

This library uses html2canvas built by [Niklas von Hertzen himself. The entire screenshot is created on the client side using vanilla Javascript. The rendered image may not be 100% accurate but should be fine for sending feedback.

Installation

Supports almost all ECMAScript 5 compliant browsers.

CDN

<script src="https://cdn.jsdelivr.net/npm/shotify/lib/index.min.js"></script>

NPM


npm install shotify

// or

yarn add shotify

API

Usage

  import Shotify from 'shotify';

  const shotify = new Shotify({
    previewContainer: this.$refs.previewContainer as HTMLElement
  });
  shotify.init();

Options

Below are the options you can pass during booting up of Shotify.

Option|Type|Required|Description -----|-----|-----|----- previewContainer|HTMLDivElement| Yes | HTML Div element that act has placeholder for preview canvas dialogContainer|HTMLElement| No | Modal container that holds your feedback form update|Function | No | Callback event listeners classes|Object | No | Class names to be applied for elements controlled by shotify html2canvasOptions| Object | No | html2canvas library options

Classes

Below are the classes that points maps to the UI elements controlled by Shotify

  • highlight - Highlighted sections
  • blackout - Blackouted sections
  • toolbar - Wrapper class for toolbar containing highlight and blackout options
  • toolbar_action - Wrapper class for actions used inside toolbar
  • toolbar_action_highlight - Highlight toolbar action class
  • toolbar_action_blackout - Blackout toolbar action class
  • toolbar_action_done - Done toolbar action class
  • grippy - Class used for grippy section of the toolbar
  • grippy_icon - Grippy icon for the toolbar
  • remove_action - Wrapper class for remove action
  • remove_icon - Class for remove icon of the user marked sections
  • alert - Alert Info class used for showing toolbar alert message

Events

Below are the events that are emitted during the life cycle of the Shotify

  • processing
    • Shotify is preparing the feedback screenshot
    • You can use this event to show loaders as this may take a while. Depends on the complexity of the page
  • drawing
    • User has selected to highlight/blackout areas of the page
    • You can use this event to hide the feedback modal for example.
  • processed
    • Feedback image is ready to be used.
    • You can use the payload image data being passed to be sent to the server.

Methods

  • init()

    Mounts the Shotify. Shotify will create DOMs needed to capture the user feedback screenshot.

  • destroy()

    Will destroy Shotify instance. Though modern browsers will remove listeners attached to deleted DOMs it is a best practice to call this method when your feedback component is being destroyed so that there is no memory leak

TypeScript

Shotify includes Typescript definitions.

Credits

Inspired by Niklas von Hertzen

License

MIT © Bharathvaj Ganesan