survey-react-ui 1.9.116 → 1.9.117

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/README.md CHANGED
@@ -38,6 +38,10 @@ To get started with SurveyJS React Form Library, refer to the following tutorial
38
38
  - [Live Examples](https://surveyjs.io/form-library/examples/nps-question/reactjs)
39
39
  - [What's New](https://surveyjs.io/WhatsNew)
40
40
 
41
+ ## Build SurveyJS React Form Library from Sources
42
+
43
+ Refer to instructions in the root README file: [Build the SurveyJS Form Library from Sources](https://github.com/surveyjs/survey-library#build-the-surveyjs-form-library-from-sources).
44
+
41
45
  ## Licensing
42
46
 
43
47
  SurveyJS Form Library is distributed under the [MIT license](https://github.com/surveyjs/survey-library/blob/master/LICENSE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "survey-react-ui",
3
- "version": "1.9.116",
3
+ "version": "1.9.117",
4
4
  "description": "survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.",
5
5
  "keywords": [
6
6
  "Survey",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "typings": "survey-react-ui.d.ts",
23
23
  "dependencies": {
24
- "survey-core": "1.9.116",
24
+ "survey-core": "1.9.117",
25
25
  "react": "^16.5.0 || ^17.0.1 || ^18.1.0",
26
26
  "react-dom": "^16.5.0 || ^17.0.1 || ^18.1.0"
27
27
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.116
2
+ * surveyjs - Survey JavaScript library v1.9.117
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
  */
@@ -1932,6 +1932,10 @@ var ConsoleWarnings = /** @class */ (function () {
1932
1932
  // eslint-disable-next-line no-console
1933
1933
  console.warn(text);
1934
1934
  };
1935
+ ConsoleWarnings.error = function (text) {
1936
+ // eslint-disable-next-line no-console
1937
+ console.error(text);
1938
+ };
1935
1939
  return ConsoleWarnings;
1936
1940
  }());
1937
1941
 
@@ -2560,7 +2564,7 @@ __webpack_require__.r(__webpack_exports__);
2560
2564
 
2561
2565
 
2562
2566
 
2563
- Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.9.116", "survey-react-ui");
2567
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.9.117", "survey-react-ui");
2564
2568
 
2565
2569
 
2566
2570
  /***/ }),
@@ -6253,8 +6257,8 @@ var OperandMaker = /** @class */ (function () {
6253
6257
  right = OperandMaker.convertValForDateCompare(right, left);
6254
6258
  return OperandMaker.isTwoValueEquals(left, right, strictCompare !== true);
6255
6259
  },
6256
- notequal: function (left, right) {
6257
- return !OperandMaker.binaryFunctions.equal(left, right);
6260
+ notequal: function (left, right, strictCompare) {
6261
+ return !OperandMaker.binaryFunctions.equal(left, right, strictCompare);
6258
6262
  },
6259
6263
  contains: function (left, right) {
6260
6264
  return OperandMaker.binaryFunctions.containsCore(left, right, true);
@@ -7296,6 +7300,10 @@ function property(options) {
7296
7300
  if (!options || !options.localizable) {
7297
7301
  Object.defineProperty(target, key, {
7298
7302
  get: function () {
7303
+ // const serializationProperty = Serializer.getProperty(target.getType(), key);
7304
+ // if(!!serializationProperty && options.defaultValue !== undefined) {
7305
+ // ConsoleWarnings.error("remove defaultValue from @property for class " + target.getType() + " property name is " + key);
7306
+ // }
7299
7307
  var defaultVal = null;
7300
7308
  if (!!options) {
7301
7309
  if (typeof options.getDefaultValue === "function") {
@@ -9297,9 +9305,6 @@ var LocalizableString = /** @class */ (function () {
9297
9305
  };
9298
9306
  LocalizableString.prototype.isLocaleTextEqualsWithDefault = function (loc, val) {
9299
9307
  var res = this.getLocaleTextCore(loc);
9300
- if (!res && this.onGetDefaultTextCallback) {
9301
- res = this.onGetDefaultTextCallback();
9302
- }
9303
9308
  if (res === val)
9304
9309
  return true;
9305
9310
  return this.isValueEmpty(res) && this.isValueEmpty(val);
@@ -12580,7 +12585,7 @@ var SvgIcon = /** @class */ (function (_super) {
12580
12585
  className += " " + this.props.className;
12581
12586
  }
12582
12587
  return (this.props.iconName ?
12583
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { className: className, style: this.props.style, onClick: this.props.onClick, ref: this.svgIconRef, role: "img", "aria-label": this.props.title },
12588
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { className: className, style: this.props.style, onClick: this.props.onClick, ref: this.svgIconRef, role: "img" },
12584
12589
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("use", null))
12585
12590
  : null);
12586
12591
  };
@@ -13049,7 +13054,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
13049
13054
  dropdownListModel.inputStringRendered = e.target.value;
13050
13055
  }
13051
13056
  };
13052
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), tabIndex: dropdownListModel.inputReadOnly ? undefined : 0,
13057
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), tabIndex: dropdownListModel.noTabIndex ? undefined : 0,
13053
13058
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13054
13059
  // @ts-ignore
13055
13060
  disabled: this.question.isInputReadOnly, required: this.question.isRequired, onKeyDown: this.keyhandler, onBlur: this.blur, role: this.question.ariaRole, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant },
@@ -13062,20 +13067,20 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
13062
13067
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { style: { visibility: "hidden" }, "data-bind": "text: model.filterString" }, dropdownListModel.inputStringRendered),
13063
13068
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, dropdownListModel.hintStringSuffix))) : null,
13064
13069
  valueElement,
13065
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, role: dropdownListModel.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant, placeholder: dropdownListModel.placeholderRendered, readOnly: !dropdownListModel.searchEnabled ? true : undefined, tabIndex: dropdownListModel.inputReadOnly ? undefined : -1, disabled: this.question.isInputReadOnly, inputMode: dropdownListModel.inputMode, onChange: function (e) { onInputChange(e); }, onBlur: this.blur, onFocus: this.focus })),
13070
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, role: dropdownListModel.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant, placeholder: dropdownListModel.placeholderRendered, readOnly: dropdownListModel.filterReadOnly ? true : undefined, tabIndex: dropdownListModel.noTabIndex ? undefined : -1, disabled: this.question.isInputReadOnly, inputMode: dropdownListModel.inputMode, onChange: function (e) { onInputChange(e); }, onBlur: this.blur, onFocus: this.focus })),
13066
13071
  this.createClearButton()));
