open-index/open-npm huggingface dataset:
npm package: @indlekofer/ajax_json
Description: ajax request
Author: Daniel Indlekofer
Latest version: 1.1.3

# @indlekofer/ajax_json

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fajax_json.svg)](https://badge.fury.io/js/%40indlekofer%2Fajax_json)

## Usage

```js
import request from '@indlekofer/ajax_json';

let setting = {};
request(settings)
  .then((req) => {
    console.log(req.status);
    //containes the parsed json object
    console.log(req.responseJson);
  }, (req) => {
    //e.g.: timeout or json parser problems
    console.log(req.error);
  })
```

## Parameters

  **settings**: *object* settings  
  **req**: *object* (default XMLHttpRequest)   

## Settings

*settings objekt*

  **url**: *string* (default: '/')  
  **method**: *string* (default: 'GET')  
  **body**: *object* request body  
  **query**: *object* request get  
  **async**: *bool* (default: true)  
  **withCredentials**: *bool* (default: false) seend cookies  
  **auth**: *string* (default false) base64 encoded authentication string

## Errors

*compare the req.error with the given error code constants*

  **ERROR_JSON**: invalid json response  
  **ERROR_TIMEOUT**: the request timed out  
  **ERROR_REJECT**: rejected request. e.g.: cors
npm package: @indlekofer/cookie
Description: cookie
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/cookie

## Usage

```js
import get, { set, unset, getAll } from '@indlekofer/cookie';

get('name'); //-> null
set('name', 'value', 1); //set 'name' with 'value' for 1 day
get('name'); //-> 'value'
set('name2', 'value2'); //set 'name2' with 'value2' for ever
unset('name');
getAll(); //-> {'name2': 'value2'}
```

## Function exports

### set

### get (DEFAULT)

### getAll

### unset
npm package: @indlekofer/count
Description: unique count
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/count

tiny script for a simple counter.
this helps to share unique counters between libraries and applications

## Usage

```js
import { get, set, reset, next, restore } from '@indlekofer/count';
```

## Function exports

### get (default)

get count

#### Params

  **key**: string optional key  

#### Returns
  integer

### set

### next

### restore

### reset
npm package: @indlekofer/format_float
Description: string format float
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/format_float

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fformat_float.svg)](https://badge.fury.io/js/%40indlekofer%2Fformat_float)

## Usage

```js
import formatFloat from '@indlekofer/format_float';

console.log(formatFloat("23.456.78", 2, ",", "."); // => 23456.78
```

## Params
  formatFloat(float|string number, int decimals = 2, string decPoint = ",", string thousandsSep = ".", round = true)

  **number**: *string* input number  
  **decimals**: *number* decimals amount  
  **decPoint**: *string* decimal point  
  **thousandsSep**: *string* thousands separator  
  **round**: *bool* do round ?(default: true)  

## Return

  *float* value of given number or null
npm package: @indlekofer/format_numeric
Description: format numeric
Author: Daniel Indlekofer
Latest version: 1.0.2

# @indlekofer/format_numeric

## Usage

```js
import format from '@indlekofer/format_numeric';

console.log(format(23456.78, 4, ",", ".")); //=> "23.456,7800"
```

## Params
  format(float|string number, int decimals = 2, string decPoint = ",", string thousandsSep = ".", round = true)

  **number**: *number* input number  
  **decimals**: *number* decimals amount (default true)  
  **decPoint**: *string* decimal point (default ,)  
  **thousandsSep**: *number* thousands separator (default .)  
  **round**: *bool* do round ?(default: true)  

## Return

  *string* formatted number  

## Exports

### pad

  **value**: *number*  
  **length**: *number* (default 2)  

### Return

  *string*
npm package: @indlekofer/format_query
Description: format query string
Author: Daniel Indlekofer
Latest version: 1.0.2

# @indlekofer/format_query

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fformat_query.svg)](https://badge.fury.io/js/%40indlekofer%2Fformat_query)

create url encoded query string for get parameters.

## Usage

```js
import formatQuery from '@indlekofer/format_query';
console.log(formatQuery({test:1, test2:2})); // => test=1&test2=2
```

## Parameters

  **object**: *object*  

## Return

  **string**
npm package: @indlekofer/format_url
Description: create a url with get parameters
Author: Daniel Indlekofer
Latest version: 1.0.2

# @indlekofer/format_url

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fformat_url.svg)](https://badge.fury.io/js/%40indlekofer%2Fformat_url)

## Usage

```js
import formatUrl from '@indlekofer/format_url';

console.log(formatUrl("http://localhost:8080/?test=1", {test2:2, test3:3}, 'test4')); 
// => http://localhost:8080/?test=1&test2=2&test3=3#test4
```

## Parameters

  **url**: *string*  
  **query**: *object|string*  
  **hash**: *string* optional  

## Return

  *string*
npm package: @indlekofer/is_numeric
Description: is numeric
Author: Daniel Indlekofer
Latest version: 1.1.1

# @indlekofer/is_numeric

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fis_numeric.svg)](https://badge.fury.io/js/%40indlekofer%2Fis_numeric)

returns true for numbers (int, float) and strings containing only numbers (space is not a number).
false for boolean, undefined, null, empty strings, invalid strings, +/-infinity

## Usage

```js
import isNumeric from '@indlekofer/is_numeric';

console.log(isNumeric("100")); // -> true
```

## Params

  **data**: *string|number*  

## Return

  **boolean**
npm package: @indlekofer/is_object
Description: is object
Author: Daniel Indlekofer
Latest version: 1.0.0

# @indlekofer/is_object

## Usage

```js
import isObject from '@indlekofer/is_object';
console.log(isObject({})); // -> true
console.log(isObject([])); // -> false
console.log(isObject('')); // -> false
```
npm package: @indlekofer/media
Description: media
Author: Daniel Indlekofer
Latest version: 1.2.4

# @indlekofer/media

reducer for media related changes.

## export functions

### setup

setup will be called at startup automaticaly (without force) and creates the store reducer.
accepts one argument force (default true)

### unset

remove the reducer. for cleanup methods and testing

### handleChange

action with two arguments (key and value), no dispatch is needed

### handleChangeAll

action with one argument (object of key values), no dispatch is needed

## export constants

### REDUCER

the actual injected reducers name

### TYPE_CHANGE

dispatched action type for handleChange

### TYPE_CHANGE_ALL

dispatched action type for handleChangeAll
npm package: @indlekofer/media_container
Description: media container
Author: Daniel Indlekofer
Latest version: 0.2.1

# @indlekofer/media_container

## Usage

```js
import GET_SIZE, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_container';

const mapStateToProps = (state) => {
  return {
    mediaContainerSize: state[MEDIA_REDUCER].get(GET_SIZE) //mediaContainerSize -> {width: 100, height: 100}
  }
}

```

## Function exports

### setContainer

### setup

### unset

### config

will set initial values for width and height. will be called automaticaly.

## Constant exports

### REDUCER

### GET_SIZE (default)
npm package: @indlekofer/media_dark
Description: darkmode detection
Author: Daniel Indlekofer
Latest version: 1.1.0

# @indlekofer/media_dark

## Usage

```js
import GET_DARK, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_dark';

const mapStateToProps = (state) => {
  return {
    mediaDark: state[MEDIA_REDUCER].get(GET_DARK) //mediaDark -> true|false|null
  }
}

```

## Function exports

### init

### setup

### unset

### config

## Constant exports

### REDUCER

### GET_DARK (default)
npm package: @indlekofer/media_print
Description: media print
Author: Daniel Indlekofer
Latest version: 1.1.0

# @indlekofer/media_print

## Usage

```js
import GET_PRINT, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_print';

const mapStateToProps = (state) => {
  return {
    mediaPrint: state[MEDIA_REDUCER].get(GET_PRINT) //mediaPrint -> false
  }
}

```

## Function exports

### init
detect print and run config with the that value

### setup
add eventlisteners and initialize media

### unset
remove all event listeners

### config
set specific value for print

## Constant exports

### REDUCER

### GET_PRINT (default)
npm package: @indlekofer/media_scroll
Description: media scroll
Author: Daniel Indlekofer
Latest version: 1.3.1

# @indlekofer/media_scroll

## Usage

```js
import GET_SCROLL, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_scroll';

const mapStateToProps = (state) => {
  return {
    mediaScroll: state[MEDIA_REDUCER].get(GET_SCROLL) //mediaScroll -> {y = null, x = null, prevY = null, prevX = null}
  }
}

```

## Function exports

### init

### setup

### unset

### config

## Constant exports

### REDUCER

### GET_SCROLL (default)
npm package: @indlekofer/media_size
Description: media size
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/media_size

## Usage

```js
import GET_SIZE, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_size';

const mapStateToProps = (state) => {
  return {
    mediaSize: state[MEDIA_REDUCER].get(GET_SIZE) //mediaSize -> {width: 100, height: 100}
  }
}

```

## Function exports

### setup

### unset

### config

will set initial values for width and height. will be called automaticaly.

## Constant exports

### REDUCER

### GET_SIZE (default)
npm package: @indlekofer/media_touch
Description: media touch
Author: Daniel Indlekofer
Latest version: 1.0.2

# @indlekofer/media_touch

## Usage

```js
import GET_TOUCH, { REDUCER as MEDIA_REDUCER } from '@indlekofer/media_touch';

const isTouch = useSelector(state => state[MEDIA_REDUCER].get(GET_TOUCH)); //isTouch -> true|false

```

## Function exports

### init

### setup

### unset

### config

## Constant exports

### REDUCER

### GET_TOUCH (default)
npm package: @indlekofer/object_copy
Description: copy a object with excludes
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/object_copy

## Usage

```js
import c from '@indlekofer/object_copy';
```

```js
var obj = c({test1: 1, test2: 2, test3: 3}, ["test2", "test3"]);
console.log(obj); //=> {test1: 1}
```

## Parameters

  **object**: *object* source object  
  **exclude**: *array* with excluded keys from source
npm package: @indlekofer/object_get
Description: get in a object
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/object_get

## Usage

```js
import og from '@indlekofer/object_get';
```

```js
var obj = og({test: 1, test2: 2, test3: {text4: 4}}, ["test3", "test4"]);
console.log(obj); //=> 4
```

## Parameters

  **object**: *object* source object  
  **in**: *array* find   
  **defaultValue**: optional default  
  **nullable**: returns defaultvalue if nullable is set to false (default is true) and value is null
npm package: @indlekofer/object_merge
Description: ## Usage
Author: Daniel Indlekofer
Latest version: 1.1.1

# @indlekofer/object_merge

## Usage

```js
import merge from '@indlekofer/object_merge';
```

```js
var obj = merge([
  {test: 1, test2: 2, test3: 3},
  {test4: 4}
]);
console.log(obj); //=> {test: 1, test2: 2, test3: 3, test: 4}
```

## Parameters

  **objects**: array with any amount of objects to merge
npm package: @indlekofer/object_set
Description: object set
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/object_set

## Usage

```js
import set from '@indlekofer/object_set';

console.log(set({}, ['a', 'b', 'c'], 'c')); // -> {a: {b: {c: 'c'}}}
```

## Parameters

  **object**: *object* source object will be mutated  
  **path**: *array* walk path  
  **value**: *any* value will be set at path end  

## Returns

  reference to object
npm package: @indlekofer/once
Description: once
Author: Daniel Indlekofer
Latest version: 1.1.1

# @indlekofer/once

## Usage

```js
import once from '@indlekofer/once';

var doOnce = once(() => {
  console.log('yes');
});

doOnce() //-> 'yes'
doOnce() //-> nothing
```
npm package: @indlekofer/query_get
Description: return querystring get parameters
Author: Daniel Indlekofer
Latest version: 1.0.0

# @indlekofer/query_get 

## Usage

```js
import queryGet from '@indlekofer/query_get';

var query = queryGet("http://localhost:8080/?test=1&test2=2&test3=3");
console.log(query); //=> {test: "1", test2: "2", test3: "3"}
```

## Parameters

  **url**: url *optional* default use location.search
npm package: @indlekofer/react-piechart
Description: https://di3.github.io/react-piechart/demo/
Author: Daniel Indlekofer
Latest version: 0.1.0

# @indlekofer/react-piechart

https://di3.github.io/react-piechart/demo/

## Props
  **values**: *array*  
  **size**: *integer*  
  **colors**: *array* optional  
  **onClick**: *function* optional
npm package: @indlekofer/react-slider
Description: [![npm version](https://badge.fury.io/js/%40indlekofer%2Freact-slider.svg)](https://badge.fury.io/js/%40indlekofer%2Freact-slider)
Author: Daniel Indlekofer
Latest version: 0.1.0

# @indlekofer/react-slider

[![npm version](https://badge.fury.io/js/%40indlekofer%2Freact-slider.svg)](https://badge.fury.io/js/%40indlekofer%2Freact-slider)

https://indlekofer.github.io/react-slider/demo/

## Props
  **value**: *number*  
  **min**: *number*  
  **max**: *number*  
  **step**: *number*  
  **onChange**: *function*  
  **name**: *string*  
  **style**: *object*  
  **BackgroundElement**: *function|class* background style element  
  **RangeElement**: *function|class* slider range style element  
  **HandleElement**: *function|class* handle style element  

## exports

### BackgroundElement

#### Props
  **height**: *number*  
  **colors**: *array[0-3]* the 4 used colors as strings  

### RangeElement

#### Props
  **height**: *number*  
  **colors**: *array[0-1]* the 2 used colors as strings  

### HandleElement

#### Props
  **style**: *object*
npm package: @indlekofer/redux-store
Description: redux store
Author: Daniel Indlekofer
Latest version: 1.2.1

# @indlekofer/redux-store

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fredux-store.svg)](https://badge.fury.io/js/%40indlekofer%2Fredux-store)

redux store with injectable reducers and middleware for module seperation

## Usage

```js
import store from '@indlekofer/redux-store';

//dispatch actions
store.dispatch({type: "test"});

//dispatch thunk - thunk middleware is always there
store.dispatch(() => (dispatch, getState) => dispatch({type: "test"}));
```

# Function exports

## injectReducer

  **reducer**: function  
  **namespace**: string  
  **force**: boolean (optional default false) replace existing namspaces  

## removeReducer

remove a specific reducer by namespace

  **namespace**: string  

## resetReducers

remove all reducers

## injectMiddleware

  **middleware**: function  
  **namespace**: string  
  **force**: boolean (optional default false) replace existing namspaces  

## removeMiddleware

  **namespace**: string  

## resetMiddleware
npm package: @indlekofer/router
Description: router
Author: Daniel Indlekofer
Latest version: 1.0.1

# @indlekofer/router

## Usage

```js
import Router from '@indlekofer/router';

var RR = new Router();

RR.add('/search/**', (match) => {return 'test'});

RR.dispatch('/search/test/')((arg) => { console.log(arg);}); // -> 'test'


```
npm package: @indlekofer/screen
Description: screens
Author: Daniel Indlekofer
Latest version: 0.3.0

# @indlekofer/screen

[![npm version](https://badge.fury.io/js/%40indlekofer%2Fscreen.svg)](https://badge.fury.io/js/%40indlekofer%2Fscreen)

## Usage

```js
import { register } from '@indlekofer/screen';

```
npm package: @indobase/js
Description: Official Indobase JavaScript/TypeScript SDK
Author: Indobase
Latest version: 1.0.0

# Indobase JS

Official JavaScript client for Indobase.

## Installation

**npm:**
```bash
npm install @indobase/js
```

**yarn:**
```bash
yarn add @indobase/js
```

**pnpm:**
```bash
pnpm add @indobase/js
```

## Usage

```typescript
import { createClient } from "@indobase/js"

const client = createClient("https://your-project.indobase.co", "public-anon-key")
```

## Features
- **Isomorphic**: Works in Node.js, Browsers, Deno, Bun, and React Native.
- **Type-safe**: Built with TypeScript, offering comprehensive intellisense.
- **Unified SDK**: Provides access to Authentication, Database, Realtime, Storage, and Edge Functions.

## TypeScript Support
`@indobase/js` provides first-class TypeScript support. Types are automatically inferred when you provide your database schema.

## Node + Browser Support
Works in modern browsers, Node.js (>=18), Deno, Bun, Edge Functions (Cloudflare Workers), and React Native.

## License
MIT
npm package: @indokq/memory-mcp
Description: MCP server for semantic memory and codebase search with LanceDB and Voyage AI embeddings
Latest version: 1.0.5

# MCP Memory Server

A Model Context Protocol (MCP) server that provides semantic memory and codebase search using LanceDB and Voyage AI embeddings.

## Features

- **Semantic Search**: Search your codebase and memories using natural language
- **Auto-indexing**: Automatically index your codebase files with embeddings
- **Memory Storage**: Store and retrieve important context across sessions
- **Pattern Recognition**: Extract recurring patterns from stored memories
- **Project Context**: Get structured context about your projects

## Installation

### Prerequisites

- Node.js >= 18.0.0
- A [Voyage AI](https://www.voyageai.com/) API key

### Quick Start

Add to your Claude Code configuration (`~/.claude.json`):

```json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@indokq/memory-mcp"],
      "env": {
        "VOYAGE_API_KEY": "your-voyage-api-key"
      }
    }
  }
}
```

## Tools

### `search_memories`

Search past context and memories by semantic similarity. Also searches indexed codebase files.

**Parameters:**
- `query` (string, required): Search query text
- `top_k` (number, optional): Number of results to return (default: 5)
- `threshold` (number, optional): Minimum similarity threshold (default: 0.4)
- `layers` (string[], optional): Filter by memory layers (raw, consolidated, meta)
- `project` (string, optional): Filter by project name
- `include_codebase` (boolean, optional): Also search indexed codebase files (default: true)

### `store_memory`

Store important information as a memory for future retrieval.

**Parameters:**
- `content` (string, required): Content to store as memory
- `tags` (string[], optional): Tags for categorization
- `importance` (number, optional): Importance score 0-1 (default: 0.5)
- `project` (string, optional): Project name
- `layer` (enum, optional): Memory layer - "raw", "consolidated", or "meta" (default: raw)

### `get_patterns`

Get recurring coding patterns and preferences from past sessions.

**Parameters:**
- `project` (string, optional): Filter patterns by project

### `get_project_context`

Get context about a specific project including structure, tech stack, and recent decisions.

**Parameters:**
- `project` (string, required): Project name to get context for

### `index_codebase`

Index codebase files for semantic search. Scans files and generates embeddings.

**Parameters:**
- `path` (string, optional): Root path to index (defaults to current directory)
- `patterns` (string[], optional): Glob patterns for files to include
- `ignore` (string[], optional): Glob patterns for files to ignore

## Configuration

### Environment Variables

- `VOYAGE_API_KEY` (required): Your Voyage AI API key

### Data Storage

All data is stored locally in `~/.claude/memory/lancedb/`.

## Models Used

- **Embeddings**: `voyage-4-lite` (1024 dimensions)
- **Reranking**: `rerank-2.5-lite`

## License

MIT
npm package: @indooorsman/typescript-eslint
Description: This is a bundled esm package of `@typescript-eslint/eslint-plugin` & `@typescript-eslint/parser`, it's super fast to be resolved & downloaded ⚡️⚡️⚡️
Author: indooorsman@gmail.com
Latest version: 8.19.1

# @indooorsman/typescript-eslint

This is a bundled esm package of `@typescript-eslint/eslint-plugin` & `@typescript-eslint/parser`, it's super fast to be resolved & downloaded ⚡️⚡️⚡️

## Installation

```bash
npm i -D @indooorsman/typescript-eslint
# or
yarn add -D @indooorsman/typescript-eslint
```

## Usage

please use in new eslint config file (<https://eslint.org/docs/latest/use/configure/configuration-files-new>)

```js
// eslint.config.js
import js from '@eslint/js';
import importPlugin from 'eslint-plugin-import';
import {
  parser as tsParser,
  plugin as tsPlugin,
  configs as tslintConfigs
} from '@indooorsman/typescript-eslint';

export default [
  js.configs.recommended,
  {
    files: ['**/*.ts', '**/*.tsx'],
    languageOptions: {
      ecmaVersion: 'latest',
      sourceType: 'module',
      parser: tsParser,
      parserOptions: {
        ecmaFeatures: {
          jsx: true
        },
        sourceType: 'module',
        lib: ['ESNext', 'DOM', 'DOM.Iterable'],
        project: ['./tsconfig.json']
      }
    },
    plugins: {
      import: importPlugin,
      '@typescript-eslint': tsPlugin
    },
    settings: {
      'import/parsers': {
        espree: ['.js', '.jsx', '.cjs', '.mjs'],
        // use with eslint-plugin-import
        '@indooorsman/typescript-eslint/parser': ['.ts', '.tsx', '.d.ts']
      }
    },
    rules: {
      // recommended rules
      ...tslintConfigs.recommended.reduce((ret, item) => Object.assign(ret, item.rules ?? {}), {}),

      // your own rules
      '@typescript-eslint/consistent-type-exports': 'error'
    }
  }
];
```
npm package: @indoor-track/uwb
Description: Biblioteca React Native para escanear e identificar sinais de dispositivos via UWB (Ultra-Wideband). Ideal para aplicações de rastreamento indoor em tempo real.
Author: Juniel Brizola
Latest version: 1.0.0

# react-native-uwb

Biblioteca React Native para escanear e identificar sinais de dispositivos via UWB (Ultra-Wideband). Ideal para aplicações de rastreamento indoor em tempo real.

## Installation

```sh
npm install react-native-uwb
```

## Usage


```js
import { multiply } from 'react-native-uwb';

// ...

const result = multiply(3, 7);
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @indoorequal/vue-maplibre-gl
Description: Vue 3 plugin for maplibre-gl
Author: François de Metz
Latest version: 8.4.2

# @indoorequal/vue-maplibre-gl

[![npm](https://img.shields.io/npm/v/@indoorequal/vue-maplibre-gl.svg?style=flat-square)](https://www.npmjs.com/package/@indoorequal/vue-maplibre-gl)
[![npm](https://img.shields.io/npm/dm/@indoorequal/vue-maplibre-gl?style=flat-square)](https://www.npmjs.com/package/@indoorequal/vue-maplibre-gl)
[![size](https://img.shields.io/bundlephobia/minzip/@indoorequal/vue-maplibre-gl?label=size&style=flat-square)](https://bundlephobia.com/package/@indoorequal/vue-maplibre-gl)
[![vue3](https://img.shields.io/badge/vue-3.x-brightgreen.svg?style=flat-square)](https://vuejs.org/)
[![MaplibreGL-JS](https://img.shields.io/badge/Maplibre%20GL%20JS-5.x-brightgreen?style=flat-square)](https://maplibre.org/projects/maplibre-gl-js/)
[![TypeScript](https://img.shields.io/badge/-TypeScript-informational?style=flat-square)](https://www.typescriptlang.org/)

A small Vue 3 plugin for [maplibre-gl-js](https://github.com/maplibre/maplibre-gl-js).

This is a fork of [vue-maplibre-gl](https://github.com/razorness/vue-maplibre-gl) with new features, non-core features removed, and support for MapLibre GL JS > v3.

## Features

- Supports MapLibre GL JS v5.x
- Typescript support
- Components for map, controls, sources, markers, popups and layers
- Support for custom controls
- Support for multiple instances and global access by `useMap(key: string | symbol)`
- Automatic restart on CONTEXT_LOST_WEBGL which can happen on mobile devices when tab was in background for longer time
- Small size


## Documentation

https://indoorequal.github.io/vue-maplibre-gl/

## PRs welcome ♥

If you have ideas, improvements, suggestions etc. don't hesitate to open a pull request.

## License

[MIT](http://opensource.org/licenses/MIT)
npm package: @indoorway/map-js
Description: <p align="center">   <a href="https://www.indoorway.com" title="Indoorway">     <img src="https://www.indoorway.com/brand/indoorway-logo/svg/indoorway_logo.svg" style="width: 200px; height: auto;">   </a> </p>
Author: Tomasz Janusz
Latest version: 1.1.8

<p align="center">
  <a href="https://www.indoorway.com" title="Indoorway">
    <img src="https://www.indoorway.com/brand/indoorway-logo/svg/indoorway_logo.svg" style="width: 200px; height: auto;">
  </a>
</p>

# MapJS - Indoorway's Map Renderer

[![Twitter](https://img.shields.io/badge/twitter-@Indoorway-blue.svg?style=flat)](http://twitter.com/indoorway)

Indoorway lets you find your way indoors. Check it out!

MapJS is based on [Leaflet] and it renders maps from Indoorway's map revisions.

```sh
npm i @indoorway/map-js 
```

then

```ts
  import { MapJS } from '@indoorway/map-js';

  const mapJS = new MapJS();

  const mapRevision = getMapRevisionFromIndoorwayAPI(); // See examples/fetchFromApi.html

  const floor40 = mapJS.render(mapRevision, {
    container: document.getElementById('map-floor40')
  });
```

You can read full documentation in ./dist/docs/index.html

## Community

In case of any troubles or questions contact us at [contact@indoorway.com](mailto:contact@indoorway.com) or visit [Indoorway Community Forum](https://community.indoorway.com).

[Leaflet]: http://leafletjs.com/