@kontur.candy/generator 5.65.0 → 5.66.0
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/index.js +36 -22
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -51869,6 +51869,7 @@ class KcLang extends antlr4ts_Parser__WEBPACK_IMPORTED_MODULE_4__.Parser {
|
|
|
51869
51869
|
let _parentctx = this._ctx;
|
|
51870
51870
|
let _parentState = this.state;
|
|
51871
51871
|
let _localctx = new ExpressionContext(this._ctx, _parentState);
|
|
51872
|
+
// @ts-ignore
|
|
51872
51873
|
let _prevctx = _localctx;
|
|
51873
51874
|
let _startState = 82;
|
|
51874
51875
|
this.enterRecursionRule(_localctx, 82, KcLang.RULE_expression, _p);
|
|
@@ -52052,6 +52053,7 @@ class KcLang extends antlr4ts_Parser__WEBPACK_IMPORTED_MODULE_4__.Parser {
|
|
|
52052
52053
|
let _parentctx = this._ctx;
|
|
52053
52054
|
let _parentState = this.state;
|
|
52054
52055
|
let _localctx = new UnaryExpressionContext(this._ctx, _parentState);
|
|
52056
|
+
// @ts-ignore
|
|
52055
52057
|
let _prevctx = _localctx;
|
|
52056
52058
|
let _startState = 84;
|
|
52057
52059
|
this.enterRecursionRule(_localctx, 84, KcLang.RULE_unaryExpression, _p);
|
|
@@ -53375,6 +53377,7 @@ class KcLang extends antlr4ts_Parser__WEBPACK_IMPORTED_MODULE_4__.Parser {
|
|
|
53375
53377
|
let _parentctx = this._ctx;
|
|
53376
53378
|
let _parentState = this.state;
|
|
53377
53379
|
let _localctx = new FilterExpressionContext(this._ctx, _parentState);
|
|
53380
|
+
// @ts-ignore
|
|
53378
53381
|
let _prevctx = _localctx;
|
|
53379
53382
|
let _startState = 148;
|
|
53380
53383
|
this.enterRecursionRule(_localctx, 148, KcLang.RULE_filterExpression, _p);
|
|
@@ -53682,6 +53685,9 @@ class KcLang extends antlr4ts_Parser__WEBPACK_IMPORTED_MODULE_4__.Parser {
|
|
|
53682
53685
|
}
|
|
53683
53686
|
return true;
|
|
53684
53687
|
}
|
|
53688
|
+
|
|
53689
|
+
// @ts-ignore
|
|
53690
|
+
|
|
53685
53691
|
static get _ATN() {
|
|
53686
53692
|
if (!KcLang.__ATN) {
|
|
53687
53693
|
KcLang.__ATN = new antlr4ts_atn_ATNDeserializer__WEBPACK_IMPORTED_MODULE_1__.ATNDeserializer().deserialize(antlr4ts_misc_Utils__WEBPACK_IMPORTED_MODULE_10__.toCharArray(KcLang._serializedATN));
|
|
@@ -69454,7 +69460,7 @@ class FLangValidationBuildContext {
|
|
|
69454
69460
|
}
|
|
69455
69461
|
}
|
|
69456
69462
|
*createTypeValidations(targetPath, references, typeNode, schemaTypeNode, nodeGId) {
|
|
69457
|
-
var _typeNode$checkType, _typeNode$children$fi, _typeNode$children, _schemaTypeNode$enume, _digest$gId, _typeNode$children2, _typeNodeLength$value, _typeNode$children3, _typeNodeMinLength$va, _typeNode$children4, _typeNodeMaxLength$va, _typeNode$children5, _typeNodeMinInclusive, _typeNode$children6, _typeNodeMaxInclusive, _typeNode$children7, _typeNodeTotalDigits$, _typeNode$children$fi2, _typeNode$children8, _schemaTypeNode$patte, _typeNode$children9, _typeNodeInteger$valu, _typeNode$children10, _typeNodeFractional$v, _ref5, _typeNode$children$fi3, _typeNode$children11, _typeNode$children12;
|
|
69463
|
+
var _typeNode$checkType, _typeNode$children$fi, _typeNode$children, _schemaTypeNode$enume, _digest$keyColumnName, _digest$gId, _typeNode$children2, _typeNodeLength$value, _typeNode$children3, _typeNodeMinLength$va, _typeNode$children4, _typeNodeMaxLength$va, _typeNode$children5, _typeNodeMinInclusive, _typeNode$children6, _typeNodeMaxInclusive, _typeNode$children7, _typeNodeTotalDigits$, _typeNode$children$fi2, _typeNode$children8, _schemaTypeNode$patte, _typeNode$children9, _typeNodeInteger$valu, _typeNode$children10, _typeNodeFractional$v, _ref5, _typeNode$children$fi3, _typeNode$children11, _typeNode$children12;
|
|
69458
69464
|
const {
|
|
69459
69465
|
valueReference,
|
|
69460
69466
|
autoValueReference
|
|
@@ -69473,11 +69479,12 @@ class FLangValidationBuildContext {
|
|
|
69473
69479
|
};
|
|
69474
69480
|
}
|
|
69475
69481
|
const digest = typeNode === null || typeNode === void 0 ? void 0 : typeNode.getValidations(_validationGenerator_Nodes_TypeNode__WEBPACK_IMPORTED_MODULE_0__.DigestcheckTypeCheckNode).find(x => x);
|
|
69482
|
+
const keyColumnName = (_digest$keyColumnName = digest === null || digest === void 0 ? void 0 : digest.keyColumnName) !== null && _digest$keyColumnName !== void 0 ? _digest$keyColumnName : "code";
|
|
69476
69483
|
const gId = (_digest$gId = digest === null || digest === void 0 ? void 0 : digest.gId) !== null && _digest$gId !== void 0 ? _digest$gId : nodeGId;
|
|
69477
69484
|
if ((0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_6__.isNotNullOrEmpty)(gId) && (0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_6__.arrayHasLength)(enumerationItems, 0)) {
|
|
69478
69485
|
var _typeNode$isCaseIndep, _ref3, _digest$description, _ref4, _digest$checkType;
|
|
69479
69486
|
const isIgnoreCase = (_typeNode$isCaseIndep = typeNode === null || typeNode === void 0 ? void 0 : typeNode.isCaseIndependentValid) !== null && _typeNode$isCaseIndep !== void 0 ? _typeNode$isCaseIndep : false;
|
|
69480
|
-
const ruleBody = new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.OrBinaryExpression(new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.OrBinaryExpression(new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.IsEqualsBinaryExpression(valueReference, new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.NullLiteralExpression()), new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.IsEqualsBinaryExpression(valueReference, new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.StringLiteralExpression(""))), new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.HasPicklistValueExpression(valueReference, `${gId}[
|
|
69487
|
+
const ruleBody = new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.OrBinaryExpression(new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.OrBinaryExpression(new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.IsEqualsBinaryExpression(valueReference, new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.NullLiteralExpression()), new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.IsEqualsBinaryExpression(valueReference, new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.StringLiteralExpression(""))), new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.HasPicklistValueExpression(valueReference, `${gId}[${keyColumnName}]`, isIgnoreCase));
|
|
69481
69488
|
yield {
|
|
69482
69489
|
condition: new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_14__.NegateUnaryExpression(ruleBody),
|
|
69483
69490
|
message: makeArrayLiteral((_ref3 = (_digest$description = digest === null || digest === void 0 ? void 0 : digest.description) !== null && _digest$description !== void 0 ? _digest$description : typeNode === null || typeNode === void 0 ? void 0 : typeNode.description) !== null && _ref3 !== void 0 ? _ref3 : "Поле заполнено не по справочнику"),
|
|
@@ -86219,7 +86226,8 @@ class FilterSelectConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
|
|
|
86219
86226
|
return {
|
|
86220
86227
|
id: item.id,
|
|
86221
86228
|
caption: this.forceSingleTextNode(item.children),
|
|
86222
|
-
filter: this.extractFilterExpression(item.filter)
|
|
86229
|
+
filter: this.extractFilterExpression(item.filter),
|
|
86230
|
+
separated: !!item.separated
|
|
86223
86231
|
};
|
|
86224
86232
|
}
|
|
86225
86233
|
extractFilterExpression(filterExpression) {
|
|
@@ -86351,14 +86359,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
86351
86359
|
|
|
86352
86360
|
|
|
86353
86361
|
|
|
86354
|
-
var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3,
|
|
86362
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class3, _class4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;
|
|
86355
86363
|
|
|
86356
|
-
let FilterSelectItemNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.sugarNode)("item", ``, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/MultiControls/FilterSelect sync recursive .md$")), _dec2 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.children)(), _dec3 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("id", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.string.required, ``), _dec4 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("filter", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.objectLiteral(), ``), _dec(_class = (_class2 = class FilterSelectItemNode extends _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.SugarNodeBase {
|
|
86364
|
+
let FilterSelectItemNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.sugarNode)("item", ``, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/MultiControls/FilterSelect sync recursive .md$")), _dec2 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.children)(), _dec3 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("id", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.string.required, ``), _dec4 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("filter", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.objectLiteral(), ``), _dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("separated", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.boolean, `Добавляет разделитель после элемента`), _dec(_class = (_class2 = class FilterSelectItemNode extends _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.SugarNodeBase {
|
|
86357
86365
|
constructor(...args) {
|
|
86358
86366
|
super(...args);
|
|
86359
86367
|
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "children", _descriptor, this);
|
|
86360
86368
|
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "id", _descriptor2, this);
|
|
86361
86369
|
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "filter", _descriptor3, this);
|
|
86370
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "separated", _descriptor4, this);
|
|
86362
86371
|
}
|
|
86363
86372
|
}, (_descriptor = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "children", [_dec2], {
|
|
86364
86373
|
configurable: true,
|
|
@@ -86375,50 +86384,55 @@ let FilterSelectItemNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPOR
|
|
|
86375
86384
|
enumerable: true,
|
|
86376
86385
|
writable: true,
|
|
86377
86386
|
initializer: null
|
|
86387
|
+
}), _descriptor4 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "separated", [_dec5], {
|
|
86388
|
+
configurable: true,
|
|
86389
|
+
enumerable: true,
|
|
86390
|
+
writable: true,
|
|
86391
|
+
initializer: null
|
|
86378
86392
|
})), _class2)) || _class);
|
|
86379
|
-
let FilterSelectNode = (
|
|
86380
|
-
разными фильтрами. Задается произвольной строкой. Фильтры с одинаковым ключем фильтрации получают одинаковый результат фильтрации`),
|
|
86393
|
+
let FilterSelectNode = (_dec6 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.sugarNode)("filterselect", `Набор преопредленных фильтров`, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/MultiControls/FilterSelect sync recursive .md$")), _dec7 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("multilinePath", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.bindingPath, ``), _dec8 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("width", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.lengthUnit, `Ширина`), _dec9 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("tableId", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.string, ``), _dec10 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("filteredUniqKey", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.string, `Уникальный ключ фильтрации multiline, используется, для фильтраций одних и тех же путей иннера
|
|
86394
|
+
разными фильтрами. Задается произвольной строкой. Фильтры с одинаковым ключем фильтрации получают одинаковый результат фильтрации`), _dec11 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("emptyItemName", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.localizedString, ``), _dec12 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attr)("id", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.attrType.string.required, ``), _dec13 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.children)("item", [FilterSelectItemNode]), _dec6(_class3 = (_class4 = class FilterSelectNode extends _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_3__.SugarNodeBase {
|
|
86381
86395
|
constructor(...args) {
|
|
86382
86396
|
super(...args);
|
|
86383
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "multilinePath",
|
|
86384
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "width",
|
|
86385
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "tableId",
|
|
86386
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "filteredUniqKey",
|
|
86387
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "emptyItemName",
|
|
86388
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "id",
|
|
86389
|
-
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "items",
|
|
86397
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "multilinePath", _descriptor5, this);
|
|
86398
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "width", _descriptor6, this);
|
|
86399
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "tableId", _descriptor7, this);
|
|
86400
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "filteredUniqKey", _descriptor8, this);
|
|
86401
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "emptyItemName", _descriptor9, this);
|
|
86402
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "id", _descriptor10, this);
|
|
86403
|
+
_babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "items", _descriptor11, this);
|
|
86390
86404
|
}
|
|
86391
|
-
}, (
|
|
86405
|
+
}, (_descriptor5 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "multilinePath", [_dec7], {
|
|
86392
86406
|
configurable: true,
|
|
86393
86407
|
enumerable: true,
|
|
86394
86408
|
writable: true,
|
|
86395
86409
|
initializer: null
|
|
86396
|
-
}),
|
|
86410
|
+
}), _descriptor6 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "width", [_dec8], {
|
|
86397
86411
|
configurable: true,
|
|
86398
86412
|
enumerable: true,
|
|
86399
86413
|
writable: true,
|
|
86400
86414
|
initializer: null
|
|
86401
|
-
}),
|
|
86415
|
+
}), _descriptor7 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "tableId", [_dec9], {
|
|
86402
86416
|
configurable: true,
|
|
86403
86417
|
enumerable: true,
|
|
86404
86418
|
writable: true,
|
|
86405
86419
|
initializer: null
|
|
86406
|
-
}),
|
|
86420
|
+
}), _descriptor8 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "filteredUniqKey", [_dec10], {
|
|
86407
86421
|
configurable: true,
|
|
86408
86422
|
enumerable: true,
|
|
86409
86423
|
writable: true,
|
|
86410
86424
|
initializer: null
|
|
86411
|
-
}),
|
|
86425
|
+
}), _descriptor9 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "emptyItemName", [_dec11], {
|
|
86412
86426
|
configurable: true,
|
|
86413
86427
|
enumerable: true,
|
|
86414
86428
|
writable: true,
|
|
86415
86429
|
initializer: null
|
|
86416
|
-
}),
|
|
86430
|
+
}), _descriptor10 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "id", [_dec12], {
|
|
86417
86431
|
configurable: true,
|
|
86418
86432
|
enumerable: true,
|
|
86419
86433
|
writable: true,
|
|
86420
86434
|
initializer: null
|
|
86421
|
-
}),
|
|
86435
|
+
}), _descriptor11 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "items", [_dec13], {
|
|
86422
86436
|
configurable: true,
|
|
86423
86437
|
enumerable: true,
|
|
86424
86438
|
writable: true,
|
|
@@ -133987,7 +134001,7 @@ module.exports = "```xml\n <headerMenu header=\"Header\" path=\"multilinepath\"
|
|
|
133987
134001
|
\***********************************************************************************************************/
|
|
133988
134002
|
/***/ ((module) => {
|
|
133989
134003
|
|
|
133990
|
-
module.exports = "
|
|
134004
|
+
module.exports = "### Опциональность мультилайна и таблиц\n**Показ первой строки мультилайна при добавлении таблицы**\n\nДля того чтобы первая строка отрисовывалась сразу, в момент добавления таблицы в редактор (на старте редактора, при добавлении раздела. таба и т.п.), **сам мультилайн** должен быть **обязательным**.\n\nТ.е. для таблиц с типами sticky, crossfit и без указания типа справедливо следующее:\n* Таблица optional=true или опциональность не указана + мультилайн опциональность не указана. При открытии **сразу нарисуем первую строку**;\n* Таблица optional=true или опциональность не указана + мультилайн optional=true. При открытии **первую строку не покажем**.\n\n**Возможность удалить последнюю строку мультилайна**\n\nВ зависимости от выставленной опциональности при попытке удаления последняя строка в таблице либо удалится, либо очистится.\n\nПоведение зависит в т.ч. от типа таблицы.\n\nСуществующая логика следующая:\n1. В таблице и мультилайне опциональность не проставлена. В таблицах sticky, crossfit, без указания типа последняя строка очищается при попытке удалить ее крестиком или через rawMenu\n2. Таблица optional=true + мультилайн опциональность не указана:\n 1. В таблицах sticky и без указания типа - **последняя строка очищается** при попытке удалить крестиком или через rawMenu\n 2. В таблицах crossfit **последняя строка удаляется** крестиком или через rawMenu\n3. Таблица и мультилайн optional=true. В таблицах sticky, crossfit, без указания типа **последняя строка удаляется** крестиком или через rawMenu\n4. Таблица опциональность не указана + мультилайн optional=true:\n 1. В таблицах sticky и без указания типа - **последняя строка удаляется** крестиком или через rawMenu\n 2. В таблицах crossfit **последняя строка очищается** крестиком или через rawMenu";
|
|
133991
134005
|
|
|
133992
134006
|
/***/ }),
|
|
133993
134007
|
|