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

@wayke-se/ev-web

v0.1.1

Published

Wayke Electric Vehicle Web

Downloads

3

Readme

Wayke EV Web

This is an embeddable widget used to calculate electric car charging costs.

Getting started

Using npm

npm install @wayke-se/ev-web
import WaykeEvWeb from "@wayke-se/ev-web";
import "@wayke-se/ev-web/dist/index.css";

const context = new WaykeEvWeb({
    url: 'https://api.wayke.se',
    id: '4a18e9a4-f7ee-458e-8bb4-9b6b8b778bbf',
});

Using cdn The associated css is injected into head by default once a new WaykeEvWeb(...) is called. This can be turned off by adding disablecssinjection to the script tag.

   <script
    type="module"
    src="https://cdn.wayke.se/public-assets/wayke-ev-web/x.x.x/index.js"
  ></script>

  <script>
    window.addEventListener("DOMContentLoaded", (_) => {
      var context = new WaykeEvWeb({
        url: 'https://api.wayke.se',
        id: '4a18e9a4-f7ee-458e-8bb4-9b6b8b778bbf',
      });
    });
  </script>

Full configuration

new WaykeEvWeb({
  url: 'https://api.wayke.se',
  marketCode: 'SE',
  id: '4a18e9a4-f7ee-458e-8bb4-9b6b8b778bbf',
  rootId: 'custom-id',
  theme: {
    primaryColor: '#227a29',
    primaryColorForeground: '#b8dbbb',
    linkColor: '#0000ff',
  },
  onEvent: (view, event, data) => console.log(view, event, data),
});

Required

  • id Id of the vehicle from Wayke or a swedish registration number
  • url Should be one of the following urls below:

| Environment | Url | | ----------- | --- | | Test | https://api.wayketech.se | | Production | https://api.wayke.se |

Optional

  • marketCode Provide custom element that WaykeValuationWeb should append to. Defaults to undefined, possible values are EN, SE and NO. If left undefined then EN will be used.
  • rootId Choose the element, id, that WakeEvWeb should append to, by default it will be appended to the body.
  • hash Enables hash in route. Will prevent the user from navigating to the previous page when using the back button. It's recommended to enable this option for a better experience in mobile as the modal takes up the whole screen.
  • onEvent Listen to events. See Events below.
  • theme.primaryColor Override primary color. Defaults to #00b6d3
  • theme.primaryColorForeground Override color placed on top of the primary color. Defaults to #fff
  • theme.linkColor Override color of links. Defaults to #00b6d3

Events

| View | Event | data | | ------|------------------------------- | ------------------------------------------------------------------- | | MAIN | INITIALIZED | { "id": string } | | MAIN | INITIAL_REQUEST_PENDING | { "id": string } | | MAIN | INITIAL_REQUEST_SUCCEEDED | { "id": string } | | MAIN | INITIAL_REQUEST_FAILED | { "id": string, "statusCode": number \| undefined } | | MAIN | DISTANCE_SLIDER | { "id": string } | | MAIN | DISTANCE_SELECT | { "id": string } | | MAIN | MODAL_OPENED | { "id": string } | | MODAL | MODAL_CLOSED | { "id": string } | | MODAL | REQUEST_CUSTOM_PRICE_PENDING | { "id": string } | | MODAL | REQUEST_CUSTOM_PRICE_SUCCEEDED | { "id": string } | | MODAL | REQUEST_CUSTOM_PRICE_FAILED | { "id": string, "statusCode": number \| undefined } | | MODAL | TOGGLE_PRICE | { "id": string, "priceOption": 'standardPrice' \| 'customPrice' } | | MODAL | CUSTOM_PRICE_CHANGE | { "id": string, "customPrice": number } |

CSS specificity

⚠️ We can guarantee to not overwrite any of the host site CSS. But it is possible for the host site to overwrite the styling in Wayke EV. Read how to prevent such overwrites below.

All CSS class names are prefixed using the namespace .waykeev-*. This will prevent this widget to overwrite any CSS applied to the website on which it is implemented on. However, we can not guarantee other CSS files won't overwrite the CSS in Wayke EV. This is due to it is impossible to protect against element selectors.

Reset styles and other necessary CSS targeting elements are selected using a nested selector based of the root element (.waykeev-root) placed inside a :where() to prevent higher specificity than class name selectors.

Avoid using element selectors (div, a, span etc.) in you website's CSS. It is a good practice to only using classes as selectors. If you experience strange styling in the Wayke EV widget, this is probably the case.

Custom CSS

If you want to custommize any CSS we recommend you to include a separate CSS file with your styling using our selectors namespaced for higher specificity. I.e., .you-company-name .waykeev-[COMPONENT_NAME] { };.

The easiest way to add a namespace is to wrap the mounting element (#custom-id) with a div having this namespace set following the example below.

<div class="your-company-name">
  <div id="custom-id"></div>
</div>

Important: We can not guarantee our class names will stay the same or behave the same as they do at a specific time. Please understand that you may have to change the CSS continuously if you decide to add custom styling.

Headings

To prevent multiple h1 on your website, Wayke EV does not include a h1 as root heading level. Instead the headings starts from h2.