open-index/open-npm huggingface dataset:
npm package: @smallstack/workflow-engine
Description: workflow engine that also runs in your browser
Author: smallstack GmbH
Latest version: 3.0.0

# Workflow Engine
We run our projects in cloud environments inside multi tenant based systems, therefor adding customer related business logic via code changes or external services is an overhead, especially for the little things in life. The `Workflow Engine` does solve this problem.

## What is a workflow?
A `Workflow` consists of `Blocks` which execute some code and `Connections` which connect the different blocks together.

### Block
A `Block` is a piece of code that implements the `WorkflowBlockDefinition` interface. `Blocks` have inputs and outputs, so called `Sockets`. `Blocks` get data via their `Input Sockets` and can output results via their `Output Sockets`.

### Connection

A `Socket Connection` connects 2 `Block Sockets`, e.g. BlockA::Ouput --> BlockB::Input

## Environments
The workflow engine runs in NodeJS as well as your browsers. It can be used to manipulate data in your UI or do long running tasks on a node server.
npm package: @smallstoneapps/about-window
Description: A Pebble package to handle display information about an app
Author: Matthew Tole
Latest version: 1.1.0

# About Window [![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/about-window.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/about-window)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE) [![Build Status](https://www.bitrise.io/app/1bba2f0bbcba4176.svg?token=dqSIrdW70Zl3Eon8aar3bg)](https://www.bitrise.io/app/1bba2f0bbcba4176)

Pebble library for easily adding an About window to your app.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/about-window
```

## Usage

````c
#include <pebble.h>
#include <@smallstoneapps/about-window/about-window.h>

static void prv_init(void) {
  about_window_init();
  about_window_set_title("About Window Demo");
  about_window_set_text("Lorem ipsum dolor sit amet, an aliquid convenire honestatis eos. Eos ad tale homero reprimique. Te option mediocrem mel, ius no quodsi tincidunt. Ad sea aliquid ullamcorper.\n\nPertinax similique philosophia no has, ad tempor fastidii pri. Ex sit postea expetendis. Phaedrum consulatu quaerendum te his, pro an doctus delenit. Nec feugiat prodesset ea, ei his tollit discere facilisis.");
  about_window_show(true);
}

static void prv_deinit(void) {
  about_window_deinit();
}

int main(void) {
  prv_init();
  app_event_loop();
  prv_deinit();
}
````
npm package: @smallstoneapps/bitmap-loader
Description: Pebble library to do lazy loading of bitmaps from resources
Author: Matthew Tole
Latest version: 1.3.0

# Bitmap Loader [![Build Status](http://img.shields.io/travis/smallstoneapps/bitmap-loader.svg?style=flat-square)](https://travis-ci.org/smallstoneapps/bitmap-loader/)&nbsp;[![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/bitmap-loader.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/bitmap-loader)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

Pebble library to do lazy loading of bitmaps from resources

## What does it do?

Bitmap Loader will automatically load bitmaps when they are needed, rather than
having to handle the loading of them yourself.

The function `bitmaps_get_bitmap` takes a *RESOURCE_ID* as an argument, and
returns a pointer to a *GBitmap*. If this is the first time that the bitmap has
been requested, it will load the image from resources.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/bitmap-loader
```

## Usage

```c
// This is not a complete example, but should demonstrate the basic usage of
// the Bitmap Loader library.

#include <@smallstoneapps/bitmap-loader/bitmap-loader.h>

static void init(void) {
  bitmaps_init();
}

static void deiinit(void) {
  bitmaps_cleanup();
}

static void window_load(Window* window) {
  bitmap_layer_set_bitmap(bitmaps_get_bitmap(RESOURCE_ID_BITMAP_1));
  GBitmap* bitmap = (bitmaps_get_bitmap(RESOURCE_ID_BITMAP_2));
}
```

## Function Documentation

Initialise the Bitmap Loader

**Note:** Call this once, preferably in your *init* function.

```c
void bitmaps_init(void);
```

Get the bitmap using its resource ID.

```c
GBitmap* bitmaps_get_bitmap(uint32_t res_id);
```

Get a bitmap from a group. You can use this to make sure you only keep one
bitmap for a single location in memory. If there is already a bitmap loaded
for the given group, it will replace it with the one you are requesting.

```c
GBitmap* bitmaps_get_bitmap_in_group(uint32_t res_id, uint8_t group);
```