13067
13072
  };
13068
13073
  SurveyQuestionDropdownBase.prototype.createClearButton = function () {
13069
13074
  if (!this.question.allowClear || !this.question.cssClasses.cleanButtonIconId)
13070
13075
  return null;
13071
13076
  var style = { display: !this.question.showClearButton ? "none" : "" };
13072
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.cleanButton, style: style, onClick: this.clear },
13077
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.cleanButton, style: style, onClick: this.clear, tabIndex: this.question.showClearButton ? 0 : -1 },
13073
13078
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: this.question.cssClasses.cleanButtonSvg, iconName: this.question.cssClasses.cleanButtonIconId, title: this.question.clearCaption, size: "auto" })));
13074
13079
  };
13075
13080
  SurveyQuestionDropdownBase.prototype.createChevronButton = function () {
13076
13081
  if (!this.question.cssClasses.chevronButtonIconId)
13077
13082
  return null;
13078
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.chevronButton, onPointerDown: this.chevronPointerDown },
13083
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.chevronButton, "aria-hidden": "true", onPointerDown: this.chevronPointerDown },
13079
13084
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: this.question.cssClasses.chevronButtonSvg, iconName: this.question.cssClasses.chevronButtonIconId, size: "auto" })));
13080
13085
  };
13081
13086
  SurveyQuestionDropdownBase.prototype.renderOther = function (cssClasses) {
@@ -16059,6 +16064,9 @@ var SurveyQuestionCommentItem = /** @class */ (function (_super) {
16059
16064
  SurveyQuestionCommentItem.prototype.onCommentInput = function (event) {
16060
16065
  this.props.question.onCommentInput(event);
16061
16066
  };
16067
+ SurveyQuestionCommentItem.prototype.onCommentCompositionUpdate = function (event) {
16068
+ this.props.question.onCompositionUpdateComment(event);
16069
+ };
16062
16070
  SurveyQuestionCommentItem.prototype.getComment = function () {
16063
16071
  return this.props.question.comment;
16064
16072
  };
@@ -16085,7 +16093,7 @@ var SurveyQuestionCommentItem = /** @class */ (function (_super) {
16085
16093
  if (question.isReadOnlyRenderDiv()) {
16086
16094
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, comment);
16087
16095
  }
16088
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, value: comment, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onChange: handleOnChange, onBlur: function (e) { _this.onCommentChange(e); handleOnChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, "aria-required": question.isRequired || question.a11y_input_ariaRequired, "aria-label": question.ariaLabel || question.a11y_input_ariaLabel, style: { resize: question.resizeStyle } }));
16096
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, value: comment, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onChange: handleOnChange, onBlur: function (e) { _this.onCommentChange(e); handleOnChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, onCompositionUpdate: function (e) { return _this.onCommentCompositionUpdate(e); }, "aria-required": question.isRequired || question.a11y_input_ariaRequired, "aria-label": question.ariaLabel || question.a11y_input_ariaLabel, style: { resize: question.resizeStyle } }));
16089
16097
  };
16090
16098
  return SurveyQuestionCommentItem;
