survey-react 1.9.89 → 1.9.90

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.90
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":
@@ -6608,12 +6109,16 @@ var DragDropPanelHelperV1 = /** @class */ (function () {
6608
6109
  var destRow = this.dragDropFindRow(dest);
6609
6110
  if (!destRow)
6610
6111
  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
- }
6112
+ // if (settings.supportCreatorV2 && this.panel.isDesignMode) {
6113
+ // if (destRow.elements.length > 1)
6114
+ // return this.dragDropAddTargetToExistingRow(
6115
+ // dragDropInfo,
6116
+ // destRow,
6117
+ // prevRow
6118
+ // );
6119
+ // else
6120
+ // return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
6121
+ // }
6617
6122
  if (!dragDropInfo.target.startWithNewLine)
6618
6123
  return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);
6619
6124
  return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);
@@ -6750,13 +6255,13 @@ var DragDropChoices = /** @class */ (function (_super) {
6750
6255
  _this.doDragOver = function () {
6751
6256
  if (_this.parentElement.getType() === "imagepicker")
6752
6257
  return;
6753
- var node = _this.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6258
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6754
6259
  node.style.cursor = "grabbing";
6755
6260
  };
6756
6261
  _this.doBanDropHere = function () {
6757
6262
  if (_this.parentElement.getType() === "imagepicker")
6758
6263
  return;
6759
- var node = _this.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6264
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".svc-item-value-controls__button");
6760
6265
  node.style.cursor = "not-allowed";
6761
6266
  };
6762
6267
  return _this;
@@ -6821,7 +6326,7 @@ var DragDropChoices = /** @class */ (function (_super) {
6821
6326
  return parent.rankingChoices;
6822
6327
  return parent.visibleChoices;
6823
6328
  };
6824
- DragDropChoices.prototype.isDropTargetValid = function (dropTarget) {
6329
+ DragDropChoices.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
6825
6330
  var choices = this.getVisibleChoices();
6826
6331
  if (this.parentElement.getType() !== "imagepicker") {
6827
6332
  var dropTargetIndex = choices.indexOf(this.dropTarget);
@@ -6882,12 +6387,14 @@ var DragDropChoices = /** @class */ (function (_super) {
6882
6387
  choices.splice(newIndex, 0, this.draggedElement);
6883
6388
  return this.parentElement;
6884
6389
  };
6885
- DragDropChoices.prototype.doClear = function () {
6886
- this.updateVisibleChoices();
6390
+ DragDropChoices.prototype.clear = function () {
6391
+ if (!!this.parentElement) {
6392
+ this.updateVisibleChoices(this.parentElement);
6393
+ }
6394
+ _super.prototype.clear.call(this);
6887
6395
  };
6888
- DragDropChoices.prototype.updateVisibleChoices = function () {
6889
- var parent = this.parentElement;
6890
- this.parentElement.getType() === "ranking" ?
6396
+ DragDropChoices.prototype.updateVisibleChoices = function (parent) {
6397
+ parent.getType() === "ranking" ?
6891
6398
  parent.updateRankingChoices() :
6892
6399
  parent["updateVisibleChoices"]();
6893
6400
  };
@@ -6909,66 +6416,208 @@ var DragDropChoices = /** @class */ (function (_super) {
6909
6416
  __webpack_require__.r(__webpack_exports__);
6910
6417
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return DragDropCore; });
6911
6418
  /* 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);
6419
+ /* harmony import */ var _dom_adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-adapter */ "./src/dragdrop/dom-adapter.ts");
6420
+
6421
+
6422
+ var DragDropCore = /** @class */ (function () {
6423
+ function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6424
+ var _this = this;
6425
+ this.surveyValue = surveyValue;
6426
+ this.creator = creator;
6427
+ this._isBottom = null;
6428
+ this.onGhostPositionChanged = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6429
+ this.onDragStart = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6430
+ this.onDragEnd = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
6431
+ this.onBeforeDrop = this.onDragStart;
6432
+ this.onAfterDrop = this.onDragEnd;
6433
+ this.draggedElement = null;
6434
+ this.dropTarget = null;
6435
+ this.prevDropTarget = null;
6436
+ this.allowDropHere = false;
6437
+ this.banDropHere = function () {
6438
+ _this.allowDropHere = false;
6439
+ _this.doBanDropHere();
6440
+ _this.dropTarget = null;
6441
+ _this.domAdapter.draggedElementShortcut.style.cursor = "not-allowed";
6442
+ _this.isBottom = null;
6443
+ };
6444
+ this.doBanDropHere = function () { };
6445
+ this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap);
6446
+ }
6447
+ Object.defineProperty(DragDropCore.prototype, "isBottom", {
6448
+ get: function () {
6449
+ return !!this._isBottom;
6450
+ },
6451
+ set: function (val) {
6452
+ this._isBottom = val;
6453
+ this.ghostPositionChanged();
6454
+ },
6455
+ enumerable: false,
6456
+ configurable: true
6457
+ });
6458
+ DragDropCore.prototype.ghostPositionChanged = function () {
6459
+ this.onGhostPositionChanged.fire({}, {});
6922
6460
  };
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 __());
6461
+ Object.defineProperty(DragDropCore.prototype, "dropTargetDataAttributeName", {
6462
+ get: function () {
6463
+ return "[data-sv-drop-target-" + this.draggedElementType + "]";
6464
+ },
6465
+ enumerable: false,
6466
+ configurable: true
6467
+ });
6468
+ Object.defineProperty(DragDropCore.prototype, "survey", {
6469
+ get: function () {
6470
+ return this.surveyValue || this.creator.survey;
6471
+ },
6472
+ enumerable: false,
6473
+ configurable: true
6474
+ });
6475
+ DragDropCore.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6476
+ if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
6477
+ this.domAdapter.startDrag(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
6929
6478
  };
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
- };
6479
+ DragDropCore.prototype.dragInit = function (event, draggedElement, parentElement, draggedElementNode) {
6480
+ this.draggedElement = draggedElement;
6481
+ this.parentElement = parentElement;
6482
+ var shortcutText = this.getShortcutText(this.draggedElement);
6483
+ this.domAdapter.draggedElementShortcut = this.createDraggedElementShortcut(shortcutText, draggedElementNode, event);
6484
+ this.onStartDrag();
6485
+ };
6486
+ DragDropCore.prototype.onStartDrag = function () {
6487
+ };
6488
+ DragDropCore.prototype.isDropTargetDoesntChanged = function (newIsBottom) {
6489
+ return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
6490
+ };
6491
+ DragDropCore.prototype.getShortcutText = function (draggedElement) {
6492
+ return draggedElement.shortcutText;
6493
+ };
6494
+ DragDropCore.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
6495
+ var draggedElementShortcut = document.createElement("div");
6496
+ draggedElementShortcut.innerText = text;
6497
+ draggedElementShortcut.className = this.getDraggedElementClass();
6498
+ return draggedElementShortcut;
6499
+ };
6500
+ DragDropCore.prototype.getDraggedElementClass = function () {
6501
+ return "sv-dragged-element-shortcut";
6502
+ };
6503
+ DragDropCore.prototype.doDragOver = function () { };
6504
+ DragDropCore.prototype.afterDragOver = function (dropTargetNode) { };
6505
+ DragDropCore.prototype.findDropTargetNodeFromPoint = function (clientX, clientY) {
6506
+ this.domAdapter.draggedElementShortcut.hidden = true;
6507
+ var dragOverNode = document.elementFromPoint(clientX, clientY);
6508
+ this.domAdapter.draggedElementShortcut.hidden = false;
6509
+ if (!dragOverNode)
6510
+ return null;
6511
+ return this.findDropTargetNodeByDragOverNode(dragOverNode);
6512
+ };
6513
+ DragDropCore.prototype.getDataAttributeValueByNode = function (node) {
6514
+ var _this = this;
6515
+ var datasetName = "svDropTarget";
6516
+ var words = this.draggedElementType.split("-");
6517
+ words.forEach(function (word) {
6518
+ datasetName += _this.capitalizeFirstLetter(word);
6519
+ });
6520
+ return node.dataset[datasetName];
6521
+ };
6522
+ DragDropCore.prototype.getDropTargetByNode = function (dropTargetNode, event) {
6523
+ var dataAttributeValue = this.getDataAttributeValueByNode(dropTargetNode);
6524
+ return this.getDropTargetByDataAttributeValue(dataAttributeValue, dropTargetNode, event);
6525
+ };
6526
+ DragDropCore.prototype.capitalizeFirstLetter = function (string) {
6527
+ return string.charAt(0).toUpperCase() + string.slice(1);
6528
+ };
6529
+ DragDropCore.prototype.calculateVerticalMiddleOfHTMLElement = function (HTMLElement) {
6530
+ var rect = HTMLElement.getBoundingClientRect();
6531
+ return rect.y + rect.height / 2;
6532
+ };
6533
+ DragDropCore.prototype.calculateHorizontalMiddleOfHTMLElement = function (HTMLElement) {
6534
+ var rect = HTMLElement.getBoundingClientRect();
6535
+ return rect.x + rect.width / 2;
6536
+ };
6537
+ DragDropCore.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
6538
+ return false;
6539
+ };
6540
+ DragDropCore.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
6541
+ var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
6542
+ return dropTargetNode;
6543
+ };
6544
+ DragDropCore.prototype.dragOver = function (event) {
6545
+ var dropTargetNode = this.findDropTargetNodeFromPoint(event.clientX, event.clientY);
6546
+ if (!dropTargetNode) {
6547
+ this.banDropHere();
6548
+ return;
6549
+ }
6550
+ this.dropTarget = this.getDropTargetByNode(dropTargetNode, event);
6551
+ var isDropTargetValid = this.isDropTargetValid(this.dropTarget, dropTargetNode);
6552
+ this.doDragOver();
6553
+ if (!isDropTargetValid) {
6554
+ this.banDropHere();
6555
+ return;
6556
+ }
6557
+ var isBottom = this.calculateIsBottom(event.clientY, dropTargetNode);
6558
+ this.allowDropHere = true;
6559
+ if (this.isDropTargetDoesntChanged(isBottom))
6560
+ return;
6561
+ 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
6562
+ this.isBottom = isBottom;
6563
+ this.afterDragOver(dropTargetNode);
6564
+ this.prevDropTarget = this.dropTarget;
6565
+ };
6566
+ DragDropCore.prototype.drop = function () {
6567
+ if (this.allowDropHere) {
6568
+ var fromElement = this.draggedElement.parent;
6569
+ this.onDragStart.fire(this, { fromElement: fromElement, draggedElement: this.draggedElement });
6570
+ var newElement = this.doDrop();
6571
+ this.onDragEnd.fire(this, { fromElement: fromElement, draggedElement: newElement, toElement: this.dropTarget });
6572
+ }
6573
+ };
6574
+ DragDropCore.prototype.clear = function () {
6575
+ this.dropTarget = null;
6576
+ this.draggedElement = null;
6577
+ this.isBottom = null;
6578
+ this.parentElement = null;
6579
+ };
6580
+ return DragDropCore;
6581
+ }());
6937
6582
 
