survey-react-ui 1.10.5 → 1.11.1

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.10.5
2
+ * surveyjs - Survey JavaScript library v1.11.1
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -105,13 +105,14 @@ return /******/ (function(modules) { // webpackBootstrap
105
105
  /*!*******************************!*\
106
106
  !*** ./src/actions/action.ts ***!
107
107
  \*******************************/
108
- /*! exports provided: createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel */
108
+ /*! exports provided: createDropdownActionModel, createDropdownActionModelAdvanced, createPopupModelWithListModel, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel */
109
109
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
110
110
 
111
111
  "use strict";
112
112
  __webpack_require__.r(__webpack_exports__);
113
113
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModel", function() { return createDropdownActionModel; });
114
114
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return createDropdownActionModelAdvanced; });
115
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPopupModelWithListModel", function() { return createPopupModelWithListModel; });
115
116
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActionDropdownButtonTarget", function() { return getActionDropdownButtonTarget; });
116
117
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseAction", function() { return BaseAction; });
117
118
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; });
@@ -144,6 +145,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
144
145
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
145
146
  return c > 3 && r && Object.defineProperty(target, key, r), r;
146
147
  };
148
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
149
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
150
+ to[j] = from[i];
151
+ return to;
152
+ };
147
153
 
148
154
 
149
155
 
@@ -152,36 +158,57 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
152
158
 
153
159
 
154
160
  function createDropdownActionModel(actionOptions, dropdownOptions, locOwner) {
155
- return createDropdownActionModelAdvanced(actionOptions, dropdownOptions, dropdownOptions, locOwner);
161
+ dropdownOptions.locOwner = locOwner;
162
+ return createDropdownActionModelAdvanced(actionOptions, dropdownOptions, dropdownOptions);
156
163
  }
157
- function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOptions, locOwner) {
158
- var listModel = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](listOptions.items, function (item) {
164
+ function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOptions) {
165
+ var _a;
166
+ var originalSelectionChanged = listOptions.onSelectionChanged;
167
+ listOptions.onSelectionChanged = function (item) {
168
+ var params = [];
169
+ for (var _i = 1; _i < arguments.length; _i++) {
170
+ params[_i - 1] = arguments[_i];
171
+ }
159
172
  if (newAction.hasTitle) {
160
173
  newAction.title = item.title;
161
174
  }
162
- listOptions.onSelectionChanged(item);
163
- innerPopupModel.toggleVisibility();
164
- }, listOptions.allowSelection, listOptions.selectedItem);
165
- listModel.locOwner = locOwner;
166
- listModel.setOnFilterStringChangedCallback(listOptions.onFilterStringChangedCallback);
167
- var options = popupOptions || {};
168
- options.onDispose = function () { listModel.dispose(); };
169
- var innerPopupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, options);
170
- innerPopupModel.displayMode = popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.displayMode;
175
+ if (originalSelectionChanged) {
176
+ originalSelectionChanged(item, params);
177
+ }
178
+ };
179
+ var popupModel = createPopupModelWithListModel(listOptions, popupOptions);
171
180
  var newActionOptions = Object.assign({}, actionOptions, {
172
181
  component: "sv-action-bar-item-dropdown",
173
- popupModel: innerPopupModel,
182
+ popupModel: popupModel,
174
183
  action: function (action, isUserAction) {
175
184
  !!(actionOptions.action) && actionOptions.action();
176
- innerPopupModel.isFocusedContent = !isUserAction || listModel.showFilter;
177
- innerPopupModel.toggleVisibility();
178
- listModel.scrollToSelectedItem();
185
+ popupModel.isFocusedContent = popupModel.isFocusedContent || !isUserAction;
186
+ popupModel.show();
179
187
  },
180
188
  });
181
189
  var newAction = new Action(newActionOptions);
182
- newAction.data = listModel;
190
+ newAction.data = (_a = popupModel.contentComponentData) === null || _a === void 0 ? void 0 : _a.model;
183
191
  return newAction;
184
192
  }
193
+ function createPopupModelWithListModel(listOptions, popupOptions) {
194
+ var listModel = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](listOptions);
195
+ listModel.onSelectionChanged = function (item) {
196
+ if (listOptions.onSelectionChanged) {
197
+ listOptions.onSelectionChanged(item);
198
+ }
199
+ popupModel.hide();
200
+ };
201
+ var _popupOptions = popupOptions || {};
202
+ _popupOptions.onDispose = function () { listModel.dispose(); };
203
+ var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, _popupOptions);
204
+ popupModel.isFocusedContent = listModel.showFilter;
205
+ popupModel.onShow = function () {
206
+ if (!!_popupOptions.onShow)
207
+ _popupOptions.onShow();
208
+ listModel.scrollToSelectedItem();
209
+ };
210
+ return popupModel;
211
+ }
185
212
  function getActionDropdownButtonTarget(container) {
186
213
  return container === null || container === void 0 ? void 0 : container.previousElementSibling;
187
214
  }
@@ -190,6 +217,7 @@ var BaseAction = /** @class */ (function (_super) {
190
217
  function BaseAction() {
191
218
  var _this = _super !== null && _super.apply(this, arguments) || this;
192
219
  _this.rendredIdValue = BaseAction.getNextRendredId();
220
+ _this.markerIconSize = 16;
193
221
  return _this;
194
222
  }
195
223
  BaseAction.getNextRendredId = function () { return BaseAction.renderedId++; };
@@ -333,6 +361,46 @@ var BaseAction = /** @class */ (function (_super) {
333
361
  }
334
362
  return args.isTrusted;
335
363
  };
364
+ BaseAction.prototype.showPopup = function () {
365
+ if (!!this.popupModel) {
366
+ this.popupModel.show();
367
+ }
368
+ };
369
+ BaseAction.prototype.hidePopup = function () {
370
+ if (!!this.popupModel) {
371
+ this.popupModel.hide();
372
+ }
373
+ };
374
+ BaseAction.prototype.clearPopupTimeouts = function () {
375
+ if (this.showPopupTimeout)
376
+ clearTimeout(this.showPopupTimeout);
377
+ if (this.hidePopupTimeout)
378
+ clearTimeout(this.hidePopupTimeout);
379
+ };
380
+ BaseAction.prototype.showPopupDelayed = function (delay) {
381
+ var _this = this;
382
+ this.clearPopupTimeouts();
383
+ this.showPopupTimeout = setTimeout(function () {
384
+ _this.clearPopupTimeouts();
385
+ _this.showPopup();
386
+ }, delay);
387
+ };
388
+ BaseAction.prototype.hidePopupDelayed = function (delay) {
389
+ var _this = this;
390
+ var _a;
391
+ if ((_a = this.popupModel) === null || _a === void 0 ? void 0 : _a.isVisible) {
392
+ this.clearPopupTimeouts();
393
+ this.hidePopupTimeout = setTimeout(function () {
394
+ _this.clearPopupTimeouts();
395
+ _this.hidePopup();
396
+ _this.isHovered = false;
397
+ }, delay);
398
+ }
399
+ else {
400
+ this.clearPopupTimeouts();
401
+ this.isHovered = false;
402
+ }
403
+ };
336
404
  BaseAction.renderedId = 1;
337
405
  __decorate([
338
406
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
@@ -394,9 +462,21 @@ var BaseAction = /** @class */ (function (_super) {
394
462
  __decorate([
395
463
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: 24 })
396
464
  ], BaseAction.prototype, "iconSize", void 0);
465
+ __decorate([
466
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
467
+ ], BaseAction.prototype, "markerIconName", void 0);
468
+ __decorate([
469
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
470
+ ], BaseAction.prototype, "markerIconSize", void 0);
397
471
  __decorate([
398
472
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
399
473
  ], BaseAction.prototype, "css", void 0);
474
+ __decorate([
475
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: false })
476
+ ], BaseAction.prototype, "isPressed", void 0);
477
+ __decorate([
478
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: false })
479
+ ], BaseAction.prototype, "isHovered", void 0);
400
480
  return BaseAction;
401
481
  }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
402
482
 
@@ -434,6 +514,14 @@ var Action = /** @class */ (function (_super) {
434
514
  Action.prototype.createLocTitle = function () {
435
515
  return this.createLocalizableString("title", this, true);
436
516
  };
517
+ Action.prototype.setItems = function (items, onSelectionChanged) {
518
+ this.markerIconName = "icon-next_16x16";
519
+ this.component = "sv-list-item-group";
520
+ this.items = __spreadArray([], items);
521
+ var popupModel = createPopupModelWithListModel({ items: items, onSelectionChanged: onSelectionChanged, searchEnabled: false }, { horizontalPosition: "right", showPointer: false, canShrink: false });
522
+ popupModel.cssClass = "sv-popup-inner";
523
+ this.popupModel = popupModel;
524
+ };
437
525
  Action.prototype.getLocTitle = function () {
438
526
  return this.locTitleValue;
439
527
  };
@@ -650,9 +738,6 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
650
738
  tooltip: _surveyStrings__WEBPACK_IMPORTED_MODULE_3__["surveyLocalization"].getString("more"),
651
739
  }, {
652
740
  items: [],
653
- onSelectionChanged: function (item) {
654
- _this.hiddenItemSelected(item);
655
- },
656
741
  allowSelection: false
657
742
  });
658
743
  return _this;
@@ -718,11 +803,6 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
718
803
  enumerable: false,
719
804
  configurable: true
720
805
  });
721
- AdaptiveActionContainer.prototype.hiddenItemSelected = function (item) {
722
- if (!!item && typeof item.action === "function") {
723
- item.action();
724
- }
725
- };
726
806
  AdaptiveActionContainer.prototype.onSet = function () {
727
807
  var _this = this;
728
808
  this.actions.forEach(function (action) { return action.updateCallback = function (isResetInitialized) { return _this.raiseUpdate(isResetInitialized); }; });
@@ -979,6 +1059,21 @@ var ActionContainer = /** @class */ (function (_super) {
979
1059
  this.sortItems();
980
1060
  }
981
1061
  };
1062
+ ActionContainer.prototype.popupAfterShowCallback = function (itemValue) {
1063
+ };
1064
+ ActionContainer.prototype.mouseOverHandler = function (itemValue) {
1065
+ var _this = this;
1066
+ itemValue.isHovered = true;
1067
+ this.actions.forEach(function (action) {
1068
+ if (action === itemValue && !!itemValue.popupModel) {
1069
+ itemValue.showPopupDelayed(_this.subItemsShowDelay);
1070
+ _this.popupAfterShowCallback(itemValue);
1071
+ }
1072
+ else if (!!action.popupModel && action.popupModel.isVisible) {
1073
+ action.hidePopupDelayed(_this.subItemsHideDelay);
1074
+ }
1075
+ });
1076
+ };
982
1077
  ActionContainer.prototype.initResponsivityManager = function (container, delayedUpdateFunction) {
983
1078
  return;
984
1079
  };
@@ -1014,6 +1109,12 @@ var ActionContainer = /** @class */ (function (_super) {
1014
1109
  __decorate([
1015
1110
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
1016
1111
  ], ActionContainer.prototype, "isEmpty", void 0);
1112
+ __decorate([
1113
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: 300 })
1114
+ ], ActionContainer.prototype, "subItemsShowDelay", void 0);
1115
+ __decorate([
1116
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: 300 })
1117
+ ], ActionContainer.prototype, "subItemsHideDelay", void 0);
1017
1118
  return ActionContainer;
1018
1119
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
1019
1120
 
@@ -1289,6 +1390,10 @@ var Base = /** @class */ (function () {
1289
1390
  this.onItemValuePropertyChanged = this.addEvent();
1290
1391
  this.isCreating = true;
1291
1392
  this.animationAllowedLock = 0;
1393
+ //remove when knockout obsolete
1394
+ this.supportOnElementRenderedEvent = true;
1395
+ this.onElementRenderedEventEnabled = false;
1396
+ this._onElementRerendered = new EventBase();
1292
1397
  this.bindingsValue = new Bindings(this);
1293
1398
  _jsonobject__WEBPACK_IMPORTED_MODULE_2__["CustomPropertiesCollection"].createProperties(this);
1294
1399
  this.onBaseCreating();
@@ -2217,7 +2322,7 @@ var Base = /** @class */ (function () {
2217
2322
  configurable: true
2218
2323
  });
2219
2324
  Base.prototype.getIsAnimationAllowed = function () {
2220
- return _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].animationEnabled && this.animationAllowedLock >= 0 && !this.isLoadingFromJson && !this.isDisposed;
2325
+ return _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].animationEnabled && this.animationAllowedLock >= 0 && !this.isLoadingFromJson && !this.isDisposed && (!!this.onElementRerendered || !this.supportOnElementRenderedEvent);
2221
2326
  };
2222
2327
  Base.prototype.blockAnimations = function () {
2223
2328
  this.animationAllowedLock--;
@@ -2225,6 +2330,22 @@ var Base = /** @class */ (function () {
2225
2330
  Base.prototype.releaseAnimations = function () {
2226
2331
  this.animationAllowedLock++;
2227
2332
  };
2333
+ Base.prototype.enableOnElementRenderedEvent = function () {
2334
+ this.onElementRenderedEventEnabled = true;
2335
+ };
2336
+ Base.prototype.disableOnElementRenderedEvent = function () {
2337
+ this.onElementRenderedEventEnabled = false;
2338
+ };
2339
+ Object.defineProperty(Base.prototype, "onElementRerendered", {
2340
+ get: function () {
2341
+ return this.supportOnElementRenderedEvent && this.onElementRenderedEventEnabled ? this._onElementRerendered : undefined;
2342
+ },
2343
+ enumerable: false,
2344
+ configurable: true
2345
+ });
2346
+ Base.prototype.afterRerender = function () {
2347
+ this.onElementRerendered.fire(this, undefined);
2348
+ };
2228
2349
  Base.currentDependencis = undefined;
2229
2350
  return Base;
2230
2351
  }());
@@ -2268,8 +2389,9 @@ var Event = /** @class */ (function () {
2268
2389
  Event.prototype.fire = function (sender, options) {
2269
2390
  if (!this.callbacks)
2270
2391
  return;
2271
- for (var i = 0; i < this.callbacks.length; i++) {
2272
- this.callbacks[i](sender, options);
2392
+ var callbacks = [].concat(this.callbacks);
2393
+ for (var i = 0; i < callbacks.length; i++) {
2394
+ callbacks[i](sender, options);
2273
2395
  if (!this.callbacks)
2274
2396
  return;
2275
2397
  }
@@ -3027,7 +3149,7 @@ __webpack_require__.r(__webpack_exports__);
3027
3149
  /*!***************************************!*\
3028
3150
  !*** ./src/entries/react-ui-model.ts ***!
3029
3151
  \***************************************/
3030
- /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
3152
+ /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, SurveyQuestionRankingItemContent, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, ListItemContent, ListItemGroup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
3031
3153
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3032
3154
 
3033
3155
  "use strict";
@@ -3087,6 +3209,8 @@ __webpack_require__.r(__webpack_exports__);
3087
3209
 
3088
3210
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItem", function() { return _react_reactquestion_ranking__WEBPACK_IMPORTED_MODULE_12__["SurveyQuestionRankingItem"]; });
3089
3211
 
3212
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItemContent", function() { return _react_reactquestion_ranking__WEBPACK_IMPORTED_MODULE_12__["SurveyQuestionRankingItemContent"]; });
3213
+
3090
3214
  /* harmony import */ var _react_components_rating_rating_item__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../react/components/rating/rating-item */ "./src/react/components/rating/rating-item.tsx");
3091
3215
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingItem", function() { return _react_components_rating_rating_item__WEBPACK_IMPORTED_MODULE_13__["RatingItem"]; });
3092
3216
 
@@ -3227,90 +3351,96 @@ __webpack_require__.r(__webpack_exports__);
3227
3351
  /* harmony import */ var _react_components_popup_popup__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../react/components/popup/popup */ "./src/react/components/popup/popup.tsx");
3228
3352
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _react_components_popup_popup__WEBPACK_IMPORTED_MODULE_54__["Popup"]; });
3229
3353
 
3230
- /* harmony import */ var _react_components_list_list__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../react/components/list/list */ "./src/react/components/list/list.tsx");
3231
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _react_components_list_list__WEBPACK_IMPORTED_MODULE_55__["List"]; });
3354
+ /* harmony import */ var _react_components_list_list_item_content__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../react/components/list/list-item-content */ "./src/react/components/list/list-item-content.tsx");
3355
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListItemContent", function() { return _react_components_list_list_item_content__WEBPACK_IMPORTED_MODULE_55__["ListItemContent"]; });
3356
+
3357
+ /* harmony import */ var _react_components_list_list_item_group__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../react/components/list/list-item-group */ "./src/react/components/list/list-item-group.tsx");
3358
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListItemGroup", function() { return _react_components_list_list_item_group__WEBPACK_IMPORTED_MODULE_56__["ListItemGroup"]; });
3232
3359
 
