survey-react 1.9.89 → 1.9.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.89
2
+ * surveyjs - Survey JavaScript library v1.9.91
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -101,399 +101,6 @@ return /******/ (function(modules) { // webpackBootstrap
101
101
  /************************************************************************/
102
102
  /******/ ({
103
103
 
104
- /***/ "./node_modules/process/browser.js":
105
- /*!*****************************************!*\
106
- !*** ./node_modules/process/browser.js ***!
107
- \*****************************************/
108
- /*! no static exports found */
109
- /***/ (function(module, exports) {
110
-
111
- // shim for using process in browser
112
- var process = module.exports = {};
113
-
114
- // cached from whatever global is present so that test runners that stub it
115
- // don't break things. But we need to wrap it in a try catch in case it is
116
- // wrapped in strict mode code which doesn't define any globals. It's inside a
117
- // function because try/catches deoptimize in certain engines.
118
-
119
- var cachedSetTimeout;
120
- var cachedClearTimeout;
121
-
122
- function defaultSetTimout() {
123
- throw new Error('setTimeout has not been defined');
124
- }
125
- function defaultClearTimeout () {
126
- throw new Error('clearTimeout has not been defined');
127
- }
128
- (function () {
129
- try {
130
- if (typeof setTimeout === 'function') {
131
- cachedSetTimeout = setTimeout;
132
- } else {
133
- cachedSetTimeout = defaultSetTimout;
134
- }
135
- } catch (e) {
136
- cachedSetTimeout = defaultSetTimout;
137
- }
138
- try {
139
- if (typeof clearTimeout === 'function') {
140
- cachedClearTimeout = clearTimeout;
141
- } else {
142
- cachedClearTimeout = defaultClearTimeout;
143
- }
144
- } catch (e) {
145
- cachedClearTimeout = defaultClearTimeout;
146
- }
147
- } ())
148
- function runTimeout(fun) {
149
- if (cachedSetTimeout === setTimeout) {
150
- //normal enviroments in sane situations
151
- return setTimeout(fun, 0);
152
- }
153
- // if setTimeout wasn't available but was latter defined
154
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
155
- cachedSetTimeout = setTimeout;
156
- return setTimeout(fun, 0);
157
- }
158
- try {
159
- // when when somebody has screwed with setTimeout but no I.E. maddness
160
- return cachedSetTimeout(fun, 0);
161
- } catch(e){
162
- try {
163
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
164
- return cachedSetTimeout.call(null, fun, 0);
165
- } catch(e){
166
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
167
- return cachedSetTimeout.call(this, fun, 0);
168
- }
169
- }
170
-
171
-
172
- }
173
- function runClearTimeout(marker) {
174
- if (cachedClearTimeout === clearTimeout) {
175
- //normal enviroments in sane situations
176
- return clearTimeout(marker);
177
- }
178
- // if clearTimeout wasn't available but was latter defined
179
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
180
- cachedClearTimeout = clearTimeout;
181
- return clearTimeout(marker);
182
- }
183
- try {
184
- // when when somebody has screwed with setTimeout but no I.E. maddness
185
- return cachedClearTimeout(marker);
186
- } catch (e){
187
- try {
188
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
189
- return cachedClearTimeout.call(null, marker);
190
- } catch (e){
191
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
192
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
193
- return cachedClearTimeout.call(this, marker);
194
- }
195
- }
196
-
197
-
198
-
199
- }
200
- var queue = [];
201
- var draining = false;
202
- var currentQueue;
203
- var queueIndex = -1;
204
-
205
- function cleanUpNextTick() {
206
- if (!draining || !currentQueue) {
207
- return;
208
- }
209
- draining = false;
210
- if (currentQueue.length) {
211
- queue = currentQueue.concat(queue);
212
- } else {
213
- queueIndex = -1;
214
- }
215
- if (queue.length) {
216
- drainQueue();
217
- }
218
- }
219
-
220
- function drainQueue() {
221
- if (draining) {
222
- return;
223
- }
224
- var timeout = runTimeout(cleanUpNextTick);
225
- draining = true;
226
-
227
- var len = queue.length;
228
- while(len) {
229
- currentQueue = queue;
230
- queue = [];
231
- while (++queueIndex < len) {
232
- if (currentQueue) {
233
- currentQueue[queueIndex].run();
234
- }
235
- }
236
- queueIndex = -1;
237
- len = queue.length;
238
- }
239
- currentQueue = null;
240
- draining = false;
241
- runClearTimeout(timeout);
242
- }
243
-
244
- process.nextTick = function (fun) {
245
- var args = new Array(arguments.length - 1);
246
- if (arguments.length > 1) {
247
- for (var i = 1; i < arguments.length; i++) {
248
- args[i - 1] = arguments[i];
249
- }
250
- }
251
- queue.push(new Item(fun, args));
252
- if (queue.length === 1 && !draining) {
253
- runTimeout(drainQueue);
254
- }
255
- };
256
-
257
- // v8 likes predictible objects
258
- function Item(fun, array) {
259
- this.fun = fun;
260
- this.array = array;
261
- }
262
- Item.prototype.run = function () {
263
- this.fun.apply(null, this.array);
264
- };
265
- process.title = 'browser';
266
- process.browser = true;
267
- process.env = {};
268
- process.argv = [];
269
- process.version = ''; // empty string to avoid regexp issues
270
- process.versions = {};
271
-
272
- function noop() {}
273
-
274
- process.on = noop;
275
- process.addListener = noop;
276
- process.once = noop;
277
- process.off = noop;
278
- process.removeListener = noop;
279
- process.removeAllListeners = noop;
280
- process.emit = noop;
281
- process.prependListener = noop;
282
- process.prependOnceListener = noop;
283
-
284
- process.listeners = function (name) { return [] }
285
-
286
- process.binding = function (name) {
287
- throw new Error('process.binding is not supported');
288
- };
289
-
290
- process.cwd = function () { return '/' };
291
- process.chdir = function (dir) {
292
- throw new Error('process.chdir is not supported');
293
- };
294
- process.umask = function() { return 0; };
295
-
296
-
297
- /***/ }),
298
-
299
- /***/ "./node_modules/setimmediate/setImmediate.js":
300
- /*!***************************************************!*\
301
- !*** ./node_modules/setimmediate/setImmediate.js ***!
302
- \***************************************************/
303
- /*! no static exports found */
304
- /***/ (function(module, exports, __webpack_require__) {
305
-
306
- /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
307
- "use strict";
308
-
309
- if (global.setImmediate) {
310
- return;
311
- }
312
-
313
- var nextHandle = 1; // Spec says greater than zero
314
- var tasksByHandle = {};
315
- var currentlyRunningATask = false;
316
- var doc = global.document;
317
- var registerImmediate;
318
-
319
- function setImmediate(callback) {
320
- // Callback can either be a function or a string
321
- if (typeof callback !== "function") {
322
- callback = new Function("" + callback);
323
- }
324
- // Copy function arguments
325
- var args = new Array(arguments.length - 1);
326
- for (var i = 0; i < args.length; i++) {
327
- args[i] = arguments[i + 1];
328
- }
329
- // Store and register the task
330
- var task = { callback: callback, args: args };
331
- tasksByHandle[nextHandle] = task;
332
- registerImmediate(nextHandle);
333
- return nextHandle++;
334
- }
335
-
336
- function clearImmediate(handle) {
337
- delete tasksByHandle[handle];
338
- }
339
-
340
- function run(task) {
341
- var callback = task.callback;
342
- var args = task.args;
343
- switch (args.length) {
344
- case 0:
345
- callback();
346
- break;
347
- case 1:
348
- callback(args[0]);
349
- break;
350
- case 2:
351
- callback(args[0], args[1]);
352
- break;
353
- case 3:
354
- callback(args[0], args[1], args[2]);
355
- break;
356
- default:
357
- callback.apply(undefined, args);
358
- break;
359
- }
360
- }
361
-
362
- function runIfPresent(handle) {
363
- // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
364
- // So if we're currently running a task, we'll need to delay this invocation.
365
- if (currentlyRunningATask) {
366
- // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
367
- // "too much recursion" error.
368
- setTimeout(runIfPresent, 0, handle);
369
- } else {
370
- var task = tasksByHandle[handle];
371
- if (task) {
372
- currentlyRunningATask = true;
373
- try {
374
- run(task);
375
- } finally {
376
- clearImmediate(handle);
377
- currentlyRunningATask = false;
378
- }
379
- }
380
- }
381
- }
382
-
383
- function installNextTickImplementation() {
384
- registerImmediate = function(handle) {
385
- process.nextTick(function () { runIfPresent(handle); });
386
- };
387
- }
388
-
389
- function canUsePostMessage() {
390
- // The test against `importScripts` prevents this implementation from being installed inside a web worker,
391
- // where `global.postMessage` means something completely different and can't be used for this purpose.
392
- if (global.postMessage && !global.importScripts) {
393
- var postMessageIsAsynchronous = true;
394
- var oldOnMessage = global.onmessage;
395
- global.onmessage = function() {
396
- postMessageIsAsynchronous = false;
397
- };
398
- global.postMessage("", "*");
399
- global.onmessage = oldOnMessage;
400
- return postMessageIsAsynchronous;
401
- }
402
- }
403
-
404
- function installPostMessageImplementation() {
405
- // Installs an event handler on `global` for the `message` event: see
406
- // * https://developer.mozilla.org/en/DOM/window.postMessage
407
- // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
408
-
409
- var messagePrefix = "setImmediate$" + Math.random() + "$";
410
- var onGlobalMessage = function(event) {
411
- if (event.source === global &&
412
- typeof event.data === "string" &&
413
- event.data.indexOf(messagePrefix) === 0) {
414
- runIfPresent(+event.data.slice(messagePrefix.length));
415
- }
416
- };
417
-
418
- if (global.addEventListener) {
419
- global.addEventListener("message", onGlobalMessage, false);
420
- } else {
421
- global.attachEvent("onmessage", onGlobalMessage);
422
- }
423
-
424
- registerImmediate = function(handle) {
425
- global.postMessage(messagePrefix + handle, "*");
426
- };
427
- }
428
-
429
- function installMessageChannelImplementation() {
430
- var channel = new MessageChannel();
431
- channel.port1.onmessage = function(event) {
432
- var handle = event.data;
433
- runIfPresent(handle);
434
- };
435
-
436
- registerImmediate = function(handle) {
437
- channel.port2.postMessage(handle);
438
- };
439
- }
440
-
441
- function installReadyStateChangeImplementation() {
442
- var html = doc.documentElement;
443
- registerImmediate = function(handle) {
444
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
445
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
446
- var script = doc.createElement("script");
447
- script.onreadystatechange = function () {
448
- runIfPresent(handle);
449
- script.onreadystatechange = null;
450
- html.removeChild(script);
451
- script = null;
452
- };
453
- html.appendChild(script);
454
- };
455
- }
456
-
457
- function installSetTimeoutImplementation() {
458
- registerImmediate = function(handle) {
459
- setTimeout(runIfPresent, 0, handle);
460
- };
461
- }
462
-
463
- // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
464
- var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
465
- attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
466
-
467
- // Don't get fooled by e.g. browserify environments.
468
- if ({}.toString.call(global.process) === "[object process]") {
469
- // For Node.js before 0.9
470
- installNextTickImplementation();
471
-
472
- } else if (canUsePostMessage()) {
473
- // For non-IE10 modern browsers
474
- installPostMessageImplementation();
475
-
476
- } else if (global.MessageChannel) {
477
- // For web workers, where supported
478
- installMessageChannelImplementation();
479
-
480
- } else if (doc && "onreadystatechange" in doc.createElement("script")) {
481
- // For IE 6–8
482
- installReadyStateChangeImplementation();
483
-
484
- } else {
485
- // For older browsers
486
- installSetTimeoutImplementation();
487
- }
488
-
489
- attachTo.setImmediate = setImmediate;
490
- attachTo.clearImmediate = clearImmediate;
491
- }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
492
-
493
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
494
-
495
- /***/ }),
496
-
497
104
  /***/ "./node_modules/signature_pad/dist/signature_pad.mjs":
498
105
  /*!***********************************************************!*\
499
106
  !*** ./node_modules/signature_pad/dist/signature_pad.mjs ***!
@@ -1107,112 +714,6 @@ SignaturePad.prototype.toData = function () {
1107
714
  /* harmony default export */ __webpack_exports__["default"] = (SignaturePad);
1108
715
 
1109
716
 
1110
- /***/ }),
1111
-
1112
- /***/ "./node_modules/timers-browserify/main.js":
1113
- /*!************************************************!*\
1114
- !*** ./node_modules/timers-browserify/main.js ***!
1115
- \************************************************/
1116
- /*! no static exports found */
1117
- /***/ (function(module, exports, __webpack_require__) {
1118
-
1119
- /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
1120
- (typeof self !== "undefined" && self) ||
1121
- window;
1122
- var apply = Function.prototype.apply;
1123
-
1124
- // DOM APIs, for completeness
1125
-
1126
- exports.setTimeout = function() {
1127
- return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
1128
- };
1129
- exports.setInterval = function() {
1130
- return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
1131
- };
1132
- exports.clearTimeout =
1133
- exports.clearInterval = function(timeout) {
1134
- if (timeout) {
1135
- timeout.close();
1136
- }
1137
- };
1138
-
1139
- function Timeout(id, clearFn) {
1140
- this._id = id;
1141
- this._clearFn = clearFn;
1142
- }
1143
- Timeout.prototype.unref = Timeout.prototype.ref = function() {};
1144
- Timeout.prototype.close = function() {
1145
- this._clearFn.call(scope, this._id);
1146
- };
1147
-
1148
- // Does not start the time, just sets up the members needed.
1149
- exports.enroll = function(item, msecs) {
1150
- clearTimeout(item._idleTimeoutId);
1151
- item._idleTimeout = msecs;
1152
- };
1153
-
1154
- exports.unenroll = function(item) {
1155
- clearTimeout(item._idleTimeoutId);
1156
- item._idleTimeout = -1;
1157
- };
1158
-
1159
- exports._unrefActive = exports.active = function(item) {
1160
- clearTimeout(item._idleTimeoutId);
1161
-
1162
- var msecs = item._idleTimeout;
1163
- if (msecs >= 0) {
1164
- item._idleTimeoutId = setTimeout(function onTimeout() {
1165
- if (item._onTimeout)
1166
- item._onTimeout();
1167
- }, msecs);
1168
- }
1169
- };
1170
-
1171
- // setimmediate attaches itself to the global object
1172
- __webpack_require__(/*! setimmediate */ "./node_modules/setimmediate/setImmediate.js");
1173
- // On some exotic environments, it's not clear which object `setimmediate` was
1174
- // able to install onto. Search each possibility in the same order as the
1175
- // `setimmediate` library.
1176
- exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
1177
- (typeof global !== "undefined" && global.setImmediate) ||
1178
- (this && this.setImmediate);
1179
- exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
1180
- (typeof global !== "undefined" && global.clearImmediate) ||
1181
- (this && this.clearImmediate);
1182
-
1183
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
1184
-
1185
- /***/ }),
1186
-
1187
- /***/ "./node_modules/webpack/buildin/global.js":
1188
- /*!***********************************!*\
1189
- !*** (webpack)/buildin/global.js ***!
1190
- \***********************************/
1191
- /*! no static exports found */
1192
- /***/ (function(module, exports) {
1193
-
1194
- var g;
1195
-
1196
- // This works in non-strict mode
1197
- g = (function() {
1198
- return this;
1199
- })();
1200
-
1201
- try {
1202
- // This works if eval is allowed (see CSP)
1203
- g = g || new Function("return this")();
1204
- } catch (e) {
1205
- // This works if the window reference is available
1206
- if (typeof window === "object") g = window;
1207
- }
1208
-
1209
- // g can still be undefined, but nothing to do about it...
1210
- // We return undefined, instead of nothing here, so it's
1211
- // easier to handle this case. if(!global) { ...}
1212
-
1213
- module.exports = g;
1214
-
1215
-
1216
717
  /***/ }),
1217
718
 
1218
719
  /***/ "./src/actions/action.ts":
