open-index/open-npm huggingface dataset:
npm package: @startier/ohrid-jsonrpc-driver
Description: A driver for @startier/ohrid that resolves method calls with a server/client architecture using JSON-RPC 2.0 for communication
Author: Mihail Mojsoski
Latest version: 1.1.1

# @startier/ohrid-jsonrpc-driver

> A driver for @startier/ohrid that resolves method calls with a server/client architecture using JSON-RPC 2.0 for communication.

## Usage

Install the package using `npm` (or anything compatible):

```sh
npm install @startier/ohrid-jsonrpc-driver
```

Add the driver to `services.json`.

### Global

```json
{
  "driver": "@startier/ohrid-jsonrpc-driver"
}
```

### Service-specific

```json
{
  "services": {
    "example": {
      "driver": "@startier/ohrid-jsonrpc-driver",
      "settings": {}
    }
  }
}
```

## Settings

```ts
{
    hub?: boolean,
    port?: number,
    address?: string,
    transport?: "unix" | "tcp" | "websocket" | "socket.io",
    remoteHub?: string
}
```

### `transport`

The transport layer that will be used by the node.

### `remoteHub`

The server node that the node should connect to.

Different format is needed for different transport:

- `unix`: unix socket file path
- `tcp`: `tcp://host:port`
- `websocket`: `ws://host:port`
- `socket.io`: `http://host:port`

### `hub`

When set to `true` this node will be considered a server and will listen for connections.

- Requires (except for transport: `unix`): `port`
- Requires (for transport: `unix`): `address`

### `port`

The port that gets used when the node is considered a server.

### `address`

The file path that gets used when the node is considered a server and uses `unix` transport.
npm package: @startier/ohrid-local-driver
Description: A driver for @startier/ohrid that executes methods locally
Author: Mihail Mojsoski
Latest version: 1.1.0

# @startier/ohrid-local-driver

> A driver for @startier/ohrid that executes methods locally.

> [!WARNING]  
> This driver doesn't have any RPC or transport protocols associated with it.
> It should only be used for testing.

## Usage

Install the package using `npm` (or anything compatible):

```sh
npm install @startier/ohrid-local-driver
```

Add the driver to `services.json`.

### Global

```json
{
  "driver": "@startier/ohrid-local-driver"
}
```

### Service-specific

```json
{
  "services": {
    "example": {
      "driver": "@startier/ohrid-local-driver",
      "settings": {}
    }
  }
}
```

## Settings

```ts
{
    executeRemoteCalls?: boolean
}
```

### `executeRemoteCalls`

When set to `true` remote calls are executed as if they were local instead of throwing an exception.
npm package: @startier/pg-utils
Description: Utility functions for PostgreSQL
Author: Simeon Markoski, Mihail Mojsoski
Latest version: 1.0.4

# pg-utils

**pg-utils** is a Node.js library designed to simplify interactions with PostgreSQL databases by providing convenient functions for common tasks such as inserting, updating, querying, and error handling. This package utilizes the popular `pg` library for database connections.

## Installation

You can install **pg-utils** via npm:

```bash
npm install pg-utils
```

## Usage

### Importing

```javascript
import { Pool } from 'pg';
import { insert, update, has, getValue } from 'pg-utils';
```

### Connecting to PostgreSQL

Before using any functions, make sure you have established a connection to your PostgreSQL database using `pg.Pool`.

```javascript
const pool = new Pool({
  // Your PostgreSQL connection configuration
});
```

### Inserting Data

```javascript
const tempData = { /* Data to be inserted */ };
const tableName = 'your_table_name';

// Insert data into the specified table
const result = await insert(pool, tempData, tableName);

// Optionally, specify columns to return after insertion
const columnsToReturn = ['id', 'name'];
const resultWithReturn = await insert(pool, tempData, tableName, columnsToReturn);
```

### Updating Data

```javascript
const updateData = { /* Updated data */ };
const tableName = 'your_table_name';
const whereClause = [['id', 123]]; // Example WHERE clause

await update(pool, updateData, tableName, whereClause);
```

### Querying Data

```javascript
const query = 'SELECT * FROM your_table WHERE condition = true';

// Check if any data exists based on the query
const exists = await has(pool, query);

// Get data based on the query
const data = await getValue(pool, query);
```

### Error Handling

The package provides custom error handling with `ThrowError` class, which extends `Error`.

```javascript
try {
  // Your code using pg-utils functions
} catch (error) {
  if (error instanceof ThrowError) {
    console.error('Query execution failed:', error.query);
  } else {
    console.error('An unexpected error occurred:', error);
  }
}
```

## Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

## License

This project is licensed under the [MIT License](LICENSE).
npm package: @startinblox/component-babelfish
Description: Babelfish service catalog integration into startinblox as a component
Author: startinblox
Latest version: 1.0.10

# Solid Babelfish