Get a sub bitmap from a larger bitmap given its resource ID and a rectangle.
If the parent bitmap has already been loaded it will not be loaded again.

```c
GBitmap* bitmaps_get_sub_bitmap(uint32_t res_id, GRect rect);
```

Cleanup the Bitmap Loader.

**Note** Call this in your *deinit* function.

```c
void bitmaps_cleanup(void);
```
npm package: @smallstoneapps/data-processor
Description: Pebble library to extract values from a delimited string
Author: Matthew Tole
Latest version: 2.1.1

# Data Processor [![Build Status](http://img.shields.io/travis/smallstoneapps/data-processor.svg?style=flat-square)](https://travis-ci.org/smallstoneapps/data-processor/)&nbsp;[![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/data-processor.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/data-processor)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

Pebble library to extract strings, ints and booleans from a long string of data.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/data-processor
```

## Usage

````c
// This is not a complete example, but should demonstrate
// the basic usage of Data Processor.

static void parse_data(char* data) {
  ProcessingState* state = data_processor_create(data, '|');
  uint8_t num_strings = data_processor_count();
  char** strings = malloc(sizeof(char*) * num_strings);
  for (uint8_t n = 0; n < num_strings; n += 1) {
    strings[n] = data_processor_get_string(state);
  }
}
````

## Tests

Unit tests for Data Processor exist in the `tests` folder.

To run the tests:

```sh
make test
```

## Function Documentation

Initialise the global Data Processor state object with a string of data and a
delimiter character.

````c
void data_processor_init(char* data, char delim);
````

Create and return a new Data Processor state object with a string of data and a
delimiter character.

````c
ProcessingState* data_processor_create(char* data, char delim);
````

Destroy a Data Processor state object.

````c
void data_processor_destroy(ProcessingState* state);
````

Destroys the global Data Processor state object.

````c
void data_processor_deinit();
````

Get the global Data Processor state object, used for passing to the functions below.

````c
ProcessingState* data_processor_get_global(void);
````

Get the count of the remaining subelements for a Data Processor state object.

````c
uint8_t data_processor_count(ProcessingState* state);
````

Get the next element as a string for a Data Processor state object.

````c
char* data_processor_get_string(ProcessingState* state);
````

Get the next element as a bool for a Data Processor state object.

````c
bool data_processor_get_bool(ProcessingState* state);
````

Get the next element as an int for a Data Processor state object.

````c
int data_processor_get_int(ProcessingState* state);
````
npm package: @smallstoneapps/font-loader
Description: Pebble library to do lazy loading of fonts from resources
Author: Matthew Tole
Latest version: 1.1.0

# Font Loader [![Build Status](http://img.shields.io/travis/smallstoneapps/font-loader.svg?style=flat-square)](https://travis-ci.org/smallstoneapps/font-loader/)&nbsp;[![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/font-loader.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/font-loader)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)


Pebble library to do lazy loading of fonts from resources.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/font-loader
```


## What does it do?

Font Loader will automatically load fonts when they are needed, rather than having to handle the loading of them yourself.

It also allows you to create string aliases for the fonts, so you don't have to refer to them by their resource ID which will change if you alter the font size.

## Usage

````c
// This is not a complete example, but should demonstrate the basic usage of Font Loader.

static void init(void) {
  fonts_init();
  fonts_assign("example_font", RESOURCE_ID_FONT_EXAMPLE_24);
}

static void deiinit(void) {
  fonts_cleanup();
}

static void window_load(Window* window) {
  text_layer_set_font(text_layer, fonts_get_font(RESOURCE_ID_FONT_EXAMPLE_32));
  GFont font = fonts_get_font_by_name("example font");
}
````

**You can also look at the [demo app](/demo/src/app.c) to see the library in action.**

## Tests

Font Loader has *very* minimal (and currently broken) tests, that you can run using `./run-tests.sh`.

## Function Documentation

Initialise the Font Loader library.

````c
void fonts_init(void);
````

Assign a string name to a font resource ID.

````c
bool fonts_assign(char* name, uint32_t res_id);
````

Returns the font as specified by a resource ID.
If the font has not been requested before, it will be loaded.
````c
GFont fonts_get_font(uint32_t res_id);
````

Returns the font as specified by the name you assigned.
If the font has not been requested before, it will be loaded.
````c
GFont fonts_get_font_by_name(char* name);
````

Unload all the fonts from memory.
````c
void fonts_cleanup(void);
````
npm package: @smallstoneapps/linked-list
Description: Pebble library for doing linked lists
Author: Matthew Tole
Latest version: 1.4.0