@@ -2576,7 +2077,7 @@ var Base = /** @class */ (function () {
2576
2077
  */
2577
2078
  Base.prototype.getPropertyValue = function (name, defaultValue) {
2578
2079
  if (defaultValue === void 0) { defaultValue = null; }
2579
- var res = this.getPropertyValueCore(this.propertyHash, name);
2080
+ var res = this.getPropertyValueWithoutDefault(name);
2580
2081
  if (this.isPropertyEmpty(res)) {
2581
2082
  var locStr = this.localizableStrings ? this.localizableStrings[name] : undefined;
2582
2083
  if (locStr)
@@ -2602,6 +2103,9 @@ var Base = /** @class */ (function () {
2602
2103
  return prop.onGetValue(this);
2603
2104
  return undefined;
2604
2105
  };
2106
+ Base.prototype.getPropertyValueWithoutDefault = function (name) {
2107
+ return this.getPropertyValueCore(this.propertyHash, name);
2108
+ };
2605
2109
  Base.prototype.getPropertyValueCore = function (propertiesHash, name) {
2606
2110
  if (!this.isLoadingFromJson) {
2607
2111
  Base.collectDependency(this, name);
@@ -6608,12 +6112,16 @@ var DragDropPanelHelperV1 = /** @class */ (function () {
6608
6112
  var destRow = this.dragDropFindRow(dest);
6609
6113
  if (!destRow)
6610
6114
  return true;
6611
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].supportCreatorV2 && this.panel.isDesignMode) {
6612
- if (destRow.elements.length > 1)
6613
- return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6614
- else
6615
- return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6616
- }
6115
+ // if (settings.supportCreatorV2 && this.panel.isDesignMode) {
6116
+ // if (destRow.elements.length > 1)
6117
+ // return this.dragDropAddTargetToExistingRow(
6118
+ // dragDropInfo,
6119
+ // destRow,
6120
+ // prevRow
6121
+ // );
6122
+ // else
6123
+ // return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6124
+ // }
6617
6125
  if (!dragDropInfo.target.startWithNewLine)
6618
6126
  return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6619
6127
  return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
@@ -6750,13 +6258,13 @@ var DragDropChoices = /** @class */ (function (_super) {
6750
6258
  _this.doDragOver = function () {
6751
6259
  if (_this.parentElement.getType() === "imagepicker")
6752
6260
  return;
6753
- var node = _this.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6261
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6754
6262
  node.style.cursor = "grabbing";
6755
6263
  };
6756
6264
  _this.doBanDropHere = function () {
6757
6265
  if (_this.parentElement.getType() === "imagepicker")
6758
6266
  return;
6759
- var node = _this.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6267
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6760
6268
  node.style.cursor = "not-allowed";
6761
6269
  };
6762
6270
  return _this;
@@ -6774,7 +6282,7 @@ var DragDropChoices = /** @class */ (function (_super) {
6774
6282
  }
6775
6283
  var draggedElementShortcut = document.createElement("div");
6776
6284
  // draggedElementShortcut.innerText = text;
6777
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n font-family: var(--font-family, $font-family);\n ";
6285
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 10000;\n font-family: var(--font-family, $font-family);\n ";
6778
6286
  var isDeepClone = true;
6779
6287
  var clone = (draggedElementNode
6780
6288
  .closest("[data-sv-drop-target-item-value]")
@@ -6797,7 +6305,7 @@ var DragDropChoices = /** @class */ (function (_super) {
6797
6305
  };
6798
6306
  DragDropChoices.prototype.createImagePickerShortcut = function (item, text, draggedElementNode, event) {
6799
6307
  var draggedElementShortcut = document.createElement("div");
6800
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n padding: 4px;\n border-radius: 4px;\n background: white;\n ";
6308
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 10000;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n padding: 4px;\n border-radius: 4px;\n background: white;\n ";
6801
6309
  var itemValueNode = draggedElementNode.closest("[data-sv-drop-target-item-value]");
6802
6310
  var controlsNode = itemValueNode.querySelector(".svc-image-item-value-controls");
6803
6311
  var imageContainerNode = itemValueNode.querySelector(".sd-imagepicker__image-container");
@@ -6821,7 +6329,7 @@ var DragDropChoices = /** @class */ (function (_super) {
6821
6329
  return parent.rankingChoices;
6822
6330
  return parent.visibleChoices;
6823
6331
  };
6824
- DragDropChoices.prototype.isDropTargetValid = function (dropTarget) {
6332
+ DragDropChoices.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
6825
6333
  var choices = this.getVisibleChoices();
6826
6334
  if (this.parentElement.getType() !== "imagepicker") {
6827
6335
  var dropTargetIndex = choices.indexOf(this.dropTarget);
@@ -6882,12 +6390,14 @@ var DragDropChoices = /** @class */ (function (_super) {
6882
6390
  choices.splice(newIndex, 0, this.draggedElement);
6883
6391
  return this.parentElement;
6884
6392
  };
6885
- DragDropChoices.prototype.doClear = function () {
6886
- this.updateVisibleChoices();
6393
+ DragDropChoices.prototype.clear = function () {
6394
+ if (!!this.parentElement) {
6395
+ this.updateVisibleChoices(this.parentElement);
6396
+ }
6397
+ _super.prototype.clear.call(this);
6887
6398
  };
6888
- DragDropChoices.prototype.updateVisibleChoices = function () {
6889
- var parent = this.parentElement;
6890
- this.parentElement.getType() === "ranking" ?
6399
+ DragDropChoices.prototype.updateVisibleChoices = function (parent) {
6400
+ parent.getType() === "ranking" ?
6891
6401
  parent.updateRankingChoices() :
6892
6402
  parent["updateVisibleChoices"]();
6893
6403
  };
@@ -6909,33 +6419,187 @@ var DragDropChoices = /** @class */ (function (_super) {
6909
6419
  __webpack_require__.r(__webpack_exports__);
6910
6420
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return DragDropCore; });
6911
6421
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../base */ "./src/base.ts");
6912
- /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
6913
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/utils */ "./src/utils/utils.ts");
6914
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/devices */ "./src/utils/devices.ts");
6915
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
6916
- var __extends = (undefined && undefined.__extends) || (function () {
6917
- var extendStatics = function (d, b) {
6918
- extendStatics = Object.setPrototypeOf ||
6919
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6920
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6921
- return extendStatics(d, b);
6422
+ /* harmony import */ var _dom_adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-adapter */ "./src/dragdrop/dom-adapter.ts");
6423
+
6424
+
6425
+ var DragDropCore = /** @class */ (function () {
6426
+ function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6427
+ var _this = this;
6428
+ this.surveyValue = surveyValue;
6429
+ this.creator = creator;
6430
+ this._isBottom = null;
6431
+ this.onGhostPositionChanged = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6432
+ this.onDragStart = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6433
+ this.onDragEnd = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6434
+ this.onBeforeDrop = this.onDragStart;
6435
+ this.onAfterDrop = this.onDragEnd;
6436
+ this.draggedElement = null;
6437
+ this.dropTarget = null;
6438
+ this.prevDropTarget = null;
6439
+ this.allowDropHere = false;
6440
+ this.banDropHere = function () {
6441
+ _this.allowDropHere = false;
6442
+ _this.doBanDropHere();
6443
+ _this.dropTarget = null;
6444
+ _this.domAdapter.draggedElementShortcut.style.cursor = "not-allowed";
6445
+ _this.isBottom = null;
6446
+ };
6447
+ this.doBanDropHere = function () { };
6448
+ this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap);
6449
+ }
6450
+ Object.defineProperty(DragDropCore.prototype, "isBottom", {
6451
+ get: function () {
6452
+ return !!this._isBottom;
6453
+ },
6454
+ set: function (val) {
6455
+ this._isBottom = val;
6456
+ this.ghostPositionChanged();
6457
+ },
6458
+ enumerable: false,
6459
+ configurable: true
6460
+ });
6461
+ DragDropCore.prototype.ghostPositionChanged = function () {
6462
+ this.onGhostPositionChanged.fire({}, {});
6922
6463
  };
6923
- return function (d, b) {
6924
- if (typeof b !== "function" && b !== null)
6925
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
6926
- extendStatics(d, b);
6927
- function __() { this.constructor = d; }
6928
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
6464
+ Object.defineProperty(DragDropCore.prototype, "dropTargetDataAttributeName", {
6465
+ get: function () {
6466
+ return "[data-sv-drop-target-" + this.draggedElementType + "]";
6467
+ },
6468
+ enumerable: false,
6469
+ configurable: true
6470
+ });
6471
+ Object.defineProperty(DragDropCore.prototype, "survey", {
6472
+ get: function () {
6473
+ return this.surveyValue || this.creator.survey;
6474
+ },
6475
+ enumerable: false,
6476
+ configurable: true
6477
+ });
6478
+ DragDropCore.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6479
+ if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
6480
+ this.domAdapter.startDrag(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
6929
6481
  };
6930
- })();
6931
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6932
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6933
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6934
- 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;
6935
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6936
- };
6482
+ DragDropCore.prototype.dragInit = function (event, draggedElement, parentElement, draggedElementNode) {
6483
+ this.draggedElement = draggedElement;
6484
+ this.parentElement = parentElement;
6485
+ var shortcutText = this.getShortcutText(this.draggedElement);
6486
+ this.domAdapter.draggedElementShortcut = this.createDraggedElementShortcut(shortcutText, draggedElementNode, event);
6487
+ this.onStartDrag();
6488
+ };
6489
+ DragDropCore.prototype.onStartDrag = function () {
6490
+ };
6491
+ DragDropCore.prototype.isDropTargetDoesntChanged = function (newIsBottom) {
6492
+ return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
6493
+ };
6494
+ DragDropCore.prototype.getShortcutText = function (draggedElement) {
6495
+ return draggedElement.shortcutText;
6496
+ };
6497
+ DragDropCore.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
6498
+ var draggedElementShortcut = document.createElement("div");
6499
+ draggedElementShortcut.innerText = text;
6500
+ draggedElementShortcut.className = this.getDraggedElementClass();
6501
+ return draggedElementShortcut;
6502
+ };
6503
+ DragDropCore.prototype.getDraggedElementClass = function () {
6504
+ return "sv-dragged-element-shortcut";
6505
+ };
6506
+ DragDropCore.prototype.doDragOver = function () { };
6507
+ DragDropCore.prototype.afterDragOver = function (dropTargetNode) { };
6508
+ DragDropCore.prototype.findDropTargetNodeFromPoint = function (clientX, clientY) {
6509
+ this.domAdapter.draggedElementShortcut.hidden = true;
6510
+ var dragOverNode = document.elementFromPoint(clientX, clientY);
6511
+ this.domAdapter.draggedElementShortcut.hidden = false;
6512
+ if (!dragOverNode)
6513
+ return null;
6514
+ return this.findDropTargetNodeByDragOverNode(dragOverNode);
6515
+ };
6516
+ DragDropCore.prototype.getDataAttributeValueByNode = function (node) {
6517
+ var _this = this;
6518
+ var datasetName = "svDropTarget";
6519
+ var words = this.draggedElementType.split("-");
6520
+ words.forEach(function (word) {
6521
+ datasetName += _this.capitalizeFirstLetter(word);
6522
+ });
6523
+ return node.dataset[datasetName];
6524
+ };
6525
+ DragDropCore.prototype.getDropTargetByNode = function (dropTargetNode, event) {
6526
+ var dataAttributeValue = this.getDataAttributeValueByNode(dropTargetNode);
6527
+ return this.getDropTargetByDataAttributeValue(dataAttributeValue, dropTargetNode, event);
6528
+ };
6529
+ DragDropCore.prototype.capitalizeFirstLetter = function (string) {
6530
+ return string.charAt(0).toUpperCase() + string.slice(1);
6531
+ };
6532
+ DragDropCore.prototype.calculateVerticalMiddleOfHTMLElement = function (HTMLElement) {
6533
+ var rect = HTMLElement.getBoundingClientRect();
6534
+ return rect.y + rect.height / 2;
6535
+ };
6536
+ DragDropCore.prototype.calculateHorizontalMiddleOfHTMLElement = function (HTMLElement) {
6537
+ var rect = HTMLElement.getBoundingClientRect();
6538
+ return rect.x + rect.width / 2;
6539
+ };
6540
+ DragDropCore.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
6541
+ return false;
6542
+ };
6543
+ DragDropCore.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
6544
+ var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
6545
+ return dropTargetNode;
6546
+ };
6547
+ DragDropCore.prototype.dragOver = function (event) {
6548
+ var dropTargetNode = this.findDropTargetNodeFromPoint(event.clientX, event.clientY);
6549
+ if (!dropTargetNode) {
6550
+ this.banDropHere();
6551
+ return;
6552
+ }
6553
+ this.dropTarget = this.getDropTargetByNode(dropTargetNode, event);
6554
+ var isDropTargetValid = this.isDropTargetValid(this.dropTarget, dropTargetNode);
6555
+ this.doDragOver();
6556
+ if (!isDropTargetValid) {
6557
+ this.banDropHere();
6558
+ return;
6559
+ }
6560
+ var isBottom = this.calculateIsBottom(event.clientY, dropTargetNode);
6561
+ this.allowDropHere = true;
6562
+ if (this.isDropTargetDoesntChanged(isBottom))
6563
+ return;
6564
+ this.isBottom = null; //TODO need for property change trigger with guarantee but it would be better not to watch on isBottom property but have some event like onValidTargetDragOver
6565
+ this.isBottom = isBottom;
6566
+ this.afterDragOver(dropTargetNode);
6567
+ this.prevDropTarget = this.dropTarget;
6568
+ };
6569
+ DragDropCore.prototype.drop = function () {
6570
+ if (this.allowDropHere) {
6571
+ var fromElement = this.draggedElement.parent;
6572
+ this.onDragStart.fire(this, { fromElement: fromElement, draggedElement: this.draggedElement });
6573
+ var newElement = this.doDrop();
6574
+ this.onDragEnd.fire(this, { fromElement: fromElement, draggedElement: newElement, toElement: this.dropTarget });
6575
+ }
6576
+ };
6577
+ DragDropCore.prototype.clear = function () {
6578
+ this.dropTarget = null;
6579
+ this.draggedElement = null;
6580
+ this.isBottom = null;
6581
+ this.parentElement = null;
6582
+ };
6583
+ return DragDropCore;
6584
+ }());
6585
+
6586
+
6937
6587
 
6588
+ /***/ }),
6589
+
6590
+ /***/ "./src/dragdrop/dom-adapter.ts":
6591
+ /*!*************************************!*\
6592
+ !*** ./src/dragdrop/dom-adapter.ts ***!
6593
+ \*************************************/
6594
+ /*! exports provided: DragDropDOMAdapter */
6595
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
6938
6596
 
6597
+ "use strict";
6598
+ __webpack_require__.r(__webpack_exports__);
6599
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropDOMAdapter", function() { return DragDropDOMAdapter; });
6600
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/utils */ "./src/utils/utils.ts");
6601
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/devices */ "./src/utils/devices.ts");
6602
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
6939
6603
 
6940
6604
 
6941
6605
 
@@ -6943,32 +6607,20 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
6943
6607
  // see https://bugs.webkit.org/show_bug.cgi?id=184250
6944
6608
  if (typeof window !== "undefined") {
6945
6609
  window.addEventListener("touchmove", function (event) {
6946
- if (!DragDropCore.PreventScrolling) {
6610
+ if (!DragDropDOMAdapter.PreventScrolling) {
6947
6611
  return;
6948
6612
  }
6949
6613
  // Prevent scrolling
6950
6614
  event.preventDefault();
6951
6615
  }, { passive: false });
6952
6616
  }
6953
- var DragDropCore = /** @class */ (function (_super) {
6954
- __extends(DragDropCore, _super);
6955
- function DragDropCore(surveyValue, creator, longTap) {
6956
- var _this = _super.call(this) || this;
6957
- _this.surveyValue = surveyValue;
6958
- _this.creator = creator;
6959
- _this.longTap = longTap;
6960
- _this.onGhostPositionChanged = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6961
- _this.onDragStart = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6962
- _this.onDragEnd = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6963
- _this.onBeforeDrop = _this.onDragStart;
6964
- _this.onAfterDrop = _this.onDragEnd;
6965
- _this.draggedElement = null;
6966
- _this.dropTarget = null;
6967
- _this.prevDropTarget = null;
6968
- _this.draggedElementShortcut = null;
6969
- _this.scrollIntervalId = null;
6970
- _this.allowDropHere = false;
6971
- _this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
6617
+ var DragDropDOMAdapter = /** @class */ (function () {
6618
+ function DragDropDOMAdapter(dd, longTap) {
6619
+ var _this = this;
6620
+ this.dd = dd;
6621
+ this.longTap = longTap;
6622
+ this.scrollIntervalId = null;
6623
+ this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
6972
6624
  pointerMoveEvent.preventDefault();
6973
6625
  _this.currentX = pointerMoveEvent.pageX;
6974
6626
  _this.currentY = pointerMoveEvent.pageY;
@@ -6979,119 +6631,69 @@ var DragDropCore = /** @class */ (function (_super) {
6979
6631
  document.body.style.setProperty("-webkit-user-select", "");
6980
6632
  _this.stopLongTap();
6981
6633
  };
6982
- _this.stopLongTap = function (e) {
6634
+ this.stopLongTap = function (e) {
6983
6635
  clearTimeout(_this.timeoutID);
6984
6636
  _this.timeoutID = null;
6985
6637
  document.removeEventListener("pointerup", _this.stopLongTap);
6986
6638
  document.removeEventListener("pointermove", _this.stopLongTapIfMoveEnough);
6987
6639
  };
6988
- _this.onContextMenu = function (event) {
6989
- event.preventDefault();
6990
- event.stopPropagation();
6991
- };
6992
- _this.dragOver = function (event) {
6993
- _this.moveShortcutElement(event);
6994
- _this.draggedElementShortcut.style.cursor = "grabbing";
6995
- var dropTargetNode = _this.findDropTargetNodeFromPoint(event.clientX, event.clientY);
6996
- if (!dropTargetNode) {
6997
- _this.banDropHere();
6998
- return;
6999
- }
7000
- _this.dropTarget = _this.getDropTargetByNode(dropTargetNode, event);
7001
- var isDropTargetValid = _this.isDropTargetValid(_this.dropTarget, dropTargetNode);
7002
- _this.doDragOver(dropTargetNode, event);
7003
- if (!isDropTargetValid) {
7004
- _this.banDropHere();
7005
- return;
7006
- }
7007
- var isBottom = _this.calculateIsBottom(event.clientY, dropTargetNode);
7008
- _this.allowDropHere = true;
7009
- if (_this.isDropTargetDoesntChanged(isBottom))
7010
- return;
7011
- _this.isBottom = null; //TODO need for property change trigger with guarantee but it would be better not to watch on isBottom property but have some event like onValidTargetDragOver
7012
- _this.isBottom = isBottom;
7013
- _this.afterDragOver(dropTargetNode, event);
7014
- _this.prevDropTarget = _this.dropTarget;
7015
- };
7016
- _this.drop = function () {
7017
- if (_this.allowDropHere) {
7018
- var fromElement = _this.draggedElement.parent;
7019
- _this.onDragStart.fire(_this, { fromElement: fromElement, draggedElement: _this.draggedElement });
7020
- var newElement = _this.doDrop();
7021
- _this.onDragEnd.fire(_this, { fromElement: fromElement, draggedElement: newElement, toElement: _this.dropTarget });
7022
- }
7023
- _this.clear();
7024
- };
7025
- _this.handlePointerCancel = function (event) {
6640
+ this.handlePointerCancel = function (event) {
7026
6641
  _this.clear();
7027
6642
  };
7028
- _this.handleEscapeButton = function (event) {
6643
+ this.handleEscapeButton = function (event) {
7029
6644
  if (event.keyCode == 27) {
7030
6645
  _this.clear();
7031
6646
  }
7032
6647
  };
7033
- _this.banDropHere = function () {
7034
- _this.allowDropHere = false;
7035
- _this.doBanDropHere();
7036
- _this.dropTarget = null;
7037
- _this.draggedElementShortcut.style.cursor = "not-allowed";
7038
- _this.isBottom = null;
6648
+ this.onContextMenu = function (event) {
6649
+ event.preventDefault();
6650
+ event.stopPropagation();
6651
+ };
6652
+ this.dragOver = function (event) {
6653
+ _this.moveShortcutElement(event);
6654
+ _this.draggedElementShortcut.style.cursor = "grabbing";
6655
+ _this.dd.dragOver(event);
7039
6656
  };
7040
- _this.doBanDropHere = function () { };
7041
- _this.clear = function () {
6657
+ this.clear = function () {
7042
6658
  cancelAnimationFrame(_this.scrollIntervalId);
7043
6659
  document.removeEventListener("pointermove", _this.dragOver);
7044
6660
  document.removeEventListener("pointercancel", _this.handlePointerCancel);
7045
6661
  document.removeEventListener("keydown", _this.handleEscapeButton);
7046
6662
  document.removeEventListener("pointerup", _this.drop);
7047
6663
  _this.draggedElementShortcut.removeEventListener("pointerup", _this.drop);
7048
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
6664
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
7049
6665
  _this.draggedElementShortcut.removeEventListener("contextmenu", _this.onContextMenu);
7050
6666
  }
7051
- _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.removeChild(_this.draggedElementShortcut);
7052
- _this.doClear();
7053
- _this.dropTarget = null;
6667
+ _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.removeChild(_this.draggedElementShortcut);
6668
+ _this.dd.clear();
7054
6669
  _this.draggedElementShortcut = null;
7055
- _this.draggedElement = null;
7056
- _this.isBottom = null;
7057
- _this.parentElement = null;
7058
6670
  _this.scrollIntervalId = null;
7059
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7060
- _this.savedTargetNode && _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.removeChild(_this.savedTargetNode);
7061
- DragDropCore.PreventScrolling = false;
6671
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6672
+ _this.savedTargetNode && _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.removeChild(_this.savedTargetNode);
6673
+ DragDropDOMAdapter.PreventScrolling = false;
7062
6674
  }
7063
6675
  document.body.style.setProperty("touch-action", "");
7064
6676
  document.body.style.setProperty("user-select", "");
7065
6677
  document.body.style.setProperty("-webkit-user-select", "");
7066
6678
  };
7067
- return _this;
6679
+ this.drop = function () {
6680
+ _this.dd.drop();
6681
+ _this.clear();
6682
+ };
6683
+ this.draggedElementShortcut = null;
7068
6684
  }
7069
- DragDropCore.prototype.ghostPositionChanged = function () {
7070
- this.onGhostPositionChanged.fire({}, {});
7071
- };
7072
- Object.defineProperty(DragDropCore.prototype, "dropTargetDataAttributeName", {
7073
- get: function () {
7074
- return "[data-sv-drop-target-" + this.draggedElementType + "]";
7075
- },
7076
- enumerable: false,
7077
- configurable: true
7078
- });
7079
- Object.defineProperty(DragDropCore.prototype, "survey", {
6685
+ Object.defineProperty(DragDropDOMAdapter.prototype, "isMicroMovement", {
6686
+ // see https://stackoverflow.com/questions/6042202/how-to-distinguish-mouse-click-and-drag
7080
6687
  get: function () {
7081
- return this.surveyValue || this.creator.survey;
6688
+ var delta = 5;
6689
+ var diffX = Math.abs(this.currentX - this.startX);
6690
+ var diffY = Math.abs(this.currentY - this.startY);
6691
+ return diffX < delta && diffY < delta;
7082
6692
  },
7083
6693
  enumerable: false,
7084
6694
  configurable: true
7085
6695
  });
7086
- DragDropCore.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
7087
- if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
7088
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7089
- this.startLongTapProcessing(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
7090
- return;
7091
- }
7092
- this.doStartDrag(event, draggedElement, parentElement, draggedElementNode);
7093
- };
7094
- DragDropCore.prototype.startLongTapProcessing = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6696
+ DragDropDOMAdapter.prototype.startLongTapProcessing = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
7095
6697
  var _this = this;
7096
6698
  if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
7097
6699
  this.startX = event.pageX;
@@ -7105,75 +6707,14 @@ var DragDropCore = /** @class */ (function (_super) {
7105
6707
  _this.savedTargetNode = event.target;
7106
6708
  _this.savedTargetNode.style.cssText =
7107
6709
  "\n position: absolute;\n height: 1px!important;\n width: 1px!important;\n overflow: hidden;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n ";
7108
- _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.appendChild(_this.savedTargetNode);
6710
+ _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.appendChild(_this.savedTargetNode);
7109
6711
  }
7110
6712
  _this.stopLongTap();
7111
6713
  }, this.longTap ? 500 : 0);
7112
6714
  document.addEventListener("pointerup", this.stopLongTap);
7113
6715
  document.addEventListener("pointermove", this.stopLongTapIfMoveEnough);
7114
6716
  };
7115
- Object.defineProperty(DragDropCore.prototype, "isMicroMovement", {
7116
- // see https://stackoverflow.com/questions/6042202/how-to-distinguish-mouse-click-and-drag
7117
- get: function () {
7118
- var delta = 5;
7119
- var diffX = Math.abs(this.currentX - this.startX);
7120
- var diffY = Math.abs(this.currentY - this.startY);
7121
- return diffX < delta && diffY < delta;
7122
- },
7123
- enumerable: false,
7124
- configurable: true
7125
- });
7126
- // EO long tap
7127
- DragDropCore.prototype.doStartDrag = function (event, draggedElement, parentElement, draggedElementNode) {
7128
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7129
- DragDropCore.PreventScrolling = true;
7130
- }
7131
- if (event.which === 3)
7132
- return; //right mouse btn
7133
- this.draggedElement = draggedElement;
7134
- this.parentElement = parentElement;
7135
- this.onStartDrag();
7136
- var shortcutText = this.getShortcutText(this.draggedElement);
7137
- this.draggedElementShortcut = this.createDraggedElementShortcut(shortcutText, draggedElementNode, event);
7138
- document.body.append(this.draggedElementShortcut);
7139
- this.moveShortcutElement(event);
7140
- document.addEventListener("pointermove", this.dragOver);
7141
- document.addEventListener("pointercancel", this.handlePointerCancel);
7142
- document.addEventListener("keydown", this.handleEscapeButton);
7143
- document.addEventListener("pointerup", this.drop);
7144
- if (!_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7145
- this.draggedElementShortcut.addEventListener("pointerup", this.drop);
7146
- }
7147
- else {
7148
- this.draggedElementShortcut.addEventListener("contextmenu", this.onContextMenu);
7149
- }
7150
- };
7151
- DragDropCore.prototype.isDropTargetDoesntChanged = function (newIsBottom) {
7152
- return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
7153
- };
7154
- DragDropCore.prototype.onStartDrag = function () { };
7155
- DragDropCore.prototype.getShortcutText = function (draggedElement) {
7156
- return draggedElement.shortcutText;
7157
- };
7158
- DragDropCore.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
7159
- var draggedElementShortcut = document.createElement("div");
7160
- draggedElementShortcut.innerText = text;
7161
- draggedElementShortcut.className = this.getDraggedElementClass();
7162
- return draggedElementShortcut;
7163
- };
7164
- DragDropCore.prototype.getDraggedElementClass = function () {
7165
- return "sv-dragged-element-shortcut";
7166
- };
7167
- DragDropCore.prototype.doDragOver = function (dropTargetNode, event) { };
7168
- DragDropCore.prototype.afterDragOver = function (dropTargetNode, event) { };
7169
- DragDropCore.prototype.getGhostPosition = function (item) {
7170
- if (this.dropTarget !== item)
7171
- return null;
7172
- if (this.isBottom)
7173
- return "bottom";
7174
- return "top";
7175
- };
7176
- DragDropCore.prototype.moveShortcutElement = function (event) {
6717
+ DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7177
6718
  this.doScroll(event.clientY, event.clientX);
7178
6719
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7179
6720
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7184,8 +6725,8 @@ var DragDropCore = /** @class */ (function (_super) {
7184
6725
  shortcutXOffset = shortcutWidth / 2;
7185
6726
  shortcutYOffset = shortcutHeight / 2;
7186
6727
  }
7187
- var documentBottom = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.documentElement).clientHeight;
7188
- var documentRight = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.documentElement).clientWidth;
6728
+ var documentBottom = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.documentElement).clientHeight;
6729
+ var documentRight = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.documentElement).clientWidth;
7189
6730
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(event.clientY, shortcutHeight, shortcutYOffset);
7190
6731
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(event.clientX, shortcutWidth, shortcutXOffset);
7191
6732
  if (shortcutRightCoordinate >= documentRight) {
@@ -7229,20 +6770,20 @@ var DragDropCore = /** @class */ (function (_super) {
7229
6770
  this.draggedElementShortcut.style.top =
7230
6771
  event.pageY - shortcutYOffset + "px";
7231
6772
  };
7232
- DragDropCore.prototype.getShortcutBottomCoordinate = function (currentY, shortcutHeight, shortcutYOffset) {
6773
+ DragDropDOMAdapter.prototype.getShortcutBottomCoordinate = function (currentY, shortcutHeight, shortcutYOffset) {
7233
6774
  return currentY + shortcutHeight - shortcutYOffset;
7234
6775
  };
7235
- DragDropCore.prototype.getShortcutRightCoordinate = function (currentX, shortcutWidth, shortcutXOffset) {
6776
+ DragDropDOMAdapter.prototype.getShortcutRightCoordinate = function (currentX, shortcutWidth, shortcutXOffset) {
7236
6777
  return currentX + shortcutWidth - shortcutXOffset;
7237
6778
  };
7238
- DragDropCore.prototype.doScroll = function (clientY, clientX) {
6779
+ DragDropDOMAdapter.prototype.doScroll = function (clientY, clientX) {
7239
6780
  var _this = this;
7240
6781
  cancelAnimationFrame(this.scrollIntervalId);
7241
6782
  var startScrollBoundary = 50;
7242
6783
  this.draggedElementShortcut.hidden = true;
7243
6784
  var dragOverNode = document.elementFromPoint(clientX, clientY);
7244
6785
  this.draggedElementShortcut.hidden = false;
7245
- var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["findScrollableParent"])(dragOverNode);
6786
+ var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
7246
6787
  var top;
7247
6788
  var bottom;
7248
6789
  var left;
@@ -7276,54 +6817,37 @@ var DragDropCore = /** @class */ (function (_super) {
7276
6817
  };
7277
6818
  this.scrollIntervalId = requestAnimationFrame(repeat);
7278
6819
  };
7279
- DragDropCore.prototype.getDataAttributeValueByNode = function (node) {
7280
- var _this = this;
7281
- var datasetName = "svDropTarget";
7282
- var words = this.draggedElementType.split("-");
7283
- words.forEach(function (word) {
7284
- datasetName += _this.capitalizeFirstLetter(word);
7285
- });
7286
- return node.dataset[datasetName];
7287
- };
7288
- DragDropCore.prototype.getDropTargetByNode = function (dropTargetNode, event) {
7289
- var dataAttributeValue = this.getDataAttributeValueByNode(dropTargetNode);
7290
- return this.getDropTargetByDataAttributeValue(dataAttributeValue, dropTargetNode, event);
7291
- };
7292
- DragDropCore.prototype.capitalizeFirstLetter = function (string) {
7293
- return string.charAt(0).toUpperCase() + string.slice(1);
7294
- };
7295
- DragDropCore.prototype.calculateVerticalMiddleOfHTMLElement = function (HTMLElement) {
7296
- var rect = HTMLElement.getBoundingClientRect();
7297
- return rect.y + rect.height / 2;
7298
- };
7299
- DragDropCore.prototype.calculateHorizontalMiddleOfHTMLElement = function (HTMLElement) {
7300
- var rect = HTMLElement.getBoundingClientRect();
7301
- return rect.x + rect.width / 2;
7302
- };
7303
- DragDropCore.prototype.findDropTargetNodeFromPoint = function (clientX, clientY) {
7304
- this.draggedElementShortcut.hidden = true;
7305
- var dragOverNode = document.elementFromPoint(clientX, clientY);
7306
- this.draggedElementShortcut.hidden = false;
7307
- if (!dragOverNode)
7308
- return null;
7309
- return this.findDropTargetNodeByDragOverNode(dragOverNode);
6820
+ DragDropDOMAdapter.prototype.doStartDrag = function (event, draggedElement, parentElement, draggedElementNode) {
6821
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6822
+ DragDropDOMAdapter.PreventScrolling = true;
6823
+ }
6824
+ if (event.which === 3)
6825
+ return; //right mouse btn
6826
+ this.dd.dragInit(event, draggedElement, parentElement, draggedElementNode);
6827
+ document.body.append(this.draggedElementShortcut);
6828
+ this.moveShortcutElement(event);
6829
+ document.addEventListener("pointermove", this.dragOver);
6830
+ document.addEventListener("pointercancel", this.handlePointerCancel);
6831
+ document.addEventListener("keydown", this.handleEscapeButton);
6832
+ document.addEventListener("pointerup", this.drop);
6833
+ if (!_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6834
+ this.draggedElementShortcut.addEventListener("pointerup", this.drop);
6835
+ }
6836
+ else {
6837
+ this.draggedElementShortcut.addEventListener("contextmenu", this.onContextMenu);
6838
+ }
7310
6839
  };
7311
- DragDropCore.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7312
- var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
7313
- return dropTargetNode;
6840
+ DragDropDOMAdapter.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6841
+ if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
6842
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6843
+ this.startLongTapProcessing(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
6844
+ return;
6845
+ }
6846
+ this.doStartDrag(event, draggedElement, parentElement, draggedElementNode);
7314
6847
  };
7315
- DragDropCore.prototype.doClear = function () { };
7316
- DragDropCore.PreventScrolling = false;
7317
- __decorate([
7318
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
7319
- defaultValue: null,
7320
- onSet: function (val, target) {
7321
- target.ghostPositionChanged();
7322
- },
7323
- })
7324
- ], DragDropCore.prototype, "isBottom", void 0);
7325
- return DragDropCore;
7326
- }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
6848
+ DragDropDOMAdapter.PreventScrolling = false;
6849
+ return DragDropDOMAdapter;
6850
+ }());
7327
6851
 
7328
6852
 
7329
6853
 
@@ -7379,20 +6903,22 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7379
6903
  var _this = this;
7380
6904
  var draggedElementShortcut = document.createElement("div");
7381
6905
  // draggedElementShortcut.innerText = text;
7382
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n font-family: var(--font-family, $font-family);\n ";
6906
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 10000;\n font-family: var(--font-family, $font-family);\n ";
7383
6907
  var isDeepClone = true;
7384
- var row = (draggedElementNode
7385
- .closest("[data-sv-drop-target-matrix-row]"));
7386
- var clone = (row.cloneNode(isDeepClone));
7387
- clone.style.cssText = "\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n background-color: white;\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n align-items: center;\n line-height: 0;\n width: " + row.offsetWidth + "px;\n ";
7388
- clone.classList.remove("sv-matrix__drag-drop--moveup");
7389
- clone.classList.remove("sv-matrix__drag-drop--movedown");
7390
- this.draggedElement.isDragDropMoveDown = false;
7391
- this.draggedElement.isDragDropMoveUp = false;
7392
- draggedElementShortcut.appendChild(clone);
7393
- var rect = draggedElementNode.getBoundingClientRect();
7394
- draggedElementShortcut.shortcutXOffset = event.clientX - rect.x;
7395
- draggedElementShortcut.shortcutYOffset = event.clientY - rect.y;
6908
+ if (!!draggedElementNode) {
6909
+ var row = (draggedElementNode
6910
+ .closest("[data-sv-drop-target-matrix-row]"));
6911
+ var clone = (row.cloneNode(isDeepClone));
6912
+ clone.style.cssText = "\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n background-color: white;\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n align-items: center;\n line-height: 0;\n width: " + row.offsetWidth + "px;\n ";
6913
+ clone.classList.remove("sv-matrix__drag-drop--moveup");
6914
+ clone.classList.remove("sv-matrix__drag-drop--movedown");
6915
+ this.draggedElement.isDragDropMoveDown = false;
6916
+ this.draggedElement.isDragDropMoveUp = false;
6917
+ draggedElementShortcut.appendChild(clone);
6918
+ var rect = draggedElementNode.getBoundingClientRect();
6919
+ draggedElementShortcut.shortcutXOffset = event.clientX - rect.x;
6920
+ draggedElementShortcut.shortcutYOffset = event.clientY - rect.y;
6921
+ }
7396
6922
  //this.isBottom = null;
7397
6923
  var renderedRows = this.parentElement.renderedTable.rows;
7398
6924
  renderedRows.forEach(function (renderedRow, index) {
@@ -7421,7 +6947,7 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7421
6947
  dropTargetRenderedRow = matrix.renderedTable.rows.filter(function (renderedRow) { return renderedRow.row.id === dataAttributeValue; })[0];
7422
6948
  return dropTargetRenderedRow.row;
7423
6949
  };
7424
- DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget) {
6950
+ DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
7425
6951
  return true;
7426
6952
  };
7427
6953
  DragDropMatrixRows.prototype.calculateIsBottom = function (clientY) {
@@ -7471,10 +6997,15 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7471
6997
  // }
7472
6998
  _super.prototype.ghostPositionChanged.call(this);
7473
6999
  };
7474
- DragDropMatrixRows.prototype.doClear = function () {
7000
+ DragDropMatrixRows.prototype.clear = function () {
7001
+ var renderedRows = this.parentElement.renderedTable.rows;
7002
+ renderedRows.forEach(function (renderedRow) {
7003
+ renderedRow.isGhostRow = false;
7004
+ });
7475
7005
  this.parentElement.clearOnDrop();
7476
7006
  this.fromIndex = null;
7477
7007
  this.toIndex = null;
7008
+ _super.prototype.clear.call(this);
7478
7009
  };
7479
7010
  return DragDropMatrixRows;
7480
7011
  }(_core__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]));
@@ -7520,7 +7051,7 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7520
7051
  var _this = _super !== null && _super.apply(this, arguments) || this;
7521
7052
  _this.isDragOverRootNode = false;
7522
7053
  _this.doDragOver = function () {
7523
- var node = _this.draggedElementShortcut.querySelector(".sv-ranking-item");
7054
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7524
7055
  node.style.cursor = "grabbing";
7525
7056
  };
7526
7057
  _this.doBanDropHere = function () {
@@ -7528,17 +7059,13 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7528
7059
  _this.allowDropHere = true;
7529
7060
  return;
7530
7061
  }
7531
- var node = _this.draggedElementShortcut.querySelector(".sv-ranking-item");
7062
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7532
7063
  node.style.cursor = "not-allowed";
7533
7064
  };
7534
7065
  _this.doDrop = function () {
7535
7066
  _this.parentElement.setValue();
7536
7067
  return _this.parentElement;
7537
7068
  };
7538
- _this.doClear = function () {
7539
- _this.parentElement.dropTargetNodeMove = null;
7540
- _this.parentElement.updateRankingChoices(true);
7541
- };
7542
7069
  return _this;
7543
7070
  }
7544
7071
  Object.defineProperty(DragDropRankingChoices.prototype, "draggedElementType", {
@@ -7551,7 +7078,7 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7551
7078
  DragDropRankingChoices.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
7552
7079
  var draggedElementShortcut = document.createElement("div");
7553
7080
  draggedElementShortcut.className = this.shortcutClass + " sv-ranking-shortcut";
7554
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n border-radius: 36px;\n min-width: 100px;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n background-color: var(--background, white);\n font-family: var(--font-family, $font-family);\n ";
7081
+ draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 10000;\n border-radius: 36px;\n min-width: 100px;\n box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1);\n background-color: var(--background, white);\n font-family: var(--font-family, $font-family);\n ";
7555
7082
  var isDeepClone = true;
7556
7083
  var clone = draggedElementNode.cloneNode(isDeepClone);
7557
7084
  draggedElementShortcut.appendChild(clone);
@@ -7632,439 +7159,22 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7632
7159
  DragDropRankingChoices.prototype.updateDraggedElementShortcut = function (newIndex) {
7633
7160
  var newIndexText = newIndex + "";
7634
7161
  // TODO should avoid direct DOM manipulation, do through the frameworks instead
7635
- var indexNode = this.draggedElementShortcut.querySelector(".sv-ranking-item__index");
7162
+ var indexNode = this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item__index");
7636
7163
  indexNode.innerText = newIndexText;
7637
7164
  };
7638
7165
  DragDropRankingChoices.prototype.ghostPositionChanged = function () {
7639
7166
  this.parentElement.currentDropTarget = this.draggedElement;
7640
7167
  _super.prototype.ghostPositionChanged.call(this);
7641
7168
  };
7642
- return DragDropRankingChoices;
7643
- }(_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]));
7644
-
7645
-
7646
-
7647
- /***/ }),
7648
-
7649
- /***/ "./src/dragdrop/survey-elements.ts":
7650
- /*!*****************************************!*\
7651
- !*** ./src/dragdrop/survey-elements.ts ***!
7652
- \*****************************************/
7653
- /*! exports provided: DragDropSurveyElements */
7654
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
7655
-
7656
- "use strict";
7657
- __webpack_require__.r(__webpack_exports__);
7658
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return DragDropSurveyElements; });
7659
- /* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../survey-element */ "./src/survey-element.ts");
7660
- /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
7661
- /* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ "./src/dragdrop/core.ts");
7662
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
7663
- var __extends = (undefined && undefined.__extends) || (function () {
7664
- var extendStatics = function (d, b) {
7665
- extendStatics = Object.setPrototypeOf ||
7666
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7667
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7668
- return extendStatics(d, b);
7669
- };
7670
- return function (d, b) {
7671
- if (typeof b !== "function" && b !== null)
7672
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
7673
- extendStatics(d, b);
7674
- function __() { this.constructor = d; }
7675
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7676
- };
7677
- })();
7678
-
7679
-
7680
-
7681
-
7682
- var DragDropSurveyElements = /** @class */ (function (_super) {
7683
- __extends(DragDropSurveyElements, _super);
7684
- function DragDropSurveyElements() {
7685
- var _this = _super !== null && _super.apply(this, arguments) || this;
7686
- _this.isEdge = false;
7687
- _this.prevIsEdge = null;
7688
- _this.ghostSurveyElement = null;
7689
- _this.isDraggedElementSelected = false;
7690
- _this.doBanDropHere = function () {
7691
- _this.removeGhostElementFromSurvey();
7692
- _this.isEdge = null;
7693
- };
7694
- _this.doDrop = function () {
7695
- if (_this.dropTarget) {
7696
- _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].environment.root.activeElement.blur();
7697
- return _this.insertRealElementIntoSurvey();
7698
- }
7699
- return null;
7700
- };
7701
- _this.doClear = function () {
7702
- _this.removeGhostElementFromSurvey();
7703
- _this.isEdge = null;
7704
- _this.ghostSurveyElement = null;
7705
- if (!!_this.draggedElement) {
7706
- _this.draggedElement.isDragMe = false;
7707
- }
7708
- _this.isRight = null;
7709
- };
7710
- return _this;
7711
- }
7712
- Object.defineProperty(DragDropSurveyElements.prototype, "draggedElementType", {
7713
- get: function () {
7714
- return "survey-element";
7715
- },
7716
- enumerable: false,
7717
- configurable: true
7718
- });
7719
- DragDropSurveyElements.prototype.startDragToolboxItem = function (event, draggedElementJson, toolboxItemTitle) {
7720
- var preventSaveTargetNode = true;
7721
- var draggedElement = this.createElementFromJson(draggedElementJson);
7722
- draggedElement.toolboxItemTitle = toolboxItemTitle;
7723
- this.startDrag(event, draggedElement, null, null, preventSaveTargetNode);
7724
- };
7725
- DragDropSurveyElements.prototype.startDragSurveyElement = function (event, draggedElement, isElementSelected) {
7726
- this.isDraggedElementSelected = isElementSelected;
7727
- this.startDrag(event, draggedElement);
7728
- };
7729
- DragDropSurveyElements.prototype.getShortcutText = function (draggedElement) {
7730
- return draggedElement.toolboxItemTitle || _super.prototype.getShortcutText.call(this, draggedElement);
7731
- };
7732
- DragDropSurveyElements.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
7733
- var draggedElementShortcut = document.createElement("div");
7734
- var textSpan = document.createElement("span");
7735
- textSpan.className = "svc-dragged-element-shortcut__text";
7736
- textSpan.innerText = text;
7737
- draggedElementShortcut.appendChild(this.createDraggedElementIcon());
7738
- draggedElementShortcut.appendChild(textSpan);
7739
- draggedElementShortcut.className = this.getDraggedElementClass();
7740
- return draggedElementShortcut;
7741
- };
7742
- DragDropSurveyElements.prototype.createDraggedElementIcon = function () {
7743
- var span = document.createElement("span");
7744
- var type = this.draggedElement.getType();
7745
- var svgString = "<svg class=\"sv-svg-icon\" role=\"img\" style=\"width: 24px; height: 24px;\"><use xlink:href=\"#icon-" + type + "\"></use></svg>";
7746
- span.className = "svc-dragged-element-shortcut__icon";
7747
- span.innerHTML = svgString;
7748
- return span;
7749
- };
7750
- DragDropSurveyElements.prototype.getDraggedElementClass = function () {
7751
- var result = "svc-dragged-element-shortcut";
7752
- if (this.isDraggedElementSelected)
7753
- result += " svc-dragged-element-shortcut--selected";
7754
- return result;
7755
- };
7756
- DragDropSurveyElements.prototype.createElementFromJson = function (json) {
7757
- var element = this.createNewElement(json);
7758
- if (element["setSurveyImpl"]) {
7759
- element["setSurveyImpl"](this.survey);
7760
- }
7761
- else {
7762
- element["setData"](this.survey);
7763
- }
7764
- element.renderWidth = "100%";
7765
- return element;
7766
- };
7767
- DragDropSurveyElements.prototype.createNewElement = function (json) {
7768
- var newElement = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(json["type"]);
7769
- new _jsonobject__WEBPACK_IMPORTED_MODULE_1__["JsonObject"]().toObject(json, newElement);
7770
- return newElement;
7771
- };
7772
- DragDropSurveyElements.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7773
- var ghostRow = dragOverNode.closest(".svc-row--ghost");
7774
- if (!!ghostRow) {
7775
- var ghostDataAttrSelector = "[data-sv-drop-target-survey-element='sv-drag-drop-ghost-survey-element-name']";
7776
- var ghostNode = dragOverNode.closest(ghostDataAttrSelector) || dragOverNode.querySelector(ghostDataAttrSelector);
7777
- if (!!ghostNode) {
7778
- return ghostNode;
7779
- }
7780
- }
7781
- var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
7782
- return dropTargetNode;
7783
- };
7784
- DragDropSurveyElements.prototype.getDropTargetByDataAttributeValue = function (dataAttributeValue, dropTargetNode, event) {
7785
- this.isEdge = this.calculateIsEdge(dropTargetNode, event.clientY);
7786
- if (!dataAttributeValue) {
7787
- // panel dynamic
7788
- var nearestDropTargetElement = dropTargetNode.parentElement.closest(this.dropTargetDataAttributeName);
7789
- dataAttributeValue = this.getDataAttributeValueByNode(nearestDropTargetElement);
7790
- }
7791
- if (!dataAttributeValue) {
7792
- throw new Error("Can't find drop target survey element name");
7793
- }
7794
- if (dataAttributeValue === DragDropSurveyElements.ghostSurveyElementName) {
7795
- return this.prevDropTarget;
7796
- }
7797
- // drop to new page
7798
- if (dataAttributeValue === "newGhostPage") {
7799
- return DragDropSurveyElements.newGhostPage;
7800
- }
7801
- // drop to page
7802
- var page = this.survey.getPageByName(dataAttributeValue);
7803
- if (page) {
7804
- if (
7805
- // TODO we can't drop on not empty page directly for now
7806
- page.elements.length !== 0) {
7807
- return null;
7808
- }
7809
- return page;
7810
- }
7811
- // drop to question or panel
7812
- var dropTarget;
7813
- var question;
7814
- this.survey.pages.forEach(function (page) {
7815
- question = page.getElementByName(dataAttributeValue);
7816
- if (question)
7817
- dropTarget = question;
7818
- });
7819
- // drop to paneldynamic
7820
- if (dropTarget.getType() === "paneldynamic" && !this.isEdge) {
7821
- dropTarget = dropTarget.template;
7822
- }
7823
- // drop to matrix detail panel
7824
- if ((dropTarget.getType() === "matrixdropdown" || dropTarget.getType() === "matrixdynamic") && dropTarget.detailPanelMode !== "none" && !this.isEdge) {
7825
- dropTarget = dropTarget.detailPanel;
7826
- }
7827
- // drop to panel
7828
- else if (dropTarget.isPanel) {
7829
- dropTarget = this.getPanelDropTarget(dropTargetNode, dropTarget, event);
7830
- }
7831
- // drop to question
7832
- //question inside paneldymanic
7833
- if (!dropTarget.page) {
7834
- var nearestDropTargetPageElement = dropTargetNode.parentElement.closest("[data-sv-drop-target-page]");
7835
- dataAttributeValue = nearestDropTargetPageElement.dataset.svDropTargetPage;
7836
- var page_1 = this.survey.getPageByName(dataAttributeValue);
7837
- dropTarget.__page = page_1;
7838
- }
7839
- return dropTarget;
7840
- // EO drop to question or panel
7841
- };
7842
- DragDropSurveyElements.prototype.isDropTargetValid = function () {
7843
- if (!this.dropTarget)
7844
- return false;
7845
- if (this.dropTarget === this.draggedElement)
7846
- return false;
7847
- if (this.draggedElement.getType() === "paneldynamic" &&
7848
- this.dropTarget === this.draggedElement.template)
7849
- return false;
7850
- if (DragDropSurveyElements.restrictDragQuestionBetweenPages &&
7851
- this.shouldRestricDragQuestionBetweenPages(this.dropTarget)) {
7852
- return false;
7853
- }
7854
- return true;
7855
- };
7856
- DragDropSurveyElements.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
7857
- // we shouldn't reculc isBottom if drag over ghost survey element
7858
- if (this.getDataAttributeValueByNode(dropTargetNode) === DragDropSurveyElements.ghostSurveyElementName) {
7859
- return this.isBottom;
7860
- }
7861
- var middle = this.calculateVerticalMiddleOfHTMLElement(dropTargetNode);
7862
- return clientY >= middle;
7863
- };
7864
- DragDropSurveyElements.prototype.calculateIsRight = function (clientX, dropTargetNode) {
7865
- // we shouldn't reculc isBottom if drag over ghost survey element
7866
- if (this.getDataAttributeValueByNode(dropTargetNode) === DragDropSurveyElements.ghostSurveyElementName) {
7867
- return this.isRight;
7868
- }
7869
- var middle = this.calculateHorizontalMiddleOfHTMLElement(dropTargetNode);
7870
- return clientX >= middle;
7871
- };
7872
- DragDropSurveyElements.prototype.isDropTargetDoesntChanged = function (newIsBottom) {
7873
- if (this.dropTarget === this.ghostSurveyElement)
7874
- return true;
7875
- return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom
7876
- && this.isEdge === this.prevIsEdge && this.isRight === this.prevIsRight);
7877
- };
7878
- DragDropSurveyElements.prototype.shouldRestricDragQuestionBetweenPages = function (dropTarget) {
7879
- var oldPage = this.draggedElement["page"];
7880
- var newPage = dropTarget.isPage ? dropTarget : dropTarget["page"];
7881
- // if oldPage === null then it is drop from the toolbox
7882
- return oldPage && oldPage !== newPage;
7883
- };
7884
- DragDropSurveyElements.prototype.getPanelDropTarget = function (HTMLElement, dropTarget, event) {
7885
- var isEdge = this.isEdge;
7886
- if (!isEdge && dropTarget.questions.length !== 0) {
7887
- HTMLElement = this.findDeepestDropTargetChild(HTMLElement);
7888
- dropTarget = this.getDropTargetByNode(HTMLElement, event);
7889
- }
7890
- return dropTarget;
7891
- };
7892
- DragDropSurveyElements.prototype.findDeepestDropTargetChild = function (parent) {
7893
- var selector = this.dropTargetDataAttributeName;
7894
- var result = parent;
7895
- while (!!parent) {
7896
- result = parent;
7897
- parent = parent.querySelector(selector);
7898
- }
7899
- return result;
7900
- };
7901
- DragDropSurveyElements.prototype.calculateIsEdge = function (dropTargetNode, clientY) {
7902
- var rect = dropTargetNode.getBoundingClientRect();
7903
- return clientY - rect.top <= DragDropSurveyElements.edgeHeight || rect.bottom - clientY <= DragDropSurveyElements.edgeHeight;
7904
- };
7905
- // private calculateIsRight(): boolean {
7906
- // // const dropTarget = this.dropTarget;
7907
- // // const targetRow = this.getTargetRow(dropTarget);
7908
- // // if (targetRow.elements.indexOf(this.draggedElement) !== -1) {
7909
- // // var pageOrPanel = dropTarget.parent;
7910
- // // var srcIndex = pageOrPanel.elements.indexOf(this.draggedElement);
7911
- // // var destIndex = pageOrPanel.elements.indexOf(dropTarget);
7912
- // // } else {
7913
- // // if (targetRow.elements.indexOf(dropTarget) === 0) {
7914
- // // return false;
7915
- // // } else {
7916
- // // return true;
7917
- // // }
7918
- // // // else if (targetRow.elements.indexOf(dropTarget) === targetRow.elements.length -1) {
7919
- // // // return true;
7920
- // // // }
7921
- // // }
7922
- // // return srcIndex < destIndex;
7923
- // const middle = this.calculateHorizontalMiddleOfHTMLElement(this.dropTargetNode);
7924
- // return clientY >= middle;
7925
- // }
7926
- DragDropSurveyElements.prototype.doDragOver = function (dropTargetNode, event) {
7927
- this.isRight = this.calculateIsRight(event.clientX, dropTargetNode);
7928
- };
7929
- DragDropSurveyElements.prototype.afterDragOver = function (dropTargetNode, event) {
7930
- this.prevIsEdge = this.isEdge;
7931
- this.prevIsRight = this.isRight;
7932
- this.insertGhostElementIntoSurvey();
7933
- };
7934
- DragDropSurveyElements.prototype.onStartDrag = function () {
7935
- this.ghostSurveyElement = this.createGhostSurveyElement();
7936
- this.draggedElement.isDragMe = true;
7937
- };
7938
- DragDropSurveyElements.prototype.insertGhostElementIntoSurvey = function () {
7939
- this.removeGhostElementFromSurvey();
7940
- var isTargetRowMultiple = this.calcTargetRowMultiple();
7941
- this.ghostSurveyElement = this.createGhostSurveyElement(isTargetRowMultiple);
7942
- this.ghostSurveyElement.name =
7943
- DragDropSurveyElements.ghostSurveyElementName; // TODO why do we need setup it manually see createGhostSurveyElement method
7944
- this.parentElement = this.dropTarget.isPage
7945
- ? this.dropTarget
7946
- : (this.dropTarget.page || this.dropTarget.__page);
7947
- if (this.isDragOverInsideEmptyPanel()) {
7948
- this.dropTarget.dragTypeOverMe = _survey_element__WEBPACK_IMPORTED_MODULE_0__["DragTypeOverMeEnum"].InsideEmptyPanel;
7949
- return;
7950
- }
7951
- if (!this.isEdge && isTargetRowMultiple) {
7952
- this.dropTarget.dragTypeOverMe = this.isRight ?
7953
- _survey_element__WEBPACK_IMPORTED_MODULE_0__["DragTypeOverMeEnum"].MultilineRight :
7954
- _survey_element__WEBPACK_IMPORTED_MODULE_0__["DragTypeOverMeEnum"].MultilineLeft;
7955
- return;
7956
- }
7957
- this.parentElement.dragDropStart(this.draggedElement, this.ghostSurveyElement, DragDropSurveyElements.nestedPanelDepth);
7958
- var result = this.parentElement.dragDropMoveTo(this.dropTarget, isTargetRowMultiple ? this.isRight : this.isBottom, this.isEdge);
7959
- return result;
7960
- };
7961
- DragDropSurveyElements.prototype.calcTargetRowMultiple = function () {
7962
- var targetParent = this.getTargetParent(this.dropTarget);
7963
- var targetRow = this.getTargetRow(this.dropTarget);
7964
- var isTargetRowMultiple = targetRow && targetRow.elements.length > 1;
7965
- var isTemplatePanelInPanelDynamic = targetParent.isPanel && !targetParent.name;
7966
- if (this.isEdge && isTargetRowMultiple && !isTemplatePanelInPanelDynamic) {
7967
- targetParent.__page = this.dropTarget.page || this.dropTarget.__page;
7968
- this.dropTarget = targetParent;
7969
- return false;
7970
- }
7971
- return isTargetRowMultiple;
7972
- };
7973
- DragDropSurveyElements.prototype.getTargetParent = function (dropTarget) {
7974
- var targetParent = dropTarget.isPage || dropTarget.isPanel ? dropTarget : dropTarget.parent;
7975
- if (dropTarget.getType() === "paneldynamic") {
7976
- targetParent = dropTarget.templateValue;
7977
- }
7978
- return targetParent;
7979
- };
7980
- DragDropSurveyElements.prototype.getTargetRow = function (dropTarget) {
7981
- var targetParent = this.getTargetParent(dropTarget);
7982
- var targetRow;
7983
- targetParent.rows.forEach(function (row) {
7984
- if (row.elements.indexOf(dropTarget) !== -1) {
7985
- targetRow = row;
7986
- }
7987
- });
7988
- return targetRow;
7989
- };
7990
- DragDropSurveyElements.prototype.isDragOverInsideEmptyPanel = function () {
7991
- var isEmptyPanel = this.dropTarget.isPanel && this.dropTarget.questions.length === 0;
7992
- var isDragOverInside = !this.isEdge;
7993
- return isEmptyPanel && isDragOverInside;
7994
- };
7995
- DragDropSurveyElements.prototype.removeGhostElementFromSurvey = function () {
7996
- var dropTarget = this.prevDropTarget || this.dropTarget;
7997
- if (!!dropTarget) {
7998
- dropTarget.dragTypeOverMe = null;
7999
- }
8000
- if (!!this.parentElement)
8001
- this.parentElement.dragDropFinish(true);
8002
- };
8003
- DragDropSurveyElements.prototype.insertRealElementIntoSurvey = function () {
8004
- this.removeGhostElementFromSurvey();
8005
- var isTargetRowMultiple = this.calcTargetRowMultiple();
8006
- // ghost new page
8007
- if (this.dropTarget.isPage && this.dropTarget["_isGhost"]) {
8008
- this.dropTarget["_addGhostPageViewModel"]();
8009
- }
8010
- // EO ghost new page
8011
- //TODO need for dragDrop helper in library
8012
- var json = new _jsonobject__WEBPACK_IMPORTED_MODULE_1__["JsonObject"]().toJsonObject(this.draggedElement);
8013
- json["type"] = this.draggedElement.getType();
8014
- var fakeTargetElement = this.createFakeTargetElement(this.draggedElement.name, json);
8015
- //
8016
- this.parentElement.dragDropStart(this.draggedElement, fakeTargetElement, DragDropSurveyElements.nestedPanelDepth);
8017
- this.parentElement.dragDropMoveTo(this.dropTarget, isTargetRowMultiple ? this.isRight : this.isBottom, this.isEdge);
8018
- var newElement = this.parentElement.dragDropFinish();
8019
- return newElement;
8020
- };
8021
- DragDropSurveyElements.prototype.createFakeTargetElement = function (elementName, json) {
8022
- if (!elementName || !json)
8023
- return null;
8024
- var targetElement = null;
8025
- targetElement = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(json["type"]);
8026
- new _jsonobject__WEBPACK_IMPORTED_MODULE_1__["JsonObject"]().toObject(json, targetElement);
8027
- targetElement.name = elementName;
8028
- if (targetElement["setSurveyImpl"]) {
8029
- targetElement["setSurveyImpl"](this.survey);
8030
- }
8031
- else {
8032
- targetElement["setData"](this.survey);
8033
- }
8034
- targetElement.renderWidth = "100%";
8035
- return targetElement;
8036
- };
8037
- DragDropSurveyElements.prototype.createGhostSurveyElement = function (isMultipleRowDrag) {
8038
- if (isMultipleRowDrag === void 0) { isMultipleRowDrag = false; }
8039
- var className = "sv-drag-drop-ghost";
8040
- var minWidth = "300px";
8041
- if (isMultipleRowDrag) {
8042
- minWidth = "4px";
8043
- className += " sv-drag-drop-ghost--vertical";
8044
- }
8045
- var json = {
8046
- type: "html",
8047
- minWidth: minWidth,
8048
- name: DragDropSurveyElements.ghostSurveyElementName,
8049
- html: "<div class=\"" + className + "\"></div>",
8050
- };
8051
- var element = this.createElementFromJson(json);
8052
- element.startWithNewLine = !isMultipleRowDrag;
8053
- if (isMultipleRowDrag) {
8054
- element.maxWidth = "4px";
8055
- element.renderWidth = "0px";
8056
- element.paddingRight = "0px";
8057
- element.paddingLeft = "0px";
7169
+ DragDropRankingChoices.prototype.clear = function () {
7170
+ if (!!this.parentElement) {
7171
+ this.parentElement.dropTargetNodeMove = null;
7172
+ this.parentElement.updateRankingChoices(true);
8058
7173
  }
8059
- return element;
7174
+ _super.prototype.clear.call(this);
8060
7175
  };
8061
- DragDropSurveyElements.newGhostPage = null;
8062
- DragDropSurveyElements.restrictDragQuestionBetweenPages = false;
8063
- DragDropSurveyElements.edgeHeight = 30;
8064
- DragDropSurveyElements.nestedPanelDepth = -1;
8065
- DragDropSurveyElements.ghostSurveyElementName = "sv-drag-drop-ghost-survey-element-name"; // before renaming use globa search (we have also css selectors)
8066
- return DragDropSurveyElements;
8067
- }(_core__WEBPACK_IMPORTED_MODULE_2__["DragDropCore"]));
7176
+ return DragDropRankingChoices;
7177
+ }(_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]));
8068
7178
 