This is the repository of our component integrating the Babelfish services API, allowing a user to:
- Browse the list of available Ontochain services
- Access the detail of a service
- ?? Register a new service ??


## Access core within your component

Use `core` variable directly, eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-babelfish",
      class extends core.SolidTemplateElement {
        constructor() {
          core.store.put({
            'username': 'Superman',
            '@context': this.context,
          }, 'http://server/users/admin/');
        }
      }
    );
  });
});
```

## Target a local asset

Use the `utils.path()` function to return the actual path of your component (local or cdn), eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-babelfish",
      class extends core.SolidTemplateElement {
        constructor() {
          core.Helpers.importCSS(utils.path() + '/styles/index.css?min');
        }
      }
    );
  });
});
```
npm package: @startinblox/component-boilerplate
Description: Boilerplate component for startinblox
Author: startinblox
Latest version: 2.1.1

# Solid Boilerplate

This is a ready-to-use base component, to quickly start new sib component projects with best practices in mind.

## WARNING

This component is still a work-in-progress. Do not use things you find here as references for now.

## Access core within your component

Use `core` variable directly, eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-boilerplate",
      class extends core.SolidTemplateElement {
        constructor() {
          core.store.put({
            'username': 'Superman',
            '@context': this.context,
          }, 'http://server/users/admin/');
        }
      }
    );
  });
});
```

## Target a local asset

Use the `utils.path()` function to return the actual path of your component (local or cdn), eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-boilerplate",
      class extends core.SolidTemplateElement {
        constructor() {
          core.Helpers.importCSS(utils.path() + '/styles/index.css?min');
        }
      }
    );
  });
});
```
npm package: @startinblox/component-dashboard
Description: Dashboard component for startinblox
Author: startinblox
Latest version: 7.0.5

# Solid Dashboard

`<solid-dashboard>` is a Sib component to generate dashboard from LDP datas.

## Installation

In your django project, add the `djangoldp_dashboard` package:

```python
# packages.yml
## DjangoLDP packages ##
ldppackages:
  djangoldp_dashboard: djangoldp_dashboard
```

Then, run in your shell :

```bash
pip install djangoldp_dashboard
```

If everything work correctly, you should be able to see the package in your Django Admin.

Then you have to load the initialisation data to make it work.

## How to use

Once the package is installed, you can use the `solid-dashboard` component:

```html
<html>
<head>
  <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/core/+esm"></script>
  <script type="module" src="https://cdn.skypack.dev/@startinblox/component-dashboard/"></script>
</head>

<body>
  <!-- use the component -->
  <solid-dashboard
    data-src="[url]">
  </solid-dashboard>
</body>
</html>
```

Notes that the "[url]" should be replace by your code fragment api link.

## Having multiple dashboard

You can use multiple dashboard on your application by using the `target` discriminator.

It expect the card to have a matching `target`.

## Card background

A card can have a `background` valued as a boolean.

If background is `false`, then the card will show a transparent background with no border box.

### Parameters

| Name            | Default                | Description                                                  |
| --------------- | ---------------------- | :----------------------------------------------------------- |
| `data-src`      | `undefined`            | URL of the dashboards endpoint.                              |
| `target`        | `default`              | Name of the dashboard to show.                               |

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
```

Watch files & rebuild on change with this command:

```bash
npm run watch
```
npm package: @startinblox/component-editor
Description: Editor component for startinblox
Author: startinblox
Latest version: 0.2.16

# SOLID Editor

`<solid-editor>` is a Sib demo editor to learn the basics of the framework.
It uses CodeMirror : https://codemirror.net/ and it must be related to "code fragment data". 
You can see how it work on the techno page of the website Startin'Blox.
Do not hesitate to suggest improvment!

## Try the demo
To launch the demo, please run at the root of the component : 

```bash
python3 -m http.server 8001
```

## Installation
In your django project, add the `djangoldp_editor` package:

```python
# packages.yml
## DjangoLDP packages ##
ldppackages:
  djangoldp_editor: djangoldp_editor
```

Then, run in your shell : 
```bash
pip install djangoldp_editor
```
If everything work correctly, you should be able to see the package in your Django Admin.

Then you have to load the initialisation data to make it work.
You'll find at the root of the component repository a file named "initialisation-data.json"
Put it in the root of your server and run the following command : 

```bash
python3 manage.py loaddata initialisation-data.json
```
If there is no error, it works!

___Be careful!___

The api's urls in the data loaded begin by "localhost". When you set the editor in production, you should have a check of all the content to set you api base url.

For example in codefragments, the first field "body" : 
```html
<solid-display data-src="http://127.0.0.1:8000/helloworlds/" fields="helloword"></solid-display>
```
Should become : 
```html
<solid-display data-src="http://yourproductionapi/helloworlds/" fields="helloword"></solid-display>
```


## How to use
Once the package is installed, you can use the `solid-editor` component:
```html
<html>
<head>
  <!-- import the module in the head of the page -->
  <script type="module" src="https://cdn.skypack.dev/@startinblox/component-editor/"></script>