# Linked List [![Build Status](http://img.shields.io/travis/smallstoneapps/linked-list.svg?style=flat-square)](https://travis-ci.org/smallstoneapps/linked-list/)&nbsp;[![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/linked-list.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/linked-list)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

A simple linked list implementation for Pebble apps and watchfaces.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/linked-list
```

## Usage

```c
// This is not a complete example, but should demonstrate the basic usage of
// the Linked List library.

#include <@smallstoneapps/linked-list/linked-list.h>

LinkedRoot* root;

static void init(void) {
  root = linked_list_create_root();
  linked_list_append(root, data);
  printf("%d", linked_list_count(root));
}

static void deinit(void) {
  linked_list_clear(root);
  destroy(root);
}
```

## Tests

Unit tests for Data Processor exist in the `tests` folder.

To run the tests:

```sh
make test
```
npm package: @smallstoneapps/loading-screen
Description: Pebble library to handle displaying loading (and similar) screens
Author: Matthew Tole
Latest version: 2.2.1

# Loading Screen [![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/loading-screen.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/loading-screen)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

A Pebble library for displaying loading / setup screens in your app.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/loading-screen
```

## Usage

```c
#include <@smallstoneapps/loading-screen/loading-screen.h>

// Must be called once before any other calls
loading_screen_init();

// Pushes the loading screen onto the window stack
loading_screen_show();

// Removes the loading screen from the window stack
loading_screen_hide();
```

## Screenshots

### Loading Screen

![Loading screen on Aplite](docs/loading_aplite.png)
![Loading screen on Basalt](docs/loading_basalt.png)

### Setup Screen

![Setup screen on Aplite](docs/setup_aplite.png)
![Setup screen on Basalt](docs/setup_basalt.png)
npm package: @smallstoneapps/message-queue
Description: A Pebble package that handles queuing of outgoing messages and allows for easy group based routing of incoming messages.
Author: Matthew Tole
Latest version: 2.4.2

# Message Queue [![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/message-queue.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/message-queue)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

A Pebble package that handles queuing of outgoing messages and allows for easy group based routing of incoming messages.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/message-queue
```

## Usage

### Setup the message queue

    mqueue_init();

### Add a message to be sent.

    mqueue_add("GROUP", "OPERATION", "DATA");

### Register a callback function for incoming messages of a particular group.

    mqueue_register_handler("GROUP", msg_handler);
npm package: @smallstoneapps/qr-layer
Description: A minimalist QR code layer for Pebble apps and watchfaces.
Author: Matthew Tole
Latest version: 1.1.0

# QR Layer [![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/qr-layer.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/qr-layer)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE) [![Build Status](https://www.bitrise.io/app/6e10bf974a072362.svg?token=5KP1NfZZVZNq78OzvXneUg)](https://www.bitrise.io/app/6e10bf974a072362)

A minimalist QR code layer for Pebble apps and watchfaces.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/qr-layer
```

## Usage

To create a QR code layer object and add it to the window.

```c
QRLayer* layer = qr_layer_create(GRect(0, 0, 144, 144));
qr_layer_set_data("ABCDEF");
qr_layer_add_to_window(layer, window);
```
npm package: @smallstoneapps/sliding-text-layer
Description: A Layer for your Pebble apps that lets you vertically scroll a line of text.
Author: Matthew Tole
Latest version: 1.0.0

# Sliding Text Layer

A Layer for your Pebble apps that lets you vertically scroll a line of text.