3233
- /* harmony import */ var _react_components_title_title_actions__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../react/components/title/title-actions */ "./src/react/components/title/title-actions.tsx");
3234
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TitleActions", function() { return _react_components_title_title_actions__WEBPACK_IMPORTED_MODULE_56__["TitleActions"]; });
3360
+ /* harmony import */ var _react_components_list_list__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../react/components/list/list */ "./src/react/components/list/list.tsx");
3361
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _react_components_list_list__WEBPACK_IMPORTED_MODULE_57__["List"]; });
3235
3362
 
3236
- /* harmony import */ var _react_components_title_title_element__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../react/components/title/title-element */ "./src/react/components/title/title-element.tsx");
3237
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TitleElement", function() { return _react_components_title_title_element__WEBPACK_IMPORTED_MODULE_57__["TitleElement"]; });
3363
+ /* harmony import */ var _react_components_title_title_actions__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../react/components/title/title-actions */ "./src/react/components/title/title-actions.tsx");
3364
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TitleActions", function() { return _react_components_title_title_actions__WEBPACK_IMPORTED_MODULE_58__["TitleActions"]; });
3238
3365
 
3239
- /* harmony import */ var _react_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../react/components/action-bar/action-bar */ "./src/react/components/action-bar/action-bar.tsx");
3240
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyActionBar", function() { return _react_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_58__["SurveyActionBar"]; });
3366
+ /* harmony import */ var _react_components_title_title_element__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../react/components/title/title-element */ "./src/react/components/title/title-element.tsx");
3367
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TitleElement", function() { return _react_components_title_title_element__WEBPACK_IMPORTED_MODULE_59__["TitleElement"]; });
3241
3368
 
3242
- /* harmony import */ var _react_components_survey_header_logo_image__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../react/components/survey-header/logo-image */ "./src/react/components/survey-header/logo-image.tsx");
3243
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LogoImage", function() { return _react_components_survey_header_logo_image__WEBPACK_IMPORTED_MODULE_59__["LogoImage"]; });
3369
+ /* harmony import */ var _react_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../react/components/action-bar/action-bar */ "./src/react/components/action-bar/action-bar.tsx");
3370
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyActionBar", function() { return _react_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_60__["SurveyActionBar"]; });
3244
3371
 
3245
- /* harmony import */ var _react_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../react/components/survey-header/survey-header */ "./src/react/components/survey-header/survey-header.tsx");
3246
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyHeader", function() { return _react_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_60__["SurveyHeader"]; });
3372
+ /* harmony import */ var _react_components_survey_header_logo_image__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../react/components/survey-header/logo-image */ "./src/react/components/survey-header/logo-image.tsx");
3373
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LogoImage", function() { return _react_components_survey_header_logo_image__WEBPACK_IMPORTED_MODULE_61__["LogoImage"]; });
3247
3374
 
3248
- /* harmony import */ var _react_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../react/components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
3249
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgIcon", function() { return _react_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_61__["SvgIcon"]; });
3375
+ /* harmony import */ var _react_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../react/components/survey-header/survey-header */ "./src/react/components/survey-header/survey-header.tsx");
3376
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyHeader", function() { return _react_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_62__["SurveyHeader"]; });
3250
3377
 
3251
- /* harmony import */ var _react_components_matrix_actions_remove_button_remove_button__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../react/components/matrix-actions/remove-button/remove-button */ "./src/react/components/matrix-actions/remove-button/remove-button.tsx");
3252
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDynamicRemoveButton", function() { return _react_components_matrix_actions_remove_button_remove_button__WEBPACK_IMPORTED_MODULE_62__["SurveyQuestionMatrixDynamicRemoveButton"]; });
3378
+ /* harmony import */ var _react_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../react/components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
3379
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgIcon", function() { return _react_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_63__["SvgIcon"]; });
3253
3380
 
3254
- /* harmony import */ var _react_components_matrix_actions_detail_button_detail_button__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../react/components/matrix-actions/detail-button/detail-button */ "./src/react/components/matrix-actions/detail-button/detail-button.tsx");
3255
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDetailButton", function() { return _react_components_matrix_actions_detail_button_detail_button__WEBPACK_IMPORTED_MODULE_63__["SurveyQuestionMatrixDetailButton"]; });
3381
+ /* harmony import */ var _react_components_matrix_actions_remove_button_remove_button__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../react/components/matrix-actions/remove-button/remove-button */ "./src/react/components/matrix-actions/remove-button/remove-button.tsx");
3382
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDynamicRemoveButton", function() { return _react_components_matrix_actions_remove_button_remove_button__WEBPACK_IMPORTED_MODULE_64__["SurveyQuestionMatrixDynamicRemoveButton"]; });
3256
3383
 
3257
- /* harmony import */ var _react_components_matrix_actions_drag_drop_icon_drag_drop_icon__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../react/components/matrix-actions/drag-drop-icon/drag-drop-icon */ "./src/react/components/matrix-actions/drag-drop-icon/drag-drop-icon.tsx");
3258
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDynamicDragDropIcon", function() { return _react_components_matrix_actions_drag_drop_icon_drag_drop_icon__WEBPACK_IMPORTED_MODULE_64__["SurveyQuestionMatrixDynamicDragDropIcon"]; });
3384
+ /* harmony import */ var _react_components_matrix_actions_detail_button_detail_button__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../react/components/matrix-actions/detail-button/detail-button */ "./src/react/components/matrix-actions/detail-button/detail-button.tsx");
3385
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDetailButton", function() { return _react_components_matrix_actions_detail_button_detail_button__WEBPACK_IMPORTED_MODULE_65__["SurveyQuestionMatrixDetailButton"]; });
3259
3386
 
3260
- /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_add_btn__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-add-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-add-btn.tsx");
3261
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicAddButton", function() { return _react_components_paneldynamic_actions_paneldynamic_add_btn__WEBPACK_IMPORTED_MODULE_65__["SurveyQuestionPanelDynamicAddButton"]; });
3387
+ /* harmony import */ var _react_components_matrix_actions_drag_drop_icon_drag_drop_icon__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../react/components/matrix-actions/drag-drop-icon/drag-drop-icon */ "./src/react/components/matrix-actions/drag-drop-icon/drag-drop-icon.tsx");
3388
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDynamicDragDropIcon", function() { return _react_components_matrix_actions_drag_drop_icon_drag_drop_icon__WEBPACK_IMPORTED_MODULE_66__["SurveyQuestionMatrixDynamicDragDropIcon"]; });
3262
3389
 
3263
- /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_remove_btn__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-remove-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-remove-btn.tsx");
3264
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicRemoveButton", function() { return _react_components_paneldynamic_actions_paneldynamic_remove_btn__WEBPACK_IMPORTED_MODULE_66__["SurveyQuestionPanelDynamicRemoveButton"]; });
3390
+ /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_add_btn__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-add-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-add-btn.tsx");
3391
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicAddButton", function() { return _react_components_paneldynamic_actions_paneldynamic_add_btn__WEBPACK_IMPORTED_MODULE_67__["SurveyQuestionPanelDynamicAddButton"]; });
3265
3392
 
3266
- /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_prev_btn__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-prev-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-prev-btn.tsx");
3267
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicPrevButton", function() { return _react_components_paneldynamic_actions_paneldynamic_prev_btn__WEBPACK_IMPORTED_MODULE_67__["SurveyQuestionPanelDynamicPrevButton"]; });
3393
+ /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_remove_btn__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-remove-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-remove-btn.tsx");
3394
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicRemoveButton", function() { return _react_components_paneldynamic_actions_paneldynamic_remove_btn__WEBPACK_IMPORTED_MODULE_68__["SurveyQuestionPanelDynamicRemoveButton"]; });
3268
3395
 
3269
- /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_next_btn__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-next-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-next-btn.tsx");
3270
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicNextButton", function() { return _react_components_paneldynamic_actions_paneldynamic_next_btn__WEBPACK_IMPORTED_MODULE_68__["SurveyQuestionPanelDynamicNextButton"]; });
3396
+ /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_prev_btn__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-prev-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-prev-btn.tsx");
3397
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicPrevButton", function() { return _react_components_paneldynamic_actions_paneldynamic_prev_btn__WEBPACK_IMPORTED_MODULE_69__["SurveyQuestionPanelDynamicPrevButton"]; });
3271
3398
 
3272
- /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_progress_text__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-progress-text */ "./src/react/components/paneldynamic-actions/paneldynamic-progress-text.tsx");
3273
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicProgressText", function() { return _react_components_paneldynamic_actions_paneldynamic_progress_text__WEBPACK_IMPORTED_MODULE_69__["SurveyQuestionPanelDynamicProgressText"]; });
3399
+ /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_next_btn__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-next-btn */ "./src/react/components/paneldynamic-actions/paneldynamic-next-btn.tsx");
3400
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicNextButton", function() { return _react_components_paneldynamic_actions_paneldynamic_next_btn__WEBPACK_IMPORTED_MODULE_70__["SurveyQuestionPanelDynamicNextButton"]; });
3274
3401
 
3275
- /* harmony import */ var _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../react/components/survey-actions/survey-nav-button */ "./src/react/components/survey-actions/survey-nav-button.tsx");
3276
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyNavigationButton", function() { return _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_70__["SurveyNavigationButton"]; });
3402
+ /* harmony import */ var _react_components_paneldynamic_actions_paneldynamic_progress_text__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../react/components/paneldynamic-actions/paneldynamic-progress-text */ "./src/react/components/paneldynamic-actions/paneldynamic-progress-text.tsx");
3403
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamicProgressText", function() { return _react_components_paneldynamic_actions_paneldynamic_progress_text__WEBPACK_IMPORTED_MODULE_71__["SurveyQuestionPanelDynamicProgressText"]; });
3277
3404
 
3278
- /* harmony import */ var _react_components_question_error__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../react/components/question-error */ "./src/react/components/question-error.tsx");
3279
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionErrorComponent", function() { return _react_components_question_error__WEBPACK_IMPORTED_MODULE_71__["QuestionErrorComponent"]; });
3405
+ /* harmony import */ var _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../react/components/survey-actions/survey-nav-button */ "./src/react/components/survey-actions/survey-nav-button.tsx");
3406
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyNavigationButton", function() { return _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_72__["SurveyNavigationButton"]; });
3280
3407
 
3281
- /* harmony import */ var _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../react/components/matrix/row */ "./src/react/components/matrix/row.tsx");
3282
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixRow", function() { return _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_72__["MatrixRow"]; });
3408
+ /* harmony import */ var _react_components_question_error__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../react/components/question-error */ "./src/react/components/question-error.tsx");
3409
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionErrorComponent", function() { return _react_components_question_error__WEBPACK_IMPORTED_MODULE_73__["QuestionErrorComponent"]; });
3283
3410
 
3284
- /* harmony import */ var _react_components_skeleton__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../react/components/skeleton */ "./src/react/components/skeleton.tsx");
3285
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Skeleton", function() { return _react_components_skeleton__WEBPACK_IMPORTED_MODULE_73__["Skeleton"]; });
3411
+ /* harmony import */ var _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../react/components/matrix/row */ "./src/react/components/matrix/row.tsx");
3412
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixRow", function() { return _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_74__["MatrixRow"]; });
3286
3413
 
3287
- /* harmony import */ var _react_components_notifier__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../react/components/notifier */ "./src/react/components/notifier.tsx");
3288
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotifierComponent", function() { return _react_components_notifier__WEBPACK_IMPORTED_MODULE_74__["NotifierComponent"]; });
3414
+ /* harmony import */ var _react_components_skeleton__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../react/components/skeleton */ "./src/react/components/skeleton.tsx");
3415
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Skeleton", function() { return _react_components_skeleton__WEBPACK_IMPORTED_MODULE_75__["Skeleton"]; });
3289
3416
 
3290
- /* harmony import */ var _react_components_components_container__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../react/components/components-container */ "./src/react/components/components-container.tsx");
3291
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentsContainer", function() { return _react_components_components_container__WEBPACK_IMPORTED_MODULE_75__["ComponentsContainer"]; });
3417
+ /* harmony import */ var _react_components_notifier__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../react/components/notifier */ "./src/react/components/notifier.tsx");
3418
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotifierComponent", function() { return _react_components_notifier__WEBPACK_IMPORTED_MODULE_76__["NotifierComponent"]; });
3292
3419
 
3293
- /* harmony import */ var _react_components_character_counter__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../react/components/character-counter */ "./src/react/components/character-counter.tsx");
3294
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CharacterCounterComponent", function() { return _react_components_character_counter__WEBPACK_IMPORTED_MODULE_76__["CharacterCounterComponent"]; });
3420
+ /* harmony import */ var _react_components_components_container__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../react/components/components-container */ "./src/react/components/components-container.tsx");
3421
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentsContainer", function() { return _react_components_components_container__WEBPACK_IMPORTED_MODULE_77__["ComponentsContainer"]; });
3295
3422
 
3296
- /* harmony import */ var _react_components_header__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../react/components/header */ "./src/react/components/header.tsx");
3297
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderMobile", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["HeaderMobile"]; });
3423
+ /* harmony import */ var _react_components_character_counter__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../react/components/character-counter */ "./src/react/components/character-counter.tsx");
3424
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CharacterCounterComponent", function() { return _react_components_character_counter__WEBPACK_IMPORTED_MODULE_78__["CharacterCounterComponent"]; });
3298
3425
 
3299
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCell", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["HeaderCell"]; });
3426
+ /* harmony import */ var _react_components_header__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../react/components/header */ "./src/react/components/header.tsx");
3427
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderMobile", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_79__["HeaderMobile"]; });
3300
3428
 
3301
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["Header"]; });
3429
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCell", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_79__["HeaderCell"]; });
3302
3430
 
3303
- /* harmony import */ var _react_string_viewer__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../react/string-viewer */ "./src/react/string-viewer.tsx");
3304
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringViewer", function() { return _react_string_viewer__WEBPACK_IMPORTED_MODULE_78__["SurveyLocStringViewer"]; });
3431
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_79__["Header"]; });
3305
3432
 