</head>

<body>
  <!-- use the component -->
  <solid-editor
    data-src="[url]"
    paginate-by='1'>
  </solid-editor>
</body>
</html>
```
Notes that the "[url]" should be replace by your code fragment api link.



### Parameters

| Name            | Default                | Description                                                  |
| --------------- | ---------------------- | :----------------------------------------------------------- |
| `data-src`      | `undefined`            | URL of the LDP editor's code's fragments to display.                         |
| `extra-context` | `{}`                   | Custom extra context |
| `paginate`      | `10`                   | For the proper functioning of the editor, please enter: "paginate-by='1'"



## Contribute !

As the Startin'Blox project is evolving a lot and quickly, we're going to need to update this demo regularly! 
For any suggestion, you can open an issue or contact the last person who updated it: 

alice@startinblox.com

Thanks!
npm package: @startinblox/component-epmap
Description: ```html <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/component-epmap"></script>
Author: startinblox
Latest version: 3.0.1

# Solid EPMAP

```html
<script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/component-epmap"></script>

<solid-epmap
        data-src="https://api.energie-partagee-dev.startinblox.com"
        nested-field=""
        region=""></solid-epmap>
```

## Developpers

### Installation

```bash
npm install
```

Build for production with:

```bash
npm run build
# npm run serve
```

Build for dev while watching for changes with:

```bash
npm run watch
```

## GeoJSON

