survey-react 1.9.80 → 1.9.81

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/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.80
2
+ * surveyjs - Survey JavaScript library v1.9.81
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -5073,7 +5073,11 @@ var modernCss = {
5073
5073
  cleanButtonSvg: "sv-dropdown_clean-button-svg",
5074
5074
  cleanButtonIconId: "icon-clear_16x16",
5075
5075
  controlValue: "sv-dropdown__value",
5076
- controlInputFieldComponent: "sv_dropdown_control__input-field-component"
5076
+ controlInputFieldComponent: "sv_dropdown_control__input-field-component",
5077
+ itemSmiley: "sv-rating__item-smiley",
5078
+ itemStar: "sv-rating__item-star",
5079
+ itemSmileySelected: "sv-rating__item-smiley--selected",
5080
+ itemStarSelected: "sv-rating__item-star--selected"
5077
5081
  },
5078
5082
  comment: {
5079
5083
  root: "sv-comment",
@@ -5382,6 +5386,8 @@ var defaultStandardCss = {
5382
5386
  paneldynamic: {
5383
5387
  root: "sv_panel_dynamic",
5384
5388
  title: "sv_p_title",
5389
+ header: "sv-paneldynamic__header sv_header",
5390
+ headerTab: "sv-paneldynamic__header-tab",
5385
5391
  button: "",
5386
5392
  buttonAdd: "sv-paneldynamic__add-btn",
5387
5393
  buttonRemove: "sv_p_remove_btn",
@@ -5454,6 +5460,10 @@ var defaultStandardCss = {
5454
5460
  minText: "sv_q_rating_min_text",
5455
5461
  itemText: "sv_q_rating_item_text",
5456
5462
  maxText: "sv_q_rating_max_text",
5463
+ itemStar: "sv_q_rating__item-star",
5464
+ itemStarSelected: "sv_q_rating__item-star--selected",
5465
+ itemSmiley: "sv_q_rating__item-smiley",
5466
+ itemSmileySelected: "sv_q_rating__item-smiley--selected",
5457
5467
  },
5458
5468
  text: {
5459
5469
  root: "sv_q_text_root",
@@ -5626,6 +5636,8 @@ var defaultV2Css = {
5626
5636
  root: "sd-paneldynamic",
5627
5637
  navigation: "sd-paneldynamic__navigation",
5628
5638
  title: "sd-title sd-element__title sd-question__title",
5639
+ header: "sd-paneldynamic__header sd-element__header",
5640
+ headerTab: "sd-paneldynamic__header-tab",
5629
5641
  button: "sd-action sd-paneldynamic__btn",
5630
5642
  buttonRemove: "sd-action--negative sd-paneldynamic__remove-btn",
5631
5643
  buttonAdd: "sd-paneldynamic__add-btn",
@@ -6206,6 +6218,443 @@ var DefaultTitleModel = /** @class */ (function () {
6206
6218
 
6207
6219
 
6208
6220
 
6221
+ /***/ }),
6222
+
6223
+ /***/ "./src/drag-drop-helper-v1.ts":
6224
+ /*!************************************!*\
6225
+ !*** ./src/drag-drop-helper-v1.ts ***!
6226
+ \************************************/
6227
+ /*! exports provided: DragDropInfo */
6228
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
6229
+
6230
+ "use strict";
6231
+ __webpack_require__.r(__webpack_exports__);
6232
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropInfo", function() { return DragDropInfo; });
6233
+ var DragDropInfo = /** @class */ (function () {
6234
+ function DragDropInfo(source, target, nestedPanelDepth) {
6235
+ if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }
6236
+ this.source = source;
6237
+ this.target = target;
6238
+ this.nestedPanelDepth = nestedPanelDepth;
6239
+ }
6240
+ return DragDropInfo;
6241
+ }());
6242
+
6243
+
6244
+
6245
+ /***/ }),
6246
+
6247
+ /***/ "./src/drag-drop-page-helper-v1.ts":
6248
+ /*!*****************************************!*\
6249
+ !*** ./src/drag-drop-page-helper-v1.ts ***!
6250
+ \*****************************************/
6251
+ /*! exports provided: DragDropPageHelperV1 */
6252
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
6253
+
6254
+ "use strict";
6255
+ __webpack_require__.r(__webpack_exports__);
6256
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropPageHelperV1", function() { return DragDropPageHelperV1; });
6257
+ /* harmony import */ var _drag_drop_helper_v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag-drop-helper-v1 */ "./src/drag-drop-helper-v1.ts");
6258
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
6259
+
6260
+
6261
+ var DragDropPageHelperV1 = /** @class */ (function () {
6262
+ function DragDropPageHelperV1(page) {
6263
+ this.page = page;
6264
+ }
6265
+ DragDropPageHelperV1.prototype.getDragDropInfo = function () { return this.dragDropInfo; };
6266
+ DragDropPageHelperV1.prototype.dragDropStart = function (src, target, nestedPanelDepth) {
6267
+ if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }
6268
+ this.dragDropInfo = new _drag_drop_helper_v1__WEBPACK_IMPORTED_MODULE_0__["DragDropInfo"](src, target, nestedPanelDepth);
6269
+ };
6270
+ DragDropPageHelperV1.prototype.dragDropMoveTo = function (destination, isBottom, isEdge) {
6271
+ if (isBottom === void 0) { isBottom = false; }
6272
+ if (isEdge === void 0) { isEdge = false; }
6273
+ if (!this.dragDropInfo)
6274
+ return false;
6275
+ this.dragDropInfo.destination = destination;
6276
+ this.dragDropInfo.isBottom = isBottom;
6277
+ this.dragDropInfo.isEdge = isEdge;
6278
+ this.correctDragDropInfo(this.dragDropInfo);
6279
+ if (!this.dragDropCanDropTagert())
6280
+ return false;
6281
+ if (!this.dragDropCanDropSource() || !this.dragDropAllowFromSurvey()) {
6282
+ if (!!this.dragDropInfo.source) {
6283
+ var row = this.page.dragDropFindRow(this.dragDropInfo.target);
6284
+ this.page.updateRowsRemoveElementFromRow(this.dragDropInfo.target, row);
6285
+ }
6286
+ return false;
6287
+ }
6288
+ this.page.dragDropAddTarget(this.dragDropInfo);
6289
+ return true;
6290
+ };
6291
+ DragDropPageHelperV1.prototype.correctDragDropInfo = function (dragDropInfo) {
6292
+ if (!dragDropInfo.destination)
6293
+ return;
6294
+ var panel = dragDropInfo.destination.isPanel
6295
+ ? dragDropInfo.destination
6296
+ : null;
6297
+ if (!panel)
6298
+ return;
6299
+ if (!dragDropInfo.target.isLayoutTypeSupported(panel.getChildrenLayoutType())) {
6300
+ dragDropInfo.isEdge = true;
6301
+ }
6302
+ };
6303
+ DragDropPageHelperV1.prototype.dragDropAllowFromSurvey = function () {
6304
+ var dest = this.dragDropInfo.destination;
6305
+ if (!dest || !this.page.survey)
6306
+ return true;
6307
+ var insertBefore = null;
6308
+ var insertAfter = null;
6309
+ var parent = dest.isPage || (!this.dragDropInfo.isEdge && dest.isPanel)
6310
+ ? dest
6311
+ : dest.parent;
6312
+ if (!dest.isPage) {
6313
+ var container = dest.parent;
6314
+ if (!!container) {
6315
+ var elements = container.elements;
6316
+ var index = elements.indexOf(dest);
6317
+ if (index > -1) {
6318
+ insertBefore = dest;
6319
+ insertAfter = dest;
6320
+ if (this.dragDropInfo.isBottom) {
6321
+ insertBefore =
6322
+ index < elements.length - 1 ? elements[index + 1] : null;
6323
+ }
6324
+ else {
6325
+ insertAfter = index > 0 ? elements[index - 1] : null;
6326
+ }
6327
+ }
6328
+ }
6329
+ }
6330
+ var options = {
6331
+ allow: true,
6332
+ target: this.dragDropInfo.target,
6333
+ source: this.dragDropInfo.source,
6334
+ parent: parent,
6335
+ insertAfter: insertAfter,
6336
+ insertBefore: insertBefore,
6337
+ };
6338
+ return this.page.survey.dragAndDropAllow(options);
6339
+ };
6340
+ DragDropPageHelperV1.prototype.dragDropFinish = function (isCancel) {
6341
+ if (isCancel === void 0) { isCancel = false; }
6342
+ if (!this.dragDropInfo)
6343
+ return;
6344
+ var target = this.dragDropInfo.target;
6345
+ var src = this.dragDropInfo.source;
6346
+ var dest = this.dragDropInfo.destination;
6347
+ var row = this.page.dragDropFindRow(target);
6348
+ var targetIndex = this.dragDropGetElementIndex(target, row);
6349
+ this.page.updateRowsRemoveElementFromRow(target, row);
6350
+ var elementsToSetSWNL = [];
6351
+ var elementsToResetSWNL = [];
6352
+ if (!isCancel && !!row) {
6353
+ var isSamePanel = false;
6354
+ if (this.page.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2) {
6355
+ var srcRow = src && src.parent && src.parent.dragDropFindRow(src);
6356
+ if (row.panel.elements[targetIndex] && row.panel.elements[targetIndex].startWithNewLine && row.elements.length > 1 && row.panel.elements[targetIndex] === dest) {
6357
+ elementsToSetSWNL.push(target);
6358
+ elementsToResetSWNL.push(row.panel.elements[targetIndex]);
6359
+ }
6360
+ if (target.startWithNewLine && row.elements.length > 1 && (!row.panel.elements[targetIndex] || !row.panel.elements[targetIndex].startWithNewLine)) {
6361
+ elementsToResetSWNL.push(target);
6362
+ }
6363
+ if (srcRow && srcRow.elements[0] === src && srcRow.elements[1]) {
6364
+ elementsToSetSWNL.push(srcRow.elements[1]);
6365
+ }
6366
+ if (row.elements.length <= 1) {
6367
+ elementsToSetSWNL.push(target);
6368
+ }
6369
+ if (target.startWithNewLine && row.elements.length > 1 && row.elements[0] !== dest) {
6370
+ elementsToResetSWNL.push(target);
6371
+ }
6372
+ }
6373
+ if (!!src && !!src.parent) {
6374
+ this.page.survey.startMovingQuestion();
6375
+ isSamePanel = row.panel == src.parent;
6376
+ if (isSamePanel) {
6377
+ row.panel.dragDropMoveElement(src, target, targetIndex);
6378
+ targetIndex = -1;
6379
+ }
6380
+ else {
6381
+ src.parent.removeElement(src);
6382
+ }
6383
+ }
6384
+ if (targetIndex > -1) {
6385
+ row.panel.addElement(target, targetIndex);
6386
+ }
6387
+ this.page.survey.stopMovingQuestion();
6388
+ }
6389
+ elementsToSetSWNL.map(function (e) { e.startWithNewLine = true; });
6390
+ elementsToResetSWNL.map(function (e) { e.startWithNewLine = false; });
6391
+ this.dragDropInfo = null;
6392
+ return !isCancel ? target : null;
6393
+ };
6394
+ DragDropPageHelperV1.prototype.dragDropGetElementIndex = function (target, row) {
6395
+ if (!row)
6396
+ return -1;
6397
+ var index = row.elements.indexOf(target);
6398
+ if (row.index == 0)
6399
+ return index;
6400
+ var prevRow = row.panel.rows[row.index - 1];
6401
+ var prevElement = prevRow.elements[prevRow.elements.length - 1];
6402
+ return index + row.panel.elements.indexOf(prevElement) + 1;
6403
+ };
6404
+ DragDropPageHelperV1.prototype.dragDropCanDropTagert = function () {
6405
+ var destination = this.dragDropInfo.destination;
6406
+ if (!destination || destination.isPage)
6407
+ return true;
6408
+ return this.dragDropCanDropCore(this.dragDropInfo.target, destination);
6409
+ };
6410
+ DragDropPageHelperV1.prototype.dragDropCanDropSource = function () {
6411
+ var source = this.dragDropInfo.source;
6412
+ if (!source)
6413
+ return true;
6414
+ var destination = this.dragDropInfo.destination;
6415
+ if (!this.dragDropCanDropCore(source, destination))
6416
+ return false;
6417
+ if (this.page.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2) {
6418
+ var rowSource = this.page.dragDropFindRow(source);
6419
+ var rowDestination = this.page.dragDropFindRow(destination);
6420
+ if (rowSource !== rowDestination) {
6421
+ if (!source.startWithNewLine && destination.startWithNewLine)
6422
+ return true;
6423
+ if (source.startWithNewLine && !destination.startWithNewLine) {
6424
+ return true;
6425
+ }
6426
+ }
6427
+ var row = this.page.dragDropFindRow(destination);
6428
+ if (row && row.elements.length == 1)
6429
+ return true;
6430
+ }
6431
+ return this.dragDropCanDropNotNext(source, destination, this.dragDropInfo.isEdge, this.dragDropInfo.isBottom);
6432
+ };
6433
+ DragDropPageHelperV1.prototype.dragDropCanDropCore = function (target, destination) {
6434
+ if (!destination)
6435
+ return true;
6436
+ if (this.dragDropIsSameElement(destination, target))
6437
+ return false;
6438
+ if (target.isPanel) {
6439
+ var pnl = target;
6440
+ if (pnl.containsElement(destination) ||
6441
+ !!pnl.getElementByName(destination.name))
6442
+ return false;
6443
+ }
6444
+ return true;
6445
+ };
6446
+ DragDropPageHelperV1.prototype.dragDropCanDropNotNext = function (source, destination, isEdge, isBottom) {
6447
+ if (!destination || (destination.isPanel && !isEdge))
6448
+ return true;
6449
+ if (typeof source.parent === "undefined" || source.parent !== destination.parent)
6450
+ return true;
6451
+ var pnl = source.parent;
6452
+ var srcIndex = pnl.elements.indexOf(source);
6453
+ var destIndex = pnl.elements.indexOf(destination);
6454
+ if (destIndex < srcIndex && !isBottom)
6455
+ destIndex--;
6456
+ if (isBottom)
6457
+ destIndex++;
6458
+ return srcIndex < destIndex
6459
+ ? destIndex - srcIndex > 1
6460
+ : srcIndex - destIndex > 0;
6461
+ };
6462
+ DragDropPageHelperV1.prototype.dragDropIsSameElement = function (el1, el2) {
6463
+ return el1 == el2 || el1.name == el2.name;
6464
+ };
6465
+ return DragDropPageHelperV1;
6466
+ }());
6467
+
6468
+
6469
+
6470
+ /***/ }),
6471
+
6472
+ /***/ "./src/drag-drop-panel-helper-v1.ts":
6473
+ /*!******************************************!*\
6474
+ !*** ./src/drag-drop-panel-helper-v1.ts ***!
6475
+ \******************************************/
6476
+ /*! exports provided: DragDropPanelHelperV1 */
6477
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
6478
+
6479
+ "use strict";
6480
+ __webpack_require__.r(__webpack_exports__);
6481
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropPanelHelperV1", function() { return DragDropPanelHelperV1; });
6482
+ /* harmony import */ var _drag_drop_helper_v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag-drop-helper-v1 */ "./src/drag-drop-helper-v1.ts");
6483
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
6484
+
6485
+
6486
+ var DragDropPanelHelperV1 = /** @class */ (function () {
6487
+ function DragDropPanelHelperV1(panel) {
6488
+ this.panel = panel;
6489
+ }
6490
+ DragDropPanelHelperV1.prototype.dragDropAddTarget = function (dragDropInfo) {
6491
+ var prevRow = this.dragDropFindRow(dragDropInfo.target);
6492
+ if (this.dragDropAddTargetToRow(dragDropInfo, prevRow)) {
6493
+ this.panel.updateRowsRemoveElementFromRow(dragDropInfo.target, prevRow);
6494
+ }
6495
+ };
6496
+ DragDropPanelHelperV1.prototype.dragDropFindRow = function (findElement) {
6497
+ if (!findElement || findElement.isPage)
6498
+ return null;
6499
+ var element = findElement;
6500
+ var rows = this.panel.rows;
6501
+ for (var i = 0; i < rows.length; i++) {
6502
+ if (rows[i].elements.indexOf(element) > -1)
6503
+ return rows[i];
6504
+ }
6505
+ for (var i = 0; i < this.panel.elements.length; i++) {
6506
+ var pnl = this.panel.elements[i].getPanel();
6507
+ if (!pnl)
6508
+ continue;
6509
+ var row = pnl.dragDropFindRow(element);
6510
+ if (!!row)
6511
+ return row;
6512
+ }
6513
+ return null;
6514
+ };
6515
+ DragDropPanelHelperV1.prototype.dragDropMoveElement = function (src, target, targetIndex) {
6516
+ var srcIndex = src.parent.elements.indexOf(src);
6517
+ if (targetIndex > srcIndex) {
6518
+ targetIndex--;
6519
+ }
6520
+ this.panel.removeElement(src);
6521
+ this.panel.addElement(target, targetIndex);
6522
+ };
6523
+ DragDropPanelHelperV1.prototype.updateRowsOnElementAdded = function (element, index, dragDropInfo, thisElement) {
6524
+ if (!dragDropInfo) {
6525
+ dragDropInfo = new _drag_drop_helper_v1__WEBPACK_IMPORTED_MODULE_0__["DragDropInfo"](null, element);
6526
+ dragDropInfo.target = element;
6527
+ dragDropInfo.isEdge = this.panel.elements.length > 1;
6528
+ if (this.panel.elements.length < 2) {
6529
+ dragDropInfo.destination = thisElement;
6530
+ }
6531
+ else {
6532
+ dragDropInfo.isBottom = index > 0;
6533
+ if (index == 0) {
6534
+ dragDropInfo.destination = this.panel.elements[1];
6535
+ }
6536
+ else {
6537
+ dragDropInfo.destination = this.panel.elements[index - 1];
6538
+ }
6539
+ }
6540
+ }
6541
+ this.dragDropAddTargetToRow(dragDropInfo, null);
6542
+ };
6543
+ DragDropPanelHelperV1.prototype.dragDropAddTargetToRow = function (dragDropInfo, prevRow) {
6544
+ if (!dragDropInfo.destination)
6545
+ return true;
6546
+ if (this.dragDropAddTargetToEmptyPanel(dragDropInfo))
6547
+ return true;
6548
+ var dest = dragDropInfo.destination;
6549
+ var destRow = this.dragDropFindRow(dest);
6550
+ if (!destRow)
6551
+ return true;
6552
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2 && this.panel.isDesignMode) {
6553
+ if (destRow.elements.length > 1)
6554
+ return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6555
+ else
6556
+ return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6557
+ }
6558
+ if (!dragDropInfo.target.startWithNewLine)
6559
+ return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6560
+ return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6561
+ };
6562
+ DragDropPanelHelperV1.prototype.dragDropAddTargetToEmptyPanel = function (dragDropInfo) {
6563
+ if (dragDropInfo.destination.isPage) {
6564
+ this.dragDropAddTargetToEmptyPanelCore(this.panel.root, dragDropInfo.target, dragDropInfo.isBottom);
6565
+ return true;
6566
+ }
6567
+ var dest = dragDropInfo.destination;
6568
+ if (dest.isPanel && !dragDropInfo.isEdge) {
6569
+ var panel = dest;
6570
+ if (dragDropInfo.target["template"] === dest) {
6571
+ return false;
6572
+ }
6573
+ if (dragDropInfo.nestedPanelDepth < 0 ||
6574
+ dragDropInfo.nestedPanelDepth >= panel.depth) {
6575
+ this.dragDropAddTargetToEmptyPanelCore(dest, dragDropInfo.target, dragDropInfo.isBottom);
6576
+ return true;
6577
+ }
6578
+ }
6579
+ return false;
6580
+ };
6581
+ DragDropPanelHelperV1.prototype.dragDropAddTargetToExistingRow = function (dragDropInfo, destRow, prevRow) {
6582
+ var index = destRow.elements.indexOf(dragDropInfo.destination);
6583
+ if (index == 0 &&
6584
+ !dragDropInfo.isBottom) {
6585
+ if (this.panel.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2) {
6586
+ }
6587
+ else if (destRow.elements[0].startWithNewLine) {
6588
+ if (destRow.index > 0) {
6589
+ dragDropInfo.isBottom = true;
6590
+ destRow = destRow.panel.rows[destRow.index - 1];
6591
+ dragDropInfo.destination =
6592
+ destRow.elements[destRow.elements.length - 1];
6593
+ return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6594
+ }
6595
+ else {
6596
+ return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6597
+ }
6598
+ }
6599
+ }
6600
+ var prevRowIndex = -1;
6601
+ if (prevRow == destRow) {
6602
+ prevRowIndex = destRow.elements.indexOf(dragDropInfo.target);
6603
+ }
6604
+ if (dragDropInfo.isBottom)
6605
+ index++;
6606
+ var srcRow = this.panel.findRowByElement(dragDropInfo.source);
6607
+ if (srcRow == destRow &&
6608
+ srcRow.elements.indexOf(dragDropInfo.source) == index)
6609
+ return false;
6610
+ if (index == prevRowIndex)
6611
+ return false;
6612
+ if (prevRowIndex > -1) {
6613
+ destRow.elements.splice(prevRowIndex, 1);
6614
+ if (prevRowIndex < index)
6615
+ index--;
6616
+ }
6617
+ destRow.elements.splice(index, 0, dragDropInfo.target);
6618
+ destRow.updateVisible();
6619
+ return prevRowIndex < 0;
6620
+ };
6621
+ DragDropPanelHelperV1.prototype.dragDropAddTargetToNewRow = function (dragDropInfo, destRow, prevRow) {
6622
+ var targetRow = destRow.panel.createRowAndSetLazy(destRow.panel.rows.length);
6623
+ if (this.panel.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2) {
6624
+ targetRow.setIsLazyRendering(false);
6625
+ }
6626
+ targetRow.addElement(dragDropInfo.target);
6627
+ var index = destRow.index;
6628
+ if (dragDropInfo.isBottom) {
6629
+ index++;
6630
+ }
6631
+ //same row
6632
+ if (!!prevRow && prevRow.panel == targetRow.panel && prevRow.index == index)
6633
+ return false;
6634
+ var srcRow = this.panel.findRowByElement(dragDropInfo.source);
6635
+ if (!!srcRow &&
6636
+ srcRow.panel == targetRow.panel &&
6637
+ srcRow.elements.length == 1 &&
6638
+ srcRow.index == index)
6639
+ return false;
6640
+ destRow.panel.rows.splice(index, 0, targetRow);
6641
+ return true;
6642
+ };
6643
+ DragDropPanelHelperV1.prototype.dragDropAddTargetToEmptyPanelCore = function (panel, target, isBottom) {
6644
+ var targetRow = panel.createRow();
6645
+ targetRow.addElement(target);
6646
+ if (panel.elements.length == 0 || isBottom) {
6647
+ panel.rows.push(targetRow);
6648
+ }
6649
+ else {
6650
+ panel.rows.splice(0, 0, targetRow);
6651
+ }
6652
+ };
6653
+ return DragDropPanelHelperV1;
6654
+ }());
6655
+
6656
+
6657
+
6209
6658
  /***/ }),