3306
- /* harmony import */ var _react_string_editor__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../react/string-editor */ "./src/react/string-editor.tsx");
3307
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_string_editor__WEBPACK_IMPORTED_MODULE_79__["SurveyLocStringEditor"]; });
3433
+ /* harmony import */ var _react_string_viewer__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../react/string-viewer */ "./src/react/string-viewer.tsx");
3434
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringViewer", function() { return _react_string_viewer__WEBPACK_IMPORTED_MODULE_80__["SurveyLocStringViewer"]; });
3308
3435
 
3309
- /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
3310
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_80__["LoadingIndicatorComponent"]; });
3436
+ /* harmony import */ var _react_string_editor__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../react/string-editor */ "./src/react/string-editor.tsx");
3437
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_string_editor__WEBPACK_IMPORTED_MODULE_81__["SurveyLocStringEditor"]; });
3311
3438
 
3312
- /* harmony import */ var _react_svgbundle__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../react/svgbundle */ "./src/react/svgbundle.tsx");
3313
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_svgbundle__WEBPACK_IMPORTED_MODULE_81__["SvgBundleComponent"]; });
3439
+ /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
3440
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_82__["LoadingIndicatorComponent"]; });
3441
+
3442
+ /* harmony import */ var _react_svgbundle__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../react/svgbundle */ "./src/react/svgbundle.tsx");
3443
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_svgbundle__WEBPACK_IMPORTED_MODULE_83__["SvgBundleComponent"]; });
3314
3444
 
3315
3445
  // react
3316
3446
 
@@ -3392,6 +3522,8 @@ __webpack_require__.r(__webpack_exports__);
3392
3522
 
3393
3523
 
3394
3524
 
3525
+
3526
+
3395
3527
 
3396
3528
 
3397
3529
 
@@ -3405,7 +3537,7 @@ __webpack_require__.r(__webpack_exports__);
3405
3537
  /*!*********************************!*\
3406
3538
  !*** ./src/entries/react-ui.ts ***!
3407
3539
  \*********************************/
3408
- /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent, SurveyModel, SurveyWindowModel, settings, surveyLocalization, surveyStrings, Model, ResponsivityManager, VerticalResponsivityManager, unwrap */
3540
+ /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, SurveyQuestionRankingItemContent, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, ListItemContent, ListItemGroup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent, SurveyModel, SurveyWindowModel, settings, surveyLocalization, surveyStrings, Model, ResponsivityManager, VerticalResponsivityManager, unwrap */
3409
3541
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3410
3542
 
3411
3543
  "use strict";
@@ -3453,6 +3585,8 @@ __webpack_require__.r(__webpack_exports__);
3453
3585
 
3454
3586
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItem", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["SurveyQuestionRankingItem"]; });
3455
3587
 
3588
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItemContent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["SurveyQuestionRankingItemContent"]; });
3589
+
3456
3590
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingItem", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["RatingItem"]; });
3457
3591
 
3458
3592
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingItemStar", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["RatingItemStar"]; });
@@ -3551,6 +3685,10 @@ __webpack_require__.r(__webpack_exports__);
3551
3685
 
3552
3686
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["Popup"]; });
3553
3687
 
3688
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListItemContent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["ListItemContent"]; });
3689
+
3690
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListItemGroup", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["ListItemGroup"]; });
3691
+
3554
3692
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["List"]; });
3555
3693
 
3556
3694
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TitleActions", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_0__["TitleActions"]; });
@@ -3638,7 +3776,7 @@ __webpack_require__.r(__webpack_exports__);
3638
3776
 
3639
3777
 
3640
3778
 
3641
- Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.10.5", "survey-react-ui");
3779
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.11.1", "survey-react-ui");
3642
3780
 
3643
3781
 
3644
3782
  /***/ }),