[Departments & Regions GeoJSON source](https://github.com/gregoiredavid/france-geojson/) - 07/05/24.
npm package: @startinblox/component-eptable
Description: Custom solid-table component for enerie-partagee
Author: startinblox
Latest version: 1.0.3

# Solid EpTable

Custom table component for EnergiePartagee to investigate performances issues and add basic support for server-side pagination

## WARNING

This component is still a work-in-progress. Do not use things you find here as references for now.
npm package: @startinblox/component-fc-ui
Description: Startin'blox Boilerplate
Author: startinblox
Latest version: 1.1.0

# Boilerplate

## Table of Contents

1. [Introduction](#introduction)
2. [Installation](#installation)
3. [Development](#development)
4. [Tests](#tests)
5. [Storybook](#storybook)
6. [Build](#build)
7. [License](#license)

## Introduction

This is a boilerplate of startin'blox component.

## Installation

```bash
npm install
```

## Development

```bash
npm run watch
```

## Tests

```bash
npm run cy:run
```

or

```bash
npm run cy:open
```

## Storybook

```bash
npm run storybook
```

## Build

```bash
npm run build
```

## Localization

This project uses [`@lit/localize`](https://www.npmjs.com/package/@lit/localize) for internationalization.

### Extracting strings

To extract strings for translation, run:

```bash
npm run locale:extract
```

This command will generate XLIFF files in the `locales` directory.

### Changing locale

To change the locale, run:

```javascript
window.setLocale.map((setLocale) => setLocale("your-lang-code"));
```

### Getting current locale

To get the current locale, run:

```javascript
window.getLocale.map((locale) => console.log(locale));
```

## License

[MIT](LICENSE)
npm package: @startinblox/component-job-board
Description: Solid Job Board serves the job board component
Author: startinblox
Latest version: 6.4.5

# Solid Job Board

Solid Job Board serves the job board component

## How to use

Once the package is installed, you can use the `solid-job-board` component:

```html
<html>
<head>
  <!-- import the module in the head of the page -->
  <script type="module" src="https://cdn.skypack.dev/@startinblox/component-job-board"></script>
</head>

<body>
  <!-- use the component -->
  <solid-job-board
    data-src="https://your.url/job-offers/"
    range-skills="https://your.url/skills/"
  ></solid-job-board>
</body>
</html>
```

### Parameters

| Name            | Default                | Description                                                  |
| --------------- | ---------------------- | :----------------------------------------------------------- |
| `data-src`      | `undefined`            | Data source of your user container |
| `extra-context` | `{}`                   | Custom extra context |
| `range-skills`      | `undefined`                   | Data source of your skills container |

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
```

Watch files & rebuild on change with this command:

```bash
npm run watch
```
npm package: @startinblox/component-mfssia
Description: ## Orbit configuration
Author: startinblox
Latest version: 1.0.0

# Solid MFSSIA

## Orbit configuration


```json
{
  "npm": [
    {
      "package": "@startinblox/component-mfssia",
      "version": "latest"
    }
  ],
  "components": [
    {
      "defaultRoute": true,
      "type": "mfssia",
      "parameters": {
        "apiSrc": "http://localhost:3000"
      },
      "route": "mfssia",
      "experimental": ["routing", "menu"]
    }
  ]
}
```

Replace `components[].parameters.apiSrc` with your MFSSIA API for the iExec oracles.

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
# npm run serve
```

Dev mode:

```bash
npm run watch
```
npm package: @startinblox/component-newsboard
Description: ...
Author: startinblox
Latest version: 1.0.1

# Solid Newsboard

...

## How to use

...

### Parameters

...

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
```

Watch files & rebuild on change with this command:

```bash
npm run watch
```
npm package: @startinblox/component-ofn-rpp
Description: ```html <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/core@1/+esm"></script> <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/router@0.13/+esm"></script> <script type="module" src="https://cdn.jsdelivr.net/npm/@s
Author: startinblox
Latest version: 3.1.1

# Solid OFN-RPP

```html
<script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/core@1/+esm"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/router@0.13/+esm"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/component-ofn-rpp"></script>

<solid-ofn-rpp
      producers-src="https://api.regenerative.org.au/webhook/regen/producers"
      products-src="https://api.regenerative.org.au/webhook/regen/products"
      range-product-categories="https://api.regenerative.org.au/webhook/regen/produce_categories"
      range-producer-certifications="https://api.regenerative.org.au/webhook/regen/certifications"
      range-producer-supporting-evidence="https://api.regenerative.org.au/webhook/regen/supporting_evidence"
      range-producer-assurances="https://api.regenerative.org.au/webhook/regen/assurance_partners"
      uniq="regenerative-produce-portal"
      route-prefix="some-wordpress-path"></solid-ofn-rpp>
```

## Developpers

### Installation

```bash
npm install
```

Build for production with:

```bash
npm run build
# npm run serve
```

Build for dev while watching for changes with:

```bash
npm run watch
```

### Icons

Based on [unplugin-icons](https://github.com/unplugin/unplugin-icons) - webcomponent method.

```js
import '~icons/mdi/account-box';
/* ... */
<icon-mdi-account-box></icon-mdi-account-box>
```
npm package: @startinblox/component-perun
Description: Component integrating the Perun API to use in solid-directory
Author: startinblox
Latest version: 1.0.1

# Solid Perun

This is a component integrating a basic feature of the Ontochain Perun API, see exact ambition in #1


## Access core within your component

Use `core` variable directly, eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-perun",
      class extends core.SolidTemplateElement {
        constructor() {
          core.store.put({
            'username': 'Superman',
            '@context': this.context,
          }, 'http://server/users/admin/');
        }
      }
    );
  });
});
```

## Target a local asset

Use the `utils.path()` function to return the actual path of your component (local or cdn), eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-perun",
      class extends core.SolidTemplateElement {
        constructor() {
          core.Helpers.importCSS(utils.path() + '/styles/index.css?min');
        }
      }
    );
  });
});
```
npm package: @startinblox/component-piswap
Description: Piswap POC component for integration of the NFT valuation service into startinblox
Author: startinblox
Latest version: 1.0.5

# Solid Piswap

This is a component integrating a basic feature of the Ontochain Piswap API, see exact ambition in #1


## Access core within your component

Use `core` variable directly, eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-piswap",
      class extends core.SolidTemplateElement {
        constructor() {
          core.store.put({
            'username': 'Superman',
            '@context': this.context,
          }, 'http://server/users/admin/');
        }
      }
    );
  });
});
```

## Target a local asset

Use the `utils.path()` function to return the actual path of your component (local or cdn), eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-piswap",
      class extends core.SolidTemplateElement {
        constructor() {
          core.Helpers.importCSS(utils.path() + '/styles/index.css?min');
        }
      }
    );
  });
});
```
npm package: @startinblox/component-reputable
Description: ## Orbit configuration
Author: startinblox
Latest version: 1.0.2

# Solid Reputable

## Orbit configuration


```json
{
  "npm": [
    {
      "package": "@startinblox/component-reputable",
      "version": "latest"
    }
  ],
  "components": [
    {
      "type": "reputable",
      "parameters": {
        "apiSrc": "https://cdn.skypack.dev/@startinblox/component-reputable/dist/example-ok.json"
      },
      "route": false
    },
    {
      "type": "directory",
      # ...
      "parameters": {
        "list-extra-fields": "seller_id",
        "list-widget-seller_id": "solid-reputable-seller",
        "list-class-seller_id": "send-display",
        "route-chat": false
        # ...
      },
      # ...
    }
  ]
}
```

Replace `components[].parameters.apiSrc` with your Reputable API for the iExec oracles.

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
# npm run serve
```

Dev mode:

```bash
npm run watch
```
npm package: @startinblox/component-sales
Description: Sales component for Startinblox
Latest version: 1.0.37

﻿# Solid sales

`<solid-sales>` displays a full featured interface to list, create, edit and use sales.

## Installation
In your django project, add the `djangoldp_sales` package.

## How to use
Once the package is installed, you can use the `solid-sales` component:
```html
<html>
<head>
  <!-- import the module in the head of the page -->
  <script type="module" src="https://cdn.skypack.dev/@startinblox/component-sales"></script>
