survey-react 1.9.126 → 1.9.127

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.126
2
+ * surveyjs - Survey JavaScript library v1.9.127
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2041,8 +2041,8 @@ var Base = /** @class */ (function () {
2041
2041
  * Returns a JSON object that corresponds to the current SurveyJS object.
2042
2042
  * @see fromJSON
2043
2043
  */
2044
- Base.prototype.toJSON = function () {
2045
- return new _jsonobject__WEBPACK_IMPORTED_MODULE_2__["JsonObject"]().toJsonObject(this);
2044
+ Base.prototype.toJSON = function (options) {
2045
+ return new _jsonobject__WEBPACK_IMPORTED_MODULE_2__["JsonObject"]().toJsonObject(this, options);
2046
2046
  };
2047
2047
  /**
2048
2048
  * Assigns a new configuration to the current SurveyJS object. This configuration is taken from a passed JSON object.
@@ -5674,6 +5674,7 @@ var defaultV2Css = {
5674
5674
  small: "sd-row__question--small",
5675
5675
  controlDisabled: "sd-input--disabled",
5676
5676
  constrolWithCharacterCounter: "sd-text__character-counter",
5677
+ characterCounterBig: "sd-text__character-counter--big",
5677
5678
  content: "sd-text__content sd-question__content",
5678
5679
  remainingCharacterCounter: "sd-remaining-character-counter",
5679
5680
  onError: "sd-input--error"
@@ -7765,17 +7766,20 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7765
7766
  var rankingChoices = questionModel.rankingChoices;
7766
7767
  var unRankingChoices = questionModel.unRankingChoices;
7767
7768
  var item = unRankingChoices[fromIndex];
7769
+ questionModel.isValueSetByUser = true;
7768
7770
  rankingChoices.splice(toIndex, 0, item);
7769
7771
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
7770
7772
  };
7771
7773
  DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7772
7774
  var rankingChoices = questionModel.rankingChoices;
7775
+ questionModel.isValueSetByUser = true;
7773
7776
  rankingChoices.splice(fromIndex, 1);
7774
7777
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
7775
7778
  };
7776
7779
  DragDropRankingSelectToRank.prototype.reorderRankedItem = function (questionModel, fromIndex, toIndex) {
7777
7780
  var rankingChoices = questionModel.rankingChoices;
7778
7781
  var item = rankingChoices[fromIndex];
7782
+ questionModel.isValueSetByUser = true;
7779
7783
  rankingChoices.splice(fromIndex, 1);
7780
7784
  rankingChoices.splice(toIndex, 0, item);
7781
7785
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
@@ -9479,8 +9483,8 @@ __webpack_require__.r(__webpack_exports__);
9479
9483
  //import "../../modern.scss";
9480
9484
  var Version;
9481
9485
  var ReleaseDate;
9482
- Version = "" + "1.9.126";
9483
- ReleaseDate = "" + "2024-01-16";
9486
+ Version = "" + "1.9.127";
9487
+ ReleaseDate = "" + "2024-01-23";
9484
9488
  function checkLibraryVersion(ver, libraryName) {
9485
9489
  if (Version != ver) {
9486
9490
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -17283,6 +17287,27 @@ var Helpers = /** @class */ (function () {
17283
17287
  }
17284
17288
  return val;
17285
17289
  };
17290
+ Helpers.compareVerions = function (ver1, ver2) {
17291
+ if (!ver1 && !ver2)
17292
+ return 0;
17293
+ var ver1Ar = ver1.split(".");
17294
+ var ver2Ar = ver2.split(".");
17295
+ var len1 = ver1Ar.length;
17296
+ var len2 = ver2Ar.length;
17297
+ for (var i = 0; i < len1 && i < len2; i++) {
17298
+ var str1 = ver1Ar[i];
17299
+ var str2 = ver2Ar[i];
17300
+ if (str1.length === str2.length) {
17301
+ if (str1 !== str2) {
17302
+ return str1 < str2 ? -1 : 1;
17303
+ }
17304
+ }
17305
+ else {
17306
+ return str1.length < str2.length ? -1 : 1;
17307
+ }
17308
+ }
17309
+ return len1 === len2 ? 0 : (len1 < len2 ? -1 : 1);
17310
+ };
17286
17311
  return Helpers;
17287
17312
  }());
17288
17313
 
@@ -19057,6 +19082,21 @@ var JsonObjectProperty = /** @class */ (function () {
19057
19082
  enumerable: false,
19058
19083
  configurable: true
19059
19084
  });
19085
+ JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
19086
+ if (!!this.alternativeName)
19087
+ return true;
19088
+ return this.isAvailableInVersionCore(ver);
19089
+ };
19090
+ JsonObjectProperty.prototype.getSerializedName = function (ver) {
19091
+ if (!this.alternativeName)
19092
+ return this.name;
19093
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
19094
+ };
19095
+ JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
19096
+ if (!ver || !this.version)
19097
+ return true;
19098
+ return _helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].compareVerions(this.version, ver) <= 0;
19099
+ };
19060
19100
  Object.defineProperty(JsonObjectProperty.prototype, "isLocalizable", {
19061
19101
  get: function () {
19062
19102
  return this.isLocalizableValue != null ? this.isLocalizableValue : false;
@@ -19137,6 +19177,7 @@ var JsonObjectProperty = /** @class */ (function () {
19137
19177
  "className",
19138
19178
  "alternativeName",
19139
19179
  "layout",
19180
+ "version",
19140
19181
  "classNamePart",
19141
19182
  "baseClassName",
19142
19183
  "defaultValue",
@@ -19585,6 +19626,9 @@ var JsonMetadataClass = /** @class */ (function () {
19585
19626
  if (propInfo.layout) {
19586
19627
  prop.layout = propInfo.layout;
19587
19628
  }
19629
+ if (propInfo.version) {
19630
+ prop.version = propInfo.version;
19631
+ }
19588
19632
  if (propInfo.dependsOn) {
19589
19633
  this.addDependsOnProperties(prop, propInfo.dependsOn);
19590
19634
  }
@@ -19729,36 +19773,54 @@ var JsonMetadata = /** @class */ (function () {
19729
19773
  JsonMetadata.prototype.getPropertiesByObj = function (obj) {
19730
19774
  if (!obj || !obj.getType)
19731
19775
  return [];
19732
- var res = {};
19733
19776
  var props = this.getProperties(obj.getType());
19734
- for (var i = 0; i < props.length; i++) {
19735
- res[props[i].name] = props[i];
19736
- }
19737
- var dynamicProps = !!obj.getDynamicType
19738
- ? this.getProperties(obj.getDynamicType())
19739
- : null;
19740
- if (dynamicProps && dynamicProps.length > 0) {
19741
- for (var i = 0; i < dynamicProps.length; i++) {
19742
- var dProp = dynamicProps[i];
19743
- if (!!res[dProp.name])
19744
- continue;
19745
- res[dProp.name] = dProp;
19777
+ var dynamicProps = this.getDynamicPropertiesByObj(obj);
19778
+ return [].concat(props).concat(dynamicProps);
19779
+ };
19780
+ JsonMetadata.prototype.addDynamicPropertiesIntoObj = function (dest, src, props) {
19781
+ var _this = this;
19782
+ props.forEach(function (prop) {
19783
+ _this.addDynamicPropertyIntoObj(dest, src, prop.name, false);
19784
+ if (prop.serializationProperty) {
19785
+ _this.addDynamicPropertyIntoObj(dest, src, prop.serializationProperty, true);
19746
19786
  }
19787
+ if (prop.alternativeName) {
19788
+ _this.addDynamicPropertyIntoObj(dest, src, prop.alternativeName, false);
19789
+ }
19790
+ });
19791
+ };
19792
+ JsonMetadata.prototype.addDynamicPropertyIntoObj = function (dest, src, propName, isReadOnly) {
19793
+ var desc = {
19794
+ configurable: true,
19795
+ get: function () {
19796
+ return src[propName];
19797
+ },
19798
+ };
19799
+ if (!isReadOnly) {
19800
+ desc["set"] = function (v) {
19801
+ src[propName] = v;
19802
+ };
19747
19803
  }
19748
- return Object.keys(res).map(function (key) { return res[key]; });
19804
+ Object.defineProperty(dest, propName, desc);
19749
19805
  };
19750
19806
  JsonMetadata.prototype.getDynamicPropertiesByObj = function (obj, dynamicType) {
19751
19807
  if (dynamicType === void 0) { dynamicType = null; }
19752
- if (!obj || !obj.getType || (!obj.getDynamicType && !dynamicType))
19808
+ if (!obj || !obj.getType)
19809
+ return [];
19810
+ if (!!obj.getDynamicProperties)
19811
+ return obj.getDynamicProperties();
19812
+ if (!obj.getDynamicType && !dynamicType)
19753
19813
  return [];
19754
- var objType = obj.getType();
19755
19814
  var dType = !!dynamicType ? dynamicType : obj.getDynamicType();
19756
- if (!dType)
19815
+ return this.getDynamicPropertiesByTypes(obj.getType(), dType);
19816
+ };
19817
+ JsonMetadata.prototype.getDynamicPropertiesByTypes = function (objType, dynamicType, invalidNames) {
19818
+ if (!dynamicType)
19757
19819
  return [];
19758
- var cacheType = dType + "-" + objType;
19820
+ var cacheType = dynamicType + "-" + objType;
19759
19821
  if (this.dynamicPropsCache[cacheType])
19760
19822
  return this.dynamicPropsCache[cacheType];
19761
- var dynamicProps = this.getProperties(dType);
19823
+ var dynamicProps = this.getProperties(dynamicType);
19762
19824
  if (!dynamicProps || dynamicProps.length == 0)
19763
19825
  return [];
19764
19826
  var hash = {};
@@ -19767,9 +19829,11 @@ var JsonMetadata = /** @class */ (function () {
19767
19829
  hash[props[i].name] = props[i];
19768
19830
  }
19769
19831
  var res = [];
19770
- for (var i = 0; i < dynamicProps.length; i++) {
19771
- var dProp = dynamicProps[i];
19772
- if (!hash[dProp.name]) {
19832
+ if (!invalidNames)
19833
+ invalidNames = [];
19834
+ for (var i_1 = 0; i_1 < dynamicProps.length; i_1++) {
19835
+ var dProp = dynamicProps[i_1];
19836
+ if (!hash[dProp.name] && invalidNames.indexOf(dProp.name) < 0) {
19773
19837
  res.push(dProp);
19774
19838
  }
19775
19839
  }
@@ -20264,9 +20328,8 @@ var JsonObject = /** @class */ (function () {
20264
20328
  enumerable: false,
20265
20329
  configurable: true
20266
20330
  });
20267
- JsonObject.prototype.toJsonObject = function (obj, storeDefaults) {
20268
- if (storeDefaults === void 0) { storeDefaults = false; }
20269
- return this.toJsonObjectCore(obj, null, storeDefaults);
20331
+ JsonObject.prototype.toJsonObject = function (obj, options) {
20332
+ return this.toJsonObjectCore(obj, null, options);
20270
20333
  };
20271
20334
  JsonObject.prototype.toObject = function (jsonObj, obj, options) {
20272
20335
  this.toObjectCore(jsonObj, obj, options);
@@ -20315,8 +20378,7 @@ var JsonObject = /** @class */ (function () {
20315
20378
  obj.endLoadingFromJson();
20316
20379
  }
20317
20380
  };
20318
- JsonObject.prototype.toJsonObjectCore = function (obj, property, storeDefaults) {
20319
- if (storeDefaults === void 0) { storeDefaults = false; }
20381
+ JsonObject.prototype.toJsonObjectCore = function (obj, property, options) {
20320
20382
  if (!obj || !obj.getType)
20321
20383
  return obj;
20322
20384
  if (typeof obj.getData === "function")
@@ -20325,61 +20387,67 @@ var JsonObject = /** @class */ (function () {
20325
20387
  if (property != null && !property.className) {
20326
20388
  result[JsonObject.typePropertyName] = property.getObjType(obj.getType());
20327
20389
  }
20328
- this.propertiesToJson(obj, Serializer.getProperties(obj.getType()), result, storeDefaults);
20329
- this.propertiesToJson(obj, this.getDynamicProperties(obj), result, storeDefaults);
20390
+ var storeDefaults = options === true;
20391
+ if (!options || options === true) {
20392
+ options = {};
20393
+ }
20394
+ if (storeDefaults) {
20395
+ options.storeDefaults = storeDefaults;
20396
+ }
20397
+ this.propertiesToJson(obj, Serializer.getProperties(obj.getType()), result, options);
20398
+ this.propertiesToJson(obj, this.getDynamicProperties(obj), result, options);
20330
20399
  return result;
20331
20400
  };
20332
20401
  JsonObject.prototype.getDynamicProperties = function (obj) {
20333
20402
  return Serializer.getDynamicPropertiesByObj(obj);
20334
20403
  };
20335
- JsonObject.prototype.addDynamicProperties = function (obj, jsonObj, properties) {
20336
- if (!obj.getDynamicPropertyName)
20337
- return properties;
20338
- var dynamicPropName = obj.getDynamicPropertyName();
20339
- if (!dynamicPropName)
20340
- return properties;
20341
- if (jsonObj[dynamicPropName]) {
20342
- obj[dynamicPropName] = jsonObj[dynamicPropName];
20343
- }
20344
- var dynamicProperties = this.getDynamicProperties(obj);
20345
- var res = [];
20346
- for (var i = 0; i < properties.length; i++) {
20347
- res.push(properties[i]);
20348
- }
20349
- for (var i = 0; i < dynamicProperties.length; i++) {
20350
- res.push(dynamicProperties[i]);
20404
+ JsonObject.prototype.addDynamicProperties = function (obj, jsonObj, props) {
20405
+ if (!obj.getDynamicPropertyName && !obj.getDynamicProperties)
20406
+ return props;
20407
+ if (obj.getDynamicPropertyName) {
20408
+ var dynamicPropName = obj.getDynamicPropertyName();
20409
+ if (!dynamicPropName)
20410
+ return props;
20411
+ if (dynamicPropName && jsonObj[dynamicPropName]) {
20412
+ obj[dynamicPropName] = jsonObj[dynamicPropName];
20413
+ }
20351
20414
  }
20352
- return res;
20415
+ var dynamicProps = this.getDynamicProperties(obj);
20416
+ return dynamicProps.length === 0 ? props : [].concat(props).concat(dynamicProps);
20353
20417
  };
20354
- JsonObject.prototype.propertiesToJson = function (obj, properties, json, storeDefaults) {
20355
- if (storeDefaults === void 0) { storeDefaults = false; }
20418
+ JsonObject.prototype.propertiesToJson = function (obj, properties, json, options) {
20356
20419
  for (var i = 0; i < properties.length; i++) {
20357
- this.valueToJson(obj, json, properties[i], storeDefaults);
20420
+ this.valueToJson(obj, json, properties[i], options);
20358
20421
  }
20359
20422
  };
20360
- JsonObject.prototype.valueToJson = function (obj, result, property, storeDefaults) {
20361
- if (storeDefaults === void 0) { storeDefaults = false; }
20362
- if (property.isSerializable === false ||
20363
- (property.isLightSerializable === false && this.lightSerializing))
20423
+ JsonObject.prototype.valueToJson = function (obj, result, prop, options) {
20424
+ if (!options)
20425
+ options = {};
20426
+ if (prop.isSerializable === false || (prop.isLightSerializable === false && this.lightSerializing))
20427
+ return;
20428
+ if (options.version && !prop.isAvailableInVersion(options.version))
20364
20429
  return;
20365
- var value = property.getSerializableValue(obj);
20366
- if (!storeDefaults && property.isDefaultValueByObj(obj, value))
20430
+ var value = prop.getSerializableValue(obj);
20431
+ if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
20367
20432
  return;
20368
20433
  if (this.isValueArray(value)) {
20369
20434
  var arrValue = [];
20370
20435
  for (var i = 0; i < value.length; i++) {
20371
- arrValue.push(this.toJsonObjectCore(value[i], property, storeDefaults));
20436
+ arrValue.push(this.toJsonObjectCore(value[i], prop, options));
20372
20437
  }
20373
20438
  value = arrValue.length > 0 ? arrValue : null;
20374
20439
  }
20375
20440
  else {
20376
- value = this.toJsonObjectCore(value, property, storeDefaults);
20441
+ value = this.toJsonObjectCore(value, prop, options);
20377
20442
  }
20443
+ if (value === undefined || value === null)
20444
+ return;
20445
+ var name = prop.getSerializedName(options.version);
20378
20446
  var hasValue = typeof obj["getPropertyValue"] === "function" &&
20379
- obj["getPropertyValue"](property.name, null) !== null;
20380
- if ((storeDefaults && hasValue) || !property.isDefaultValueByObj(obj, value)) {
20381
- if (!Serializer.onSerializingProperty || !Serializer.onSerializingProperty(obj, property, value, result)) {
20382
- result[property.name] = value;
20447
+ obj["getPropertyValue"](name, null) !== null;
20448
+ if ((options.storeDefaults && hasValue) || !prop.isDefaultValueByObj(obj, value)) {
20449
+ if (!Serializer.onSerializingProperty || !Serializer.onSerializingProperty(obj, prop, value, result)) {
20450
+ result[name] = this.removePosOnValueToJson(prop, value);
20383
20451
  }
20384
20452
  }
20385
20453
  };
@@ -20419,6 +20487,14 @@ var JsonObject = /** @class */ (function () {
20419
20487
  }
20420
20488
  }
20421
20489
  };
20490
+ JsonObject.prototype.removePosOnValueToJson = function (property, value) {
20491
+ if (!property.isCustom || !value)
20492
+ return value;
20493
+ if (!!value[JsonObject.positionPropertyName]) {
20494
+ delete value[JsonObject.positionPropertyName];
20495
+ }
20496
+ return value;
20497
+ };
20422
20498
  JsonObject.prototype.removePos = function (property, value) {
20423
20499
  if (!property || !property.type || property.type.indexOf("value") < 0)
20424
20500
  return;
@@ -33527,8 +33603,8 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
33527
33603
  this.popupDirection = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePopupDirection(verticalPosition, actualHorizontalPosition);
33528
33604
  var pos = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePosition(targetElementRect, height, width + marginLeft + marginRight, verticalPosition, actualHorizontalPosition, this.showHeader, this.model.positionMode);
33529
33605
  if (!!window) {
33530
- var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].getCorrectedVerticalDimensions(pos.top, height, window.innerHeight);
33531
- if (!!newVerticalDimensions.height) {
33606
+ var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].getCorrectedVerticalDimensions(pos.top, height, window.innerHeight, verticalPosition);
33607
+ if (!!newVerticalDimensions) {
33532
33608
  this.height = newVerticalDimensions.height + "px";
33533
33609
  pos.top = newVerticalDimensions.top;
33534
33610
  }
@@ -40876,6 +40952,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
40876
40952
  QuestionBooleanModel.prototype.createActionContainer = function (allowAdaptiveActions) {
40877
40953
  return _super.prototype.createActionContainer.call(this, this.renderAs !== "checkbox");
40878
40954
  };
40955
+ Object.defineProperty(QuestionBooleanModel.prototype, "isNewA11yStructure", {
40956
+ //a11y
40957
+ get: function () {
40958
+ return true;
40959
+ },
40960
+ enumerable: false,
40961
+ configurable: true
40962
+ });
40963
+ Object.defineProperty(QuestionBooleanModel.prototype, "a11y_input_ariaRole", {
40964
+ get: function () {
40965
+ return "switch";
40966
+ },
40967
+ enumerable: false,
40968
+ configurable: true
40969
+ });
40879
40970
  __decorate([
40880
40971
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
40881
40972
  ], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
@@ -42291,6 +42382,35 @@ var ComponentQuestionJSON = /** @class */ (function () {
42291
42382
  enumerable: false,
42292
42383
  configurable: true
42293
42384
  });
42385
+ ComponentQuestionJSON.prototype.getDynamicProperties = function () {
42386
+ if (!Array.isArray(this.dynamicProperties)) {
42387
+ }
42388
+ this.dynamicProperties = this.calcDynamicProperties();
42389
+ return this.dynamicProperties;
42390
+ };
42391
+ ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
42392
+ var baseProps = this.json.inheritBaseProps;
42393
+ if (!baseProps || !this.json.questionJSON)
42394
+ return [];
42395
+ var type = this.json.questionJSON.type;
42396
+ if (!type)
42397
+ return [];
42398
+ if (Array.isArray(baseProps)) {
42399
+ var props_1 = [];
42400
+ baseProps.forEach(function (name) {
42401
+ var prop = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].findProperty(type, name);
42402
+ if (prop) {
42403
+ props_1.push(prop);
42404
+ }
42405
+ });
42406
+ return props_1;
42407
+ }
42408
+ var invalidNames = [];
42409
+ for (var key in this.json.questionJSON) {
42410
+ invalidNames.push(key);
42411
+ }
42412
+ return _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].getDynamicPropertiesByTypes(this.name, type, invalidNames);
42413
+ };
42294
42414
  return ComponentQuestionJSON;
42295
42415
  }());
42296
42416
 
@@ -42632,8 +42752,15 @@ var QuestionCustomModel = /** @class */ (function (_super) {
42632
42752
  QuestionCustomModel.prototype.getTemplate = function () {
42633
42753
  return "custom";
42634
42754
  };
42755
+ QuestionCustomModel.prototype.getDynamicProperties = function () {
42756
+ return this.customQuestion.getDynamicProperties() || [];
42757
+ };
42758
+ QuestionCustomModel.prototype.getDynamicType = function () {
42759
+ return this.questionWrapper ? this.questionWrapper.getType() : "question";
42760
+ };
42635
42761
  QuestionCustomModel.prototype.createWrapper = function () {
42636
42762
  this.questionWrapper = this.createQuestion();
42763
+ this.createDynamicProperties(this.questionWrapper);
42637
42764
  };
42638
42765
  QuestionCustomModel.prototype.getElement = function () {
42639
42766
  return this.contentQuestion;
@@ -42808,6 +42935,14 @@ var QuestionCustomModel = /** @class */ (function (_super) {
42808
42935
  }
42809
42936
  this.isSettingValueChanged = false;
42810
42937
  };
42938
+ QuestionCustomModel.prototype.createDynamicProperties = function (el) {
42939
+ if (!el)
42940
+ return;
42941
+ var props = this.getDynamicProperties();
42942
+ if (Array.isArray(props)) {
42943
+ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addDynamicPropertiesIntoObj(this, el, props);
42944
+ }
42945
+ };
42811
42946
  QuestionCustomModel.prototype.initElement = function (el) {
42812
42947
  var _this = this;
42813
42948
  _super.prototype.initElement.call(this, el);
@@ -43304,7 +43439,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
43304
43439
  }
43305
43440
  };
43306
43441
  QuestionDropdownModel.prototype.supportGoNextPageAutomatic = function () {
43307
- return true;
43442
+ return !this.isOtherSelected;
43308
43443
  };
43309
43444
  QuestionDropdownModel.prototype.getChoices = function () {
43310
43445
  var items = _super.prototype.getChoices.call(this);
@@ -44169,6 +44304,9 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("expression", [
44169
44304
  return getCurrecyCodes();
44170
44305
  },
44171
44306
  default: "USD",
44307
+ visibleIf: function (obj) {
44308
+ return obj.displayStyle === "currency";
44309
+ }
44172
44310
  },
44173
44311
  { name: "maximumFractionDigits:number", default: -1 },
44174
44312
  { name: "minimumFractionDigits:number", default: -1 },
@@ -44442,7 +44580,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
44442
44580
  };
44443
44581
  _this.doClean = function () {
44444
44582
  if (_this.needConfirmRemoveFile) {
44445
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); });
44583
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
44446
44584
  return;
44447
44585
  }
44448
44586
  _this.clearFilesCore();
@@ -45332,7 +45470,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
45332
45470
  QuestionFileModel.prototype.doRemoveFile = function (data) {
45333
45471
  var _this = this;
45334
45472
  if (this.needConfirmRemoveFile) {
45335
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); });
45473
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
45336
45474
  return;
45337
45475
  }
45338
45476
  this.removeFileCore(data);
@@ -47094,6 +47232,11 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
47094
47232
  configurable: true
47095
47233
  });
47096
47234
  Object.defineProperty(QuestionMatrixModel.prototype, "cells", {
47235
+ /**
47236
+ * An array of matrix cells. Use this array to get or set cell values.
47237
+ *
47238
+ * [View Demo](https://surveyjs.io/form-library/examples/questiontype-matrix-rubric/ (linkStyle))
47239
+ */
47097
47240
  get: function () {
47098
47241
  return this.cellsValue;
47099
47242
  },
@@ -51302,32 +51445,8 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
51302
51445
  }
51303
51446
  };
51304
51447
  MatrixDropdownColumn.prototype.addProperties = function (curCellType) {
51305
- var question = this.templateQuestion;
51306
- var properties = this.getProperties(curCellType);
51307
- for (var i = 0; i < properties.length; i++) {
51308
- var prop = properties[i];
51309
- this.addProperty(question, prop.name, false);
51310
- if (prop.serializationProperty) {
51311
- this.addProperty(question, prop.serializationProperty, true);
51312
- }
51313
- if (prop.alternativeName) {
51314
- this.addProperty(question, prop.alternativeName, false);
51315
- }
51316
- }
51317
- };
51318
- MatrixDropdownColumn.prototype.addProperty = function (question, propName, isReadOnly) {
51319
- var desc = {
51320
- configurable: true,
51321
- get: function () {
51322
- return question[propName];
51323
- },
51324
- };
51325
- if (!isReadOnly) {
51326
- desc["set"] = function (v) {
51327
- question[propName] = v;
51328
- };
51329
- }
51330
- Object.defineProperty(this, propName, desc);
51448
+ var props = this.getProperties(curCellType);
51449
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addDynamicPropertiesIntoObj(this, this.templateQuestion, props);
51331
51450
  };
51332
51451
  return MatrixDropdownColumn;
51333
51452
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
@@ -53272,7 +53391,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
53272
53391
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
53273
53392
  }
53274
53393
  if (confirmDelete) {
53275
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); });
53394
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
53276
53395
  return;
53277
53396
  }
53278
53397
  this.removeRowAsync(index, row);
@@ -55845,9 +55964,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55845
55964
  }
55846
55965
  }
55847
55966
  }
55848
- var removedPanels = [];
55849
55967
  if (val < this.panelCount) {
55850
- removedPanels = this.panelsCore.splice(val, this.panelCount - val);
55968
+ this.panelsCore.splice(val, this.panelCount - val);
55851
55969
  }
55852
55970
  this.setValueAfterPanelsCreating();
55853
55971
  this.setValueBasedOnPanelCount();
@@ -56453,7 +56571,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
56453
56571
  if (!this.canRemovePanel)
56454
56572
  return;
56455
56573
  if (this.isRequireConfirmOnDelete(value)) {
56456
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); });
56574
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
56457
56575
  }
56458
56576
  else {
56459
56577
  this.removePanel(value);
@@ -56558,7 +56676,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
56558
56676
  }
56559
56677
  };
56560
56678
  QuestionPanelDynamicModel.prototype.getQuestionFromArray = function (name, index) {
56561
- if (index >= this.panelCount)
56679
+ if (index < 0 || index >= this.panelsCore.length)
56562
56680
  return null;
56563
56681
  return this.panelsCore[index].getQuestionByName(name);
56564
56682
  };
@@ -57714,7 +57832,7 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
57714
57832
  configurable: true
57715
57833
  });
57716
57834
  QuestionRadiogroupModel.prototype.supportGoNextPageAutomatic = function () {
57717
- return this.isMouseDown === true;
57835
+ return this.isMouseDown === true && !this.isOtherSelected;
57718
57836
  };
57719
57837
  QuestionRadiogroupModel.prototype.setNewComment = function (newValue) {
57720
57838
  this.isMouseDown = true;
@@ -57842,8 +57960,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
57842
57960
  _this.domNode = null;
57843
57961
  _this.onVisibleChoicesChanged = function () {
57844
57962
  _super.prototype.onVisibleChoicesChanged.call(_this);
57963
+ if (_this.carryForwardStartUnranked && !_this.isValueSetByUser && !_this.selectToRankEnabled) {
57964
+ _this.value = [];
57965
+ }
57845
57966
  // ranking question with only one choice doesn't make sense
57846
- if (_this.visibleChoices.length === 1) {
57967
+ if (_this.visibleChoices.length === 1 && !_this.selectToRankEnabled) {
57847
57968
  _this.value = [];
57848
57969
  _this.value.push(_this.visibleChoices[0].value);
57849
57970
  _this.updateRankingChoices();
@@ -57916,12 +58037,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
57916
58037
  itemsNodes[index].focus();
57917
58038
  }
57918
58039
  };
58040
+ _this.isValueSetByUser = false;
57919
58041
  _this.setValue = function () {
57920
58042
  var value = [];
57921
58043
  _this.rankingChoices.forEach(function (choice) {
57922
58044
  value.push(choice.value);
57923
58045
  });
57924
58046
  _this.value = value;
58047
+ _this.isValueSetByUser = true;
57925
58048
  };
57926
58049
  _this.createNewArray("rankingChoices");
57927
58050
  _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
@@ -58354,6 +58477,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
58354
58477
  __decorate([
58355
58478
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: null })
58356
58479
  ], QuestionRankingModel.prototype, "dropTargetNodeMove", void 0);
58480
+ __decorate([
58481
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: true })
58482
+ ], QuestionRankingModel.prototype, "carryForwardStartUnranked", void 0);
58357
58483
  __decorate([
58358
58484
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ localizable: { defaultStr: "selectToRankEmptyRankedAreaText" } })
58359
58485
  ], QuestionRankingModel.prototype, "selectToRankEmptyRankedAreaText", void 0);
@@ -60975,8 +61101,10 @@ var QuestionTextModel = /** @class */ (function (_super) {
60975
61101
  return !this.isReadOnly && this.inputType !== "range";
60976
61102
  };
60977
61103
  QuestionTextModel.prototype.getControlCssClassBuilder = function () {
61104
+ var maxLength = this.getMaxLength();
60978
61105
  return _super.prototype.getControlCssClassBuilder.call(this)
60979
- .append(this.cssClasses.constrolWithCharacterCounter, !!this.getMaxLength());
61106
+ .append(this.cssClasses.constrolWithCharacterCounter, !!maxLength)
61107
+ .append(this.cssClasses.characterCounterBig, maxLength > 99);
60980
61108
  };
60981
61109
  QuestionTextModel.prototype.isReadOnlyRenderDiv = function () {
60982
61110
  return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].readOnly.textRenderMode === "div";
@@ -61921,7 +62049,7 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
61921
62049
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: itemClass, onClick: this.handleOnClick },
61922
62050
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
61923
62051
  ? ""
61924
- : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
62052
+ : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-describedby": this.question.a11y_input_ariaDescribedBy }),
61925
62053
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, false); } },
61926
62054
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(false) }, this.renderLocString(this.question.locLabelFalse))),
61927
62055
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
@@ -71234,7 +71362,7 @@ var SurveyQuestionSignaturePad = /** @class */ (function (_super) {
71234
71362
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.placeholder, style: { display: this.question.needShowPlaceholder() ? "" : "none" } }, this.renderLocString(this.question.locPlaceholder)),
71235
71363
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null,
71236
71364
  this.renderBackgroundImage(),