![](screenshot.gif)

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/sliding-text-layer
```

## Usage

2. Include the header file in your code.

    ```
    #include <@smallstoneapps/sliding-text-layer/sliding-text-layer.h>
    ```
3. Create a new SlidingTextLayer.

    ```
    SlidingTextLayer* stl = sliding_text_layer_create(GRect(0, 60, 144, 24));
    ```
4. Set the initial text for the layer.

    ```
    sliding_text_layer_set_text(stl, "Line 1");
    ```
5. When you want to animate to the next line of text.

    ```
    sliding_text_layer_set_next_text(stl, "Line 2");
    sliding_text_layer_animate_down(stl);
    ```
npm package: @smallstoneapps/utils
Description: A small collection of C macros that make developing Pebble apps a little simpler.
Author: Matthew Tole
Latest version: 1.3.0

# Utils [![npm (scoped)](https://img.shields.io/npm/v/@smallstoneapps/utils.svg?maxAge=2592000&style=flat-square)](https://www.npmjs.com/package/@smallstoneapps/utils)&nbsp;[![MIT License](http://img.shields.io/badge/license-MIT-lightgray.svg?style=flat-square)](./LICENSE)

This is a small collection of [C macros][1] that make developing Pebble apps a little simpler.

## Installation

*You must be using Pebble SDK 3.12 or newer to use this library.*

To install the package to your app, use the pebble tool:

```
pebble package install @smallstoneapps/utils
```

## Usage

Include the header file in your source code.

```c
#include <@smallstoneapps/utils/macros.h>
```

## Documentation

### Logging

Shorthand wrappers for using APP_LOG with the various levels of logs.

```c
// Create a new DEBUG log message. Similar functions exist for INFO, WARN and ERROR.
DEBUG("Here is a logging message of value %d", 5);
```

### Layer Helpers

There are a number of macros for creating layers, and the various subtypes of layers.
Below are some examples, check out the source code for the full list.

```c
// Creates a new layer that is the size of the window, and adds it to the window.
// Similarly named functions exist for all layer types.
Layer* layer = layer_create_fullscreen(window);
layer_add_to_window(layer, window);
```

```c
// The menu layer version of this function also handles assigning the click handlers.
menu_layer_add_to_window(menu, window);
```

```c
// Prevent crashes caused by attempting to destroy an already destroyed layer,
// the `*_destroy_safe()` functions wrap destroy in a NULL check.
layer_destroy_safe(layer);
```

```c
// Show a hidden layer.
layer_show(layer);
// Hide a layer.
layer_hide(layer);
```


### Persistent Helpers

Check that a persistent key exists before reading it, and returning a default value if it doesn't.

```c
// If KEY_NUMBER exists, return the value stored there, otherwise return -1
int number = persist_read_int_safe(KEY_NUMBER, -1);
```

### Miscellaneous

```c
// Checks that data is not NULL before attempting to free.
free_safe(data);
```

```c
// Checks that the app timer exists before attempting to cancel.
app_timer_cancel_safe(timer);
```

```c
// Opens the app message with the maximum inbox and outbox size.
app_message_open_max();
```

[1]: http://gcc.gnu.org/onlinedocs/cpp/Macros.html
npm package: @smalltarget108/uniswap-v2-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 3.0.7

# Uniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/Uniswap/uniswap-sdk/workflows/CI/badge.svg)](https://github.com/Uniswap/uniswap-sdk)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Uniswap/uniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd uniswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @smallwei/avue
Description: A Magic Configurable Web Framework
Author: smallwei
Latest version: 3.8.2

<p align="center"><a href="https://avuejs.com" target="_blank" rel="noopener noreferrer"><img width="100" src="https://avuejs.com/images/logo.png" alt="Avue logo"></a></p>

<p align="center">
  <a href="https://gitee.com/smallweigit/avue/stargazers"><img src="https://gitee.com/smallweigit/avue/badge/star.svg?theme=dark" alt="star"></a>
  <a href="https://gitee.com/smallweigit/avue/members"><img src="https://gitee.com/smallweigit/avue/badge/fork.svg?theme=dark" alt="fork"></a>
  <a href="https://gitee.com/smallweigit/avue"><img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="license"></a>
  <a href="https://gitee.com/smallweigit/avue"><img src="https://img.shields.io/badge/version-3.0.0-blue.svg" alt="version"></a>
</p>

# Avue.js

Avue.js 是基于现有的 element-plus 库进行的二次封装，从而简化一些繁琐的操作，核心理念为**数据驱动视图**。主要的组件库针对 table 表格和 form 表单场景，同时衍生出更多企业常用的组件，达到高复用，容易维护和扩展的框架，同时内置了丰富的数据展示组件，让开发变得更加容易。

## ✨ 特性

- 🚀 **高效开发**：基于数据驱动视图的理念，大大减少了代码量
- 📦 **开箱即用**：丰富的表格、表单配置及多种常用组件
- 🛠️ **强大定制**：高度灵活的配置项，满足各种复杂场景需求
- 🔌 **扩展性强**：支持自定义组件和多种交互方式
- 📚 **详尽文档**：完善的文档和示例，快速上手无烦恼

## 🔧 安装

```bash
# 使用 pnpm 安装（推荐）
pnpm add @smallwei/avue

# 或使用 npm 安装
npm install @smallwei/avue