8069
7179
 
8070
7180
 
@@ -8131,6 +7241,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8131
7241
  _this.itemsSettings = { skip: 0, take: 0, totalCount: 0, items: [] };
8132
7242
  _this.isRunningLoadQuestionChoices = false;
8133
7243
  _this.popupCssClasses = "sv-single-select-list";
7244
+ _this.listModelFilterStringChanged = function (newValue) {
7245
+ if (_this.filterString !== newValue) {
7246
+ _this.filterString = newValue;
7247
+ }
7248
+ };
8134
7249
  question.onPropertyChanged.add(function (sender, options) {
8135
7250
  if (options.name == "value") {
8136
7251
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
@@ -8205,6 +7320,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8205
7320
  this._popupModel = new _popup__WEBPACK_IMPORTED_MODULE_3__["PopupModel"]("sv-list", { model: this.listModel }, "bottom", "center", false);
8206
7321
  this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_6__["IsTouch"] ? "overlay" : "popup";
8207
7322
  this._popupModel.positionMode = "fixed";
7323
+ this._popupModel.isFocusedContainer = false;
8208
7324
  this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_6__["IsTouch"];
8209
7325
  this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_6__["IsTouch"];
8210
7326
  this.updatePopupFocusFirstInputSelector();
@@ -8273,8 +7389,9 @@ var DropdownListModel = /** @class */ (function (_super) {
8273
7389
  _this._popupModel.toggleVisibility();
8274
7390
  };
8275
7391
  }
8276
- var res = new _list__WEBPACK_IMPORTED_MODULE_2__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, undefined, this.listElementId);
7392
+ var res = new _list__WEBPACK_IMPORTED_MODULE_2__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8277
7393
  res.renderElements = false;
7394
+ res.forceShowFilter = true;
8278
7395
  res.areSameItemsCallback = function (item1, item2) {
8279
7396
  return item1 === item2;
8280
7397
  };
@@ -8322,6 +7439,13 @@ var DropdownListModel = /** @class */ (function (_super) {
8322
7439
  updateAfterFilterStringChanged();
8323
7440
  }
8324
7441
  };
7442
+ Object.defineProperty(DropdownListModel.prototype, "isAllDataLoaded", {
7443
+ get: function () {
7444
+ return !!this.itemsSettings.totalCount && this.itemsSettings.items.length == this.itemsSettings.totalCount;
7445
+ },
7446
+ enumerable: false,
7447
+ configurable: true
7448
+ });
8325
7449
  DropdownListModel.prototype.applyInputString = function (item) {
8326
7450
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8327
7451
  if (hasHtml || this.question.inputFieldComponentName) {
@@ -8607,11 +7731,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8607
7731
  event.stopPropagation();
8608
7732
  };
8609
7733
  DropdownListModel.prototype.onFocus = function (event) {
8610
- this.setInputStringFromSelectedItem();
7734
+ this.setInputStringFromSelectedItem(this.question.selectedItem);
8611
7735
  };
8612
7736
  DropdownListModel.prototype.setInputStringFromSelectedItem = function (newValue) {
8613
- if (this.question.searchEnabled) {
8614
- this.applyInputString(newValue || this.question.selectedItem);
7737
+ if (this.question.searchEnabled && !!newValue) {
7738
+ this.applyInputString(newValue);
8615
7739
  }
8616
7740
  else {
8617
7741
  this.inputString = null;
@@ -8783,7 +7907,9 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8783
7907
  }
8784
7908
  };
8785
7909
  }
8786
- return new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, undefined, this.listElementId);
7910
+ var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
7911
+ res.forceShowFilter = true;
7912
+ return res;
8787
7913
  };
8788
7914
  DropdownMultiSelectListModel.prototype.resetFilterString = function () {
8789
7915
  _super.prototype.resetFilterString.call(this);
@@ -9215,7 +8341,7 @@ __webpack_require__.r(__webpack_exports__);
9215
8341
  /*!*************************************!*\
9216
8342
  !*** ./src/entries/chunks/model.ts ***!
9217
8343
  \*************************************/
9218
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices */
8344
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices */
9219
8345
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9220
8346
 
9221
8347
  "use strict";
@@ -9520,148 +8646,149 @@ __webpack_require__.r(__webpack_exports__);
9520
8646
  /* harmony import */ var _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../surveyProgressButtons */ "./src/surveyProgressButtons.ts");
9521
8647
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__["SurveyProgressButtonsModel"]; });
9522
8648
 