</head>

<body>
  <!-- use the component -->
  <solid-sales
    data-src="[url]">
  </solid-salest>
</body>
</html>
```

## Localization
String translation can be managed in the localization files in the `locale` folder,
or they can be delegated to Hubl (use the `sales` key before the component key in
the Hubl localization files).
npm package: @startinblox/component-spaces
Description: Spaces blox for the FCPE
Author: startinblox
Latest version: 1.0.69

# Solid Boilerplate

This is a ready-to-use base component, to quickly start new sib component projects with best practices in mind.

## WARNING

This component is still a work-in-progress. Do not use things you find here as references for now.

## Access core within your component

Use `core` variable directly, eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-boilerplate",
      class extends core.SolidTemplateElement {
        constructor() {
          core.store.put({
            'username': 'Superman',
            '@context': this.context,
          }, 'http://server/users/admin/');
        }
      }
    );
  });
});
```

## Target a local asset

Use the `utils.path()` function to return the actual path of your component (local or cdn), eg.:

```js
import('./utils.js').then(utils => {
  import(utils.coreVersion()).then(core => {
    customElements.define("solid-boilerplate",
      class extends core.SolidTemplateElement {
        constructor() {
          core.Helpers.importCSS(utils.path() + '/styles/index.css?min');
        }
      }
    );
  });
});
```
npm package: @startinblox/components-dsd
Description: DSD component
Author: startinblox
Latest version: 1.0.12

# DSD Components