@@ -7130,7 +7268,7 @@ var FunctionOperand = /** @class */ (function (_super) {
7130
7268
  return this.evaluateCore(processValue);
7131
7269
  };
7132
7270
  FunctionOperand.prototype.evaluateCore = function (processValue) {
7133
- return _functionsfactory__WEBPACK_IMPORTED_MODULE_1__["FunctionFactory"].Instance.run(this.originalValue, this.parameters.evaluate(processValue), processValue.properties);
7271
+ return _functionsfactory__WEBPACK_IMPORTED_MODULE_1__["FunctionFactory"].Instance.run(this.originalValue, this.parameters.evaluate(processValue), processValue.properties, this.parameters.values);
7134
7272
  };
7135
7273
  FunctionOperand.prototype.toString = function (func) {
7136
7274
  if (func === void 0) { func = undefined; }
@@ -7476,7 +7614,7 @@ var FunctionFactory = /** @class */ (function () {
7476
7614
  }
7477
7615
  return result.sort();
7478
7616
  };
7479
- FunctionFactory.prototype.run = function (name, params, properties) {
7617
+ FunctionFactory.prototype.run = function (name, params, properties, originalParams) {
7480
7618
  if (properties === void 0) { properties = null; }
7481
7619
  var func = this.functionHash[name];
7482
7620
  if (!func) {
@@ -7491,7 +7629,7 @@ var FunctionFactory = /** @class */ (function () {
7491
7629
  classRunner[key] = properties[key];
7492
7630
  }
7493
7631
  }
7494
- return classRunner.func(params);
7632
+ return classRunner.func(params, originalParams);
7495
7633
  };
7496
7634
  FunctionFactory.Instance = new FunctionFactory();
7497
7635
  return FunctionFactory;
@@ -7563,7 +7701,7 @@ function avg(params) {
7563
7701
  return arr.length > 0 ? res / arr.length : 0;
7564
7702
  }
7565
7703
  FunctionFactory.Instance.register("avg", avg);
7566
- function getInArrayParams(params) {
7704
+ function getInArrayParams(params, originalParams) {
7567
7705
  if (params.length < 2 || params.length > 3)
7568
7706
  return null;
7569
7707
  var arr = params[0];
@@ -7574,10 +7712,16 @@ function getInArrayParams(params) {
7574
7712
  var name = params[1];
7575
7713
  if (typeof name !== "string" && !(name instanceof String))
7576
7714
  return null;
7577
- var expression = params.length === 3 ? params[2] : undefined;
7715
+ var expression = params.length > 2 ? params[2] : undefined;
7578
7716
  if (typeof expression !== "string" && !(expression instanceof String)) {
7579
7717
  expression = undefined;
7580
7718
  }
7719
+ if (!expression) {
7720
+ var operand = Array.isArray(originalParams) && originalParams.length > 2 ? originalParams[2] : undefined;
7721
+ if (operand && !!operand.toString()) {
7722
+ expression = operand.toString();
7723
+ }
7724
+ }
7581
7725
  return { data: arr, name: name, expression: expression };
7582
7726
  }
7583
7727
  function convertToNumber(val) {
@@ -7593,9 +7737,9 @@ function processItemInArray(item, name, res, func, needToConvert, condition) {
7593
7737
  var val = needToConvert ? convertToNumber(item[name]) : 1;
7594
7738
  return func(res, val);
7595
7739
  }
7596
- function calcInArray(params, func, needToConvert) {
7740
+ function calcInArray(params, originalParams, func, needToConvert) {
7597
7741
  if (needToConvert === void 0) { needToConvert = true; }
7598
- var v = getInArrayParams(params);
7742
+ var v = getInArrayParams(params, originalParams);
7599
7743
  if (!v)
7600
7744
  return undefined;
7601
7745
  var condition = !!v.expression ? new _conditions__WEBPACK_IMPORTED_MODULE_3__["ConditionRunner"](v.expression) : undefined;
@@ -7615,8 +7759,8 @@ function calcInArray(params, func, needToConvert) {
7615
7759
  }
7616
7760
  return res;
7617
7761
  }
7618
- function sumInArray(params) {
7619
- var res = calcInArray(params, function (res, val) {
7762
+ function sumInArray(params, originalParams) {
7763
+ var res = calcInArray(params, originalParams, function (res, val) {
7620
7764
  if (res == undefined)
7621
7765
  res = 0;
7622
7766
  if (val == undefined || val == null)
@@ -7626,8 +7770,8 @@ function sumInArray(params) {
7626
7770
  return res !== undefined ? res : 0;
7627
7771
  }
7628
7772
  FunctionFactory.Instance.register("sumInArray", sumInArray);
7629
- function minInArray(params) {
7630
- return calcInArray(params, function (res, val) {
7773
+ function minInArray(params, originalParams) {
7774
+ return calcInArray(params, originalParams, function (res, val) {
7631
7775
  if (res == undefined)
7632
7776
  return val;
7633
7777
  if (val == undefined || val == null)
@@ -7636,8 +7780,8 @@ function minInArray(params) {
7636
7780
  });
7637
7781
  }
7638
7782
  FunctionFactory.Instance.register("minInArray", minInArray);
7639
- function maxInArray(params) {
7640
- return calcInArray(params, function (res, val) {
7783
+ function maxInArray(params, originalParams) {
7784
+ return calcInArray(params, originalParams, function (res, val) {
7641
7785
  if (res == undefined)
7642
7786
  return val;
7643
7787
  if (val == undefined || val == null)
@@ -7646,8 +7790,8 @@ function maxInArray(params) {
7646
7790
  });
7647
7791
  }
7648
7792
  FunctionFactory.Instance.register("maxInArray", maxInArray);
7649
- function countInArray(params) {
7650
- var res = calcInArray(params, function (res, val) {
7793
+ function countInArray(params, originalParams) {
7794
+ var res = calcInArray(params, originalParams, function (res, val) {
7651
7795
  if (res == undefined)
7652
7796
  res = 0;
7653
7797
  if (val == undefined || val == null)
@@ -7657,11 +7801,11 @@ function countInArray(params) {
7657
7801
  return res !== undefined ? res : 0;
7658
7802
  }
7659
7803
  FunctionFactory.Instance.register("countInArray", countInArray);
7660
- function avgInArray(params) {
7661
- var count = countInArray(params);
7804
+ function avgInArray(params, originalParams) {
7805
+ var count = countInArray(params, originalParams);
7662
7806
  if (count == 0)
7663
7807
  return 0;
7664
- return sumInArray(params) / count;
7808
+ return sumInArray(params, originalParams) / count;
7665
7809
  }
7666
7810
  FunctionFactory.Instance.register("avgInArray", avgInArray);
7667
7811
  function iif(params) {
@@ -7678,23 +7822,31 @@ function getDate(params) {
7678
7822
  return new Date(params[0]);
7679
7823
  }
7680
7824
  FunctionFactory.Instance.register("getDate", getDate);
7825
+ function dateDiffMonths(date1Param, date2Param, type) {
7826
+ if (type === "days")
7827
+ return diffDays([date1Param, date2Param]);
7828
+ var date1 = !!date1Param ? new Date(date1Param) : new Date();
7829
+ var date2 = !!date2Param ? new Date(date2Param) : new Date();
7830
+ var age = date2.getFullYear() - date1.getFullYear();
7831
+ type = type || "years";
7832
+ var ageInMonths = age * 12 + date2.getMonth() - date1.getMonth();
7833
+ if (date2.getDate() < date1.getDate()) {
7834
+ ageInMonths -= 1;
7835
+ }
7836
+ return type === "months" ? ageInMonths : ~~(ageInMonths / 12);
7837
+ }
7681
7838
  function age(params) {
7682
- if (!params && params.length < 1)
7839
+ if (!Array.isArray(params) || params.length < 1 || !params[0])
7683
7840
  return null;
7684
- if (!params[0])
7685
- return null;
7686
- var birthDate = new Date(params[0]);
7687
- var today = new Date();
7688
- var age = today.getFullYear() - birthDate.getFullYear();
7689
- if (age > 0) {
7690
- var m = today.getMonth() - birthDate.getMonth();
7691
- if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
7692
- age -= 1;
7693
- }
7694
- }
7695
- return age;
7841
+ return dateDiffMonths(params[0], undefined, (params.length > 1 ? params[1] : "") || "years");
7696
7842
  }
7697
7843
  FunctionFactory.Instance.register("age", age);
7844
+ function dateDiff(params) {
7845
+ if (!Array.isArray(params) || params.length < 2 || !params[0] || !params[1])
7846
+ return null;
7847
+ return dateDiffMonths(params[0], params[1], (params.length > 2 ? params[2] : "") || "days");
7848
+ }
7849
+ FunctionFactory.Instance.register("dateDiff", dateDiff);
7698
7850
  function isContainerReadyCore(container) {
7699
7851
  if (!container)
7700
7852
  return false;
@@ -10562,8 +10714,10 @@ var defaultListCss = {
10562
10714
  itemWithIcon: "sv-list__item--with-icon",
10563
10715
  itemDisabled: "sv-list__item--disabled",
10564
10716
  itemFocused: "sv-list__item--focused",
10717
+ itemHovered: "sv-list__item--hovered",
10565
10718
  itemTextWrap: "sv-list__item-text--wrap",
10566
10719
  itemIcon: "sv-list__item-icon",
10720
+ itemMarkerIcon: "sv-list-item__marker-icon",
10567
10721
  itemSeparator: "sv-list__item-separator",
10568
10722
  itemBody: "sv-list__item-body",
10569
10723
  itemsContainer: "sv-list",
@@ -10589,10 +10743,17 @@ var ListModel = /** @class */ (function (_super) {
10589
10743
  if (_this.allowSelection) {
10590
10744
  _this.selectedItem = itemValue;
10591
10745
  }
10746
+ var action = itemValue.action;
10747
+ if (!!action) {
10748
+ action(itemValue);
10749
+ }
10592
10750
  if (!!_this.onSelectionChanged) {
10593
10751
  _this.onSelectionChanged(itemValue);
10594
10752
  }
10595
10753
  };
10754
+ _this.onItemHover = function (itemValue) {
10755
+ _this.mouseOverHandler(itemValue);
10756
+ };
10596
10757
  _this.isItemDisabled = function (itemValue) {
10597
10758
  return itemValue.enabled !== undefined && !itemValue.enabled;
10598
10759
  };
@@ -10615,6 +10776,7 @@ var ListModel = /** @class */ (function (_super) {
10615
10776
  .append(_this.cssClasses.itemDisabled, _this.isItemDisabled(itemValue))
10616
10777
  .append(_this.cssClasses.itemFocused, _this.isItemFocused(itemValue))
10617
10778
  .append(_this.cssClasses.itemSelected, _this.isItemSelected(itemValue))
10779
+ .append(_this.cssClasses.itemHovered, itemValue.isHovered)
10618
10780
  .append(_this.cssClasses.itemTextWrap, _this.textWrapEnabled)
10619
10781
  .append(itemValue.css)
10620
10782
  .toString();
@@ -10623,8 +10785,28 @@ var ListModel = /** @class */ (function (_super) {
10623
10785
  var level = itemValue.level || 0;
10624
10786
  return (level + 1) * ListModel.INDENT + "px";
10625
10787
  };
10626
- _this.setItems(items);
10627
- _this.selectedItem = selectedItem;
10788
+ if (Object.keys(items).indexOf("items") !== -1) {
10789
+ var options_1 = items;
10790
+ Object.keys(options_1).forEach(function (key) {
10791
+ switch (key) {
10792
+ case "items":
10793
+ _this.setItems(options_1.items);
10794
+ break;
10795
+ case "onFilterStringChangedCallback":
10796
+ _this.setOnFilterStringChangedCallback(options_1.onFilterStringChangedCallback);
10797
+ break;
10798
+ case "onTextSearchCallback":
10799
+ _this.setOnTextSearchCallback(options_1.onTextSearchCallback);
10800
+ break;
10801
+ default:
10802
+ _this[key] = options_1[key];
10803
+ }
10804
+ });
10805
+ }
10806
+ else {
10807
+ _this.setItems(items);
10808
+ _this.selectedItem = selectedItem;
10809
+ }
10628
10810
  return _this;
10629
10811
  }
10630
10812
  ListModel.prototype.hasText = function (item, filterStringInLow) {
@@ -10640,6 +10822,26 @@ var ListModel = /** @class */ (function (_super) {
10640
10822
  ListModel.prototype.isItemVisible = function (item) {
10641
10823
  return item.visible && (!this.shouldProcessFilter || this.hasText(item, this.filterString));
10642
10824
  };
10825
+ ListModel.prototype.getRenderedActions = function () {
10826
+ var actions = _super.prototype.getRenderedActions.call(this);
10827
+ if (this.filterString) {
10828
+ var newActions_1 = [];
10829
+ actions.forEach(function (action) {
10830
+ newActions_1.push(action);
10831
+ if (action.items) {
10832
+ action.items.forEach(function (item) {
10833
+ var a = new _actions_action__WEBPACK_IMPORTED_MODULE_2__["Action"](item);
10834
+ if (!a.iconName) {
10835
+ a.iconName = action.iconName;
10836
+ }
10837
+ newActions_1.push(a);
10838
+ });
10839
+ }
10840
+ });
10841
+ return newActions_1;
10842
+ }
10843
+ return actions;
10844
+ };
10643
10845
  Object.defineProperty(ListModel.prototype, "visibleItems", {
10644
10846
  get: function () {
10645
10847
  var _this = this;
@@ -10700,6 +10902,14 @@ var ListModel = /** @class */ (function (_super) {
10700
10902
  ListModel.prototype.getDefaultCssClasses = function () {
10701
10903
  return defaultListCss;
10702
10904
  };
10905
+ ListModel.prototype.popupAfterShowCallback = function (itemValue) {
10906
+ this.addScrollEventListener(function () {
10907
+ itemValue.hidePopup();
10908
+ });
10909
+ };
10910
+ ListModel.prototype.onItemLeave = function (itemValue) {
10911
+ itemValue.hidePopupDelayed(this.subItemsHideDelay);
10912
+ };
10703
10913
  ListModel.prototype.areSameItems = function (item1, item2) {
10704
10914
  if (!!this.areSameItemsCallback)
10705
10915
  return this.areSameItemsCallback(item1, item2);
@@ -10851,6 +11061,7 @@ var ListModel = /** @class */ (function (_super) {
10851
11061
  };
10852
11062
  ListModel.prototype.addScrollEventListener = function (handler) {
10853
11063
  if (!!handler) {
11064
+ this.removeScrollEventListener();
10854
11065
  this.scrollHandler = handler;
10855
11066
  }
10856
11067
  if (!!this.scrollHandler) {
@@ -11754,13 +11965,6 @@ var PopupModel = /** @class */ (function (_super) {
11754
11965
  }
11755
11966
  this.setPropertyValue("isVisible", value);
11756
11967
  this.onVisibilityChanged.fire(this, { model: this, isVisible: value });
11757
- if (this.isVisible) {
11758
- this.onShow();
11759
- }
11760
- else {
11761
- this.refreshInnerModel();
11762
- this.onHide();
11763
- }
11764
11968
  },
11765
11969
  enumerable: false,
11766
11970
  configurable: true
@@ -11768,6 +11972,14 @@ var PopupModel = /** @class */ (function (_super) {
11768
11972
  PopupModel.prototype.toggleVisibility = function () {
11769
11973
  this.isVisible = !this.isVisible;
11770
11974
  };
11975
+ PopupModel.prototype.show = function () {
11976
+ if (!this.isVisible)
11977
+ this.isVisible = true;
11978
+ };
11979
+ PopupModel.prototype.hide = function () {
11980
+ if (this.isVisible)
11981
+ this.isVisible = false;
11982
+ };
11771
11983
  PopupModel.prototype.recalculatePosition = function (isResetHeight) {
11772
11984
  this.onRecalculatePosition.fire(this, { isResetHeight: isResetHeight });
11773
11985
  };
@@ -11776,6 +11988,10 @@ var PopupModel = /** @class */ (function (_super) {
11776
11988
  this.onFooterActionsCreated.fire(this, options);
11777
11989
  return options.actions;
11778
11990
  };
11991
+ PopupModel.prototype.onHiding = function () {
11992
+ this.refreshInnerModel();
11993
+ this.onHide();
11994
+ };
11779
11995
  PopupModel.prototype.dispose = function () {
11780
11996
  _super.prototype.dispose.call(this);
11781
11997
  this.onDispose();
@@ -11798,6 +12014,9 @@ var PopupModel = /** @class */ (function (_super) {
11798
12014
  __decorate([
11799
12015
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
11800
12016
  ], PopupModel.prototype, "isModal", void 0);
12017
+ __decorate([
12018
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
12019
+ ], PopupModel.prototype, "canShrink", void 0);
11801
12020
  __decorate([
11802
12021
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
11803
12022
  ], PopupModel.prototype, "isFocusedContent", void 0);
@@ -11897,7 +12116,7 @@ var SurveyQuestionBooleanCheckbox = /** @class */ (function (_super) {
11897
12116
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: cssClasses.checkboxLabel },
11898
12117
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
11899
12118
  ? ""
11900
- : this.question.booleanValue, id: this.question.inputId, className: cssClasses.controlCheckbox, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
12119
+ : this.question.booleanValue, id: this.question.inputId, className: cssClasses.controlCheckbox, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.booleanValue || false, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
11901
12120
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.checkboxMaterialDecorator },
11902
12121
  this.question.svgIcon ?
11903
12122
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: cssClasses.checkboxItemDecorator },
@@ -11966,7 +12185,7 @@ var SurveyQuestionBooleanRadio = /** @class */ (function (_super) {
11966
12185
  var cssClasses = this.question.cssClasses;
11967
12186
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { role: "presentation", className: this.question.getRadioItemClass(cssClasses, value) },
11968
12187
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: cssClasses.radioLabel },
11969
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "radio", name: this.question.name, value: value, "aria-errormessage": this.question.ariaErrormessage, checked: value === this.question.booleanValueRendered, disabled: this.question.isInputReadOnly, className: cssClasses.itemRadioControl, onChange: this.handleOnChange }),
12188
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "radio", name: this.question.name, value: value, "aria-errormessage": this.question.ariaErrormessage, checked: value === this.question.booleanValueRendered, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, className: cssClasses.itemRadioControl, onChange: this.handleOnChange }),
11970
12189
  this.question.cssClasses.materialRadioDecorator ?
11971
12190
  (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.materialRadioDecorator }, this.question.itemSvgIcon ?
11972
12191
  (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: cssClasses.itemRadioDecorator },
@@ -12091,7 +12310,7 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
12091
12310
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: itemClass, onClick: this.handleOnClick },
12092
12311
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
12093
12312
  ? ""
12094
- : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
12313
+ : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
12095
12314
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, _this.question.swapOrder); } },
12096
12315
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(this.question.swapOrder) }, this.renderLocString(this.question.locLabelLeft))),
12097
12316
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
@@ -12748,11 +12967,11 @@ var SurveyFilePreview = /** @class */ (function (_super) {
12748
12967
  var previews = this.question.previewValue.map(function (val, index) {
12749
12968
  if (!val)
12750
12969
  return null;
12751
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { key: _this.question.inputId + "_" + index, className: _this.question.cssClasses.previewItem, style: { display: _this.question.isPreviewVisible(index) ? undefined : "none" } },
12970
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { key: _this.question.inputId + "_" + index, className: _this.question.cssClasses.previewItem, onClick: function (event) { return _this.question.doDownloadFileFromContainer(event); }, style: { display: _this.question.isPreviewVisible(index) ? undefined : "none" } },
12752
12971
  _this.renderFileSign(_this.question.cssClasses.fileSign, val),
12753
12972
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _this.question.getImageWrapperCss(val) },
12754
12973
  _this.question.canPreviewImage(val) ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("img", { src: val.content, style: { height: _this.question.imageHeight, width: _this.question.imageWidth }, alt: "File preview" })) : (_this.question.cssClasses.defaultImage ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { iconName: _this.question.cssClasses.defaultImageIconId, size: "auto", className: _this.question.cssClasses.defaultImage })) : null),
12755
- val.name && !_this.question.isReadOnly ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _this.question.getRemoveButtonCss(), onClick: function () { return _this.question.doRemoveFile(val); } },
12974
+ val.name && !_this.question.isReadOnly ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _this.question.getRemoveButtonCss(), onClick: function (event) { return _this.question.doRemoveFile(val, event); } },
12756
12975
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: _this.question.cssClasses.removeFile }, _this.question.removeFileCaption),
12757
12976
  (_this.question.cssClasses.removeFileSvgIconId) ?
12758
12977
  (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { title: _this.question.removeFileCaption, iconName: _this.question.cssClasses.removeFileSvgIconId, size: "auto", className: _this.question.cssClasses.removeFileSvg })) : null)) : null),
@@ -12909,6 +13128,166 @@ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.re
12909
13128
  });
12910
13129
 
12911
13130
 
13131
+ /***/ }),
13132
+
13133
+ /***/ "./src/react/components/list/list-item-content.tsx":
13134
+ /*!*********************************************************!*\
13135
+ !*** ./src/react/components/list/list-item-content.tsx ***!
13136
+ \*********************************************************/
13137
+ /*! exports provided: ListItemContent */
13138
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
13139
+
13140
+ "use strict";
13141
+ __webpack_require__.r(__webpack_exports__);
13142
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListItemContent", function() { return ListItemContent; });
13143
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
13144
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
13145
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
13146
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
13147
+ /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
13148
+ var __extends = (undefined && undefined.__extends) || (function () {
13149
+ var extendStatics = function (d, b) {
13150
+ extendStatics = Object.setPrototypeOf ||
13151
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13152
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
13153
+ return extendStatics(d, b);
13154
+ };
13155
+ return function (d, b) {
13156
+ if (typeof b !== "function" && b !== null)
13157
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13158
+ extendStatics(d, b);
13159
+ function __() { this.constructor = d; }
13160
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13161
+ };
13162
+ })();
13163
+
13164
+
13165
+
13166
+
13167
+ var ListItemContent = /** @class */ (function (_super) {
13168
+ __extends(ListItemContent, _super);
13169
+ function ListItemContent() {
13170
+ return _super !== null && _super.apply(this, arguments) || this;
13171
+ }
13172
+ Object.defineProperty(ListItemContent.prototype, "model", {
13173
+ get: function () {
13174
+ return this.props.model;
13175
+ },
13176
+ enumerable: false,
13177
+ configurable: true
13178
+ });
13179
+ Object.defineProperty(ListItemContent.prototype, "item", {
13180
+ get: function () {
13181
+ return this.props.item;
13182
+ },
13183
+ enumerable: false,
13184
+ configurable: true
13185
+ });
13186
+ ListItemContent.prototype.getStateElement = function () {
13187
+ return this.item;
13188
+ };
13189
+ ListItemContent.prototype.render = function () {
13190
+ if (!this.item)
13191
+ return null;
13192
+ var content = [];
13193
+ var text = this.renderLocString(this.item.locTitle, undefined, "locString");
13194
+ if (this.item.iconName) {
13195
+ var icon = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { key: "icon", className: this.model.cssClasses.itemIcon, iconName: this.item.iconName, size: this.item.iconSize, "aria-label": this.item.title });
13196
+ content.push(icon);
13197
+ content.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { key: "text" }, text));
13198
+ }
13199
+ else {
13200
+ content.push(text);
13201
+ }
13202
+ if (this.item.markerIconName) {
13203
+ var icon = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { key: "marker", className: this.item.cssClasses.itemMarkerIcon, iconName: this.item.markerIconName, size: this.item.markerIconSize });
13204
+ content.push(icon);
13205
+ }
13206
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, content);
13207
+ };
13208
+ return ListItemContent;
13209
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
13210
+
13211
+ _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-list-item-content", function (props) {
13212
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ListItemContent, props);
13213
+ });
13214
+
13215
+
13216
+ /***/ }),
13217
+
13218
+ /***/ "./src/react/components/list/list-item-group.tsx":
13219
+ /*!*******************************************************!*\
13220
+ !*** ./src/react/components/list/list-item-group.tsx ***!
13221
+ \*******************************************************/
13222
+ /*! exports provided: ListItemGroup */
13223
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
13224
+
13225
+ "use strict";
13226
+ __webpack_require__.r(__webpack_exports__);
13227
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListItemGroup", function() { return ListItemGroup; });
13228
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
13229
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
13230
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
13231
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
13232
+ /* harmony import */ var _popup_popup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../popup/popup */ "./src/react/components/popup/popup.tsx");
13233
+ var __extends = (undefined && undefined.__extends) || (function () {
13234
+ var extendStatics = function (d, b) {
13235
+ extendStatics = Object.setPrototypeOf ||
13236
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13237
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
13238
+ return extendStatics(d, b);
13239
+ };
13240
+ return function (d, b) {
13241
+ if (typeof b !== "function" && b !== null)
13242
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13243
+ extendStatics(d, b);
13244
+ function __() { this.constructor = d; }
13245
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13246
+ };
13247
+ })();
13248
+
13249
+
13250
+
13251
+
13252
+ var ListItemGroup = /** @class */ (function (_super) {
13253
+ __extends(ListItemGroup, _super);
13254
+ function ListItemGroup() {
13255
+ return _super !== null && _super.apply(this, arguments) || this;
13256
+ }
13257
+ Object.defineProperty(ListItemGroup.prototype, "model", {
13258
+ get: function () {
13259
+ return this.props.model;
13260
+ },
13261
+ enumerable: false,
13262
+ configurable: true
13263
+ });
13264
+ Object.defineProperty(ListItemGroup.prototype, "item", {
13265
+ get: function () {
13266
+ return this.props.item;
13267
+ },
13268
+ enumerable: false,
13269
+ configurable: true
13270
+ });
13271
+ ListItemGroup.prototype.getStateElement = function () {
13272
+ return this.item;
13273
+ };
13274
+ ListItemGroup.prototype.render = function () {
13275
+ var _a;
13276
+ if (!this.item)
13277
+ return null;
13278
+ var newElement = _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement("sv-list-item-content", { item: this.item, key: "content" + this.item.id, model: this.model });
13279
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
13280
+ newElement,
13281
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_popup_popup__WEBPACK_IMPORTED_MODULE_3__["Popup"], { model: (_a = this.item) === null || _a === void 0 ? void 0 : _a.popupModel }));
13282
+ };
13283
+ return ListItemGroup;
13284
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
13285
+
13286
+ _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-list-item-group", function (props) {
13287
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ListItemGroup, props);
13288
+ });
13289
+
13290
+
12912
13291
  /***/ }),
12913
13292
 
12914
13293
  /***/ "./src/react/components/list/list-item.tsx":
@@ -12926,7 +13305,6 @@ __webpack_require__.r(__webpack_exports__);
12926
13305
  /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
12927
13306
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
12928
13307
  /* harmony import */ var _reactSurvey__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../reactSurvey */ "./src/react/reactSurvey.tsx");
12929
- /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
12930
13308
  var __extends = (undefined && undefined.__extends) || (function () {
12931
13309
  var extendStatics = function (d, b) {
12932
13310
  extendStatics = Object.setPrototypeOf ||
@@ -12946,7 +13324,6 @@ var __extends = (undefined && undefined.__extends) || (function () {
12946
13324
 
12947
13325
 
12948
13326
 
12949
-
12950
13327
  var ListItem = /** @class */ (function (_super) {
12951
13328
  __extends(ListItem, _super);
12952
13329
  function ListItem() {
@@ -12981,25 +13358,9 @@ var ListItem = /** @class */ (function (_super) {
12981
13358
  paddingInlineStart: this.model.getItemIndent(this.item)
12982
13359
  };
12983
13360
  var className = this.model.getItemClass(this.item);
12984
- var content = [];
12985
- if (!this.item.component) {
12986
- var text = this.renderLocString(this.item.locTitle, undefined, "locString");
12987
- if (this.item.iconName) {
12988
- var icon = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { key: 1, className: this.model.cssClasses.itemIcon, iconName: this.item.iconName, size: this.item.iconSize, "aria-label": this.item.title });
12989
- content.push(icon);
12990
- content.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { key: 2 }, text));
12991
- }
12992
- else {
12993
- content.push(text);
12994
- }
12995
- }
12996
- else {
12997
- var newElement = _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(this.item.component, { item: this.item, key: this.item.id });
12998
- if (!!newElement) {
12999
- content.push(newElement);
13000
- }
13001
- }
13002
- var contentWrap = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { style: contentWrapStyle, className: this.model.cssClasses.itemBody, title: this.item.locTitle.calculatedText }, content);
13361
+ var itemContent = this.item.component || "sv-list-item-content";
13362
+ var newElement = _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(itemContent, { item: this.item, key: this.item.id, model: this.model });
13363
+ var contentWrap = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { style: contentWrapStyle, className: this.model.cssClasses.itemBody, title: this.item.locTitle.calculatedText, onMouseOver: function (event) { _this.model.onItemHover(_this.item); }, onMouseLeave: function (event) { _this.model.onItemLeave(_this.item); } }, newElement);
13003
13364
  var separator = this.item.needSeparator ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.cssClasses.itemSeparator }) : null;
13004
13365
  var isVisible = this.model.isItemVisible(this.item);
13005
13366
  var style = {
@@ -13971,7 +14332,7 @@ var Popup = /** @class */ (function (_super) {
13971
14332
  };
13972
14333
  Popup.prototype.setTargetElement = function () {
13973
14334
  var container = this.containerRef.current;
13974
- this.popup.setComponentElement(container, this.props.getTarget ? this.props.getTarget(container) : undefined);
14335
+ this.popup.setComponentElement(container, this.props.getTarget ? this.props.getTarget(container) : undefined, this.props.getArea ? this.props.getArea(container) : undefined);
13975
14336
  };
13976
14337
  Popup.prototype.componentDidMount = function () {
13977
14338
  _super.prototype.componentDidMount.call(this);
@@ -14300,7 +14661,7 @@ var RatingItemSmiley = /** @class */ (function (_super) {
14300
14661
  RatingItemSmiley.prototype.render = function () {
14301
14662
  var _this = this;
14302
14663
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, style: this.question.getItemStyle(this.item.itemValue, this.item.highlight), className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
14303
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14664
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14304
14665
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { size: "auto", iconName: this.question.getItemSmileyIconName(this.item.itemValue), title: this.item.text })));
14305
14666
  };
14306
14667
  return RatingItemSmiley;
@@ -14355,7 +14716,7 @@ var RatingItemStar = /** @class */ (function (_super) {
14355
14716
  RatingItemStar.prototype.render = function () {
14356
14717
  var _this = this;
14357
14718
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
14358
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14719
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14359
14720
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { className: "sv-star", size: "auto", iconName: this.question.itemStarIcon, title: this.item.text }),
14360
14721
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { className: "sv-star-2", size: "auto", iconName: this.question.itemStarIconAlt, title: this.item.text })));
14361
14722
  };
@@ -14447,7 +14808,7 @@ var RatingItem = /** @class */ (function (_super) {
14447
14808
  RatingItem.prototype.render = function () {
14448
14809
  var itemText = this.renderLocString(this.item.locText);
14449
14810
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClassByText(this.item.itemValue, this.item.text) },
14450
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14811
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
14451
14812
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: this.question.cssClasses.itemText }, itemText)));
14452
14813
  };
14453
14814
  RatingItem.prototype.componentDidMount = function () {
@@ -15223,7 +15584,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
15223
15584
  var text = (this.question.selectedItemLocText) ? this.renderLocString(this.question.selectedItemLocText) : "";
15224
15585
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15225
15586
  // @ts-ignore
15226
- selectElement = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), disabled: true },
15587
+ selectElement = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, tabIndex: this.question.isDisabledAttr ? undefined : 0, className: this.question.getControlClass() },
15227
15588
  text,
15228
15589
  this.renderReadOnlyElement());
15229
15590
  }
@@ -15257,7 +15618,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
15257
15618
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), tabIndex: dropdownListModel.noTabIndex ? undefined : 0,
15258
15619
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15259
15620
  // @ts-ignore
15260
- disabled: this.question.isInputReadOnly, required: this.question.isRequired, onKeyDown: this.keyhandler, onBlur: this.blur, role: this.question.ariaRole, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant },
15621
+ disabled: this.question.isDisabledAttr, required: this.question.isRequired, onKeyDown: this.keyhandler, onBlur: this.blur, role: this.question.ariaRole, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant },
15261
15622
  dropdownListModel.showHintPrefix ?
15262
15623
  (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hintPrefix },
15263
15624
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, dropdownListModel.hintStringPrefix))) : null,
@@ -15267,7 +15628,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
15267
15628
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { style: { visibility: "hidden" }, "data-bind": "text: model.filterString" }, dropdownListModel.inputStringRendered),
15268
15629
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, dropdownListModel.hintStringSuffix))) : null,
15269
15630
  valueElement,
