@kontur.candy/generator 6.33.0 → 6.34.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 +79 -308
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -108120,192 +108120,6 @@ let TypeFileUploadErrors = /*#__PURE__*/function (TypeFileUploadErrors) {
108120
108120
 
108121
108121
  /***/ }),
108122
108122
 
108123
- /***/ "./Engine/src/Engine/Core/PathUtils/PathUtils.ts":
108124
- /*!*******************************************************!*\
108125
- !*** ./Engine/src/Engine/Core/PathUtils/PathUtils.ts ***!
108126
- \*******************************************************/
108127
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
108128
-
108129
- "use strict";
108130
- __webpack_require__.r(__webpack_exports__);
108131
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
108132
- /* harmony export */ PathUtils: () => (/* binding */ PathUtils)
108133
- /* harmony export */ });
108134
- /* harmony import */ var _Common_TypingUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../Common/TypingUtils */ "./Common/TypingUtils.ts");
108135
- /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
108136
- /* harmony import */ var _Common_ModelPath_PathMatcher__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Common/ModelPath/PathMatcher */ "./Common/ModelPath/PathMatcher.ts");
108137
- /* harmony import */ var _Common_ModelPath_ModelPathBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../Common/ModelPath/ModelPathBuilder */ "./Common/ModelPath/ModelPathBuilder.ts");
108138
-
108139
-
108140
-
108141
-
108142
- class PathUtils {
108143
- static getAbsolutePath(parentPath, relativePath) {
108144
- const parentSymbol = "-";
108145
- let pathSuffix = relativePath;
108146
- let parentLength = parentPath.length;
108147
- let i = 0;
108148
- while (i < pathSuffix.length && pathSuffix[i] === parentSymbol) {
108149
- if (parentLength === -1) {
108150
- throw new Error("Argument exception");
108151
- }
108152
- parentLength = parentPath.lastIndexOf("/", parentLength - 1);
108153
- i += 1;
108154
- }
108155
- parentPath = parentPath.substr(0, parentLength);
108156
- pathSuffix = pathSuffix.substr(i);
108157
- return (parentPath.length && pathSuffix.length && pathSuffix[0] !== "." ? parentPath + "/" : parentPath) + pathSuffix;
108158
- }
108159
- static getParentPath(nodePath) {
108160
- const delimIdx = nodePath.lastIndexOf("/");
108161
- return delimIdx === -1 ? null : nodePath.substr(0, delimIdx);
108162
- }
108163
- static splitToPathAndValueName(path) {
108164
- for (let i = path.length - 1; i >= 0; --i) {
108165
- if (path[i] === "/") {
108166
- return [path, ""];
108167
- } else if (path[i] === ".") {
108168
- return [path.substr(0, i), path.substr(i + 1)];
108169
- }
108170
- }
108171
- return [path, ""];
108172
- }
108173
- static getLastToken(nodePath) {
108174
- const delimIdx = nodePath.lastIndexOf("/");
108175
- return delimIdx === -1 ? nodePath : nodePath.substr(delimIdx + 1);
108176
- }
108177
- static getValuePath(nodePath, valueName) {
108178
- return nodePath + "." + valueName;
108179
- }
108180
- static isMask(path) {
108181
- return path.includes("*");
108182
- }
108183
- static trimLastStarIfLastToken(path) {
108184
- if ((0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.isModelPath)(path)) {
108185
- return path.trimLastStarIfLastToken().toLegacyPath();
108186
- }
108187
- if (PathUtils.getLastToken(path) === "*") {
108188
- var _PathUtils$getParentP;
108189
- return (_PathUtils$getParentP = PathUtils.getParentPath(path)) !== null && _PathUtils$getParentP !== void 0 ? _PathUtils$getParentP : "";
108190
- }
108191
- return path;
108192
- }
108193
- static isPrefix(prefix, path) {
108194
- return path.indexOf(prefix) === 0 && (path.length === prefix.length || path[prefix.length] === "/");
108195
- }
108196
- static split(path) {
108197
- return path.split("/");
108198
- }
108199
- static splitMask(mask) {
108200
- return mask.split("*").map(subPath => this.join(this.split(subPath).filter(x => x)));
108201
- }
108202
- static join(tokens) {
108203
- return tokens.join("/");
108204
- }
108205
- static resolve(pathWithMask, instances = []) {
108206
- if (typeof pathWithMask === "string") {
108207
- let instanceIndex = 0;
108208
- const tokens = this.split(pathWithMask);
108209
- const resolvedTokens = tokens.map(token => {
108210
- if (token !== "*") {
108211
- return token;
108212
- }
108213
- const instance = instances[instanceIndex];
108214
- instanceIndex++;
108215
- if (instance === undefined) {
108216
- return "*";
108217
- }
108218
- return instance;
108219
- });
108220
- return this.join(resolvedTokens);
108221
- } else {
108222
- const resultBuilder = new _Common_ModelPath_ModelPathBuilder__WEBPACK_IMPORTED_MODULE_3__.ModelPathBuilder(pathWithMask.isAbsolute());
108223
- let instanceIndex = 0;
108224
- for (const token of pathWithMask.getPathParts()) {
108225
- if (_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.PathTokens.isSimpleToken(token)) {
108226
- resultBuilder.append(token);
108227
- } else {
108228
- const instance = instances[instanceIndex];
108229
- instanceIndex++;
108230
- if (instance === undefined) {
108231
- resultBuilder.append(token);
108232
- } else {
108233
- resultBuilder.append(instance);
108234
- }
108235
- }
108236
- }
108237
- if (pathWithMask.isAbsolute()) {
108238
- return resultBuilder.toAbsolutePath();
108239
- }
108240
- return resultBuilder.toPath();
108241
- }
108242
- }
108243
- static resolveMaskToDeepestCommonInstance(fullPath, mask) {
108244
- const fullPathTokens = this.split(fullPath);
108245
- const maskTokens = this.split(mask);
108246
- const deepestCommonInstancePathTokens = [];
108247
- let tokensBeforeLastMultiplicity = [];
108248
- for (let index = 0; maskTokens[index] && fullPathTokens[index]; index++) {
108249
- if (maskTokens[index] === fullPathTokens[index]) {
108250
- tokensBeforeLastMultiplicity.push(fullPathTokens[index]);
108251
- } else if (maskTokens[index] === "*") {
108252
- const instanceNumber = fullPathTokens[index];
108253
- deepestCommonInstancePathTokens.push(...tokensBeforeLastMultiplicity, instanceNumber);
108254
- tokensBeforeLastMultiplicity = [];
108255
- } else {
108256
- break;
108257
- }
108258
- }
108259
- const deepestCommonInstancePathTokensLength = deepestCommonInstancePathTokens.length;
108260
- if (deepestCommonInstancePathTokensLength === 0) {
108261
- return null;
108262
- }
108263
- return deepestCommonInstancePathTokens.concat(maskTokens.slice(deepestCommonInstancePathTokensLength)).join("/");
108264
- }
108265
- static isPicklistFieldValueName(valueName) {
108266
- return valueName.startsWith("picklist@");
108267
- }
108268
- static getPicklistFieldName(valueName) {
108269
- if (!valueName.startsWith("picklist@")) {
108270
- throw new Error(`${valueName} is not picklist field name`);
108271
- }
108272
- const splitValueName = valueName.split("@");
108273
- if (!(0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_0__.arrayHasLength)(splitValueName, 2)) {
108274
- throw new Error(`${valueName} is not a valid picklist field name`);
108275
- }
108276
- return splitValueName[1];
108277
- }
108278
-
108279
- /**
108280
- * Используется снаружи. Извлкается номер инстанса для пути. Например, если передать `pathWithMask` /A/B*, а
108281
- * `path` /A/B/2, то функция вернёт `"2"`
108282
- * @param pathWithMask
108283
- * @param path
108284
- */
108285
- static extractInstance(pathWithMask, path) {
108286
- const modelPathWithMask = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.createFromMask)(pathWithMask, true, _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.PathTokens.each);
108287
- const modelPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.createFromMask)(path, true, _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.PathTokens.each);
108288
- const matchedMultiplicity = modelPathWithMask.matchFor(modelPath).filter(x => x.kind === _Common_ModelPath_PathMatcher__WEBPACK_IMPORTED_MODULE_2__.MatchKind.MatchedMultiplicity && _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.PathTokens.isInstanceToken(x.target));
108289
- if ((0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_0__.arrayHasLength)(matchedMultiplicity, 1) && matchedMultiplicity[0].kind === _Common_ModelPath_PathMatcher__WEBPACK_IMPORTED_MODULE_2__.MatchKind.MatchedMultiplicity) {
108290
- if (_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_1__.PathTokens.isInstanceToken(matchedMultiplicity[0].target)) {
108291
- return matchedMultiplicity[0].target;
108292
- }
108293
- }
108294
- throw new Error(`Unable to extract single index while match paths '${modelPathWithMask.toString()}' and '${modelPath.toString()}'`);
108295
- }
108296
- static extractPathWithInstance(pathWithMask, path) {
108297
- const prefix = PathUtils.trimLastStarIfLastToken(pathWithMask);
108298
- if (!PathUtils.isPrefix(prefix, path)) {
108299
- return undefined;
108300
- }
108301
- const instance = PathUtils.extractInstance(pathWithMask, path);
108302
- const pathWithInstance = PathUtils.join([prefix, instance]);
108303
- return pathWithInstance;
108304
- }
108305
- }
108306
-
108307
- /***/ }),
108308
-
108309
108123
  /***/ "./Engine/src/Engine/ValidationHelper/ValidationHelper.ts":
