87 lines
2.5 KiB
JavaScript
87 lines
2.5 KiB
JavaScript
/*
|
|
Парус 8 - Панели мониторинга - Редакторы панелей
|
|
Общие ресурсы компонента "Источник данных"
|
|
*/
|
|
|
|
//---------------------
|
|
//Подключение библиотек
|
|
//---------------------
|
|
|
|
import PropTypes from "prop-types"; //Контроль свойств компонента
|
|
import client from "../../core/client"; //Клиент БД
|
|
import { CAPTIONS } from "../../../app.text"; //Общие текстовые ресурсы
|
|
|
|
//---------
|
|
//Константы
|
|
//---------
|
|
|
|
//Типы даных аргументов
|
|
const P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE = {
|
|
STR: client.SERV_DATA_TYPE_STR,
|
|
NUMB: client.SERV_DATA_TYPE_NUMB,
|
|
DATE: client.SERV_DATA_TYPE_DATE
|
|
};
|
|
|
|
//Структура аргумента источника данных
|
|
const P8P_DATA_SOURCE_ARGUMENT_SHAPE = PropTypes.shape({
|
|
name: PropTypes.string.isRequired,
|
|
caption: PropTypes.string.isRequired,
|
|
dataType: PropTypes.oneOf(Object.values(P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE)),
|
|
req: PropTypes.bool.isRequired,
|
|
value: PropTypes.any,
|
|
valueSource: PropTypes.string
|
|
});
|
|
|
|
//Начальное состояние аргумента источника данных
|
|
const P8P_DATA_SOURCE_ARGUMENT_INITIAL = {
|
|
name: "",
|
|
caption: "",
|
|
dataType: "",
|
|
req: false,
|
|
value: "",
|
|
valueSource: ""
|
|
};
|
|
|
|
//Типы источников данных
|
|
const P8P_DATA_SOURCE_TYPE = {
|
|
USER_PROC: "USER_PROC",
|
|
QUERY: "QUERY"
|
|
};
|
|
|
|
//Типы источников данных (наименования)
|
|
const P8P_DATA_SOURCE_TYPE_NAME = {
|
|
[P8P_DATA_SOURCE_TYPE.USER_PROC]: CAPTIONS.USER_PROC,
|
|
[P8P_DATA_SOURCE_TYPE.QUERY]: CAPTIONS.QUERY
|
|
};
|
|
|
|
//Структура источника данных
|
|
const P8P_DATA_SOURCE_SHAPE = PropTypes.shape({
|
|
type: PropTypes.oneOf([...Object.values(P8P_DATA_SOURCE_TYPE), ""]),
|
|
userProc: PropTypes.string,
|
|
stored: PropTypes.string,
|
|
respArg: PropTypes.string,
|
|
arguments: PropTypes.arrayOf(P8P_DATA_SOURCE_ARGUMENT_SHAPE)
|
|
});
|
|
|
|
//Начальное состояние истоника данных
|
|
const P8P_DATA_SOURCE_INITIAL = {
|
|
type: "",
|
|
userProc: "",
|
|
stored: "",
|
|
respArg: "",
|
|
arguments: []
|
|
};
|
|
|
|
//----------------
|
|
//Интерфейс модуля
|
|
//----------------
|
|
|
|
export {
|
|
P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE,
|
|
P8P_DATA_SOURCE_ARGUMENT_INITIAL,
|
|
P8P_DATA_SOURCE_SHAPE,
|
|
P8P_DATA_SOURCE_TYPE,
|
|
P8P_DATA_SOURCE_TYPE_NAME,
|
|
P8P_DATA_SOURCE_INITIAL
|
|
};
|