6210
6659
 
6211
6660
  /***/ "./src/dragdrop/choices.ts":
@@ -6289,7 +6738,7 @@ var DragDropChoices = /** @class */ (function (_super) {
6289
6738
  };
6290
6739
  DragDropChoices.prototype.createImagePickerShortcut = function (item, text, draggedElementNode, event) {
6291
6740
  var draggedElementShortcut = document.createElement("div");
6292
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);\n padding: 4px;\n border-radius: 4px;\n background: white;\n ";
6741
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n filter: drop-shadow(0px 2px 6px rgba(0, 0, 0, 0.1));\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);\n padding: 4px;\n border-radius: 4px;\n background: white;\n ";
6293
6742
  var itemValueNode = draggedElementNode.closest("[data-sv-drop-target-item-value]");
6294
6743
  var controlsNode = itemValueNode.querySelector(".svc-image-item-value-controls");
6295
6744
  var imageContainerNode = itemValueNode.querySelector(".sd-imagepicker__image-container");
@@ -6874,7 +7323,7 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
6874
7323
  var row = (draggedElementNode
6875
7324
  .closest("[data-sv-drop-target-matrix-row]"));
6876
7325
  var clone = (row.cloneNode(isDeepClone));
6877
- clone.style.cssText = "\n box-shadow: rgb(0 0 0 / 10%) 0px 8px 16px;\n background-color: white;\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n align-items: center;\n line-height: 0;\n width: " + row.offsetWidth + "px;\n ";
7326
+ clone.style.cssText = "\n filter: drop-shadow(0px 2px 6px rgba(0, 0, 0, 0.1));\n box-shadow: rgb(0 0 0 / 10%) 0px 8px 16px;\n background-color: white;\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n align-items: center;\n line-height: 0;\n width: " + row.offsetWidth + "px;\n ";
6878
7327
  clone.classList.remove("sv-matrix__drag-drop--moveup");
6879
7328
  clone.classList.remove("sv-matrix__drag-drop--movedown");
6880
7329
  this.draggedElement.isDragDropMoveDown = false;
@@ -7041,7 +7490,7 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7041
7490
  DragDropRankingChoices.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
7042
7491
  var draggedElementShortcut = document.createElement("div");
7043
7492
  draggedElementShortcut.className = this.shortcutClass + " sv-ranking-shortcut";
7044
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n border-radius: 36px;\n min-width: 100px;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);\n background-color: var(--background, white);\n font-family: var(--font-family, $font-family);\n ";
7493
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n border-radius: 36px;\n min-width: 100px;\n filter: drop-shadow(0px 2px 6px rgba(0, 0, 0, 0.1));\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);\n background-color: var(--background, white);\n font-family: var(--font-family, $font-family);\n ";
7045
7494
  var isDeepClone = true;
7046
7495
  var clone = draggedElementNode.cloneNode(isDeepClone);
7047
7496
  draggedElementShortcut.appendChild(clone);