108310
108124
  /*!****************************************************************!*\
108311
108125
  !*** ./Engine/src/Engine/ValidationHelper/ValidationHelper.ts ***!
@@ -127704,7 +127518,7 @@ function kladrPreprocessor(node) {
127704
127518
  };
127705
127519
  const types = {
127706
127520
  address: `
127707
- <type base="string" requiredDescription="Адрес должен быть заполнен" />`,
127521
+ <type base="string" />`,
127708
127522
  regionCode: `
127709
127523
  <type base="integer" description="Код региона должен состоять из 2 цифр" requiredDescription="Заполните регион">
127710
127524
  <length value="2" />
@@ -127744,13 +127558,14 @@ function kladrPreprocessor(node) {
127744
127558
  <maxLength value="20" />
127745
127559
  </type>`
127746
127560
  };
127561
+ const optional = node.attrAsBoolean("optional");
127747
127562
  const pb = new _CodeGeneration_PropsBuilder__WEBPACK_IMPORTED_MODULE_0__.PropsBuilder({
127748
127563
  path: node.attributes.path,
127749
127564
  title: node.attributes.title,
127750
127565
  tid: node.attributes.tid,
127566
+ optional: node.attributes.optional,
127751
127567
  kind: "envd"
127752
127568
  });
127753
- const optional = node.attrAsBoolean("optional");
127754
127569
  const childrenJsx = Object.keys(setting).map(field => {
127755
127570
  const childPb = new _CodeGeneration_PropsBuilder__WEBPACK_IMPORTED_MODULE_0__.PropsBuilder({
127756
127571
  path: setting[field],
@@ -127767,7 +127582,7 @@ function kladrPreprocessor(node) {
127767
127582
  }).join("");
127768
127583
  const newNode = (0,_XmlParser_XmlParser__WEBPACK_IMPORTED_MODULE_1__.parseXml)(`<kladr ${pb}>
127769
127584
  ${childrenJsx}
127770
- <text ${optional != undefined ? `optional="${optional.toString()}" ` : ""}path="address">
127585
+ <text optional="true" path="address">
127771
127586
  ${types.address}
127772
127587
  </text>
127773
127588
  </kladr>`);
@@ -148794,7 +148609,7 @@ class AddRowButtonConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE
148794
148609
  const element = formSchemaRng.getElementByPath(node.getFullPath());
148795
148610
 
148796
148611
  // eslint-disable-next-line no-warning-comments
148797
- // TODO(2026-07-31): Необходимо разобраться с тем, что тут конфликтят свойства в type. Подробности в задаче https://yt.skbkontur.ru/issue/FS-9234
148612
+ // TODO(2026-08-31): Необходимо разобраться с тем, что тут конфликтят свойства в type. Подробности в задаче https://yt.skbkontur.ru/issue/FS-9234
148798
148613
  const fakeNode = new _validationGenerator_Nodes_TypeNode__WEBPACK_IMPORTED_MODULE_7__.TypeNode();
148799
148614
  fakeNode.base = "string";
148800
148615
  fakeNode.children = [];
@@ -149873,6 +149688,10 @@ class CrossfitTableConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODUL
149873
149688
  if (loader != undefined) {
149874
149689
  tableBuilder.appendChild(loader);
149875
149690
  }
149691
+ const filterInfoOverlayBuilder = this.buildFilterInfoOverlay(node.filterinfo);
149692
+ if (filterInfoOverlayBuilder != undefined) {
149693
+ tableBuilder.appendChild(filterInfoOverlayBuilder);
149694
+ }
149876
149695
  const sidebarBuilder = this.buildSidebar(context, node, sidebarColumns, (_node$optional = node.optional) !== null && _node$optional !== void 0 ? _node$optional : false);
149877
149696
  if (sidebarBuilder != undefined) {
149878
149697
  tableBuilder.appendChild(sidebarBuilder);
@@ -149973,10 +149792,6 @@ class CrossfitTableConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODUL
149973
149792
  }
149974
149793
  const sidebarBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("CrossfitTable", "CrossfitTable.Sidebar");
149975
149794
  sidebarBuilder.prop(x => x.columns).set(sidebarColumns);
149976
- const filterInfoJsxConverterResult = this.buildFilterInfo(node.filterinfo);
149977
- if (filterInfoJsxConverterResult != undefined) {
149978
- sidebarBuilder.appendChild(filterInfoJsxConverterResult);
149979
- }
149980
149795
  const bodyRows = node.getBodyRows();
149981
149796
  if (bodyRows.length === 0) {
149982
149797
  sidebarBuilder.appendChild("<tr />");
@@ -150059,19 +149874,19 @@ class CrossfitTableConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODUL
150059
149874
  // )
150060
149875
  }).flat();
150061
149876
  }
150062
- buildFilterInfo(filterInfo) {
149877
+ buildFilterInfoOverlay(filterInfo) {
150063
149878
  var _getPluralTitles;
150064
149879
  if (filterInfo == undefined) {
150065
149880
  return undefined;
150066
149881
  }
150067
- const rowBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("CrossfitTableFilterInfoSidebarRow");
149882
+ const overlayBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("CrossfitTable", "CrossfitTable.FilterInfo");
150068
149883
  const filterInfoBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("FilterInfo");
150069
149884
  filterInfoBuilder.prop(x => x.multilinePath).set((0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewBindingPathExpression)(filterInfo, filterInfo.multilinePath));
150070
149885
  filterInfoBuilder.prop(x => x.notFoundText).set(filterInfo.notFoundText);
150071
149886
  filterInfoBuilder.prop(x => x.filteredUniqKey).set(filterInfo.filteredUniqKey);
150072
149887
  filterInfoBuilder.prop(x => x.titles).set((_getPluralTitles = (0,_Multilinefield_GetPluralTitles__WEBPACK_IMPORTED_MODULE_10__.getPluralTitles)(filterInfo.titles)) !== null && _getPluralTitles !== void 0 ? _getPluralTitles : ["%s", "%s", "%s"]);
150073
- rowBuilder.appendChild(filterInfoBuilder);
150074
- return rowBuilder.buildConverterResult();
149888
+ overlayBuilder.appendChild(filterInfoBuilder);
149889
+ return overlayBuilder;
150075
149890
  }
150076
149891
  findNumbersColumn(node) {
150077
149892
  const rows = node.getHeaderRows();
@@ -158327,7 +158142,7 @@ class FileLoaderConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_4
158327
158142
  }
158328
158143
 
158329
158144
  // eslint-disable-next-line no-warning-comments
158330
- // TODO(2026-07-31): Исправить в рамках задачи https://yt.skbkontur.ru/issue/FS-9386
158145
+ // TODO(2026-08-31): Исправить в рамках задачи https://yt.skbkontur.ru/issue/FS-9386
158331
158146
  *doBuildKCLangValidations_REMOVE_THIS_SUFFIX(buildContext, formSchemaRng, prefixPath) {
158332
158147
  const node = this.getCurrentNodeAs(_FileLoaderNode__WEBPACK_IMPORTED_MODULE_11__.FileLoaderNode);
158333
158148
  const element = formSchemaRng.getElementByPath(node.getFullPath());
@@ -159507,16 +159322,35 @@ __webpack_require__.r(__webpack_exports__);
159507
159322
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
159508
159323
  /* harmony export */ KladrConverter: () => (/* binding */ KladrConverter)