[![npm](https://img.shields.io/npm/v/@startinblox/components-dsd)](https://www.npmjs.com/package/@startinblox/components-dsd)
[![stable](https://img.shields.io/gitlab/v/tag/components%2Fsolid-dsd?gitlab_url=https%3A%2F%2Fgit.startinblox.com&sort=semver&label=stable)](https://git.startinblox.com/components/solid-dsd/)
[![latest](https://img.shields.io/gitlab/v/tag/components/solid-dsd?gitlab_url=https://git.startinblox.com&label=latest)](https://git.startinblox.com/components/solid-dsd/)

## Table of Contents

1. [Introduction](#introduction)
2. [Components](#components)
    * [UI Components](#ui-components)
    * [Orbit Components](#orbit-components)
3. [Installation](#installation)
4. [Development](#development)
5. [Storybook](#storybook)
6. [Build](#build)
7. [License](#license)

## Introduction

This library provides a set of Lit components for building user interfaces in DSD (Dataspace Democracy) ecosystem. It includes a variety of UI components, form elements, and layout components, all designed to be reusable and customizable.

## Components

### UI Components

* `dsd-active-tags`
* `dsd-avatar`
* `dsd-badge`
* `dsd-breadcrumb`
* `dsd-breadcrumb-divider`
* `dsd-breadcrumb-item`
* `dsd-button`
* `dsd-card-catalog`
* `dsd-card-service`
* `dsd-checkbox`
* `dsd-datepicker`
* `dsd-datepicker-item`
* `dsd-defined-field`
* `dsd-division`
* `dsd-dropdown`
* `dsd-dropdown-item`
* `dsd-filter-item`
* `dsd-filter-sidebar`
* `dsd-header`
* `dsd-input`
* `dsd-input-field`
* `dsd-input-posttab`
* `dsd-input-pretab`
* `dsd-label`
* `dsd-modal`
* `dsd-profile-card`
* `dsd-search-bar`
* `dsd-sidebar`
* `dsd-sidebar-item`
* `dsd-sidebar-section`
* `dsd-slider`
* `dsd-tab-item`
* `dsd-tag`
* `dsd-tag-action`
* `dsd-textarea`
* `dsd-toggle`
* `dsd-vertical-accordion`

### Orbit Components

* `dsd-catalog-filter-holder`
* `dsd-annuaire-data-holder`
* `dsd-annuaire-list`
* `dsd-annuaire-detail`
* `dsd-consultation-data-holder`
* `dsd-consultation-list`
* `dsd-consultation-detail`
* `dsd-notification`
* `dsd-viewport`
* `cache-improver`

## Installation

```bash
npm install
```

## Development

```bash
npm run watch
```

## Storybook

```bash
npm run storybook
```

## Build

```bash
npm run build
```

## Localization

This project uses [`@lit/localize`](https://www.npmjs.com/package/@lit/localize) for internationalization.

### Extracting strings

To extract strings for translation, run:

```bash
npm run locale:extract
```

This command will generate XLIFF files in the `locales` directory.

### Changing locale

To change the locale, run:

```javascript
window.setLocale("your-lang-code");
```

### Getting current locale

To get the current locale, run:

```javascript
window.getLocale();
```

## License

[MIT](LICENSE)
npm package: @startinblox/cqcm-map
Description: CQCM Map
Author: startinblox
Latest version: 6.1.0

# CQCM Map

## Getting started

### Use in production

For production usage, map is served via a CDN like JSDelivr or self-hosted.
The data source attribute **MUST** target the /enterprises/ endpoint of the source proxy server.

```html
  <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/core@latest/dist/index.js" defer=""></script>
  <script type="module" src="https://cdn.jsdelivr.net/npm/@startinblox/cqcm-map@latest" defer=""></script>
  <!-- ... -->
  <solid-cqcm-map data-src="https://your-proxy-server/enterprises/"></solid-cqcm-map>
```

### Development environment

To set up the local development environment with Storybook:

```bash
npm install
npm run storybook
```

## Development workflow

### Localization

This project utilizes [`@lit/localize`](https://www.npmjs.com/package/@lit/localize) for internationalization.

To change the locale at runtime within an application:

```javascript
// With Orbit:
window.setLocale.map((setLocale) => setLocale("your-lang-code"));
// Without Orbit:
window.setLocale("your-lang-code");
```

To retrieve the current locale:

```javascript
// With Orbit:
window.getLocale.map((locale) => console.log(locale));
// Without Orbit:
console.log(window.getLocale("your-lang-code"));
```

### Testing

```bash
# Run all tests
npm run cy:run
# Open Cypress's interface
npm run cy:open
```

### Building for production

```bash
# Generate localization files
npm run locale:build
# Generate Storybook documentation
npm run build-storybook
# Build the component repository
npm run build
```

## License

[MIT](LICENSE)
npm package: @startinblox/custom-esa
Description: Custom ESA component from startinblox
Author: startinblox
Latest version: 2.0.0

# Custom ESA

Package with custom components for ESA.

Paired with `solid-communities` and `djangoldp-esa`.

## Usage

Orbit:

```json
{
  "npm": [
    {
      "package": "@startinblox/custom-esa",
      "version": "1.0"
    }
  ], 
  "components": [
    {
      "type": "communities",
      "parameters": {
        "addresses": "federation://community-addresses/",
        "dataSrc": "federation://communities/",
        "noRender": "",
        "uploads": "server://upload/",
        "display-extra-fields": "esa_profile",
        "display-label-esa_profile": "role, spaces", // Role is hidden for ESA BIC NOORDWIJK and Northern Germany. Spaces is hidden for TIA.
        "display-widget-esa_profile": "customesa-display-widget"
      },
      "route": "communities",
      "experimental": ["routing"]
    }
  ]
}
```

html:

```html
    <solid-communities
      data-src="https://server/communities/"
      addresses="https://server/community-addresses/"
      uploads="https://server/upload/"
      display-extra-fields="esa_profile"
      display-label-esa_profile="role, spaces"
      display-widget-esa_profile="customesa-display-widget"
    ></solid-communities>
```

Where:

* customesa-display-widget is a magic widget to display an esa_profile
* display-label-esa_profile is the list of field to ignore, separated by a comma

## Developpers

Installation:

```bash
npm install
```

Build with:

```bash
npm run build
```

Watch files & rebuild on change with this command:

```bash
npm run watch
```
npm package: @startinblox/generator
Description: Pdf generator for startinblox
Author: startinblox
Latest version: 0.1.0

# SiB Generator

## sib-pdf-generator

sib-pdf-generator displays a button. When clicked, it will read the content of the given html element, convert it to pdf and initiate a download of the pdf file in the browser.

Example:

```html
<sib-pdf-generator source="#mytemplate"></sib-pdf-generator>
<template id="mytemplate">Hello!</template>
```

In this case, the user will be given the option to download a pdf file saying "Hello!"

You can add parameters to `sib-pdf-generator`:

| Parameter     | Default       | Description                                           |
| ------------- |---------------| ------------------------------------------------------|
| `source`      |               | Selector of the template element to generate          |
| `filename`    | `'file'`      | Name of the generated file (without the extension)    |
| `buttonText`  | `'Download'`  | Text of the download button                           |


A full example is provided in `examples/pdf-generator.html`


## sib-template-renderer

sib-template-renderer renders a template with a LDP resource which it is given through its data-src attribute and puts the generated content into the html element given by the target attribute.

```html
<div id="mytemplate"></div>
<sib-template-renderer bind-resource target="#mytemplate">
    <template>Hello ${resource.name}!</template>
</sib-template-renderer>
```

In this case, every time the data-src attribute of the sib-template-renderer will be set, the template will say hello to the name of the resource.

The content of the resource in the template is accessible in the `resource` object.

That content can then be converted to a pdf file using sib-pdf-generator.

An example is provided in `examples/template-renderer.html`
npm package: @startinblox/kldb-search-box
Description: Search box component for the Cooperative Knowledge Base
Author: startinblox
Latest version: 0.1.12

# Coopedia Search box component

`<coopedia-search-box>` displays a search box similar to the one you could find on your knowledge base instance.

*Warning* 
This component is used to filter results of another component : [`<coopedia-search-results>`](https://git.startinblox.com/applications/knowledge-base/components/search-results). You need to implement both components and link them with a script.


> When we made this component we thought that it was relevant to separate it in two parts : the filters and the results in order to get more freedom in the implementation. So we've added a script to link them. We are looking for a smarter solution. If you have any suggestions for improvement, we would be happy to hear from you :)


## Try the demo

To launch the demo, please run at the root of the component : 

```console
npm run serve
```

## How to use

```html
<html>
<head>
  <!-- import the Coopedia Search Box component -->
  <script type="module" src="https://unpkg.com/@startinblox/kldb-search-box"></script>
  <!-- import the Coopedia Result Search component -->
  <script type="module" src="https://unpkg.com/@startinblox/kldb-search-results"></script>
  <!-- import the script to connect the two components -->
  <script src="https://unpkg.com/@startinblox/kldb-search-box@0.1.1/js/connector-script.js"></script>
</head>

<body>
  <!-- Use Coopedia Search Box component -->
  <coopedia-search-box
    data-src="[url]">
  </coopedia-search-box>

  <!-- Use Coopedia Result Search component -->
  <coopedia-search-results
    data-src="[url]">
  </coopedia-search-results>
</body>
</html>
```

### Parameters

| Name            | Default                | Description                                                  |
| --------------- | ---------------------- | :----------------------------------------------------------- |
| `data-src`      | `undefined`            | URL of source to display. For exemple : https://api.coopstarter.happy-dev.fr            



## Notes
This component was made for The [Coopstarter projet](http://starter.coop/wp/) by Balessan and Alice. 

## Funding

![EULOGO](documentation/EU_logos.png)

This software has been co-funded by the European Union.
The contents of this software are the sole responsibility of Cooperatives Europe and can in no way be taken to reflect the views of the European Union.
npm package: @startinblox/kldb-search-results
Description: Search results component for the Cooperative Knowledge Base
Author: startinblox
Latest version: 0.0.11

# Search Results

The Coopedia Knowledge base search results component, somewhat configurable.

*Warning* : This component goes with the [Coopedia Search box component](https://git.startinblox.com/applications/knowledge-base/components/search-box). See that one, to get the full documentation.

## Funding

![EULOGO](documentation/EU_logos.png)

This software has been co-funded by the European Union.
The contents of this software are the sole responsibility of Cooperatives Europe and can in no way be taken to reflect the views of the European Union.
npm package: @startinblox/solid-becknld
Description: Beckn-LD Specification Draft - Client Component Implementation
Author: startinblox
Latest version: 1.1.3

# Beckn-LD Specification Draft - Client Component Implementation

## Introduction

This repository provides components for the Beckn-LD Specifications Draft implementation.

## Getting started

### Installation

To set up the local development environment with Storybook:

```bash
npm install
npm run storybook
```

## Development workflow

### Testing

```bash
# Run all tests
npm run cy:run
# Open Cypress's interface
npm run cy:open
```

### Building for production

```bash
# Generate localization files
npm run locale:build
# Generate Storybook documentation
npm run build-storybook
# Build the component repository
npm run build
```

## License

[MIT](LICENSE)
npm package: @startinblox/solid-dsd
Description: DSD component
Author: startinblox
Latest version: 1.1.0

# DSD Components

[![npm](https://img.shields.io/npm/v/@startinblox/solid-dsd)](https://www.npmjs.com/package/@startinblox/solid-dsd)
[![stable](https://img.shields.io/gitlab/v/tag/components%2Fsolid-dsd?gitlab_url=https%3A%2F%2Fgit.startinblox.com&sort=semver&label=stable)](https://git.startinblox.com/components/solid-dsd/)
[![latest](https://img.shields.io/gitlab/v/tag/components/solid-dsd?gitlab_url=https://git.startinblox.com&label=latest)](https://git.startinblox.com/components/solid-dsd/)

## Table of Contents

1. [Introduction](#introduction)
2. [Components](#components)
    * [UI Components](#ui-components)
    * [Orbit Components](#orbit-components)
3. [Installation](#installation)
4. [Development](#development)
5. [Storybook](#storybook)
6. [Build](#build)
7. [License](#license)

## Introduction

This library provides a set of Lit components for building user interfaces in DSD (Dataspace Democracy) ecosystem. It includes a variety of UI components, form elements, and layout components, all designed to be reusable and customizable.

## Components

### UI Components

* `dsd-active-tags`
* `dsd-avatar`
* `dsd-badge`
* `dsd-breadcrumb`
* `dsd-breadcrumb-divider`
* `dsd-breadcrumb-item`
* `dsd-button`
* `dsd-card-catalog`
* `dsd-card-service`
* `dsd-checkbox`
* `dsd-datepicker`
* `dsd-datepicker-item`
* `dsd-defined-field`
* `dsd-division`
* `dsd-dropdown`
* `dsd-dropdown-item`
* `dsd-filter-item`
* `dsd-filter-sidebar`
* `dsd-header`
* `dsd-input`
* `dsd-input-field`
* `dsd-input-posttab`
* `dsd-input-pretab`
* `dsd-label`
* `dsd-profile-card`
* `dsd-search-bar`
* `dsd-sidebar`
* `dsd-sidebar-item`
* `dsd-sidebar-section`
* `dsd-slider`
* `dsd-tab-item`
* `dsd-tag`
* `dsd-tag-action`
* `dsd-textarea`
* `dsd-toggle`
* `dsd-vertical-accordion`

### Orbit Components

* `dsd-catalog-filter-holder`
* `dsd-annuaire-data-holder`
* `dsd-annuaire-list`
* `dsd-annuaire-detail`
* `dsd-consultation-data-holder`
* `dsd-consultation-list`
* `dsd-consultation-detail`
* `dsd-viewport`
* `cache-improver`

## Installation

```bash
npm install
```

## Development

```bash
npm run watch
```

## Storybook

```bash
npm run storybook
```

## Build

```bash
npm run build
```

## Localization

This project uses [`@lit/localize`](https://www.npmjs.com/package/@lit/localize) for internationalization.

### Extracting strings

To extract strings for translation, run:

```bash
npm run locale:extract
```

This command will generate XLIFF files in the `locales` directory.

### Changing locale

To change the locale, run:

```javascript
window.setLocale("your-lang-code");
```

### Getting current locale

To get the current locale, run:

```javascript
window.getLocale();
```

## License

[MIT](LICENSE)
npm package: @startinfinity/formulajs
Description: JavaScript implementation of most Microsoft Excel formula functions
Author: Formulajs
Latest version: 2.10.0

Formula.js [![Build Status](https://travis-ci.com/formulajs/formulajs.svg?branch=master)](https://travis-ci.com/formulajs/formulajs)
==========

[Official website and documentation is here](https://formulajs.info)

## Use it

### In browser

Powered by [jsDelivr](https://www.jsdelivr.com/), you can use the latest version of Formula.js:

```html
<script src="https://cdn.jsdelivr.net/npm/jstat@1.9.2/dist/jstat.min.js"></script> 
<script src="https://cdn.jsdelivr.net/gh/formulajs/formulajs@2.9.1/dist/formula.min.js"></script>
```

Then the functions can be accessed as

```
formulajs.Date(2008, 7, 8)
formulajs.SUM([1, 2 , 3])
...
```

### In node

Install the package:

```json
npm i @formulajs/formulajs
```

## Differences between Excel functions and Formula.js

### Date

The functions ```DATE, DATEVALUE, EDATE, EOMONT, NOW, TODAY```return plain JS Date instead of the serial Excel number.

Copying composite formula directly from Excel into JS will not work out of the box:

```
= DATE(2020,5,9) - DATE(2020,5,8) // Formula.js: 86400000 / Excel: 1
```

It is not recommended to use ```DATEVALUE``` to parse string representing a date. Formula.js uses ```new Date('YOUR STRING')``` under the hood. There are better libraries to do this job (for example Moment.js)

## Migration guide

### From Formula.js

If you were previously using [formulajs from Sutoiku](https://www.npmjs.com/package/formulajs), some functions have been
removed, due to dependency simplification.

Text functions:

`FIXED, TEXT, DOLLAR, VALUE`

Math functions:

`MDETERM, MINVERSE, MMULT, MUNIT`

Otherwise the 2 packages are fully compatible. You can swap them.

### From @handsontable/formulajs

The code of this package is originally forked from @handsontable/formulajs version 2.0.2 (released in January 2020). The
two packages were identical at the time. There is no regression, only fixes and new functions since the fork.

## Historic

This project is forked from [handsontable/formula.js](https://github.com/handsontable/formula.js) and it's developed for
 everyone needs.
 
Original Formula.js project was developed and maintained by Ismael Chang Ghalimi, with support from STOIC and help from
 the following contributors: Ilmari Karonen, Sébastien Loisel, Trevor Norris, Roönaän, Hannes Stiebitzhofer.

It was then forked and extended by the [handsontable/formula.js](https://github.com/handsontable/formula.js) mainly 
contributed by [@budnix](https://github.com/budnix).

## Contributions and road map 2020

The road map in the coming month is to gather the improvements made in the main forks of the original project. If you 
forked and made changes to sutoiku/formula.js do not hesitate to propose a pull request with your changes. 

To avoid any regression or miss calculation please provide unit tests as long as function improvements.