# ors-svg-scheme

> SVG Components

Latest version **1.0.1** (published 2016-11-28) · ISC license · 0 weekly downloads

## Install

```sh
npm install ors-svg-scheme
pnpm add ors-svg-scheme
yarn add ors-svg-scheme
bun add ors-svg-scheme
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2016-11-28 |
| First published | 2016-11-28 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Alexander Perevezentsev |
| Maintainers | apcom |

## Links

- npm: https://www.npmjs.com/package/ors-svg-scheme
- npm.io page: https://npm.io/package/ors-svg-scheme

## Recent versions

- 1.0.1 (latest) — 2016-11-28
- 1.0.0 — 2016-11-28

## README

## Документация

### Основные классы:
* Widget - *основной класс-виджет*
* SwitchControl - *контрол, который показывает состояние системы*
* ModeControl - *контрол, который показывает режим работы системы (зима/лето)*
* TemperatureControl - *контрол, который показывает текущую температуру*
* Scheme - *Класс, который рисует компоненты на схеме*
* Tube - *труба*
* TubeGroup - *группа труб*
* Clapan - *задвижка*
* Conditioner - *завеса*
* Pump - *насос*
* Text - *текстовая метка*
* Arrow - *стрелка*
* Termometer - *термометр / манометр*
* Filter- *фильтр*
* Flowmeter - *расходомер*
* Numerator - *вычислитель*
* Chiller - *чиллер*
* Buffer - *буфер*
* Compressor - *компрессор*
* Evaporator - *испаритель*

#Widget
>Самый главный класс. Через него нужно работать со схемой. Данный класс отрисовывает форму с контролами и саму схему

**Методы**
* Widget(selector, options = {}) - конструктор
    - selector (String) - dom-селектор блока, в котором будет отрисовываться виджет
    - options (Object) - дополнительные опции
        * title (String) - название виджета
        * svg_width (Integer) - ширина схемы
    	* svg_height (Integer) - высота схемы    
* addControl(control_type) - добавляет контрол на панель управления виджета
    - control_type (String) - название контрола ('switch', 'mode' или 'temperature')
    - Возвращает: SwitchControl, ModeControl или TemperatureControl
* render() - рендер виджета

**Свойства**
* scheme (Scheme) - объект схемы, на котором будут отрисовываться все компоненты
* controls (Array[]) - массив контролов, которые были добавлены в этот виджет
* widgetCount (Static Integer) - общее количество виджетов, которые были добавлены
* id (String) - id виджета
* el (DOM) - DOM-элемент, в котором рендерится виджет

#Контролы
####SwitchControl
>Данный контрол показывает общее состояние системы. Может принимать три состояния: система работает, система не активна, а также аварийное состояние

* setState(new_state) - устанавливается новое состояние
    - new_state (Integer) - Состояние (1 - система работает, 0 - система не работает, -1 - аварийное состояние)

####ModeControl
>Данный контрол показывает режим работы системы - зима или лето

* setMode(new_mode) - устанавливается новый режим работы
    - new_mode (Integer) - Состояние (1 - лето, 0 - зима)
    
####TemperatureControl
>Данный контрол показывает температуру системы

* setValue(new_value) - устанавливается новое значение температуры
    - new_value (Float) - Новое значение


#Scheme
>Данный класс занимается отрисовкой всех компонентов схемы

**Методы**
* addTube(points) - добавляет трубу
    - points (Array) - массив объектов узлов трубы. Представляет из себя:
        [{x: 1, y: 1}, {x: 10, y: 10}]
    - Возвращает: Tube
* addArrow(points) - добавляет стрелку
    - points (Array) - матрица точек узлов трубы. Представляет из себя:
        [{x: 1, y: 1}, {x: 10, y: 10}]
    - Возвращает: Arrow
* addClapan(options) - добавляет задвижку
    - options (Object) - объект параметров для задвижки
        + position (Object) - расположение задвижки
            * x (Integer)
            * y (Integer)
        + horizontal (Boolean) - Горизонтальное расположение задвижки
        + direction (Integer) - Значение 1, если задвижка располагается по часовой стрелке, 2 - против часовой стрелки
        + threeDirections (Boolean) - задвижка с тремя выходами и манометром
    - Возвращает: Clapan
* addConditioner(position, size) - добавляет завесу
    - position (Object) - расположение завесы
        + x (Integer)
        + y (Integer)
    - size (Object) - размер завесы
        + width (Integer)
        + height (Integer)
    - Возвращает: Conditioner
* addPump(position) - добавляет насос
    - position (Object) - расположение завесы
        + x (Integer)
        + y (Integer)
    - Возвращает: Pump
* addTermometer(position) - добавляет термометр / манометр
    - position (Object) - расположение термометра / манометра
        + x (Integer)
        + y (Integer)
    - Возвращает: Termometer
* addText(position, text, anchor) - добавляет текст
    - position (Object) - расположение текста
        + x (Integer)
        + y (Integer)
    - text (String) - текст
    - anchor (String) - расположение текста ('start', 'middle' или 'end')
    - Возвращает: Text
* addFilter(position) - добавляет фильтр
    - position (Object) - расположение фильтра
        + x (Integer)
        + y (Integer)
    - Возвращает: Filter
* addFlowmeter(position) - добавляет расходомер
    - position (Object) - расположение расходомера
        + x (Integer)
        + y (Integer)
    - Возвращает: Flowmeter
* addNumerator(position) - добавляет вычислитель
    - position (Object) - расположение вычислителя
        + x (Integer)
        + y (Integer)
    - Возвращает: Numerator
* addPath(points) - добавляет дополнительные пути (например, для проводов)
    - points (Array) - массив точек (аналогично Tube)
    - Возвращает: path (объект Raphael.js)
* addChiller(position) - добавляет чиллер
    - position (Object) - расположение чиллера
        + x (Integer)
        + y (Integer)
    - Возвращает: Chiller
* addBuffer(position, size) - добавляет буфер
    - position (Object) - расположение буфера
        + x (Integer)
        + y (Integer)
    - size (Object) - размер буфера
        + width (Integer)
        + height (Integer)
    - Возвращает: Buffer
* addCompressor(position) - добавляет компрессор
    - position (Object) - расположение компрессора
        + x (Integer)
        + y (Integer)
    - Возвращает: Compressor
* addEvaporator(position, width = 50) - добавляет вычислитель
    - position (Object) - расположение вычислителя
        + x (Integer)
        + y (Integer)
    - width (Integer) - размер испарителя (ширина или высота, в зависимости от направления)
    - Возвращает: Evaporator

**Cвойства**
* context (Raphael.Paper) - объект, который отрисовывает элементы
* tubes (Array) - массив всех добавленных труб
* clapans (Array) - массив всех добавленных задвижек
* conditioners (Array) - массив всех добавленных завес
* pumps (Array) - массив всех добавленных насосов
* termometers (Array) - массив всех добавленных термометров
* arrows (Array) - массив всех добавленных стрелок
* texts (Array) - массив всех добавленных текстовых меток
* filters (Array) - массив всех добавленных фильтров
* flowmeters (Array) - массив всех добавленных расходомеров
* numerators (Array) - массив всех добавленных вычислителей
* paths (Array) - массив всех добавленных путей
* chillers (Array) - массив всех добавленных чиллеров
* buffers (Array) - массив всех добавленных буферов
* compressors (Array) - массив всех добавленных компрессоров
* evaporators (Array) - массив всех добавленных испарителей


### Tube (труба)
**Свойства**
* direction (Integer) - задает направление трубы. Если число отрицательно, то поток в трубе движется в обратном направлении. Если 0, то поток в трубе не движется
* season (String) - температура воды ('cold' / 'hot')

### TubesGroup (группа труб)
**Методы**
* setSeason(season) - задает цвет всем трубам в группе
    - season (String) - цвет трубы ('hot' или 'cold')
**Свойства**
* tubes (Array) - массив труб

### Pump (насос)
**Свойства**
* season (String) - цвет насоса ('hot' или 'cold')
* direction (Boolean) - направление движения насоса (положительное - по часовой стрелке, отрицательное - против часовой стрелки, 0 - насос не активен)

### Clapan (задвижка)
**Свойства**
* direction (Integer) - Направление задвижки (1 - по часовой стрелке, 2 - против часовой стрелки)
* horizontal (Boolean) - задвижка располагается горизонтально
* threeDirections (Boolean) - задвижка имеет три выхода

### Conditioner (кондиционер)
**Свойства**
* enabled (Boolean) - завеса активна
* season (String) - цвет воздуха ('hot' или 'cold')

### Termometer (термометр / манометр)
**Методы**
* setValue(value) - задает значение. Оно должно быть в интервале от 40 до 150 градусов (термометр) или в интервале от 100 до 1000 КПа (манометр)
    - value (Float) - значение

**Свойства**
* type (String) - тип прибора ('termometer' / 'manometer')
* value (Float) - значение

### Filter (фильтр)
**Свойства**
* vertical (Boolean) - фильтр располагается вертикально (вход и выход сверху и снизу соответственно)

### Numerator (вычислитель)
**Свойства**
* value (String) - значение или текст, который будет выводиться на экран вычислителя (Если текст большой, то часть текста будет обрезаться)

### Chiller (чиллер)
**Свойства**
* enabled (Boolean) - активность чиллера. Если false, то чиллер будет неактивным

### Compressor (компрессор)
**Свойства**
* enabled (Boolean) - активность компрессора. Если false, то компрессор будет неактивным

### Evaporator (испаритель)
**Свойства**
* horizontal (Boolean) - испаритель располагается горизонтально
* width (Integer) - ширина (высота, если horizontal = true) испарителя

---
_Source: https://npm.io/package/ors-svg-scheme · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