159509
159324
  /* harmony export */ });
159510
- /* harmony import */ var _babel_template__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/template */ "./node_modules/@babel/template/lib/index.js");
159511
- /* harmony import */ var _babel_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/types */ "./node_modules/@babel/types/lib/index.js");
159512
- /* harmony import */ var _babel_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_types__WEBPACK_IMPORTED_MODULE_1__);
159513
- /* harmony import */ var _DataDeclarationGenerator_DataDeclarationGenerationContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../DataDeclarationGenerator/DataDeclarationGenerationContext */ "./Generator/src/generators/DataDeclarationGenerator/DataDeclarationGenerationContext.ts");
159514
- /* harmony import */ var _getBindingPath__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../getBindingPath */ "./Generator/src/generators/markupGenerator/getBindingPath.ts");
159515
- /* harmony import */ var _ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../ComponentMarkupBuilder/ComponentMarkupBuilder */ "./Generator/src/generators/markupGenerator/ComponentMarkupBuilder/ComponentMarkupBuilder.ts");
159516
- /* harmony import */ var _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../SugarNodeConverter */ "./Generator/src/generators/markupGenerator/SugarNodeConverter.ts");
159517
- /* harmony import */ var _Engine_src_Engine_Core_PathUtils_PathUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../Engine/src/Engine/Core/PathUtils/PathUtils */ "./Engine/src/Engine/Core/PathUtils/PathUtils.ts");
159518
- /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
159519
- /* harmony import */ var _KladrNode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./KladrNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Kladr/KladrNode.ts");
159325
+ /* harmony import */ var _DataDeclarationGenerator_DataDeclarationGenerationContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../DataDeclarationGenerator/DataDeclarationGenerationContext */ "./Generator/src/generators/DataDeclarationGenerator/DataDeclarationGenerationContext.ts");
159326
+ /* harmony import */ var _getBindingPath__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../getBindingPath */ "./Generator/src/generators/markupGenerator/getBindingPath.ts");
159327
+ /* harmony import */ var _ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../ComponentMarkupBuilder/ComponentMarkupBuilder */ "./Generator/src/generators/markupGenerator/ComponentMarkupBuilder/ComponentMarkupBuilder.ts");
159328
+ /* harmony import */ var _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../SugarNodeConverter */ "./Generator/src/generators/markupGenerator/SugarNodeConverter.ts");
159329
+ /* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
159330
+ /* harmony import */ var _common_KCLang_CodeDom_Functions_ExistsFunctionCall__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/Functions/ExistsFunctionCall */ "./Generator/src/common/KCLang/CodeDom/Functions/ExistsFunctionCall.ts");
159331
+ /* harmony import */ var _common_KCLang_CodeDom_ValueReferenceExpression__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/ValueReferenceExpression */ "./Generator/src/common/KCLang/CodeDom/ValueReferenceExpression.ts");
159332
+ /* harmony import */ var _common_KCLang_CodeDom_KCLangPath__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/KCLangPath */ "./Generator/src/common/KCLang/CodeDom/KCLangPath.ts");
159333
+ /* harmony import */ var _common_KCLang_CodeDom_OrExpression__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/OrExpression */ "./Generator/src/common/KCLang/CodeDom/OrExpression.ts");
159334
+ /* harmony import */ var _common_KCLang_CodeDom_CheckStatement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/CheckStatement */ "./Generator/src/common/KCLang/CodeDom/CheckStatement.ts");
159335
+ /* harmony import */ var _common_KCLang_CodeDom_WithBlock__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/WithBlock */ "./Generator/src/common/KCLang/CodeDom/WithBlock.ts");
159336
+ /* harmony import */ var _common_KCLang_CodeDom_DescriptionText__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/DescriptionText */ "./Generator/src/common/KCLang/CodeDom/DescriptionText.ts");
159337
+ /* harmony import */ var _Common_ModelPath_PathSplitHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../../../../Common/ModelPath/PathSplitHelper */ "./Common/ModelPath/PathSplitHelper.ts");
159338
+ /* harmony import */ var _common_KCLang_CodeDom_InBlock__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/InBlock */ "./Generator/src/common/KCLang/CodeDom/InBlock.ts");
159339
+ /* harmony import */ var _common_KCLang_CodeDom_StringConstExpression__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/StringConstExpression */ "./Generator/src/common/KCLang/CodeDom/StringConstExpression.ts");
159340
+ /* harmony import */ var _common_KCLang_CodeDom_KCLangUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/KCLangUtils */ "./Generator/src/common/KCLang/CodeDom/KCLangUtils.ts");
159341
+ /* harmony import */ var _common_KCLang_CodeDom_Functions_RegexMatchFunctionCall__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/Functions/RegexMatchFunctionCall */ "./Generator/src/common/KCLang/CodeDom/Functions/RegexMatchFunctionCall.ts");
159342
+ /* harmony import */ var _common_KCLang_CodeDom_NotExpression__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../../common/KCLang/CodeDom/NotExpression */ "./Generator/src/common/KCLang/CodeDom/NotExpression.ts");
159343
+ /* harmony import */ var _KladrNode__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./KladrNode */ "./Generator/src/generators/markupGenerator/ElementProcessors/ValueEditors/Kladr/KladrNode.ts");
159344
+
159345
+
159346
+
159347
+
159348
+
159349
+
159350
+
159351
+
159352
+
159353
+
159520
159354
 