71237
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: 0, className: this.question.cssClasses.canvas, onBlur: this.question.onBlur })),
71365
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: -1, className: this.question.cssClasses.canvas, onBlur: this.question.onBlur })),
71238
71366
  clearButton,
71239
71367
  loadingIndicator));
71240
71368
  };
@@ -72179,8 +72307,8 @@ var settings = {
72179
72307
  * @param message A message to be displayed in the confirm dialog window.
72180
72308
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
72181
72309
  */
72182
- confirmActionAsync: function (message, callback, applyTitle) {
72183
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle);
72310
+ confirmActionAsync: function (message, callback, applyTitle, locale) {
72311
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
72184
72312
  },
72185
72313
  /**
72186
72314
  * A minimum width value for all survey elements.
@@ -79864,7 +79992,7 @@ var SurveyModel = /** @class */ (function (_super) {
79864
79992
  }
79865
79993
  };
79866
79994
  /**
79867
- * Uploads a file to server.
79995
+ * Uploads files to a server.
79868
79996
  *
79869
79997
  * The following code shows how to call this method:
79870
79998
  *
@@ -83824,6 +83952,13 @@ var Trigger = /** @class */ (function (_super) {
83824
83952
  }
83825
83953
  return res;
83826
83954
  };
83955
+ Object.defineProperty(Trigger.prototype, "isInternal", {
83956
+ get: function () {
83957
+ return this.isGhost === true;
83958
+ },
83959
+ enumerable: false,
83960
+ configurable: true
83961
+ });
83827
83962
  Object.defineProperty(Trigger.prototype, "operator", {
83828
83963
  get: function () {
83829
83964
  return this.getPropertyValue("operator", "equal");
@@ -84760,8 +84895,11 @@ var PopupUtils = /** @class */ (function () {
84760
84895
  }
84761
84896
  return { left: Math.round(currentLeft), top: Math.round(currentTop) };
84762
84897
  };
84763
- PopupUtils.getCorrectedVerticalDimensions = function (top, height, windowHeight) {
84764
- var result = { height: height, top: top };
84898
+ PopupUtils.getCorrectedVerticalDimensions = function (top, height, windowHeight, verticalPosition) {
84899
+ var result;
84900
+ if (verticalPosition === "top") {
84901
+ result = { height: height, top: top };
84902
+ }
84765
84903
  if (top < 0) {
84766
84904
  result = { height: height + top, top: 0 };
84767
84905
  }
@@ -85139,7 +85277,7 @@ function confirmAction(message) {
85139
85277
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
85140
85278
  return confirm(message);
85141
85279
  }
85142
- function confirmActionAsync(message, funcOnYes, funcOnNo) {
85280
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
85143
85281
  var callbackFunc = function (res) {
85144
85282
  if (res)
85145
85283
  funcOnYes();
@@ -85147,7 +85285,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo) {
85147
85285
  funcOnNo();
85148
85286
  };
85149
85287
  if (!!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync) {
85150
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc))
85288
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale))
85151
85289
  return;
85152
85290
  }
85153
85291
  callbackFunc(confirmAction(message));
@@ -85496,7 +85634,7 @@ var Logger = /** @class */ (function () {
85496
85634
  return Logger;
85497
85635
  }());
85498
85636
 
85499
- function showConfirmDialog(message, callback, applyTitle) {
85637
+ function showConfirmDialog(message, callback, applyTitle, locale) {
85500
85638
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
85501
85639
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
85502
85640
  componentName: "sv-string-viewer",
@@ -85517,9 +85655,9 @@ function showConfirmDialog(message, callback, applyTitle) {
85517
85655
  var toolbar = popupViewModel.footerToolbar;
85518
85656
  var applyBtn = toolbar.getActionById("apply");
85519
85657
  var cancelBtn = toolbar.getActionById("cancel");
85520
- cancelBtn.title = _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("cancel");
85658
+ cancelBtn.title = _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("cancel", locale);
85521
85659
  cancelBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sd-btn sd-btn--small";
85522
- applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok");
85660
+ applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok", locale);
85523
85661
  applyBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sv-popup__button--danger sd-btn sd-btn--small sd-btn--danger";
85524
85662
  popupViewModel.width = "452px";
85525
85663
  return true;