survey-react 1.12.35 → 1.12.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/modern.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.35
2
+ * surveyjs - Survey JavaScript library v1.12.37
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/modern.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.35
2
+ * surveyjs - Survey JavaScript library v1.12.37
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "survey-react",
3
- "version": "1.12.35",
3
+ "version": "1.12.37",
4
4
  "description": "survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.",
5
5
  "keywords": [
6
6
  "Survey",
package/survey.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.35
2
+ * surveyjs - Survey JavaScript library v1.12.37
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/survey.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.35
2
+ * surveyjs - Survey JavaScript library v1.12.37
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/survey.react.d.ts CHANGED
@@ -421,9 +421,11 @@ declare module "packages/survey-core/src/expressions/expressions" {
421
421
  hasFunction(): boolean;
422
422
  hasAsyncFunction(): boolean;
423
423
  addToAsyncList(list: Array<AsyncFunctionItem>): void;
424
+ addOperandsToList(list: Array<Operand>): void;
424
425
  isEqual(op: Operand): boolean;
425
426
  protected abstract isContentEqual(op: Operand): boolean;
426
427
  protected areOperatorsEquals(op1: Operand, op2: Operand): boolean;
428
+ protected addChildrenToList(list: Array<Operand>): void;
427
429
  }
428
430
  export class BinaryOperand extends Operand {
429
431
  private operatorName;
@@ -447,6 +449,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
447
449
  toString(func?: (op: Operand) => string): string;
448
450
  setVariables(variables: Array<string>): void;
449
451
  hasFunction(): boolean;
452
+ protected addChildrenToList(list: Array<Operand>): void;
450
453
  hasAsyncFunction(): boolean;
451
454
  addToAsyncList(list: Array<AsyncFunctionItem>): void;
452
455
  }
@@ -461,6 +464,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
461
464
  toString(func?: (op: Operand) => string): string;
462
465
  protected isContentEqual(op: Operand): boolean;
463
466
  hasFunction(): boolean;
467
+ protected addChildrenToList(list: Array<Operand>): void;
464
468
  hasAsyncFunction(): boolean;
465
469
  addToAsyncList(list: Array<AsyncFunctionItem>): void;
466
470
  evaluate(processValue?: ProcessValue): boolean;
@@ -474,6 +478,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
474
478
  evaluate(processValue?: ProcessValue): Array<any>;
475
479
  setVariables(variables: Array<string>): void;
476
480
  hasFunction(): boolean;
481
+ protected addChildrenToList(list: Array<Operand>): void;
477
482
  hasAsyncFunction(): boolean;
478
483
  addToAsyncList(list: Array<AsyncFunctionItem>): void;
479
484
  protected isContentEqual(op: Operand): boolean;
@@ -519,6 +524,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
519
524
  isReady(proccessValue: ProcessValue): boolean;
520
525
  private getAsynValue;
521
526
  hasFunction(): boolean;
527
+ protected addChildrenToList(list: Array<Operand>): void;
522
528
  hasAsyncFunction(): boolean;
523
529
  private isAsyncFunction;
524
530
  addToAsyncList(list: Array<AsyncFunctionItem>): void;
@@ -3387,6 +3393,7 @@ declare module "packages/survey-core/src/panel" {
3387
3393
  protected _scrollableParent: any;
3388
3394
  protected _updateVisibility: any;
3389
3395
  private get allowRendering();
3396
+ private lazyRenderingTimeout;
3390
3397
  startLazyRendering(rowContainerDiv: HTMLElement, findScrollableContainer?: typeof findScrollableParent): void;
3391
3398
  ensureVisibility(): void;
3392
3399
  stopLazyRendering(): void;
@@ -9238,6 +9245,7 @@ declare module "packages/survey-core/src/question_text" {
9238
9245
  get maskInstance(): IInputMask;
9239
9246
  get inputValue(): string;
9240
9247
  set inputValue(val: string);
9248
+ protected convertToCorrectValue(val: any): any;
9241
9249
  protected onChangeQuestionValue(newValue: any): void;
9242
9250
  private updateInputValue;
9243
9251
  private hasToConvertToUTC;
@@ -11897,6 +11905,8 @@ declare module "packages/survey-core/src/survey" {
11897
11905
  * @see nextPage
11898
11906
  */
11899
11907
  prevPage(): boolean;
11908
+ private doSkipOnPrevPage;
11909
+ private prevPageSingleElement;
11900
11910
  /**
11901
11911
  * Completes the survey if it currently displays the last page and the page contains no validation errors. If both these conditions are met, this method returns `true`; otherwise, `false`.
11902
11912
  *
@@ -17782,6 +17792,7 @@ declare module "packages/survey-core/src/question_checkbox" {
17782
17792
  set isAllSelected(val: boolean);
17783
17793
  toggleSelectAll(): void;
17784
17794
  protected allElementsSelected(): boolean;
17795
+ private isNoneItemsSelected;
17785
17796
  /**
17786
17797
  * Selects all choice items, except "Other" and "None".
17787
17798
  *
@@ -28214,6 +28225,7 @@ declare module "packages/survey-react-ui/src/row" {
28214
28225
  protected canRender(): boolean;
28215
28226
  protected renderElementContent(): React.JSX.Element;
28216
28227
  protected renderElement(): React.JSX.Element;
28228
+ private lazyRenderingTimeout;
28217
28229
  componentDidMount(): void;
28218
28230
  shouldComponentUpdate(nextProps: any, nextState: any): boolean;
28219
28231
  private stopLazyRendering;
package/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.35
2
+ * surveyjs - Survey JavaScript library v1.12.37
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -5851,12 +5851,17 @@ var Operand = /** @class */ (function () {
5851
5851
  };
5852
5852
  Operand.prototype.hasAsyncFunction = function () { return false; };
5853
5853
  Operand.prototype.addToAsyncList = function (list) { };
5854
+ Operand.prototype.addOperandsToList = function (list) {
5855
+ list.push(this);
5856
+ this.addChildrenToList(list);
5857
+ };
5854
5858
  Operand.prototype.isEqual = function (op) {
5855
5859
  return !!op && op.getType() === this.getType() && this.isContentEqual(op);
5856
5860
  };
5857
5861
  Operand.prototype.areOperatorsEquals = function (op1, op2) {
5858
5862
  return !op1 && !op2 || !!op1 && op1.isEqual(op2);
5859
5863
  };
5864
+ Operand.prototype.addChildrenToList = function (list) { };
5860
5865
  Operand.counter = 1;
5861
5866
  return Operand;
5862
5867
  }());
@@ -5976,6 +5981,12 @@ var BinaryOperand = /** @class */ (function (_super) {
5976
5981
  return ((!!this.left && this.left.hasFunction()) ||
5977
5982
  (!!this.right && this.right.hasFunction()));
5978
5983
  };
5984
+ BinaryOperand.prototype.addChildrenToList = function (list) {
5985
+ if (!!this.left)
5986
+ this.left.addOperandsToList(list);
5987
+ if (!!this.right)
5988
+ this.right.addOperandsToList(list);
5989
+ };
5979
5990
  BinaryOperand.prototype.hasAsyncFunction = function () {
5980
5991
  return ((!!this.left && this.left.hasAsyncFunction()) ||
5981
5992
  (!!this.right && this.right.hasAsyncFunction()));
@@ -6036,6 +6047,9 @@ var UnaryOperand = /** @class */ (function (_super) {
6036
6047
  UnaryOperand.prototype.hasFunction = function () {
6037
6048
  return this.expression.hasFunction();
6038
6049
  };
6050
+ UnaryOperand.prototype.addChildrenToList = function (list) {
6051
+ this.expression.addOperandsToList(list);
6052
+ };
6039
6053
  UnaryOperand.prototype.hasAsyncFunction = function () {
6040
6054
  return this.expression.hasAsyncFunction();
6041
6055
  };
@@ -6090,6 +6104,11 @@ var ArrayOperand = /** @class */ (function (_super) {
6090
6104
  ArrayOperand.prototype.hasFunction = function () {
6091
6105
  return this.values.some(function (operand) { return operand.hasFunction(); });
6092
6106
  };
6107
+ ArrayOperand.prototype.addChildrenToList = function (list) {
6108
+ this.values.forEach(function (el) {
6109
+ el.addOperandsToList(list);
6110
+ });
6111
+ };
6093
6112
  ArrayOperand.prototype.hasAsyncFunction = function () {
6094
6113
  return this.values.some(function (operand) { return operand.hasAsyncFunction(); });
6095
6114
  };
@@ -6298,6 +6317,9 @@ var expressions_FunctionOperand = /** @class */ (function (_super) {
6298
6317
  return proccessValue.asyncValues[this.id];
6299
6318
  };
6300
6319
  FunctionOperand.prototype.hasFunction = function () { return true; };
6320
+ FunctionOperand.prototype.addChildrenToList = function (list) {
6321
+ this.parameters.addOperandsToList(list);
6322
+ };
6301
6323
  FunctionOperand.prototype.hasAsyncFunction = function () {
6302
6324
  return this.isAsyncFunction() || this.parameters.hasAsyncFunction();
6303
6325
  };
@@ -27573,7 +27595,7 @@ var question_matrixdropdowncolumn_MatrixDropdownColumn = /** @class */ (function
27573
27595
  delete json["choices"];
27574
27596
  }
27575
27597
  delete json["itemComponent"];
27576
- if (this.jsonObj && json.type === "rating") {
27598
+ if (this.jsonObj && json.type === "rating" && this.isLoadingFromJson) {
27577
27599
  Object.keys(this.jsonObj).forEach(function (prop) {
27578
27600
  json[prop] = _this.jsonObj[prop];
27579
27601
  });
@@ -30653,6 +30675,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
30653
30675
  if (!!rows) {
30654
30676
  rows.forEach(function (row) { return row.updateElementVisibility(); });
30655
30677
  }
30678
+ this.updateShowTableAndAddRow();
30656
30679
  };
30657
30680
  QuestionMatrixDropdownModelBase.prototype.shouldRunColumnExpression = function () {
30658
30681
  return false;
@@ -36493,7 +36516,7 @@ var panel_QuestionRowModel = /** @class */ (function (_super) {
36493
36516
  _this.stopLazyRendering();
36494
36517
  }
36495
36518
  };
36496
- setTimeout(function () {
36519
+ this.lazyRenderingTimeout = setTimeout(function () {
36497
36520
  if (!!_this._scrollableParent &&
36498
36521
  !!_this._scrollableParent.addEventListener) {
36499
36522
  _this._scrollableParent.addEventListener("scroll", _this._updateVisibility);
@@ -36513,6 +36536,7 @@ var panel_QuestionRowModel = /** @class */ (function (_super) {
36513
36536
  !!this._scrollableParent.removeEventListener) {
36514
36537
  this._scrollableParent.removeEventListener("scroll", this._updateVisibility);
36515
36538
  }
36539
+ clearTimeout(this.lazyRenderingTimeout);
36516
36540
  this._scrollableParent = undefined;
36517
36541
  this._updateVisibility = undefined;
36518
36542
  };
@@ -44523,6 +44547,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
44523
44547
  this.isCompleted = false;
44524
44548
  this.isCompletedBefore = false;
44525
44549
  this.isLoading = false;
44550
+ this.skippedPages = [];
44526
44551
  this.completedByTriggers = undefined;
44527
44552
  if (clearData) {
44528
44553
  this.setDataCore(null, true);
@@ -44859,20 +44884,14 @@ var survey_SurveyModel = /** @class */ (function (_super) {
44859
44884
  keys = q.getValue();
44860
44885
  }
44861
44886
  }
44862
- this.checkTriggers(keys, false, false, true, q.name);
44863
- this.currentSingleElement = questions[index + 1];
44887
+ this.checkTriggers(keys, true, false, true, q.name);
44888
+ if (q === this.currentSingleElement) {
44889
+ this.currentSingleElement = questions[index + 1];
44890
+ }
44864
44891
  return true;
44865
44892
  };
44866
44893
  SurveyModel.prototype.performPrevious = function () {
44867
- var q = this.currentSingleElement;
44868
- if (!q)
44869
- return this.prevPage();
44870
- var questions = this.getSingleElements();
44871
- var index = questions.indexOf(q);
44872
- if (index === 0)
44873
- return false;
44874
- this.currentSingleElement = questions[index - 1];
44875
- return true;
44894
+ return this.prevPage();
44876
44895
  };
44877
44896
  SurveyModel.prototype.hasErrorsOnNavigate = function (doComplete) {
44878
44897
  var _this = this;
@@ -45168,22 +45187,46 @@ var survey_SurveyModel = /** @class */ (function (_super) {
45168
45187
  * @see nextPage
45169
45188
  */
45170
45189
  SurveyModel.prototype.prevPage = function () {
45171
- var _this = this;
45172
- if (this.currentSingleElement)
45173
- return this.performPrevious();
45174
45190
  if (this.isFirstPage || this.state === "starting")
45175
45191
  return false;
45176
45192
  this.resetNavigationButton();
45177
- var skipped = this.skippedPages.find(function (sp) { return sp.to == _this.currentPage; });
45178
- if (skipped) {
45179
- this.currentPage = skipped.from;
45193
+ var curElement = this.currentSingleElement;
45194
+ if (this.doSkipOnPrevPage(curElement))
45195
+ return true;
45196
+ if (curElement)
45197
+ return this.prevPageSingleElement(curElement);
45198
+ var vPages = this.visiblePages;
45199
+ var index = vPages.indexOf(this.currentPage);
45200
+ this.currentPage = vPages[index - 1];
45201
+ return true;
45202
+ };
45203
+ SurveyModel.prototype.doSkipOnPrevPage = function (curElement) {
45204
+ var toEl = curElement || this.currentPage;
45205
+ var skipped = this.skippedPages.find(function (sp) { return sp.to === toEl; });
45206
+ var elTo = undefined;
45207
+ if (!!skipped) {
45180
45208
  this.skippedPages.splice(this.skippedPages.indexOf(skipped), 1);
45209
+ var el = skipped.from;
45210
+ if (!el.isDisposed && el.isVisible) {
45211
+ elTo = el;
45212
+ }
45181
45213
  }
45182
- else {
45183
- var vPages = this.visiblePages;
45184
- var index = vPages.indexOf(this.currentPage);
45185
- this.currentPage = vPages[index - 1];
45214
+ if (!!elTo) {
45215
+ if (!!curElement) {
45216
+ this.currentSingleElement = elTo;
45217
+ }
45218
+ else {
45219
+ this.currentPage = elTo;
45220
+ }
45186
45221
  }
45222
+ return !!elTo;
45223
+ };
45224
+ SurveyModel.prototype.prevPageSingleElement = function (curElement) {
45225
+ var questions = this.getSingleElements();
45226
+ var index = questions.indexOf(curElement);
45227
+ if (index <= 0)
45228
+ return false;
45229
+ this.currentSingleElement = questions[index - 1];
45187
45230
  return true;
45188
45231
  };
45189
45232
  /**
@@ -45451,8 +45494,13 @@ var survey_SurveyModel = /** @class */ (function (_super) {
45451
45494
  if (!this.currentPage && this.visiblePageCount > 0) {
45452
45495
  this.currentPage = this.visiblePages[0];
45453
45496
  }
45497
+ if (this.isShowingPreview) {
45498
+ this.pages.forEach(function (page) {
45499
+ page.onFirstRendering();
45500
+ });
45501
+ }
45454
45502
  this.pages.forEach(function (page) {
45455
- if (page.hasShown) {
45503
+ if (page.wasRendered) {
45456
45504
  page.updateElementCss(true);
45457
45505
  }
45458
45506
  });
@@ -45536,6 +45584,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
45536
45584
  SurveyModel.prototype.onQuestionsOnPageModeChanged = function (oldValue) {
45537
45585
  if (this.isShowingPreview || this.isDesignMode)
45538
45586
  return;
45587
+ this.skippedPages = [];
45539
45588
  this.currentSingleElement = undefined;
45540
45589
  if (oldValue === "singlePage") {
45541
45590
  this.updatePagesContainer();
@@ -46876,8 +46925,11 @@ var survey_SurveyModel = /** @class */ (function (_super) {
46876
46925
  if (visibleOnly === void 0) { visibleOnly = false; }
46877
46926
  if (includeDesignTime === void 0) { includeDesignTime = false; }
46878
46927
  if (includeNested === void 0) { includeNested = false; }
46879
- if (includeNested)
46928
+ if (includeNested) {
46880
46929
  includeDesignTime = false;
46930
+ var pages = visibleOnly ? this.visiblePages : this.pages;
46931
+ pages.forEach(function (page) { return page.onFirstRendering(); });
46932
+ }
46881
46933
  var res = [];
46882
46934
  for (var i = 0; i < this.pages.length; i++) {
46883
46935
  this.pages[i].addQuestionsToList(res, visibleOnly, includeDesignTime);
@@ -48934,7 +48986,8 @@ var survey_SurveyModel = /** @class */ (function (_super) {
48934
48986
  if (oldQuestion === question)
48935
48987
  return false;
48936
48988
  this.focusingQuestionInfo = { question: question, onError: onError };
48937
- this.skippedPages.push({ from: this.currentPage, to: question.page });
48989
+ var curElement = this.currentSingleElement;
48990
+ this.skippedPages.push({ from: curElement || this.currentPage, to: curElement ? question : question.page });
48938
48991
  var isNeedWaitForPageRendered = this.activePage !== question.page && !question.page.isStartPage;
48939
48992
  if (isNeedWaitForPageRendered) {
48940
48993
  this.currentPage = question.page;
@@ -55714,7 +55767,7 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
55714
55767
  _this.updateRemainingCharacterCounter(event.target.value);
55715
55768
  };
55716
55769
  _this.readOnlyBlocker = function (event) {
55717
- if (_this.isReadOnlyAttr) {
55770
+ if (_this.isReadOnlyAttr && ["color", "range"].indexOf(_this.inputType) > -1) {
55718
55771
  event.preventDefault();
55719
55772
  return true;
55720
55773
  }
@@ -56110,6 +56163,12 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
56110
56163
  enumerable: false,
56111
56164
  configurable: true
56112
56165
  });
56166
+ QuestionTextModel.prototype.convertToCorrectValue = function (val) {
56167
+ if (val !== undefined && val !== null && typeof val !== "string" && !this.maskTypeIsEmpty && this.maskSettings.saveMaskedValue) {
56168
+ return this.maskInstance.getMaskedValue(val);
56169
+ }
56170
+ return _super.prototype.convertToCorrectValue.call(this, val);
56171
+ };
56113
56172
  QuestionTextModel.prototype.onChangeQuestionValue = function (newValue) {
56114
56173
  _super.prototype.onChangeQuestionValue.call(this, newValue);
56115
56174
  this.updateInputValue();
@@ -56120,12 +56179,7 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
56120
56179
  this._inputValue = _value;
56121
56180
  }
56122
56181
  else if (this.maskSettings.saveMaskedValue) {
56123
- if (!_value) {
56124
- this._inputValue = this.maskInstance.getMaskedValue("");
56125
- }
56126
- else {
56127
- this.inputValue = _value;
56128
- }
56182
+ this._inputValue = (_value !== undefined && _value !== null) ? _value : this.maskInstance.getMaskedValue("");
56129
56183
  }
56130
56184
  else {
56131
56185
  this._inputValue = this.maskInstance.getMaskedValue(_value);
@@ -58380,11 +58434,8 @@ var question_checkbox_QuestionCheckboxModel = /** @class */ (function (_super) {
58380
58434
  this.isAllSelected = !this.isAllSelected;
58381
58435
  };
58382
58436
  QuestionCheckboxModel.prototype.allElementsSelected = function () {
58383
- var noneItems = this.getNoneItems();
58384
- for (var i = 0; i < noneItems.length; i++) {
58385
- if (this.isItemSelected(noneItems[i]))
58386
- return false;
58387
- }
58437
+ if (this.isNoneItemsSelected())
58438
+ return false;
58388
58439
  var items = this.getVisibleEnableItems();
58389
58440
  if (items.length === 0)
58390
58441
  return false;
@@ -58403,6 +58454,14 @@ var question_checkbox_QuestionCheckboxModel = /** @class */ (function (_super) {
58403
58454
  }
58404
58455
  return true;
58405
58456
  };
58457
+ QuestionCheckboxModel.prototype.isNoneItemsSelected = function () {
58458
+ var noneItems = this.getNoneItems();
58459
+ for (var i = 0; i < noneItems.length; i++) {
58460
+ if (this.isItemSelected(noneItems[i]))
58461
+ return true;
58462
+ }
58463
+ return false;
58464
+ };
58406
58465
  /**
58407
58466
  * Selects all choice items, except "Other" and "None".
58408
58467
  *
@@ -58603,7 +58662,7 @@ var question_checkbox_QuestionCheckboxModel = /** @class */ (function (_super) {
58603
58662
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
58604
58663
  if (isOnValueChanged)
58605
58664
  return;
58606
- if (this.minSelectedChoices > 0 && this.checkMinSelectedChoicesUnreached()) {
58665
+ if (this.checkMinSelectedChoicesUnreached()) {
58607
58666
  var minError = new CustomError(this.getLocalizationFormatString("minSelectError", this.minSelectedChoices), this);
58608
58667
  errors.push(minError);
58609
58668
  }
@@ -58664,6 +58723,8 @@ var question_checkbox_QuestionCheckboxModel = /** @class */ (function (_super) {
58664
58723
  return false;
58665
58724
  var val = this.value;
58666
58725
  var len = !Array.isArray(val) ? 0 : val.length;
58726
+ if (len === 1 && this.isNoneItemsSelected())
58727
+ return false;
58667
58728
  return len < this.minSelectedChoices;
58668
58729
  };
58669
58730
  QuestionCheckboxModel.prototype.getItemClassCore = function (item, options) {
@@ -69245,6 +69306,7 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
69245
69306
  cachedValues[question_paneldynamic_QuestionPanelDynamicItem.ParentItemVariableName] = this.parent.getValue();
69246
69307
  }
69247
69308
  this.isValueChangingInternally = true;
69309
+ var visibleIndex = 0;
69248
69310
  for (var i = 0; i < panels.length; i++) {
69249
69311
  var panel = panels[i];
69250
69312
  var panelValues = this.getPanelItemData(panel.data);
@@ -69253,9 +69315,13 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
69253
69315
  var panelName = question_paneldynamic_QuestionPanelDynamicItem.ItemVariableName;
69254
69316
  newValues[panelName] = panelValues;
69255
69317
  newValues[question_paneldynamic_QuestionPanelDynamicItem.IndexVariableName.toLowerCase()] = i;
69318
+ newValues[question_paneldynamic_QuestionPanelDynamicItem.VisibleIndexVariableName.toLowerCase()] = visibleIndex;
69256
69319
  var newProps = helpers_Helpers.createCopy(properties);
69257
69320
  newProps[panelName] = panel;
69258
69321
  panel.runCondition(newValues, newProps);
69322
+ if (panel.isVisible) {
69323
+ visibleIndex++;
69324
+ }
69259
69325
  }
69260
69326
  this.isValueChangingInternally = false;
69261
69327
  };
@@ -73075,9 +73141,9 @@ Serializer.addClass("currencymask", [
73075
73141
 
73076
73142
  var Version;
73077
73143
  var ReleaseDate;
73078
- Version = "" + "1.12.35";
73144
+ Version = "" + "1.12.37";
73079
73145
  settings.version = Version;
73080
- ReleaseDate = "" + "2025-05-06";
73146
+ ReleaseDate = "" + "2025-05-20";
73081
73147
  function checkLibraryVersion(ver, libraryName) {
73082
73148
  if (Version != ver) {
73083
73149
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -83907,7 +83973,7 @@ var row_SurveyRow = /** @class */ (function (_super) {
83907
83973
  }
83908
83974
  if (!!el && !this.row.isNeedRender) {
83909
83975
  var rowContainerDiv = el;
83910
- setTimeout(function () {
83976
+ this.lazyRenderingTimeout = setTimeout(function () {
83911
83977
  _this.row.startLazyRendering(rowContainerDiv);
83912
83978
  }, 10);
83913
83979
  }
@@ -83925,6 +83991,7 @@ var row_SurveyRow = /** @class */ (function (_super) {
83925
83991
  return true;
83926
83992
  };
83927
83993
  SurveyRow.prototype.stopLazyRendering = function () {
83994
+ clearTimeout(this.lazyRenderingTimeout);
83928
83995
  this.row.stopLazyRendering();
83929
83996
  this.row.isNeedRender = !this.row.isLazyRendering();
83930
83997
  };