159521
159355
 
159522
159356
 
@@ -159526,144 +159360,81 @@ __webpack_require__.r(__webpack_exports__);
159526
159360
 
159527
159361
 
159528
159362
 
159529
- class KladrConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_5__.SugarNodeConverterBase {
159363
+ class KladrConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_3__.SugarNodeConverterBase {
159530
159364
  get nodePaths() {
159531
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159365
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159532
159366
  const dependencies = node.kind === "stat" ? this.getStatBindings(node) : this.getFNSBindings(node);
159533
159367
  return dependencies.map(({
159534
159368
  path
159535
159369
  }) => path);
159536
159370
  }
159537
159371
  static getAcceptNodeClass() {
159538
- return _KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode;
159372
+ return _KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode;
159539
159373
  }
159540
159374
  *doBuildKCLangValidations(buildContext, formSchemaRng, prefixPath) {
159541
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159375
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159542
159376
  const element = formSchemaRng.getElementByPath(node.getFullPath());
159543
- const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_7__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_7__.PathTokens.each);
159377
+ const targetPath = (0,_Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_4__.createAbsoluteFromMask)(this.getResolvedBindingPath(node), _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_4__.PathTokens.each);
159544
159378
  const typeNode = buildContext.getTypeNode(node.validationInfo);
159545
159379
  const schemaTypeNode = buildContext.getSchemaTypeInfo(targetPath);
159546
159380
  const ownPath = node.getOwnPathForKCLang();
159381
+ const isOptional = node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional;
159382
+ if (ownPath != undefined && node.kind != "stat" && !isOptional) {
159383
+ const bindings = this.getFNSBindings(node);
159384
+ const existsChecks = bindings.filter(x => x.propName != "address").map(x => {
159385
+ const {
159386
+ differentPath
159387
+ } = (0,_Common_ModelPath_PathSplitHelper__WEBPACK_IMPORTED_MODULE_12__.getMatchedAndDifferentModelPaths)(targetPath, x.path);
159388
+ return new _common_KCLang_CodeDom_Functions_ExistsFunctionCall__WEBPACK_IMPORTED_MODULE_5__.ExistsFunctionCall(new _common_KCLang_CodeDom_ValueReferenceExpression__WEBPACK_IMPORTED_MODULE_6__.ValueReferenceExpression(_common_KCLang_CodeDom_KCLangPath__WEBPACK_IMPORTED_MODULE_7__.KCLangPath.fromModelPath(differentPath)));
159389
+ }).reduce((result, current) => result != undefined ? new _common_KCLang_CodeDom_OrExpression__WEBPACK_IMPORTED_MODULE_8__.OrExpression(result, current) : current, undefined);
159390
+ if (existsChecks != undefined) {
159391
+ yield new _common_KCLang_CodeDom_InBlock__WEBPACK_IMPORTED_MODULE_13__.InBlock(_common_KCLang_CodeDom_KCLangPath__WEBPACK_IMPORTED_MODULE_7__.KCLangPath.fromModelPath(ownPath), new _common_KCLang_CodeDom_CheckStatement__WEBPACK_IMPORTED_MODULE_9__.CheckStatement(existsChecks, [new _common_KCLang_CodeDom_WithBlock__WEBPACK_IMPORTED_MODULE_10__.WithBlock("target", new _common_KCLang_CodeDom_DescriptionText__WEBPACK_IMPORTED_MODULE_11__.DescriptionText("address")), new _common_KCLang_CodeDom_WithBlock__WEBPACK_IMPORTED_MODULE_10__.WithBlock("description", new _common_KCLang_CodeDom_DescriptionText__WEBPACK_IMPORTED_MODULE_11__.DescriptionText("Адрес должен быть заполнен"))]));
159392
+ }
159393
+ }
159394
+ if (ownPath != undefined && node.kind == "stat" && !isOptional) {
159395
+ const condition = new _common_KCLang_CodeDom_NotExpression__WEBPACK_IMPORTED_MODULE_17__.NotExpression(new _common_KCLang_CodeDom_Functions_RegexMatchFunctionCall__WEBPACK_IMPORTED_MODULE_16__.RegexMatchFunctionCall((0,_common_KCLang_CodeDom_KCLangUtils__WEBPACK_IMPORTED_MODULE_15__.castToString)(new _common_KCLang_CodeDom_ValueReferenceExpression__WEBPACK_IMPORTED_MODULE_6__.ValueReferenceExpression(_common_KCLang_CodeDom_KCLangPath__WEBPACK_IMPORTED_MODULE_7__.KCLangPath.fromModelPath(ownPath))), new _common_KCLang_CodeDom_StringConstExpression__WEBPACK_IMPORTED_MODULE_14__.StringConstExpression("^[, ]*$")));
159396
+ yield new _common_KCLang_CodeDom_CheckStatement__WEBPACK_IMPORTED_MODULE_9__.CheckStatement(condition, [new _common_KCLang_CodeDom_WithBlock__WEBPACK_IMPORTED_MODULE_10__.WithBlock("target", new _common_KCLang_CodeDom_DescriptionText__WEBPACK_IMPORTED_MODULE_11__.DescriptionText(ownPath.toString())), new _common_KCLang_CodeDom_WithBlock__WEBPACK_IMPORTED_MODULE_10__.WithBlock("description", new _common_KCLang_CodeDom_DescriptionText__WEBPACK_IMPORTED_MODULE_11__.DescriptionText("Адрес должен быть заполнен"))]);
159397
+ }
159547
159398
  if (typeNode == undefined && schemaTypeNode == undefined || ownPath == undefined) {
159548
159399
  return;
159549
159400
  }
159550
- yield* buildContext.buildBasicValidations(ownPath, targetPath, prefixPath, typeNode, schemaTypeNode, node.validationInfo.optional == undefined ? element === null || element === void 0 ? void 0 : element.isOptional() : node.validationInfo.optional, undefined, node.validationInfo.emptydescription);
159401
+ yield* buildContext.buildBasicValidations(ownPath, targetPath, prefixPath, typeNode, schemaTypeNode, true, undefined, node.validationInfo.emptydescription);
159551
159402
  }
159552
159403
  doBuildNodeValidations(validationGenerator) {
159553
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159404
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159554
159405
  validationGenerator.processValidations(this.getResolvedBindingPath(node), node.validationInfo.optional, validationGenerator.getTypeNode(node.validationInfo), undefined, node.validationInfo.emptydescription, undefined);
159555
159406
  }
159556
- buildSugarAutoCalculations() {
159557
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159558
- const statFields = ["index", "regionCode", "district", "city", "settlement", "street", "house", "building", "room"];
159559
- const path = this.getResolvedBindingPath(node).replace(/^[\/]+/g, "");
159560
- let kladrHooks;
159561
- if (node.kind === "stat") {
159562
- kladrHooks = statFields.map(field => ({
159563
- path: `${path}.${field}`,
159564
- value: [{
159565
- base: "-",
159566
- fn: "kladrchange"
159567
- }]
159568
- }));
159569
- } else {
159570
- const fields = node.textNodeForDataDeclaration.map(child => child.field).filter(field => field != undefined && field !== "");
159571
- kladrHooks = fields.map(field => ({
159572
- path: `${path}/${field}.value`,
159573
- value: [{
159574
- base: "-",
159575
- fn: "kladrchange"
159576
- }]
159577
- }));
159578
- }
159579
- const bindingPathForStatHook = node.statKladrInUnit && node.path ? _Engine_src_Engine_Core_PathUtils_PathUtils__WEBPACK_IMPORTED_MODULE_6__.PathUtils.getLastToken(node.path) : undefined;
159580
- const newFunction = node.kind === "stat" ? this.createFuncStatKladr(bindingPathForStatHook) : this.createFuncKladr();
159581
- return [{
159582
- functions: [newFunction],
159583
- hooks: kladrHooks
159584
- }];
159585
- }
159586
159407
  doBuildDataDeclaration(context) {
159587
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159588
- return context.mergeDataDeclaration(node.kind === "stat" ? context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, false)], ["index", context.initSequenceFactory.takeFromModelOrFetchFn("index", node.dataBinding.fetchfn)], ["regionCode", context.initSequenceFactory.takeFromModelOrFetchFn("regionCode", node.dataBinding.fetchfn)], ["district", context.initSequenceFactory.takeFromModelOrFetchFn("district", node.dataBinding.fetchfn)], ["city", context.initSequenceFactory.takeFromModelOrFetchFn("city", node.dataBinding.fetchfn)], ["settlement", context.initSequenceFactory.takeFromModelOrFetchFn("settlement", node.dataBinding.fetchfn)], ["street", context.initSequenceFactory.takeFromModelOrFetchFn("street", node.dataBinding.fetchfn)], ["house", context.initSequenceFactory.takeFromModelOrFetchFn("house", node.dataBinding.fetchfn)], ["building", context.initSequenceFactory.takeFromModelOrFetchFn("building", node.dataBinding.fetchfn)], ["room", context.initSequenceFactory.takeFromModelOrFetchFn("room", node.dataBinding.fetchfn)]]) : _DataDeclarationGenerator_DataDeclarationGenerationContext__WEBPACK_IMPORTED_MODULE_2__.emptyDataDeclarationCollection, context.addSpecialFieldsEntry(node, {
159408
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159409
+ return context.mergeDataDeclaration(node.kind === "stat" ? context.addPathDeclEntry(node, [["value", context.initSequenceFactory.dataValue(node.dataBinding, false)]]) : _DataDeclarationGenerator_DataDeclarationGenerationContext__WEBPACK_IMPORTED_MODULE_0__.emptyDataDeclarationCollection, context.addSpecialFieldsEntry(node, {
159589
159410
  optional: node.dataBinding.optional
159590
159411
  }), context.addPathSectionDeclarationEntry(node, node.dataBinding.requisite), context.addVisibilityPathDeclEntryNew(node, node.dataBinding.requisite));
159591
159412
  }
159592
159413
  buildChildrenDataDeclaration(context) {
159593
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159414
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159594
159415
  return context.processChildrenDataDeclaration([...node.helpNodes, ...node.textNodeForDataDeclaration]);
159595
159416
  }
159596
159417
  *doTraverseChildren() {
159597
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159418
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159598
159419
  yield* node.helpNodes;
159599
159420
  yield* node.textNodeForDataDeclaration;
159600
159421
  }
159601
159422
  doConvert(context) {
159602
- const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_8__.KladrNode);
159423
+ const node = this.getCurrentNodeAs(_KladrNode__WEBPACK_IMPORTED_MODULE_18__.KladrNode);
159603
159424
  if (node.kind === "stat") {
159604
159425
  this.ensurePathExists(node, node.dataBinding.path);
159605
159426
  }
159606
- const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_4__.componentMarkupBuilder)("Kladr");
159427
+ const markupBuilder = (0,_ComponentMarkupBuilder_ComponentMarkupBuilder__WEBPACK_IMPORTED_MODULE_2__.componentMarkupBuilder)("Kladr");
159607
159428
  markupBuilder.prop("data-tid").set(node.tid);