15270
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, role: dropdownListModel.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant, placeholder: dropdownListModel.placeholderRendered, readOnly: dropdownListModel.filterReadOnly ? true : undefined, tabIndex: dropdownListModel.noTabIndex ? undefined : -1, disabled: this.question.isInputReadOnly, inputMode: dropdownListModel.inputMode, onChange: function (e) { onInputChange(e); }, onBlur: this.blur, onFocus: this.focus })),
15631
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, role: dropdownListModel.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant, placeholder: dropdownListModel.placeholderRendered, readOnly: dropdownListModel.filterReadOnly ? true : undefined, tabIndex: dropdownListModel.noTabIndex ? undefined : -1, disabled: this.question.isDisabledAttr, inputMode: dropdownListModel.inputMode, onChange: function (e) { onInputChange(e); }, onBlur: this.blur, onFocus: this.focus })),
15271
15632
  this.createClearButton()));
15272
15633
  };
15273
15634
  SurveyQuestionDropdownBase.prototype.createClearButton = function () {
@@ -16114,6 +16475,8 @@ var SurveyQuestionImagePickerItem = /** @class */ (function (_super) {
16114
16475
  configurable: true
16115
16476
  });
16116
16477
  SurveyQuestionImagePickerItem.prototype.handleOnChange = function (event) {
16478
+ if (this.question.isReadOnlyAttr)
16479
+ return;
16117
16480
  if (this.question.multiSelect) {
16118
16481
  if (event.target.checked) {
16119
16482
  this.question.value = this.question.value.concat(event.target.value);
@@ -16160,7 +16523,7 @@ var SurveyQuestionImagePickerItem = /** @class */ (function (_super) {
16160
16523
  }
16161
16524
  var renderedItem = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass },
16162
16525
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: cssClasses.label },
16163
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: cssClasses.itemControl, id: this.question.getItemId(item), type: this.question.inputType, name: this.question.questionName, checked: isChecked, value: item.value, disabled: !this.question.getItemEnabled(item), onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
16526
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: cssClasses.itemControl, id: this.question.getItemId(item), type: this.question.inputType, name: this.question.questionName, checked: isChecked, value: item.value, disabled: !this.question.getItemEnabled(item), readOnly: this.question.isReadOnlyAttr, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
16164
16527
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.itemDecorator },
16165
16528
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.imageContainer },
16166
16529
  !!this.question.cssClasses.checkedItemDecorator ?
@@ -18225,7 +18588,7 @@ var SurveyQuestionCheckboxItem = /** @class */ (function (_super) {
18225
18588
  var itemLabel = !this.hideCaption ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.controlLabel }, this.renderLocString(this.item.locText, this.textStyle)) : null;
18226
18589
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass, role: "presentation" },
18227
18590
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: labelClass },
18228
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: this.cssClasses.itemControl, type: "checkbox", role: "option", name: this.question.name + this.item.id, value: this.item.value, id: id, style: this.inputStyle, disabled: !this.question.getItemEnabled(this.item), checked: isChecked, onChange: this.handleOnChange }),
18591
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: this.cssClasses.itemControl, type: "checkbox", role: "option", name: this.question.name + this.item.id, value: this.item.value, id: id, style: this.inputStyle, disabled: !this.question.getItemEnabled(this.item), readOnly: this.question.isReadOnlyAttr, checked: isChecked, onChange: this.handleOnChange }),
18229
18592
  this.cssClasses.materialDecorator ?
18230
18593
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
18231
18594
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.cssClasses.itemDecorator },
@@ -18311,7 +18674,7 @@ var SurveyQuestionComment = /** @class */ (function (_super) {
18311
18674
  }
18312
18675
  var counter = !!this.question.getMaxLength() ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_character_counter__WEBPACK_IMPORTED_MODULE_4__["CharacterCounterComponent"], { counter: this.question.characterCounter, remainingCharacterCounter: this.question.cssClasses.remainingCharacterCounter })) : null;
18313
18676
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
18314
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.question.inputId, className: this.question.className, disabled: this.question.isInputReadOnly, readOnly: this.question.isInputReadOnly, ref: function (textarea) { return (_this.setControl(textarea)); }, maxLength: this.question.getMaxLength(), placeholder: placeholder, onBlur: onBlur, onInput: onInput, onKeyDown: function (event) { _this.question.onKeyDown(event); }, cols: this.question.cols, rows: this.question.rows, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage, style: { resize: this.question.resizeStyle } }),
18677
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.question.inputId, className: this.question.className, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, ref: function (textarea) { return (_this.setControl(textarea)); }, maxLength: this.question.getMaxLength(), placeholder: placeholder, onBlur: onBlur, onInput: onInput, onKeyDown: function (event) { _this.question.onKeyDown(event); }, cols: this.question.cols, rows: this.question.rows, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage, style: { resize: this.question.resizeStyle } }),
18315
18678
  counter));
18316
18679
  };
18317
18680
  return SurveyQuestionComment;
@@ -18612,6 +18975,9 @@ var SurveyElementBase = /** @class */ (function (_super) {
18612
18975
  };
18613
18976
  SurveyElementBase.prototype.componentDidUpdate = function (prevProps, prevState) {
18614
18977
  this.makeBaseElementsReact();
18978
+ this.getStateElements().forEach(function (el) {
18979
+ el.afterRerender();
18980
+ });
18615
18981
  };
18616
18982
  SurveyElementBase.prototype.allowComponentUpdate = function () {
18617
18983
  this._allowComponentUpdate = true;
@@ -18683,12 +19049,14 @@ var SurveyElementBase = /** @class */ (function (_super) {
18683
19049
  SurveyElementBase.prototype.makeBaseElementsReact = function () {
18684
19050
  var els = this.getStateElements();
18685
19051
  for (var i = 0; i < els.length; i++) {
19052
+ els[i].enableOnElementRenderedEvent();
18686
19053
  this.makeBaseElementReact(els[i]);
18687
19054
  }
18688
19055
  };
18689
19056
  SurveyElementBase.prototype.unMakeBaseElementsReact = function () {
18690
19057
  var els = this.getStateElements();
18691
19058
  for (var i = 0; i < els.length; i++) {
19059
+ els[i].disableOnElementRenderedEvent();
18692
19060
  this.unMakeBaseElementReact(els[i]);
18693
19061
  }
18694
19062
  };
@@ -19140,9 +19508,19 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
19140
19508
  var clearButton = this.question.showRemoveButton ? this.renderClearButton(this.question.cssClasses.removeButton) : null;
19141
19509
  var clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
19142
19510
  var fileNavigator = this.question.fileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.fileNavigator })) : null;
19143
- var fileInput = (this.isDisplayMode ?
19144
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes }) : this.question.hasFileUI ?
19145
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture }) : null);
19511
+ var fileInput;
19512
+ if (this.question.isReadOnlyAttr) {
19513
+ fileInput = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { readOnly: true, type: "file", className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes });
19514
+ }
19515
+ else if (this.question.isDisabledAttr) {
19516
+ fileInput = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { disabled: true, type: "file", className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes });
19517
+ }
19518
+ else if (this.question.hasFileUI) {
19519
+ fileInput = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture });
19520
+ }
19521
+ else {
19522
+ fileInput = null;
19523
+ }
19146
19524
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.fileRootCss },
19147
19525
  fileInput,
19148
19526
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.dragArea, onDrop: this.question.onDrop, onDragOver: this.question.onDragOver, onDragLeave: this.question.onDragLeave, onDragEnter: this.question.onDragEnter },
@@ -19534,7 +19912,7 @@ var SurveyQuestionMatrixCell = /** @class */ (function (_super) {
19534
19912
  mobileSpan));
19535
19913
  };
19536
19914
  SurveyQuestionMatrixCell.prototype.renderInput = function (inputId, isChecked) {
19537
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: inputId, type: "radio", className: this.cssClasses.itemValue, name: this.row.fullName, value: this.column.value, disabled: this.row.isReadOnly, checked: isChecked, onChange: this.handleOnChange, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.getCellAriaLabel(this.row.locText.renderedHtml, this.column.locText.renderedHtml), "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }));
19915
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: inputId, type: "radio", className: this.cssClasses.itemValue, name: this.row.fullName, value: this.column.value, disabled: this.row.isDisabledAttr, readOnly: this.row.isReadOnlyAttr, checked: isChecked, onChange: this.handleOnChange, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.getCellAriaLabel(this.row.locText.renderedHtml, this.column.locText.renderedHtml), "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }));
19538
19916
  };
19539
19917
  return SurveyQuestionMatrixCell;