6938
6583
 
6939
6584
 
6585
+ /***/ }),
6586
+
6587
+ /***/ "./src/dragdrop/dom-adapter.ts":
6588
+ /*!*************************************!*\
6589
+ !*** ./src/dragdrop/dom-adapter.ts ***!
6590
+ \*************************************/
6591
+ /*! exports provided: DragDropDOMAdapter */
6592
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
6593
+
6594
+ "use strict";
6595
+ __webpack_require__.r(__webpack_exports__);
6596
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropDOMAdapter", function() { return DragDropDOMAdapter; });
6597
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/utils */ "./src/utils/utils.ts");
6598
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/devices */ "./src/utils/devices.ts");
6599
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
6600
+
6940
6601
 
6941
6602
 
6942
6603
  // WebKit requires cancelable `touchmove` events to be added as early as possible
6943
6604
  // see https://bugs.webkit.org/show_bug.cgi?id=184250
6944
6605
  if (typeof window !== "undefined") {
6945
6606
  window.addEventListener("touchmove", function (event) {
6946
- if (!DragDropCore.PreventScrolling) {
6607
+ if (!DragDropDOMAdapter.PreventScrolling) {
6947
6608
  return;
6948
6609
  }
6949
6610
  // Prevent scrolling
6950
6611
  event.preventDefault();
6951
6612
  }, { passive: false });
6952
6613
  }
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) {
6614
+ var DragDropDOMAdapter = /** @class */ (function () {
6615
+ function DragDropDOMAdapter(dd, longTap) {
6616
+ var _this = this;
6617
+ this.dd = dd;
6618
+ this.longTap = longTap;
6619
+ this.scrollIntervalId = null;
6620
+ this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
6972
6621
  pointerMoveEvent.preventDefault();
6973
6622
  _this.currentX = pointerMoveEvent.pageX;
6974
6623
  _this.currentY = pointerMoveEvent.pageY;
@@ -6979,119 +6628,69 @@ var DragDropCore = /** @class */ (function (_super) {
6979
6628
  document.body.style.setProperty("-webkit-user-select", "");
6980
6629
  _this.stopLongTap();
6981
6630
  };
6982
- _this.stopLongTap = function (e) {
6631
+ this.stopLongTap = function (e) {
6983
6632
  clearTimeout(_this.timeoutID);
6984
6633
  _this.timeoutID = null;
6985
6634
  document.removeEventListener("pointerup", _this.stopLongTap);
6986
6635
  document.removeEventListener("pointermove", _this.stopLongTapIfMoveEnough);
6987
6636
  };
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
- }
6637
+ this.handlePointerCancel = function (event) {
7023
6638
  _this.clear();
7024
6639
  };
7025
- _this.handlePointerCancel = function (event) {
7026
- _this.clear();
7027
- };
7028
- _this.handleEscapeButton = function (event) {
6640
+ this.handleEscapeButton = function (event) {
7029
6641
  if (event.keyCode == 27) {
7030
6642
  _this.clear();
7031
6643
  }
7032
6644
  };
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;
6645
+ this.onContextMenu = function (event) {
6646
+ event.preventDefault();
6647
+ event.stopPropagation();
6648
+ };
6649
+ this.dragOver = function (event) {
6650
+ _this.moveShortcutElement(event);
6651
+ _this.draggedElementShortcut.style.cursor = "grabbing";
6652
+ _this.dd.dragOver(event);
7039
6653
  };
7040
- _this.doBanDropHere = function () { };
7041
- _this.clear = function () {
6654
+ this.clear = function () {
7042
6655
  cancelAnimationFrame(_this.scrollIntervalId);
7043
6656
  document.removeEventListener("pointermove", _this.dragOver);
7044
6657
  document.removeEventListener("pointercancel", _this.handlePointerCancel);
7045
6658
  document.removeEventListener("keydown", _this.handleEscapeButton);
7046
6659
  document.removeEventListener("pointerup", _this.drop);
7047
6660
  _this.draggedElementShortcut.removeEventListener("pointerup", _this.drop);
7048
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
6661
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
7049
6662
  _this.draggedElementShortcut.removeEventListener("contextmenu", _this.onContextMenu);
7050
6663
  }
7051
- _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.removeChild(_this.draggedElementShortcut);
7052
- _this.doClear();
7053
- _this.dropTarget = null;
6664
+ _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.removeChild(_this.draggedElementShortcut);
6665
+ _this.dd.clear();
7054
6666
  _this.draggedElementShortcut = null;
7055
- _this.draggedElement = null;
7056
- _this.isBottom = null;
7057
- _this.parentElement = null;
7058
6667
  _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;
6668
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6669
+ _this.savedTargetNode && _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.removeChild(_this.savedTargetNode);
6670
+ DragDropDOMAdapter.PreventScrolling = false;
7062
6671
  }
7063
6672
  document.body.style.setProperty("touch-action", "");
7064
6673
  document.body.style.setProperty("user-select", "");
7065
6674
  document.body.style.setProperty("-webkit-user-select", "");
7066
6675
  };
7067
- return _this;
6676
+ this.drop = function () {
6677
+ _this.dd.drop();
6678
+ _this.clear();
6679
+ };
6680
+ this.draggedElementShortcut = null;
7068
6681
  }
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", {
6682
+ Object.defineProperty(DragDropDOMAdapter.prototype, "isMicroMovement", {
6683
+ // see https://stackoverflow.com/questions/6042202/how-to-distinguish-mouse-click-and-drag
7080
6684
  get: function () {
7081
- return this.surveyValue || this.creator.survey;
6685
+ var delta = 5;
6686
+ var diffX = Math.abs(this.currentX - this.startX);
6687
+ var diffY = Math.abs(this.currentY - this.startY);
6688
+ return diffX < delta && diffY < delta;
7082
6689
  },
7083
6690
  enumerable: false,
7084
6691
  configurable: true
7085
6692
  });
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) {
6693
+ DragDropDOMAdapter.prototype.startLongTapProcessing = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
7095
6694
  var _this = this;
7096
6695
  if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
7097
6696
  this.startX = event.pageX;
@@ -7105,75 +6704,14 @@ var DragDropCore = /** @class */ (function (_super) {
7105
6704
  _this.savedTargetNode = event.target;
7106
6705
  _this.savedTargetNode.style.cssText =
7107
6706
  "\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);
6707
+ _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.rootElement.appendChild(_this.savedTargetNode);
7109
6708
  }
7110
6709
  _this.stopLongTap();
7111
6710
  }, this.longTap ? 500 : 0);
7112
6711
  document.addEventListener("pointerup", this.stopLongTap);
7113
6712
  document.addEventListener("pointermove", this.stopLongTapIfMoveEnough);
7114
6713
  };
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) {
6714
+ DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7177
6715
  this.doScroll(event.clientY, event.clientX);
7178
6716
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7179
6717
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7184,8 +6722,8 @@ var DragDropCore = /** @class */ (function (_super) {
7184
6722
  shortcutXOffset = shortcutWidth / 2;
7185
6723
  shortcutYOffset = shortcutHeight / 2;
7186
6724
  }
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;
6725
+ 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;
6726
+ 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
6727
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(event.clientY, shortcutHeight, shortcutYOffset);
7190
6728
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(event.clientX, shortcutWidth, shortcutXOffset);
7191
6729
  if (shortcutRightCoordinate >= documentRight) {
@@ -7229,20 +6767,20 @@ var DragDropCore = /** @class */ (function (_super) {
7229
6767
  this.draggedElementShortcut.style.top =
7230
6768
  event.pageY - shortcutYOffset + "px";
7231
6769
  };
7232
- DragDropCore.prototype.getShortcutBottomCoordinate = function (currentY, shortcutHeight, shortcutYOffset) {
6770
+ DragDropDOMAdapter.prototype.getShortcutBottomCoordinate = function (currentY, shortcutHeight, shortcutYOffset) {
7233
6771
  return currentY + shortcutHeight - shortcutYOffset;
7234
6772
  };
7235
- DragDropCore.prototype.getShortcutRightCoordinate = function (currentX, shortcutWidth, shortcutXOffset) {
6773
+ DragDropDOMAdapter.prototype.getShortcutRightCoordinate = function (currentX, shortcutWidth, shortcutXOffset) {
7236
6774
  return currentX + shortcutWidth - shortcutXOffset;
7237
6775
  };
7238
- DragDropCore.prototype.doScroll = function (clientY, clientX) {
6776
+ DragDropDOMAdapter.prototype.doScroll = function (clientY, clientX) {
7239
6777
  var _this = this;
7240
6778
  cancelAnimationFrame(this.scrollIntervalId);
7241
6779
  var startScrollBoundary = 50;
7242
6780
  this.draggedElementShortcut.hidden = true;
7243
6781
  var dragOverNode = document.elementFromPoint(clientX, clientY);
7244
6782
  this.draggedElementShortcut.hidden = false;
7245
- var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["findScrollableParent"])(dragOverNode);
6783
+ var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
7246
6784
  var top;
7247
6785
  var bottom;
7248
6786
  var left;
@@ -7276,54 +6814,37 @@ var DragDropCore = /** @class */ (function (_super) {
7276
6814
  };
7277
6815
  this.scrollIntervalId = requestAnimationFrame(repeat);
7278
6816
  };
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);
6817
+ DragDropDOMAdapter.prototype.doStartDrag = function (event, draggedElement, parentElement, draggedElementNode) {
6818
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6819
+ DragDropDOMAdapter.PreventScrolling = true;
6820
+ }
6821
+ if (event.which === 3)
6822
+ return; //right mouse btn
6823
+ this.dd.dragInit(event, draggedElement, parentElement, draggedElementNode);
6824
+ document.body.append(this.draggedElementShortcut);
6825
+ this.moveShortcutElement(event);
6826
+ document.addEventListener("pointermove", this.dragOver);
6827
+ document.addEventListener("pointercancel", this.handlePointerCancel);
6828
+ document.addEventListener("keydown", this.handleEscapeButton);
6829
+ document.addEventListener("pointerup", this.drop);
6830
+ if (!_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6831
+ this.draggedElementShortcut.addEventListener("pointerup", this.drop);
6832
+ }
6833
+ else {
6834
+ this.draggedElementShortcut.addEventListener("contextmenu", this.onContextMenu);
6835
+ }
7310
6836
  };
7311
- DragDropCore.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7312
- var dropTargetNode = dragOverNode.closest(this.dropTargetDataAttributeName);
7313
- return dropTargetNode;
6837
+ DragDropDOMAdapter.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6838
+ if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
6839
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6840
+ this.startLongTapProcessing(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
6841
+ return;
6842
+ }
6843
+ this.doStartDrag(event, draggedElement, parentElement, draggedElementNode);
7314
6844
  };
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"]));
6845
+ DragDropDOMAdapter.PreventScrolling = false;
6846
+ return DragDropDOMAdapter;
6847
+ }());
7327
6848
 
7328
6849
 
7329
6850
 
@@ -7381,18 +6902,20 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7381
6902
  // draggedElementShortcut.innerText = text;
7382
6903
  draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 1000;\n font-family: var(--font-family, $font-family);\n ";
7383
6904
  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;
6905
+ if (!!draggedElementNode) {
6906
+ var row = (draggedElementNode
6907
+ .closest("[data-sv-drop-target-matrix-row]"));
6908
+ var clone = (row.cloneNode(isDeepClone));
6909
+ 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 ";
6910
+ clone.classList.remove("sv-matrix__drag-drop--moveup");
6911
+ clone.classList.remove("sv-matrix__drag-drop--movedown");
6912
+ this.draggedElement.isDragDropMoveDown = false;
6913
+ this.draggedElement.isDragDropMoveUp = false;
6914
+ draggedElementShortcut.appendChild(clone);
6915
+ var rect = draggedElementNode.getBoundingClientRect();
6916
+ draggedElementShortcut.shortcutXOffset = event.clientX - rect.x;
6917
+ draggedElementShortcut.shortcutYOffset = event.clientY - rect.y;
6918
+ }
7396
6919
  //this.isBottom = null;
7397
6920
  var renderedRows = this.parentElement.renderedTable.rows;
7398
6921
  renderedRows.forEach(function (renderedRow, index) {
@@ -7421,7 +6944,7 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7421
6944
  dropTargetRenderedRow = matrix.renderedTable.rows.filter(function (renderedRow) { return renderedRow.row.id === dataAttributeValue; })[0];
7422
6945
  return dropTargetRenderedRow.row;
7423
6946
  };
7424
- DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget) {
6947
+ DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
7425
6948
  return true;
7426
6949
  };
7427
6950
  DragDropMatrixRows.prototype.calculateIsBottom = function (clientY) {
@@ -7471,10 +6994,15 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7471
6994
  // }
7472
6995
  _super.prototype.ghostPositionChanged.call(this);
7473
6996
  };
7474
- DragDropMatrixRows.prototype.doClear = function () {
6997
+ DragDropMatrixRows.prototype.clear = function () {
6998
+ var renderedRows = this.parentElement.renderedTable.rows;
6999
+ renderedRows.forEach(function (renderedRow) {
7000
+ renderedRow.isGhostRow = false;
7001
+ });
7475
7002
  this.parentElement.clearOnDrop();
7476
7003
  this.fromIndex = null;
7477
7004
  this.toIndex = null;
7005
+ _super.prototype.clear.call(this);
7478
7006
  };
7479
7007
  return DragDropMatrixRows;
7480
7008
  }(_core__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]));
@@ -7520,7 +7048,7 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7520
7048
  var _this = _super !== null && _super.apply(this, arguments) || this;
7521
7049
  _this.isDragOverRootNode = false;
7522
7050
  _this.doDragOver = function () {
7523
- var node = _this.draggedElementShortcut.querySelector(".sv-ranking-item");
7051
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7524
7052
  node.style.cursor = "grabbing";
7525
7053
  };
7526
7054
  _this.doBanDropHere = function () {
@@ -7528,17 +7056,13 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7528
7056
  _this.allowDropHere = true;
7529
7057
  return;
7530
7058
  }
7531
- var node = _this.draggedElementShortcut.querySelector(".sv-ranking-item");
7059
+ var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7532
7060
  node.style.cursor = "not-allowed";
7533
7061
  };