159608
159429
  markupBuilder.prop(x => x.title).set(node.title);
159609
159430
  const dependencies = node.kind === "stat" ? this.getStatBindings(node) : this.getFNSBindings(node);
159610
159431
  markupBuilder.prop(x => x.dependencies).set(dependencies);
159432
+ const statMode = node.kind === "stat";
159433
+ if (statMode) {
159434
+ markupBuilder.prop(x => x.statMode).set(statMode);
159435
+ }
159611
159436
  return markupBuilder.buildConverterResultWithHelp(node, context);
159612
159437
  }
159613
- createFuncKladr() {
159614
- const buildFuncCall = (0,_babel_template__WEBPACK_IMPORTED_MODULE_0__["default"])(`
159615
- getAsyncTextResultHandler({
159616
- index: ['Индекс', 'value'],
159617
- regionCode: ['КодРегион', 'value'],
159618
- district: ['Район', 'value'],
159619
- city: ['Город', 'value'],
159620
- settlement: ['НаселПункт', 'value'],
159621
- street: ['Улица', 'value'],
159622
- house: ['Дом', 'value'],
159623
- building: ['Корпус', 'value'],
159624
- room: ['Кварт', 'value'],
159625
- }, (args) => {
159626
- const value = Object.keys(args).map((key) => args[key] || '').join('');
159627
-
159628
- return [['address', 'value', value]];
159629
- })`, {
159630
- placeholderPattern: false
159631
- });
159632
- const funcCall = buildFuncCall();
159633
- return _babel_types__WEBPACK_IMPORTED_MODULE_1__.objectProperty(_babel_types__WEBPACK_IMPORTED_MODULE_1__.identifier("kladrchange"), funcCall.expression);
159634
- }
159635
- createFuncStatKladr(bindingPath = "value") {
159636
- const buildFuncCall = (0,_babel_template__WEBPACK_IMPORTED_MODULE_0__["default"])(`
159637
- getAsyncTextResultHandler({
159638
- index : ['${bindingPath}', 'index'],
159639
- regionCode : ['${bindingPath}', 'regionCode'],
159640
- district : ['${bindingPath}', 'district'],
159641
- city : ['${bindingPath}', 'city'],
159642
- settlement : ['${bindingPath}', 'settlement'],
159643
- street : ['${bindingPath}', 'street'],
159644
- house : ['${bindingPath}', 'house'],
159645
- building : ['${bindingPath}', 'building'],
159646
- room : ['${bindingPath}', 'room'],
159647
- }, (args) => {
159648
- const value = [
159649
- 'index',
159650
- 'regionCode',
159651
- 'district',
159652
- 'city',
159653
- 'settlement',
159654
- 'street',
159655
- 'house',
159656
- 'building',
159657
- 'room'
159658
- ].map((key) => args[key] ? args[key] : '').join(',').split(',,,,,,,,')[0]
159659
-
159660
- return [['${bindingPath}', 'value', value]];
159661
- })`, {
159662
- placeholderPattern: false
159663
- });
159664
- const funcCall = buildFuncCall();
159665
- return _babel_types__WEBPACK_IMPORTED_MODULE_1__.objectProperty(_babel_types__WEBPACK_IMPORTED_MODULE_1__.identifier("kladrchange"), funcCall.expression);
159666
- }
159667
159438
  getFNSBindings(node) {
159668
159439
  const setting = {
159669
159440
  address: "address",
@@ -159678,7 +159449,7 @@ class KladrConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_5__.Su
159678
159449
  room: "Кварт"
159679
159450
  };
159680
159451
  return Object.keys(setting).map(propName => ({
159681
- path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_3__.getNewRelativePathExpression)(node, `${node.path}/${setting[propName]}`),
159452
+ path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewRelativePathExpression)(node, `${node.path}/${setting[propName]}`),
159682
159453
  valueName: "value",
159683
159454
  propName: propName
159684
159455
  }));
@@ -159686,7 +159457,7 @@ class KladrConverter extends _SugarNodeConverter__WEBPACK_IMPORTED_MODULE_5__.Su
159686
159457
  getStatBindings(node) {
159687
159458
  const values = ["index", "regionCode", "district", "city", "settlement", "street", "house", "building", "room"];
159688
159459
  return values.map(value => ({
159689
- path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_3__.getNewBindingPathExpression)(node),
159460
+ path: (0,_getBindingPath__WEBPACK_IMPORTED_MODULE_1__.getNewBindingPathExpression)(node),
159690
159461
  valueName: value
159691
159462
  }));
159692
159463
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontur.candy/generator",
3
- "version": "6.33.0",
3
+ "version": "6.34.0",
4
4
  "description": "Candy forms generator",
5
5
  "author": "SKBKontur Candy Team",
6
6
  "private": false,