19540
19918
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
@@ -19645,71 +20023,39 @@ var __extends = (undefined && undefined.__extends) || (function () {
19645
20023
 
19646
20024
 
19647
20025
 
19648
- var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19649
- __extends(SurveyQuestionMatrixDropdownBase, _super);
19650
- function SurveyQuestionMatrixDropdownBase(props) {
19651
- var _this = _super.call(this, props) || this;
19652
- //Create rendered table in contructor and not on rendering
19653
- var table = _this.question.renderedTable;
19654
- _this.state = _this.getState();
19655
- return _this;
20026
+ var SurveyQuestionMatrixTable = /** @class */ (function (_super) {
20027
+ __extends(SurveyQuestionMatrixTable, _super);
20028
+ function SurveyQuestionMatrixTable() {
20029
+ return _super !== null && _super.apply(this, arguments) || this;
19656
20030
  }
19657
- Object.defineProperty(SurveyQuestionMatrixDropdownBase.prototype, "question", {
20031
+ Object.defineProperty(SurveyQuestionMatrixTable.prototype, "question", {
19658
20032
  get: function () {
19659
- return this.questionBase;
20033
+ return this.props.question;
19660
20034
  },
19661
20035
  enumerable: false,
19662
20036
  configurable: true
19663
20037
  });
19664
- SurveyQuestionMatrixDropdownBase.prototype.getState = function (prevState) {
19665
- if (prevState === void 0) { prevState = null; }
19666
- return { rowCounter: !prevState ? 0 : prevState.rowCounter + 1 };
19667
- };
19668
- SurveyQuestionMatrixDropdownBase.prototype.updateStateOnCallback = function () {
19669
- if (this.isRendering)
19670
- return;
19671
- this.setState(this.getState(this.state));
19672
- };
19673
- SurveyQuestionMatrixDropdownBase.prototype.componentDidMount = function () {
19674
- var _this = this;
19675
- _super.prototype.componentDidMount.call(this);
19676
- this.question.visibleRowsChangedCallback = function () {
19677
- _this.updateStateOnCallback();
19678
- };
19679
- this.question.onRenderedTableResetCallback = function () {
19680
- _this.question.renderedTable.renderedRowsChangedCallback = function () {
19681
- _this.updateStateOnCallback();
19682
- };
19683
- _this.updateStateOnCallback();
19684
- };
19685
- this.question.renderedTable.renderedRowsChangedCallback = function () {
19686
- _this.updateStateOnCallback();
19687
- };
19688
- };
19689
- SurveyQuestionMatrixDropdownBase.prototype.componentWillUnmount = function () {
19690
- _super.prototype.componentWillUnmount.call(this);
19691
- this.question.visibleRowsChangedCallback = function () { };
19692
- this.question.onRenderedTableResetCallback = function () { };
19693
- this.question.renderedTable.renderedRowsChangedCallback = function () { };
19694
- };
19695
- SurveyQuestionMatrixDropdownBase.prototype.renderElement = function () {
19696
- return this.renderTableDiv();
20038
+ Object.defineProperty(SurveyQuestionMatrixTable.prototype, "creator", {
20039
+ get: function () {
20040
+ return this.props.creator;
20041
+ },
20042
+ enumerable: false,
20043
+ configurable: true
20044
+ });
20045
+ Object.defineProperty(SurveyQuestionMatrixTable.prototype, "table", {
20046
+ get: function () {
20047
+ return this.question.renderedTable;
20048
+ },
20049
+ enumerable: false,
20050
+ configurable: true
20051
+ });
20052
+ SurveyQuestionMatrixTable.prototype.getStateElement = function () {
20053
+ return this.table;
19697
20054
  };
19698
- SurveyQuestionMatrixDropdownBase.prototype.renderTableDiv = function () {
19699
- var _this = this;
19700
- var header = this.renderHeader();
19701
- var footers = this.renderFooter();
19702
- var rows = this.renderRows();
19703
- var divStyle = this.question.showHorizontalScroll
19704
- ? { overflowX: "scroll" }
19705
- : {};
19706
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: divStyle, className: this.question.cssClasses.tableWrapper, ref: function (root) { return (_this.setControl(root)); } },
19707
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("table", { className: this.question.getTableCss() },
19708
- header,
19709
- rows,
19710
- footers)));
20055
+ SurveyQuestionMatrixTable.prototype.wrapCell = function (cell, element, reason) {
20056
+ return this.props.wrapCell(cell, element, reason);
19711
20057
  };
19712
- SurveyQuestionMatrixDropdownBase.prototype.renderHeader = function () {
20058
+ SurveyQuestionMatrixTable.prototype.renderHeader = function () {
19713
20059
  var table = this.question.renderedTable;
19714
20060
  if (!table.showHeader)
19715
20061
  return null;
@@ -19737,14 +20083,14 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19737
20083
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("thead", null,
19738
20084
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tr", null, headers)));
19739
20085
  };
19740
- SurveyQuestionMatrixDropdownBase.prototype.renderFooter = function () {
20086
+ SurveyQuestionMatrixTable.prototype.renderFooter = function () {
19741
20087
  var table = this.question.renderedTable;
19742
20088
  if (!table.showFooter)
19743
20089
  return null;
19744
20090
  var row = this.renderRow("footer", table.footerRow, this.question.cssClasses, "row-footer");
19745
20091
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tfoot", null, row);
19746
20092
  };
19747
- SurveyQuestionMatrixDropdownBase.prototype.renderRows = function () {
20093
+ SurveyQuestionMatrixTable.prototype.renderRows = function () {
19748
20094
  var cssClasses = this.question.cssClasses;
19749
20095
  var rows = [];
19750
20096
  var renderedRows = this.question.renderedTable.renderedRows;
@@ -19753,7 +20099,7 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19753
20099
  }
19754
20100
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tbody", null, rows);
19755
20101
  };
19756
- SurveyQuestionMatrixDropdownBase.prototype.renderRow = function (keyValue, row, cssClasses, reason) {
20102
+ SurveyQuestionMatrixTable.prototype.renderRow = function (keyValue, row, cssClasses, reason) {
19757
20103
  var matrixrow = [];
19758
20104
  var cells = row.cells;
19759
20105
  for (var i = 0; i < cells.length; i++) {
@@ -19762,7 +20108,7 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19762
20108
  var key = "row" + keyValue;
19763
20109
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], { key: key }, (reason == "row-footer") ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tr", null, matrixrow) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_matrix_row__WEBPACK_IMPORTED_MODULE_7__["MatrixRow"], { model: row, parentMatrix: this.question }, matrixrow)));
19764
20110
  };
19765
- SurveyQuestionMatrixDropdownBase.prototype.renderCell = function (cell, index, cssClasses, reason) {
20111
+ SurveyQuestionMatrixTable.prototype.renderCell = function (cell, index, cssClasses, reason) {
19766
20112
  var key = "cell" + index;
19767
20113
  if (cell.hasQuestion) {
19768
20114
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionMatrixDropdownCell, { key: key, cssClasses: cssClasses, cell: cell, creator: this.creator, reason: reason }));
@@ -19782,7 +20128,7 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19782
20128
  }
19783
20129
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { className: cell.className, key: key, style: cellStyle, colSpan: cell.colSpans, "data-responsive-title": cell.headers, title: cell.getTitle() }, cellContent));
19784
20130
  };
19785
- SurveyQuestionMatrixDropdownBase.prototype.renderCellContent = function (cell, reason, cssClasses) {
20131
+ SurveyQuestionMatrixTable.prototype.renderCellContent = function (cell, reason, cssClasses) {
19786
20132
  var cellContent = null;
19787
20133
  var cellStyle = null;
19788
20134
  if (!!cell.width || !!cell.minWidth) {
@@ -19824,6 +20170,64 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
19824
20170
  var readyCell = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, cellContent));
19825
20171
  return this.wrapCell(cell, readyCell, reason);
19826
20172
  };
20173
+ SurveyQuestionMatrixTable.prototype.renderElement = function () {
20174
+ var header = this.renderHeader();
20175
+ var footers = this.renderFooter();
20176
+ var rows = this.renderRows();
20177
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("table", { className: this.question.getTableCss() },
20178
+ header,
20179
+ rows,
20180
+ footers));
20181
+ };
20182
+ return SurveyQuestionMatrixTable;
20183
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"]));
20184
+ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
20185
+ __extends(SurveyQuestionMatrixDropdownBase, _super);
20186
+ function SurveyQuestionMatrixDropdownBase(props) {
20187
+ var _this = _super.call(this, props) || this;
20188
+ //Create rendered table in contructor and not on rendering
20189
+ var table = _this.question.renderedTable;
20190
+ _this.state = _this.getState();
20191
+ return _this;
20192
+ }
20193
+ Object.defineProperty(SurveyQuestionMatrixDropdownBase.prototype, "question", {
20194
+ get: function () {
20195
+ return this.questionBase;
20196
+ },
20197
+ enumerable: false,
20198
+ configurable: true
20199
+ });
20200
+ SurveyQuestionMatrixDropdownBase.prototype.getState = function (prevState) {
20201
+ if (prevState === void 0) { prevState = null; }
20202
+ return { rowCounter: !prevState ? 0 : prevState.rowCounter + 1 };
20203
+ };
20204
+ SurveyQuestionMatrixDropdownBase.prototype.updateStateOnCallback = function () {
20205
+ if (this.isRendering)
20206
+ return;
20207
+ this.setState(this.getState(this.state));
20208
+ };
20209
+ SurveyQuestionMatrixDropdownBase.prototype.componentDidMount = function () {
20210
+ var _this = this;
20211
+ _super.prototype.componentDidMount.call(this);
20212
+ this.question.onRenderedTableResetCallback = function () {
20213
+ _this.updateStateOnCallback();
20214
+ };
20215
+ };
20216
+ SurveyQuestionMatrixDropdownBase.prototype.componentWillUnmount = function () {
20217
+ _super.prototype.componentWillUnmount.call(this);
20218
+ this.question.onRenderedTableResetCallback = function () { };
20219
+ };
20220
+ SurveyQuestionMatrixDropdownBase.prototype.renderElement = function () {
20221
+ return this.renderTableDiv();
20222
+ };
20223
+ SurveyQuestionMatrixDropdownBase.prototype.renderTableDiv = function () {
20224
+ var _this = this;
20225
+ var divStyle = this.question.showHorizontalScroll
20226
+ ? { overflowX: "scroll" }
20227
+ : {};
20228
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: divStyle, className: this.question.cssClasses.tableWrapper, ref: function (root) { return (_this.setControl(root)); } },
20229
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionMatrixTable, { question: this.question, creator: this.creator, wrapCell: function (cell, element, reason) { return _this.wrapCell(cell, element, reason); } })));
20230
+ };
19827
20231
  return SurveyQuestionMatrixDropdownBase;
19828
20232
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyQuestionElementBase"]));
19829
20233
 
@@ -19942,6 +20346,8 @@ var SurveyQuestionMatrixDropdownCell = /** @class */ (function (_super) {
19942
20346
  return this.cell.headers;
19943
20347
  };
19944
20348
  SurveyQuestionMatrixDropdownCell.prototype.renderQuestion = function () {
20349
+ if (!this.question.isVisible)
20350
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
19945
20351
  if (!this.cell.isChoice)
19946
20352
  return _reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyQuestion"].renderQuestionBody(this.creator, this.question);
19947
20353
  if (this.cell.isOtherChoice)
@@ -20696,7 +21102,7 @@ var SurveyQuestionRadioItem = /** @class */ (function (_super) {
20696
21102
  var itemLabel = !this.hideCaption ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: controlLabelClass }, this.renderLocString(this.item.locText, this.textStyle)) : null;
20697
21103
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass, role: "presentation" },
20698
21104
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: labelClass },
20699
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { "aria-errormessage": this.question.ariaErrormessage, className: this.cssClasses.itemControl, id: this.question.getItemId(this.item), type: "radio", name: this.question.questionName, checked: this.isChecked, value: this.item.value, disabled: !this.question.getItemEnabled(this.item), onChange: this.handleOnChange }),
21105
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { "aria-errormessage": this.question.ariaErrormessage, className: this.cssClasses.itemControl, id: this.question.getItemId(this.item), type: "radio", name: this.question.questionName, checked: this.isChecked, value: this.item.value, disabled: !this.question.getItemEnabled(this.item), readOnly: this.question.isReadOnlyAttr, onChange: this.handleOnChange }),
20700
21106
  this.cssClasses.materialDecorator ?
20701
21107
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
20702
21108
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.cssClasses.itemDecorator },
@@ -20722,18 +21128,20 @@ _reactquestion_factory__WEBPACK_IMPORTED_MODULE_3__["ReactQuestionFactory"].Inst
20722
21128
  /*!*********************************************!*\
20723
21129
  !*** ./src/react/reactquestion_ranking.tsx ***!
20724
21130
  \*********************************************/
20725
- /*! exports provided: SurveyQuestionRanking, SurveyQuestionRankingItem */
21131
+ /*! exports provided: SurveyQuestionRanking, SurveyQuestionRankingItem, SurveyQuestionRankingItemContent */
20726
21132
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
20727
21133
 
20728
21134
  "use strict";
20729
21135
  __webpack_require__.r(__webpack_exports__);
20730
21136
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRanking", function() { return SurveyQuestionRanking; });
20731
21137
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItem", function() { return SurveyQuestionRankingItem; });
21138
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRankingItemContent", function() { return SurveyQuestionRankingItemContent; });
20732
21139
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
20733
21140
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
20734
21141
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
20735
21142
  /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
20736
21143
  /* harmony import */ var _reactsurveymodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactsurveymodel */ "./src/react/reactsurveymodel.tsx");
21144
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
20737
21145
  var __extends = (undefined && undefined.__extends) || (function () {
20738
21146
  var extendStatics = function (d, b) {
20739
21147
  extendStatics = Object.setPrototypeOf ||
@@ -20753,6 +21161,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
20753
21161
 
20754
21162
 
20755
21163
 
21164
+
20756
21165
  var SurveyQuestionRanking = /** @class */ (function (_super) {
20757
21166
  __extends(SurveyQuestionRanking, _super);
20758
21167
  function SurveyQuestionRanking() {
@@ -20774,15 +21183,15 @@ var SurveyQuestionRanking = /** @class */ (function (_super) {
20774
21183
  var unrankedItem = true;
20775
21184
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.rootClass, ref: function (root) { return (_this.setControl(root)); } },
20776
21185
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getContainerClasses("from"), "data-ranking": "from-container" },
20777
- this.getItems(this.question.unRankingChoices, unrankedItem),
20778
- this.question.unRankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
21186
+ this.getItems(this.question.renderedUnRankingChoices, unrankedItem),
21187
+ this.question.renderedUnRankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
20779
21188
  " ",
20780
21189
  this.renderLocString(this.question.locSelectToRankEmptyRankedAreaText),
20781
21190
  " ") : null),
20782
21191
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containersDivider }),
20783
21192
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getContainerClasses("to"), "data-ranking": "to-container" },
20784
21193
  this.getItems(),
20785
- this.question.rankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
21194
+ this.question.renderedRankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
20786
21195
  " ",
20787
21196
  this.renderLocString(this.question.locSelectToRankEmptyUnrankedAreaText),
20788
21197
  " ") : null)));
@@ -20790,7 +21199,7 @@ var SurveyQuestionRanking = /** @class */ (function (_super) {
20790
21199
  };
20791
21200
  SurveyQuestionRanking.prototype.getItems = function (choices, unrankedItem) {
20792
21201
  var _this = this;
20793
- if (choices === void 0) { choices = this.question.rankingChoices; }
21202
+ if (choices === void 0) { choices = this.question.renderedRankingChoices; }
20794
21203
  var items = [];
20795
21204
  var _loop_1 = function (i) {
20796
21205
  var item = choices[i];
@@ -20923,6 +21332,7 @@ var SurveyQuestionRankingItem = /** @class */ (function (_super) {
20923
21332
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("use", { xlinkHref: this.question.dashSvgIcon })));
20924
21333
  };
20925
21334
  SurveyQuestionRankingItem.prototype.renderElement = function () {
21335
+ var itemContentComponent = _element_factory__WEBPACK_IMPORTED_MODULE_4__["ReactElementFactory"].Instance.createElement(this.question.itemContentComponent, { item: this.item, cssClasses: this.cssClasses });
20926
21336
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { tabIndex: this.itemTabIndex, className: this.itemClass, onKeyDown: this.handleKeydown, onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, "data-sv-drop-target-ranking-item": this.index },
20927
21337
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { tabIndex: -1, style: { outline: "none" } },
20928
21338
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.cssClasses.itemGhostNode }),
@@ -20933,11 +21343,39 @@ var SurveyQuestionRankingItem = /** @class */ (function (_super) {
20933
21343
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.question.getIconFocusCss() },
20934
21344
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("use", { xlinkHref: this.question.arrowsSvgIcon }))),
20935
21345
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getItemIndexClasses(this.item) }, (!this.unrankedItem && this.indexText) ? this.indexText : this.renderEmptyIcon()),
20936
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.cssClasses.controlLabel }, this.text)))));
21346
+ itemContentComponent))));
20937
21347
  };
