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/ecom-web

v1.7.3

Published

Wayke Ecom Web

Downloads

367

Readme

Wayke Ecom Web

Repository for Wayke Ecom Web.

Getting started

Using npm

npm install @wayke-se/ecom-web
import WaykeEcomWeb from '@wayke-se/ecom-web';
import '@wayke-se/ecom-web/dist/index.css';

const context = new WaykeEcomWeb({
  id: '36364808-671a-49da-b69a-5e0fc4cfe83e',
  ecomSdkConfig: {
    api: {
      address: 'https://ecom.wayketech.se',
    },
  },
});

constext.start();

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

<button id="ecom-button">Start</button>

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

<script>
  window.addEventListener('DOMContentLoaded', (_) => {
    var context = new WaykeEcomWeb({
      id: '36364808-671a-49da-b69a-5e0fc4cfe83e',
      ecomSdkConfig: {
        api: {
          address: 'https://ecom.wayketech.se',
        },
      },
    });

    document.getElementById('ecom-button').addEventListener('click', () => context.start());
  });
</script>

Full configuration

new WaykeEcomWeb({
  id: '36364808-671a-49da-b69a-5e0fc4cfe83e',
  rootId: 'random-element-id',
  vehicle: {
    title: 'Lorem ipsum',
    shortDescription: 'Lorem ipsum',
    price: 250000,
    imageUrls: ['https://www...', 'https://www...'],
    modelYear: 2013,
    milage: 4900,
    gearBox: 'Automat',
    fuelType: 'Bensin',
  },
  ecomSdkConfig: {
    api: {
      address: 'https://ecom.wayketech.se',
    },
    bankIdThumbprint: '[Dealer Specific BankId Certificate Thumbprint]', // OPTIONAL
  },
  logo: 'https://placehold.jp/180x40.png', // OPTIONAL
  logoX2: 'https://placehold.jp/360x80.png', // OPTIONAL
  onEvent: (view, event, step, data) => // OPTIONAL
    console.log({
      view,
      event,
      step,
      data,
    }),
});

Instance

Instance contains three public methods, .start(), .close() and .destroy().

Required

  • id Id of the vehicle from Wayke
  • ecomSdkConfig.api.address Should be one of the following urls below:

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

Optional

  • rootId Choose the element, id, that WakeEcomWeb should append to, by default it will be appended to the body.
  • vehicle Used to override specific vehicle data properties provided from Wayke.
  • ecomSdkConfig.bankIdThumbprint By default Wayke's BankId certificate is used to verify customer identity. There is an optional configuration property bankIdThumbprint which allows for dealers to use their own BankId certificate. If the certificate's thumbprint is set that certificate will be used instead, given that it is correctly setup in the Dealer back-office.
  • logo Logo to be displayed in the header of the modal.
  • logoX2 Logo to be displayed in the header with higher resolution of the modal.
  • onEvent Attack function to listen for callback. Callback will be called with 3 parameters

onEvent argsuments

| Parameter | Value | Optional | | --------- | --------- | -------- | | view | EcomView | false | | event | EcomEvent | false | | step | EcomStep | true | | data | any | true |

Above types are located in src/Utils/ecomEvent.ts

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 Ecom. Read how to prevent such overwrites below.

All CSS class names are prefixed using the namespace .waykeecom-*. 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 Ecom. 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 (#wayke-ecom) 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 Ecom widget, this is probably the case.

Custom CSS

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

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

<div class="your-company-name">
  <div id="wayke-ecom"></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 Ecom does not include a h1 as root heading level. Instead the headings starts from h2.