@@ -7257,6 +7706,18 @@ var DragDropSurveyElements = /** @class */ (function (_super) {
7257
7706
  new _jsonobject__WEBPACK_IMPORTED_MODULE_1__["JsonObject"]().toObject(json, newElement);
7258
7707
  return newElement;
7259
7708
  };
7709
+ DragDropSurveyElements.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7710
+ var ghostRow = dragOverNode.closest(".svc-row--ghost");
7711
+ if (!!ghostRow) {
7712
+ var ghostDataAttrSelector = "[data-sv-drop-target-survey-element='sv-drag-drop-ghost-survey-element-name']";
7713
+ var ghostNode = dragOverNode.closest(ghostDataAttrSelector) || dragOverNode.querySelector(ghostDataAttrSelector);
7714
+ if (!!ghostNode) {
7715
+ return ghostNode;
7716
+ }
7717
+ }
7718
+ var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
7719
+ return dropTargetNode;
7720
+ };
7260
7721
  DragDropSurveyElements.prototype.getDropTargetByDataAttributeValue = function (dataAttributeValue, dropTargetNode, event) {
7261
7722
  this.isEdge = this.calculateIsEdge(dropTargetNode, event.clientY);
7262
7723
  if (!dataAttributeValue) {
@@ -7982,10 +8443,12 @@ var DropdownListModel = /** @class */ (function (_super) {
7982
8443
  if (event.keyCode === 13 && this.question.searchEnabled && !this.inputString && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"] && !this._markdownMode && this.question.value) {
7983
8444
  this._popupModel.isVisible = false;
7984
8445
  this.onClear(event);
8446
+ this.question.survey.questionEditFinishCallback(this.question, event);
7985
8447
  }
7986
8448
  else {
7987
8449
  this.listModel.selectFocusedItem();
7988
8450
  this.onFocus(event);
8451
+ this.question.survey.questionEditFinishCallback(this.question, event);
7989
8452
  }
7990
8453
  event.preventDefault();
7991
8454
  event.stopPropagation();
@@ -8203,6 +8666,10 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8203
8666
  }
8204
8667
  return new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, undefined, this.listElementId);
8205
8668
  };
8669
+ DropdownMultiSelectListModel.prototype.resetFilterString = function () {
8670
+ _super.prototype.resetFilterString.call(this);
8671
+ this.inputString = null;
8672
+ };
8206
8673
  Object.defineProperty(DropdownMultiSelectListModel.prototype, "shouldResetAfterCancel", {
8207
8674
  get: function () {
8208
8675
  return _utils_devices__WEBPACK_IMPORTED_MODULE_5__["IsTouch"] && !this.closeOnSelect;
@@ -8604,7 +9071,7 @@ __webpack_require__.r(__webpack_exports__);
8604
9071
  /*!*************************************!*\
8605
9072
  !*** ./src/entries/chunks/model.ts ***!
8606
9073
  \*************************************/
8607
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices */
9074
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices */
8608
9075
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8609
9076
 
8610
9077
  "use strict";
@@ -8899,6 +9366,8 @@ __webpack_require__.r(__webpack_exports__);
8899
9366
 
8900
9367
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["createTOCListModel"]; });
8901
9368
 
9369
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["getTocRootCss"]; });
9370
+
8902
9371
  /* harmony import */ var _surveyProgress__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../../surveyProgress */ "./src/surveyProgress.ts");
8903
9372
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _surveyProgress__WEBPACK_IMPORTED_MODULE_56__["SurveyProgressModel"]; });
8904
9373
 
@@ -9046,7 +9515,7 @@ __webpack_require__.r(__webpack_exports__);
9046
9515
  // import "../../main.scss";
9047
9516
  //import "../../modern.scss";
9048
9517
  var Version;