20938
21348
  return SurveyQuestionRankingItem;
20939
21349
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
20940
21350
 
21351
+ var SurveyQuestionRankingItemContent = /** @class */ (function (_super) {
21352
+ __extends(SurveyQuestionRankingItemContent, _super);
21353
+ function SurveyQuestionRankingItemContent() {
21354
+ return _super !== null && _super.apply(this, arguments) || this;
21355
+ }
21356
+ Object.defineProperty(SurveyQuestionRankingItemContent.prototype, "item", {
21357
+ get: function () {
21358
+ return this.props.item;
21359
+ },
21360
+ enumerable: false,
21361
+ configurable: true
21362
+ });
21363
+ Object.defineProperty(SurveyQuestionRankingItemContent.prototype, "cssClasses", {
21364
+ get: function () {
21365
+ return this.props.cssClasses;
21366
+ },
21367
+ enumerable: false,
21368
+ configurable: true
21369
+ });
21370
+ SurveyQuestionRankingItemContent.prototype.renderElement = function () {
21371
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.cssClasses.controlLabel }, _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.item.locText));
21372
+ };
21373
+ return SurveyQuestionRankingItemContent;
21374
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
21375
+
21376
+ _element_factory__WEBPACK_IMPORTED_MODULE_4__["ReactElementFactory"].Instance.registerElement("sv-ranking-item-content", function (props) {
21377
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionRankingItemContent, props);
21378
+ });
20941
21379
  _reactquestion_factory__WEBPACK_IMPORTED_MODULE_2__["ReactQuestionFactory"].Instance.registerQuestion("ranking", function (props) {
20942
21380
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionRanking, props);
20943
21381
  });
@@ -21168,7 +21606,9 @@ var SurveyQuestionText = /** @class */ (function (_super) {
21168
21606
  }
21169
21607
  var counter = !!this.question.getMaxLength() ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_character_counter__WEBPACK_IMPORTED_MODULE_3__["CharacterCounterComponent"], { counter: this.question.characterCounter, remainingCharacterCounter: this.question.cssClasses.remainingCharacterCounter })) : null;
21170
21608
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
21171
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: this.question.inputId, disabled: this.isDisplayMode, className: inputClass, type: this.question.inputType,
21609
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: this.question.inputId,
21610
+ // disabled={this.isDisplayMode}
21611
+ disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, className: inputClass, type: this.question.inputType,
21172
21612
  //ref={this.controlRef}
21173
21613
  ref: function (input) { return (_this.setControl(input)); }, style: this.question.inputStyle, maxLength: this.question.getMaxLength(), min: this.question.renderedMin, max: this.question.renderedMax, step: this.question.renderedStep, size: this.question.inputSize, placeholder: placeholder, list: this.question.dataListId, autoComplete: this.question.autocomplete, onBlur: this.question.onBlur, onFocus: this.question.onFocus, onChange: this.question.onChange, onKeyUp: this.question.onKeyUp, onKeyDown: this.question.onKeyDown, onCompositionUpdate: function (event) { return _this.question.onCompositionUpdate(event.nativeEvent); }, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
21174
21614
  counter));
@@ -23061,12 +23501,12 @@ var SurveyElement = /** @class */ (function (_super) {
23061
23501
  }
23062
23502
  return info;
23063
23503
  };
