@evergis/react 4.0.151 → 4.0.153
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dashboard/componentTypes.d.ts +1 -1
- package/dist/components/Dashboard/containers/StructuredDataContainer/hooks/useStructuredData.d.ts +3 -3
- package/dist/components/Dashboard/containers/StructuredDataContainer/hooks/useStructuredDataSave.d.ts +1 -1
- package/dist/components/Dashboard/containers/StructuredDataContainer/hooks/useStructuredDataSchema.d.ts +6 -2
- package/dist/components/Dashboard/types.d.ts +10 -0
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +15 -11
- package/dist/react.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/react.esm.js
CHANGED
|
@@ -11459,7 +11459,7 @@ const saveToSource = async ({ api, layerName, rows, schema, }) => {
|
|
|
11459
11459
|
};
|
|
11460
11460
|
|
|
11461
11461
|
/**
|
|
11462
|
-
* Запись черновика: сперва в
|
|
11462
|
+
* Запись черновика: сперва в слой (если задан — то есть включён `saveToLayer`), затем в фильтр.
|
|
11463
11463
|
*
|
|
11464
11464
|
* Порядок не случаен: потребители фильтра не должны увидеть данные, которых источник не принял.
|
|
11465
11465
|
* При ошибке черновик остаётся нетронутым — пользователь может исправить значения и повторить.
|
|
@@ -11508,9 +11508,9 @@ const getSourceAttributes = (attributesConfiguration) => {
|
|
|
11508
11508
|
* поле сервер всё равно не примет, поэтому конфиг может такую ячейку только ЗАПРЕТИТЬ, но не
|
|
11509
11509
|
* разрешить.
|
|
11510
11510
|
*
|
|
11511
|
-
*
|
|
11512
|
-
* строки уходят только в фильтр, и «нередактируемо»
|
|
11513
|
-
* Решает конфиг — по умолчанию правка разрешена.
|
|
11511
|
+
* Без записи в слой — источник без него (EQL-запрос, python-скрипт, внешний url) или слой без
|
|
11512
|
+
* `saveToLayer` — они не накладываются вовсе: строки уходят только в фильтр, и «нередактируемо»
|
|
11513
|
+
* там значит лишь «нельзя записать обратно». Решает конфиг — по умолчанию правка разрешена.
|
|
11514
11514
|
*/
|
|
11515
11515
|
const resolveIsEditable = ({ description, source, idAttribute, canWriteToSource }) => {
|
|
11516
11516
|
const sourceEditable = source && canWriteToSource
|
|
@@ -11580,18 +11580,22 @@ const buildStructuredDataSchema = ({ attributesDescription, attributesConfigurat
|
|
|
11580
11580
|
* Источник резолвится через общий `useRelatedDataSourceAttributes`: он собирает layerInfo
|
|
11581
11581
|
* реального слоя, а для EQL/python-источников — синтетический из атрибутов ответа.
|
|
11582
11582
|
*
|
|
11583
|
-
* `layerName`
|
|
11584
|
-
*
|
|
11583
|
+
* `layerName` — слой ЗАПИСИ, а не просто слой источника: он задан только при `saveToLayer` и
|
|
11584
|
+
* источнике со слоем. Без опции правка уходит лишь в фильтр, и слой ни на что не влияет — ни на
|
|
11585
|
+
* адресат «Сохранить», ни на ограничения схемы, ни на предупреждение при удалении строки.
|
|
11586
|
+
*
|
|
11587
|
+
* Берётся из конфига страницы, а не из загруженного источника: от него зависит, какие ячейки
|
|
11588
|
+
* редактируемы, и до окончания загрузки схема не должна меняться.
|
|
11585
11589
|
*/
|
|
11586
11590
|
const useStructuredDataSchema = (type, elementConfig) => {
|
|
11587
11591
|
const { dataSources } = useWidgetContext(type);
|
|
11588
|
-
const { attributesDescription, relatedDataSource } = elementConfig?.options || {};
|
|
11592
|
+
const { attributesDescription, relatedDataSource, saveToLayer } = elementConfig?.options || {};
|
|
11589
11593
|
const { layerInfo, dataSource, configDataSource } = useRelatedDataSourceAttributes({
|
|
11590
11594
|
type,
|
|
11591
11595
|
elementConfig,
|
|
11592
11596
|
dataSources,
|
|
11593
11597
|
});
|
|
11594
|
-
const layerName = configDataSource?.layerName;
|
|
11598
|
+
const layerName = useMemo(() => (saveToLayer ? configDataSource?.layerName : undefined), [configDataSource?.layerName, saveToLayer]);
|
|
11595
11599
|
const attributesConfiguration = useMemo(() => (relatedDataSource ? getAttributesConfiguration(layerInfo) : undefined), [layerInfo, relatedDataSource]);
|
|
11596
11600
|
const schema = useMemo(() => buildStructuredDataSchema({ attributesDescription, attributesConfiguration, canWriteToSource: !!layerName }), [attributesDescription, attributesConfiguration, layerName]);
|
|
11597
11601
|
return { schema, dataSource, layerName };
|
|
@@ -11604,9 +11608,9 @@ const useStructuredDataSchema = (type, elementConfig) => {
|
|
|
11604
11608
|
* редакторов ячеек, добавления, удаления и кнопок сохранения. Состав строк закрывается отдельно:
|
|
11605
11609
|
* с `editOnly` у представления правка ячеек остаётся, а добавление и удаление уходят.
|
|
11606
11610
|
*
|
|
11607
|
-
* Вид источника на права правки не
|
|
11608
|
-
* принимает запись через features-API, источник без `layerName`
|
|
11609
|
-
* url) не принимает ничего, и
|
|
11611
|
+
* Вид источника на права правки не влияет. Адресат «Сохранить» — фильтр всегда, а слой — только
|
|
11612
|
+
* с `options.saveToLayer`: слой принимает запись через features-API, источник без `layerName`
|
|
11613
|
+
* (EQL, python-скрипт, внешний url) не принимает ничего, и опция у него уходит вхолостую.
|
|
11610
11614
|
*
|
|
11611
11615
|
* Значение фильтра читается так же, как его читают остальные потребители дашборда: выбор
|
|
11612
11616
|
* пользователя, а пока его нет — `defaultValue` из конфига фильтра. Общего стейта, залитого
|