9523
- /* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
9524
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _survey__WEBPACK_IMPORTED_MODULE_58__["SurveyModel"]; });
8649
+ /* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../../themes */ "./src/themes.ts");
8650
+ /* empty/unused harmony star reexport *//* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
8651
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _survey__WEBPACK_IMPORTED_MODULE_59__["SurveyModel"]; });
9525
8652
 
9526
- /* harmony import */ var _trigger__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../trigger */ "./src/trigger.ts");
9527
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTrigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTrigger"]; });
8653
+ /* harmony import */ var _trigger__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../../trigger */ "./src/trigger.ts");
8654
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTrigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTrigger"]; });
9528
8655
 
9529
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerComplete", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTriggerComplete"]; });
8656
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerComplete", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerComplete"]; });
9530
8657
 
9531
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerSetValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTriggerSetValue"]; });
8658
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerSetValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerSetValue"]; });
9532
8659
 
9533
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerVisible", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTriggerVisible"]; });
8660
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerVisible", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerVisible"]; });
9534
8661
 
9535
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerCopyValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTriggerCopyValue"]; });
8662
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerCopyValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerCopyValue"]; });
9536
8663
 
9537
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerRunExpression", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["SurveyTriggerRunExpression"]; });
8664
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerRunExpression", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerRunExpression"]; });
9538
8665
 
9539
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Trigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_59__["Trigger"]; });
8666
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Trigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["Trigger"]; });
9540
8667
 
