@kontur.candy/generator 5.116.0-fs-9118-contractors-widget.0 → 5.117.0-fs-8494-off-redonly-autocalcs.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.
Files changed (2) hide show
  1. package/dist/index.js +158 -94
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -94331,6 +94331,8 @@ BindingPath: ${errorPath}`));
94331
94331
  sidebarBuilder.prop(x => x.className).set(node.className);
94332
94332
  for (const row of node.rows) {
94333
94333
  if ((0,_StickyTableNode__WEBPACK_IMPORTED_MODULE_17__.isMultilineNode)(row)) {
94334
+ // Возможно, стоит запретить этот вариант, т.к. он вырывает из мультилайна ячейки,
94335
+ // не оборачивая в необходимые контексты
94334
94336
  sidebarBuilder.appendChild(this.getSidebarMultiline(context, node, row, end));
94335
94337
  } else {
94336
94338
  const multiline = row.columns.find(_StickyTableNode__WEBPACK_IMPORTED_MODULE_17__.isMultilineNode);
@@ -97024,7 +97026,11 @@ __webpack_require__.r(__webpack_exports__);
97024
97026
  /* harmony import */ var _getBindingPath__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../getBindingPath */ "./Generator/src/generators/markupGenerator/getBindingPath.ts");
97025
97027
  /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
97026
97028
  /* harmony import */ var _Typography_Icon_GetIconName__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Typography/Icon/GetIconName */ "./Generator/src/generators/markupGenerator/ElementProcessors/Typography/Icon/GetIconName.ts");
97027
- /* harmony import */ var _ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ComboBoxNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Combobox/ComboBoxNode.ts");
97029
+ /* harmony import */ var _binding__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../binding */ "./Generator/src/generators/markupGenerator/binding.ts");
97030
+ /* harmony import */ var _common_XmlParser_XmlNode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../common/XmlParser/XmlNode */ "./Generator/src/common/XmlParser/XmlNode.ts");
97031
+ /* harmony import */ var _ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ComboBoxNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Combobox/ComboBoxNode.ts");
97032
+
97033
+
97028
97034
 
97029
97035
 
97030
97036
 
@@ -97036,35 +97042,38 @@ __webpack_require__.r(__webpack_exports__);
97036
97042
 
97037
97043
  class ComboBoxConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_2__.SugarNodeConverterBase {
97038
97044
  static getAcceptNodeClass() {
97039
- return _ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode;
97045
+ return _ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode;
97040
97046
  }
97041
97047
  doBuildNodeValidations(validationGenerator) {
97042
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97048
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97043
97049
  validationGenerator.processValidations(this.getResolvedBindingPath(node), node.validationInfo.optional, validationGenerator.getTypeNode(node.validationInfo), node.gId, node.validationInfo.emptydescription, undefined);
97044
97050
  }
97045
97051
  doGetRequisites() {
97046
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97052
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97047
97053
  return (0,_RequisiteLIst_requisiteList__WEBPACK_IMPORTED_MODULE_0__.getRequisitesFromEvaluableProps)(node.filter, node.mostLikelyFilter, node.emptyValueFilter);
97048
97054
  }
97049
97055
  get nodePaths() {
97050
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97051
- return [(0,_getBindingPath__WEBPACK_IMPORTED_MODULE_5__.getNewBindingPathExpression)(node)];
97056
+ var _node$binding$map, _node$binding;
97057
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97058
+ const paths = (_node$binding$map = (_node$binding = node.binding) === null || _node$binding === void 0 ? void 0 : _node$binding.map(([path]) => (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_5__.getNewRelativePathExpression)(node, path))) !== null && _node$binding$map !== void 0 ? _node$binding$map : [];
97059
+ paths.push((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_5__.getNewBindingPathExpression)(node));
97060
+ return paths;
97052
97061
  }
97053
97062
  doBuildDataDeclaration(context) {
97054
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97063
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97055
97064
  return context.mergeDataDeclaration(context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, node.disabled)], node.auto ? ["autoFlag", context.initSequenceFactory.takeFromModel()] : undefined, node.auto ? ["autoValue", context.initSequenceFactory.takeFromModelOrDefaultValue(node.dataBinding.defaultValue)] : undefined]), context.addSpecialFieldsEntry(node, {
97056
97065
  optional: node.dataBinding.optional,
97057
97066
  disabled: node.disabled
97058
97067
  }), context.addPathSectionDeclarationEntry(node, node.dataBinding.requisite), context.addVisibilityPathDeclEntryNew(node, node.dataBinding.requisite));
97059
97068
  }
97060
97069
  doBuildNormalizeRules(builder) {
97061
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97070
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97062
97071
  return [builder.valueInitializer(node, node.dataBinding, node.disabled), ...builder.specialFieldsInitializer(node, {
97063
97072
  disabled: node.disabled
97064
97073
  })];
97065
97074
  }
97066
97075
  *doBuildKCLangValidations(buildContext, formSchemaRng, prefixPath) {
97067
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97076
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97068
97077
  const element = formSchemaRng.getElementByPath(node.getFullPath());
97069
97078
  const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_6__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_6__.PathTokens.each);
97070
97079
  const typeNode = buildContext.getTypeNode(node.validationInfo);
@@ -97076,15 +97085,15 @@ class ComboBoxConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_2__
97076
97085
  yield* buildContext.buildBasicValidations(ownPath, targetPath, prefixPath, typeNode, schemaTypeNode, node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional, node.gId, node.validationInfo.emptydescription);
97077
97086
  }
97078
97087
  buildChildrenDataDeclaration(context) {
97079
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97088
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97080
97089
  return context.processChildrenDataDeclaration(node.helpNodes);
97081
97090
  }
97082
97091
  *doTraverseChildren() {
97083
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97092
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97084
97093
  yield* node.helpNodes;
97085
97094
  }
97086
97095
  doConvert(context) {
97087
- const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_8__.ComboBoxNode);
97096
+ const node = this.getCurrentNodeAs(_ComboBoxNode__WEBPACK_IMPORTED_MODULE_10__.ComboBoxNode);
97088
97097
  this.ensurePathExists(node, node.dataBinding.path);
97089
97098
  const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_1__.componentMarkupBuilder)("ComboBox");
97090
97099
  markupBuilder.prop(x => x.bindingPath).set((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_5__.getNewBindingPathExpression)(node));
@@ -97101,6 +97110,21 @@ class ComboBoxConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_2__
97101
97110
  markupBuilder.prop(x => x.valueToSaveColumnName).set(node.valueToSaveColumnName);
97102
97111
  markupBuilder.prop(x => x.isEnableCaseIndependentValidation).set(node.isEnableCaseIndependentValidation);
97103
97112
  markupBuilder.prop(x => x.greyPicklistValues).set(node.greyPicklistValues);
97113
+ const binding = node.binding;
97114
+ if (binding) {
97115
+ markupBuilder.prop(x => x.mapChangesField).set(binding.map(([_path, field]) => (0,_binding__WEBPACK_IMPORTED_MODULE_8__.getBindingSourceField)(field)));
97116
+ const dependencies = binding === null || binding === void 0 ? void 0 : binding.map(([path, field]) => ({
97117
+ path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_5__.getNewRelativePathExpression)(node, path),
97118
+ field: (0,_binding__WEBPACK_IMPORTED_MODULE_8__.getBindingSourceField)(field),
97119
+ value: (0,_binding__WEBPACK_IMPORTED_MODULE_8__.getBindingSourceValue)(field)
97120
+ }));
97121
+ markupBuilder.prop(x => x.dependencies).set(dependencies);
97122
+ const nodePath = this.getLegacyNode().attrAsStringStrict("path");
97123
+ const bindingForCurrentPath = binding.find(([path, _field]) => path === nodePath);
97124
+ if (bindingForCurrentPath == undefined) {
97125
+ throw new _common_XmlParser_XmlNode__WEBPACK_IMPORTED_MODULE_9__.SugarAttributeReadError("Значение пути в атрибуте binding должно в точности совпадать со значнием в path", node, "binding");
97126
+ }
97127
+ }
97104
97128
  const reference = (0,_Select_PicklistReference__WEBPACK_IMPORTED_MODULE_3__.extractPicklistReference)(node);
97105
97129
  if (reference != undefined && reference.type === _Select_PicklistReference__WEBPACK_IMPORTED_MODULE_3__.PicklistReferenceType.GlobalPicklist) {
97106
97130
  markupBuilder.prop(x => x.gId).set(reference.id);
@@ -97212,7 +97236,7 @@ __webpack_require__.r(__webpack_exports__);
97212
97236
 
97213
97237
 
97214
97238
 
97215
- var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _dec36, _dec37, _dec38, _dec39, _dec40, _dec41, _dec42, _dec43, _dec44, _dec45, _dec46, _dec47, _dec48, _dec49, _dec50, _dec51, _dec52, _dec53, _dec54, _class3, _class4, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27, _descriptor28, _descriptor29, _descriptor30, _descriptor31, _descriptor32, _descriptor33, _descriptor34, _descriptor35, _descriptor36, _descriptor37, _descriptor38, _descriptor39, _descriptor40, _descriptor41, _descriptor42, _descriptor43, _descriptor44, _descriptor45, _descriptor46, _descriptor47, _descriptor48, _descriptor49, _descriptor50, _descriptor51, _descriptor52;
97239
+ var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _dec36, _dec37, _dec38, _dec39, _dec40, _dec41, _dec42, _dec43, _dec44, _dec45, _dec46, _dec47, _dec48, _dec49, _dec50, _dec51, _dec52, _dec53, _dec54, _dec55, _class3, _class4, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27, _descriptor28, _descriptor29, _descriptor30, _descriptor31, _descriptor32, _descriptor33, _descriptor34, _descriptor35, _descriptor36, _descriptor37, _descriptor38, _descriptor39, _descriptor40, _descriptor41, _descriptor42, _descriptor43, _descriptor44, _descriptor45, _descriptor46, _descriptor47, _descriptor48, _descriptor49, _descriptor50, _descriptor51, _descriptor52, _descriptor53;
97216
97240
 
97217
97241
 
97218
97242
 
@@ -97251,7 +97275,7 @@ let ComboboxEnumerationItem = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IM
97251
97275
  let ComboBoxNode = (_dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.sugarNode)("combobox", `Комбобокс`, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Combobox sync recursive .md$")), _dec6 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrMixin)(_CommonNodeProperties_ValidationInfoNode__WEBPACK_IMPORTED_MODULE_5__.ValidationInfoNode), _dec7 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrMixin)(_CommonNodeProperties_DataBindingMixinNode__WEBPACK_IMPORTED_MODULE_4__.DataBindingMixinNode), _dec8 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("disabled2", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.javascriptExpression, `${(0,_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_11__.docLink)(_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_11__.javaScriptExpressionLink)} для условного задизейбливания контрола`), _dec9 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("tid", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, "Возможность установки произвольных data-tid атрибутов, может пригодиться другим командам, или для идентификации элемента в тестах"), _dec10 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrMixin)(_CommonNodeProperties_TooltipProperties_TooltipSettingsNode__WEBPACK_IMPORTED_MODULE_10__.TooltipSettingsNode), _dec11 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrMixin)(_CommonNodeProperties_FocusManagementNode__WEBPACK_IMPORTED_MODULE_12__.FocusManagementNode), _dec12 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("maxLength", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec13 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("caption", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec14 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("openbutton", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec15 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("rngAttribute", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec16 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("kind", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec17 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("title", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.InvalidUsage), _dec18 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("useIncorrectValue", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.Typo), _dec19 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.deprecatedAttr)("controlVersion", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_6__.DeprecationReason.Removed), _dec20 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("type", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.typeName, "Тип для валидации значений"), _dec21 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.singleChild)("type", [_validationGenerator_Nodes_TypeNode__WEBPACK_IMPORTED_MODULE_3__.TypeNode]), _dec22 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("gId", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Глобальный идентификатор справочника`), _dec23 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("limit", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.number, `Количество значений в выпадающем списке`), _dec24 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("display", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `В каком виде отобразится выбранное значение в инпуте: значение/название/полностью (value/name/item).
97252
97276
  Также можно отображать кастомные колонки по названию.`), _dec25 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("disabled", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, ``), _dec26 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("greyPicklistValues", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, `Красить значения в выпадашке пиклиста в серый цвет`), _dec27 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("displayItem", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.enum("value", "name"), `В каком виде отобразится занчение в списке: значение/название`), _dec28 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("gPath", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, ``), _dec29 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("gPaths", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.delimitedStringArray, ``), _dec30 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("savedescription", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, ``), _dec31 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("useincorrectvalue", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, `Для валидации введенного значения. если false - то только из справочника должно быть значение`), _dec32 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("placeholder", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.localizedString.default("Начните вводить код или название"), `Когда в input-e пусто, то рисуется этот текст`), _dec33 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("width", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.lengthUnit, ``), _dec34 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("menuAlign", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.enum("left", "right"), `Определяет, в какую сторону будет открываться выпадающий список. Значения: \`left\`, \`right\`. Значение по умолчанию: \`left\``), _dec35 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("filter", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.javascriptExpression, ``), _dec36 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("mostLikelyFilter", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.javascriptExpression, `Фильтр для популярных значений`), _dec37 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("mostLikelyCaption", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Подпись для раздела с популярными значениями`), _dec38 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("notFoundText", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Надпись при отсутствии значений по фильтру`), _dec39 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("keyColumnName", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Поле дает возможность указать произвольное значение из объекта пиклиста, вместо дефолтного \`code\`, данный ключ будет выведен в первой колонке комбобокса`), _dec40 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("valueColumnName", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Поле дает возможность указать произвольное значение из объекта пиклиста, вместо дефолтного \`value\`, данный ключ будет выведен во второй колонке комбобокса`), _dec41 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("searchcolumnnames", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.stringArray, `Поля справочника, используемые для поиска`), _dec42 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("valueToSaveColumnName", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, `Название колонки, значение из которой хотим сохранить в иннере`), _dec43 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("emptyValueFilter", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.javascriptExpression, `Фильтр показываемые поля, если вводимое значение пусто`), _dec44 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("help", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, ``), _dec45 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.children)("enumeration", [ComboboxEnumerationItem]), _dec46 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.children)("help", [_Helpers_Help_HelpNode__WEBPACK_IMPORTED_MODULE_9__.HelpNode]), _dec47 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("auto", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, "Подключен авторасчет"), _dec48 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.markupAttr)("formula", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, "Подсказка для автозначения"), _dec49 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("autoValue", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, "Значение авторасчета. Код, элемент которого будет показываться как автозначение. Использовать в тестах, заменяет получение из калькуляций."), _dec50 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("useAutoIcon", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.string, "Какую иконку использовать при использовании авторасчета (работает только с auto = true). Имя иконки смотреть тут - https://ui.gitlab-pages.kontur.host/docs/#/react-icons"), _dec51 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("isEnableCaseIndependentValidation", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.boolean, `Включить регистронезависимую валидацию. Если написан этот атрибут, то в type надо дописать isCaseIndependentValid=true.`), _dec52 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("callHelperOnBlur", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.helperFunctionName, "Вызов helper функции на onBlur контролла"), _dec53 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("callHelperOnChange", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.helperFunctionName, "Вызов helper функции на onChange контролла"), _dec54 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("filterCallback", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.helperFunctionName, `Helper-функция, которая фильтрует массив элементов. Принимает массив args (третий аргумент в хелпере), должна сделать return массива с таким же контрактом.
97253
97277
  При использовании нужно установить максимальный limit, т.к. ответственность за работу с массивом передается коллбэку.
97254
- Также может некорректно работать mostLikelyFilter.`), _dec5(_class3 = (_class4 = class ComboBoxNode extends _Serializer_SugarNodeWithLegacyVisibility__WEBPACK_IMPORTED_MODULE_7__.SugarNodeWithLegacyVisibility {
97278
+ Также может некорректно работать mostLikelyFilter.`), _dec55 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attr)("binding", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_8__.attrType.objectLiteral(), `Связывание значения из справочника с полем (полями) в модели кенди (иннере).`), _dec5(_class3 = (_class4 = class ComboBoxNode extends _Serializer_SugarNodeWithLegacyVisibility__WEBPACK_IMPORTED_MODULE_7__.SugarNodeWithLegacyVisibility {
97255
97279
  constructor(...args) {
97256
97280
  super(...args);
97257
97281
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "validationInfo", _descriptor4, this);
@@ -97303,6 +97327,7 @@ let ComboBoxNode = (_dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MOD
97303
97327
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "callHelperOnBlur", _descriptor50, this);
97304
97328
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "callHelperOnChange", _descriptor51, this);
97305
97329
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "filterCallback", _descriptor52, this);
97330
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "binding", _descriptor53, this);
97306
97331
  }
97307
97332
  getOwnPath() {
97308
97333
  return this.dataBinding.getOwnPath();
@@ -97555,6 +97580,11 @@ let ComboBoxNode = (_dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MOD
97555
97580
  enumerable: true,
97556
97581
  writable: true,
97557
97582
  initializer: null
97583
+ }), _descriptor53 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class4.prototype, "binding", [_dec55], {
97584
+ configurable: true,
97585
+ enumerable: true,
97586
+ writable: true,
97587
+ initializer: null
97558
97588
  }), _class4)) || _class3);
97559
97589
 
97560
97590
  /***/ }),
@@ -100455,7 +100485,9 @@ __webpack_require__.r(__webpack_exports__);
100455
100485
  /* harmony import */ var _Select_PicklistReference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Select/PicklistReference */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Select/PicklistReference.ts");
100456
100486
  /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
100457
100487
  /* harmony import */ var _SugarNodes_SugarNodeUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../SugarNodes/SugarNodeUtils */ "./Generator/src/generators/markupGenerator/SugarNodes/SugarNodeUtils.ts");
100458
- /* harmony import */ var _PicklistNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PicklistNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Picklist/PicklistNode.ts");
100488
+ /* harmony import */ var _binding__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../binding */ "./Generator/src/generators/markupGenerator/binding.ts");
100489
+ /* harmony import */ var _PicklistNode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PicklistNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Picklist/PicklistNode.ts");
100490
+
100459
100491
 
100460
100492
 
100461
100493
 
@@ -100466,10 +100498,10 @@ __webpack_require__.r(__webpack_exports__);
100466
100498
 
100467
100499
  class PicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__.SugarNodeConverterBase {
100468
100500
  static getAcceptNodeClass() {
100469
- return _PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode;
100501
+ return _PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode;
100470
100502
  }
100471
100503
  *doBuildKCLangValidations(buildContext, formSchemaRng, prefixPath) {
100472
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100504
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100473
100505
  const element = formSchemaRng.getElementByPath(node.getFullPath());
100474
100506
  const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__.PathTokens.each);
100475
100507
  const typeNode = buildContext.getTypeNode(node.validationInfo);
@@ -100482,12 +100514,12 @@ class PicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__
100482
100514
  yield* buildContext.buildBasicValidations(ownPathFixed, targetPath, prefixPath, typeNode, schemaTypeNode, node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional, node.gId);
100483
100515
  }
100484
100516
  doBuildNodeValidations(validationGenerator) {
100485
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100517
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100486
100518
  validationGenerator.processValidations(this.getResolvedBindingPath(node), node.validationInfo.optional, validationGenerator.getTypeNode(node.validationInfo), node.gId, node.validationInfo.emptydescription, undefined);
100487
100519
  }
100488
100520
  *doBuildNormalizeRules(builder, formSchemaRng) {
100489
100521
  var _ref;
100490
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100522
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100491
100523
  const element = formSchemaRng.getElementByPath(node.getFullPath());
100492
100524
  yield builder.valueInitializer(node, node.dataBinding, false);
100493
100525
  const isOptional = (_ref = node.dataBinding.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.dataBinding.optional) !== null && _ref !== void 0 ? _ref : false;
@@ -100498,29 +100530,29 @@ class PicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__
100498
100530
  }
100499
100531
  doBuildDataDeclaration(context) {
100500
100532
  var _node$dataBinding$opt;
100501
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100533
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100502
100534
  return context.mergeDataDeclaration(context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, false)]]), context.addSpecialFieldsEntry(node, {
100503
100535
  optional: node.dataBinding.optional
100504
100536
  }), context.addPathSectionDeclarationEntry(node, node.dataBinding.requisite), context.addVisibilityPathDeclEntryNew(node, node.dataBinding.requisite), context.addChildrenPathDeclEntry(node, node.dataBinding.path, (_node$dataBinding$opt = node.dataBinding.optional) !== null && _node$dataBinding$opt !== void 0 ? _node$dataBinding$opt : false, node.dataBinding.requisite));
100505
100537
  }
100506
100538
  get nodePaths() {
100507
100539
  var _node$binding$map, _node$binding;
100508
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100540
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100509
100541
  const paths = (_node$binding$map = (_node$binding = node.binding) === null || _node$binding === void 0 ? void 0 : _node$binding.map(([path]) => (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewRelativePathExpression)(node, path))) !== null && _node$binding$map !== void 0 ? _node$binding$map : [];
100510
100542
  paths.push((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewBindingPathExpression)(node));
100511
100543
  return paths;
100512
100544
  }
100513
100545
  buildChildrenDataDeclaration(context) {
100514
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100546
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100515
100547
  return context.processChildrenDataDeclaration(node.helpNodes);
100516
100548
  }
100517
100549
  *doTraverseChildren() {
100518
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100550
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100519
100551
  yield* node.helpNodes;
100520
100552
  }
100521
100553
  doConvert(context) {
100522
100554
  var _node$descriptionInMo;
100523
- const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_7__.PicklistNode);
100555
+ const node = this.getCurrentNodeAs(_PicklistNode__WEBPACK_IMPORTED_MODULE_8__.PicklistNode);
100524
100556
  this.ensurePathExists(node, node.dataBinding.path);
100525
100557
  const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("Picklist");
100526
100558
  markupBuilder.prop(x => x.limit).set(node.limit);
@@ -100561,18 +100593,18 @@ class PicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__
100561
100593
  }
100562
100594
  const nodePath = this.getLegacyNode().attrAsStringStrict("path");
100563
100595
  const binding = node.binding || [[nodePath, "code"]];
100564
- markupBuilder.prop(x => x.mapChangesField).set(binding.map(([_path, field]) => this.getBindingSourceField(field)));
100596
+ markupBuilder.prop(x => x.mapChangesField).set(binding.map(([_path, field]) => (0,_binding__WEBPACK_IMPORTED_MODULE_7__.getBindingSourceField)(field)));
100565
100597
  const bindingForCurrentPath = binding.find(([path, _field]) => path === nodePath);
100566
100598
  if (bindingForCurrentPath == undefined) {
100567
100599
  throw new _common_XmlParser_XmlNode__WEBPACK_IMPORTED_MODULE_0__.SugarAttributeReadError("Значение пути в атрибуте binding должно в точности совпадать со значнием в path", node, "binding");
100568
100600
  }
100569
100601
  const searchByField = bindingForCurrentPath[1];
100570
- markupBuilder.prop(x => x.searchByField).set(this.getBindingSourceField(searchByField));
100602
+ markupBuilder.prop(x => x.searchByField).set((0,_binding__WEBPACK_IMPORTED_MODULE_7__.getBindingSourceField)(searchByField));
100571
100603
  markupBuilder.prop(x => x.bindingPath).set((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewBindingPathExpression)(node));
100572
- const dependencies = binding.map(([path, field]) => ({
100604
+ const dependencies = binding === null || binding === void 0 ? void 0 : binding.map(([path, field]) => ({
100573
100605
  path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewRelativePathExpression)(node, path),
100574
- field: this.getBindingSourceField(field),
100575
- value: this.getBindingSourceValue(field)
100606
+ field: (0,_binding__WEBPACK_IMPORTED_MODULE_7__.getBindingSourceField)(field),
100607
+ value: (0,_binding__WEBPACK_IMPORTED_MODULE_7__.getBindingSourceValue)(field)
100576
100608
  }));
100577
100609
  markupBuilder.prop(x => x.dependencies).set(dependencies);
100578
100610
  if (node.kind === "group") {
@@ -100596,15 +100628,6 @@ class PicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__
100596
100628
  }
100597
100629
  return markupBuilder.buildConverterResultWithHelp(node, context);
100598
100630
  }
100599
- getBindingSourceField(x) {
100600
- return typeof x === "string" ? x : x.field;
100601
- }
100602
- getBindingSourceValue(x) {
100603
- if (typeof x === "string" || x.value == undefined) {
100604
- return "value";
100605
- }
100606
- return x.value;
100607
- }
100608
100631
  }
100609
100632
 
100610
100633
  /***/ }),
@@ -102846,7 +102869,9 @@ __webpack_require__.r(__webpack_exports__);
102846
102869
  /* harmony import */ var _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../SugarNodeConverter */ "./Generator/src/generators/markupGenerator/SugarNodeConverter.ts");
102847
102870
  /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
102848
102871
  /* harmony import */ var _common_XmlParser_XmlNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../common/XmlParser/XmlNode */ "./Generator/src/common/XmlParser/XmlNode.ts");
102849
- /* harmony import */ var _TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TreePicklistNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/TreePicklist/TreePicklistNode.ts");
102872
+ /* harmony import */ var _binding__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../binding */ "./Generator/src/generators/markupGenerator/binding.ts");
102873
+ /* harmony import */ var _TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./TreePicklistNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/TreePicklist/TreePicklistNode.ts");
102874
+
102850
102875
 
102851
102876
 
102852
102877
 
@@ -102855,10 +102880,10 @@ __webpack_require__.r(__webpack_exports__);
102855
102880
 
102856
102881
  class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_2__.SugarNodeConverterBase {
102857
102882
  static getAcceptNodeClass() {
102858
- return _TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode;
102883
+ return _TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode;
102859
102884
  }
102860
102885
  doBuildFLangValidations(buildContext, formSchemaRng) {
102861
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102886
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102862
102887
  const element = formSchemaRng.getElementByPath(node.getFullPath());
102863
102888
  const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_3__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_3__.PathTokens.each);
102864
102889
  const typeNode = buildContext.getTypeNode(node.validationInfo);
@@ -102869,12 +102894,12 @@ class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
102869
102894
  return buildContext.buildBasicValidations(targetPath, typeNode, schemaTypeNode, node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional, undefined, node.gId);
102870
102895
  }
102871
102896
  doBuildNodeValidations(validationGenerator) {
102872
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102897
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102873
102898
  validationGenerator.processValidations(this.getResolvedBindingPath(node), node.validationInfo.optional, validationGenerator.getTypeNode(node.validationInfo), node.gId, node.validationInfo.emptydescription, undefined);
102874
102899
  }
102875
102900
  *doBuildNormalizeRules(builder, formSchemaRng) {
102876
102901
  var _ref;
102877
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102902
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102878
102903
  const element = formSchemaRng.getElementByPath(node.getFullPath());
102879
102904
  yield builder.valueInitializer(node, node.dataBinding, false);
102880
102905
  const isOptional = (_ref = node.dataBinding.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.dataBinding.optional) !== null && _ref !== void 0 ? _ref : false;
@@ -102885,26 +102910,26 @@ class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
102885
102910
  }
102886
102911
  doBuildDataDeclaration(context) {
102887
102912
  var _node$dataBinding$opt;
102888
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102913
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102889
102914
  return context.mergeDataDeclaration(context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, false)]]), context.addSpecialFieldsEntry(node, {
102890
102915
  optional: node.dataBinding.optional
102891
102916
  }), context.addPathSectionDeclarationEntry(node, node.dataBinding.requisite), context.addVisibilityPathDeclEntryNew(node, node.dataBinding.requisite), context.addChildrenPathDeclEntry(node, node.dataBinding.path, (_node$dataBinding$opt = node.dataBinding.optional) !== null && _node$dataBinding$opt !== void 0 ? _node$dataBinding$opt : false, node.dataBinding.requisite));
102892
102917
  }
102893
102918
  get nodePaths() {
102894
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102919
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102895
102920
  return [(0,_getBindingPath__WEBPACK_IMPORTED_MODULE_0__.getNewBindingPathExpression)(node)];
102896
102921
  }
102897
102922
  buildChildrenDataDeclaration(context) {
102898
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102923
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102899
102924
  return context.processChildrenDataDeclaration(node.helpNodes);
102900
102925
  }
102901
102926
  *doTraverseChildren() {
102902
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102927
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102903
102928
  yield* node.helpNodes;
102904
102929
  }
102905
102930
  doConvert(context) {
102906
102931
  var _node$descriptionInMo, _node$title, _node$width, _node$fields, _node$display, _node$childColumnName, _node$parentColumnNam, _node$tooltipPosition;
102907
- const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_5__.TreePicklistNode);
102932
+ const node = this.getCurrentNodeAs(_TreePicklistNode__WEBPACK_IMPORTED_MODULE_6__.TreePicklistNode);
102908
102933
  this.ensurePathExists(node, node.dataBinding.path);
102909
102934
  const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_1__.componentMarkupBuilder)("TreePicklist");
102910
102935
  markupBuilder.prop(x => x.bindingPath).set((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_0__.getNewBindingPathExpression)(node));
@@ -102912,10 +102937,10 @@ class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
102912
102937
  const binding = node.binding || [[nodePath, "code"]];
102913
102938
  const dependencies = binding.map(([path, field]) => ({
102914
102939
  path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_0__.getNewRelativePathExpression)(node, path),
102915
- field: this.getBindingSourceField(field),
102916
- value: this.getBindingSourceValue(field)
102940
+ field: (0,_binding__WEBPACK_IMPORTED_MODULE_5__.getBindingSourceField)(field),
102941
+ value: (0,_binding__WEBPACK_IMPORTED_MODULE_5__.getBindingSourceValue)(field)
102917
102942
  }));
102918
- markupBuilder.prop(x => x.mapChangesField).set(binding.map(([_path, field]) => this.getBindingSourceField(field)));
102943
+ markupBuilder.prop(x => x.mapChangesField).set(binding.map(([_path, field]) => (0,_binding__WEBPACK_IMPORTED_MODULE_5__.getBindingSourceField)(field)));
102919
102944
  markupBuilder.prop(x => x.descriptionInModal).set((_node$descriptionInMo = node.descriptionInModal) !== null && _node$descriptionInMo !== void 0 ? _node$descriptionInMo : "");
102920
102945
  markupBuilder.prop(x => x.hintFields).set(node.hintFields);
102921
102946
  markupBuilder.prop(x => x.hintWidth).set(node.hintWidth);
@@ -102940,7 +102965,7 @@ class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
102940
102965
  throw new _common_XmlParser_XmlNode__WEBPACK_IMPORTED_MODULE_4__.SugarAttributeReadError("Значение пути в атрибуте binding должно в точности совпадать со значнием в path", node, "binding");
102941
102966
  }
102942
102967
  const searchByField = bindingForCurrentPath[1];
102943
- markupBuilder.prop(x => x.searchByField).set(this.getBindingSourceField(searchByField));
102968
+ markupBuilder.prop(x => x.searchByField).set((0,_binding__WEBPACK_IMPORTED_MODULE_5__.getBindingSourceField)(searchByField));
102944
102969
  if (node.filter !== undefined) {
102945
102970
  markupBuilder.prop(x => x.filter).set({
102946
102971
  type: "Expression",
@@ -102950,15 +102975,6 @@ class TreePicklistConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
102950
102975
  markupBuilder.prop(x => x.tooltipPosition).set((_node$tooltipPosition = node.tooltipPosition) !== null && _node$tooltipPosition !== void 0 ? _node$tooltipPosition : "top center");
102951
102976
  return markupBuilder.buildConverterResultWithHelp(node, context);
102952
102977
  }
102953
- getBindingSourceValue(x) {
102954
- if (typeof x === "string" || x.value == undefined) {
102955
- return "value";
102956
- }
102957
- return x.value;
102958
- }
102959
- getBindingSourceField(x) {
102960
- return typeof x === "string" ? x : x.field;
102961
- }
102962
102978
  }
102963
102979
 
102964
102980
  /***/ }),
@@ -103169,7 +103185,9 @@ __webpack_require__.r(__webpack_exports__);
103169
103185
  /* harmony import */ var _CommonNodeProperties_TooltipProperties_SetTooltipSettingsProps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../CommonNodeProperties/TooltipProperties/SetTooltipSettingsProps */ "./Generator/src/generators/markupGenerator/ElementProcessors/CommonNodeProperties/TooltipProperties/SetTooltipSettingsProps.ts");
103170
103186
  /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
103171
103187
  /* harmony import */ var _SugarNodes_SugarNodeUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../SugarNodes/SugarNodeUtils */ "./Generator/src/generators/markupGenerator/SugarNodes/SugarNodeUtils.ts");
103172
- /* harmony import */ var _PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PopupTextAreaNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/popupTextArea/PopupTextAreaNode.ts");
103188
+ /* harmony import */ var _Typography_Icon_GetIconName__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Typography/Icon/GetIconName */ "./Generator/src/generators/markupGenerator/ElementProcessors/Typography/Icon/GetIconName.ts");
103189
+ /* harmony import */ var _PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PopupTextAreaNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/popupTextArea/PopupTextAreaNode.ts");
103190
+
103173
103191
 
103174
103192
 
103175
103193
 
@@ -103180,14 +103198,14 @@ __webpack_require__.r(__webpack_exports__);
103180
103198
 
103181
103199
  class PopupTextAreaConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_1__.SugarNodeConverterBase {
103182
103200
  static getAcceptNodeClass() {
103183
- return _PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode;
103201
+ return _PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode;
103184
103202
  }
103185
103203
  doBuildNodeValidations(validationGenerator) {
103186
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103204
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103187
103205
  validationGenerator.processValidations(this.getResolvedBindingPath(node), node.validationInfo.optional, validationGenerator.getTypeNode(node.validationInfo), undefined, node.validationInfo.emptydescription, undefined);
103188
103206
  }
103189
103207
  *doBuildKCLangValidations(buildContext, formSchemaRng, prefixPath) {
103190
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103208
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103191
103209
  const element = formSchemaRng.getElementByPath(node.getFullPath());
103192
103210
  const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_5__.PathTokens.each);
103193
103211
  const typeNode = buildContext.getTypeNode(node.validationInfo);
@@ -103199,26 +103217,26 @@ class PopupTextAreaConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODUL
103199
103217
  yield* buildContext.buildBasicValidations(ownPath, targetPath, prefixPath, typeNode, schemaTypeNode, node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional);
103200
103218
  }
103201
103219
  doBuildDataDeclaration(context) {
103202
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103203
- return context.mergeDataDeclaration(context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, node.disabled)]]), context.addSpecialFieldsEntry(node, {
103220
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103221
+ return context.mergeDataDeclaration(context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, node.disabled)], node.auto ? ["autoFlag", context.initSequenceFactory.takeFromModel()] : undefined, node.auto ? ["autoValue", context.initSequenceFactory.takeFromModelOrDefaultValue(node.dataBinding.defaultValue)] : undefined]), context.addSpecialFieldsEntry(node, {
103204
103222
  optional: node.dataBinding.optional,
103205
103223
  disabled: node.disabled
103206
103224
  }), context.addPathSectionDeclarationEntry(node, node.dataBinding.requisite), context.addVisibilityPathDeclEntryNew(node, node.dataBinding.requisite));
103207
103225
  }
103208
103226
  buildChildrenDataDeclaration(context) {
103209
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103227
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103210
103228
  return context.processChildrenDataDeclaration(node.helpNodes);
103211
103229
  }
103212
103230
  *doTraverseChildren() {
103213
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103231
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103214
103232
  yield* node.helpNodes;
103215
103233
  }
103216
103234
  get nodePaths() {
103217
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103235
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103218
103236
  return [(0,_getBindingPath__WEBPACK_IMPORTED_MODULE_3__.getNewBindingPathExpression)(node)];
103219
103237
  }
103220
103238
  doConvert(context) {
103221
- const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_7__.PopupTextAreaNode);
103239
+ const node = this.getCurrentNodeAs(_PopupTextAreaNode__WEBPACK_IMPORTED_MODULE_8__.PopupTextAreaNode);
103222
103240
  const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_0__.componentMarkupBuilder)("PopupTextArea");
103223
103241
  markupBuilder.prop(x => x.width).set(node.width || "100%");
103224
103242
  markupBuilder.prop("data-tid").set(node.tid);
@@ -103240,6 +103258,9 @@ class PopupTextAreaConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODUL
103240
103258
  markupBuilder.prop(x => x.evaluatorsContextPath).set(this.getEvaluatorsContextPathExpression());
103241
103259
  }
103242
103260
  }
103261
+ markupBuilder.prop(x => x.auto).set(node.auto);
103262
+ markupBuilder.prop(x => x.autoValue).set(node.autoValue);
103263
+ markupBuilder.prop(x => x.useAutoIcon).set((0,_Typography_Icon_GetIconName__WEBPACK_IMPORTED_MODULE_7__.getIconName)(node, node.useAutoIcon));
103243
103264
  (0,_CommonNodeProperties_TooltipProperties_SetTooltipSettingsProps__WEBPACK_IMPORTED_MODULE_4__.setTooltipSettingsProps)(markupBuilder, node.tooltipSettings);
103244
103265
  return markupBuilder.buildConverterResultWithHelp(node, context);
103245
103266
  }
@@ -103281,7 +103302,7 @@ __webpack_require__.r(__webpack_exports__);
103281
103302
 
103282
103303
 
103283
103304
 
103284
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19;
103305
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22;
103285
103306
 
103286
103307
 
103287
103308
 
@@ -103290,7 +103311,7 @@ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11
103290
103311
 
103291
103312
 
103292
103313
 
103293
- let PopupTextAreaNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.sugarNode)("popuptextarea", `Иконка`, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/popupTextArea sync recursive .md$")), _dec2 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_DataBindingMixinNode__WEBPACK_IMPORTED_MODULE_3__.DataBindingMixinNode), _dec3 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_ValidationInfoNode__WEBPACK_IMPORTED_MODULE_4__.ValidationInfoNode), _dec4 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_TooltipProperties_TooltipSettingsNode__WEBPACK_IMPORTED_MODULE_9__.TooltipSettingsNode), _dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("width", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.lengthUnit, `Ширина`), _dec6 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("popupWidth", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.lengthUnit, `Ширина всплывающей textarea. не может быть меньше 250`), _dec7 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("excelPastePrevent", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, `При значении true вставка в popuptextarea будет перехвачена в пользу вставки таблички, скопрированной из excel как таблички. При значении false все скопированное попадет в value`), _dec8 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("placeholder", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.localizedString, ``), _dec9 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("tid", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, "Возможность установки произвольных data-tid атрибутов, может пригодиться другим командам, или для идентификации элемента в тестах"), _dec10 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("disabled", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, ``), _dec11 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("disabled2", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.javascriptExpression, `${(0,_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_10__.docLink)(_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_10__.javaScriptExpressionLink)} для условного задизейбливания контрола`), _dec12 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("autoResize", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, ``), _dec13 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("useLengthLimit", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, `Включает отображение счётчик длины текста`), _dec14 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("maxTextLength", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.number, `Задаёт максимальное кол-во символов для счётчика длины текста. Если не указано, значение будет братся из валидации или схемы`), _dec15 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("rows", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.number, ``), _dec16 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.deprecatedAttr)("row", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_5__.DeprecationReason.Typo), _dec17 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("resize", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.enum("-moz-initial", "inherit", "initial", "revert", "unset", "block", "both", "horizontal", "inline", "none", "vertical"), ``), _dec18 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("path", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.bindingPath, ``), _dec19 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("help", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, ``), _dec20 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.children)("help", [_Helpers_Help_HelpNode__WEBPACK_IMPORTED_MODULE_8__.HelpNode]), _dec(_class = (_class2 = class PopupTextAreaNode extends _Serializer_SugarNodeWithLegacyVisibility__WEBPACK_IMPORTED_MODULE_6__.SugarNodeWithLegacyVisibility {
103314
+ let PopupTextAreaNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.sugarNode)("popuptextarea", `Иконка`, __webpack_require__("./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/popupTextArea sync recursive .md$")), _dec2 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_DataBindingMixinNode__WEBPACK_IMPORTED_MODULE_3__.DataBindingMixinNode), _dec3 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_ValidationInfoNode__WEBPACK_IMPORTED_MODULE_4__.ValidationInfoNode), _dec4 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrMixin)(_CommonNodeProperties_TooltipProperties_TooltipSettingsNode__WEBPACK_IMPORTED_MODULE_9__.TooltipSettingsNode), _dec5 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("width", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.lengthUnit, `Ширина`), _dec6 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("popupWidth", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.lengthUnit, `Ширина всплывающей textarea. не может быть меньше 250`), _dec7 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("excelPastePrevent", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, `При значении true вставка в popuptextarea будет перехвачена в пользу вставки таблички, скопрированной из excel как таблички. При значении false все скопированное попадет в value`), _dec8 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("placeholder", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.localizedString, ``), _dec9 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("tid", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, "Возможность установки произвольных data-tid атрибутов, может пригодиться другим командам, или для идентификации элемента в тестах"), _dec10 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("disabled", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, ``), _dec11 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("disabled2", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.javascriptExpression, `${(0,_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_10__.docLink)(_Commons_DocumentationLinks__WEBPACK_IMPORTED_MODULE_10__.javaScriptExpressionLink)} для условного задизейбливания контрола`), _dec12 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("autoResize", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, ``), _dec13 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("auto", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, "Подключен авторассчет"), _dec14 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("autoValue", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, "Значение авторасчета. Код, элемент которого будет показываться как автозначение. Использовать в тестах, заменяет получение из калькуляций."), _dec15 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("useAutoIcon", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, "Какую иконку использовать при использовании авторасчета (работает только с auto = true). Имя иконки смотреть тут - https://ui.gitlab-pages.kontur.host/docs/#/react-icons"), _dec16 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("useLengthLimit", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.boolean, `Включает отображение счётчик длины текста`), _dec17 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("maxTextLength", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.number, `Задаёт максимальное кол-во символов для счётчика длины текста. Если не указано, значение будет братся из валидации или схемы`), _dec18 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("rows", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.number, ``), _dec19 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.deprecatedAttr)("row", _Serializer_DeprecationReason__WEBPACK_IMPORTED_MODULE_5__.DeprecationReason.Typo), _dec20 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("resize", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.enum("-moz-initial", "inherit", "initial", "revert", "unset", "block", "both", "horizontal", "inline", "none", "vertical"), ``), _dec21 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("path", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.bindingPath, ``), _dec22 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attr)("help", _Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.attrType.string, ``), _dec23 = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED_MODULE_7__.children)("help", [_Helpers_Help_HelpNode__WEBPACK_IMPORTED_MODULE_8__.HelpNode]), _dec(_class = (_class2 = class PopupTextAreaNode extends _Serializer_SugarNodeWithLegacyVisibility__WEBPACK_IMPORTED_MODULE_6__.SugarNodeWithLegacyVisibility {
103294
103315
  constructor(...args) {
103295
103316
  super(...args);
103296
103317
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "dataBinding", _descriptor, this);
@@ -103304,14 +103325,17 @@ let PopupTextAreaNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED
103304
103325
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "disabled", _descriptor9, this);
103305
103326
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "disabled2", _descriptor10, this);
103306
103327
  _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "autoResize", _descriptor11, this);
103307
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "useLengthLimit", _descriptor12, this);
103308
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "maxTextLength", _descriptor13, this);
103309
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "rows", _descriptor14, this);
103310
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "row", _descriptor15, this);
103311
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "resize", _descriptor16, this);
103312
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "path", _descriptor17, this);
103313
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "help", _descriptor18, this);
103314
- _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "helpNodes", _descriptor19, this);
103328
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "auto", _descriptor12, this);
103329
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "autoValue", _descriptor13, this);
103330
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "useAutoIcon", _descriptor14, this);
103331
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "useLengthLimit", _descriptor15, this);
103332
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "maxTextLength", _descriptor16, this);
103333
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "rows", _descriptor17, this);
103334
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "row", _descriptor18, this);
103335
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "resize", _descriptor19, this);
103336
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "path", _descriptor20, this);
103337
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "help", _descriptor21, this);
103338
+ _babel_runtime_helpers_initializerDefineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "helpNodes", _descriptor22, this);
103315
103339
  }
103316
103340
  getOwnPath() {
103317
103341
  return this.dataBinding.getOwnPath();
@@ -103371,42 +103395,57 @@ let PopupTextAreaNode = (_dec = (0,_Serializer_SugarSerializer__WEBPACK_IMPORTED
103371
103395
  enumerable: true,
103372
103396
  writable: true,
103373
103397
  initializer: null
103374
- }), _descriptor12 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "useLengthLimit", [_dec13], {
103398
+ }), _descriptor12 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "auto", [_dec13], {
103399
+ configurable: true,
103400
+ enumerable: true,
103401
+ writable: true,
103402
+ initializer: null
103403
+ }), _descriptor13 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "autoValue", [_dec14], {
103404
+ configurable: true,
103405
+ enumerable: true,
103406
+ writable: true,
103407
+ initializer: null
103408
+ }), _descriptor14 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "useAutoIcon", [_dec15], {
103409
+ configurable: true,
103410
+ enumerable: true,
103411
+ writable: true,
103412
+ initializer: null
103413
+ }), _descriptor15 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "useLengthLimit", [_dec16], {
103375
103414
  configurable: true,
103376
103415
  enumerable: true,
103377
103416
  writable: true,
103378
103417
  initializer: null
103379
- }), _descriptor13 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "maxTextLength", [_dec14], {
103418
+ }), _descriptor16 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "maxTextLength", [_dec17], {
103380
103419
  configurable: true,
103381
103420
  enumerable: true,
103382
103421
  writable: true,
103383
103422
  initializer: null
103384
- }), _descriptor14 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "rows", [_dec15], {
103423
+ }), _descriptor17 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "rows", [_dec18], {
103385
103424
  configurable: true,
103386
103425
  enumerable: true,
103387
103426
  writable: true,
103388
103427
  initializer: null
103389
- }), _descriptor15 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "row", [_dec16], {
103428
+ }), _descriptor18 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "row", [_dec19], {
103390
103429
  configurable: true,
103391
103430
  enumerable: true,
103392
103431
  writable: true,
103393
103432
  initializer: null
103394
- }), _descriptor16 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "resize", [_dec17], {
103433
+ }), _descriptor19 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "resize", [_dec20], {
103395
103434
  configurable: true,
103396
103435
  enumerable: true,
103397
103436
  writable: true,
103398
103437
  initializer: null
103399
- }), _descriptor17 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "path", [_dec18], {
103438
+ }), _descriptor20 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "path", [_dec21], {
103400
103439
  configurable: true,
103401
103440
  enumerable: true,
103402
103441
  writable: true,
103403
103442
  initializer: null
103404
- }), _descriptor18 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "help", [_dec19], {
103443
+ }), _descriptor21 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "help", [_dec22], {
103405
103444
  configurable: true,
103406
103445
  enumerable: true,
103407
103446
  writable: true,
103408
103447
  initializer: null
103409
- }), _descriptor19 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "helpNodes", [_dec20], {
103448
+ }), _descriptor22 = _babel_runtime_helpers_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class2.prototype, "helpNodes", [_dec23], {
103410
103449
  configurable: true,
103411
103450
  enumerable: true,
103412
103451
  writable: true,
@@ -105099,8 +105138,8 @@ class KCLangCalculationsBuildContext {
105099
105138
  getFirstAcceptedParent(schemaNode) {
105100
105139
  let parentNode = schemaNode === null || schemaNode === void 0 ? void 0 : schemaNode.parent;
105101
105140
  while (parentNode != undefined) {
105102
- if (parentNode instanceof _common_SchemaRng_FormSchemaRng__WEBPACK_IMPORTED_MODULE_28__.FormSchemaRngElement) {
105103
- if (parentNode.isOptional() && !parentNode.multiple) {
105141
+ if (parentNode instanceof _common_SchemaRng_FormSchemaRng__WEBPACK_IMPORTED_MODULE_28__.FormSchemaRngElement && !parentNode.multiple) {
105142
+ if (parentNode.isOptional()) {
105104
105143
  return parentNode;
105105
105144
  }
105106
105145
  parentNode = parentNode.parent;
@@ -107671,6 +107710,30 @@ class VisibilityProcessor {
107671
107710
 
107672
107711
  /***/ }),
107673
107712
 
107713
+ /***/ "./Generator/src/generators/markupGenerator/binding.ts":
107714
+ /*!*************************************************************!*\
107715
+ !*** ./Generator/src/generators/markupGenerator/binding.ts ***!
107716
+ \*************************************************************/
107717
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
107718
+
107719
+ "use strict";
107720
+ __webpack_require__.r(__webpack_exports__);
107721
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
107722
+ /* harmony export */ getBindingSourceField: () => (/* binding */ getBindingSourceField),
107723
+ /* harmony export */ getBindingSourceValue: () => (/* binding */ getBindingSourceValue)
107724
+ /* harmony export */ });
107725
+ function getBindingSourceField(x) {
107726
+ return typeof x === "string" ? x : x.field;
107727
+ }
107728
+ function getBindingSourceValue(x) {
107729
+ if (typeof x === "string" || x.value == undefined) {
107730
+ return "value";
107731
+ }
107732
+ return x.value;
107733
+ }
107734
+
107735
+ /***/ }),
107736
+
107674
107737
  /***/ "./Generator/src/generators/markupGenerator/controlCustomization/ControlCustomizationContextBuilder.ts":
107675
107738
  /*!*************************************************************************************************************!*\
107676
107739
  !*** ./Generator/src/generators/markupGenerator/controlCustomization/ControlCustomizationContextBuilder.ts ***!
@@ -107994,7 +108057,8 @@ function getSettings(sugarRoot, gfv, additionalSettings, formJsonSettings) {
107994
108057
  ...additionalSettings,
107995
108058
  useServerSideFLangNormalization: formJsonSettings === null || formJsonSettings === void 0 ? void 0 : formJsonSettings.useServerSideFLangNormalization,
107996
108059
  useServerSideCalculations: formJsonSettings === null || formJsonSettings === void 0 ? void 0 : formJsonSettings.useServerSideCalculations,
107997
- disableFlangRulesForEnableAutoFieldFeature: formJsonSettings === null || formJsonSettings === void 0 ? void 0 : formJsonSettings.disableFlangRulesForEnableAutoFieldFeature
108060
+ disableFlangRulesForEnableAutoFieldFeature: formJsonSettings === null || formJsonSettings === void 0 ? void 0 : formJsonSettings.disableFlangRulesForEnableAutoFieldFeature,
108061
+ enableAutocalcsInReadOnly: formJsonSettings === null || formJsonSettings === void 0 ? void 0 : formJsonSettings.enableAutocalcsInReadOnly
107998
108062
  };
107999
108063
  return `module.exports = ${JSON.stringify(settings, undefined, 2)}`;
108000
108064
  }
@@ -137602,7 +137666,7 @@ module.exports = "### Опциональность мультилайна и т
137602
137666
  \*********************************************************************************************************/
137603
137667
  /***/ ((module) => {
137604
137668
 
137605
- module.exports = "<h4>Атрибут emptyValueFilter</h4>\nЕсли нет введеного значения, то фильтрует выпадающий список значения.\nСинтаксис аналогичен атрибуту `filter`. Смотри описание к picklist. \n<br>\n<br>\nПример фильтрации по первым двум цифрам инн из @formsClientInfo/currentAccount:\n```\nemptyValueFilter=\"by.column('code').startWith(path('@formsClientInfo/currentAccount/inn').slice(0, 2))\"\n```\n";
137669
+ module.exports = "<h4>Атрибут emptyValueFilter</h4>\nЕсли нет введеного значения, то фильтрует выпадающий список значения.\nСинтаксис аналогичен атрибуту `filter`. Смотри описание к picklist. \n<br>\n<br>\nПример фильтрации по первым двум цифрам инн из @formsClientInfo/currentAccount:\n```\nemptyValueFilter=\"by.column('code').startWith(path('@formsClientInfo/currentAccount/inn').slice(0, 2))\"\n```\n\n<h4>Атрибут binding</h4>\n\nИспользуется для записи значений полей справочника в указанные поля в иннере.\nНапример, можно сохранить выбранное значение из колонки name в одноименное поле:\n```\n<combobox \n path=\"combobox1\" \n gId=\"3436\" \n binding={[[\"combobox1\", \"code\"], [\"combobox1/name\", \"name\"], [\"combobox1/description\", \"name\"]]} \n width=\"200\" />\n```\nТ.о. значение колонки code справочника сохранится по пути combobox1.value, а значение из колонки name сохранится в поля combobox1/name.value и combobox1/description.value в иннере.\n```\n\"Root/comboboxWithBinding/combobox1.value\": \"8\",\n\"Root/comboboxWithBinding/combobox1/name.value\": \"Август\",\n\"Root/comboboxWithBinding/combobox1/description.value\": \"Август\",\n```\nМожно сохранять не в .value, а в другое поле. Пример:\n```\n<combobox \n path=\"combobox2\" \n gId=\"3436\" \n binding={[[\"combobox2\", \"code\"], [\"combobox2\", { \"value\": \"description\", \"field\": \"name\" }]]} \n width=\"200\" />\n```\nЗдесь значение колонки name справочника выгрузится в поле combobox2.description.\n```\n\"Root/comboboxWithBinding/combobox2.value\": \"6\",\n\"Root/comboboxWithBinding/combobox2.description\": \"Июнь\",\n```";
137606
137670
 
137607
137671
  /***/ }),
137608
137672
 
@@ -137612,7 +137676,7 @@ module.exports = "<h4>Атрибут emptyValueFilter</h4>\nЕсли нет вв
137612
137676
  \*****************************************************************************************************/
137613
137677
  /***/ ((module) => {
137614
137678
 
137615
- module.exports = "Теги: #ФИАС #справочник #адресов #fias\n\nКонтрол нужен для отображения [справочника адресов ФИАС](https://www.nalog.gov.ru/rn77/service/fias/).\nПоддерживает **муниципальное и административно-территориальное деление** (подробнее о структуре адресов можно узнать на [сайте ФИАС](https://fias.nalog.ru/)).\n\n**Структура справочника** в общем виде выглядит следующим образом:\n\n```xml\n<fias\n path=\"АнкетныеДанные/АдресРегистрации\"\n title=\"Адрес регистрации\"\n searchToAddressLevel=\"room\">\n <fiasfield\n path=\"Регион/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\" Регион географическое название\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"region.name\" />\n </valuesources>\n </fiasfield>\n ...\n <fiasfield path=\"Индекс\" type=\"string\" display=\"false\" description=\"Индекс\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.postalCode\" />\n </valuesources>\n </fiasfield>\n</fias>\n```\n\n### Настройка полей справочника\n\nВ справочнике ФИАС можно настроить поля, которые будут выгружаться в иннер после заполнения справочника, а также отображаться в модалке редактирования адреса.\nКаждое поле задается тегом **< fiasfield >**, внутри которого прописываются источники данных.\nВ качестве атрибутов-настроек поля можно задать:\n\n- **path** - относительный путь в иннере, по которому будет выгружаться значение поля. Например, path=\"Регион/ГеографическоеНазвание\" или path=\"Регион/Сокращение\";\n- **type** - тип данных;\n- **display** - если true, то данное поле будет показано в модалке редактирования адреса;\n- **description** - название поля, которое отображается в модалке.\n\nИсточники данных задаются тегом **< valuesources >**. Внутри перечисляются источники, каждый из которых задается отдельным тегом <valuesource>, внутри которого атрибутами указываются:\n\n- fiasApiPath - это название поля в апи [сервиса ФИАСа](https://api.testkontur.ru/fias/v1.2/addresses/), из которого нужно тянуть данные. [Документация](https://wiki.skbkontur.ru/pages/viewpage.action?pageId=186435051) по сервису ФИАС.\n- convertationMethod:\n - getHouseTypeShortName - получает сокращенное наименование здания,\n - getFlatTypeShortName - получает сокращенное наименование помещения,\n - getRoomTypeShortName - получает сокращенное наименование комнаты,\n - extractRegionCode - получает код региона,\n - getMunicipalDistrictTypeCode - получает код типа муниципального района,\n - getUrbanSettlementTypeCode - получает код типа для поселения,\n - convertAbbreviationToFullName - конвертирует аббревиатуру в адресе в полное наименование,\n - getHouseTypeLongName - получает полное наименование типа здания,\n - getFlatTypeLongName - получает полное наименование типа помещения,\n - getRoomTypeLongName - получает полное наименование типа комнаты,\n - extractOKTMO8Symbols - получает ОКТМО в 8-значном формате.\n- endComma - задается внутри valuesources, если true, то запятая проставляется после значения поля, иначе без запятой, по умолчанию true. Например, \"Республика Татарстан, улица Ленина\" - для поля \"Регион/Сокращение\" = \"Республика\" endComma должно быть равно false, для \"Регион/Наименование\" = \"Татарстан\" должно быть true или не задано.\n\nПример поля в ФИАСе:\n\n```\n<fiasfield path=\"Корпус/Номер\" type=\"string\" display=\"true\" description=\"Корпус номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.addNum1\" />\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"addType2.addType2\" />\n <valuesource fiasApiPath=\"garhouse.addNum2\" />\n </valuesources>\n</fiasfield>\n```\n\n### Настройки справочника\n\n**division:** значение настройки может быть municipal или administrative, меняет отображение адресов в справочнике в соответствии с территориальным делением: муниципальное, административное.\nПо умолчанию municipal.\n\n**searchToAddressLevel:** уровень, до которого ищутся адресные объекты.\nНапример, если задан уровень до комнаты searchToAddressLevel=room, тогда в результатах поиска у найденных адресов будут отображаться все части адреса до комнаты, если searchToAddressLevel=street, то в адресе будет отображаться улица и всё, что выше неё.\nВ выбранном значении в инпуте тоже будут отображаться только те части адреса, которые соответствуют выбранному уровню.\n\n**withSteads:** включает показ земельных участков в справочнике.\nЕсли значение настройки true, то в справочнике при поиске в списке адресов показываются адреса с зем. участками. Выгрузку в иннер зем. участков и отображение в модалке нужно настраивать отдельно.\n\n**onlyInput:** без этой настройки, если поле со справочником не заполнено, то оно отображается в виде обычного инпута, а когда заполнено, в виде текста со ссылкой \"Редактировать\".\nИногда бывает нужно отображать контрол всегда в состоянии инпута, например, внутри таблицы. Для этого нужно установить onlyInput=true.\n\n### Модальная форма редактирования адреса\n\nВ настоящее время есть 2 реализации данного контрола: с настраиваемой модалкой редактирования адреса и ненастраиваемой модалкой.\n\n#### ФИАС с настраиваемой модалкой\n\nПолностью настраиваемый справочник, где можно конфигурировать поля в иннере и модалке ресурсами.\nПо умолчанию справочник является настраиваемым, т.е. если в ФИАСе не указан тег **< fnsoptions >**/**< mvdoptions >**, то это настраиваемый справочник.\n\nПример настраиваемого справочника:\n\n```xml\n\n<fias\n path=\"АнкетныеДанные/АдресРегистрации\"\n title=\"Адрес регистрации\"\n searchToAddressLevel=\"room\"\n division=\"administrative\"\n pathToFullAddress=\"fullAddress\">\n <fiasfield\n path=\"Регион/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\" Регион географическое название\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"region.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Регион/Сокращение\" type=\"string\" display=\"true\" description=\"Регион сокращение\">\n <valuesources>\n <valuesource fiasApiPath=\"region.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Район/Сокращение\" type=\"string\" display=\"true\" description=\"Район сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"district.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Район/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Район географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"district.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Город/Сокращение\" type=\"string\" display=\"true\" description=\"Город сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"city.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Город/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Город географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"city.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"НаселенныйПункт/Сокращение\"\n type=\"string\"\n display=\"true\"\n description=\"Населенный пункт сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"settlement.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"НаселенныйПункт/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Населенный пункт географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"settlement.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/Сокращение\"\n type=\"string\"\n display=\"true\"\n description=\"Улица сокращение\"\n showInModal=\"false\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"planningstructure.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Улица географическое название\"\n showInModal=\"false\">\n <valuesources>\n <valuesource fiasApiPath=\"planningstructure.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Улица/Сокращение\" type=\"string\" display=\"true\" description=\"Улица сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"street.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Улица географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"street.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Дом/Сокращение\" type=\"string\" display=\"true\" description=\"Дом сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"garhouse.houseType\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Дом/Номер\" type=\"string\" display=\"true\" description=\"Дом номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.houseNum\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Корпус/Сокращение\" type=\"string\" display=\"true\" description=\"Корпус сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"garhouse.addType1\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Корпус/Номер\" type=\"string\" display=\"true\" description=\"Корпус номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.addNum1\" />\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"addType2.addType2\" />\n <valuesource fiasApiPath=\"garhouse.addNum2\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Квартира/Сокращение\" type=\"string\" display=\"true\" description=\"Квартира сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getFlatTypeShortName\" fiasApiPath=\"room.flatType\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Квартира/Номер\" type=\"string\" display=\"true\" description=\"Квартира номер\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"room.flatNumber\" />\n <valuesource convertationMethod=\"getRoomTypeShortName\" fiasApiPath=\"room.roomType\" />\n <valuesource fiasApiPath=\"room.roomNumber\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Индекс\" type=\"string\" display=\"false\" description=\"Индекс\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.postalCode\" />\n </valuesources>\n </fiasfield>\n</fias>\n\n```\n\n#### ФИАС с НЕнастраиваемой модалкой\n\n- подходит для большинства форм ФНС;\n- в модальной форме редактирования адреса набор полей неизменен (его нельзя настроить ресурсами);\n- некоторые поля реализованы в виде выпадающих справочников, набор значений которых также нельзя настроить в ресурсах;\n- количество полей модалки НЕ настраивается, нет возможности задать неограниченное добавление полей. Количество полей фиксированное и соответствует количеству полей, возвращаемых ФИАСом.\n- есть возможность заполнения адреса по введенному guid-у адреса.\n\nДля включения такой модалки внутри ФИАСа должен быть указан тег **< fnsoptions >**/**< mvdoptions >**.\n\n```xml\n<fias path=\"АдрОбъектРФ\" title=\"Адрес\" searchToAddressLevel=\"room\" division=\"municipal\" withSteads=\"true\">\n <fnsoptions abbreviationSize=\"long\" />\n ...\n</fias>\n```\n\nСписок полей в ненастраиваемой модалке:\n\n- Индекс (опциональный)\n- Регион\n- Муниципальный район / округ (Вид + Наименование)\n- Поселение (Вид + Наименование)\n- Населенный пункт (Тип + Наименование)\n- Элемент планировочной структуры (Тип + Наименование)\n- Элемент улично-дорожной сети (Тип + Наименование)\n- Номер земельного участка\n- Номер здания / сооружения (Тип + Наименование): 3 пары Вид+Наименование - Дом, Корпус, Строение\n- Номер помещения / квартиры / машино-места (Тип + Наименование)\n- Помещение в пределах квартиры (Тип + Наименование)\n- Уникальный идентификатор адресного объекта в ГАР\n\nФормат полей и ограничения на ввод данных указаны в [wiki](https://wiki.skbkontur.ru/pages/viewpage.action?pageId=430311482).\n\nДля ФИАСа с НЕнастраиваемой модалкой есть свои настройки:\n\n**withIndex:** включает отображение поля с почтовым индексом. По умолчанию выключен.\n\n**withSteads:** включает показ земельных участков в справочнике.\nЕсли значение настройки true, то:\n\n- в справочнике при поиске в списке адресов показываются адреса с зем. участками;\n- в модалке редактирования адреса появляется поле \"Земельный участок\";\n- значение зем. участка, выбранного в справочнике, засетится по указанному в поле ФИАСа пути.\n По умолчанию показ зем. участков выключен.\n\n**abbreviationSize:** short или long (по умолчанию long). Если short, то аббревиатуры в адресе выгружаются в сокращенном виде. Например, \"ул. Ленина\". При значении long - в не сокращенном, например, \"улица Ленина\".\nНастройка указывается атрибутом в теге fnsoptions/mvdoptions.\nНастройку можно указать только общую для всех полей: нельзя настроить разный вид аббревиатур для каждого поля в отдельности.\n\n**pathToFullAddress:** задает путь, по которому засетится полный адрес (строится как конкатенация значений всех полей ФИАСа).\n\nОстальные настройки такие же, как в настраиваемом ФИАСе.\n\nПример ФИАСа с ненастраиваемой модалкой:\n\n```xml\n<fias path=\"АдрОбъектРФ\" title=\"Адрес\" searchToAddressLevel=\"room\" division=\"municipal\" withSteads=\"true\">\n <childrenoptions childrenInStack=\"2\" path=\"Здание\" />\n <fnsoptions abbreviationSize=\"long\" />\n <fiasfield\n path=\"Регион\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getRegionNameByCode\">\n <valuesources>\n <valuesource convertationMethod=\"extractRegionCode\" fiasApiPath=\"region.code\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"МуниципРайон/ВидКод\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getMunicipalDistrictTypeShortName\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"getMunicipalDistrictTypeCode\"\n fiasApiPath=\"municipaldistrict.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"МуниципРайон/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"municipaldistrict.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"ГородСелПоселен/ВидКод\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getUrbanSettlementTypeShortName\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"getUrbanSettlementTypeCode\"\n fiasApiPath=\"urbansettlement.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"ГородСелПоселен/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"urbansettlement.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"НаселенПункт/Вид\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"convertAbbreviationToFullName\"\n fiasApiPath=\"district.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"НаселенПункт/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"district.name\" />\n </valuesources>\n </fiasfield>\n ...\n <fiasfield path=\"ИдНом\" type=\"guid\" display=\"true\" description=\"\">\n <valuesources>\n <valuesource />\n </valuesources>\n </fiasfield>\n</fias>\n```\n\n### Валидации в ФИАСе\n\n- справочник ФИАС поддерживает только условные валидации типа error и warning;\n- валидации срабатывают только на основной инпут, появляется красная или оранжевая рамка в соответствии с уровнем ошибки;\n- валидации на полях внутри модальной формы не реализованы и работать не будут.\n\n### Апи ФИАСа\n\nЕсть возможность обращаться к методам и полям справочника ФИАС напрямую, например, из хэлпера или хуков. Это может понадобиться для реализации какого-либо функционала, отсутствующего в контроле.\nДля этого из publicForm нужно вызвать createFiasApiClient.\n\nКакие методы для работы с ФИАСом есть в FiasApi:\n\n- fetchSteadsByTextAndParentFiasId(text: string, parentFiasId: string) - асинхронный, возвращает массив найденных зем. участков - FiasStead[];\n- fetchSuggestAddressesByText(text: string) - асинхронный, возвращает массив найденных адресов со всеми полями - FiasAddressFields[];\n- fetchFullAddressesByFiasId(fiasId: string) - асинхронный, ищет адреса по id, возвращает FiasAddressFields;\n- fetchFlatByParentFiasId(parentFiasId: string, number: string) - асинхронный, для поиска квартир, возвращает FiasFlatRoom;\n- fetchCountriesByName(countryName: string) - асинхронный, находит список стран по имени - FiasCountry[];\n- fetchRegions() - асинхронный, возвращает список регионов - RegionsType\n\nПример:\n```js\nexport default async function ({ publicForm }) {\nconst fiasApi = publicForm.createFiasApiClient();\nconst suggestedAddresses = await fiasApi.fetchSuggestAddressesByText(\"Свердловская обл, г Екатеринбург, ул Малопрудная, д 5\");\n}\n```\nЗдесь вызывается метод fetchSuggestAddressesByText, который по строке адреса возвращает suggestedAddresses - подходящие адреса из апи ФИАСа. Возвращаемое значение - массив адресов, а каждый адрес - структура, содержащая все поля адреса, возвращаемые апи (регион, район и т.д.).";
137679
+ module.exports = "Теги: #ФИАС #справочник #адресов #fias\n\nКонтрол нужен для отображения [справочника адресов ФИАС](https://www.nalog.gov.ru/rn77/service/fias/).\nПоддерживает **муниципальное и административно-территориальное деление** (подробнее о структуре адресов можно узнать на [сайте ФИАС](https://fias.nalog.ru/)).\n\n**Структура справочника** в общем виде выглядит следующим образом:\n\n```xml\n<fias\n path=\"АнкетныеДанные/АдресРегистрации\"\n title=\"Адрес регистрации\"\n searchToAddressLevel=\"room\">\n <fiasfield\n path=\"Регион/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\" Регион географическое название\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"region.name\" />\n </valuesources>\n </fiasfield>\n ...\n <fiasfield path=\"Индекс\" type=\"string\" display=\"false\" description=\"Индекс\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.postalCode\" />\n </valuesources>\n </fiasfield>\n</fias>\n```\n\n### Настройка полей справочника\n\nВ справочнике ФИАС можно настроить поля, которые будут выгружаться в иннер после заполнения справочника, а также отображаться в модалке редактирования адреса.\nКаждое поле задается тегом **< fiasfield >**, внутри которого прописываются источники данных.\nВ качестве атрибутов-настроек поля можно задать:\n\n- **path** - относительный путь в иннере, по которому будет выгружаться значение поля. Например, path=\"Регион/ГеографическоеНазвание\" или path=\"Регион/Сокращение\";\n- **type** - тип данных;\n- **display** - если true, то данное поле будет показано в модалке редактирования адреса;\n- **description** - название поля, которое отображается в модалке.\n\nИсточники данных задаются тегом **< valuesources >**. Внутри перечисляются источники, каждый из которых задается отдельным тегом <valuesource>, внутри которого атрибутами указываются:\n\n- fiasApiPath - это название поля в апи [сервиса ФИАСа](https://api.testkontur.ru/fias/v1.2/addresses/), из которого нужно тянуть данные. [Документация](https://wiki.skbkontur.ru/pages/viewpage.action?pageId=186435051) по сервису ФИАС.\n- convertationMethod:\n - getHouseTypeShortName - получает сокращенное наименование здания,\n - getFlatTypeShortName - получает сокращенное наименование помещения,\n - getRoomTypeShortName - получает сокращенное наименование комнаты,\n - extractRegionCode - получает код региона,\n - getMunicipalDistrictTypeCode - получает код типа муниципального района,\n - getUrbanSettlementTypeCode - получает код типа для поселения,\n - convertAbbreviationToFullName - конвертирует аббревиатуру в адресе в полное наименование,\n - getHouseTypeLongName - получает полное наименование типа здания,\n - getFlatTypeLongName - получает полное наименование типа помещения,\n - getRoomTypeLongName - получает полное наименование типа комнаты,\n - extractOKTMO8Symbols - получает ОКТМО в 8-значном формате.\n- endComma - задается внутри valuesources, если true, то запятая проставляется после значения поля, иначе без запятой, по умолчанию true. Например, \"Республика Татарстан, улица Ленина\" - для поля \"Регион/Сокращение\" = \"Республика\" endComma должно быть равно false, для \"Регион/Наименование\" = \"Татарстан\" должно быть true или не задано.\n\nПример поля в ФИАСе:\n\n```\n<fiasfield path=\"Корпус/Номер\" type=\"string\" display=\"true\" description=\"Корпус номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.addNum1\" />\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"addType2.addType2\" />\n <valuesource fiasApiPath=\"garhouse.addNum2\" />\n </valuesources>\n</fiasfield>\n```\n\n### Настройки справочника\n\n**division:** значение настройки может быть municipal или administrative, меняет отображение адресов в справочнике в соответствии с территориальным делением: муниципальное, административное.\nПо умолчанию municipal.\n\n**searchToAddressLevel:** уровень, до которого ищутся адресные объекты.\nНапример, если задан уровень до комнаты searchToAddressLevel=room, тогда в результатах поиска у найденных адресов будут отображаться все части адреса до комнаты, если searchToAddressLevel=street, то в адресе будет отображаться улица и всё, что выше неё.\nВ выбранном значении в инпуте тоже будут отображаться только те части адреса, которые соответствуют выбранному уровню.\n\n**withSteads:** включает показ земельных участков в справочнике.\nЕсли значение настройки true, то в справочнике при поиске в списке адресов показываются адреса с зем. участками. Выгрузку в иннер зем. участков и отображение в модалке нужно настраивать отдельно.\n\n**onlyInput:** без этой настройки, если поле со справочником не заполнено, то оно отображается в виде обычного инпута, а когда заполнено, в виде текста со ссылкой \"Редактировать\".\nИногда бывает нужно отображать контрол всегда в состоянии инпута, например, внутри таблицы. Для этого нужно установить onlyInput=true.\n\n### Модальная форма редактирования адреса\n\nВ настоящее время есть 2 реализации данного контрола: с настраиваемой модалкой редактирования адреса и ненастраиваемой модалкой.\n\n#### ФИАС с настраиваемой модалкой\n\nПолностью настраиваемый справочник, где можно конфигурировать поля в иннере и модалке ресурсами.\nПо умолчанию справочник является настраиваемым, т.е. если в ФИАСе не указан тег **< fnsoptions >**/**< mvdoptions >**, то это настраиваемый справочник.\n\nПример настраиваемого справочника:\n\n```xml\n\n<fias\n path=\"АнкетныеДанные/АдресРегистрации\"\n title=\"Адрес регистрации\"\n searchToAddressLevel=\"room\"\n division=\"administrative\"\n pathToFullAddress=\"fullAddress\">\n <fiasfield\n path=\"Регион/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\" Регион географическое название\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"region.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Регион/Сокращение\" type=\"string\" display=\"true\" description=\"Регион сокращение\">\n <valuesources>\n <valuesource fiasApiPath=\"region.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Район/Сокращение\" type=\"string\" display=\"true\" description=\"Район сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"district.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Район/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Район географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"district.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Город/Сокращение\" type=\"string\" display=\"true\" description=\"Город сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"city.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Город/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Город географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"city.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"НаселенныйПункт/Сокращение\"\n type=\"string\"\n display=\"true\"\n description=\"Населенный пункт сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"settlement.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"НаселенныйПункт/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Населенный пункт географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"settlement.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/Сокращение\"\n type=\"string\"\n display=\"true\"\n description=\"Улица сокращение\"\n showInModal=\"false\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"planningstructure.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Улица географическое название\"\n showInModal=\"false\">\n <valuesources>\n <valuesource fiasApiPath=\"planningstructure.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Улица/Сокращение\" type=\"string\" display=\"true\" description=\"Улица сокращение\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"street.abbreviation\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"Улица/ГеографическоеНазвание\"\n type=\"string\"\n display=\"true\"\n description=\"Улица географическое название\">\n <valuesources>\n <valuesource fiasApiPath=\"street.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Дом/Сокращение\" type=\"string\" display=\"true\" description=\"Дом сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"garhouse.houseType\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Дом/Номер\" type=\"string\" display=\"true\" description=\"Дом номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.houseNum\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Корпус/Сокращение\" type=\"string\" display=\"true\" description=\"Корпус сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"garhouse.addType1\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Корпус/Номер\" type=\"string\" display=\"true\" description=\"Корпус номер\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.addNum1\" />\n <valuesource convertationMethod=\"getHouseTypeShortName\" fiasApiPath=\"addType2.addType2\" />\n <valuesource fiasApiPath=\"garhouse.addNum2\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Квартира/Сокращение\" type=\"string\" display=\"true\" description=\"Квартира сокращение\">\n <valuesources endComma=\"false\">\n <valuesource convertationMethod=\"getFlatTypeShortName\" fiasApiPath=\"room.flatType\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Квартира/Номер\" type=\"string\" display=\"true\" description=\"Квартира номер\">\n <valuesources endComma=\"false\">\n <valuesource fiasApiPath=\"room.flatNumber\" />\n <valuesource convertationMethod=\"getRoomTypeShortName\" fiasApiPath=\"room.roomType\" />\n <valuesource fiasApiPath=\"room.roomNumber\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"Индекс\" type=\"string\" display=\"false\" description=\"Индекс\">\n <valuesources>\n <valuesource fiasApiPath=\"garhouse.postalCode\" />\n </valuesources>\n </fiasfield>\n</fias>\n\n```\n\n#### ФИАС с НЕнастраиваемой модалкой\n\n- подходит для большинства форм ФНС;\n- в модальной форме редактирования адреса набор полей неизменен (его нельзя настроить ресурсами);\n- некоторые поля реализованы в виде выпадающих справочников, набор значений которых также нельзя настроить в ресурсах;\n- количество полей модалки НЕ настраивается, нет возможности задать неограниченное добавление полей. Количество полей фиксированное и соответствует количеству полей, возвращаемых ФИАСом.\n- есть возможность заполнения адреса по введенному guid-у адреса.\n\nДля включения такой модалки внутри ФИАСа должен быть указан тег **< fnsoptions >**/**< mvdoptions >**.\n\nПодробнее про [fnsoptions](https://candy.gitlab-pages.kontur.host/docs/docs/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8B/fnsoptions) и [mvdoptions](https://candy.gitlab-pages.kontur.host/docs/docs/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8B/mvdoptions)\n\n\n```xml\n<fias path=\"АдрОбъектРФ\" title=\"Адрес\" searchToAddressLevel=\"room\" division=\"municipal\" withSteads=\"true\">\n <fnsoptions abbreviationSize=\"long\" />\n ...\n</fias>\n```\n\nСписок полей в ненастраиваемой модалке:\n\n- Индекс (опциональный)\n- Регион\n- Муниципальный район / округ (Вид + Наименование)\n- Поселение (Вид + Наименование)\n- Населенный пункт (Тип + Наименование)\n- Элемент планировочной структуры (Тип + Наименование)\n- Элемент улично-дорожной сети (Тип + Наименование)\n- Номер земельного участка\n- Номер здания / сооружения (Тип + Наименование): 3 пары Вид+Наименование - Дом, Корпус, Строение\n- Номер помещения / квартиры / машино-места (Тип + Наименование)\n- Помещение в пределах квартиры (Тип + Наименование)\n- Уникальный идентификатор адресного объекта в ГАР\n\nФормат полей и ограничения на ввод данных указаны в [wiki](https://wiki.skbkontur.ru/pages/viewpage.action?pageId=430311482).\n\nДля ФИАСа с НЕнастраиваемой модалкой есть свои настройки:\n\n**withIndex:** включает отображение поля с почтовым индексом. По умолчанию выключен.\n\n**withSteads:** включает показ земельных участков в справочнике.\nЕсли значение настройки true, то:\n\n- в справочнике при поиске в списке адресов показываются адреса с зем. участками;\n- в модалке редактирования адреса появляется поле \"Земельный участок\";\n- значение зем. участка, выбранного в справочнике, засетится по указанному в поле ФИАСа пути.\n По умолчанию показ зем. участков выключен.\n\n**abbreviationSize:** short или long (по умолчанию long). Если short, то аббревиатуры в адресе выгружаются в сокращенном виде. Например, \"ул. Ленина\". При значении long - в не сокращенном, например, \"улица Ленина\".\nНастройка указывается атрибутом в теге fnsoptions/mvdoptions.\nНастройку можно указать только общую для всех полей: нельзя настроить разный вид аббревиатур для каждого поля в отдельности.\n\n**pathToFullAddress:** задает путь, по которому засетится полный адрес (строится как конкатенация значений всех полей ФИАСа).\n\nОстальные настройки такие же, как в настраиваемом ФИАСе.\n\nПример ФИАСа с ненастраиваемой модалкой:\n\n```xml\n<fias path=\"АдрОбъектРФ\" title=\"Адрес\" searchToAddressLevel=\"room\" division=\"municipal\" withSteads=\"true\">\n <childrenoptions childrenInStack=\"2\" path=\"Здание\" />\n <fnsoptions abbreviationSize=\"long\" />\n <fiasfield\n path=\"Регион\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getRegionNameByCode\">\n <valuesources>\n <valuesource convertationMethod=\"extractRegionCode\" fiasApiPath=\"region.code\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"МуниципРайон/ВидКод\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getMunicipalDistrictTypeShortName\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"getMunicipalDistrictTypeCode\"\n fiasApiPath=\"municipaldistrict.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"МуниципРайон/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"municipaldistrict.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield\n path=\"ГородСелПоселен/ВидКод\"\n type=\"string\"\n display=\"true\"\n description=\"Адрес\"\n convertToShow=\"getUrbanSettlementTypeShortName\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"getUrbanSettlementTypeCode\"\n fiasApiPath=\"urbansettlement.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"ГородСелПоселен/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"urbansettlement.name\" />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"НаселенПункт/Вид\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources endComma=\"false\">\n <valuesource\n convertationMethod=\"convertAbbreviationToFullName\"\n fiasApiPath=\"district.abbreviation\"\n />\n </valuesources>\n </fiasfield>\n <fiasfield path=\"НаселенПункт/Наим\" type=\"string\" display=\"true\" description=\"Адрес\">\n <valuesources>\n <valuesource fiasApiPath=\"district.name\" />\n </valuesources>\n </fiasfield>\n ...\n <fiasfield path=\"ИдНом\" type=\"guid\" display=\"true\" description=\"\">\n <valuesources>\n <valuesource />\n </valuesources>\n </fiasfield>\n</fias>\n```\n\n### Валидации в ФИАСе\n\n- справочник ФИАС поддерживает только условные валидации типа error и warning;\n- валидации срабатывают только на основной инпут, появляется красная или оранжевая рамка в соответствии с уровнем ошибки;\n- валидации на полях внутри модальной формы не реализованы и работать не будут.\n\n### Апи ФИАСа\n\nЕсть возможность обращаться к методам и полям справочника ФИАС напрямую, например, из хэлпера или хуков. Это может понадобиться для реализации какого-либо функционала, отсутствующего в контроле.\nДля этого из publicForm нужно вызвать createFiasApiClient.\n\nКакие методы для работы с ФИАСом есть в FiasApi:\n\n- fetchSteadsByTextAndParentFiasId(text: string, parentFiasId: string) - асинхронный, возвращает массив найденных зем. участков - FiasStead[];\n- fetchSuggestAddressesByText(text: string) - асинхронный, возвращает массив найденных адресов со всеми полями - FiasAddressFields[];\n- fetchFullAddressesByFiasId(fiasId: string) - асинхронный, ищет адреса по id, возвращает FiasAddressFields;\n- fetchFlatByParentFiasId(parentFiasId: string, number: string) - асинхронный, для поиска квартир, возвращает FiasFlatRoom;\n- fetchCountriesByName(countryName: string) - асинхронный, находит список стран по имени - FiasCountry[];\n- fetchRegions() - асинхронный, возвращает список регионов - RegionsType\n\nПример:\n```js\nexport default async function ({ publicForm }) {\nconst fiasApi = publicForm.createFiasApiClient();\nconst suggestedAddresses = await fiasApi.fetchSuggestAddressesByText(\"Свердловская обл, г Екатеринбург, ул Малопрудная, д 5\");\n}\n```\nЗдесь вызывается метод fetchSuggestAddressesByText, который по строке адреса возвращает suggestedAddresses - подходящие адреса из апи ФИАСа. Возвращаемое значение - массив адресов, а каждый адрес - структура, содержащая все поля адреса, возвращаемые апи (регион, район и т.д.).";
137616
137680
 
137617
137681
  /***/ }),
137618
137682
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontur.candy/generator",
3
- "version": "5.116.0-fs-9118-contractors-widget.0",
3
+ "version": "5.117.0-fs-8494-off-redonly-autocalcs.0",
4
4
  "description": "Candy forms generator",
5
5
  "author": "SKBKontur Candy Team",
6
6
  "private": false,