7534
7062
  _this.doDrop = function () {
7535
7063
  _this.parentElement.setValue();
7536
7064
  return _this.parentElement;
7537
7065
  };
7538
- _this.doClear = function () {
7539
- _this.parentElement.dropTargetNodeMove = null;
7540
- _this.parentElement.updateRankingChoices(true);
7541
- };
7542
7066
  return _this;
7543
7067
  }
7544
7068
  Object.defineProperty(DragDropRankingChoices.prototype, "draggedElementType", {
@@ -7632,439 +7156,22 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7632
7156
  DragDropRankingChoices.prototype.updateDraggedElementShortcut = function (newIndex) {
7633
7157
  var newIndexText = newIndex + "";
7634
7158
  // TODO should avoid direct DOM manipulation, do through the frameworks instead
7635
- var indexNode = this.draggedElementShortcut.querySelector(".sv-ranking-item__index");
7159
+ var indexNode = this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item__index");
7636
7160
  indexNode.innerText = newIndexText;
7637
7161
  };
7638
7162
  DragDropRankingChoices.prototype.ghostPositionChanged = function () {
7639
7163
  this.parentElement.currentDropTarget = this.draggedElement;
7640
7164
  _super.prototype.ghostPositionChanged.call(this);
7641
7165
  };
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";
7166
+ DragDropRankingChoices.prototype.clear = function () {
7167
+ if (!!this.parentElement) {
7168
+ this.parentElement.dropTargetNodeMove = null;
7169
+ this.parentElement.updateRankingChoices(true);
8058
7170
  }
8059
- return element;
7171
+ _super.prototype.clear.call(this);
8060
7172
  };
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"]));
7173
+ return DragDropRankingChoices;
7174
+ }(_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]));
8068
7175
 