9541
- /* harmony import */ var _popup_survey__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../../popup-survey */ "./src/popup-survey.ts");
9542
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSurveyModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_60__["PopupSurveyModel"]; });
8668
+ /* harmony import */ var _popup_survey__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../../popup-survey */ "./src/popup-survey.ts");
8669
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSurveyModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_61__["PopupSurveyModel"]; });
9543
8670
 
9544
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyWindowModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_60__["SurveyWindowModel"]; });
8671
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyWindowModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_61__["SurveyWindowModel"]; });
9545
8672
 
9546
- /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../../textPreProcessor */ "./src/textPreProcessor.ts");
9547
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextPreProcessor", function() { return _textPreProcessor__WEBPACK_IMPORTED_MODULE_61__["TextPreProcessor"]; });
8673
+ /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../../textPreProcessor */ "./src/textPreProcessor.ts");
8674
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextPreProcessor", function() { return _textPreProcessor__WEBPACK_IMPORTED_MODULE_62__["TextPreProcessor"]; });
9548
8675
 
9549
- /* harmony import */ var _notifier__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../../notifier */ "./src/notifier.ts");
9550
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notifier", function() { return _notifier__WEBPACK_IMPORTED_MODULE_62__["Notifier"]; });
8676
+ /* harmony import */ var _notifier__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../../notifier */ "./src/notifier.ts");
8677
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notifier", function() { return _notifier__WEBPACK_IMPORTED_MODULE_63__["Notifier"]; });
9551
8678
 
9552
- /* harmony import */ var _dxSurveyService__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../../dxSurveyService */ "./src/dxSurveyService.ts");
9553
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dxSurveyService", function() { return _dxSurveyService__WEBPACK_IMPORTED_MODULE_63__["dxSurveyService"]; });
8679
+ /* harmony import */ var _dxSurveyService__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../../dxSurveyService */ "./src/dxSurveyService.ts");
8680
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dxSurveyService", function() { return _dxSurveyService__WEBPACK_IMPORTED_MODULE_64__["dxSurveyService"]; });
9554
8681
 
9555
- /* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../../localization/english */ "./src/localization/english.ts");
9556
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "englishStrings", function() { return _localization_english__WEBPACK_IMPORTED_MODULE_64__["englishStrings"]; });
8682
+ /* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../../localization/english */ "./src/localization/english.ts");
8683
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "englishStrings", function() { return _localization_english__WEBPACK_IMPORTED_MODULE_65__["englishStrings"]; });
9557
8684
 
9558
- /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../../surveyStrings */ "./src/surveyStrings.ts");
9559
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyLocalization", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_65__["surveyLocalization"]; });
8685
+ /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../../surveyStrings */ "./src/surveyStrings.ts");
8686
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyLocalization", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_66__["surveyLocalization"]; });
9560
8687
 
9561
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyStrings", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_65__["surveyStrings"]; });
8688
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyStrings", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_66__["surveyStrings"]; });
9562
8689
 
9563
- /* harmony import */ var _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../../questionCustomWidgets */ "./src/questionCustomWidgets.ts");
9564
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomWidget", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_66__["QuestionCustomWidget"]; });
8690
+ /* harmony import */ var _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../../questionCustomWidgets */ "./src/questionCustomWidgets.ts");
8691
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomWidget", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__["QuestionCustomWidget"]; });
9565
8692
 
9566
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomWidgetCollection", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_66__["CustomWidgetCollection"]; });
8693
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomWidgetCollection", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__["CustomWidgetCollection"]; });
9567
8694
 
9568
- /* harmony import */ var _question_custom__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../../question_custom */ "./src/question_custom.ts");
9569
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_67__["QuestionCustomModel"]; });
8695
+ /* harmony import */ var _question_custom__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../../question_custom */ "./src/question_custom.ts");
8696
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["QuestionCustomModel"]; });
9570
8697
 
9571
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCompositeModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_67__["QuestionCompositeModel"]; });
8698
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCompositeModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["QuestionCompositeModel"]; });
9572
8699
 
9573
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentQuestionJSON", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_67__["ComponentQuestionJSON"]; });
8700
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentQuestionJSON", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["ComponentQuestionJSON"]; });
9574
8701
 
9575
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentCollection", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_67__["ComponentCollection"]; });
8702
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentCollection", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["ComponentCollection"]; });
9576
8703
 
9577
- /* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../../stylesmanager */ "./src/stylesmanager.ts");
9578
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylesManager", function() { return _stylesmanager__WEBPACK_IMPORTED_MODULE_68__["StylesManager"]; });
8704
+ /* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../../stylesmanager */ "./src/stylesmanager.ts");
8705
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylesManager", function() { return _stylesmanager__WEBPACK_IMPORTED_MODULE_69__["StylesManager"]; });
9579
8706
 
9580
- /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../../list */ "./src/list.ts");
9581
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListModel", function() { return _list__WEBPACK_IMPORTED_MODULE_69__["ListModel"]; });
8707
+ /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../../list */ "./src/list.ts");
8708
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListModel", function() { return _list__WEBPACK_IMPORTED_MODULE_70__["ListModel"]; });
9582
8709
 
9583
- /* harmony import */ var _multiSelectListModel__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../../multiSelectListModel */ "./src/multiSelectListModel.ts");
9584
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiSelectListModel", function() { return _multiSelectListModel__WEBPACK_IMPORTED_MODULE_70__["MultiSelectListModel"]; });
8710
+ /* harmony import */ var _multiSelectListModel__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../../multiSelectListModel */ "./src/multiSelectListModel.ts");
8711
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiSelectListModel", function() { return _multiSelectListModel__WEBPACK_IMPORTED_MODULE_71__["MultiSelectListModel"]; });
9585
8712
 
9586
- /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../../popup */ "./src/popup.ts");
9587
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModel", function() { return _popup__WEBPACK_IMPORTED_MODULE_71__["PopupModel"]; });
8713
+ /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../../popup */ "./src/popup.ts");
8714
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModel", function() { return _popup__WEBPACK_IMPORTED_MODULE_72__["PopupModel"]; });
9588
8715
 
9589
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDialogOptions", function() { return _popup__WEBPACK_IMPORTED_MODULE_71__["createDialogOptions"]; });
8716
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDialogOptions", function() { return _popup__WEBPACK_IMPORTED_MODULE_72__["createDialogOptions"]; });
9590
8717
 
9591
- /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../../popup-view-model */ "./src/popup-view-model.ts");
9592
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupBaseViewModel", function() { return _popup_view_model__WEBPACK_IMPORTED_MODULE_72__["PopupBaseViewModel"]; });
8718
+ /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../../popup-view-model */ "./src/popup-view-model.ts");
8719
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupBaseViewModel", function() { return _popup_view_model__WEBPACK_IMPORTED_MODULE_73__["PopupBaseViewModel"]; });
9593
8720
 
9594
- /* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../../popup-dropdown-view-model */ "./src/popup-dropdown-view-model.ts");
9595
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupDropdownViewModel", function() { return _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_73__["PopupDropdownViewModel"]; });
8721
+ /* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../../popup-dropdown-view-model */ "./src/popup-dropdown-view-model.ts");
8722
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupDropdownViewModel", function() { return _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_74__["PopupDropdownViewModel"]; });
9596
8723
 
9597
- /* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../../popup-modal-view-model */ "./src/popup-modal-view-model.ts");
9598
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModalViewModel", function() { return _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_74__["PopupModalViewModel"]; });
8724
+ /* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../../popup-modal-view-model */ "./src/popup-modal-view-model.ts");
8725
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModalViewModel", function() { return _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_75__["PopupModalViewModel"]; });
9599
8726
 
9600
- /* harmony import */ var _popup_utils__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../../popup-utils */ "./src/popup-utils.ts");
9601
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_75__["createPopupViewModel"]; });
8727
+ /* harmony import */ var _popup_utils__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../../popup-utils */ "./src/popup-utils.ts");
8728
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_76__["createPopupViewModel"]; });
9602
8729
 
9603
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupModalViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_75__["createPopupModalViewModel"]; });
8730
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupModalViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_76__["createPopupModalViewModel"]; });
9604
8731
 
9605
- /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../../dropdownListModel */ "./src/dropdownListModel.ts");
9606
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownListModel", function() { return _dropdownListModel__WEBPACK_IMPORTED_MODULE_76__["DropdownListModel"]; });
8732
+ /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../../dropdownListModel */ "./src/dropdownListModel.ts");
8733
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownListModel", function() { return _dropdownListModel__WEBPACK_IMPORTED_MODULE_77__["DropdownListModel"]; });
9607
8734
 
9608
- /* harmony import */ var _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../../dropdownMultiSelectListModel */ "./src/dropdownMultiSelectListModel.ts");
9609
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMultiSelectListModel", function() { return _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_77__["DropdownMultiSelectListModel"]; });
8735
+ /* harmony import */ var _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../../dropdownMultiSelectListModel */ "./src/dropdownMultiSelectListModel.ts");
8736
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMultiSelectListModel", function() { return _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_78__["DropdownMultiSelectListModel"]; });
9610
8737
 
9611
- /* harmony import */ var _question_buttongroup__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../../question_buttongroup */ "./src/question_buttongroup.ts");
9612
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionButtonGroupModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_78__["QuestionButtonGroupModel"]; });
8738
+ /* harmony import */ var _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../../question_buttongroup */ "./src/question_buttongroup.ts");
8739
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionButtonGroupModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["QuestionButtonGroupModel"]; });
9613
8740
 
9614
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_78__["ButtonGroupItemModel"]; });
8741
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["ButtonGroupItemModel"]; });
9615
8742
 
9616
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemValue", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_78__["ButtonGroupItemValue"]; });
8743
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemValue", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["ButtonGroupItemValue"]; });
9617
8744
 
9618
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../../utils/devices */ "./src/utils/devices.ts");
9619
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsMobile", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_79__["IsMobile"]; });
8745
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../../utils/devices */ "./src/utils/devices.ts");
8746
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsMobile", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["IsMobile"]; });
9620
8747
 
9621
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_79__["IsTouch"]; });
8748
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["IsTouch"]; });
9622
8749
 
9623
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_setIsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_79__["_setIsTouch"]; });
8750
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_setIsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["_setIsTouch"]; });
9624
8751
 
9625
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../../utils/utils */ "./src/utils/utils.ts");
9626
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["confirmAction"]; });
8752
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../../utils/utils */ "./src/utils/utils.ts");
8753
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["confirmAction"]; });
9627
8754
 
9628
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["detectIEOrEdge"]; });
8755
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["detectIEOrEdge"]; });
9629
8756
 
9630
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["doKey2ClickUp"]; });
8757
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickUp"]; });
9631
8758
 
9632
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickDown", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["doKey2ClickDown"]; });
8759
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickDown", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickDown"]; });
9633
8760
 
9634
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickBlur", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["doKey2ClickBlur"]; });
8761
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickBlur", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickBlur"]; });
9635
8762
 
9636
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["loadFileFromBase64"]; });
8763
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["loadFileFromBase64"]; });
9637
8764
 
9638
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "increaseHeightByContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["increaseHeightByContent"]; });
8765
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "increaseHeightByContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["increaseHeightByContent"]; });
9639
8766
 
9640
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["createSvg"]; });
8767
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["createSvg"]; });
9641
8768
 
9642
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_80__["sanitizeEditableContent"]; });
8769
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["sanitizeEditableContent"]; });
9643
8770
 
9644
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
9645
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_81__["CssClassBuilder"]; });
8771
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
8772
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_82__["CssClassBuilder"]; });
9646
8773
 
9647
- /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
9648
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_82__["surveyCss"]; });
8774
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
8775
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["surveyCss"]; });
9649
8776
 
9650
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_82__["defaultV2Css"]; });
8777
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["defaultV2Css"]; });
9651
8778
 
9652
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_82__["defaultV2ThemeName"]; });
8779
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["defaultV2ThemeName"]; });
9653
8780
 
9654
- /* harmony import */ var _dragdrop_survey_elements__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../../dragdrop/survey-elements */ "./src/dragdrop/survey-elements.ts");
9655
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _dragdrop_survey_elements__WEBPACK_IMPORTED_MODULE_83__["DragDropSurveyElements"]; });
8781
+ /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
8782
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_84__["DragDropCore"]; });
9656
8783
 
9657
- /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
9658
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_84__["DragDropChoices"]; });
8784
+ /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
8785
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_85__["DragDropChoices"]; });
9659
8786
 
9660
8787
  // styles
9661
8788
  // import "../../main.scss";
9662
8789
  //import "../../modern.scss";
9663
8790
  var Version;
