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 🙏

© 2026 – Pkg Stats / Ryan Hefner

platskarta

v0.1.2

Published

Bibliotek för platskartan som används i internverktyget.

Readme

Platskarta

Bibliotek för platskartan som används i internverktyget.

Installation

Bun

bun add platskarta

NPM

npm install platskarta

Yarn

yarn add platskarta

Browser

import Map from "https://cdn.jsdelivr.net/npm/platskarta/dist/browser/Map.js";

Användning

Platskartan är tillgänglig klienter och kan inkluderas på flera sätt:

ES

import { Map } from "platskarta";

CJS

const { Map } = require("platskarta");

Exempel

Ett demo finns i /demo.

Requirements

  • Bun

Install

Clone:a repot och kör dessa kommandon i terminalen:

bun install

Run demo

bun run demo

Gå sedan till http://localhost:8080 för att se demot.

API

Map

Map är den primära klassen som används för att skapa platskartan.

Constructor

new Map(mode: MapMode, canvasId: string, mapLayout: MapLayoutInput, editMenuId?: string, toolbeltId?: string, lockedCells: number[] = []);
Mode

Moden bestämmer vilken typ av platskarta som ska skapas. Mode är en enum som kan ha följande värden:

enum MapMode {
    View,
    Edit,
    Preview,
    NoInteract
}
CanvasId

Id för html-canvas-elementet som ska användas för att rendera platskartan.

MapLayout

Layoutet som ska visas eller redigeras. Layouten ser ut så här:

type MapLayoutInput = {
    x: number;
    y: number;
    cells: (Cell | `${number}`)[]; // putting an Int will create the Ints amount of null cells
    globalOverride?: {
        backgroundColor?: string;
        zoomLevel?: PossibleZoomLevels;
        cellStyleOverride?: {
            seat?: CellStyleOverride
            aisle?: CellStyleOverride
            wall?: CellStyleOverride
            door?: CellStyleOverride
            custom?: CellStyleOverride
        }
    }
};

Cell-objektet ser ut så här:

type Cell = {
    type: "seat" | "aisle" | "wall" | "door" | "custom";
    styleOverride?: CellStyleOverride;
}

Style-objektet ser ut så här:

type CellStyleOverride = {
    backgroundColor?: string;
    borderColor?: string;
    borderWidth?: number;
    borderTop?: boolean;
    borderBottom?: boolean;
    borderLeft?: boolean;
    borderRight?: boolean;
    text?: string;
    textFont?: string;
    textWeight?: string;
    textSize?: number;
    textColor?: string;
    textOpacity?: number;
    textTranslateX?: number;
    textTranslateY?: number;
    textStrokeColor?: string;
    textStrokeLineWidth?: number;
    textRotationDegrees?: number;
    opacity?: number;
}

Om ett Cell-objekt inte har styleOverride-attribut så kommer alla attribut i styleOverride att ignoreras.

editMenuId

Id för den html-div som ska användas för att rendera en redigeringsmeny.

Div:en måste innehålla ett canvas-element och ett input-element.

toolbeltId

Id för den html-div som ska användas för att rendera ett verktygsfält.

Div:en måste innehålla knappar med id "generate-labels" och "delete-cells".

lockedCells

Array med cell-index som ska vara låsta för redigering.

switchLayout(mapLayout: MapLayoutInput)

Byter layouten på platskarten.

exportMapLayout(): MapLayoutInput

Exporterar aktuell layout optimiserat för att sparas.

togglePreview()

Toggle:ar förhandsgranskningen i redigeringsläge.

centerCamera()

Centerar kameran på platskarten.

zoomToLevel(level: number, mouseX?: number, mouseY?: number)

Zooma platskarten till en viss nivå. Ser till att hålla zoom-nivån i ett visst intervall.

unselectCells()

Avmarkerar alla valda celler på platskarten.

EventEmitter.on(event: "select", callback: (cellIndex: number) => void)

Händelse som utlöses när en cell väljs. Användbart för att låta användaren klicka på en cell för att välja plats där. Återger indexen på cellen som valts, som senare kan användas för att hitta info om cellen eller komma ihåg valet.

EventEmitter.on(event: "save", callback: (mapLayout: MapLayoutInput) => void)

Händelse som utlöses när redigeraren klickar på knappen "Spara". Användbart för att spara layouten på platskarten.

history: MapLayoutHistory

En instans av MapLayoutHistory som lagrar historik för layouten på platskarten.

MapLayoutHistory

En klass som lagrar historik för layouten på platskarten.

mapLayout: MapLayout

Den aktuella layouten på platskarten.