23064
- SurveyElement.ScrollElementToTop = function (elementId, scrollIfVisible) {
23504
+ SurveyElement.ScrollElementToTop = function (elementId, scrollIfVisible, scrollIntoViewOptions) {
23065
23505
  var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
23066
23506
  if (!elementId || typeof root === "undefined")
23067
23507
  return false;
23068
23508
  var el = root.getElementById(elementId);
23069
- return SurveyElement.ScrollElementToViewCore(el, false, scrollIfVisible);
23509
+ return SurveyElement.ScrollElementToViewCore(el, false, scrollIfVisible, scrollIntoViewOptions);
23070
23510
  };
23071
23511
  SurveyElement.ScrollElementToViewCore = function (el, checkLeft, scrollIfVisible, scrollIntoViewOptions) {
23072
23512
  if (!el || !el.scrollIntoView)
@@ -24157,6 +24597,8 @@ var SurveyElement = /** @class */ (function (_super) {
24157
24597
  enumerable: false,
24158
24598
  configurable: true
24159
24599
  });
24600
+ SurveyElement.prototype.onElementExpanded = function (elementIsRendered) {
24601
+ };
24160
24602
  SurveyElement.prototype.getExpandCollapseAnimationOptions = function () {
24161
24603
  var _this = this;
24162
24604
  var beforeRunAnimation = function (el) {
@@ -24167,12 +24609,16 @@ var SurveyElement = /** @class */ (function (_super) {
24167
24609
  _this.isAnimatingCollapseExpand = false;
24168
24610
  };
24169
24611
  return {
24612
+ getRerenderEvent: function () { return _this.onElementRerendered; },
24170
24613
  getEnterOptions: function () {
24171
24614
  var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
24172
24615
  return {
24173
24616
  cssClass: cssClasses.contentFadeIn,
24174
24617
  onBeforeRunAnimation: beforeRunAnimation,
24175
- onAfterRunAnimation: afterRunAnimation,
24618
+ onAfterRunAnimation: function (el) {
24619
+ afterRunAnimation(el);
24620
+ _this.onElementExpanded(true);
24621
+ },
24176
24622
  };
24177
24623
  },
24178
24624
  getLeaveOptions: function () {
@@ -24193,15 +24639,26 @@ var SurveyElement = /** @class */ (function (_super) {
24193
24639
  }
24194
24640
  return undefined;
24195
24641
  },
24196
- isAnimationEnabled: function () { return _this.animationAllowed && !_this.isDesignMode; }
24642
+ isAnimationEnabled: function () { return _this.isExpandCollapseAnimationEnabled; }
24197
24643
  };
24198
24644
  };
24645
+ Object.defineProperty(SurveyElement.prototype, "isExpandCollapseAnimationEnabled", {
24646
+ get: function () {
24647
+ return this.animationAllowed && !this.isDesignMode;
24648
+ },
24649
+ enumerable: false,
24650
+ configurable: true
24651
+ });
24199
24652
  Object.defineProperty(SurveyElement.prototype, "renderedIsExpanded", {
24200
24653
  get: function () {
24201
24654
  return !!this._renderedIsExpanded;
24202
24655
  },
24203
24656
  set: function (val) {
24657
+ var oldValue = this._renderedIsExpanded;
24204
24658
  this.animationCollapsed.sync(val);
24659
+ if (!this.isExpandCollapseAnimationEnabled && !oldValue && this.renderedIsExpanded) {
24660
+ this.onElementExpanded(false);
24661
+ }
24205
24662
  },
24206
24663
  enumerable: false,
24207
24664
  configurable: true
@@ -24369,8 +24826,9 @@ __webpack_require__.r(__webpack_exports__);
24369
24826
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return AnimationBoolean; });
24370
24827
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return AnimationGroup; });
24371
24828
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationTab", function() { return AnimationTab; });
24372
- /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
24373
- /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
24829
+ /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
24830
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
24831
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
24374
24832
  var __extends = (undefined && undefined.__extends) || (function () {
24375
24833
  var extendStatics = function (d, b) {
24376
24834
  extendStatics = Object.setPrototypeOf ||
@@ -24388,6 +24846,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
24388
24846
  })();
24389
24847
 
24390
24848
 
24849
+
24391
24850
  var AnimationUtils = /** @class */ (function () {
24392
24851
  function AnimationUtils() {
24393
24852
  this.cancelQueue = [];
@@ -24431,7 +24890,7 @@ var AnimationUtils = /** @class */ (function () {
24431
24890
  var animationsCount = this.getAnimationsCount(element);
24432
24891
  var onEndCallback = function (isCancel) {
24433
24892
  if (isCancel === void 0) { isCancel = true; }
24434
- options.onAfterRunAnimation && options.onAfterRunAnimation(element);
24893
+ _this.afterAnimationRun(element, options);
24435
24894
  callback(isCancel);
24436
24895
  clearTimeout(cancelTimeout);
24437
24896
  _this.removeCancelCallback(onEndCallback);
@@ -24450,9 +24909,15 @@ var AnimationUtils = /** @class */ (function () {
24450
24909
  }, this.getAnimationDuration(element) + 10);
24451
24910
  }
24452
24911
  else {
24912
+ this.afterAnimationRun(element, options);
24453
24913
  callback(true);
24454
24914
  }
24455
24915
  };
24916
+ AnimationUtils.prototype.afterAnimationRun = function (element, options) {
24917
+ if (element && options) {
24918
+ options.onAfterRunAnimation && options.onAfterRunAnimation(element);
24919
+ }
24920
+ };
24456
24921
  AnimationUtils.prototype.beforeAnimationRun = function (element, options) {
24457
24922
  if (element && options) {
24458
24923
  options.onBeforeRunAnimation && options.onBeforeRunAnimation(element);
@@ -24462,7 +24927,7 @@ var AnimationUtils = /** @class */ (function () {
24462
24927
  return options.cssClass.replace(/\s+$/, "").split(/\s+/);
24463
24928
  };
24464
24929
  AnimationUtils.prototype.runAnimation = function (element, options, callback) {
24465
- if (element && options.cssClass) {
24930
+ if (element && (options === null || options === void 0 ? void 0 : options.cssClass)) {
24466
24931
  this.reflow(element);
24467
24932
  this.getCssClasses(options).forEach(function (cssClass) {
24468
24933
  element.classList.add(cssClass);
@@ -24480,30 +24945,24 @@ var AnimationUtils = /** @class */ (function () {
24480
24945
  });
24481
24946
  }
24482
24947
  };
24483
- AnimationUtils.prototype.onNextRender = function (callback, runEarly, isCancel) {
24948
+ AnimationUtils.prototype.onNextRender = function (callback, isCancel) {
24484
24949
  var _this = this;
24485
24950
  if (isCancel === void 0) { isCancel = false; }
24486
- if (!isCancel && _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].isAvailable()) {
24951
+ if (!isCancel && _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomWindowHelper"].isAvailable()) {
24487
24952
  var cancelCallback_1 = function () {
24488
- callback();
24953
+ callback(true);
24489
24954
  cancelAnimationFrame(latestRAF_1);
24490
24955
  };
24491
- var latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
24492
- if (runEarly && runEarly()) {
24493
- callback();
24956
+ var latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomWindowHelper"].requestAnimationFrame(function () {
24957
+ latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomWindowHelper"].requestAnimationFrame(function () {
24958
+ callback(false);
24494
24959
  _this.removeCancelCallback(cancelCallback_1);
24495
- }
24496
- else {
24497
- latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
24498
- callback();
24499
- _this.removeCancelCallback(cancelCallback_1);
24500
- });
24501
- }
24960
+ });
24502
24961
  });
24503
24962
  this.addCancelCallback(cancelCallback_1);
24504
24963
  }
24505
24964
  else {
24506
- callback();
24965
+ callback(true);
24507
24966
  }
24508
24967
  };
24509
24968
  AnimationUtils.prototype.cancel = function () {
@@ -24521,25 +24980,23 @@ var AnimationPropertyUtils = /** @class */ (function (_super) {
24521
24980
  }
24522
24981
  AnimationPropertyUtils.prototype.onEnter = function (options) {
24523
24982
  var _this = this;
24524
- this.onNextRender(function () {
24525
- var htmlElement = options.getAnimatedElement();
24526
- var enterOptions = options.getEnterOptions();
24527
- _this.beforeAnimationRun(htmlElement, enterOptions);
24528
- _this.runAnimation(htmlElement, enterOptions, function () {
24529
- _this.clearHtmlElement(htmlElement, enterOptions);
24530
- });
24531
- }, function () { return !!options.getAnimatedElement(); });
24983
+ var htmlElement = options.getAnimatedElement();
24984
+ var enterOptions = options.getEnterOptions ? options.getEnterOptions() : {};
24985
+ this.beforeAnimationRun(htmlElement, enterOptions);
24986
+ this.runAnimation(htmlElement, enterOptions, function () {
24987
+ _this.clearHtmlElement(htmlElement, enterOptions);
24988
+ });
24532
24989
  };
24533
24990
  AnimationPropertyUtils.prototype.onLeave = function (options, callback) {
24534
24991
  var _this = this;
24535
24992
  var htmlElement = options.getAnimatedElement();
24536
- var leaveOptions = options.getLeaveOptions();
24993
+ var leaveOptions = options.getLeaveOptions ? options.getLeaveOptions() : {};
24537
24994
  this.beforeAnimationRun(htmlElement, leaveOptions);
24538
24995
  this.runAnimation(htmlElement, leaveOptions, function (isCancel) {
24539
24996
  callback();
24540
24997
  _this.onNextRender(function () {
24541
24998
  _this.clearHtmlElement(htmlElement, leaveOptions);
24542
- }, undefined, isCancel);
24999
+ }, isCancel);
24543
25000
  });
24544
25001
  };
24545
25002
  return AnimationPropertyUtils;
@@ -24550,40 +25007,54 @@ var AnimationGroupUtils = /** @class */ (function (_super) {
24550
25007
  function AnimationGroupUtils() {
24551
25008
  return _super !== null && _super.apply(this, arguments) || this;
24552
25009
  }
24553
- AnimationGroupUtils.prototype.runGroupAnimation = function (options, addedElements, removedElements, callback) {
25010
+ AnimationGroupUtils.prototype.runGroupAnimation = function (options, addedItems, removedItems, reorderedItems, callback) {
24554
25011
  var _this = this;
24555
- this.onNextRender(function () {
24556
- var addedHtmlElements = addedElements.map(function (el) { return options.getAnimatedElement(el); });
24557
- var enterOptions = addedElements.map(function (el) { return options.getEnterOptions(el); });
24558
- var removedHtmlElements = removedElements.map(function (el) { return options.getAnimatedElement(el); });
24559
- var leaveOptions = removedElements.map(function (el) { return options.getLeaveOptions(el); });
24560
- addedElements.forEach(function (_, i) {
24561
- _this.beforeAnimationRun(addedHtmlElements[i], enterOptions[i]);
24562
- });
24563
- removedElements.forEach(function (_, i) {
24564
- _this.beforeAnimationRun(removedHtmlElements[i], leaveOptions[i]);
24565
- });
24566
- var counter = addedElements.length + removedElements.length;
24567
- var onAnimationEndCallback = function (isCancel) {
24568
- if (--counter <= 0) {
24569
- callback && callback();
24570
- _this.onNextRender(function () {
24571
- addedElements.forEach(function (_, i) {
24572
- _this.clearHtmlElement(addedHtmlElements[i], enterOptions[i]);
24573
- });
24574
- removedElements.forEach(function (_, i) {
24575
- _this.clearHtmlElement(removedHtmlElements[i], leaveOptions[i]);
24576
- });
24577
- }, undefined, isCancel);
24578
- }
24579
- };
24580
- addedElements.forEach(function (_, i) {
24581
- _this.runAnimation(addedHtmlElements[i], enterOptions[i], onAnimationEndCallback);
24582
- });
24583
- removedElements.forEach(function (_, i) {
24584
- _this.runAnimation(removedHtmlElements[i], leaveOptions[i], onAnimationEndCallback);
24585
- });
24586
- }, function () { return addedElements.length == 0 || addedElements.some(function (el) { return !!options.getAnimatedElement(el); }); });
25012
+ var info = {
25013
+ isAddingRunning: addedItems.length > 0,
25014
+ isDeletingRunning: removedItems.length > 0,
25015
+ isReorderingRunning: reorderedItems.length > 0
25016
+ };
25017
+ var addedHtmlElements = addedItems.map(function (el) { return options.getAnimatedElement(el); });
25018
+ var enterOptions = addedItems.map(function (el) { return options.getEnterOptions ? options.getEnterOptions(el, info) : {}; });
25019
+ var removedHtmlElements = removedItems.map(function (el) { return options.getAnimatedElement(el); });
25020
+ var leaveOptions = removedItems.map(function (el) { return options.getLeaveOptions ? options.getLeaveOptions(el, info) : {}; });
25021
+ var reorderedHtmlElements = reorderedItems.map(function (el) { return options.getAnimatedElement(el.item); });
25022
+ var reorderedOptions = reorderedItems.map(function (el) { return options.getReorderOptions ? options.getReorderOptions(el.item, el.movedForward, info) : {}; });
25023
+ addedItems.forEach(function (_, i) {
25024
+ _this.beforeAnimationRun(addedHtmlElements[i], enterOptions[i]);
25025
+ });
25026
+ removedItems.forEach(function (_, i) {
25027
+ _this.beforeAnimationRun(removedHtmlElements[i], leaveOptions[i]);
25028
+ });
25029
+ reorderedItems.forEach(function (_, i) {
25030
+ _this.beforeAnimationRun(reorderedHtmlElements[i], reorderedOptions[i]);
25031
+ });
25032
+ var counter = addedItems.length + removedItems.length + reorderedHtmlElements.length;
25033
+ var onAnimationEndCallback = function (isCancel) {
25034
+ if (--counter <= 0) {
25035
+ callback && callback();
25036
+ _this.onNextRender(function () {
25037
+ addedItems.forEach(function (_, i) {
25038
+ _this.clearHtmlElement(addedHtmlElements[i], enterOptions[i]);
25039
+ });
25040
+ removedItems.forEach(function (_, i) {
25041
+ _this.clearHtmlElement(removedHtmlElements[i], leaveOptions[i]);
25042
+ });
25043
+ reorderedItems.forEach(function (_, i) {
25044
+ _this.clearHtmlElement(reorderedHtmlElements[i], reorderedOptions[i]);
25045
+ });
25046
+ }, isCancel);
25047
+ }
25048
+ };
25049
+ addedItems.forEach(function (_, i) {
25050
+ _this.runAnimation(addedHtmlElements[i], enterOptions[i], onAnimationEndCallback);
25051
+ });
25052
+ removedItems.forEach(function (_, i) {
25053
+ _this.runAnimation(removedHtmlElements[i], leaveOptions[i], onAnimationEndCallback);
25054
+ });
25055
+ reorderedItems.forEach(function (_, i) {
25056
+ _this.runAnimation(reorderedHtmlElements[i], reorderedOptions[i], onAnimationEndCallback);
25057
+ });
24587
25058
  };
24588
25059
  return AnimationGroupUtils;
24589
25060
  }(AnimationUtils));
@@ -24594,11 +25065,51 @@ var AnimationProperty = /** @class */ (function () {
24594
25065
  this.animationOptions = animationOptions;
24595
25066
  this.update = update;
24596
25067
  this.getCurrentValue = getCurrentValue;
24597
- this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_1__["debounce"])(function (newValue) {
25068
+ this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_0__["debounce"])(function (newValue) {
24598
25069
  _this.animation.cancel();
24599
- _this._sync(newValue);
25070
+ try {
25071
+ _this._sync(newValue);
25072
+ }
25073
+ catch (_a) {
25074
+ _this.update(newValue);
25075
+ }
24600
25076
  });
24601
25077
  }
25078
+ AnimationProperty.prototype.onNextRender = function (callback, onCancel) {
25079
+ var _this = this;
25080
+ var rerenderEvent = this.animationOptions.getRerenderEvent();
25081
+ if (!rerenderEvent) {
25082
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomWindowHelper"].isAvailable()) {
25083
+ var raf_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomWindowHelper"].requestAnimationFrame(function () {
25084
+ callback();
25085
+ _this.cancelCallback = undefined;
25086
+ });
25087
+ this.cancelCallback = function () {
25088
+ onCancel && onCancel();
25089
+ cancelAnimationFrame(raf_1);
25090
+ _this.cancelCallback = undefined;
25091
+ };
25092
+ }
25093
+ else {
25094
+ throw new Error("Can't get next render");
25095
+ }
25096
+ }
25097
+ else {
25098
+ var clear_1 = function () {
25099
+ rerenderEvent.remove(nextRenderCallback_1);
25100
+ _this.cancelCallback = undefined;
25101
+ };
25102
+ var nextRenderCallback_1 = function () {
25103
+ callback();
25104
+ clear_1();
25105
+ };
25106
+ this.cancelCallback = function () {
25107
+ onCancel && onCancel();
25108
+ clear_1();
25109
+ };
25110
+ rerenderEvent.add(nextRenderCallback_1);
25111
+ }
25112
+ };
24602
25113
  AnimationProperty.prototype.sync = function (newValue) {
24603
25114
  if (this.animationOptions.isAnimationEnabled()) {
24604
25115
  this._debouncedSync.run(newValue);
@@ -24609,8 +25120,9 @@ var AnimationProperty = /** @class */ (function () {
24609
25120
  }
24610
25121
  };
24611
25122
  AnimationProperty.prototype.cancel = function () {
24612
- this.animation.cancel();
24613
25123
  this._debouncedSync.cancel();
25124
+ this.cancelCallback && this.cancelCallback();
25125
+ this.animation.cancel();
24614
25126
  };
24615
25127
  return AnimationProperty;
24616
25128
  }());
@@ -24626,8 +25138,10 @@ var AnimationBoolean = /** @class */ (function (_super) {
24626
25138
  var _this = this;
24627
25139
  if (newValue !== this.getCurrentValue()) {
24628
25140
  if (newValue) {
25141
+ this.onNextRender(function () {
25142
+ _this.animation.onEnter(_this.animationOptions);
25143
+ });
24629
25144
  this.update(newValue);
24630
- this.animation.onEnter(this.animationOptions);
24631
25145
  }
24632
25146
  else {
24633
25147
  this.animation.onLeave(this.animationOptions, function () {
@@ -24651,15 +25165,34 @@ var AnimationGroup = /** @class */ (function (_super) {
24651
25165
  }
24652
25166
  AnimationGroup.prototype._sync = function (newValue) {
24653
25167
  var _this = this;
25168
+ var _a, _b;
24654
25169
  var oldValue = this.getCurrentValue();
24655
- var itemsToAdd = newValue.filter(function (el) { return oldValue.indexOf(el) < 0; });
24656
- var deletedItems = oldValue.filter(function (el) { return newValue.indexOf(el) < 0; });
24657
- if (itemsToAdd.length == 0 && (deletedItems === null || deletedItems === void 0 ? void 0 : deletedItems.length) > 0) {
24658
- this.animation.runGroupAnimation(this.animationOptions, [], deletedItems, function () { return _this.update(newValue); });
25170
+ var allowSyncRemovalAddition = (_a = this.animationOptions.allowSyncRemovalAddition) !== null && _a !== void 0 ? _a : true;
25171
+ var _c = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["compareArrays"])(oldValue, newValue, (_b = this.animationOptions.getKey) !== null && _b !== void 0 ? _b : (function (item) { return item; })), addedItems = _c.addedItems, deletedItems = _c.deletedItems, reorderedItems = _c.reorderedItems, mergedItems = _c.mergedItems;
25172
+ if (!allowSyncRemovalAddition && (reorderedItems.length > 0 || addedItems.length > 0)) {
25173
+ deletedItems = [];
25174
+ mergedItems = newValue;
25175
+ }
25176
+ var runAnimationCallback = function () {
25177
+ _this.animation.runGroupAnimation(_this.animationOptions, addedItems, deletedItems, reorderedItems, function () {
25178
+ if (deletedItems.length > 0) {
25179
+ _this.update(newValue);
25180
+ }
25181
+ });
25182
+ };
25183
+ if ([addedItems, deletedItems, reorderedItems].some(function (arr) { return arr.length > 0; })) {
25184
+ if (deletedItems.length <= 0 || reorderedItems.length > 0 || addedItems.length > 0) {
25185
+ this.onNextRender(runAnimationCallback, function () {
25186
+ _this.update(newValue);
25187
+ });
25188
+ this.update(mergedItems);
25189
+ }
25190
+ else {
25191
+ runAnimationCallback();
25192
+ }
24659
25193
  }
24660
25194
  else {
24661
25195
  this.update(newValue);
24662
- this.animation.runGroupAnimation(this.animationOptions, itemsToAdd, []);
24663
25196
  }
24664
25197
  };
24665
25198
  return AnimationGroup;
@@ -24678,10 +25211,12 @@ var AnimationTab = /** @class */ (function (_super) {
24678
25211
  var oldValue = [].concat(this.getCurrentValue());
24679
25212
  if (oldValue[0] !== newValue[0]) {
24680
25213
  var tempValue = !!this.mergeValues ? this.mergeValues(newValue, oldValue) : [].concat(oldValue, newValue);
25214
+ this.onNextRender(function () {
25215
+ _this.animation.runGroupAnimation(_this.animationOptions, newValue, oldValue, [], function () {
25216
+ _this.update(newValue);
25217
+ });
25218
+ }, function () { return _this.update(newValue); });
24681
25219
  this.update(tempValue, true);
24682
- this.animation.runGroupAnimation(this.animationOptions, newValue, oldValue, function () {
24683
- _this.update(newValue);
24684
- });
24685
25220
  }
24686
25221
  else {
24687
25222
  this.update(newValue);
@@ -25054,7 +25589,7 @@ function debounce(func) {
25054
25589
  /*!****************************!*\
25055
25590
  !*** ./src/utils/utils.ts ***!
25056
25591
  \****************************/
25057
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, configConfirmDialog, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
25592
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, configConfirmDialog, compareArrays, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
25058
25593
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
25059
25594
 
25060
25595
  "use strict";
@@ -25069,6 +25604,7 @@ __webpack_require__.r(__webpack_exports__);
25069
25604
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return Logger; });
25070
25605
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showConfirmDialog", function() { return showConfirmDialog; });
25071
25606
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "configConfirmDialog", function() { return configConfirmDialog; });
25607
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareArrays", function() { return compareArrays; });
25072
25608
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeValues", function() { return mergeValues; });
25073
25609
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementWidth", function() { return getElementWidth; });
25074
25610
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isContainerVisible", function() { return isContainerVisible; });
@@ -25389,6 +25925,8 @@ function preventDefaults(event) {
25389
25925
  event.stopPropagation();
25390
25926
  }
25391
25927
  function classesToSelector(str) {
25928
+ if (!str)
25929
+ return str;
25392
25930
  var re = /\s*?([\w-]+)\s*?/g;
25393
25931
  return str.replace(re, ".$1");
25394
25932
  }
@@ -25537,6 +26075,100 @@ function chooseFiles(input, callback) {
25537
26075
  };
25538
26076
  input.click();
25539
26077
  }
26078
+ function compareArrays(oldValue, newValue, getKey) {
26079
+ var oldItemsMap = new Map();
26080
+ var newItemsMap = new Map();
26081
+ var commonItemsInNewMap = new Map();
26082
+ var commonItemsInOldMap = new Map();
26083
+ oldValue.forEach(function (item) {
26084
+ var itemKey = getKey(item);
26085
+ if (!oldItemsMap.has(itemKey)) {
26086
+ oldItemsMap.set(getKey(item), item);
26087
+ }
26088
+ else {
26089
+ //if keys are set incorrectly do not process comparing
26090
+ throw new Error("keys must be unique");
26091
+ }
26092
+ });
26093
+ newValue.forEach(function (item) {
26094
+ var itemKey = getKey(item);
26095
+ if (!newItemsMap.has(itemKey)) {
26096
+ newItemsMap.set(itemKey, item);
26097
+ }
26098
+ else {
26099
+ //if keys are set incorrectly do not process comparing
26100
+ throw new Error("keys must be unique");
26101
+ }
26102
+ });
26103
+ var addedItems = [];
26104
+ var deletedItems = [];
26105
+ //calculating addedItems and items that exist in both arrays
26106
+ newItemsMap.forEach(function (item, key) {
26107
+ if (!oldItemsMap.has(key)) {
26108
+ addedItems.push(item);
26109
+ }
26110
+ else {
26111
+ commonItemsInNewMap.set(key, commonItemsInNewMap.size);
26112
+ }
26113
+ });
26114
+ //calculating deletedItems and items that exist in both arrays
26115
+ oldItemsMap.forEach(function (item, key) {
26116
+ if (!newItemsMap.has(key)) {
26117
+ deletedItems.push(item);
26118
+ }
26119
+ else {
26120
+ commonItemsInOldMap.set(key, commonItemsInOldMap.size);
26121
+ }
26122
+ });
26123
+ //calculating reordered items
26124
+ var reorderedItems = [];
26125
+ commonItemsInNewMap.forEach(function (index, key) {
26126
+ var oldIndex = commonItemsInOldMap.get(key);
26127
+ var item = newItemsMap.get(key);
26128
+ if (oldIndex !== index)
26129
+ reorderedItems.push({ item: item, movedForward: oldIndex < index });
26130
+ });
26131
+ //calculating merged array if multiple operations are applied at once
26132
+ var oldItemsWithCorrectOrder = new Array(oldValue.length);
26133
+ var commonItemsIndex = 0;
26134
+ var commonItemsKeysOrder = Array.from(commonItemsInNewMap.keys());
26135
+ oldValue.forEach(function (item, index) {
26136
+ if (commonItemsInNewMap.has(getKey(item))) {
26137
+ oldItemsWithCorrectOrder[index] = newItemsMap.get(commonItemsKeysOrder[commonItemsIndex]);
26138
+ commonItemsIndex++;
26139
+ }
26140
+ else {
26141
+ oldItemsWithCorrectOrder[index] = item;
26142
+ }
26143
+ });
26144
+ var valuesToInsertBeforeKey = new Map();
26145
+ var tempValuesArray = [];
26146
+ oldItemsWithCorrectOrder.forEach(function (item) {
26147
+ var itemKey = getKey(item);
26148
+ if (newItemsMap.has(itemKey)) {
26149
+ if (tempValuesArray.length > 0) {
26150
+ valuesToInsertBeforeKey.set(itemKey, tempValuesArray);
26151
+ tempValuesArray = [];
26152
+ }
26153
+ }
26154
+ else {
26155
+ tempValuesArray.push(item);
26156
+ }
26157
+ });
26158
+ var mergedItems = new Array();
26159
+ newItemsMap.forEach(function (item, key) {
26160
+ if (valuesToInsertBeforeKey.has(key)) {
26161
+ valuesToInsertBeforeKey.get(key).forEach(function (item) {
26162
+ mergedItems.push(item);
26163
+ });
26164
+ }
26165
+ mergedItems.push(item);
26166
+ });
26167
+ tempValuesArray.forEach(function (item) {
26168
+ mergedItems.push(item);
26169
+ });
26170
+ return { reorderedItems: reorderedItems, deletedItems: deletedItems, addedItems: addedItems, mergedItems: mergedItems };
26171
+ }
25540
26172
 
25541
26173
 
25542
26174