8069
7176
 
8070
7177
 
@@ -8131,6 +7238,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8131
7238
  _this.itemsSettings = { skip: 0, take: 0, totalCount: 0, items: [] };
8132
7239
  _this.isRunningLoadQuestionChoices = false;
8133
7240
  _this.popupCssClasses = "sv-single-select-list";
7241
+ _this.listModelFilterStringChanged = function (newValue) {
7242
+ if (_this.filterString !== newValue) {
7243
+ _this.filterString = newValue;
7244
+ }
7245
+ };
8134
7246
  question.onPropertyChanged.add(function (sender, options) {
8135
7247
  if (options.name == "value") {
8136
7248
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
@@ -8273,8 +7385,9 @@ var DropdownListModel = /** @class */ (function (_super) {
8273
7385
  _this._popupModel.toggleVisibility();
8274
7386
  };
8275
7387
  }
8276
- var res = new _list__WEBPACK_IMPORTED_MODULE_2__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, undefined, this.listElementId);
7388
+ var res = new _list__WEBPACK_IMPORTED_MODULE_2__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8277
7389
  res.renderElements = false;
7390
+ res.forceShowFilter = true;
8278
7391
  res.areSameItemsCallback = function (item1, item2) {
8279
7392
  return item1 === item2;
8280
7393
  };
@@ -8607,11 +7720,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8607
7720
  event.stopPropagation();
8608
7721
  };
8609
7722
  DropdownListModel.prototype.onFocus = function (event) {
8610
- this.setInputStringFromSelectedItem();
7723
+ this.setInputStringFromSelectedItem(this.question.selectedItem);
8611
7724
  };
8612
7725
  DropdownListModel.prototype.setInputStringFromSelectedItem = function (newValue) {
8613
- if (this.question.searchEnabled) {
8614
- this.applyInputString(newValue || this.question.selectedItem);
7726
+ if (this.question.searchEnabled && !!newValue) {
7727
+ this.applyInputString(newValue);
8615
7728
  }
8616
7729
  else {
8617
7730
  this.inputString = null;
@@ -8783,7 +7896,9 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8783
7896
  }
8784
7897
  };
8785
7898
  }
8786
- return new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, undefined, this.listElementId);
7899
+ var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
7900
+ res.forceShowFilter = true;
7901
+ return res;
8787
7902
  };
8788
7903
  DropdownMultiSelectListModel.prototype.resetFilterString = function () {
8789
7904
  _super.prototype.resetFilterString.call(this);
@@ -9215,7 +8330,7 @@ __webpack_require__.r(__webpack_exports__);
9215
8330
  /*!*************************************!*\
9216
8331
  !*** ./src/entries/chunks/model.ts ***!
9217
8332
  \*************************************/
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 */
8333
+ /*! 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
8334
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9220
8335
 
9221
8336
  "use strict";
@@ -9651,8 +8766,8 @@ __webpack_require__.r(__webpack_exports__);
9651
8766
 
9652
8767
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_82__["defaultV2ThemeName"]; });
9653
8768
 
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"]; });
8769
+ /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
8770
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_83__["DragDropCore"]; });
9656
8771
 
9657
8772
  /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
9658
8773
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_84__["DragDropChoices"]; });
@@ -9661,7 +8776,7 @@ __webpack_require__.r(__webpack_exports__);
9661
8776
  // import "../../main.scss";
9662
8777
  //import "../../modern.scss";
9663
8778
  var Version;
9664
- Version = "" + "1.9.89";
8779
+ Version = "" + "1.9.90";
9665
8780
  function checkLibraryVersion(ver, libraryName) {
9666
8781
  if (Version != ver) {
9667
8782
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9766,7 +8881,7 @@ function checkLibraryVersion(ver, libraryName) {
9766
8881
  /*!**************************************!*\
9767
8882
  !*** ./src/entries/core-wo-model.ts ***!
9768
8883
  \**************************************/
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 */
8884
+ /*! 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
8885
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9771
8886
 
9772
8887
  "use strict";
@@ -10122,7 +9237,7 @@ __webpack_require__.r(__webpack_exports__);
10122
9237
 
10123
9238
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
10124
9239
 
10125
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
9240
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
10126
9241
 
10127
9242
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
10128
9243
 
@@ -10203,7 +9318,7 @@ __webpack_require__.r(__webpack_exports__);
10203
9318
  /*!*****************************!*\
10204
9319
  !*** ./src/entries/core.ts ***!
10205
9320
  \*****************************/
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 */
9321
+ /*! 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
9322
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10208
9323
 
10209
9324
  "use strict";
@@ -10559,7 +9674,7 @@ __webpack_require__.r(__webpack_exports__);
10559
9674
 
10560
9675
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
10561
9676
 
10562
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
9677
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
10563
9678
 
10564
9679
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
10565
9680
 
@@ -11000,7 +10115,7 @@ __webpack_require__.r(__webpack_exports__);
11000
10115
  /*!******************************!*\
11001
10116
  !*** ./src/entries/react.ts ***!
11002
10117
  \******************************/
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 */
10118
+ /*! 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
10119
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11005
10120
 
11006
10121
  "use strict";
@@ -11356,7 +10471,7 @@ __webpack_require__.r(__webpack_exports__);
11356
10471
 
11357
10472
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultV2ThemeName"]; });
11358
10473
 
11359
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropSurveyElements", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropSurveyElements"]; });
10474
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropCore"]; });
11360
10475
 
11361
10476
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
11362
10477
 
@@ -17379,6 +16494,7 @@ __webpack_require__.r(__webpack_exports__);
17379
16494
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
17380
16495
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
17381
16496
  /* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./question_baseselect */ "./src/question_baseselect.ts");