9664
- Version = "" + "1.9.89";
8791
+ Version = "" + "1.9.91";
9665
8792
  function checkLibraryVersion(ver, libraryName) {
9666
8793
  if (Version != ver) {
9667
8794
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9734,6 +8861,7 @@ function checkLibraryVersion(ver, libraryName) {
9734
8861
 
9735
8862
 
9736
8863
 
8864
+
9737
8865
 
9738
8866
 
9739
8867
  // export { cultureInfo } from "../../cultureInfo";
@@ -9766,7 +8894,7 @@ function checkLibraryVersion(ver, libraryName) {
9766
8894
  /*!**************************************!*\
9767
8895
  !*** ./src/entries/core-wo-model.ts ***!
9768
8896
  \**************************************/
9769
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
8897
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9770
8898
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9771
8899
 
9772
8900
  "use strict";
@@ -10122,7 +9250,7 @@ __webpack_require__.r(__webpack_exports__);
10122
9250
 
10123
9251
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
10124
9252
 
10125
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
9253
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
10126
9254
 
10127
9255
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
10128
9256
 
@@ -10203,7 +9331,7 @@ __webpack_require__.r(__webpack_exports__);
10203
9331
  /*!*****************************!*\
10204
9332
  !*** ./src/entries/core.ts ***!
10205
9333
  \*****************************/
10206
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9334
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
10207
9335
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10208
9336
 
10209
9337
  "use strict";
@@ -10559,7 +9687,7 @@ __webpack_require__.r(__webpack_exports__);
10559
9687
 
10560
9688
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
10561
9689
 
10562
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
9690
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
10563
9691
 
10564
9692
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
10565
9693
 
@@ -11000,7 +10128,7 @@ __webpack_require__.r(__webpack_exports__);
11000
10128
  /*!******************************!*\
11001
10129
  !*** ./src/entries/react.ts ***!
11002
10130
  \******************************/
11003
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10131
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
11004
10132
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11005
10133
 
11006
10134
  "use strict";
@@ -11356,7 +10484,7 @@ __webpack_require__.r(__webpack_exports__);
11356
10484
 
11357
10485
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
11358
10486
 
11359
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
10487
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
11360
10488
 
11361
10489
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
11362
10490
 
@@ -15625,6 +14753,14 @@ var OperandMaker = /** @class */ (function () {
15625
14753
  var opStr = OperandMaker.signs[operatorName];
15626
14754
  return opStr == null ? operatorName : opStr;
15627
14755
  };
14756
+ OperandMaker.convertValForDateCompare = function (val, second) {
14757
+ if (second instanceof Date && typeof val === "string") {
14758
+ var res = new Date(val);
14759
+ res.setHours(0, 0, 0);
14760
+ return res;
14761
+ }
14762
+ return val;
14763
+ };
15628
14764
  OperandMaker.unaryFunctions = {
15629
14765
  empty: function (value) {
15630
14766
  return _helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isValueEmpty(value);
@@ -15689,11 +14825,15 @@ var OperandMaker = /** @class */ (function () {
15689
14825
  greater: function (left, right) {
15690
14826
  if (left == null || right == null)
15691
14827
  return false;
14828
+ left = OperandMaker.convertValForDateCompare(left, right);
14829
+ right = OperandMaker.convertValForDateCompare(right, left);
15692
14830
  return left > right;
15693
14831
  },
15694
14832
  less: function (left, right) {
15695
14833
  if (left == null || right == null)
15696
14834
  return false;
14835
+ left = OperandMaker.convertValForDateCompare(left, right);
14836
+ right = OperandMaker.convertValForDateCompare(right, left);
15697
14837
  return left < right;
15698
14838
  },
15699
14839
  greaterorequal: function (left, right) {
@@ -15707,6 +14847,8 @@ var OperandMaker = /** @class */ (function () {
15707
14847
  return OperandMaker.binaryFunctions.less(left, right);
15708
14848
  },
15709
14849
  equal: function (left, right) {
14850
+ left = OperandMaker.convertValForDateCompare(left, right);
14851
+ right = OperandMaker.convertValForDateCompare(right, left);
15710
14852
  return OperandMaker.isTwoValueEquals(left, right);
15711
14853
  },
15712
14854
  notequal: function (left, right) {
@@ -17379,6 +16521,7 @@ __webpack_require__.r(__webpack_exports__);
17379
16521
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
17380
16522
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
17381
16523
  /* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./question_baseselect */ "./src/question_baseselect.ts");
16524
+ /* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./question */ "./src/question.ts");
17382
16525
  var __extends = (undefined && undefined.__extends) || (function () {
17383
16526
  var extendStatics = function (d, b) {
17384
16527
  extendStatics = Object.setPrototypeOf ||
@@ -17408,6 +16551,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
17408
16551
 
17409
16552
 
17410
16553
 
16554
+
17411
16555
  /**
17412
16556
  * Array of ItemValue is used in checkox, dropdown and radiogroup choices, matrix columns and rows.
17413
16557
  * It has two main properties: value and text. If text is empty, value is used for displaying.
@@ -17823,10 +16967,10 @@ var ItemValue = /** @class */ (function (_super) {
17823
16967
  configurable: true
17824
16968
  });
17825
16969
  ItemValue.prototype.getComponent = function () {
17826
- if (this._locOwner instanceof _question_baseselect__WEBPACK_IMPORTED_MODULE_7__["QuestionSelectBase"]) {
16970
+ if (this._locOwner instanceof _question__WEBPACK_IMPORTED_MODULE_8__["Question"]) {
17827
16971
  return this.componentValue || this._locOwner.itemComponent;
17828
16972
  }
17829
- return "";
16973
+ return this.componentValue;
17830
16974
  };
17831
16975
  ItemValue.prototype.setComponent = function (val) {
17832
16976
  this.componentValue = val;
@@ -18403,6 +17547,7 @@ var JsonObjectProperty = /** @class */ (function () {
18403
17547
  "categoryIndex",
18404
17548
  "visibleIndex",
18405
17549
  "nextToProperty",
17550
+ "overridingProperty",
18406
17551
  "showMode",
18407
17552
  "dependedProperties",
18408
17553
  "visibleIf",
@@ -18723,6 +17868,9 @@ var JsonMetadataClass = /** @class */ (function () {
18723
17868
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.nextToProperty)) {
18724
17869
  prop.nextToProperty = propInfo.nextToProperty;
18725
17870
  }
17871
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.overridingProperty)) {
17872
+ prop.overridingProperty = propInfo.overridingProperty;
17873
+ }
18726
17874
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.visibleIndex)) {
18727
17875
  prop.visibleIndex = propInfo.visibleIndex;
18728
17876
  }
@@ -19227,7 +18375,7 @@ var JsonMetadata = /** @class */ (function () {
19227
18375
  }
19228
18376
  }
19229
18377
  return {
19230
- $id: "#locstring",
18378
+ $id: "locstring",
19231
18379
  type: "object",
19232
18380
  properties: props
19233
18381
  };
@@ -19291,10 +18439,10 @@ var JsonMetadata = /** @class */ (function () {
19291
18439
  if (prop.baseClassName == "question") {
19292
18440
  usedClasses.push(this.findClass("panel"));
19293
18441
  }
19294
- res.items = [];
18442
+ res.items = { anyOf: [] };
19295
18443
  for (var i = 0; i < usedClasses.length; i++) {
19296
18444
  var className = usedClasses[i].name;
19297
- res.items.push({ $ref: this.getChemeRefName(className, isRoot) });
18445
+ res.items.anyOf.push({ $ref: this.getChemeRefName(className, isRoot) });
19298
18446
  this.generateChemaClass(className, schemaDef, false);
19299
18447
  }
19300
18448
  }
@@ -19313,8 +18461,7 @@ var JsonMetadata = /** @class */ (function () {
19313
18461
  if (hasParent) {
19314
18462
  this.generateChemaClass(classInfo.parentName, schemaDef, isRoot);
19315
18463
  }
19316
- var id = isRoot ? className : "#" + className;
19317
- var res = { type: "object", $id: id };
18464
+ var res = { type: "object", $id: className };
19318
18465
  schemaDef[className] = res;
19319
18466
  var chemaProps = { properties: {} };
19320
18467
  this.generateSchemaProperties(classInfo, chemaProps, schemaDef, isRoot);
@@ -19894,7 +19041,7 @@ var ListModel = /** @class */ (function (_super) {
19894
19041
  }
19895
19042
  };
19896
19043
  ListModel.prototype.onSet = function () {
19897
- this.showFilter = this.searchEnabled && (this.actions || []).length > ListModel.MINELEMENTCOUNT;
19044
+ this.showFilter = this.searchEnabled && (this.forceShowFilter || (this.actions || []).length > ListModel.MINELEMENTCOUNT);
19898
19045
  _super.prototype.onSet.call(this);
19899
19046
  };
19900
19047
  ListModel.prototype.getDefaultCssClasses = function () {
@@ -20080,6 +19227,9 @@ var ListModel = /** @class */ (function (_super) {
20080
19227
  __decorate([
20081
19228
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
20082
19229
  ], ListModel.prototype, "showFilter", void 0);
19230
+ __decorate([
19231
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
19232
+ ], ListModel.prototype, "forceShowFilter", void 0);
20083
19233
  __decorate([
20084
19234
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
20085
19235
  ], ListModel.prototype, "isExpanded", void 0);
@@ -22215,7 +21365,7 @@ var greekSurveyStrings = {
22215
21365
  noneItemText: "Κανένας",
22216
21366
  selectAllItemText: "Επιλογή όλων",
22217
21367
  progressText: "Σελίδα {0} από {1}",
22218
- // indexText: "{0} of {1}",
21368
+ indexText: "{0} από {1}",
22219
21369
  panelDynamicProgressText: "Εγγραφή {0} από {1}",
22220
21370
  questionsProgressText: "Απαντήθηκαν {0} / {1} ερωτήσεις",
22221
21371
  emptySurvey: "Δεν υπάρχει καμία ορατή σελίδα ή ορατή ερώτηση σε αυτό το ερωτηματολόγιο.",
@@ -22223,15 +21373,15 @@ var greekSurveyStrings = {
22223
21373
  completingSurveyBefore: "Τα αρχεία μας δείχνουν ότι έχετε ήδη ολοκληρώσει αυτήν την έρευνα.",
22224
21374
  loadingSurvey: "Το ερωτηματολόγιο φορτώνεται απο το διακομιστή...",
22225
21375
  placeholder: "Επιλέξτε...",
22226
- // ratingOptionsCaption: "Tap to rate here...",
22227
- value: "αξία",
21376
+ ratingOptionsCaption: "Πατήστε για να βαθμολογήσετε εδώ...",
21377
+ value: "τιμή",
22228
21378
  requiredError: "Παρακαλώ απαντήστε στην ερώτηση.",
22229
21379
  requiredErrorInPanel: "Απαντήστε σε τουλάχιστον μία ερώτηση.",
22230
- requiredInAllRowsError: "Παρακαλώ απαντήστε στις ερωτήσεις σε όλες τις γραμμές.",
21380
+ requiredInAllRowsError: "Παρακαλώ απαντήστε τις ερωτήσεις σε όλες τις γραμμές.",
22231
21381
  numericError: "Η τιμή πρέπει να είναι αριθμητική.",
22232
- // minError: "The value should not be less than {0}",
22233
- // maxError: "The value should not be greater than {0}",
22234
- textMinLength: "Παρακαλώ συμπληρώστε τουλάχιστον {0} σύμβολα.",
21382
+ minError: "Η τιμή δεν πρέπει να είναι μικρότερη από {0}",
21383
+ maxError: "Η τιμή δεν πρέπει να είναι μεγαλύτερη από {0}",
21384
+ textMinLength: "Παρακαλώ συμπληρώστε τουλάχιστον {0} χαρακτήρες.",
22235
21385
  textMaxLength: "Εισαγάγετε λιγότερους από {0} χαρακτήρες.",
22236
21386
  textMinMaxLength: "Εισαγάγετε περισσότερους από {0} και λιγότερους από {1} χαρακτήρες.",
22237
21387
  minRowCountError: "Παρακαλώ συμπληρώστε τουλάχιστον {0} γραμμές.",
@@ -22244,25 +21394,25 @@ var greekSurveyStrings = {
22244
21394
  invalidExpression: "Η έκφραση: {0} θα πρέπει να επιστρέψει 'true'.",
22245
21395
  urlRequestError: "Η αίτηση επέστρεψε σφάλμα '{0}'. {1}",
22246
21396
  urlGetChoicesError: "Η αίτηση επέστρεψε κενά δεδομένα ή η ιδιότητα 'μονοπάτι/path' είναι εσφαλμένη",
22247
- exceedMaxSize: "Το μέγεθος δεν μπορεί να υπερβαίνει τα {0}.",
21397
+ exceedMaxSize: "Το μέγεθος του αρχείου δεν μπορεί να υπερβαίνει τα {0}.",
22248
21398
  otherRequiredError: "Παρακαλώ συμπληρώστε την τιμή για το πεδίο 'άλλο'.",
22249
- uploadingFile: "Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε καποια δευτερόλεπτα και δοκιμάστε ξανά.",
21399
+ uploadingFile: "Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε μερικά δευτερόλεπτα και δοκιμάστε ξανά.",
22250
21400
  loadingFile: "Φόρτωση...",
22251
21401
  chooseFile: "Επιλογή αρχείων ...",
22252
21402
  noFileChosen: "Δεν έχει επιλεγεί αρχείο",
22253
- // fileDragAreaPlaceholder: "Drop a file here or click the button below to load the file.",
21403
+ fileDragAreaPlaceholder: "Αποθέστε το αρχείο σας εδώ ή κάντε κλικ στο κουμπί παρακάτω για να φορτώσετε το αρχείο.",
22254
21404
  confirmDelete: "Θέλετε να διαγράψετε την εγγραφή;",
22255
21405
  keyDuplicationError: "Αυτή η τιμή πρέπει να είναι μοναδική.",
22256
21406
  addColumn: "Προσθήκη στήλης",
22257
21407
  addRow: "Προσθήκη γραμμής",
22258
21408
  removeRow: "Αφαίρεση",
22259
- // emptyRowsText: "There are no rows.",
22260
- addPanel: "Προσθεσε νεο",
22261
- removePanel: "Αφαιρώ",
21409
+ emptyRowsText: "Δεν υπάρχουν εγγραφές.",
21410
+ addPanel: "Προσθέστε νέο",
21411
+ removePanel: "Αφαίρεση",
22262
21412
  choices_Item: "είδος",
22263
21413
  matrix_column: "Στήλη",
22264
- matrix_row: "Σειρά",
22265
- // multipletext_itemname: "text",
21414
+ matrix_row: "Γραμμή",
21415
+ multipletext_itemname: "κείμενο",
22266
21416
  savingData: "Τα αποτελέσματα αποθηκεύονται στον διακομιστή ...",
22267
21417
  savingDataError: "Παρουσιάστηκε σφάλμα και δεν ήταν δυνατή η αποθήκευση των αποτελεσμάτων.",
22268
21418
  savingDataSuccess: "Τα αποτελέσματα αποθηκεύτηκαν με επιτυχία!",
@@ -22275,21 +21425,22 @@ var greekSurveyStrings = {
22275
21425
  timerLimitAll: "Έχετε δαπανήσει {0} από {1} σε αυτήν τη σελίδα και {2} από {3} συνολικά.",
22276
21426
  timerLimitPage: "Έχετε ξοδέψει {0} από {1} σε αυτήν τη σελίδα.",
22277
21427
  timerLimitSurvey: "Έχετε ξοδέψει {0} από {1} συνολικά.",
22278
- clearCaption: "Σαφή",
22279
- // signaturePlaceHolder: "Sign here",
22280
- chooseFileCaption: "Επιλέξτε το αρχείο",
22281
- removeFileCaption: "Καταργήστε αυτό το αρχείο",
22282
- booleanCheckedLabel: "Ναί",
22283
- booleanUncheckedLabel: "Οχι",
22284
- confirmRemoveFile: "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το αρχείο: {0};",
22285
- confirmRemoveAllFiles: "Είστε βέβαιοι ότι θέλετε να καταργήσετε όλα τα αρχεία;",
21428
+ clearCaption: "Εκκαθάριση",
21429
+ signaturePlaceHolder: "Υπογράψτε εδώ",
21430
+ chooseFileCaption: "Επιλέξτε αρχείο",
21431
+ removeFileCaption: "Διαγράψτε αυτό το αρχείο",
21432
+ booleanCheckedLabel: "Ναι",
21433
+ booleanUncheckedLabel: "Όχι",
21434
+ confirmRemoveFile: "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αρχείο: {0};",
21435
+ confirmRemoveAllFiles: "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα αρχεία;",
22286
21436
  questionTitlePatternText: "Τίτλος ερώτησης",
22287
- // modalCancelButtonText: "Cancel",
22288
- // modalApplyButtonText: "Apply",
22289
- // filterStringPlaceholder: "Type to search...",
22290
- // emptyMessage: "No data to display",
22291
- // noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
22292
- // more: "More"
21437
+ modalCancelButtonText: "Άκυρο",
21438
+ modalApplyButtonText: "Εφαρμογή",
21439
+ filterStringPlaceholder: "Πληκτρολογήστε για αναζήτηση...",
21440
+ emptyMessage: "Δεν υπάρχουν δεδομένα προς εμφάνιση",
21441
+ noEntriesText: "Δεν υπάρχουν ακόμη εγγραφές.\nΚάντε κλικ στο κουμπί παρακάτω για να προσθέσετε μια νέα εγγραφή.",
21442
+ more: "Περισσότερα",
21443
+ tagboxDoneButtonCaption: "ΟΚ"
22293
21444
  };
22294
21445
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].locales["gr"] = greekSurveyStrings;
22295
21446
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["gr"] = "ελληνικά";
@@ -24011,7 +23162,7 @@ var polishSurveyStrings = {
24011
23162
  timerLimitAll: "Spędziłeś {0} z {1} na tej stronie a w sumie {2} z {3}.",
24012
23163
  timerLimitPage: "Spędziłeś {0} z {1} na tej stronie",
24013
23164
  timerLimitSurvey: "Spędziłeś {0} z {1}.",
24014
- clearCaption: "Jasne",
23165
+ clearCaption: "Wyczyść",
24015
23166
  signaturePlaceHolder: "Podpisz tutaj",
24016
23167
  chooseFileCaption: "Wybierz plik",
24017
23168
  removeFileCaption: "Usuń ten plik",
@@ -27254,6 +26405,9 @@ var QuestionRowModel = /** @class */ (function (_super) {
27254
26405
  .toString();
27255
26406
  };
27256
26407
  QuestionRowModel.rowCounter = 100;
26408
+ __decorate([
26409
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
26410
+ ], QuestionRowModel.prototype, "dragTypeOverMe", void 0);
27257
26411
  return QuestionRowModel;
27258
26412
  }(_base__WEBPACK_IMPORTED_MODULE_2__["Base"]));
27259
26413
 
@@ -27937,7 +27091,8 @@ var PanelModelBase = /** @class */ (function (_super) {
27937
27091
  return null;
27938
27092
  };
27939
27093
  /**
27940
- * Sets focus on the input of the first question in this panel/page.
27094
+ * Focuses the first question in this panel/page.
27095
+ * @see focusFirstErrorQuestion
27941
27096
  */
27942
27097
  PanelModelBase.prototype.focusFirstQuestion = function () {
27943
27098
  var q = this.getFirstQuestionToFocus();
@@ -27946,8 +27101,9 @@ var PanelModelBase = /** @class */ (function (_super) {
27946
27101
  }
27947
27102
  };
27948
27103
  /**
27949
- * Sets focus on the input of the first question in this panel/page that has an error.
27104
+ * Focuses the first question with a validation error in this panel/page.
27950
27105
  * @see validate
27106
+ * @see focusFirstQuestion
27951
27107
  */
27952
27108
  PanelModelBase.prototype.focusFirstErrorQuestion = function () {
27953
27109
  var q = this.getFirstQuestionToFocus(true);
@@ -30256,7 +29412,7 @@ function setStyles() {
30256
29412
  ".sv-ranking--drag-handle-area-icon .sv-ranking-item__icon--hover": "cursor: pointer;",
30257
29413
  // EO ranking
30258
29414
  // drag drop
30259
- ".sv-dragged-element-shortcut": "height: 24px; min-width: 100px; border-radius: 36px; background-color: white; padding: 16px; cursor: grabbing; position: absolute; z-index: 1000; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1); font-family: var(--font-family, $font-family); font-size: 16px; padding-left: 20px;line-height: 24px;",
29415
+ ".sv-dragged-element-shortcut": "height: 24px; min-width: 100px; border-radius: 36px; background-color: white; padding: 16px; cursor: grabbing; position: absolute; z-index: 10000; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1); font-family: var(--font-family, $font-family); font-size: 16px; padding-left: 20px;line-height: 24px;",
30260
29416
  ".sv-matrixdynamic__drag-icon": "padding-top:14px",
30261
29417
  ".sv-matrixdynamic__drag-icon:after": "content: ' '; display: block; height: 6px; width: 20px; border: 1px solid #e7e7e7; box-sizing: border-box; border-radius: 10px; cursor: move; margin-top: 12px;",
30262
29418
  ".sv-matrix-row--drag-drop-ghost-mod td": "background-color: #f3f3f3;",
@@ -30713,7 +29869,7 @@ var PopupModalViewModel = /** @class */ (function (_super) {
30713
29869
  id: "apply",
30714
29870
  visibleIndex: 20,
30715
29871
  title: this.applyButtonText,
30716
- innerCss: "sv-popup__body-footer-item sv-popup__button sv-popup__button--apply",
29872
+ innerCss: "sv-popup__body-footer-item sv-popup__button sv-popup__button--apply sd-btn sd-btn--action",
30717
29873
  action: function () { _this.apply(); }
30718
29874
  });
30719
29875
  };
@@ -31161,14 +30317,14 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31161
30317
  this.footerToolbarValue = new _actions_container__WEBPACK_IMPORTED_MODULE_3__["ActionContainer"]();
31162
30318
  this.footerToolbar.updateCallback = function (isResetInitialized) {
31163
30319
  _this.footerToolbarValue.actions.forEach(function (action) { return action.cssClasses = {
31164
- item: "sv-popup__body-footer-item sv-popup__button"
30320
+ item: "sv-popup__body-footer-item sv-popup__button sd-btn"
31165
30321
  }; });
31166
30322
  };
31167
30323
  var footerActions = [{
31168
30324
  id: "cancel",
31169
30325
  visibleIndex: 10,
31170
30326
  title: this.cancelButtonText,
31171
- innerCss: "sv-popup__button--cancel",
30327
+ innerCss: "sv-popup__button--cancel sd-btn",
31172
30328
  action: function () { _this.cancel(); }
31173
30329
  }];
31174
30330
  footerActions = this.model.updateFooterActions(footerActions);
@@ -31242,6 +30398,13 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31242
30398
  enumerable: false,
31243
30399
  configurable: true
31244
30400
  });
30401
+ Object.defineProperty(PopupBaseViewModel.prototype, "isFocusedContainer", {
30402
+ get: function () {
30403
+ return this.model.isFocusedContainer;
30404
+ },
30405
+ enumerable: false,
30406
+ configurable: true
30407
+ });
31245
30408
  Object.defineProperty(PopupBaseViewModel.prototype, "showFooter", {
31246
30409
  get: function () {
31247
30410
  return this.getShowFooter();
@@ -31323,6 +30486,9 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31323
30486
  if (this.isFocusedContent) {
31324
30487
  this.focusFirstInput();
31325
30488
  }
30489
+ else if (this.isFocusedContainer) {
30490
+ this.focusContainer();
30491
+ }
31326
30492
  };
31327
30493
  PopupBaseViewModel.prototype.updateOnShowing = function () {
31328
30494
  this.prevActiveElement = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.activeElement;
@@ -31336,6 +30502,11 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31336
30502
  this.prevActiveElement.focus();
31337
30503
  }
31338
30504
  };
30505
+ PopupBaseViewModel.prototype.focusContainer = function () {
30506
+ if (!this.container)
30507
+ return;
30508
+ this.container.children[0].focus();
30509
+ };
31339
30510
  PopupBaseViewModel.prototype.focusFirstInput = function () {
31340
30511
  var _this = this;
31341
30512
  setTimeout(function () {
@@ -31345,7 +30516,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31345
30516
  if (!!el)
31346
30517
  el.focus();
31347
30518
  else
31348
- _this.container.children[0].focus();
30519
+ _this.focusContainer();
31349
30520
  }, 100);
31350
30521
  };
31351
30522
  PopupBaseViewModel.prototype.clickOutside = function () {
@@ -31526,6 +30697,9 @@ var PopupModel = /** @class */ (function (_super) {
31526
30697
  __decorate([
31527
30698
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
31528
30699
  ], PopupModel.prototype, "isFocusedContent", void 0);
30700
+ __decorate([
30701
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
30702
+ ], PopupModel.prototype, "isFocusedContainer", void 0);
31529
30703
  __decorate([
31530
30704
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: function () { } })
31531
30705
  ], PopupModel.prototype, "onCancel", void 0);
@@ -33079,9 +32253,16 @@ var Question = /** @class */ (function (_super) {
33079
32253
  enumerable: false,
33080
32254
  configurable: true
33081
32255
  });
32256
+ Object.defineProperty(Question.prototype, "allowResizeComment", {
32257
+ get: function () {
32258
+ return this.survey && this.survey.allowResizeComment;
32259
+ },
32260
+ enumerable: false,
32261
+ configurable: true
32262
+ });
33082
32263
  Object.defineProperty(Question.prototype, "questionValue", {
33083
32264
  get: function () {
33084
- return this.getPropertyValue("value");
32265
+ return this.getPropertyValueWithoutDefault("value");
33085
32266
  },
33086
32267
  set: function (val) {
33087
32268
  this.setPropertyValue("value", val);
@@ -33091,7 +32272,7 @@ var Question = /** @class */ (function (_super) {
33091
32272
  });
33092
32273
  Object.defineProperty(Question.prototype, "questionComment", {
33093
32274
  get: function () {
33094
- return this.getPropertyValue("comment");
32275
+ return this.getPropertyValueWithoutDefault("comment");
33095
32276
  },
33096
32277
  set: function (val) {
33097
32278
  this.setPropertyValue("comment", val);
@@ -33312,7 +32493,7 @@ var Question = /** @class */ (function (_super) {
33312
32493
  });
33313
32494
  Object.defineProperty(Question.prototype, "resizeStyle", {
33314
32495
  get: function () {
33315
- return this.autoGrowComment ? "none" : "both";
32496
+ return this.allowResizeComment ? "both" : "none";
33316
32497
  },
33317
32498
  enumerable: false,
33318
32499
  configurable: true
@@ -33803,6 +32984,8 @@ var Question = /** @class */ (function (_super) {
33803
32984
  }
33804
32985
  };
33805
32986
  Question.prototype.setNewValue = function (newValue) {
32987
+ if (this.isNewValueEqualsToValue(newValue))
32988
+ return;
33806
32989
  var oldAnswered = this.isAnswered;
33807
32990
  this.setNewValueInData(newValue);
33808
32991
  this.allowNotifyValueChanged && this.onValueChanged();
@@ -33810,6 +32993,13 @@ var Question = /** @class */ (function (_super) {
33810
32993
  this.updateQuestionCss();
33811
32994
  }
33812
32995
  };
32996
+ Question.prototype.isNewValueEqualsToValue = function (newValue) {
32997
+ var val = this.value;
32998
+ if (!this.isTwoValueEquals(newValue, val))
32999
+ return false;
33000
+ var isObj = newValue === val && !!val && (Array.isArray(val) || typeof val === "object");
33001
+ return !isObj;
33002
+ };
33813
33003
  Question.prototype.isTextValue = function () {
33814
33004
  return false;
33815
33005
  };
@@ -34122,7 +33312,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("question", [
34122
33312
  default: "default",
34123
33313
  choices: ["default", "collapsed", "expanded"],
34124
33314
  },
34125
- { name: "visible:switch", default: true },
33315
+ { name: "visible:switch", default: true, overridingProperty: "visibleIf" },
34126
33316
  { name: "useDisplayValuesInDynamicTexts:boolean", alternativeName: "useDisplayValuesInTitle", default: true, layout: "row" },
34127
33317
  "visibleIf:condition",
34128
33318
  { name: "width" },
@@ -34204,13 +33394,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("question", [
34204
33394
  default: "default",
34205
33395
  choices: ["default", "none", "onComplete", "onHidden"],
34206
33396
  },
34207
- "isRequired:switch",
33397
+ { name: "isRequired:switch", overridingProperty: "requiredIf" },
34208
33398
  "requiredIf:condition",
34209
33399
  {
34210
33400
  name: "requiredErrorText:text",
34211
33401
  serializationProperty: "locRequiredErrorText",
34212
33402
  },
34213
- "readOnly:switch",
33403
+ { name: "readOnly:switch", overridingProperty: "enableIf" },
34214
33404
  {
34215
33405
  name: "validators:validators",
34216
33406
  baseClassName: "surveyvalidator",
@@ -34826,7 +34016,18 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34826
34016
  QuestionSelectBase.prototype.onEnableItemCallBack = function (item) {
34827
34017
  return true;
34828
34018
  };
34829
- QuestionSelectBase.prototype.onSelectedItemValuesChangedHandler = function (newValue) { };
34019
+ QuestionSelectBase.prototype.onSelectedItemValuesChangedHandler = function (newValue) {
34020
+ var _a;
34021
+ (_a = this.survey) === null || _a === void 0 ? void 0 : _a.loadedChoicesFromServer(this);
34022
+ };
34023
+ QuestionSelectBase.prototype.getItemIfChoicesNotContainThisValue = function (value, text) {
34024
+ if (!this.isReady) {
34025
+ return this.createItemValue(value, text);
34026
+ }
34027
+ else {
34028
+ return null;
34029
+ }
34030
+ };
34830
34031
  QuestionSelectBase.prototype.getSingleSelectedItem = function () {
34831
34032
  var selectedItemValues = this.selectedItemValues;
34832
34033
  if (this.isEmpty())
@@ -34836,9 +34037,12 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34836
34037
  if (!itemValue && !selectedItemValues) {
34837
34038
  this.updateSelectedItemValues();
34838
34039
  }
34839
- return itemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : this.createItemValue(this.value));
34040
+ return itemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : this.getItemIfChoicesNotContainThisValue(this.value));
34840
34041
  };
34841
34042
  QuestionSelectBase.prototype.onGetSingleSelectedItem = function (selectedItemByValue) { };
34043
+ QuestionSelectBase.prototype.getMultipleSelectedItems = function () {
34044
+ return [];
34045
+ };
34842
34046
  QuestionSelectBase.prototype.setConditionalChoicesRunner = function () {
34843
34047
  if (this.choicesVisibleIf) {
34844
34048
  if (!this.conditionChoicesVisibleIfRunner) {
@@ -35001,7 +34205,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35001
34205
  }
35002
34206
  };
35003
34207
  QuestionSelectBase.prototype.setNewValue = function (newValue) {
35004
- this.resetSelectedItemValues();
35005
34208
  newValue = this.valueFromData(newValue);
35006
34209
  if ((!this.choicesByUrl.isRunning &&
35007
34210
  !this.choicesByUrl.isWaitingForParameters) ||
@@ -35093,9 +34296,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35093
34296
  });
35094
34297
  }
35095
34298
  };
35096
- QuestionSelectBase.prototype.resetSelectedItemValues = function () {
35097
- this.selectedItemValues = null;
35098
- };
35099
34299
  QuestionSelectBase.prototype.hasUnknownValue = function (val, includeOther, isFilteredChoices, checkEmptyValue) {
35100
34300
  if (includeOther === void 0) { includeOther = false; }
35101
34301
  if (isFilteredChoices === void 0) { isFilteredChoices = true; }
@@ -35503,17 +34703,28 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35503
34703
  QuestionSelectBase.prototype.getChoicesDisplayValue = function (items, val) {
35504
34704
  if (val == this.otherItemValue.value)
35505
34705
  return this.otherValue ? this.otherValue : this.locOtherText.textOrHtml;
34706
+ var selItem = this.getSingleSelectedItem();
34707
+ if (!!selItem && selItem.value === val)
34708
+ return selItem.locText.textOrHtml;
35506
34709
  var str = _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getTextOrHtmlByValue(items, val);
35507
34710
  return str == "" && val ? val : str;
35508
34711
  };
35509
34712
  QuestionSelectBase.prototype.getDisplayArrayValue = function (keysAsText, value, onGetValueCallback) {
35510
34713
  var items = this.visibleChoices;
35511
34714
  var strs = [];
34715
+ var vals = [];
35512
34716
  for (var i = 0; i < value.length; i++) {
35513
- var val = !onGetValueCallback ? value[i] : onGetValueCallback(i);
35514
- var valStr = this.getChoicesDisplayValue(items, val);
35515
- if (valStr) {
35516
- strs.push(valStr);
34717
+ vals.push(!onGetValueCallback ? value[i] : onGetValueCallback(i));
34718
+ }
34719
+ if (_helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isTwoValueEquals(this.value, vals)) {
34720
+ this.getMultipleSelectedItems().forEach(function (item) { return strs.push(item.locText.textOrHtml); });
34721
+ }
34722
+ if (strs.length === 0) {
34723
+ for (var i = 0; i < vals.length; i++) {
34724
+ var valStr = this.getChoicesDisplayValue(items, vals[i]);
34725
+ if (valStr) {
34726
+ strs.push(valStr);
34727
+ }
35517
34728
  }
35518
34729
  }
35519
34730
  return strs.join(", ");
@@ -35622,7 +34833,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35622
34833
  errors.push(otherEmptyError);
35623
34834
  };
35624
34835
  QuestionSelectBase.prototype.setSurveyImpl = function (value, isLight) {
34836
+ this.isRunningChoices = true;
35625
34837
  _super.prototype.setSurveyImpl.call(this, value, isLight);
34838
+ this.isRunningChoices = false;
35626
34839
  this.runChoicesByUrl();
35627
34840
  if (this.isAddDefaultItems) {
35628
34841
  this.updateVisibleChoices();
@@ -35724,12 +34937,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35724
34937
  if (this.enableOnLoadingChoices) {
35725
34938
  this.readOnly = false;
35726
34939
  }
34940
+ var errors = [];
35727
34941
  if (!this.isReadOnly) {
35728
- var errors = [];
35729
34942
  if (this.choicesByUrl && this.choicesByUrl.error) {
35730
34943
  errors.push(this.choicesByUrl.error);
35731
34944
  }
35732
- this.errors = errors;
35733
34945
  }
35734
34946
  var newChoices = null;
35735
34947
  var checkCachedValuesOnExisting = true;
@@ -35778,6 +34990,10 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35778
34990
  }
35779
34991
  }
35780
34992
  }
34993
+ if (!this.isReadOnly && !newChoices && !this.isFirstLoadChoicesFromUrl) {
34994
+ this.value = null;
34995
+ }
34996
+ this.errors = errors;
35781
34997
  this.choicesLoaded();
35782
34998
  };
35783
34999
  QuestionSelectBase.prototype.createCachedValueForUrlRequests = function (val, checkOnExisting) {
@@ -35851,6 +35067,8 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35851
35067
  return !filteredChoices || filteredChoices.length > 0;
35852
35068
  };
35853
35069
  QuestionSelectBase.prototype.sortVisibleChoices = function (array) {
35070
+ if (this.isDesignMode)
35071
+ return array;
35854
35072
  var order = this.choicesOrder.toLowerCase();
35855
35073
  if (order == "asc")
35856
35074
  return this.sortArray(array, 1);
@@ -37320,6 +36538,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
37320
36538
  enumerable: false,
37321
36539
  configurable: true
37322
36540
  });
36541
+ QuestionCheckboxModel.prototype.getMultipleSelectedItems = function () {
36542
+ return this.selectedChoices;
36543
+ };
37323
36544
  QuestionCheckboxModel.prototype.validateItemValues = function (itemValues) {
37324
36545
  if (!!itemValues.length)
37325
36546
  return itemValues;
@@ -37749,7 +36970,6 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37749
36970
  * Specifies the visible height of the comment area, measured in lines.
37750
36971
  *
37751
36972
  * The value of this property is passed on to the `rows` attribute of the underlying `<textarea>` element.
37752
- * @see cols
37753
36973
  */
37754
36974
  get: function () {
37755
36975
  return this.getPropertyValue("rows");
@@ -37761,12 +36981,6 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37761
36981
  configurable: true
37762
36982
  });
37763
36983
  Object.defineProperty(QuestionCommentModel.prototype, "cols", {
37764
- /**
37765
- * Specifies the visible width of the comment area, measured in average character width.
37766
- *
37767
- * The value of this property is passed on to the `cols` attribute of the underlying `<textarea>` element.
37768
- * @see rows
37769
- */
37770
36984
  get: function () {
37771
36985
  return this.getPropertyValue("cols");
37772
36986
  },
@@ -37796,6 +37010,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37796
37010
  * Specifies whether the comment area automatically increases its height to accomodate multi-line content.
37797
37011
  *
37798
37012
  * Default value: `false` (inherited from `SurveyModel`'s [`autoGrowComment`](https://surveyjs.io/form-library/documentation/surveymodel#autoGrowComment) property)
37013
+ * @see allowResize
37799
37014
  */
37800
37015
  get: function () {
37801
37016
  return this.getPropertyValue("autoGrow") || (this.survey && this.survey.autoGrowComment);
@@ -37806,6 +37021,29 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37806
37021
  enumerable: false,
37807
37022
  configurable: true
37808
37023
  });
37024
+ Object.defineProperty(QuestionCommentModel.prototype, "allowResize", {
37025
+ /**
37026
+ * Specifies whether to display a resize handle for the comment area.
37027
+ *
37028
+ * Default value: `true` (inherited from `SurveyModel`'s [`allowResizeComment`](https://surveyjs.io/form-library/documentation/surveymodel#allowResizeComment) property)
37029
+ * @see autoGrow
37030
+ */
37031
+ get: function () {
37032
+ return this.getPropertyValue("allowResize") && (this.survey && this.survey.allowResizeComment);
37033
+ },
37034
+ set: function (val) {
37035
+ this.setPropertyValue("allowResize", val);
37036
+ },
37037
+ enumerable: false,
37038
+ configurable: true
37039
+ });
37040
+ Object.defineProperty(QuestionCommentModel.prototype, "resizeStyle", {
37041
+ get: function () {
37042
+ return this.allowResize ? "both" : "none";
37043
+ },
37044
+ enumerable: false,
37045
+ configurable: true
37046
+ });
37809
37047
  QuestionCommentModel.prototype.getType = function () {
37810
37048
  return "comment";
37811
37049
  };
@@ -37861,7 +37099,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37861
37099
 
37862
37100
  _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("comment", [
37863
37101
  { name: "maxLength:number", default: -1 },
37864
- { name: "cols:number", default: 50 },
37102
+ { name: "cols:number", default: 50, visible: false, isSerializable: false },
37865
37103
  { name: "rows:number", default: 4 },
37866
37104
  { name: "placeholder",
37867
37105
  alternativeName: "placeHolder",
@@ -37872,6 +37110,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("comment", [
37872
37110
  choices: ["default", "onBlur", "onTyping"],
37873
37111
  },
37874
37112
  { name: "autoGrow:boolean" },
37113
+ { name: "allowResize:boolean", default: true },
37875
37114
  { name: "acceptCarriageReturn:boolean", default: true, visible: false }
37876
37115
  ], function () {
37877
37116
  return new QuestionCommentModel("");
@@ -38131,8 +37370,10 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
38131
37370
  el.disableDesignActions = true;
38132
37371
  };
38133
37372
  QuestionCustomModelBase.prototype.setSurveyImpl = function (value, isLight) {
37373
+ this.isSettingValOnLoading = true;
38134
37374
  _super.prototype.setSurveyImpl.call(this, value, isLight);
38135
37375
  this.initElement(this.getElement());
37376
+ this.isSettingValOnLoading = false;
38136
37377
  };
38137
37378
  QuestionCustomModelBase.prototype.onSurveyLoad = function () {
38138
37379
  _super.prototype.onSurveyLoad.call(this);
@@ -38179,7 +37420,11 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
38179
37420
  if (!this.data)
38180
37421
  return;
38181
37422
  var newName = this.convertDataName(name);
38182
- this.data.setValue(newName, this.convertDataValue(name, newValue), locNotification, allowNotifyValueChanged);
37423
+ var valueForSurvey = this.convertDataValue(name, newValue);
37424
+ if (this.valueToDataCallback) {
37425
+ valueForSurvey = this.valueToDataCallback(valueForSurvey);
37426
+ }
37427
+ this.data.setValue(newName, valueForSurvey, locNotification, allowNotifyValueChanged);
38183
37428
  this.updateIsAnswered();
38184
37429
  this.updateElementCss();
38185
37430
  if (!!this.customQuestion) {
@@ -38563,6 +37808,7 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38563
37808
  _super.prototype.onReadOnlyChanged.call(this);
38564
37809
  };
38565
37810
  QuestionCompositeModel.prototype.onSurveyLoad = function () {
37811
+ this.isSettingValOnLoading = true;
38566
37812
  if (!!this.contentPanel) {
38567
37813
  this.contentPanel.readOnly = this.isReadOnly;
38568
37814
  this.setIsContentElement(this.contentPanel);
@@ -38574,6 +37820,7 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38574
37820
  this.value = val;
38575
37821
  }
38576
37822
  }
37823
+ this.isSettingValOnLoading = false;
38577
37824
  };
38578
37825
  QuestionCompositeModel.prototype.setIsContentElement = function (panel) {
38579
37826
  panel.isContentElement = true;
@@ -38615,21 +37862,30 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38615
37862
  return !!this.contentPanel ? this.contentPanel.getQuestionByName(name) : undefined;
38616
37863
  };
38617
37864
  QuestionCompositeModel.prototype.setValue = function (name, newValue, locNotification, allowNotifyValueChanged) {
38618
- if (this.settingNewValue)
37865
+ if (this.settingNewValue) {
37866
+ this.setNewValueIntoQuestion(name, newValue);
38619
37867
  return;
37868
+ }
38620
37869
  if (this.isValueChanging(name, newValue))
38621
37870
  return;
38622
37871
  this.settingNewValue = true;
38623
37872
  if (!this.isEditingSurveyElement && !!this.contentPanel) {
38624
- var panelValue = this.contentPanel.getValue();
38625
- if (!this.isTwoValueEquals(this.getValueCore(), panelValue)) {
38626
- this.setValueCore(panelValue);
38627
- }
37873
+ var index = 0;
37874
+ var maxTimes = this.contentPanel.questions.length + 1;
37875
+ while (index < maxTimes && this.updateValueCoreWithPanelValue())
37876
+ index++;
38628
37877
  }
38629
37878
  this.setNewValueIntoQuestion(name, newValue);
38630
37879
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
38631
37880
  this.settingNewValue = false;
38632
37881
  };
37882
+ QuestionCompositeModel.prototype.updateValueCoreWithPanelValue = function () {
37883
+ var panelValue = this.contentPanel.getValue();
37884
+ if (this.isTwoValueEquals(this.getValueCore(), panelValue))
37885
+ return false;
37886
+ this.setValueCore(panelValue);
37887
+ return true;
37888
+ };
38633
37889
  QuestionCompositeModel.prototype.setNewValueIntoQuestion = function (name, newValue) {
38634
37890
  var q = this.getQuestionByName(name);
38635
37891
  if (!!q && !this.isTwoValueEquals(newValue, q.value)) {
@@ -38673,6 +37929,7 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38673
37929
  QuestionCompositeModel.prototype.setValuesIntoQuestions = function (newValue) {
38674
37930
  if (!this.contentPanel)
38675
37931
  return;
37932
+ var oldSettingNewValue = this.settingNewValue;
38676
37933
  this.settingNewValue = true;
38677
37934
  var questions = this.contentPanel.questions;
38678
37935
  for (var i = 0; i < questions.length; i++) {
@@ -38683,8 +37940,7 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38683
37940
  q.value = val;
38684
37941
  }
38685
37942
  }
38686
- this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());
38687
- this.settingNewValue = false;
37943
+ this.settingNewValue = oldSettingNewValue;
38688
37944
  };
38689
37945
  QuestionCompositeModel.prototype.getDisplayValueCore = function (keyAsText, value) {
38690
37946
  return _super.prototype.getContentDisplayValueCore.call(this, keyAsText, value, this.contentPanel);
@@ -39052,6 +38308,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
39052
38308
  QuestionDropdownModel.prototype.onSelectedItemValuesChangedHandler = function (newValue) {
39053
38309
  var _a;
39054
38310
  (_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.setInputStringFromSelectedItem(newValue);
38311
+ _super.prototype.onSelectedItemValuesChangedHandler.call(this, newValue);
39055
38312
  };
39056
38313
  QuestionDropdownModel.prototype.hasUnknownValue = function (val, includeOther, isFilteredChoices, checkEmptyValue) {
39057
38314
  if (this.choicesLazyLoadEnabled) {
@@ -39066,6 +38323,14 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
39066
38323
  return false;
39067
38324
  return _super.prototype.hasUnknownValue.call(this, val, true, false);
39068
38325
  };
38326
+ QuestionDropdownModel.prototype.getItemIfChoicesNotContainThisValue = function (value, text) {
38327
+ if (this.choicesLazyLoadEnabled && !this.dropdownListModel.isAllDataLoaded) {
38328
+ return this.createItemValue(value, text);
38329
+ }
38330
+ else {
38331
+ return _super.prototype.getItemIfChoicesNotContainThisValue.call(this, value, text);
38332
+ }
38333
+ };
39069
38334
  QuestionDropdownModel.prototype.onVisibleChoicesChanged = function () {
39070
38335
  _super.prototype.onVisibleChoicesChanged.call(this);
39071
38336
  if (this.popupModel) {
@@ -39326,9 +38591,7 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
39326
38591
  this.expressionRunner = new _conditions__WEBPACK_IMPORTED_MODULE_4__["ExpressionRunner"](this.expression);
39327
38592
  }
39328
38593
  this.expressionRunner.onRunComplete = function (newValue) {
39329
- if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(newValue, _this.value)) {
39330
- _this.value = newValue;
39331
- }
38594
+ _this.value = newValue;
39332
38595
  _this.unlocCalculation();
39333
38596
  };
39334
38597
  this.expressionRunner.run(values, properties);
@@ -41006,9 +40269,27 @@ var ImageItemValue = /** @class */ (function (_super) {
41006
40269
  ImageItemValue.prototype.onErrorHandler = function () {
41007
40270
  this.contentNotLoaded = true;
41008
40271
  };
40272
+ Object.defineProperty(ImageItemValue.prototype, "contentNotLoaded", {
40273
+ get: function () {
40274
+ return this.locOwner instanceof QuestionImagePickerModel && this.locOwner.contentMode == "video" ? this.videoNotLoaded : this.imageNotLoaded;
40275
+ },
40276
+ set: function (val) {
40277
+ if (this.locOwner instanceof QuestionImagePickerModel && this.locOwner.contentMode == "video") {
40278
+ this.videoNotLoaded = val;
40279
+ }
40280
+ else {
40281
+ this.imageNotLoaded = val;
40282
+ }
40283
+ },
40284
+ enumerable: false,
40285
+ configurable: true
40286
+ });
40287
+ __decorate([
40288
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
40289
+ ], ImageItemValue.prototype, "videoNotLoaded", void 0);
41009
40290
  __decorate([
41010
40291
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
41011
- ], ImageItemValue.prototype, "contentNotLoaded", void 0);
40292
+ ], ImageItemValue.prototype, "imageNotLoaded", void 0);
41012
40293
  return ImageItemValue;
41013
40294
  }(_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"]));
41014
40295
 
@@ -46866,7 +46147,13 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46866
46147
  };
46867
46148
  QuestionMatrixDynamicModel.prototype.isBanStartDrag = function (pointerDownEvent) {
46868
46149
  var target = pointerDownEvent.target;
46869
- return target.getAttribute("contenteditable") === "true" || target.nodeName === "INPUT";
46150
+ return target.getAttribute("contenteditable") === "true" || target.nodeName === "INPUT" || !this.isDragHandleAreaValid(target);
46151
+ };
46152
+ QuestionMatrixDynamicModel.prototype.isDragHandleAreaValid = function (node) {
46153
+ if (this.survey.matrixDragHandleArea === "icon") {
46154
+ return node.classList.contains(this.cssClasses.dragElementDecorator);
46155
+ }
46156
+ return true;
46870
46157
  };
46871
46158
  QuestionMatrixDynamicModel.prototype.onPointerDown = function (pointerDownEvent, row) {
46872
46159
  if (!row || !this.allowRowsDragAndDrop)
@@ -50727,9 +50014,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50727
50014
  if (newPanelCount == 0 && this.getPropertyValue("panelCount") > 0) {
50728
50015
  newPanelCount = this.getPropertyValue("panelCount");
50729
50016
  }
50017
+ this.settingPanelCountBasedOnValue = true;
50730
50018
  this.panelCount = newPanelCount;
50019
+ this.settingPanelCountBasedOnValue = false;
50731
50020
  };
50732
50021
  QuestionPanelDynamicModel.prototype.setQuestionValue = function (newValue) {
50022
+ if (this.settingPanelCountBasedOnValue)
50023
+ return;
50733
50024
  _super.prototype.setQuestionValue.call(this, newValue, false);
50734
50025
  this.setPanelCountBasedOnValue();
50735
50026
  for (var i = 0; i < this.panels.length; i++) {
@@ -52104,7 +51395,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52104
51395
  QuestionRatingModel.prototype.initColors = function () {
52105
51396
  if (this.colorMode === "monochrome")
52106
51397
  return;
52107
- if (!document)
51398
+ if (typeof document === "undefined" || !document)
52108
51399
  return;
52109
51400
  if (QuestionRatingModel.badColor && QuestionRatingModel.normalColor && QuestionRatingModel.goodColor)
52110
51401
  return;
@@ -53169,7 +52460,6 @@ __webpack_require__.r(__webpack_exports__);
53169
52460
  /* harmony import */ var _question_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./question_checkbox */ "./src/question_checkbox.ts");
53170
52461
  /* harmony import */ var _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dropdownMultiSelectListModel */ "./src/dropdownMultiSelectListModel.ts");
53171
52462
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
53172
- /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./itemvalue */ "./src/itemvalue.ts");
53173
52463
  var __extends = (undefined && undefined.__extends) || (function () {
53174
52464
  var extendStatics = function (d, b) {
53175
52465
  extendStatics = Object.setPrototypeOf ||
@@ -53197,7 +52487,6 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
53197
52487
 
53198
52488
 
53199
52489
 
53200
-
53201
52490
  /**
53202
52491
  * A Model for a tagbox question
53203
52492
  *
@@ -53322,6 +52611,15 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
53322
52611
  this.dropdownListModel.updateItems();
53323
52612
  }
53324
52613
  };
52614
+ QuestionTagboxModel.prototype.getItemIfChoicesNotContainThisValue = function (value, text) {
52615
+ var _a;
52616
+ if (this.choicesLazyLoadEnabled && !((_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.isAllDataLoaded)) {
52617
+ return this.createItemValue(value, text);
52618
+ }
52619
+ else {
52620
+ return _super.prototype.getItemIfChoicesNotContainThisValue.call(this, value, text);
52621
+ }
52622
+ };
53325
52623
  QuestionTagboxModel.prototype.validateItemValues = function (itemValues) {
53326
52624
  var _this = this;
53327
52625
  this.updateItemDisplayNameMap();
@@ -53335,7 +52633,10 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
53335
52633
  }
53336
52634
  var itemValueValues = itemValues.map(function (iV) { return iV.value; });
53337
52635
  val.filter(function (item) { return itemValueValues.indexOf(item) === -1; }).forEach(function (item) {
53338
- itemValues.push(new _itemvalue__WEBPACK_IMPORTED_MODULE_6__["ItemValue"](item, _this.itemDisplayNameMap[item]));
52636
+ var newItem = _this.getItemIfChoicesNotContainThisValue(item, _this.itemDisplayNameMap[item]);
52637
+ if (newItem) {
52638
+ itemValues.push(newItem);
52639
+ }
53339
52640
  });
53340
52641
  itemValues.sort(function (a, b) { return val.indexOf(a.value) - val.indexOf(b.value); });
53341
52642
  return itemValues;
@@ -54432,7 +53733,7 @@ var QuestionTextBase = /** @class */ (function (_super) {
54432
53733
  });
54433
53734
  Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaLabel", {
54434
53735
  get: function () {
54435
- if (this.hasTitle) {
53736
+ if (this.hasTitle && !this.parentQuestion) {
54436
53737
  return null;
54437
53738
  }
54438
53739
  else {
@@ -54444,7 +53745,7 @@ var QuestionTextBase = /** @class */ (function (_super) {
54444
53745
  });
54445
53746
  Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaLabelledBy", {
54446
53747
  get: function () {
54447
- if (this.hasTitle) {
53748
+ if (this.hasTitle && !this.parentQuestion) {
54448
53749
  return this.ariaTitleId;
54449
53750
  }
54450
53751
  else {
@@ -59078,14 +58379,10 @@ var Survey = /** @class */ (function (_super) {
59078
58379
  }
59079
58380
  var rootCss = this.survey.getRootCss();
59080
58381
  var cssClasses = this.rootNodeClassName ? this.rootNodeClassName + " " + rootCss : rootCss;
59081
- var rootStyle = {
59082
- backgroundImage: this.survey.renderBackgroundImage,
59083
- backgroundSize: this.survey.backgroundImageFit
59084
- };
59085
58382
  var formStyle = {
59086
58383
  backgroundColor: this.survey.renderBackgroundOpacity
59087
58384
  };
59088
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.rootNodeId, ref: this.rootRef, className: cssClasses, style: rootStyle },
58385
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.rootNodeId, ref: this.rootRef, className: cssClasses, style: this.survey.themeVariables },
59089
58386
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("form", { onSubmit: onSubmit, style: formStyle },
59090
58387
  customHeader,
59091
58388
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.container },
@@ -64011,8 +63308,8 @@ var RendererFactory = /** @class */ (function () {
64011
63308
 
64012
63309
  "use strict";
64013
63310
  __webpack_require__.r(__webpack_exports__);
64014
- /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
64015
- var document = global.document;
63311
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
63312
+ var document = globalThis.document;
64016
63313
  var defaultEnvironment = (!!document ? {
64017
63314
  root: document,
64018
63315
  _rootElement: document.body,
@@ -64516,7 +63813,6 @@ var settings = {
64516
63813
  }
64517
63814
  };
64518
63815
 
64519
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
64520
63816
 
64521
63817
  /***/ }),
64522
63818
 
@@ -65105,11 +64401,16 @@ var SurveyElementCore = /** @class */ (function (_super) {
65105
64401
  return SurveyElementCore;
65106
64402
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
65107
64403
 
64404
+ // TODO: rename
65108
64405
  var DragTypeOverMeEnum;
65109
64406
  (function (DragTypeOverMeEnum) {
65110
64407
  DragTypeOverMeEnum[DragTypeOverMeEnum["InsideEmptyPanel"] = 1] = "InsideEmptyPanel";
65111
64408
  DragTypeOverMeEnum[DragTypeOverMeEnum["MultilineRight"] = 2] = "MultilineRight";
65112
64409
  DragTypeOverMeEnum[DragTypeOverMeEnum["MultilineLeft"] = 3] = "MultilineLeft";
64410
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Top"] = 4] = "Top";
64411
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Right"] = 5] = "Right";
64412
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Bottom"] = 6] = "Bottom";
64413
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Left"] = 7] = "Left";
65113
64414
  })(DragTypeOverMeEnum || (DragTypeOverMeEnum = {}));
65114
64415
  /**
65115
64416
  * A base class for all survey elements.
@@ -65465,7 +64766,7 @@ var SurveyElement = /** @class */ (function (_super) {
65465
64766
  return _super.prototype.canRunConditions.call(this) && !!this.data;
65466
64767
  };
65467
64768
  SurveyElement.prototype.getDataFilteredValues = function () {
65468
- return !!this.data ? this.data.getFilteredValues() : null;
64769
+ return !!this.data ? this.data.getFilteredValues() : {};
65469
64770
  };
65470
64771
  SurveyElement.prototype.getDataFilteredProperties = function () {
65471
64772
  var props = !!this.data ? this.data.getFilteredProperties() : {};
@@ -65604,6 +64905,7 @@ var SurveyElement = /** @class */ (function (_super) {
65604
64905
  * - [`onUpdateChoiceItemCss`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onUpdateChoiceItemCss)
65605
64906
  */
65606
64907
  get: function () {
64908
+ var _dummy = this.cssClassesValue;
65607
64909
  if (!this.survey)
65608
64910
  return this.calcCssClasses(this.css);
65609
64911
  this.ensureCssClassesValue();
@@ -66383,7 +65685,7 @@ var SurveyModel = /** @class */ (function (_super) {
66383
65685
  */
66384
65686
  _this.onNavigateToUrl = _this.addEvent();
66385
65687
  /**
66386
- * An event that is raised when the survey [`state`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#state) changes from `"starting"` to `"running"`. This occurs only if your survey includes a [start page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page).
65688
+ * An event that is raised when the survey [`state`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#state) changes to `"running"`.
66387
65689
  * @see firstPageIsStarted
66388
65690
  */
66389
65691
  _this.onStarted = _this.addEvent();
@@ -66745,13 +66047,17 @@ var SurveyModel = /** @class */ (function (_super) {
66745
66047
  */
66746
66048
  _this.onAfterRenderPanel = _this.addEvent();
66747
66049
  /**
66748
- * The event occurs when an element within a question gets focus.
66050
+ * An event that is raised when an element (input field, checkbox, radio button) within a question gets focus.
66749
66051
  * @see onFocusInPanel
66052
+ * @see focusFirstQuestionAutomatic
66053
+ * @see focusQuestion
66750
66054
  */
66751
66055
  _this.onFocusInQuestion = _this.addEvent();
66752
66056
  /**
66753
- * The event occurs when an element within a panel gets focus.
66057
+ * An event that is raised when an element within a panel gets focus.
66754
66058
  * @see onFocusInQuestion
66059
+ * @see focusFirstQuestionAutomatic
66060
+ * @see focusQuestion
66755
66061
  */
66756
66062
  _this.onFocusInPanel = _this.addEvent();
66757
66063
  /**
@@ -66966,6 +66272,7 @@ var SurveyModel = /** @class */ (function (_super) {
66966
66272
  */
66967
66273
  _this.hideRequiredErrors = false;
66968
66274
  //#endregion
66275
+ _this.cssVariables = {};
66969
66276
  _this._isMobile = false;
66970
66277
  _this._isCompact = false;
66971
66278
  _this._isDesignMode = false;
@@ -67551,7 +66858,12 @@ var SurveyModel = /** @class */ (function (_super) {
67551
66858
  });
67552
66859
  Object.defineProperty(SurveyModel.prototype, "focusFirstQuestionAutomatic", {
67553
66860
  /**
67554
- * Gets or sets whether the first input is focused on showing a next or a previous page.
66861
+ * Specifies whether to focus the first question on the page on survey startup or when users switch between pages.
66862
+ *
66863
+ * Default value: `true`
66864
+ * @see focusOnFirstError
66865
+ * @see focusFirstQuestion
66866
+ * @see focusQuestion
67555
66867
  */
67556
66868
  get: function () {
67557
66869
  return this.getPropertyValue("focusFirstQuestionAutomatic");
@@ -67564,8 +66876,11 @@ var SurveyModel = /** @class */ (function (_super) {
67564
66876
  });
67565
66877
  Object.defineProperty(SurveyModel.prototype, "focusOnFirstError", {
67566
66878
  /**
67567
- * Gets or sets whether the first input is focused if the current page has errors.
67568
- * Set this property to `false` (the default value is `true`) if you do not want to bring the focus to the first question that has error on the page.
66879
+ * Specifies whether to focus the first question with a validation error on the current page.
66880
+ *
66881
+ * Default value: `true`
66882
+ * @see validate
66883
+ * @see focusFirstQuestionAutomatic
67569
66884
  */
67570
66885
  get: function () {
67571
66886
  return this.getPropertyValue("focusOnFirstError");
@@ -67914,11 +67229,12 @@ var SurveyModel = /** @class */ (function (_super) {
67914
67229
  });
67915
67230
  Object.defineProperty(SurveyModel.prototype, "autoGrowComment", {
67916
67231
  /**
67917
- * Specifies whether to increase the height of text areas to accommodate multi-line comments.
67232
+ * Specifies whether to increase the height of [Long Text](https://surveyjs.io/form-library/examples/add-open-ended-question-to-a-form/) questions and other text areas to accommodate multi-line text content.
67918
67233
  *
67919
67234
  * Default value: `false`
67920
67235
  *
67921
- * You can override this property for individual Comment questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
67236
+ * You can override this property for individual Long Text questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
67237
+ * @see allowResizeComment
67922
67238
  */
67923
67239
  get: function () {
67924
67240
  return this.getPropertyValue("autoGrowComment");
@@ -67929,6 +67245,24 @@ var SurveyModel = /** @class */ (function (_super) {
67929
67245
  enumerable: false,
67930
67246
  configurable: true
67931
67247
  });
67248
+ Object.defineProperty(SurveyModel.prototype, "allowResizeComment", {
67249
+ /**
67250
+ * Specifies whether to display a resize handle for [Long Text](https://surveyjs.io/form-library/examples/add-open-ended-question-to-a-form/) questions and other text areas intended for multi-line text content.
67251
+ *
67252
+ * Default value: `true`
67253
+ *
67254
+ * You can override this property for individual Long Text questions: [`allowResize`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#allowResize).
67255
+ * @see autoGrowComment
67256
+ */
67257
+ get: function () {
67258
+ return this.getPropertyValue("allowResizeComment");
67259
+ },
67260
+ set: function (val) {
67261
+ this.setPropertyValue("allowResizeComment", val);
67262
+ },
67263
+ enumerable: false,
67264
+ configurable: true
67265
+ });
67932
67266
  Object.defineProperty(SurveyModel.prototype, "textUpdateMode", {
67933
67267
  /**
67934
67268
  * Gets or sets a value that specifies how the survey updates its questions' text values.
@@ -68331,6 +67665,16 @@ var SurveyModel = /** @class */ (function (_super) {
68331
67665
  enumerable: false,
68332
67666
  configurable: true
68333
67667
  });
67668
+ Object.defineProperty(SurveyModel.prototype, "themeVariables", {
67669
+ get: function () {
67670
+ var result = Object.assign({}, this.cssVariables);
67671
+ result.backgroundImage = this.renderBackgroundImage;
67672
+ result.backgroundSize = this.backgroundImageFit;
67673
+ return result;
67674
+ },
67675
+ enumerable: false,
67676
+ configurable: true
67677
+ });
68334
67678
  SurveyModel.prototype.setIsMobile = function (newVal) {
68335
67679
  if (newVal === void 0) { newVal = true; }
68336
67680
  if (this.isMobile !== newVal) {
@@ -69589,6 +68933,24 @@ var SurveyModel = /** @class */ (function (_super) {
69589
68933
  enumerable: false,
69590
68934
  configurable: true
69591
68935
  });
68936
+ Object.defineProperty(SurveyModel.prototype, "matrixDragHandleArea", {
68937
+ /**
68938
+ * Specifies which part of a choice item responds to a drag gesture in MatrixDynamic questions.
68939
+ *
68940
+ * Possible values:
68941
+ *
68942
+ * - `"entireItem"` (default) - Users can use the entire choice item as a drag handle.
68943
+ * - `"icon"` - Users can only use the choice item icon as a drag handle.
68944
+ */
68945
+ get: function () {
68946
+ return this.getPropertyValue("matrixDragHandleArea", "entireItem");
68947
+ },
68948
+ set: function (val) {
68949
+ this.setPropertyValue("matrixDragHandleArea", val);
68950
+ },
68951
+ enumerable: false,
68952
+ configurable: true
68953
+ });
69592
68954
  Object.defineProperty(SurveyModel.prototype, "isShowingPage", {
69593
68955
  /**
69594
68956
  * Survey is showing a page right now. It is in "running", "preview" or starting state.
@@ -69665,7 +69027,9 @@ var SurveyModel = /** @class */ (function (_super) {
69665
69027
  configurable: true
69666
69028
  });
69667
69029
  /**
69668
- * Sets the input focus to the first question with the input field.
69030
+ * Focuses the first question on the current page.
69031
+ * @see focusQuestion
69032
+ * @see focusFirstQuestionAutomatic
69669
69033
  */
69670
69034
  SurveyModel.prototype.focusFirstQuestion = function () {
69671
69035
  if (this.isFocusingQuestion)
@@ -70518,7 +69882,7 @@ var SurveyModel = /** @class */ (function (_super) {
70518
69882
  return false;
70519
69883
  if (doComplete) {
70520
69884
  this.currentPage.passed = true;
70521
- return this.doComplete();
69885
+ return this.doComplete(this.canBeCompletedByTrigger);
70522
69886
  }
70523
69887
  this.doNextPage();
70524
69888
  return true;
@@ -71669,6 +71033,9 @@ var SurveyModel = /** @class */ (function (_super) {
71669
71033
  };
71670
71034
  /**
71671
71035
  * Creates a new page and adds it to the survey.
71036
+ *
71037
+ * If you want to switch a survey to the newly added page, assign its index to the [`currentPageNo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#currentPageNo) property or assign the entire page to the [`currentPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#currentPage) property.
71038
+ *
71672
71039
  * @param name A page name. If you do not specify this parameter, it will be generated automatically.
71673
71040
  * @param index An index at which to insert the page. If you do not specify this parameter, the page will be added to the end.
71674
71041
  * @returns The created and added page.
@@ -73549,9 +72916,11 @@ var SurveyModel = /** @class */ (function (_super) {
73549
72916
  this.isMovingQuestion = false;
73550
72917
  };
73551
72918
  /**
73552
- * Focus question by its name. If needed change the current page on the page where question is located.
73553
- * Function returns false if there is no question with this name or question is invisible, otherwise it returns true.
73554
- * @param name question name
72919
+ * Focuses a question with a specified name. Switches the current page if needed.
72920
+ * @param name A question name.
72921
+ * @returns `false` if the survey does not contain a question with a specified name or this question is hidden; otherwise, `true`.
72922
+ * @see focusFirstQuestion
72923
+ * @see focusFirstQuestionAutomatic
73555
72924
  */
73556
72925
  SurveyModel.prototype.focusQuestion = function (name) {
73557
72926
  var _this = this;
@@ -73721,6 +73090,14 @@ var SurveyModel = /** @class */ (function (_super) {
73721
73090
  }
73722
73091
  return containerLayoutElements;
73723
73092
  };
73093
+ SurveyModel.prototype.applyTheme = function (theme) {
73094
+ var _this = this;
73095
+ if (!theme)
73096
+ return;
73097
+ Object.keys(theme).forEach(function (key) {
73098
+ _this[key] = theme[key];
73099
+ });
73100
+ };
73724
73101
  /**
73725
73102
  * Use this method to dispose survey model properly.
73726
73103
  */
@@ -73752,6 +73129,12 @@ var SurveyModel = /** @class */ (function (_super) {
73752
73129
  __decorate([
73753
73130
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73754
73131
  ], SurveyModel.prototype, "showBrandInfo", void 0);
73132
+ __decorate([
73133
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
73134
+ ], SurveyModel.prototype, "cssVariables", void 0);
73135
+ __decorate([
73136
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73137
+ ], SurveyModel.prototype, "backgroundImagePosition", void 0);
73755
73138
  __decorate([
73756
73139
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73757
73140
  ], SurveyModel.prototype, "_isMobile", void 0);
@@ -73873,6 +73256,12 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
73873
73256
  default: "initial",
73874
73257
  choices: ["initial", "random"],
73875
73258
  },
73259
+ {
73260
+ name: "matrixDragHandleArea",
73261
+ visible: false,
73262
+ default: "entireItem",
73263
+ choices: ["entireItem", "icon"]
73264
+ },
73876
73265
  "showPageNumbers:boolean",
73877
73266
  {
73878
73267
  name: "showQuestionNumbers",
@@ -73944,6 +73333,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
73944
73333
  choices: ["onBlur", "onTyping"],
73945
73334
  },
73946
73335
  { name: "autoGrowComment:boolean", default: false },
73336
+ { name: "allowResizeComment:boolean", default: true },
73947
73337
  { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
73948
73338
  { name: "pagePrevText", serializationProperty: "locPagePrevText" },
73949
73339
  { name: "pageNextText", serializationProperty: "locPageNextText" },
@@ -74907,6 +74297,20 @@ var QuestionTextProcessor = /** @class */ (function () {
74907
74297
 
74908
74298
 
74909
74299
 
74300
+ /***/ }),
74301
+
74302
+ /***/ "./src/themes.ts":
74303
+ /*!***********************!*\
74304
+ !*** ./src/themes.ts ***!
74305
+ \***********************/
74306
+ /*! no exports provided */
74307
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
74308
+
74309
+ "use strict";
74310
+ __webpack_require__.r(__webpack_exports__);
74311
+
74312
+
74313
+
74910
74314
  /***/ }),
74911
74315
 
74912
74316
  /***/ "./src/trigger.ts":
@@ -75843,9 +75247,7 @@ var PopupUtils = /** @class */ (function () {
75843
75247
  __webpack_require__.r(__webpack_exports__);
75844
75248
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsivityManager", function() { return ResponsivityManager; });
75845
75249
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalResponsivityManager", function() { return VerticalResponsivityManager; });
75846
- /* harmony import */ var timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! timers */ "./node_modules/timers-browserify/main.js");
75847
- /* harmony import */ var timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(timers__WEBPACK_IMPORTED_MODULE_0__);
75848
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
75250
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
75849
75251
  var __extends = (undefined && undefined.__extends) || (function () {
75850
75252
  var extendStatics = function (d, b) {
75851
75253
  extendStatics = Object.setPrototypeOf ||
@@ -75862,7 +75264,6 @@ var __extends = (undefined && undefined.__extends) || (function () {
75862
75264
  };
75863
75265
  })();
75864
75266
 
75865
-
75866
75267
  var ResponsivityManager = /** @class */ (function () {
75867
75268
  function ResponsivityManager(container, model, itemsSelector, dotsItemSize) {
75868
75269
  var _this = this;
@@ -75884,7 +75285,7 @@ var ResponsivityManager = /** @class */ (function () {
75884
75285
  if (isResetInitialized)
75885
75286
  _this.isInitialized = false;
75886
75287
  else
75887
- Object(timers__WEBPACK_IMPORTED_MODULE_0__["setTimeout"])(function () { _this.process(); }, 1);
75288
+ setTimeout(function () { _this.process(); }, 1);
75888
75289
  };
75889
75290
  if (typeof ResizeObserver !== "undefined") {
75890
75291
  this.resizeObserver = new ResizeObserver(function (_) { return _this.process(); });
@@ -75934,7 +75335,7 @@ var ResponsivityManager = /** @class */ (function () {
75934
75335
  };
75935
75336
  Object.defineProperty(ResponsivityManager.prototype, "isContainerVisible", {
75936
75337
  get: function () {
75937
- return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["isContainerVisible"])(this.container);
75338
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["isContainerVisible"])(this.container);
75938
75339
  },
75939
75340
  enumerable: false,
75940
75341
  configurable: true