9049
- Version = "" + "1.9.80";
9518
+ Version = "" + "1.9.81";
9050
9519
  function checkLibraryVersion(ver, libraryName) {
9051
9520
  if (Version != ver) {
9052
9521
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9151,7 +9620,7 @@ function checkLibraryVersion(ver, libraryName) {
9151
9620
  /*!**************************************!*\
9152
9621
  !*** ./src/entries/core-wo-model.ts ***!
9153
9622
  \**************************************/
9154
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9623
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9155
9624
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9156
9625
 
9157
9626
  "use strict";
@@ -9393,6 +9862,8 @@ __webpack_require__.r(__webpack_exports__);
9393
9862
 
9394
9863
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
9395
9864
 
9865
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
9866
+
9396
9867
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
9397
9868
 
9398
9869
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
@@ -9582,7 +10053,7 @@ __webpack_require__.r(__webpack_exports__);
9582
10053
  /*!*****************************!*\
9583
10054
  !*** ./src/entries/core.ts ***!
9584
10055
  \*****************************/
9585
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
10056
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9586
10057
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9587
10058
 
9588
10059
  "use strict";
@@ -9824,6 +10295,8 @@ __webpack_require__.r(__webpack_exports__);
9824
10295
 
9825
10296
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
9826
10297
 
10298
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
10299
+
9827
10300
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
9828
10301
 
9829
10302
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
@@ -10373,7 +10846,7 @@ __webpack_require__.r(__webpack_exports__);
10373
10846
  /*!******************************!*\
10374
10847
  !*** ./src/entries/react.ts ***!
10375
10848
  \******************************/
10376
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10849
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10377
10850
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10378
10851
 
10379
10852
  "use strict";
@@ -10615,6 +11088,8 @@ __webpack_require__.r(__webpack_exports__);
10615
11088
 
10616
11089
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
10617
11090
 
11091
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
11092
+
10618
11093
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
10619
11094
 
10620
11095
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
@@ -17538,13 +18013,6 @@ var JsonObjectProperty = /** @class */ (function () {
17538
18013
  return objType;
17539
18014
  return objType.replace(this.classNamePart, "");
17540
18015
  };
17541
- JsonObjectProperty.prototype.getClassName = function (className) {
17542
- if (className)
17543
- className = className.toLowerCase();
17544
- return this.classNamePart && className.indexOf(this.classNamePart) < 0
17545
- ? className + this.classNamePart
17546
- : className;
17547
- };
17548
18016
  Object.defineProperty(JsonObjectProperty.prototype, "choices", {
17549
18017
  /**
17550
18018
  * Depricated, please use getChoices
@@ -18868,17 +19336,27 @@ var JsonObject = /** @class */ (function () {
18868
19336
  };
18869
19337
  JsonObject.prototype.createNewObj = function (value, property) {
18870
19338
  var result = { newObj: null, error: null };
18871
- var className = value[JsonObject.typePropertyName];
18872
- if (!className && property != null && property.className) {
18873
- className = property.className;
18874
- }
18875
- className = property.getClassName(className);
19339
+ var className = this.getClassNameForNewObj(value, property);
18876
19340
  result.newObj = className
18877
19341
  ? JsonObject.metaData.createClass(className, value)
18878
19342
  : null;
18879
19343
  result.error = this.checkNewObjectOnErrors(result.newObj, value, property, className);
18880
19344
  return result;
18881
19345
  };
19346
+ JsonObject.prototype.getClassNameForNewObj = function (value, property) {
19347
+ var res = property != null && property.className ? property.className : undefined;
19348
+ if (!res) {
19349
+ res = value[JsonObject.typePropertyName];
19350
+ }
19351
+ if (!res)
19352
+ return res;
19353
+ res = res.toLowerCase();
19354
+ var classNamePart = property.classNamePart;
19355
+ if (classNamePart && res.indexOf(classNamePart) < 0) {
19356
+ res += classNamePart;
19357
+ }
19358
+ return res;
19359
+ };
18882
19360
  JsonObject.prototype.checkNewObjectOnErrors = function (newObj, value, property, className) {
18883
19361
  var error = null;
18884
19362
  if (newObj) {
@@ -19044,7 +19522,7 @@ var ListModel = /** @class */ (function (_super) {
19044
19522
  _this.onFilterStringChangedCallback = onFilterStringChangedCallback;
19045
19523
  _this.elementId = elementId;
19046
19524
  _this.onItemClick = function (itemValue) {
19047
- if (_this.isItemDisabled(itemValue) || _this.isItemSelected(itemValue)) {
19525
+ if (_this.isItemDisabled(itemValue)) {
19048
19526
  return;
19049
19527
  }
19050
19528
  _this.isExpanded = false;
@@ -19728,6 +20206,8 @@ var LocalizableString = /** @class */ (function () {
19728
20206
  return this.htmlValues[loc];
19729
20207
  };
19730
20208
  LocalizableString.prototype.deleteValuesEqualsToDefault = function (defaultValue) {
20209
+ if (_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].storeDuplicatedTranslations)
20210
+ return;
19731
20211
  var keys = this.getValuesKeys();
19732
20212
  for (var i = 0; i < keys.length; i++) {
19733
20213
  if (keys[i] == this.defaultLoc)
@@ -20783,6 +21263,7 @@ var englishStrings = {
20783
21263
  progressText: "Page {0} of {1}",
20784
21264
  indexText: "{0} of {1}",
20785
21265
  panelDynamicProgressText: "{0} of {1}",
21266
+ panelDynamicTabTextFormat: "Panel {0}",
20786
21267
  questionsProgressText: "Answered {0}/{1} questions",
20787
21268
  emptySurvey: "The survey doesn't contain visible pages or questions.",
20788
21269
  completingSurvey: "Thank you for completing the survey",
@@ -25800,7 +26281,7 @@ __webpack_require__.r(__webpack_exports__);
25800
26281
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
25801
26282
  /* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel */ "./src/panel.ts");
25802
26283
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
25803
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
26284
+ /* harmony import */ var _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./drag-drop-page-helper-v1 */ "./src/drag-drop-page-helper-v1.ts");
25804
26285
  var __extends = (undefined && undefined.__extends) || (function () {
25805
26286
  var extendStatics = function (d, b) {
25806
26287
  extendStatics = Object.setPrototypeOf ||
@@ -25849,6 +26330,7 @@ var PageModel = /** @class */ (function (_super) {
25849
26330
  };
25850
26331
  _this.createLocalizableString("navigationTitle", _this, true);
25851
26332
  _this.createLocalizableString("navigationDescription", _this, true);
26333
+ _this.dragDropPageHelper = new _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__["DragDropPageHelperV1"](_this);
25852
26334
  return _this;
25853
26335
  }
25854
26336
  PageModel.prototype.getType = function () {
@@ -26129,205 +26611,19 @@ var PageModel = /** @class */ (function (_super) {
26129
26611
  this.survey.pageVisibilityChanged(this, this.isVisible);
26130
26612
  }
26131
26613
  };
26132
- PageModel.prototype.getDragDropInfo = function () { return this.dragDropInfo; };
26614
+ PageModel.prototype.getDragDropInfo = function () { return this.dragDropPageHelper.getDragDropInfo(); };
26133
26615
  PageModel.prototype.dragDropStart = function (src, target, nestedPanelDepth) {
26134
26616
  if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }
26135
- this.dragDropInfo = new _panel__WEBPACK_IMPORTED_MODULE_1__["DragDropInfo"](src, target, nestedPanelDepth);
26617
+ this.dragDropPageHelper.dragDropStart(src, target, nestedPanelDepth);
26136
26618
  };
26137
26619
  PageModel.prototype.dragDropMoveTo = function (destination, isBottom, isEdge) {
26138
26620
  if (isBottom === void 0) { isBottom = false; }
26139
26621
  if (isEdge === void 0) { isEdge = false; }
26140
- if (!this.dragDropInfo)
26141
- return false;
26142
- this.dragDropInfo.destination = destination;
26143
- this.dragDropInfo.isBottom = isBottom;
26144
- this.dragDropInfo.isEdge = isEdge;
26145
- this.correctDragDropInfo(this.dragDropInfo);
26146
- if (!this.dragDropCanDropTagert())
26147
- return false;
26148
- if (!this.dragDropCanDropSource() || !this.dragDropAllowFromSurvey()) {
26149
- if (!!this.dragDropInfo.source) {
26150
- var row = this.dragDropFindRow(this.dragDropInfo.target);
26151
- this.updateRowsRemoveElementFromRow(this.dragDropInfo.target, row);
26152
- }
26153
- return false;
26154
- }
26155
- this.dragDropAddTarget(this.dragDropInfo);
26156
- return true;
26157
- };
26158
- PageModel.prototype.correctDragDropInfo = function (dragDropInfo) {
26159
- if (!dragDropInfo.destination)
26160
- return;
26161
- var panel = dragDropInfo.destination.isPanel
26162
- ? dragDropInfo.destination
26163
- : null;
26164
- if (!panel)
26165
- return;
26166
- if (!dragDropInfo.target.isLayoutTypeSupported(panel.getChildrenLayoutType())) {
26167
- dragDropInfo.isEdge = true;
26168
- }
26169
- };
26170
- PageModel.prototype.dragDropAllowFromSurvey = function () {
26171
- var dest = this.dragDropInfo.destination;
26172
- if (!dest || !this.survey)
26173
- return true;
26174
- var insertBefore = null;
26175
- var insertAfter = null;
26176
- var parent = dest.isPage || (!this.dragDropInfo.isEdge && dest.isPanel)
26177
- ? dest
26178
- : dest.parent;
26179
- if (!dest.isPage) {
26180
- var container = dest.parent;
26181
- if (!!container) {
26182
- var elements = container.elements;
26183
- var index = elements.indexOf(dest);
26184
- if (index > -1) {
26185
- insertBefore = dest;
26186
- insertAfter = dest;
26187
- if (this.dragDropInfo.isBottom) {
26188
- insertBefore =
26189
- index < elements.length - 1 ? elements[index + 1] : null;
26190
- }
26191
- else {
26192
- insertAfter = index > 0 ? elements[index - 1] : null;
26193
- }
26194
- }
26195
- }
26196
- }
26197
- var options = {
26198
- allow: true,
26199
- target: this.dragDropInfo.target,
26200
- source: this.dragDropInfo.source,
26201
- parent: parent,
26202
- insertAfter: insertAfter,
26203
- insertBefore: insertBefore,
26204
- };
26205
- return this.survey.dragAndDropAllow(options);
26622
+ return this.dragDropPageHelper.dragDropMoveTo(destination, isBottom, isEdge);
26206
26623
  };
26207
26624
  PageModel.prototype.dragDropFinish = function (isCancel) {
26208
26625
  if (isCancel === void 0) { isCancel = false; }
26209
- if (!this.dragDropInfo)
26210
- return;
26211
- var target = this.dragDropInfo.target;
26212
- var src = this.dragDropInfo.source;
26213
- var dest = this.dragDropInfo.destination;
26214
- var row = this.dragDropFindRow(target);
26215
- var targetIndex = this.dragDropGetElementIndex(target, row);
26216
- this.updateRowsRemoveElementFromRow(target, row);
26217
- var elementsToSetSWNL = [];
26218
- var elementsToResetSWNL = [];
26219
- if (!isCancel && !!row) {
26220
- var isSamePanel = false;
26221
- if (this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].supportCreatorV2) {
26222
- var srcRow = src && src.parent && src.parent.dragDropFindRow(src);
26223
- if (row.panel.elements[targetIndex] && row.panel.elements[targetIndex].startWithNewLine && row.elements.length > 1 && row.panel.elements[targetIndex] === dest) {
26224
- elementsToSetSWNL.push(target);
26225
- elementsToResetSWNL.push(row.panel.elements[targetIndex]);
26226
- }
26227
- if (target.startWithNewLine && row.elements.length > 1 && (!row.panel.elements[targetIndex] || !row.panel.elements[targetIndex].startWithNewLine)) {
26228
- elementsToResetSWNL.push(target);
26229
- }
26230
- if (srcRow && srcRow.elements[0] === src && srcRow.elements[1]) {
26231
- elementsToSetSWNL.push(srcRow.elements[1]);
26232
- }
26233
- if (row.elements.length <= 1) {
26234
- elementsToSetSWNL.push(target);
26235
- }
26236
- if (target.startWithNewLine && row.elements.length > 1 && row.elements[0] !== dest) {
26237
- elementsToResetSWNL.push(target);
26238
- }
26239
- }
26240
- if (!!src && !!src.parent) {
26241
- this.survey.startMovingQuestion();
26242
- isSamePanel = row.panel == src.parent;
26243
- if (isSamePanel) {
26244
- row.panel.dragDropMoveElement(src, target, targetIndex);
26245
- targetIndex = -1;
26246
- }
26247
- else {
26248
- src.parent.removeElement(src);
26249
- }
26250
- }
26251
- if (targetIndex > -1) {
26252
- row.panel.addElement(target, targetIndex);
26253
- }
26254
- this.survey.stopMovingQuestion();
26255
- }
26256
- elementsToSetSWNL.map(function (e) { e.startWithNewLine = true; });
26257
- elementsToResetSWNL.map(function (e) { e.startWithNewLine = false; });
26258
- this.dragDropInfo = null;
26259
- return !isCancel ? target : null;
26260
- };
26261
- PageModel.prototype.dragDropGetElementIndex = function (target, row) {
26262
- if (!row)
26263
- return -1;
26264
- var index = row.elements.indexOf(target);
26265
- if (row.index == 0)
26266
- return index;
26267
- var prevRow = row.panel.rows[row.index - 1];
26268
- var prevElement = prevRow.elements[prevRow.elements.length - 1];
26269
- return index + row.panel.elements.indexOf(prevElement) + 1;
26270
- };
26271
- PageModel.prototype.dragDropCanDropTagert = function () {
26272
- var destination = this.dragDropInfo.destination;
26273
- if (!destination || destination.isPage)
26274
- return true;
26275
- return this.dragDropCanDropCore(this.dragDropInfo.target, destination);
26276
- };
26277
- PageModel.prototype.dragDropCanDropSource = function () {
26278
- var source = this.dragDropInfo.source;
26279
- if (!source)
26280
- return true;
26281
- var destination = this.dragDropInfo.destination;
26282
- if (!this.dragDropCanDropCore(source, destination))
26283
- return false;
26284
- if (this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].supportCreatorV2) {
26285
- var rowSource = this.dragDropFindRow(source);
26286
- var rowDestination = this.dragDropFindRow(destination);
26287
- if (rowSource !== rowDestination) {
26288
- if (!source.startWithNewLine && destination.startWithNewLine)
26289
- return true;
26290
- if (source.startWithNewLine && !destination.startWithNewLine) {
26291
- return true;
26292
- }
26293
- }
26294
- var row = this.dragDropFindRow(destination);
26295
- if (row && row.elements.length == 1)
26296
- return true;
26297
- }
26298
- return this.dragDropCanDropNotNext(source, destination, this.dragDropInfo.isEdge, this.dragDropInfo.isBottom);
26299
- };
26300
- PageModel.prototype.dragDropCanDropCore = function (target, destination) {
26301
- if (!destination)
26302
- return true;
26303
- if (this.dragDropIsSameElement(destination, target))
26304
- return false;
26305
- if (target.isPanel) {
26306
- var pnl = target;
26307
- if (pnl.containsElement(destination) ||
26308
- !!pnl.getElementByName(destination.name))
26309
- return false;
26310
- }
26311
- return true;
26312
- };
26313
- PageModel.prototype.dragDropCanDropNotNext = function (source, destination, isEdge, isBottom) {
26314
- if (!destination || (destination.isPanel && !isEdge))
26315
- return true;
26316
- if (typeof source.parent === "undefined" || source.parent !== destination.parent)
26317
- return true;
26318
- var pnl = source.parent;
26319
- var srcIndex = pnl.elements.indexOf(source);
26320
- var destIndex = pnl.elements.indexOf(destination);
26321
- if (destIndex < srcIndex && !isBottom)
26322
- destIndex--;
26323
- if (isBottom)
26324
- destIndex++;
26325
- return srcIndex < destIndex
26326
- ? destIndex - srcIndex > 1
26327
- : srcIndex - destIndex > 0;
26328
- };
26329
- PageModel.prototype.dragDropIsSameElement = function (el1, el2) {
26330
- return el1 == el2 || el1.name == el2.name;
26626
+ return this.dragDropPageHelper.dragDropFinish(isCancel);
26331
26627
  };
26332
26628
  PageModel.prototype.ensureRowsVisibility = function () {
26333
26629
  _super.prototype.ensureRowsVisibility.call(this);
@@ -26373,12 +26669,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("page", [
26373
26669
  /*!**********************!*\
26374
26670
  !*** ./src/panel.ts ***!
26375
26671
  \**********************/
26376
- /*! exports provided: DragDropInfo, QuestionRowModel, PanelModelBase, PanelModel */
26672
+ /*! exports provided: QuestionRowModel, PanelModelBase, PanelModel */
26377
26673
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
26378
26674
 
26379
26675
  "use strict";
26380
26676
  __webpack_require__.r(__webpack_exports__);
26381
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropInfo", function() { return DragDropInfo; });
26382
26677
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionRowModel", function() { return QuestionRowModel; });
26383
26678
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelModelBase", function() { return PanelModelBase; });
26384
26679
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelModel", function() { return PanelModel; });
@@ -26392,6 +26687,7 @@ __webpack_require__.r(__webpack_exports__);
26392
26687
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
26393
26688
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
26394
26689
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
26690
+ /* harmony import */ var _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./drag-drop-panel-helper-v1 */ "./src/drag-drop-panel-helper-v1.ts");
26395
26691
  var __extends = (undefined && undefined.__extends) || (function () {
26396
26692
  var extendStatics = function (d, b) {
26397
26693
  extendStatics = Object.setPrototypeOf ||
@@ -26423,15 +26719,6 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
26423
26719
 
26424
26720
 
26425
26721
 
26426
- var DragDropInfo = /** @class */ (function () {
26427
- function DragDropInfo(source, target, nestedPanelDepth) {
26428
- if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }
26429
- this.source = source;
26430
- this.target = target;
26431
- this.nestedPanelDepth = nestedPanelDepth;
26432
- }
26433
- return DragDropInfo;
26434
- }());
26435
26722
 
26436
26723
  var QuestionRowModel = /** @class */ (function (_super) {
26437
26724
  __extends(QuestionRowModel, _super);
@@ -26682,6 +26969,7 @@ var PanelModelBase = /** @class */ (function (_super) {
26682
26969
  _this.registerPropertyChangedHandlers(["questionStartIndex", "showQuestionNumbers"], function () {
26683
26970
  _this.updateVisibleIndexes();
26684
26971
  });
26972
+ _this.dragDropPanelHelper = new _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__["DragDropPanelHelperV1"](_this);
26685
26973
  return _this;
26686
26974
  }
26687
26975
  PanelModelBase.getPanelId = function () {
@@ -27510,7 +27798,10 @@ var PanelModelBase = /** @class */ (function (_super) {
27510
27798
  element.setSurveyImpl(this.surveyImpl);
27511
27799
  element.parent = this;
27512
27800
  this.markQuestionListDirty();
27513
- this.updateRowsOnElementAdded(element, index);
27801
+ if (this.canBuildRows()) {
27802
+ var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
27803
+ this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
27804
+ }
27514
27805
  if (element.isPanel) {
27515
27806
  var p = element;
27516
27807
  if (this.survey) {
@@ -27611,29 +27902,6 @@ var PanelModelBase = /** @class */ (function (_super) {
27611
27902
  var page = this.getPage(this.parent);
27612
27903
  return !!page ? page.getDragDropInfo() : undefined;
27613
27904
  };
27614
- PanelModelBase.prototype.updateRowsOnElementAdded = function (element, index) {
27615
- if (!this.canBuildRows())
27616
- return;
27617
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
27618
- if (!dragDropInfo) {
27619
- dragDropInfo = new DragDropInfo(null, element);
27620
- dragDropInfo.target = element;
27621
- dragDropInfo.isEdge = this.elements.length > 1;
27622
- if (this.elements.length < 2) {
27623
- dragDropInfo.destination = this;
27624
- }
27625
- else {
27626
- dragDropInfo.isBottom = index > 0;
27627
- if (index == 0) {
27628
- dragDropInfo.destination = this.elements[1];
27629
- }
27630
- else {
27631
- dragDropInfo.destination = this.elements[index - 1];
27632
- }
27633
- }
27634
- }
27635
- this.dragDropAddTargetToRow(dragDropInfo, null);
27636
- };
27637
27905
  PanelModelBase.prototype.updateRowsOnElementRemoved = function (element) {
27638
27906
  if (!this.canBuildRows())
27639
27907
  return;
@@ -27953,147 +28221,13 @@ var PanelModelBase = /** @class */ (function (_super) {
27953
28221
  }
27954
28222
  };
27955
28223
  PanelModelBase.prototype.dragDropAddTarget = function (dragDropInfo) {
27956
- var prevRow = this.dragDropFindRow(dragDropInfo.target);
27957
- if (this.dragDropAddTargetToRow(dragDropInfo, prevRow)) {
27958
- this.updateRowsRemoveElementFromRow(dragDropInfo.target, prevRow);
27959
- }
28224
+ this.dragDropPanelHelper.dragDropAddTarget(dragDropInfo);
27960
28225
  };
27961
28226
  PanelModelBase.prototype.dragDropFindRow = function (findElement) {
27962
- if (!findElement || findElement.isPage)
27963
- return null;
27964
- var element = findElement;
27965
- var rows = this.rows;
27966
- for (var i = 0; i < rows.length; i++) {
27967
- if (rows[i].elements.indexOf(element) > -1)
27968
- return rows[i];
27969
- }
27970
- for (var i = 0; i < this.elements.length; i++) {
27971
- var pnl = this.elements[i].getPanel();
27972
- if (!pnl)
27973
- continue;
27974
- var row = pnl.dragDropFindRow(element);
27975
- if (!!row)
27976
- return row;
27977
- }
27978
- return null;
27979
- };
27980
- PanelModelBase.prototype.dragDropAddTargetToRow = function (dragDropInfo, prevRow) {
27981
- if (!dragDropInfo.destination)
27982
- return true;
27983
- if (this.dragDropAddTargetToEmptyPanel(dragDropInfo))
27984
- return true;
27985
- var dest = dragDropInfo.destination;
27986
- var destRow = this.dragDropFindRow(dest);
27987
- if (!destRow)
27988
- return true;
27989
- if (_settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 && this.isDesignMode) {
27990
- if (destRow.elements.length > 1)
27991
- return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
27992
- else
27993
- return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
27994
- }
27995
- if (!dragDropInfo.target.startWithNewLine)
27996
- return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
27997
- return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
27998
- };
27999
- PanelModelBase.prototype.dragDropAddTargetToEmptyPanel = function (dragDropInfo) {
28000
- if (dragDropInfo.destination.isPage) {
28001
- this.dragDropAddTargetToEmptyPanelCore(this.root, dragDropInfo.target, dragDropInfo.isBottom);
28002
- return true;
28003
- }
28004
- var dest = dragDropInfo.destination;
28005
- if (dest.isPanel && !dragDropInfo.isEdge) {
28006
- var panel = dest;
28007
- if (dragDropInfo.target["template"] === dest) {
28008
- return false;
28009
- }
28010
- if (dragDropInfo.nestedPanelDepth < 0 ||
28011
- dragDropInfo.nestedPanelDepth >= panel.depth) {
28012
- this.dragDropAddTargetToEmptyPanelCore(dest, dragDropInfo.target, dragDropInfo.isBottom);
28013
- return true;
28014
- }
28015
- }
28016
- return false;
28017
- };
28018
- PanelModelBase.prototype.dragDropAddTargetToExistingRow = function (dragDropInfo, destRow, prevRow) {
28019
- var index = destRow.elements.indexOf(dragDropInfo.destination);
28020
- if (index == 0 &&
28021
- !dragDropInfo.isBottom) {
28022
- if (this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2) {
28023
- }
28024
- else if (destRow.elements[0].startWithNewLine) {
28025
- if (destRow.index > 0) {
28026
- dragDropInfo.isBottom = true;
28027
- destRow = destRow.panel.rows[destRow.index - 1];
28028
- dragDropInfo.destination =
28029
- destRow.elements[destRow.elements.length - 1];
28030
- return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
28031
- }
28032
- else {
28033
- return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
28034
- }
28035
- }
28036
- }
28037
- var prevRowIndex = -1;
28038
- if (prevRow == destRow) {
28039
- prevRowIndex = destRow.elements.indexOf(dragDropInfo.target);
28040
- }
28041
- if (dragDropInfo.isBottom)
28042
- index++;
28043
- var srcRow = this.findRowByElement(dragDropInfo.source);
28044
- if (srcRow == destRow &&
28045
- srcRow.elements.indexOf(dragDropInfo.source) == index)
28046
- return false;
28047
- if (index == prevRowIndex)
28048
- return false;
28049
- if (prevRowIndex > -1) {
28050
- destRow.elements.splice(prevRowIndex, 1);
28051
- if (prevRowIndex < index)
28052
- index--;
28053
- }
28054
- destRow.elements.splice(index, 0, dragDropInfo.target);
28055
- destRow.updateVisible();
28056
- return prevRowIndex < 0;
28057
- };
28058
- PanelModelBase.prototype.dragDropAddTargetToNewRow = function (dragDropInfo, destRow, prevRow) {
28059
- var targetRow = destRow.panel.createRowAndSetLazy(destRow.panel.rows.length);
28060
- if (this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2) {
28061
- targetRow.setIsLazyRendering(false);
28062
- }
28063
- targetRow.addElement(dragDropInfo.target);
28064
- var index = destRow.index;
28065
- if (dragDropInfo.isBottom) {
28066
- index++;
28067
- }
28068
- //same row
28069
- if (!!prevRow && prevRow.panel == targetRow.panel && prevRow.index == index)
28070
- return false;
28071
- var srcRow = this.findRowByElement(dragDropInfo.source);
28072
- if (!!srcRow &&
28073
- srcRow.panel == targetRow.panel &&
28074
- srcRow.elements.length == 1 &&
28075
- srcRow.index == index)
28076
- return false;
28077
- destRow.panel.rows.splice(index, 0, targetRow);
28078
- return true;
28079
- };
28080
- PanelModelBase.prototype.dragDropAddTargetToEmptyPanelCore = function (panel, target, isBottom) {
28081
- var targetRow = panel.createRow();
28082
- targetRow.addElement(target);
28083
- if (panel.elements.length == 0 || isBottom) {
28084
- panel.rows.push(targetRow);
28085
- }
28086
- else {
28087
- panel.rows.splice(0, 0, targetRow);
28088
- }
28227
+ return this.dragDropPanelHelper.dragDropFindRow(findElement);
28089
28228
  };
28090
28229
  PanelModelBase.prototype.dragDropMoveElement = function (src, target, targetIndex) {
28091
- var srcIndex = src.parent.elements.indexOf(src);
28092
- if (targetIndex > srcIndex) {
28093
- targetIndex--;
28094
- }
28095
- this.removeElement(src);
28096
- this.addElement(target, targetIndex);
28230
+ this.dragDropPanelHelper.dragDropMoveElement(src, target, targetIndex);
28097
28231
  };
28098
28232
  PanelModelBase.prototype.needResponsiveWidth = function () {
28099
28233
  var result = false;
@@ -34316,6 +34450,18 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34316
34450
  return true;
34317
34451
  };
34318
34452
  QuestionSelectBase.prototype.onSelectedItemValuesChangedHandler = function (newValue) { };
34453
+ QuestionSelectBase.prototype.getSingleSelectedItem = function () {
34454
+ var selectedItemValues = this.selectedItemValues;
34455
+ if (this.isEmpty())
34456
+ return null;
34457
+ var itemValue = _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(this.visibleChoices, this.value);
34458
+ this.onGetSingleSelectedItem(itemValue);
34459
+ if (!itemValue && !selectedItemValues) {
34460
+ this.updateSelectedItemValues();
34461
+ }
34462
+ return itemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](this.value));
34463
+ };
34464
+ QuestionSelectBase.prototype.onGetSingleSelectedItem = function (selectedItemByValue) { };
34319
34465
  QuestionSelectBase.prototype.setConditionalChoicesRunner = function () {
34320
34466
  if (this.choicesVisibleIf) {
34321
34467
  if (!this.conditionChoicesVisibleIfRunner) {
@@ -38300,22 +38446,15 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
38300
38446
  configurable: true
38301
38447
  });
38302
38448
  Object.defineProperty(QuestionDropdownModel.prototype, "selectedItem", {
38303
- get: function () {
38304
- var selectedItemValues = this.selectedItemValues;
38305
- if (this.isEmpty())
38306
- return null;
38307
- var itemValue = _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(this.visibleChoices, this.value);
38308
- if (!!itemValue) {
38309
- this.lastSelectedItemValue = itemValue;
38310
- }
38311
- else if (!selectedItemValues) {
38312
- this.updateSelectedItemValues();
38313
- }
38314
- return this.lastSelectedItemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](this.value));
38315
- },
38449
+ get: function () { return this.getSingleSelectedItem(); },
38316
38450
  enumerable: false,
38317
38451
  configurable: true
38318
38452
  });
38453
+ QuestionDropdownModel.prototype.onGetSingleSelectedItem = function (selectedItemByValue) {
38454
+ if (!!selectedItemByValue) {
38455
+ this.lastSelectedItemValue = selectedItemByValue;
38456
+ }
38457
+ };
38319
38458
  QuestionDropdownModel.prototype.supportGoNextPageAutomatic = function () {
38320
38459
  return true;
38321
38460
  };
@@ -43405,7 +43544,8 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
43405
43544
  return this.getColumnByName(columnName);
43406
43545
  };
43407
43546
  QuestionMatrixDropdownModelBase.prototype.getColumnWidth = function (column) {
43408
- return column.minWidth ? column.minWidth : this.columnMinWidth;
43547
+ var _a;
43548
+ return column.minWidth ? column.minWidth : this.columnMinWidth ? this.columnMinWidth : (((_a = _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.columnWidthsByType[column.cellType]) === null || _a === void 0 ? void 0 : _a.minWidth) || "");
43409
43549
  };
43410
43550
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "choices", {
43411
43551
  /**
@@ -44275,10 +44415,10 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
44275
44415
  return this.SurveyModel.getMatrixCellTemplateData(cell);
44276
44416
  };
44277
44417
  QuestionMatrixDropdownModelBase.prototype.getCellWrapperComponentName = function (cell) {
44278
- return this.SurveyModel.getElementWrapperComponentName(cell, "cell");
44418
+ return this.SurveyModel.getElementWrapperComponentName(cell, cell.row instanceof MatrixDropdownTotalRowModel ? "row-footer" : "cell");
44279
44419
  };
44280
44420
  QuestionMatrixDropdownModelBase.prototype.getCellWrapperComponentData = function (cell) {
44281
- return this.SurveyModel.getElementWrapperComponentData(cell, "cell");
44421
+ return this.SurveyModel.getElementWrapperComponentData(cell, cell.row instanceof MatrixDropdownTotalRowModel ? "row-footer" : "cell");
44282
44422
  };
44283
44423
  QuestionMatrixDropdownModelBase.prototype.getColumnHeaderWrapperComponentName = function (cell) {
44284
44424
  return this.SurveyModel.getElementWrapperComponentName(cell, "column-header");
@@ -45136,7 +45276,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
45136
45276
  serializationProperty: "locRequiredErrorText",
45137
45277
  },
45138
45278
  "readOnly:boolean",
45139
- "minWidth",
45279
+ {
45280
+ name: "minWidth",
45281
+ onPropertyEditorUpdate: function (obj, editor) {
45282
+ if (!!obj && !!editor) {
45283
+ editor.value = obj.minWidth;
45284
+ }
45285
+ }
45286
+ },
45140
45287
  "width",
45141
45288
  "visibleIf:condition",
45142
45289
  "enableIf:condition",
@@ -48012,6 +48159,7 @@ __webpack_require__.r(__webpack_exports__);
48012
48159
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
48013
48160
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
48014
48161
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./base */ "./src/base.ts");
48162
+ /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./actions/adaptive-container */ "./src/actions/adaptive-container.ts");
48015
48163
  var __extends = (undefined && undefined.__extends) || (function () {
48016
48164
  var extendStatics = function (d, b) {
48017
48165
  extendStatics = Object.setPrototypeOf ||
@@ -48050,6 +48198,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
48050
48198
 
48051
48199
 
48052
48200
 
48201
+
48053
48202
  var QuestionPanelDynamicItemTextProcessor = /** @class */ (function (_super) {
48054
48203
  __extends(QuestionPanelDynamicItemTextProcessor, _super);
48055
48204
  function QuestionPanelDynamicItemTextProcessor(data, panelItem, variableName) {
@@ -48502,6 +48651,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48502
48651
  val = this.panelCount - 1;
48503
48652
  this.currentIndexValue = val;
48504
48653
  this.updateFooterActions();
48654
+ this.updateTabToolbarItemsPressedState();
48505
48655
  this.fireCallback(this.currentIndexChangedCallback);
48506
48656
  }
48507
48657
  },
@@ -48810,6 +48960,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48810
48960
  for (var i = this.panelCount; i < val; i++) {
48811
48961
  var panel = this.createNewPanel();
48812
48962
  this.panels.push(panel);
48963
+ this.addTabFromToolbar(panel);
48813
48964
  if (this.renderMode == "list" && this.panelsState != "default") {
48814
48965
  if (this.panelsState === "expand") {
48815
48966
  panel.expand();
@@ -48821,13 +48972,16 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48821
48972
  }
48822
48973
  }
48823
48974
  }
48824
- if (val < this.panelCount)
48825
- this.panels.splice(val, this.panelCount - val);
48975
+ var removedPanels = [];
48976
+ if (val < this.panelCount) {
48977
+ removedPanels = this.panels.splice(val, this.panelCount - val);
48978
+ }
48826
48979
  this.setValueAfterPanelsCreating();
48827
48980
  this.setValueBasedOnPanelCount();
48828
48981
  this.reRunCondition();
48829
48982
  this.updateFooterActions();
48830
48983
  this.fireCallback(this.panelCountChangedCallback);
48984
+ (removedPanels.length > 0) && this.removeTabFromToolbar(removedPanels);
48831
48985
  },
48832
48986
  enumerable: false,
48833
48987
  configurable: true
@@ -49069,6 +49223,19 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49069
49223
  enumerable: false,
49070
49224
  configurable: true
49071
49225
  });
49226
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "tabAlign", {
49227
+ get: function () {
49228
+ return this.getPropertyValue("tabAlign");
49229
+ },
49230
+ set: function (val) {
49231
+ this.setPropertyValue("tabAlign", val);
49232
+ if (this.isRenderModeTab) {
49233
+ this.additionalTitleToolbar.containerCss = this.getAdditionalTitleToolbarCss();
49234
+ }
49235
+ },
49236
+ enumerable: false,
49237
+ configurable: true
49238
+ });
49072
49239
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "isRenderModeList", {
49073
49240
  get: function () {
49074
49241
  return this.renderMode === "list";
@@ -49076,6 +49243,25 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49076
49243
  enumerable: false,
49077
49244
  configurable: true
49078
49245
  });
49246
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "isRenderModeTab", {
49247
+ get: function () {
49248
+ return this.renderMode === "tab";
49249
+ },
49250
+ enumerable: false,
49251
+ configurable: true
49252
+ });
49253
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "hasTitleOnLeftTop", {
49254
+ get: function () {
49255
+ if (this.isRenderModeTab && !!this.panelCount)
49256
+ return true;
49257
+ if (!this.hasTitle)
49258
+ return false;
49259
+ var location = this.getTitleLocation();
49260
+ return location === "left" || location === "top";
49261
+ },
49262
+ enumerable: false,
49263
+ configurable: true
49264
+ });
49079
49265
  QuestionPanelDynamicModel.prototype.setVisibleIndex = function (value) {
49080
49266
  if (!this.isVisible)
49081
49267
  return 0;
@@ -49172,6 +49358,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49172
49358
  this.reRunCondition();
49173
49359
  this.updateFooterActions();
49174
49360
  this.fireCallback(this.panelCountChangedCallback);
49361
+ this.updateTabToolbar();
49175
49362
  };
49176
49363
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "defaultPanelValue", {
49177
49364
  /**
@@ -49367,6 +49554,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49367
49554
  if (this.survey)
49368
49555
  this.survey.dynamicPanelRemoved(this, index, panel);
49369
49556
  this.isValueChangingInternally = false;
49557
+ this.removeTabFromToolbar([panel]);
49370
49558
  };
49371
49559
  QuestionPanelDynamicModel.prototype.getPanelIndex = function (val) {
49372
49560
  if (_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(val))
@@ -50024,6 +50212,18 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50024
50212
  QuestionPanelDynamicModel.prototype.getRootCss = function () {
50025
50213
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]().append(_super.prototype.getRootCss.call(this)).append(this.cssClasses.empty, this.getShowNoEntriesPlaceholder()).toString();
50026
50214
  };
50215
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "cssHeader", {
50216
+ get: function () {
50217
+ var showTab = this.isRenderModeTab && !!this.panelCount;
50218
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
50219
+ .append(this.cssClasses.header)
50220
+ .append(this.cssClasses.headerTop, this.hasTitleOnTop || showTab)
50221
+ .append(this.cssClasses.headerTab, showTab)
50222
+ .toString();
50223
+ },
50224
+ enumerable: false,
50225
+ configurable: true
50226
+ });
50027
50227
  QuestionPanelDynamicModel.prototype.getPanelWrapperCss = function () {
50028
50228
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
50029
50229
  .append(this.cssClasses.panelWrapper)
@@ -50085,6 +50285,22 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50085
50285
  return true;
50086
50286
  return false;
50087
50287
  };
50288
+ QuestionPanelDynamicModel.prototype.getAdditionalTitleToolbar = function () {
50289
+ if (!this.isRenderModeTab)
50290
+ return null;
50291
+ if (!this.additionalTitleToolbarValue) {
50292
+ this.additionalTitleToolbarValue = new _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_12__["AdaptiveActionContainer"]();
50293
+ this.additionalTitleToolbarValue.containerCss = this.getAdditionalTitleToolbarCss();
50294
+ this.additionalTitleToolbarValue.cssClasses = {
50295
+ item: "sv-tab-item",
50296
+ itemPressed: "sv-tab-item--pressed",
50297
+ itemAsIcon: "sv-tab-item--icon",
50298
+ itemIcon: "sv-tab-item__icon",
50299
+ itemTitle: "sv-tab-item__title"
50300
+ };
50301
+ }
50302
+ return this.additionalTitleToolbarValue;
50303
+ };
50088
50304
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "footerToolbar", {
50089
50305
  get: function () {
50090
50306
  if (!this.footerToolbarValue) {
@@ -50159,6 +50375,64 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50159
50375
  this.updateFooterActionsCallback();
50160
50376
  this.footerToolbarValue.setItems(items);
50161
50377
  };
50378
+ QuestionPanelDynamicModel.prototype.createTabByPanel = function (panel) {
50379
+ var _this = this;
50380
+ if (!this.isRenderModeTab)
50381
+ return;
50382
+ var index = this.getPanelIndex(panel);
50383
+ var title = this.getLocalizationFormatString("panelDynamicTabTextFormat", index + 1);
50384
+ var newItem = new _actions_action__WEBPACK_IMPORTED_MODULE_10__["Action"]({
50385
+ id: index.toString(),
50386
+ css: "sv-tab-item__root",
50387
+ pressed: index === this.currentIndex,
50388
+ title: title,
50389
+ action: function () {
50390
+ _this.currentIndex = parseInt(newItem.id);
50391
+ _this.updateTabToolbarItemsPressedState();
50392
+ }
50393
+ });
50394
+ return newItem;
50395
+ };
50396
+ QuestionPanelDynamicModel.prototype.getAdditionalTitleToolbarCss = function () {
50397
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
50398
+ .append("sv-tabs-toolbar")
50399
+ .append("sv-tabs-toolbar--left", this.tabAlign === "left")
50400
+ .append("sv-tabs-toolbar--right", this.tabAlign === "right")
50401
+ .append("sv-tabs-toolbar--center", this.tabAlign === "center")
50402
+ .toString();
50403
+ };
50404
+ QuestionPanelDynamicModel.prototype.updateTabToolbarItemsPressedState = function () {
50405
+ var _this = this;
50406
+ if (!this.isRenderModeTab)
50407
+ return;
50408
+ this.additionalTitleToolbar.renderedActions.forEach(function (action) { return action.pressed = parseInt(action.id) === _this.currentIndex; });
50409
+ };
50410
+ QuestionPanelDynamicModel.prototype.updateTabToolbar = function () {
50411
+ var _this = this;
50412
+ if (!this.isRenderModeTab)
50413
+ return;
50414
+ var items = [];
50415
+ this.panels.forEach(function (panel) { return items.push(_this.createTabByPanel(panel)); });
50416
+ this.additionalTitleToolbar.setItems(items);
50417
+ };
50418
+ QuestionPanelDynamicModel.prototype.addTabFromToolbar = function (panel) {
50419
+ if (!this.isRenderModeTab)
50420
+ return;
50421
+ var newItem = this.createTabByPanel(panel);
50422
+ this.additionalTitleToolbar.actions.push(newItem);
50423
+ this.updateTabToolbarItemsPressedState();
50424
+ };
50425
+ QuestionPanelDynamicModel.prototype.removeTabFromToolbar = function (panels) {
50426
+ var _this = this;
50427
+ if (!this.isRenderModeTab)
50428
+ return;
50429
+ panels.forEach(function (panel) {
50430
+ var index = _this.getPanelIndex(panel);
50431
+ var removedItem = _this.additionalTitleToolbar.getActionById(index.toString());
50432
+ _this.additionalTitleToolbar.actions.splice(_this.additionalTitleToolbar.actions.indexOf(removedItem), 1);
50433
+ });
50434
+ this.updateTabToolbarItemsPressedState();
50435
+ };
50162
50436
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "showLegacyNavigation", {
50163
50437
  get: function () {
50164
50438
  return !this.isDefaultV2Theme;
@@ -50232,7 +50506,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("paneldynamic",
50232
50506
  {
50233
50507
  name: "renderMode",
50234
50508
  default: "list",
50235
- choices: ["list", "progressTop", "progressBottom", "progressTopBottom"],
50509
+ choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
50510
+ },
50511
+ {
50512
+ name: "tabAlign", default: "center", choices: ["center", "left", "right"],
50236
50513
  },
50237
50514
  {
50238
50515
  name: "templateTitleLocation",
@@ -50267,9 +50544,8 @@ __webpack_require__.r(__webpack_exports__);
50267
50544
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
50268
50545
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
50269
50546
  /* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_baseselect */ "./src/question_baseselect.ts");
50270
- /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./itemvalue */ "./src/itemvalue.ts");
50271
- /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
50272
- /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./base */ "./src/base.ts");
50547
+ /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
50548
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./base */ "./src/base.ts");
50273
50549
  var __extends = (undefined && undefined.__extends) || (function () {
50274
50550
  var extendStatics = function (d, b) {
50275
50551
  extendStatics = Object.setPrototypeOf ||
@@ -50290,7 +50566,6 @@ var __extends = (undefined && undefined.__extends) || (function () {
50290
50566
 
50291
50567
 
50292
50568
 
50293
-
50294
50569
  /**
50295
50570
  * A class that describes the Radiogroup question type.
50296
50571
  *
@@ -50328,16 +50603,7 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
50328
50603
  /**
50329
50604
  * Returns the selected choice item. If no item is selected, returns `null`.
50330
50605
  */
50331
- get: function () {
50332
- var selectedItemValues = this.selectedItemValues;
50333
- if (this.isEmpty())
50334
- return null;
50335
- var itemValue = _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(this.visibleChoices, this.value);
50336
- if (!itemValue && !selectedItemValues) {
50337
- this.updateSelectedItemValues();
50338
- }
50339
- return itemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](this.value));
50340
- },
50606
+ get: function () { return this.getSingleSelectedItem(); },
50341
50607
  enumerable: false,
50342
50608
  configurable: true
50343
50609
  });
@@ -50387,12 +50653,12 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
50387
50653
  var _this = this;
50388
50654
  var actions = [];
50389
50655
  if (this.isDefaultV2Theme && !this.isDesignMode) {
50390
- var clearAction = new _actions_action__WEBPACK_IMPORTED_MODULE_4__["Action"]({
50656
+ var clearAction = new _actions_action__WEBPACK_IMPORTED_MODULE_3__["Action"]({
50391
50657
  title: this.clearButtonCaption,
50392
50658
  id: "sv-clr-btn-" + this.id,
50393
50659
  action: function () { _this.clearValue(); },
50394
50660
  innerCss: this.cssClasses.clearButton,
50395
- visible: new _base__WEBPACK_IMPORTED_MODULE_5__["ComputedUpdater"](function () { return _this.canShowClearButton; })
50661
+ visible: new _base__WEBPACK_IMPORTED_MODULE_4__["ComputedUpdater"](function () { return _this.canShowClearButton; })
50396
50662
  });
50397
50663
  actions.push(clearAction);
50398
50664
  }
@@ -52121,6 +52387,9 @@ var QuestionTextModel = /** @class */ (function (_super) {
52121
52387
  if (_this.isInputTextUpdate) {
52122
52388
  _this._isWaitingForEnter = event.keyCode === 229;
52123
52389
  }
52390
+ if (event.keyCode === 13) {
52391
+ _this.survey.questionEditFinishCallback(_this, event);
52392
+ }
52124
52393
  };
52125
52394
  _this.onChange = function (event) {
52126
52395
  if (event.target === document.activeElement) {
@@ -56404,8 +56673,9 @@ __webpack_require__.r(__webpack_exports__);
56404
56673
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyElementHeader", function() { return SurveyElementHeader; });
56405
56674
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
56406
56675
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
56407
- /* harmony import */ var _components_title_title_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/title/title-element */ "./src/react/components/title/title-element.tsx");
56408
- /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
56676
+ /* harmony import */ var _components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/action-bar/action-bar */ "./src/react/components/action-bar/action-bar.tsx");
56677
+ /* harmony import */ var _components_title_title_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/title/title-element */ "./src/react/components/title/title-element.tsx");
56678
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
56409
56679
  var __extends = (undefined && undefined.__extends) || (function () {
56410
56680
  var extendStatics = function (d, b) {
56411
56681
  extendStatics = Object.setPrototypeOf ||
@@ -56424,6 +56694,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
56424
56694
 
56425
56695
 
56426
56696
 
56697
+
56427
56698
  var SurveyElementHeader = /** @class */ (function (_super) {
56428
56699
  __extends(SurveyElementHeader, _super);
56429
56700
  function SurveyElementHeader() {
@@ -56438,13 +56709,15 @@ var SurveyElementHeader = /** @class */ (function (_super) {
56438
56709
  });
56439
56710
  SurveyElementHeader.prototype.render = function () {
56440
56711
  var element = this.element;
56441
- var title = element.hasTitle ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_title_title_element__WEBPACK_IMPORTED_MODULE_1__["TitleElement"], { element: element })) : null;
56712
+ var title = element.hasTitle ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_title_title_element__WEBPACK_IMPORTED_MODULE_2__["TitleElement"], { element: element })) : null;
56442
56713
  var description = element.hasDescriptionUnderTitle
56443
- ? _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"].renderQuestionDescription(this.element)
56714
+ ? _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"].renderQuestionDescription(this.element)
56444
56715
  : null;
56716
+ var additionalTitleToolbarElement = !!element.additionalTitleToolbar ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: element.additionalTitleToolbar }) : null;
56445
56717
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: element.cssHeader, onClick: element.clickTitleFunction },
56446
56718
  title,
56447
- description));
56719
+ description,
56720
+ additionalTitleToolbarElement));
56448
56721
  };
56449
56722
  return SurveyElementHeader;
56450
56723
  }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
@@ -58081,7 +58354,8 @@ var SurveyProgressToc = /** @class */ (function (_super) {
58081
58354
  }
58082
58355
  SurveyProgressToc.prototype.render = function () {
58083
58356
  var listModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["createTOCListModel"])(this.props.model);
58084
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.props.containerCss || "sv_progress-toc" },
58357
+ var rootCss = Object(survey_core__WEBPACK_IMPORTED_MODULE_1__["getTocRootCss"])(this.props.model);
58358
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: rootCss },
58085
58359
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_list_list__WEBPACK_IMPORTED_MODULE_4__["List"], { model: listModel })));
58086
58360
  };
58087
58361
  return SurveyProgressToc;
@@ -58492,7 +58766,7 @@ var SurveyQuestionAndErrorsCell = /** @class */ (function (_super) {
58492
58766
  var survey = this.question.survey;
58493
58767
  var wrapper = null;
58494
58768
  if (survey) {
58495
- wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__["ReactSurveyElementsWrapper"].wrapMatrixCell(survey, element, cell);
58769
+ wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__["ReactSurveyElementsWrapper"].wrapMatrixCell(survey, element, cell, this.props.reason);
58496
58770
  }
58497
58771
  return wrapper !== null && wrapper !== void 0 ? wrapper : element;
58498
58772
  };
@@ -60295,7 +60569,7 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
60295
60569
  var table = this.question.renderedTable;
60296
60570
  if (!table.showFooter)
60297
60571
  return null;
60298
- var row = this.renderRow("footer", table.footerRow, this.question.cssClasses);
60572
+ var row = this.renderRow("footer", table.footerRow, this.question.cssClasses, "row-footer");
60299
60573
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tfoot", null, row);
60300
60574
  };
60301
60575
  SurveyQuestionMatrixDropdownBase.prototype.renderRows = function () {
@@ -60307,23 +60581,26 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
60307
60581
  }
60308
60582
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tbody", null, rows);
60309
60583
  };
60310
- SurveyQuestionMatrixDropdownBase.prototype.renderRow = function (keyValue, row, cssClasses) {
60584
+ SurveyQuestionMatrixDropdownBase.prototype.renderRow = function (keyValue, row, cssClasses, reason) {
60311
60585
  var matrixrow = [];
60312
60586
  var cells = row.cells;
60313
60587
  for (var i = 0; i < cells.length; i++) {
60314
- matrixrow.push(this.renderCell(cells[i], i, cssClasses));
60588
+ matrixrow.push(this.renderCell(cells[i], i, cssClasses, reason));
60315
60589
  }
60316
60590
  var key = "row" + keyValue;
60317
60591
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], { key: key },
60318
60592
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_matrix_row__WEBPACK_IMPORTED_MODULE_7__["MatrixRow"], { model: row, parentMatrix: this.question }, matrixrow)));
60319
60593
  };
60320
- SurveyQuestionMatrixDropdownBase.prototype.renderCell = function (cell, index, cssClasses) {
60594
+ SurveyQuestionMatrixDropdownBase.prototype.renderCell = function (cell, index, cssClasses, reason) {
60321
60595
  var key = "cell" + index;
60322
60596
  if (cell.hasQuestion) {
60323
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionMatrixDropdownCell, { key: key, cssClasses: cssClasses, cell: cell, creator: this.creator }));
60597
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionMatrixDropdownCell, { key: key, cssClasses: cssClasses, cell: cell, creator: this.creator, reason: reason }));
60598
+ }
60599
+ var calcReason = reason;
60600
+ if (!calcReason) {
60601
+ calcReason = cell.hasTitle ? "row-header" : "";
60324
60602
  }
60325
- var reason = cell.hasTitle ? "row-header" : "";
60326
- var cellContent = this.renderCellContent(cell, reason, cssClasses);
60603
+ var cellContent = this.renderCellContent(cell, calcReason, cssClasses);
60327
60604
  var cellStyle = null;
60328
60605
  if (!!cell.width || !!cell.minWidth) {
60329
60606
  cellStyle = {};
@@ -60943,10 +61220,10 @@ var SurveyQuestionPanelDynamic = /** @class */ (function (_super) {
60943
61220
  SurveyQuestionPanelDynamic.prototype.renderNavigatorV2 = function () {
60944
61221
  if (this.question.panelCount === 0 || this.question["showLegacyNavigation"])
60945
61222
  return null;
60946
- var range = this.question.isRangeShowing && !this.question.isProgressTopShowing ? this.renderRange() : null;
60947
61223
  if (!this.question.cssClasses.footer) {
60948
61224
  return null;
60949
61225
  }
61226
+ var range = this.question.isRangeShowing && this.question.isProgressBottomShowing ? this.renderRange() : null;
60950
61227
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.footer },
60951
61228
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("hr", { className: this.question.cssClasses.separator }),
60952
61229
  range,
@@ -62495,6 +62772,10 @@ var RendererFactory = /** @class */ (function () {
62495
62772
  "use strict";
62496
62773
  __webpack_require__.r(__webpack_exports__);
62497
62774
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
62775
+ var columnWidthsByType = {
62776
+ "file": { minWidth: "240px" },
62777
+ "comment": { minWidth: "200px" }
62778
+ };
62498
62779
  /**
62499
62780
  * Global settings that apply to all surveys on the page. To specify one of the settings, use the code below:
62500
62781
  *
@@ -62505,6 +62786,16 @@ __webpack_require__.r(__webpack_exports__);
62505
62786
  * ```
62506
62787
  */
62507
62788
  var settings = {
62789
+ /**
62790
+ * Specifies an action to perform when users press the Enter key within a survey.
62791
+ *
62792
+ * Possible values:
62793
+ *
62794
+ * - `"moveToNextEditor"` - Moves focus to the next editor.
62795
+ * - `"loseFocus"` - Removes focus from the current editor.
62796
+ * - `"default"` - Behaves as a standard `<input>` element.
62797
+ */
62798
+ enterKeyAction: "default",
62508
62799
  /**
62509
62800
  * An object that configures string comparison.
62510
62801
  *
@@ -62941,6 +63232,18 @@ var settings = {
62941
63232
  "email",
62942
63233
  "impp",
62943
63234
  ]
63235
+ },
63236
+ /**
63237
+ * Contains properties that apply to [Single-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), [Multiple-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list), and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
63238
+ *
63239
+ * Nested properties:
63240
+ *
63241
+ * - `columnWidthsByType`: `Object`\
63242
+ * An object that specifies fixed and minimum column width based on the column type.\
63243
+ * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
63244
+ */
63245
+ matrix: {
63246
+ columnWidthsByType: columnWidthsByType
62944
63247
  }
62945
63248
  };
62946
63249
 
@@ -64495,6 +64798,16 @@ var SurveyElement = /** @class */ (function (_super) {
64495
64798
  this.toggleState();
64496
64799
  }
64497
64800
  };
64801
+ Object.defineProperty(SurveyElement.prototype, "additionalTitleToolbar", {
64802
+ get: function () {
64803
+ return this.getAdditionalTitleToolbar();
64804
+ },
64805
+ enumerable: false,
64806
+ configurable: true
64807
+ });
64808
+ SurveyElement.prototype.getAdditionalTitleToolbar = function () {
64809
+ return null;
64810
+ };
64498
64811
  SurveyElement.prototype.getCssTitle = function (cssClasses) {
64499
64812
  var isExpandable = this.state !== "default";
64500
64813
  var numInlineLimit = 4;
@@ -64735,9 +65048,10 @@ var SurveyModel = /** @class */ (function (_super) {
64735
65048
  */
64736
65049
  _this.onComplete = _this.addEvent();
64737
65050
  /**
64738
- * An event that is raised before the survey displays a [preview](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page). Use this event to cancel the preview.
64739
- *
65051
+ * An event that is raised before the survey displays a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page). Use this event to cancel the preview.
64740
65052
  * @see showPreviewBeforeComplete
65053
+ * @see showPreview
65054
+ * @see cancelPreview
64741
65055
  */
64742
65056
  _this.onShowingPreview = _this.addEvent();
64743
65057
  /**
@@ -65581,9 +65895,10 @@ var SurveyModel = /** @class */ (function (_super) {
65581
65895
  };
65582
65896
  Object.defineProperty(SurveyModel.prototype, "pages", {
65583
65897
  /**
65584
- * Returns a list of all pages in the survey, including invisible pages.
65898
+ * Returns an array of all pages in the survey.
65899
+ *
65900
+ * To get an array of only visible pages, use the [`visiblePages`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#visiblePages) array.
65585
65901
  * @see PageModel
65586
- * @see visiblePages
65587
65902
  */
65588
65903
  get: function () {
65589
65904
  return this.getPropertyValue("pages");
@@ -65789,11 +66104,7 @@ var SurveyModel = /** @class */ (function (_super) {
65789
66104
  });
65790
66105
  Object.defineProperty(SurveyModel.prototype, "calculatedValues", {
65791
66106
  /**
65792
- * Gets or sets a list of calculated values in the survey.
65793
- * @see CalculatedValue
65794
- *
65795
- * For more information, refer to [Calculated Values](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#calculated-values).
65796
- *
66107
+ * An array of [calculated values](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#calculated-values).
65797
66108
  */
65798
66109
  get: function () {
65799
66110
  return this.getPropertyValue("calculatedValues");
@@ -66201,18 +66512,15 @@ var SurveyModel = /** @class */ (function (_super) {
66201
66512
  });
66202
66513
  Object.defineProperty(SurveyModel.prototype, "goNextPageAutomatic", {
66203
66514
  /**
66204
- * Gets or ses whether user proceeds to the next page without pressing the "Next" button after answering all page questions.
66205
- * The available options:
66515
+ * Specifies whether the survey switches to the next page automatically after a user answers all questions on the current page.
66206
66516
  *
66207
- * - `true` - navigate to the next page and submit survey data automatically.
66208
- * - `autogonext` - navigate to the next page automatically but do not submit survey data.
66209
- * - `false` - do not navigate to the next page and do not submit survey data automatically.
66517
+ * Default value: `false`
66210
66518
  *
66211
- * > If any of the following questions is answered last, the survey won't be switched to the next page: Checkbox, Boolean (rendered as Checkbox), Comment, Signature Pad, Image Picker (with Multi Select), File, Single-Choice Matrix (not all rows are answered), Dynamic Matrix, Panel Dynamic.
66519
+ * If you enable this property, the survey is also completed automatically. Set the [`allowCompleteSurveyAutomatic`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#allowCompleteSurveyAutomatic) property to `false` if you want to disable this behavior.
66212
66520
  *
66213
- * @see showNavigationButtons
66521
+ * > If any of the following questions is answered last, the survey does not switch to the next page: Checkbox, Boolean (rendered as Checkbox), Comment, Signature Pad, Image Picker (with Multi Select), File, Single-Choice Matrix (not all rows are answered), Dynamic Matrix, Panel Dynamic.
66214
66522
  *
66215
- * [View Demo](https://surveyjs.io/form-library/examples/survey-autonextpage/ (linkStyle))
66523
+ * [View Demo](https://surveyjs.io/form-library/examples/automatically-move-to-next-page-if-answer-selected/ (linkStyle))
66216
66524
  */
66217
66525
  get: function () {
66218
66526
  return this.getPropertyValue("goNextPageAutomatic");
@@ -66225,8 +66533,9 @@ var SurveyModel = /** @class */ (function (_super) {
66225
66533
  });
66226
66534
  Object.defineProperty(SurveyModel.prototype, "allowCompleteSurveyAutomatic", {
66227
66535
  /**
66228
- * Gets or sets whether a survey is automatically completed when `goNextPageAutomatic = true`. Set it to `false` if you do not want to submit survey automatically on completing the last survey page.
66229
- * @see goNextPageAutomatic
66536
+ * Specifies whether to complete the survey automatically after a user answers all questions on the last page. Applies only if the [`goNextPageAutomatic`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#goNextPageAutomatic) property is `true`.
66537
+ *
66538
+ * Default value: `true`
66230
66539
  */
66231
66540
  get: function () {
66232
66541
  return this.getPropertyValue("allowCompleteSurveyAutomatic", true);
@@ -66239,14 +66548,15 @@ var SurveyModel = /** @class */ (function (_super) {
66239
66548
  });
66240
66549
  Object.defineProperty(SurveyModel.prototype, "checkErrorsMode", {
66241
66550
  /**
66242
- * Gets or sets a value that specifies how the survey validates the question answers.
66551
+ * Specifies when the survey validates answers.
66243
66552
  *
66244
- * The following options are available:
66553
+ * Possible values:
66245
66554
  *
66246
- * - `onNextPage` (default) - check errors on navigating to the next page or on completing the survey.
66247
- * - `onValueChanged` - check errors on every question value (i.e., answer) changing.
66248
- * - `onValueChanging` - check errors before setting value into survey. If there is an error, then survey data is not changed, but question value will be keeped.
66249
- * - `onComplete` - to validate all visible questions on complete button click. If there are errors on previous pages, then the page with the first error becomes the current.
66555
+ * - `"onNextPage"` (default) - Triggers validation before the survey is switched to the next page or completed.
66556
+ * - `"onValueChanged"` - Triggers validation each time a question value is changed.
66557
+ * - `"onComplete"` - Triggers validation when a user clicks the Complete button. If previous pages contain errors, the survey switches to the page with the first error.
66558
+ *
66559
+ * Refer to the following help topic for more information: [Data Validation](https://surveyjs.io/form-library/documentation/data-validation).
66250
66560
  */
66251
66561
  get: function () {
66252
66562
  return this.getPropertyValue("checkErrorsMode");
@@ -66259,9 +66569,11 @@ var SurveyModel = /** @class */ (function (_super) {
66259
66569
  });
66260
66570
  Object.defineProperty(SurveyModel.prototype, "autoGrowComment", {
66261
66571
  /**
66262
- * Specifies whether the text area of [comment](https://surveyjs.io/Documentation/Library?id=questioncommentmodel) questions/elements automatically expands its height to avoid the vertical scrollbar and to display the entire multi-line contents entered by respondents.
66263
- * Default value is false.
66264
- * @see QuestionCommentModel.autoGrow
66572
+ * Specifies whether to increase the height of text areas to accommodate multi-line comments.
66573
+ *
66574
+ * Default value: `false`
66575
+ *
66576
+ * You can override this property for individual Comment questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
66265
66577
  */
66266
66578
  get: function () {
66267
66579
  return this.getPropertyValue("autoGrowComment");
@@ -66960,11 +67272,10 @@ var SurveyModel = /** @class */ (function (_super) {
66960
67272
  });
66961
67273
  Object.defineProperty(SurveyModel.prototype, "previewText", {
66962
67274
  /**
66963
- * Gets or sets the 'Preview' button caption.
66964
- * @see locale
67275
+ * Gets or sets a caption for the Preview button.
66965
67276
  * @see showPreviewBeforeComplete
66966
- * @see editText
66967
67277
  * @see showPreview
67278
+ * @see editText
66968
67279
  */
66969
67280
  get: function () {
66970
67281
  return this.getLocalizableStringText("previewText");
@@ -66984,11 +67295,10 @@ var SurveyModel = /** @class */ (function (_super) {
66984
67295
  });
66985
67296
  Object.defineProperty(SurveyModel.prototype, "editText", {
66986
67297
  /**
66987
- * Gets or sets the 'Edit' button caption.
66988
- * @see locale
67298
+ * Gets or sets a caption for the Edit button displayed when the survey shows a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page).
66989
67299
  * @see showPreviewBeforeComplete
66990
- * @see previewText
66991
67300
  * @see cancelPreview
67301
+ * @see previewText
66992
67302
  */
66993
67303
  get: function () {
66994
67304
  return this.getLocalizableStringText("editText");
@@ -67701,10 +68011,10 @@ var SurveyModel = /** @class */ (function (_super) {
67701
68011
  });
67702
68012
  Object.defineProperty(SurveyModel.prototype, "visiblePages", {
67703
68013
  /**
67704
- * Returns a list of visible pages. If all pages are visible, then this property returns the same list as the `pages` property.
67705
- * @see pages
67706
- * @see PageModel.visible
67707
- * @see PageModel.visibleIf
68014
+ * Returns an array of visible pages without the start page.
68015
+ *
68016
+ * To get an array of all pages, use the [`pages`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#pages) property. If all pages are visible, the `pages` and `visiblePages` arrays are identical.
68017
+ * @see [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility)
67708
68018
  */
67709
68019
  get: function () {
67710
68020
  if (this.isDesignMode)
@@ -67742,8 +68052,9 @@ var SurveyModel = /** @class */ (function (_super) {
67742
68052
  });
67743
68053
  Object.defineProperty(SurveyModel.prototype, "pageCount", {
67744
68054
  /**
67745
- * Returns the survey page count.
67746
- * @see visiblePageCount
68055
+ * Returns a total number of survey pages.
68056
+ *
68057
+ * To get the number of visible pages, use the [`visiblePageCount`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#visiblePageCount) property.
67747
68058
  * @see pages
67748
68059
  */
67749
68060
  get: function () {
@@ -67754,9 +68065,11 @@ var SurveyModel = /** @class */ (function (_super) {
67754
68065
  });
67755
68066
  Object.defineProperty(SurveyModel.prototype, "visiblePageCount", {
67756
68067
  /**
67757
- * Returns a number of visible pages within the survey.
67758
- * @see pageCount
68068
+ * Returns the number of visible survey pages.
68069
+ *
68070
+ * To get a total number of survey pages, use the [`pageCount`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#pageCount) property.
67759
68071
  * @see visiblePages
68072
+ * @see [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility)
67760
68073
  */
67761
68074
  get: function () {
67762
68075
  return this.visiblePages.length;
@@ -67766,8 +68079,11 @@ var SurveyModel = /** @class */ (function (_super) {
67766
68079
  });
67767
68080
  Object.defineProperty(SurveyModel.prototype, "startedPage", {
67768
68081
  /**
67769
- * Returns the started page. This property works if the `firstPageIsStarted` property is set to `true`.
68082
+ * Returns the start page. Applies only if the [`firstPageIsStarted`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#firstPageIsStarted) property is set to `true`.
68083
+ *
68084
+ * Refer to the following help topic for more information: [Start Page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page).
67770
68085
  * @see firstPageIsStarted
68086
+ * @see activePage
67771
68087
  */
67772
68088
  get: function () {
67773
68089
  var page = this.firstPageIsStarted && this.pages.length > 1 ? this.pages[0] : null;
@@ -67782,7 +68098,17 @@ var SurveyModel = /** @class */ (function (_super) {
67782
68098
  });
67783
68099
  Object.defineProperty(SurveyModel.prototype, "currentPage", {
67784
68100
  /**
67785
- * Gets or sets the current survey page. If a survey is rendered, then this property returns a page that a user can see/edit.
68101
+ * Gets or sets the current page.
68102
+ *
68103
+ * If you want to change the current page, set this property to a `PageModel` object. You can get this object in different ways. For example, you can call the [`getPageByName()`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#getPageByName) method to obtain a `PageModel` object with a specific name:
68104
+ *
68105
+ * ```js
68106
+ * survey.currentPage = survey.getPageByName("my-page-name");
68107
+ * ```
68108
+ *
68109
+ * Alternatively, you can change the current page if you set the [`currentPageNo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#currentPageNo) property to the index of the required page.
68110
+ *
68111
+ * The `currentPage` property does not return the start page even if it is current. Use the [`activePage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#activePage) property instead if your survey contains a start page.
67786
68112
  */
67787
68113
  get: function () {
67788
68114
  return this.getPropertyValue("currentPage", null);
@@ -67835,10 +68161,10 @@ var SurveyModel = /** @class */ (function (_super) {
67835
68161
  };
67836
68162
  Object.defineProperty(SurveyModel.prototype, "activePage", {
67837
68163
  /**
67838
- * Returns the currentPage, unless the started page is showing. In this case returns the started page.
68164
+ * Returns [`startedPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#startedPage) if the survey currently displays a start page; otherwise, returns [`currentPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#currentPage).
68165
+ * @see startedPage
67839
68166
  * @see currentPage
67840
68167
  * @see firstPageIsStarted
67841
- * @see startedPage
67842
68168
  */
67843
68169
  get: function () {
67844
68170
  return this.getPropertyValue("activePage");
@@ -67892,9 +68218,10 @@ var SurveyModel = /** @class */ (function (_super) {
67892
68218
  };
67893
68219
  Object.defineProperty(SurveyModel.prototype, "currentPageNo", {
67894
68220
  /**
67895
- * The zero-based index of the current page in the visible pages array.
68221
+ * A zero-based index of the current page in the [`visiblePages`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#visiblePages) array.
67896
68222
  *
67897
68223
  * [View Demo](https://surveyjs.io/form-library/examples/survey-editprevious/ (linkStyle))
68224
+ * @see visiblePages
67898
68225
  */
67899
68226
  get: function () {
67900
68227
  return this.visiblePages.indexOf(this.currentPage);
@@ -67910,13 +68237,16 @@ var SurveyModel = /** @class */ (function (_super) {
67910
68237
  });
67911
68238
  Object.defineProperty(SurveyModel.prototype, "questionsOrder", {
67912
68239
  /**
67913
- * Gets or sets the question display order. Use this property to randomize questions. You can randomize questions on a specific page.
68240
+ * Specifies the sort order of questions in the survey.
67914
68241
  *
67915
- * The following options are available:
68242
+ * Possible values:
68243
+ *
68244
+ * - `"initial"` (default) - Preserves the original order of questions.
68245
+ * - `"random"` - Displays questions in random order.
67916
68246
  *
67917
- * - `random` - randomize questions
67918
- * - `initial` - keep questions in the same order, as in a survey model.
67919
- * @see SurveyPage.questionsOrder
68247
+ * You can override this property for individual pages and panels.
68248
+ * @see PageModel.questionsOrder
68249
+ * @see PanelModel.questionsOrder
67920
68250
  */
67921
68251
  get: function () {
67922
68252
  return this.getPropertyValue("questionsOrder");
@@ -68076,16 +68406,13 @@ var SurveyModel = /** @class */ (function (_super) {
68076
68406
  this.notifier.notify(message, type, type === "error");
68077
68407
  };
68078
68408
  /**
68079
- * Clears the survey data and state. If the survey has a `completed` state, it will get a `running` state.
68080
- * @param clearData clear the data
68081
- * @param gotoFirstPage make the first page as a current page.
68082
- * @see data
68083
- * @see state
68084
- * @see currentPage
68409
+ * Resets the survey [`state`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#state) and, optionally, [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data). If `state` is `"completed"`, it becomes `"running"`.
68410
+ * @param clearData *Optional.* Specifies whether to clear survey data. Default value: `true`.
68411
+ * @param goToFirstPage *Optional.* Specifies whether to switch the survey to the first page. Default value: `true`.
68085
68412
  */
68086
- SurveyModel.prototype.clear = function (clearData, gotoFirstPage) {
68413
+ SurveyModel.prototype.clear = function (clearData, goToFirstPage) {
68087
68414
  if (clearData === void 0) { clearData = true; }
68088
- if (gotoFirstPage === void 0) { gotoFirstPage = true; }
68415
+ if (goToFirstPage === void 0) { goToFirstPage = true; }
68089
68416
  this.isCompleted = false;
68090
68417
  this.isCompletedBefore = false;
68091
68418
  this.isLoading = false;
@@ -68101,7 +68428,7 @@ var SurveyModel = /** @class */ (function (_super) {
68101
68428
  this.pages[i].passed = false;
68102
68429
  }
68103
68430
  this.onFirstPageIsStartedChanged();
68104
- if (gotoFirstPage) {
68431
+ if (goToFirstPage) {
68105
68432
  this.currentPage = this.firstVisiblePage;
68106
68433
  }
68107
68434
  if (clearData) {
@@ -68738,14 +69065,11 @@ var SurveyModel = /** @class */ (function (_super) {
68738
69065
  return this.navigationMouseDown();
68739
69066
  };
68740
69067
  /**
68741
- * Shows preview for the survey. Switches the survey to the "preview" state.
68742
- *
68743
- * Details: [Preview State](https://surveyjs.io/Documentation/Library#states-preview)
68744
- * @see showPreviewBeforeComplete
69068
+ * Displays a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page). Returns `false` if the preview cannot be displayed because of validation errors.
68745
69069
  * @see cancelPreview
69070
+ * @see showPreviewBeforeComplete
69071
+ * @see onShowingPreview
68746
69072
  * @see state
68747
- * @see previewText
68748
- * @see editText
68749
69073
  */
68750
69074
  SurveyModel.prototype.showPreview = function () {
68751
69075
  this.resetNavigationButton();
@@ -68762,12 +69086,10 @@ var SurveyModel = /** @class */ (function (_super) {
68762
69086
  this.isShowingPreview = options.allowShowPreview && options.allow;
68763
69087
  };
68764
69088
  /**
68765
- * Cancels preview and switches back to the "running" state.
68766
- *
68767
- * Details: [Preview State](https://surveyjs.io/Documentation/Library#states-preview)
68768
- * @param curPage - A new current page. If the parameter is undefined then the last page becomes the current.
68769
- * @see showPreviewBeforeComplete
69089
+ * Cancels a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page) and switches the survey to the page specified by the `curPage` parameter.
69090
+ * @param curPage A new current page. If you do not specify this parameter, the survey displays the last page.
68770
69091
  * @see showPreview
69092
+ * @see showPreviewBeforeComplete
68771
69093
  * @see state
68772
69094
  */
68773
69095
  SurveyModel.prototype.cancelPreview = function (curPage) {
@@ -68834,8 +69156,11 @@ var SurveyModel = /** @class */ (function (_super) {
68834
69156
  });
68835
69157
  Object.defineProperty(SurveyModel.prototype, "firstPageIsStarted", {
68836
69158
  /**
68837
- * Gets or sets whether the first survey page is a start page. Set this property to `true`, to make the first page a starting page.
68838
- * An end user cannot navigate to the start page and the start page does not affect a survey progress.
69159
+ * Gets or sets a Boolean value that specifies whether the first page is a start page.
69160
+ *
69161
+ * Refer to the following help topic for more information: [Start Page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page).
69162
+ * @see startedPage
69163
+ * @see activePage
68839
69164
  */
68840
69165
  get: function () {
68841
69166
  return this.getPropertyValue("firstPageIsStarted");
@@ -69919,9 +70244,10 @@ var SurveyModel = /** @class */ (function (_super) {
69919
70244
  };
69920
70245
  /**
69921
70246
  * Adds an existing page to the survey.
69922
- * @param page a newly added page
69923
- * @param index - a page index to where insert a page. It is -1 by default and the page will be added into the end.
70247
+ * @param page A page to add.
70248
+ * @param index An index at which to insert the page. If you do not specify this parameter, the page will be added to the end.
69924
70249
  * @see addNewPage
70250
+ * @see createNewPage
69925
70251
  */
69926
70252
  SurveyModel.prototype.addPage = function (page, index) {
69927
70253
  if (index === void 0) { index = -1; }
@@ -69935,10 +70261,12 @@ var SurveyModel = /** @class */ (function (_super) {
69935
70261
  }
69936
70262
  };
69937
70263
  /**
69938
- * Creates a new page and adds it to a survey. Generates a new name if the `name` parameter is not specified.
69939
- * @param name a page name
69940
- * @param index - a page index to where insert a new page. It is -1 by default and the page will be added into the end.
70264
+ * Creates a new page and adds it to the survey.
70265
+ * @param name A page name. If you do not specify this parameter, it will be generated automatically.
70266
+ * @param index An index at which to insert the page. If you do not specify this parameter, the page will be added to the end.
70267
+ * @returns The created and added page.
69941
70268
  * @see addPage
70269
+ * @see createNewPage
69942
70270
  */
69943
70271
  SurveyModel.prototype.addNewPage = function (name, index) {
69944
70272
  if (name === void 0) { name = null; }
@@ -70154,8 +70482,9 @@ var SurveyModel = /** @class */ (function (_super) {
70154
70482
  return result;
70155
70483
  };
70156
70484
  /**
70157
- * Creates and returns a new page, but do not add it into the survey.
70158
- * You can use addPage(page) function to add it into survey later.
70485
+ * Creates and returns a new page but does not add it to the survey.
70486
+ *
70487
+ * Call the [`addPage(page)`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#addPage) method to add the created page to the survey later or the [`addNewPage(name, index)`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#addNewPage) method to create _and_ add a page to the survey.
70159
70488
  * @see addPage
70160
70489
  * @see addNewPage
70161
70490
  */
@@ -71829,6 +72158,20 @@ var SurveyModel = /** @class */ (function (_super) {
71829
72158
  }
71830
72159
  return true;
71831
72160
  };
72161
+ SurveyModel.prototype.questionEditFinishCallback = function (question, event) {
72162
+ if (_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].enterKeyAction == "loseFocus")
72163
+ event.target.blur();
72164
+ if (_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].enterKeyAction == "moveToNextEditor") {
72165
+ var allQuestions = this.currentPage.questions;
72166
+ var questionIndex = allQuestions.indexOf(question);
72167
+ if (questionIndex > -1 && questionIndex < allQuestions.length - 1) {
72168
+ allQuestions[questionIndex + 1].focus();
72169
+ }
72170
+ else {
72171
+ event.target.blur();
72172
+ }
72173
+ }
72174
+ };
71832
72175
  SurveyModel.prototype.getElementWrapperComponentName = function (element, reason) {
71833
72176
  if (reason === "logo-image") {
71834
72177
  return "sv-logo-image";
@@ -71942,7 +72285,7 @@ var SurveyModel = /** @class */ (function (_super) {
71942
72285
  }
71943
72286
  }
71944
72287
  }
71945
- else if (isStrCiEqual(layoutElement.id, "toc-navigation") && this.showTOC) {
72288
+ else if (!this.isShowingPreview && isStrCiEqual(layoutElement.id, "toc-navigation") && this.showTOC) {
71946
72289
  if (container === "left") {
71947
72290
  if (["left", "both"].indexOf(this.tocLocation) !== -1) {
71948
72291
  containerLayoutElements.push(layoutElement);
@@ -72654,13 +72997,14 @@ var SurveyTimerModel = /** @class */ (function (_super) {
72654
72997
  /*!**************************!*\
72655
72998
  !*** ./src/surveyToc.ts ***!
72656
72999
  \**************************/
72657
- /*! exports provided: tryNavigateToPage, createTOCListModel */
73000
+ /*! exports provided: tryNavigateToPage, createTOCListModel, getTocRootCss */
72658
73001
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
72659
73002
 
72660
73003
  "use strict";
72661
73004
  __webpack_require__.r(__webpack_exports__);
72662
73005
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return tryNavigateToPage; });
72663
73006
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return createTOCListModel; });
73007
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return getTocRootCss; });
72664
73008
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
72665
73009
  /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./list */ "./src/list.ts");
72666
73010
 
@@ -72704,6 +73048,9 @@ function createTOCListModel(survey) {
72704
73048
  });
72705
73049
  return listModel;
72706
73050
  }
73051
+ function getTocRootCss(survey) {
73052
+ return "sv_progress-toc" + (" sv_progress-toc--" + (survey.tocLocation || "").toLowerCase());
73053
+ }
72707
73054
 
72708
73055
 
72709
73056
  /***/ }),