16497
+ /* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./question */ "./src/question.ts");
17382
16498
  var __extends = (undefined && undefined.__extends) || (function () {
17383
16499
  var extendStatics = function (d, b) {
17384
16500
  extendStatics = Object.setPrototypeOf ||
@@ -17408,6 +16524,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
17408
16524
 
17409
16525
 
17410
16526
 
16527
+
17411
16528
  /**
17412
16529
  * Array of ItemValue is used in checkox, dropdown and radiogroup choices, matrix columns and rows.
17413
16530
  * It has two main properties: value and text. If text is empty, value is used for displaying.
@@ -17823,10 +16940,10 @@ var ItemValue = /** @class */ (function (_super) {
17823
16940
  configurable: true
17824
16941
  });
17825
16942
  ItemValue.prototype.getComponent = function () {
17826
- if (this._locOwner instanceof _question_baseselect__WEBPACK_IMPORTED_MODULE_7__["QuestionSelectBase"]) {
16943
+ if (this._locOwner instanceof _question__WEBPACK_IMPORTED_MODULE_8__["Question"]) {
17827
16944
  return this.componentValue || this._locOwner.itemComponent;
17828
16945
  }
17829
- return "";
16946
+ return this.componentValue;
17830
16947
  };
17831
16948
  ItemValue.prototype.setComponent = function (val) {
17832
16949
  this.componentValue = val;
@@ -19227,7 +18344,7 @@ var JsonMetadata = /** @class */ (function () {
19227
18344
  }
19228
18345
  }
19229
18346
  return {
19230
- $id: "#locstring",
18347
+ $id: "locstring",
19231
18348
  type: "object",
19232
18349
  properties: props
19233
18350
  };
@@ -19291,10 +18408,10 @@ var JsonMetadata = /** @class */ (function () {
19291
18408
  if (prop.baseClassName == "question") {
19292
18409
  usedClasses.push(this.findClass("panel"));
19293
18410
  }
19294
- res.items = [];
18411
+ res.items = { anyOf: [] };
19295
18412
  for (var i = 0; i < usedClasses.length; i++) {
19296
18413
  var className = usedClasses[i].name;
19297
- res.items.push({ $ref: this.getChemeRefName(className, isRoot) });
18414
+ res.items.anyOf.push({ $ref: this.getChemeRefName(className, isRoot) });
19298
18415
  this.generateChemaClass(className, schemaDef, false);
19299
18416
  }
19300
18417
  }
@@ -19313,8 +18430,7 @@ var JsonMetadata = /** @class */ (function () {
19313
18430
  if (hasParent) {
19314
18431
  this.generateChemaClass(classInfo.parentName, schemaDef, isRoot);
19315
18432
  }
19316
- var id = isRoot ? className : "#" + className;
19317
- var res = { type: "object", $id: id };
18433
+ var res = { type: "object", $id: className };
19318
18434
  schemaDef[className] = res;
19319
18435
  var chemaProps = { properties: {} };
19320
18436
  this.generateSchemaProperties(classInfo, chemaProps, schemaDef, isRoot);
@@ -19894,7 +19010,7 @@ var ListModel = /** @class */ (function (_super) {
19894
19010
  }
19895
19011
  };
19896
19012
  ListModel.prototype.onSet = function () {
19897
- this.showFilter = this.searchEnabled && (this.actions || []).length > ListModel.MINELEMENTCOUNT;
19013
+ this.showFilter = this.searchEnabled && (this.forceShowFilter || (this.actions || []).length > ListModel.MINELEMENTCOUNT);
19898
19014
  _super.prototype.onSet.call(this);
19899
19015
  };
19900
19016
  ListModel.prototype.getDefaultCssClasses = function () {
@@ -20080,6 +19196,9 @@ var ListModel = /** @class */ (function (_super) {
20080
19196
  __decorate([
20081
19197
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
20082
19198
  ], ListModel.prototype, "showFilter", void 0);
19199
+ __decorate([
19200
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
19201
+ ], ListModel.prototype, "forceShowFilter", void 0);
20083
19202
  __decorate([
20084
19203
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
20085
19204
  ], ListModel.prototype, "isExpanded", void 0);
@@ -22215,7 +21334,7 @@ var greekSurveyStrings = {
22215
21334
  noneItemText: "Κανένας",
22216
21335
  selectAllItemText: "Επιλογή όλων",
22217
21336
  progressText: "Σελίδα {0} από {1}",
22218
- // indexText: "{0} of {1}",
21337
+ indexText: "{0} από {1}",
22219
21338
  panelDynamicProgressText: "Εγγραφή {0} από {1}",
22220
21339
  questionsProgressText: "Απαντήθηκαν {0} / {1} ερωτήσεις",
22221
21340
  emptySurvey: "Δεν υπάρχει καμία ορατή σελίδα ή ορατή ερώτηση σε αυτό το ερωτηματολόγιο.",
@@ -22223,15 +21342,15 @@ var greekSurveyStrings = {
22223
21342
  completingSurveyBefore: "Τα αρχεία μας δείχνουν ότι έχετε ήδη ολοκληρώσει αυτήν την έρευνα.",
22224
21343
  loadingSurvey: "Το ερωτηματολόγιο φορτώνεται απο το διακομιστή...",
22225
21344
  placeholder: "Επιλέξτε...",
22226
- // ratingOptionsCaption: "Tap to rate here...",
22227
- value: "αξία",
21345
+ ratingOptionsCaption: "Πατήστε για να βαθμολογήσετε εδώ...",
21346
+ value: "τιμή",
22228
21347
  requiredError: "Παρακαλώ απαντήστε στην ερώτηση.",
22229
21348
  requiredErrorInPanel: "Απαντήστε σε τουλάχιστον μία ερώτηση.",
22230
- requiredInAllRowsError: "Παρακαλώ απαντήστε στις ερωτήσεις σε όλες τις γραμμές.",
21349
+ requiredInAllRowsError: "Παρακαλώ απαντήστε τις ερωτήσεις σε όλες τις γραμμές.",
22231
21350
  numericError: "Η τιμή πρέπει να είναι αριθμητική.",
22232
- // minError: "The value should not be less than {0}",
22233
- // maxError: "The value should not be greater than {0}",
22234
- textMinLength: "Παρακαλώ συμπληρώστε τουλάχιστον {0} σύμβολα.",
21351
+ minError: "Η τιμή δεν πρέπει να είναι μικρότερη από {0}",
21352
+ maxError: "Η τιμή δεν πρέπει να είναι μεγαλύτερη από {0}",
21353
+ textMinLength: "Παρακαλώ συμπληρώστε τουλάχιστον {0} χαρακτήρες.",
22235
21354
  textMaxLength: "Εισαγάγετε λιγότερους από {0} χαρακτήρες.",
22236
21355
  textMinMaxLength: "Εισαγάγετε περισσότερους από {0} και λιγότερους από {1} χαρακτήρες.",
22237
21356
  minRowCountError: "Παρακαλώ συμπληρώστε τουλάχιστον {0} γραμμές.",
@@ -22244,25 +21363,25 @@ var greekSurveyStrings = {
22244
21363
  invalidExpression: "Η έκφραση: {0} θα πρέπει να επιστρέψει 'true'.",
22245
21364
  urlRequestError: "Η αίτηση επέστρεψε σφάλμα '{0}'. {1}",
22246
21365
  urlGetChoicesError: "Η αίτηση επέστρεψε κενά δεδομένα ή η ιδιότητα 'μονοπάτι/path' είναι εσφαλμένη",
22247
- exceedMaxSize: "Το μέγεθος δεν μπορεί να υπερβαίνει τα {0}.",
21366
+ exceedMaxSize: "Το μέγεθος του αρχείου δεν μπορεί να υπερβαίνει τα {0}.",
22248
21367
  otherRequiredError: "Παρακαλώ συμπληρώστε την τιμή για το πεδίο 'άλλο'.",
22249
- uploadingFile: "Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε καποια δευτερόλεπτα και δοκιμάστε ξανά.",
21368
+ uploadingFile: "Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε μερικά δευτερόλεπτα και δοκιμάστε ξανά.",
22250
21369
  loadingFile: "Φόρτωση...",
22251
21370
  chooseFile: "Επιλογή αρχείων ...",
22252
21371
  noFileChosen: "Δεν έχει επιλεγεί αρχείο",
22253
- // fileDragAreaPlaceholder: "Drop a file here or click the button below to load the file.",
21372
+ fileDragAreaPlaceholder: "Αποθέστε το αρχείο σας εδώ ή κάντε κλικ στο κουμπί παρακάτω για να φορτώσετε το αρχείο.",
22254
21373
  confirmDelete: "Θέλετε να διαγράψετε την εγγραφή;",
22255
21374
  keyDuplicationError: "Αυτή η τιμή πρέπει να είναι μοναδική.",
22256
21375
  addColumn: "Προσθήκη στήλης",
22257
21376
  addRow: "Προσθήκη γραμμής",
22258
21377
  removeRow: "Αφαίρεση",
22259
- // emptyRowsText: "There are no rows.",
22260
- addPanel: "Προσθεσε νεο",
22261
- removePanel: "Αφαιρώ",
21378
+ emptyRowsText: "Δεν υπάρχουν εγγραφές.",
21379
+ addPanel: "Προσθέστε νέο",
21380
+ removePanel: "Αφαίρεση",
22262
21381
  choices_Item: "είδος",
22263
21382
  matrix_column: "Στήλη",
22264
- matrix_row: "Σειρά",
22265
- // multipletext_itemname: "text",
21383
+ matrix_row: "Γραμμή",
21384
+ multipletext_itemname: "κείμενο",
22266
21385
  savingData: "Τα αποτελέσματα αποθηκεύονται στον διακομιστή ...",
22267
21386
  savingDataError: "Παρουσιάστηκε σφάλμα και δεν ήταν δυνατή η αποθήκευση των αποτελεσμάτων.",
22268
21387
  savingDataSuccess: "Τα αποτελέσματα αποθηκεύτηκαν με επιτυχία!",
@@ -22275,21 +21394,22 @@ var greekSurveyStrings = {
22275
21394
  timerLimitAll: "Έχετε δαπανήσει {0} από {1} σε αυτήν τη σελίδα και {2} από {3} συνολικά.",
22276
21395
  timerLimitPage: "Έχετε ξοδέψει {0} από {1} σε αυτήν τη σελίδα.",
22277
21396
  timerLimitSurvey: "Έχετε ξοδέψει {0} από {1} συνολικά.",
22278
- clearCaption: "Σαφή",
22279
- // signaturePlaceHolder: "Sign here",
22280
- chooseFileCaption: "Επιλέξτε το αρχείο",
22281
- removeFileCaption: "Καταργήστε αυτό το αρχείο",
22282
- booleanCheckedLabel: "Ναί",
22283
- booleanUncheckedLabel: "Οχι",
22284
- confirmRemoveFile: "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το αρχείο: {0};",
22285
- confirmRemoveAllFiles: "Είστε βέβαιοι ότι θέλετε να καταργήσετε όλα τα αρχεία;",
21397
+ clearCaption: "Εκκαθάριση",
21398
+ signaturePlaceHolder: "Υπογράψτε εδώ",
21399
+ chooseFileCaption: "Επιλέξτε αρχείο",
21400
+ removeFileCaption: "Διαγράψτε αυτό το αρχείο",
21401
+ booleanCheckedLabel: "Ναι",
21402
+ booleanUncheckedLabel: "Όχι",
21403
+ confirmRemoveFile: "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αρχείο: {0};",
21404
+ confirmRemoveAllFiles: "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα αρχεία;",
22286
21405
  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"
21406
+ modalCancelButtonText: "Άκυρο",
21407
+ modalApplyButtonText: "Εφαρμογή",
21408
+ filterStringPlaceholder: "Πληκτρολογήστε για αναζήτηση...",
21409
+ emptyMessage: "Δεν υπάρχουν δεδομένα προς εμφάνιση",
21410
+ noEntriesText: "Δεν υπάρχουν ακόμη εγγραφές.\nΚάντε κλικ στο κουμπί παρακάτω για να προσθέσετε μια νέα εγγραφή.",
21411
+ more: "Περισσότερα",
21412
+ tagboxDoneButtonCaption: "ΟΚ"
22293
21413
  };
22294
21414
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].locales["gr"] = greekSurveyStrings;
22295
21415
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["gr"] = "ελληνικά";
@@ -24011,7 +23131,7 @@ var polishSurveyStrings = {
24011
23131
  timerLimitAll: "Spędziłeś {0} z {1} na tej stronie a w sumie {2} z {3}.",
24012
23132
  timerLimitPage: "Spędziłeś {0} z {1} na tej stronie",
24013
23133
  timerLimitSurvey: "Spędziłeś {0} z {1}.",
24014
- clearCaption: "Jasne",
23134
+ clearCaption: "Wyczyść",
24015
23135
  signaturePlaceHolder: "Podpisz tutaj",
24016
23136
  chooseFileCaption: "Wybierz plik",
24017
23137
  removeFileCaption: "Usuń ten plik",
@@ -27254,6 +26374,9 @@ var QuestionRowModel = /** @class */ (function (_super) {
27254
26374
  .toString();
27255
26375
  };
27256
26376
  QuestionRowModel.rowCounter = 100;
26377
+ __decorate([
26378
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
26379
+ ], QuestionRowModel.prototype, "dragTypeOverMe", void 0);
27257
26380
  return QuestionRowModel;
27258
26381
  }(_base__WEBPACK_IMPORTED_MODULE_2__["Base"]));
27259
26382
 
@@ -27937,7 +27060,8 @@ var PanelModelBase = /** @class */ (function (_super) {
27937
27060
  return null;
27938
27061
  };
27939
27062
  /**
27940
- * Sets focus on the input of the first question in this panel/page.
27063
+ * Focuses the first question in this panel/page.
27064
+ * @see focusFirstErrorQuestion
27941
27065
  */
27942
27066
  PanelModelBase.prototype.focusFirstQuestion = function () {
27943
27067
  var q = this.getFirstQuestionToFocus();
@@ -27946,8 +27070,9 @@ var PanelModelBase = /** @class */ (function (_super) {
27946
27070
  }
27947
27071
  };
27948
27072
  /**
27949
- * Sets focus on the input of the first question in this panel/page that has an error.
27073
+ * Focuses the first question with a validation error in this panel/page.
27950
27074
  * @see validate
27075
+ * @see focusFirstQuestion
27951
27076
  */
27952
27077
  PanelModelBase.prototype.focusFirstErrorQuestion = function () {
27953
27078
  var q = this.getFirstQuestionToFocus(true);
@@ -30713,7 +29838,7 @@ var PopupModalViewModel = /** @class */ (function (_super) {
30713
29838
  id: "apply",
30714
29839
  visibleIndex: 20,
30715
29840
  title: this.applyButtonText,
30716
- innerCss: "sv-popup__body-footer-item sv-popup__button sv-popup__button--apply",
29841
+ innerCss: "sv-popup__body-footer-item sv-popup__button sv-popup__button--apply sd-btn sd-btn--action",
30717
29842
  action: function () { _this.apply(); }
30718
29843
  });
30719
29844
  };
@@ -31161,14 +30286,14 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31161
30286
  this.footerToolbarValue = new _actions_container__WEBPACK_IMPORTED_MODULE_3__["ActionContainer"]();
31162
30287
  this.footerToolbar.updateCallback = function (isResetInitialized) {
31163
30288
  _this.footerToolbarValue.actions.forEach(function (action) { return action.cssClasses = {
31164
- item: "sv-popup__body-footer-item sv-popup__button"
30289
+ item: "sv-popup__body-footer-item sv-popup__button sd-btn"
31165
30290
  }; });
31166
30291
  };
31167
30292
  var footerActions = [{
31168
30293
  id: "cancel",
31169
30294
  visibleIndex: 10,
31170
30295
  title: this.cancelButtonText,
31171
- innerCss: "sv-popup__button--cancel",
30296
+ innerCss: "sv-popup__button--cancel sd-btn",
31172
30297
  action: function () { _this.cancel(); }
31173
30298
  }];
31174
30299
  footerActions = this.model.updateFooterActions(footerActions);
@@ -33079,6 +32204,13 @@ var Question = /** @class */ (function (_super) {
33079
32204
  enumerable: false,
33080
32205
  configurable: true
33081
32206
  });
32207
+ Object.defineProperty(Question.prototype, "allowResizeComment", {
32208
+ get: function () {
32209
+ return this.survey && this.survey.allowResizeComment;
32210
+ },
32211
+ enumerable: false,
32212
+ configurable: true
32213
+ });
33082
32214
  Object.defineProperty(Question.prototype, "questionValue", {
33083
32215
  get: function () {
33084
32216
  return this.getPropertyValue("value");
@@ -33312,7 +32444,7 @@ var Question = /** @class */ (function (_super) {
33312
32444
  });
33313
32445
  Object.defineProperty(Question.prototype, "resizeStyle", {
33314
32446
  get: function () {
33315
- return this.autoGrowComment ? "none" : "both";
32447
+ return this.allowResizeComment ? "both" : "none";
33316
32448
  },
33317
32449
  enumerable: false,
33318
32450
  configurable: true
@@ -35001,7 +34133,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35001
34133
  }
35002
34134
  };
35003
34135
  QuestionSelectBase.prototype.setNewValue = function (newValue) {
35004
- this.resetSelectedItemValues();
35005
34136
  newValue = this.valueFromData(newValue);
35006
34137
  if ((!this.choicesByUrl.isRunning &&
35007
34138
  !this.choicesByUrl.isWaitingForParameters) ||
@@ -35093,9 +34224,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35093
34224
  });
35094
34225
  }
35095
34226
  };
35096
- QuestionSelectBase.prototype.resetSelectedItemValues = function () {
35097
- this.selectedItemValues = null;
35098
- };
35099
34227
  QuestionSelectBase.prototype.hasUnknownValue = function (val, includeOther, isFilteredChoices, checkEmptyValue) {
35100
34228
  if (includeOther === void 0) { includeOther = false; }
35101
34229
  if (isFilteredChoices === void 0) { isFilteredChoices = true; }
@@ -37749,7 +36877,6 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37749
36877
  * Specifies the visible height of the comment area, measured in lines.
37750
36878
  *
37751
36879
  * The value of this property is passed on to the `rows` attribute of the underlying `<textarea>` element.
37752
- * @see cols
37753
36880
  */
37754
36881
  get: function () {
37755
36882
  return this.getPropertyValue("rows");
@@ -37761,12 +36888,6 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37761
36888
  configurable: true
37762
36889
  });
37763
36890
  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
36891
  get: function () {
37771
36892
  return this.getPropertyValue("cols");
37772
36893
  },
@@ -37796,6 +36917,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37796
36917
  * Specifies whether the comment area automatically increases its height to accomodate multi-line content.
37797
36918
  *
37798
36919
  * Default value: `false` (inherited from `SurveyModel`'s [`autoGrowComment`](https://surveyjs.io/form-library/documentation/surveymodel#autoGrowComment) property)
36920
+ * @see allowResize
37799
36921
  */
37800
36922
  get: function () {
37801
36923
  return this.getPropertyValue("autoGrow") || (this.survey && this.survey.autoGrowComment);
@@ -37806,6 +36928,29 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37806
36928
  enumerable: false,
37807
36929
  configurable: true
37808
36930
  });
36931
+ Object.defineProperty(QuestionCommentModel.prototype, "allowResize", {
36932
+ /**
36933
+ * Specifies whether to display a resize handle for the comment area.
36934
+ *
36935
+ * Default value: `true` (inherited from `SurveyModel`'s [`allowResizeComment`](https://surveyjs.io/form-library/documentation/surveymodel#allowResizeComment) property)
36936
+ * @see autoGrow
36937
+ */
36938
+ get: function () {
36939
+ return this.getPropertyValue("allowResize") && (this.survey && this.survey.allowResizeComment);
36940
+ },
36941
+ set: function (val) {
36942
+ this.setPropertyValue("allowResize", val);
36943
+ },
36944
+ enumerable: false,
36945
+ configurable: true
36946
+ });
36947
+ Object.defineProperty(QuestionCommentModel.prototype, "resizeStyle", {
36948
+ get: function () {
36949
+ return this.allowResize ? "both" : "none";
36950
+ },
36951
+ enumerable: false,
36952
+ configurable: true
36953
+ });
37809
36954
  QuestionCommentModel.prototype.getType = function () {
37810
36955
  return "comment";
37811
36956
  };
@@ -37861,7 +37006,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37861
37006
 
37862
37007
  _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("comment", [
37863
37008
  { name: "maxLength:number", default: -1 },
37864
- { name: "cols:number", default: 50 },
37009
+ { name: "cols:number", default: 50, visible: false, isSerializable: false },
37865
37010
  { name: "rows:number", default: 4 },
37866
37011
  { name: "placeholder",
37867
37012
  alternativeName: "placeHolder",
@@ -37872,6 +37017,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("comment", [
37872
37017
  choices: ["default", "onBlur", "onTyping"],
37873
37018
  },
37874
37019
  { name: "autoGrow:boolean" },
37020
+ { name: "allowResize:boolean", default: true },
37875
37021
  { name: "acceptCarriageReturn:boolean", default: true, visible: false }
37876
37022
  ], function () {
37877
37023
  return new QuestionCommentModel("");
@@ -38179,7 +37325,11 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
38179
37325
  if (!this.data)
38180
37326
  return;
38181
37327
  var newName = this.convertDataName(name);
38182
- this.data.setValue(newName, this.convertDataValue(name, newValue), locNotification, allowNotifyValueChanged);
37328
+ var valueForSurvey = this.convertDataValue(name, newValue);
37329
+ if (this.valueToDataCallback) {
37330
+ valueForSurvey = this.valueToDataCallback(valueForSurvey);
37331
+ }
37332
+ this.data.setValue(newName, valueForSurvey, locNotification, allowNotifyValueChanged);
38183
37333
  this.updateIsAnswered();
38184
37334
  this.updateElementCss();
38185
37335
  if (!!this.customQuestion) {
@@ -41006,9 +40156,27 @@ var ImageItemValue = /** @class */ (function (_super) {
41006
40156
  ImageItemValue.prototype.onErrorHandler = function () {
41007
40157
  this.contentNotLoaded = true;
41008
40158
  };
40159
+ Object.defineProperty(ImageItemValue.prototype, "contentNotLoaded", {
40160
+ get: function () {
40161
+ return this.locOwner instanceof QuestionImagePickerModel && this.locOwner.contentMode == "video" ? this.videoNotLoaded : this.imageNotLoaded;
40162
+ },
40163
+ set: function (val) {
40164
+ if (this.locOwner instanceof QuestionImagePickerModel && this.locOwner.contentMode == "video") {
40165
+ this.videoNotLoaded = val;
40166
+ }
40167
+ else {
40168
+ this.imageNotLoaded = val;
40169
+ }
40170
+ },
40171
+ enumerable: false,
40172
+ configurable: true
40173
+ });
40174
+ __decorate([
40175
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
40176
+ ], ImageItemValue.prototype, "videoNotLoaded", void 0);
41009
40177
  __decorate([
41010
40178
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
41011
- ], ImageItemValue.prototype, "contentNotLoaded", void 0);
40179
+ ], ImageItemValue.prototype, "imageNotLoaded", void 0);
41012
40180
  return ImageItemValue;
41013
40181
  }(_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"]));
41014
40182
 
@@ -50727,9 +49895,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50727
49895
  if (newPanelCount == 0 && this.getPropertyValue("panelCount") > 0) {
50728
49896
  newPanelCount = this.getPropertyValue("panelCount");
50729
49897
  }
49898
+ this.settingPanelCountBasedOnValue = true;
50730
49899
  this.panelCount = newPanelCount;
49900
+ this.settingPanelCountBasedOnValue = false;
50731
49901
  };
50732
49902
  QuestionPanelDynamicModel.prototype.setQuestionValue = function (newValue) {
49903
+ if (this.settingPanelCountBasedOnValue)
49904
+ return;
50733
49905
  _super.prototype.setQuestionValue.call(this, newValue, false);
50734
49906
  this.setPanelCountBasedOnValue();
50735
49907
  for (var i = 0; i < this.panels.length; i++) {
@@ -64011,8 +63183,8 @@ var RendererFactory = /** @class */ (function () {
64011
63183
 
64012
63184
  "use strict";
64013
63185
  __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;
63186
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
63187
+ var document = globalThis.document;
64016
63188
  var defaultEnvironment = (!!document ? {
64017
63189
  root: document,
64018
63190
  _rootElement: document.body,
@@ -64516,7 +63688,6 @@ var settings = {
64516
63688
  }
64517
63689
  };
64518
63690
 
64519
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
64520
63691
 
64521
63692
  /***/ }),
64522
63693
 
@@ -65105,11 +64276,16 @@ var SurveyElementCore = /** @class */ (function (_super) {
65105
64276
  return SurveyElementCore;
65106
64277
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
65107
64278
 
64279
+ // TODO: rename
65108
64280
  var DragTypeOverMeEnum;
65109
64281
  (function (DragTypeOverMeEnum) {
65110
64282
  DragTypeOverMeEnum[DragTypeOverMeEnum["InsideEmptyPanel"] = 1] = "InsideEmptyPanel";
65111
64283
  DragTypeOverMeEnum[DragTypeOverMeEnum["MultilineRight"] = 2] = "MultilineRight";
65112
64284
  DragTypeOverMeEnum[DragTypeOverMeEnum["MultilineLeft"] = 3] = "MultilineLeft";
64285
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Top"] = 4] = "Top";
64286
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Right"] = 5] = "Right";
64287
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Bottom"] = 6] = "Bottom";
64288
+ DragTypeOverMeEnum[DragTypeOverMeEnum["Left"] = 7] = "Left";
65113
64289
  })(DragTypeOverMeEnum || (DragTypeOverMeEnum = {}));
65114
64290
  /**
65115
64291
  * A base class for all survey elements.
@@ -66383,7 +65559,7 @@ var SurveyModel = /** @class */ (function (_super) {
66383
65559
  */
66384
65560
  _this.onNavigateToUrl = _this.addEvent();
66385
65561
  /**
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).
65562
+ * 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
65563
  * @see firstPageIsStarted
66388
65564
  */
66389
65565
  _this.onStarted = _this.addEvent();
@@ -66745,13 +65921,17 @@ var SurveyModel = /** @class */ (function (_super) {
66745
65921
  */
66746
65922
  _this.onAfterRenderPanel = _this.addEvent();
66747
65923
  /**
66748
- * The event occurs when an element within a question gets focus.
65924
+ * An event that is raised when an element (input field, checkbox, radio button) within a question gets focus.
66749
65925
  * @see onFocusInPanel
65926
+ * @see focusFirstQuestionAutomatic
65927
+ * @see focusQuestion
66750
65928
  */
66751
65929
  _this.onFocusInQuestion = _this.addEvent();
66752
65930
  /**
66753
- * The event occurs when an element within a panel gets focus.
65931
+ * An event that is raised when an element within a panel gets focus.
66754
65932
  * @see onFocusInQuestion
65933
+ * @see focusFirstQuestionAutomatic
65934
+ * @see focusQuestion
66755
65935
  */
66756
65936
  _this.onFocusInPanel = _this.addEvent();
66757
65937
  /**
@@ -67551,7 +66731,12 @@ var SurveyModel = /** @class */ (function (_super) {
67551
66731
  });
67552
66732
  Object.defineProperty(SurveyModel.prototype, "focusFirstQuestionAutomatic", {
67553
66733
  /**
67554
- * Gets or sets whether the first input is focused on showing a next or a previous page.
66734
+ * Specifies whether to focus the first question on the page on survey startup or when users switch between pages.
66735
+ *
66736
+ * Default value: `true`
66737
+ * @see focusOnFirstError
66738
+ * @see focusFirstQuestion
66739
+ * @see focusQuestion
67555
66740
  */
67556
66741
  get: function () {
67557
66742
  return this.getPropertyValue("focusFirstQuestionAutomatic");
@@ -67564,8 +66749,11 @@ var SurveyModel = /** @class */ (function (_super) {
67564
66749
  });
67565
66750
  Object.defineProperty(SurveyModel.prototype, "focusOnFirstError", {
67566
66751
  /**
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.
66752
+ * Specifies whether to focus the first question with a validation error on the current page.
66753
+ *
66754
+ * Default value: `true`
66755
+ * @see validate
66756
+ * @see focusFirstQuestionAutomatic
67569
66757
  */
67570
66758
  get: function () {
67571
66759
  return this.getPropertyValue("focusOnFirstError");
@@ -67914,11 +67102,12 @@ var SurveyModel = /** @class */ (function (_super) {
67914
67102
  });
67915
67103
  Object.defineProperty(SurveyModel.prototype, "autoGrowComment", {
67916
67104
  /**
67917
- * Specifies whether to increase the height of text areas to accommodate multi-line comments.
67105
+ * 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
67106
  *
67919
67107
  * Default value: `false`
67920
67108
  *
67921
- * You can override this property for individual Comment questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
67109
+ * You can override this property for individual Long Text questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
67110
+ * @see allowResizeComment
67922
67111
  */
67923
67112
  get: function () {
67924
67113
  return this.getPropertyValue("autoGrowComment");
@@ -67929,6 +67118,24 @@ var SurveyModel = /** @class */ (function (_super) {
67929
67118
  enumerable: false,
67930
67119
  configurable: true
67931
67120
  });
67121
+ Object.defineProperty(SurveyModel.prototype, "allowResizeComment", {
67122
+ /**
67123
+ * 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.
67124
+ *
67125
+ * Default value: `true`
67126
+ *
67127
+ * You can override this property for individual Long Text questions: [`allowResize`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#allowResize).
67128
+ * @see autoGrowComment
67129
+ */
67130
+ get: function () {
67131
+ return this.getPropertyValue("allowResizeComment");
67132
+ },
67133
+ set: function (val) {
67134
+ this.setPropertyValue("allowResizeComment", val);
67135
+ },
67136
+ enumerable: false,
67137
+ configurable: true
67138
+ });
67932
67139
  Object.defineProperty(SurveyModel.prototype, "textUpdateMode", {
67933
67140
  /**
67934
67141
  * Gets or sets a value that specifies how the survey updates its questions' text values.
@@ -69665,7 +68872,9 @@ var SurveyModel = /** @class */ (function (_super) {
69665
68872
  configurable: true
69666
68873
  });
69667
68874
  /**
69668
- * Sets the input focus to the first question with the input field.
68875
+ * Focuses the first question on the current page.
68876
+ * @see focusQuestion
68877
+ * @see focusFirstQuestionAutomatic
69669
68878
  */
69670
68879
  SurveyModel.prototype.focusFirstQuestion = function () {
69671
68880
  if (this.isFocusingQuestion)
@@ -71669,6 +70878,9 @@ var SurveyModel = /** @class */ (function (_super) {
71669
70878
  };
71670
70879
  /**
71671
70880
  * Creates a new page and adds it to the survey.
70881
+ *
70882
+ * 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.
70883
+ *
71672
70884
  * @param name A page name. If you do not specify this parameter, it will be generated automatically.
71673
70885
  * @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
70886
  * @returns The created and added page.
@@ -73549,9 +72761,11 @@ var SurveyModel = /** @class */ (function (_super) {
73549
72761
  this.isMovingQuestion = false;
73550
72762
  };
73551
72763
  /**
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
72764
+ * Focuses a question with a specified name. Switches the current page if needed.
72765
+ * @param name A question name.
72766
+ * @returns `false` if the survey does not contain a question with a specified name or this question is hidden; otherwise, `true`.
72767
+ * @see focusFirstQuestion
72768
+ * @see focusFirstQuestionAutomatic
73555
72769
  */
73556
72770
  SurveyModel.prototype.focusQuestion = function (name) {
73557
72771
  var _this = this;
@@ -73944,6 +73158,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
73944
73158
  choices: ["onBlur", "onTyping"],
73945
73159
  },
73946
73160
  { name: "autoGrowComment:boolean", default: false },
73161
+ { name: "allowResizeComment:boolean", default: true },
73947
73162
  { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
73948
73163
  { name: "pagePrevText", serializationProperty: "locPagePrevText" },
73949
73164
  { name: "pageNextText", serializationProperty: "locPageNextText" },
@@ -75843,9 +75058,7 @@ var PopupUtils = /** @class */ (function () {
75843
75058
  __webpack_require__.r(__webpack_exports__);
75844
75059
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsivityManager", function() { return ResponsivityManager; });
75845
75060
  /* 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");
75061
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
75849
75062
  var __extends = (undefined && undefined.__extends) || (function () {
75850
75063
  var extendStatics = function (d, b) {
75851
75064
  extendStatics = Object.setPrototypeOf ||
@@ -75862,7 +75075,6 @@ var __extends = (undefined && undefined.__extends) || (function () {
75862
75075
  };
75863
75076
  })();
75864
75077
 
75865
-
75866
75078
  var ResponsivityManager = /** @class */ (function () {
75867
75079
  function ResponsivityManager(container, model, itemsSelector, dotsItemSize) {
75868
75080
  var _this = this;
@@ -75884,7 +75096,7 @@ var ResponsivityManager = /** @class */ (function () {
75884
75096
  if (isResetInitialized)
75885
75097
  _this.isInitialized = false;
75886
75098
  else
75887
- Object(timers__WEBPACK_IMPORTED_MODULE_0__["setTimeout"])(function () { _this.process(); }, 1);
75099
+ setTimeout(function () { _this.process(); }, 1);
75888
75100
  };
75889
75101
  if (typeof ResizeObserver !== "undefined") {
75890
75102
  this.resizeObserver = new ResizeObserver(function (_) { return _this.process(); });
@@ -75934,7 +75146,7 @@ var ResponsivityManager = /** @class */ (function () {
75934
75146
  };
75935
75147
  Object.defineProperty(ResponsivityManager.prototype, "isContainerVisible", {
75936
75148
  get: function () {
75937
- return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["isContainerVisible"])(this.container);
75149
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["isContainerVisible"])(this.container);
75938
75150
  },
75939
75151
  enumerable: false,
75940
75152
  configurable: true