# 或使用 yarn 安装
yarn add @smallwei/avue
```

## 📦 使用

```js
// 完整引入
import { createApp } from 'vue'
import Avue from '@smallwei/avue'
import '@smallwei/avue/dist/avue.css'
import App from './App.vue'

const app = createApp(App)
app.use(Avue)
app.mount('#app')
```

## 📄 文件说明

| 文件名      | 用途     | 说明 |
| ----------- | -------- | ---- |
| avue.min.js | 生产环境 | 压缩优化版本，体积更小 |
| avue.js     | 开发环境 | 包含完整的调试信息 |

## 📚 文档与示例

要查看详细文档和在线示例，请访问：[官方文档](https://avuejs.com)

## 🌈 相关产品

除了核心框架外，我们还提供以下解决方案：

-  **[数据大屏](https://data.avuejs.com)** - 专业的可视化数据大屏解决方案
-  **[数据组态](http://iot.avuejs.com)** - 工业物联网数据组态平台
-  **[AI大模型](http://ai.avuejs.com)** - 智能AI应用解决方案

## 🤝 参与贡献

1. Fork 本仓库
2. 新建 Feature 分支
3. 提交代码
4. 创建 Pull Request

## ❓ 问答与支持

有关问题和支持，请使用[issues](https://gitee.com/smallweigit/avue/issues)。我们会尽快为您解答。

> **注意**：提交问题前，请务必提供详细的问题过程和截图，不符合准则的问题将会被拒绝。


## 📄 开源协议

[MIT](http://opensource.org/licenses/MIT)

Copyright (c) 2017-present, Smallwei
npm package: @smallwei/avue-data
Description: Avue-Data数据大屏(Vue全家桶+ElementUi+Echart+dataV)开发，丰富的交互控件和图表组件，提供智能图形推荐，报表图形任意切换，且不受维度,度量的限制。
Latest version: 2.0.1

## 介绍
Avue-Data数据大屏(Vue全家桶+ElementUi+Echart+dataV)开发，丰富的交互控件和图表组件，提供智能图形推荐，报表图形任意切换，且不受维度,度量的限制。

## 特点
- 缩短开发周期
    提供丰富的二次开发接口
- 快速响应
    支持动态局部刷新，秒级响应
- 多端部署
    适配各种拼接大屏场景
-  实时数据
    支持多种数据源接入数据

### 多种数据源
- 在线API
- 静态数据
- SQL数据
- WebScoket数据
- 数据集

### 20+常用组件
- 图表
  - Echart通用型
  - DataV
  - 柱状图
  - 折线图
  - 饼图
  - 象形图
  - 雷达图
  - 散点图
  - 漏斗图
  - 地图
- 文字
  - 文本框
  - 跑马灯
  - 超链接
  - 实时时间
- 媒体
  - 图片
  - 图片框
  - 轮播图
  - iframe
  - hls播放器
  - video播放器
- 指标
  - 翻牌器
  - 环形图
  - 进度条
  - 仪表盘
  - 字符云
- 表格
  - 选项卡
  - 表格
- 边框以及各种常用组件，同时支持自定义组件


## **丰富模板**
### 政府行业
>BI大数据可以打破信息壁垒，形成统一数据共享大平台，打破“信息孤岛”问题。
![](https://img.kancloud.cn/79/d2/79d25a1d1162772ebb17392ff2f0a21b_1576x838.png)

### 教育行业
>BI大数据可以有效查看各基地的情况，通过对教、学、研多层面的数据整合，制定更行之有效的方案。
![](https://img.kancloud.cn/13/8c/138c4955d3f2a3d15c0bbf3f499568f2_1584x838.png)

### 金融行业
>BI大屏拥有收集、运用数据的能力，从而做出快速精准的应对策略。
![](https://img.kancloud.cn/4e/d2/4ed22aede98b5246894925d2aa36c180_1610x904.png)

### 销售行业
>BI大屏可以通过信息技术将各个渠道的数据进行整合，更好的对客户信息进行挖掘、创造价值。
![](https://img.kancloud.cn/e5/cc/e5cc59cf367073d393c9a096da204939_1584x878.png)

### 交通行业
>BI大屏在整个交通运输系统中的应用能有效解决城市化加速而导致的各种问题，在大客流运营常态下有着重要的价值。
![](https://img.kancloud.cn/bc/ce/bcce27a4bb49917e8e5b81c6a37407ca_1558x830.png)