16091
16099
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
@@ -16101,6 +16109,9 @@ var SurveyQuestionOtherValueItem = /** @class */ (function (_super) {
16101
16109
  SurveyQuestionOtherValueItem.prototype.onCommentInput = function (event) {
16102
16110
  this.props.question.onOtherValueInput(event);
16103
16111
  };
16112
+ SurveyQuestionOtherValueItem.prototype.onCommentCompositionUpdate = function (event) {
16113
+ this.props.question.onCompositionUpdateOtherValue(event);
16114
+ };
16104
16115
  SurveyQuestionOtherValueItem.prototype.getComment = function () {
16105
16116
  return this.props.question.otherValue;
16106
16117
  };
@@ -17160,7 +17171,7 @@ var SurveyQuestionMatrixRow = /** @class */ (function (_super) {
17160
17171
  else {
17161
17172
  td = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { key: key, "data-responsive-title": column.locText.renderedHtml, className: this.question.cssClasses.cell },
17162
17173
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: itemClass },
17163
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: inputId, type: "radio", className: this.cssClasses.itemValue, name: row.fullName, value: column.value, disabled: this.isDisplayMode, checked: isChecked, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": column.locText.renderedHtml, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
17174
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: inputId, type: "radio", className: this.cssClasses.itemValue, name: row.fullName, value: column.value, disabled: this.isDisplayMode, checked: isChecked, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.getCellAriaLabel(row.locText.renderedHtml, column.locText.renderedHtml), "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
17164
17175
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
17165
17176
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.cssClasses.itemDecorator },
17166
17177
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("use", { xlinkHref: this.question.itemSvgIcon })) :
@@ -18709,7 +18720,7 @@ var SurveyQuestionTagbox = /** @class */ (function (_super) {
18709
18720
  var _this = this;
18710
18721
  var dropdownMultiSelectListModel = dropdownListModel;
18711
18722
  var items = this.question.selectedChoices.map(function (choice, index) { return _this.renderItem("item" + index, choice); });
18712
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), tabIndex: dropdownListModel.inputReadOnly ? undefined : 0,
18723
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.question.inputId, className: this.question.getControlClass(), tabIndex: dropdownListModel.noTabIndex ? undefined : 0,
18713
18724
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18714
18725
  // @ts-ignore
18715
18726
  disabled: this.question.isInputReadOnly, required: this.question.isRequired, onKeyDown: this.keyhandler, onBlur: this.blur, role: this.question.ariaRole, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-controls": dropdownListModel.listElementId, "aria-activedescendant": dropdownListModel.ariaActivedescendant },
@@ -19504,7 +19515,7 @@ var TagboxFilterString = /** @class */ (function (_super) {
19504
19515
  (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hintSuffix },
19505
19516
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { style: { visibility: "hidden" }, "data-bind": "text: model.filterString" }, this.model.inputStringRendered),
19506
19517
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.model.hintStringSuffix))) : null,
19507
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), inputMode: this.model.inputMode, ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, disabled: this.question.isInputReadOnly, readOnly: !this.model.searchEnabled ? true : undefined, size: !this.model.inputStringRendered ? 1 : undefined, role: this.model.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-controls": this.model.listElementId, "aria-activedescendant": this.model.ariaActivedescendant, placeholder: this.model.filterStringPlaceholder, onKeyDown: function (e) { _this.keyhandler(e); }, onChange: function (e) { _this.onChange(e); }, onBlur: function (e) { _this.onBlur(e); }, onFocus: function (e) { _this.onFocus(e); } }))));
19518
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), inputMode: this.model.inputMode, ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, disabled: this.question.isInputReadOnly, readOnly: this.model.filterReadOnly ? true : undefined, size: !this.model.inputStringRendered ? 1 : undefined, role: this.model.filterStringEnabled ? this.question.ariaRole : undefined, "aria-expanded": this.question.ariaExpanded === null ? undefined : this.question.ariaExpanded === "true", "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-controls": this.model.listElementId, "aria-activedescendant": this.model.ariaActivedescendant, placeholder: this.model.filterStringPlaceholder, onKeyDown: function (e) { _this.keyhandler(e); }, onChange: function (e) { _this.onChange(e); }, onBlur: function (e) { _this.onBlur(e); }, onFocus: function (e) { _this.onFocus(e); } }))));
19508
19519
  };
19509
19520
  return TagboxFilterString;
19510
19521
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"]));
@@ -20156,6 +20167,11 @@ var settings = {
20156
20167
  * Default value: `"none"`
20157
20168
  */
20158
20169
  noneItemValue: "none",
20170
+ specialChoicesOrder: {
20171
+ selectAllItem: [-1],
20172
+ noneItem: [1],
20173
+ otherItem: [2]
20174
+ },
20159
20175
  /**
20160
20176
  * A list of supported validators by question type.
20161
20177
  */