survey-react-ui 2.0.4 → 2.0.6
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/fesm/survey-react-ui.mjs +259 -205
- package/fesm/survey-react-ui.mjs.map +1 -1
- package/package.json +2 -2
- package/survey-react-ui.js +307 -156
- package/survey-react-ui.js.map +1 -1
- package/survey-react-ui.min.js +1 -1
- package/survey-react-ui.min.js.LICENSE.txt +1 -1
- package/typings/src/components/breadcrumbs/breadcrumbs.d.ts +15 -0
- package/typings/src/reactquestion.d.ts +3 -1
- package/typings/src/reactquestion_file.d.ts +0 -2
- package/typings/src/reactquestion_matrixdynamic.d.ts +6 -1
- package/typings/src/reactquestion_paneldynamic.d.ts +8 -6
- package/typings/src/reactquestion_rating.d.ts +1 -1
- package/typings/src/reactquestion_singleinputsummary.d.ts +12 -0
package/fesm/survey-react-ui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* surveyjs - Survey JavaScript library v2.0.
|
|
2
|
+
* surveyjs - Survey JavaScript library v2.0.6
|
|
3
3
|
* Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
|
|
4
4
|
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
|
5
5
|
*/
|
|
@@ -1006,7 +1006,7 @@ class TitleContent extends React.Component {
|
|
|
1006
1006
|
}
|
|
1007
1007
|
render() {
|
|
1008
1008
|
if (this.element.isTitleRenderedAsString)
|
|
1009
|
-
return SurveyElementBase.renderLocString(this.element.
|
|
1009
|
+
return SurveyElementBase.renderLocString(this.element.locRenderedTitle);
|
|
1010
1010
|
var spans = this.renderTitleSpans(this.element.getTitleOwner(), this.cssClasses);
|
|
1011
1011
|
return React.createElement(React.Fragment, null, spans);
|
|
1012
1012
|
}
|
|
@@ -1028,7 +1028,7 @@ class TitleContent extends React.Component {
|
|
|
1028
1028
|
spans.push(this.renderRequireText(element));
|
|
1029
1029
|
spans.push(getSpaceSpan("req-sp"));
|
|
1030
1030
|
}
|
|
1031
|
-
spans.push(SurveyElementBase.renderLocString(element.
|
|
1031
|
+
spans.push(SurveyElementBase.renderLocString(element.locRenderedTitle, null, "q_title"));
|
|
1032
1032
|
if (element.isRequireTextAfterTitle) {
|
|
1033
1033
|
spans.push(getSpaceSpan("req-sp"));
|
|
1034
1034
|
spans.push(this.renderRequireText(element));
|
|
@@ -1296,6 +1296,81 @@ class SurveyElementHeader extends SurveyElementBase {
|
|
|
1296
1296
|
}
|
|
1297
1297
|
}
|
|
1298
1298
|
|
|
1299
|
+
class SurveyQuestionSigleInputSummary extends ReactSurveyElement {
|
|
1300
|
+
constructor(props) {
|
|
1301
|
+
super(props);
|
|
1302
|
+
}
|
|
1303
|
+
get css() {
|
|
1304
|
+
return this.props.css;
|
|
1305
|
+
}
|
|
1306
|
+
get summary() {
|
|
1307
|
+
return this.props.summary;
|
|
1308
|
+
}
|
|
1309
|
+
renderElement() {
|
|
1310
|
+
if (!this.summary)
|
|
1311
|
+
return null;
|
|
1312
|
+
return this.summary.isEmpty() ? this.renderNoItems() : this.renderItems();
|
|
1313
|
+
}
|
|
1314
|
+
renderItems() {
|
|
1315
|
+
return (React.createElement("div", { className: this.css.summary }, this.summary.items.map((item, index) => this.renderItem(item, index))));
|
|
1316
|
+
}
|
|
1317
|
+
renderNoItems() {
|
|
1318
|
+
const q = this.summary.question;
|
|
1319
|
+
const placeholder = ReactElementFactory.Instance.createElement("sv-placeholder-" + q.getTemplate(), { cssClasses: this.css, question: q });
|
|
1320
|
+
return placeholder || React.createElement("div", null, this.renderLocString(this.summary.noEntry));
|
|
1321
|
+
}
|
|
1322
|
+
renderItem(item, index) {
|
|
1323
|
+
const btnEdit = item.btnEdit ?
|
|
1324
|
+
React.createElement("button", { className: this.css.summaryRowActionEdit, onClick: () => item.btnEdit.action(), title: item.btnEdit.title },
|
|
1325
|
+
React.createElement(SvgIcon, { iconName: "icon-editsmall-16x16", iconSize: "auto" })) : null;
|
|
1326
|
+
const btnDelete = item.showRemove && item.btnRemove ?
|
|
1327
|
+
React.createElement("button", { className: this.css.summaryRowActionDelete, onClick: () => item.btnRemove.action(), title: item.btnRemove.title },
|
|
1328
|
+
React.createElement(SvgIcon, { iconName: "icon-delete-16x16", iconSize: "auto" })) : null;
|
|
1329
|
+
return React.createElement("div", { className: this.css.summaryRow, key: index },
|
|
1330
|
+
React.createElement("div", { className: this.css.summaryRowContent }, this.renderLocString(item.locText)),
|
|
1331
|
+
React.createElement("div", { className: this.css.summaryRowActions },
|
|
1332
|
+
btnEdit,
|
|
1333
|
+
btnDelete));
|
|
1334
|
+
}
|
|
1335
|
+
}
|
|
1336
|
+
ReactElementFactory.Instance.registerElement("sv-singleinput-summary", (props) => {
|
|
1337
|
+
return React.createElement(SurveyQuestionSigleInputSummary, props);
|
|
1338
|
+
});
|
|
1339
|
+
|
|
1340
|
+
class SurveyBreadcrumbs extends SurveyElementBase {
|
|
1341
|
+
constructor(props) {
|
|
1342
|
+
super(props);
|
|
1343
|
+
}
|
|
1344
|
+
getStateElement() {
|
|
1345
|
+
return this.props.model;
|
|
1346
|
+
}
|
|
1347
|
+
get items() {
|
|
1348
|
+
return this.props.model.actions;
|
|
1349
|
+
}
|
|
1350
|
+
get css() {
|
|
1351
|
+
return this.props.css;
|
|
1352
|
+
}
|
|
1353
|
+
renderElement() {
|
|
1354
|
+
if (!this.items || !this.items.length)
|
|
1355
|
+
return null;
|
|
1356
|
+
const items = this.renderItems();
|
|
1357
|
+
return (React.createElement("div", { className: this.css.breadcrumbsRoot }, items));
|
|
1358
|
+
}
|
|
1359
|
+
renderItems() {
|
|
1360
|
+
const result = [];
|
|
1361
|
+
this.items.concat([]).forEach((item, itemIndex) => {
|
|
1362
|
+
if (itemIndex) {
|
|
1363
|
+
result.push(React.createElement(SvgIcon, { key: item.renderedId + "_separator", className: this.css.breadcrumbsSeparator, iconName: "arrowright-16x16", size: "auto" }));
|
|
1364
|
+
}
|
|
1365
|
+
result.push(React.createElement(SurveyAction, { key: item.renderedId, item: item }));
|
|
1366
|
+
});
|
|
1367
|
+
return result;
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
ReactElementFactory.Instance.registerElement("sv-breadcrumbs", (props) => {
|
|
1371
|
+
return React.createElement(SurveyBreadcrumbs, props);
|
|
1372
|
+
});
|
|
1373
|
+
|
|
1299
1374
|
class SurveyQuestion extends SurveyElementBase {
|
|
1300
1375
|
static renderQuestionBody(creator, question) {
|
|
1301
1376
|
// if (!question.isVisible) return null;
|
|
@@ -1369,21 +1444,13 @@ class SurveyQuestion extends SurveyElementBase {
|
|
|
1369
1444
|
};
|
|
1370
1445
|
var cssClasses = question.cssClasses;
|
|
1371
1446
|
var questionRender = this.renderQuestion();
|
|
1372
|
-
var errorsTop = this.question.showErrorOnTop
|
|
1373
|
-
? this.renderErrors(cssClasses, "top")
|
|
1374
|
-
: null;
|
|
1375
|
-
var errorsBottom = this.question.showErrorOnBottom
|
|
1376
|
-
? this.renderErrors(cssClasses, "bottom")
|
|
1377
|
-
: null;
|
|
1378
1447
|
var comment = question && question.hasComment ? this.renderComment(cssClasses) : null;
|
|
1379
1448
|
var descriptionUnderInput = question.hasDescriptionUnderInput
|
|
1380
1449
|
? this.renderDescription()
|
|
1381
1450
|
: null;
|
|
1382
1451
|
return (React.createElement("div", { className: question.cssContent || undefined, style: contentStyle, role: "presentation" },
|
|
1383
|
-
errorsTop,
|
|
1384
1452
|
questionRender,
|
|
1385
1453
|
comment,
|
|
1386
|
-
errorsBottom,
|
|
1387
1454
|
descriptionUnderInput));
|
|
1388
1455
|
}
|
|
1389
1456
|
renderElement() {
|
|
@@ -1398,16 +1465,31 @@ class SurveyQuestion extends SurveyElementBase {
|
|
|
1398
1465
|
const errorsBelowQuestion = this.question.showErrorsBelowQuestion
|
|
1399
1466
|
? this.renderErrors(cssClasses, "")
|
|
1400
1467
|
: null;
|
|
1401
|
-
|
|
1402
|
-
|
|
1468
|
+
const rootStyle = question.getRootStyle();
|
|
1469
|
+
const singleBreadcrumbs = question.singleInputHasActions ? this.renderSingleInputBreadcrumbs(question, cssClasses) : undefined;
|
|
1470
|
+
const singleSummary = question.singleInputSummary ? this.renderSingleInputSummary(question, cssClasses) : undefined;
|
|
1471
|
+
const singleInput = singleSummary || (question.singleInputQuestion ? this.renderSingleInputQuestion(question, cssClasses) : undefined);
|
|
1472
|
+
const questionContent = singleInput || this.wrapQuestionContent(this.renderQuestionContent());
|
|
1403
1473
|
return (React.createElement(React.Fragment, null,
|
|
1404
1474
|
React.createElement("div", { ref: this.rootRef, id: question.id, className: question.getRootCss(), style: rootStyle, role: question.ariaRole, "aria-required": this.question.ariaRequired, "aria-invalid": this.question.ariaInvalid, "aria-label": this.question.ariaLabel, "aria-labelledby": question.ariaLabelledBy, "aria-describedby": question.ariaDescribedBy, "aria-expanded": question.ariaExpanded, "data-name": question.name },
|
|
1475
|
+
singleBreadcrumbs,
|
|
1405
1476
|
errorsAboveQuestion,
|
|
1406
1477
|
headerTop,
|
|
1407
1478
|
questionContent,
|
|
1408
1479
|
headerBottom,
|
|
1409
1480
|
errorsBelowQuestion)));
|
|
1410
1481
|
}
|
|
1482
|
+
renderSingleInputQuestion(question, cssClasses) {
|
|
1483
|
+
const singleQuestion = question.singleInputQuestion;
|
|
1484
|
+
const key = singleQuestion.id;
|
|
1485
|
+
return React.createElement(SurveyQuestion, { key: key, element: singleQuestion, creator: this.creator, css: cssClasses });
|
|
1486
|
+
}
|
|
1487
|
+
renderSingleInputBreadcrumbs(question, cssClasses) {
|
|
1488
|
+
return React.createElement(SurveyBreadcrumbs, { model: question.singleInputActions, css: cssClasses });
|
|
1489
|
+
}
|
|
1490
|
+
renderSingleInputSummary(question, cssClasses) {
|
|
1491
|
+
return React.createElement(SurveyQuestionSigleInputSummary, { summary: question.singleInputSummary, creator: this.creator, css: cssClasses });
|
|
1492
|
+
}
|
|
1411
1493
|
wrapElement(element) {
|
|
1412
1494
|
const survey = this.question.survey;
|
|
1413
1495
|
let wrapper = null;
|
|
@@ -1437,6 +1519,8 @@ class SurveyQuestion extends SurveyElementBase {
|
|
|
1437
1519
|
React.createElement(SurveyQuestionCommentItem, { question: this.question, cssClasses: cssClasses, otherCss: cssClasses.other, isDisplayMode: this.question.isInputReadOnly })));
|
|
1438
1520
|
}
|
|
1439
1521
|
renderHeader(question) {
|
|
1522
|
+
if (question.singleInputHideHeader)
|
|
1523
|
+
return null;
|
|
1440
1524
|
return React.createElement(SurveyElementHeader, { element: question });
|
|
1441
1525
|
}
|
|
1442
1526
|
renderErrors(cssClasses, location) {
|
|
@@ -1460,9 +1544,6 @@ class SurveyElementErrors extends ReactSurveyElement {
|
|
|
1460
1544
|
get creator() {
|
|
1461
1545
|
return this.props.creator;
|
|
1462
1546
|
}
|
|
1463
|
-
get location() {
|
|
1464
|
-
return this.props.location;
|
|
1465
|
-
}
|
|
1466
1547
|
getState(prevState = null) {
|
|
1467
1548
|
return !prevState ? { error: 0 } : { error: prevState.error + 1 };
|
|
1468
1549
|
}
|
|
@@ -1842,7 +1923,7 @@ class PopupModal extends SurveyElementBase {
|
|
|
1842
1923
|
PopupModal.modalDescriptors = [];
|
|
1843
1924
|
|
|
1844
1925
|
/*!
|
|
1845
|
-
* surveyjs - Survey JavaScript library v2.0.
|
|
1926
|
+
* surveyjs - Survey JavaScript library v2.0.6
|
|
1846
1927
|
* Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
|
|
1847
1928
|
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
|
1848
1929
|
*/
|
|
@@ -1872,9 +1953,11 @@ var iconsV1 = {
|
|
|
1872
1953
|
"close-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.4101 12L20.7001 4.71C21.0901 4.32 21.0901 3.69 20.7001 3.3C20.3101 2.91 19.6801 2.91 19.2901 3.3L12.0001 10.59L4.71006 3.29C4.32006 2.9 3.68006 2.9 3.29006 3.29C2.90006 3.68 2.90006 4.32 3.29006 4.71L10.5801 12L3.29006 19.29C2.90006 19.68 2.90006 20.31 3.29006 20.7C3.49006 20.9 3.74006 20.99 4.00006 20.99C4.26006 20.99 4.51006 20.89 4.71006 20.7L12.0001 13.41L19.2901 20.7C19.4901 20.9 19.7401 20.99 20.0001 20.99C20.2601 20.99 20.5101 20.89 20.7101 20.7C21.1001 20.31 21.1001 19.68 20.7101 19.29L13.4201 12H13.4101Z\"></path></svg>",
|
|
1873
1954
|
"collapse-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 6L3 5L8 10L13 5L14 6L8 12L2 6Z\"></path></svg>",
|
|
1874
1955
|
"collapsedetails-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 7H3V9H13V7Z\"></path></svg>",
|
|
1956
|
+
"delete-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 2H14H11V1C11 0.4 10.6 0 10 0H7C6.4 0 6 0.4 6 1V2H3H2V4H3V14C3 15.1 3.9 16 5 16H12C13.1 16 14 15.1 14 14V4H15V2ZM7 1H10V2H7V1ZM12 14H5V4H12V14ZM7 13H6V5H7V13ZM9 13H8V5H9V13ZM11 13H10V5H11V13Z\"></path></svg>",
|
|
1875
1957
|
"delete-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 4H20H16V2C16 0.9 15.1 0 14 0H10C8.9 0 8 0.9 8 2V4H4H2V6H4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V6H22V4ZM10 2H14V4H10V2ZM18 20H6V6H8H16H18V20ZM14 8H16V18H14V8ZM11 8H13V18H11V8ZM8 8H10V18H8V8Z\"></path></svg>",
|
|
1876
1958
|
"drag-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 6C13 4.9 13.9 4 15 4C16.1 4 17 4.9 17 6C17 7.1 16.1 8 15 8C13.9 8 13 7.1 13 6ZM9 4C7.9 4 7 4.9 7 6C7 7.1 7.9 8 9 8C10.1 8 11 7.1 11 6C11 4.9 10.1 4 9 4ZM15 10C13.9 10 13 10.9 13 12C13 13.1 13.9 14 15 14C16.1 14 17 13.1 17 12C17 10.9 16.1 10 15 10ZM9 10C7.9 10 7 10.9 7 12C7 13.1 7.9 14 9 14C10.1 14 11 13.1 11 12C11 10.9 10.1 10 9 10ZM15 16C13.9 16 13 16.9 13 18C13 19.1 13.9 20 15 20C16.1 20 17 19.1 17 18C17 16.9 16.1 16 15 16ZM9 16C7.9 16 7 16.9 7 18C7 19.1 7.9 20 9 20C10.1 20 11 19.1 11 18C11 16.9 10.1 16 9 16Z\"></path></svg>",
|
|
1877
1959
|
"draghorizontal-24x16": "<svg viewBox=\"0 0 24 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 9C19.1 9 20 9.9 20 11C20 12.1 19.1 13 18 13C16.9 13 16 12.1 16 11C16 9.9 16.9 9 18 9ZM20 5C20 3.9 19.1 3 18 3C16.9 3 16 3.9 16 5C16 6.1 16.9 7 18 7C19.1 7 20 6.1 20 5ZM14 11C14 9.9 13.1 9 12 9C10.9 9 10 9.9 10 11C10 12.1 10.9 13 12 13C13.1 13 14 12.1 14 11ZM14 5C14 3.9 13.1 3 12 3C10.9 3 10 3.9 10 5C10 6.1 10.9 7 12 7C13.1 7 14 6.1 14 5ZM8 11C8 9.9 7.1 9 6 9C4.9 9 4 9.9 4 11C4 12.1 4.9 13 6 13C7.1 13 8 12.1 8 11ZM8 5C8 3.9 7.1 3 6 3C4.9 3 4 3.9 4 5C4 6.1 4.9 7 6 7C7.1 7 8 6.1 8 5Z\"></path></svg>",
|
|
1960
|
+
"editsmall-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.59 4.5884L11.42 2.4184C11.03 2.0284 10.52 1.8284 10.01 1.8284C9.5 1.8284 8.99 2.0284 8.6 2.4184L3.76 7.2384C2.63 8.3684 2 9.8884 2 11.4784V12.9884C2 13.5384 2.45 13.9884 3 13.9884H4.51C6.1 13.9884 7.63 13.3584 8.75 12.2284L13.58 7.3984C14.36 6.6184 14.36 5.3484 13.58 4.5684L13.59 4.5884ZM7.35 10.8284C6.59 11.5884 5.59 11.9984 4.52 11.9984H4.01V11.4884C4.01 10.4184 4.43 9.4184 5.18 8.6584L7.72 6.1184L9.89 8.2884L7.35 10.8284ZM11.3 6.8784L9.13 4.7084L10.01 3.8284L12.18 5.9984L11.3 6.8784Z\"></path></svg>",
|
|
1878
1961
|
"expand-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 14L5 13L10 8L5 3L6 2L12 8L6 14Z\"></path></svg>",
|
|
1879
1962
|
"expanddetails-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 7H9V3H7V7H3V9H7V13H9V9H13V7Z\"></path></svg>",
|
|
1880
1963
|
"file-72x72": "<svg viewBox=\"0 0 72 72\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M62.83 12.83L53.17 3.17C52.7982 2.79866 52.357 2.50421 51.8714 2.30346C51.3858 2.1027 50.8654 1.99959 50.34 2H14C12.4087 2 10.8826 2.63214 9.75735 3.75736C8.63214 4.88258 8 6.4087 8 8V64C8 65.5913 8.63214 67.1174 9.75735 68.2426C10.8826 69.3679 12.4087 70 14 70H58C59.5913 70 61.1174 69.3679 62.2426 68.2426C63.3679 67.1174 64 65.5913 64 64V15.66C64.0004 15.1346 63.8973 14.6142 63.6965 14.1286C63.4958 13.643 63.2013 13.2018 62.83 12.83ZM52 4.83L61.17 14H56C54.9391 14 53.9217 13.5786 53.1716 12.8284C52.4214 12.0783 52 11.0609 52 10V4.83ZM62 64C62 65.0609 61.5786 66.0783 60.8284 66.8284C60.0783 67.5786 59.0609 68 58 68H14C12.9391 68 11.9217 67.5786 11.1716 66.8284C10.4214 66.0783 10 65.0609 10 64V8C10 6.93914 10.4214 5.92172 11.1716 5.17157C11.9217 4.42143 12.9391 4 14 4H50V10C50 11.5913 50.6321 13.1174 51.7574 14.2426C52.8826 15.3679 54.4087 16 56 16H62V64ZM22 26H50V28H22V26ZM22 32H50V34H22V32ZM22 38H50V40H22V38ZM22 44H50V46H22V44Z\"></path></svg>",
|
|
@@ -1910,7 +1993,7 @@ var iconsV1 = {
|
|
|
1910
1993
|
};
|
|
1911
1994
|
|
|
1912
1995
|
/*!
|
|
1913
|
-
* surveyjs - Survey JavaScript library v2.0.
|
|
1996
|
+
* surveyjs - Survey JavaScript library v2.0.6
|
|
1914
1997
|
* Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
|
|
1915
1998
|
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
|
1916
1999
|
*/
|
|
@@ -1940,9 +2023,11 @@ var iconsV2 = {
|
|
|
1940
2023
|
"close-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.5275 18.4675C19.8175 18.7575 19.8175 19.2375 19.5275 19.5275C19.3775 19.6775 19.1875 19.7475 18.9975 19.7475C18.8075 19.7475 18.6175 19.6775 18.4675 19.5275L11.9975 13.0575L5.5275 19.5275C5.3775 19.6775 5.1875 19.7475 4.9975 19.7475C4.8075 19.7475 4.6175 19.6775 4.4675 19.5275C4.1775 19.2375 4.1775 18.7575 4.4675 18.4675L10.9375 11.9975L4.4675 5.5275C4.1775 5.2375 4.1775 4.7575 4.4675 4.4675C4.7575 4.1775 5.2375 4.1775 5.5275 4.4675L11.9975 10.9375L18.4675 4.4675C18.7575 4.1775 19.2375 4.1775 19.5275 4.4675C19.8175 4.7575 19.8175 5.2375 19.5275 5.5275L13.0575 11.9975L19.5275 18.4675Z\"></path></svg>",
|
|
1941
2024
|
"collapse-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.75 8C11.75 8.41 11.41 8.75 11 8.75H5C4.59 8.75 4.25 8.41 4.25 8C4.25 7.59 4.59 7.25 5 7.25H11C11.41 7.25 11.75 7.59 11.75 8Z\"></path></svg>",
|
|
1942
2025
|
"collapsedetails-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.75 8C11.75 8.41 11.41 8.75 11 8.75H5C4.59 8.75 4.25 8.41 4.25 8C4.25 7.59 4.59 7.25 5 7.25H11C11.41 7.25 11.75 7.59 11.75 8Z\"></path></svg>",
|
|
2026
|
+
"delete-16x16": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M13 3.25H10.75V3C10.75 2.04 9.96 1.25 9 1.25H7C6.04 1.25 5.25 2.04 5.25 3V3.25H3C2.59 3.25 2.25 3.59 2.25 4C2.25 4.41 2.59 4.75 3 4.75H3.25V13C3.25 13.96 4.04 14.75 5 14.75H11C11.96 14.75 12.75 13.96 12.75 13V4.75H13C13.41 4.75 13.75 4.41 13.75 4C13.75 3.59 13.41 3.25 13 3.25ZM6.75 3C6.75 2.86 6.86 2.75 7 2.75H9C9.14 2.75 9.25 2.86 9.25 3V3.25H6.75V3ZM11.25 13C11.25 13.14 11.14 13.25 11 13.25H5C4.86 13.25 4.75 13.14 4.75 13V4.75H11.25V13ZM9.25 6.25C9.66 6.25 10 6.59 10 7V11C10 11.41 9.66 11.75 9.25 11.75C8.84 11.75 8.5 11.41 8.5 11V7C8.5 6.59 8.84 6.25 9.25 6.25ZM7.5 7V11C7.5 11.41 7.16 11.75 6.75 11.75C6.34 11.75 6 11.41 6 11V7C6 6.59 6.34 6.25 6.75 6.25C7.16 6.25 7.5 6.59 7.5 7Z\"></path></svg>",
|
|
1943
2027
|
"delete-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.75 9V17C12.75 17.41 12.41 17.75 12 17.75C11.59 17.75 11.25 17.41 11.25 17V9C11.25 8.59 11.59 8.25 12 8.25C12.41 8.25 12.75 8.59 12.75 9ZM14.25 9V17C14.25 17.41 14.59 17.75 15 17.75C15.41 17.75 15.75 17.41 15.75 17V9C15.75 8.59 15.41 8.25 15 8.25C14.59 8.25 14.25 8.59 14.25 9ZM9 8.25C8.59 8.25 8.25 8.59 8.25 9V17C8.25 17.41 8.59 17.75 9 17.75C9.41 17.75 9.75 17.41 9.75 17V9C9.75 8.59 9.41 8.25 9 8.25ZM20.75 6C20.75 6.41 20.41 6.75 20 6.75H18.75V18C18.75 19.52 17.52 20.75 16 20.75H8C6.48 20.75 5.25 19.52 5.25 18V6.75H4C3.59 6.75 3.25 6.41 3.25 6C3.25 5.59 3.59 5.25 4 5.25H8.25V4C8.25 3.04 9.04 2.25 10 2.25H14C14.96 2.25 15.75 3.04 15.75 4V5.25H20C20.41 5.25 20.75 5.59 20.75 6ZM9.75 5.25H14.25V4C14.25 3.86 14.14 3.75 14 3.75H10C9.86 3.75 9.75 3.86 9.75 4V5.25ZM17.25 6.75H6.75V18C6.75 18.69 7.31 19.25 8 19.25H16C16.69 19.25 17.25 18.69 17.25 18V6.75Z\"></path></svg>",
|
|
1944
2028
|
"drag-24x24": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.5 8.75C15.19 8.75 15.75 8.19 15.75 7.5C15.75 6.81 15.19 6.25 14.5 6.25C13.81 6.25 13.25 6.81 13.25 7.5C13.25 8.19 13.81 8.75 14.5 8.75ZM14.5 7.25C14.64 7.25 14.75 7.36 14.75 7.5C14.75 7.78 14.25 7.78 14.25 7.5C14.25 7.36 14.36 7.25 14.5 7.25ZM9.5 6.25C8.81 6.25 8.25 6.81 8.25 7.5C8.25 8.19 8.81 8.75 9.5 8.75C10.19 8.75 10.75 8.19 10.75 7.5C10.75 6.81 10.19 6.25 9.5 6.25ZM9.25 7.5C9.25 7.36 9.36 7.25 9.5 7.25C9.64 7.25 9.75 7.36 9.75 7.5C9.75 7.78 9.25 7.78 9.25 7.5ZM14.5 11.25C13.81 11.25 13.25 11.81 13.25 12.5C13.25 13.19 13.81 13.75 14.5 13.75C15.19 13.75 15.75 13.19 15.75 12.5C15.75 11.81 15.19 11.25 14.5 11.25ZM14.25 12.5C14.25 12.36 14.36 12.25 14.5 12.25C14.64 12.25 14.75 12.36 14.75 12.5C14.75 12.78 14.25 12.78 14.25 12.5ZM9.5 11.25C8.81 11.25 8.25 11.81 8.25 12.5C8.25 13.19 8.81 13.75 9.5 13.75C10.19 13.75 10.75 13.19 10.75 12.5C10.75 11.81 10.19 11.25 9.5 11.25ZM9.25 12.5C9.25 12.36 9.36 12.25 9.5 12.25C9.64 12.25 9.75 12.36 9.75 12.5C9.75 12.78 9.25 12.78 9.25 12.5ZM14.5 16.25C13.81 16.25 13.25 16.81 13.25 17.5C13.25 18.19 13.81 18.75 14.5 18.75C15.19 18.75 15.75 18.19 15.75 17.5C15.75 16.81 15.19 16.25 14.5 16.25ZM14.25 17.5C14.25 17.36 14.36 17.25 14.5 17.25C14.64 17.25 14.75 17.36 14.75 17.5C14.75 17.78 14.25 17.78 14.25 17.5ZM9.5 16.25C8.81 16.25 8.25 16.81 8.25 17.5C8.25 18.19 8.81 18.75 9.5 18.75C10.19 18.75 10.75 18.19 10.75 17.5C10.75 16.81 10.19 16.25 9.5 16.25ZM9.25 17.5C9.25 17.36 9.36 17.25 9.5 17.25C9.64 17.25 9.75 17.36 9.75 17.5C9.75 17.78 9.25 17.78 9.25 17.5Z\"></path></svg>",
|
|
1945
2029
|
"draghorizontal-24x16": "<svg viewBox=\"0 0 24 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 9.25C16.81 9.25 16.25 9.81 16.25 10.5C16.25 11.19 16.81 11.75 17.5 11.75C18.19 11.75 18.75 11.19 18.75 10.5C18.75 9.81 18.19 9.25 17.5 9.25ZM17.25 10.5C17.25 10.36 17.36 10.25 17.5 10.25C17.64 10.25 17.75 10.36 17.75 10.5C17.75 10.78 17.25 10.78 17.25 10.5ZM17.5 6.75C18.19 6.75 18.75 6.19 18.75 5.5C18.75 4.81 18.19 4.25 17.5 4.25C16.81 4.25 16.25 4.81 16.25 5.5C16.25 6.19 16.81 6.75 17.5 6.75ZM17.5 5.25C17.64 5.25 17.75 5.36 17.75 5.5C17.75 5.78 17.25 5.78 17.25 5.5C17.25 5.36 17.36 5.25 17.5 5.25ZM12.5 9.25C11.81 9.25 11.25 9.81 11.25 10.5C11.25 11.19 11.81 11.75 12.5 11.75C13.19 11.75 13.75 11.19 13.75 10.5C13.75 9.81 13.19 9.25 12.5 9.25ZM12.25 10.5C12.25 10.36 12.36 10.25 12.5 10.25C12.64 10.25 12.75 10.36 12.75 10.5C12.75 10.78 12.25 10.78 12.25 10.5ZM12.5 4.25C11.81 4.25 11.25 4.81 11.25 5.5C11.25 6.19 11.81 6.75 12.5 6.75C13.19 6.75 13.75 6.19 13.75 5.5C13.75 4.81 13.19 4.25 12.5 4.25ZM12.25 5.5C12.25 5.36 12.36 5.25 12.5 5.25C12.64 5.25 12.75 5.36 12.75 5.5C12.75 5.78 12.25 5.78 12.25 5.5ZM7.5 9.25C6.81 9.25 6.25 9.81 6.25 10.5C6.25 11.19 6.81 11.75 7.5 11.75C8.19 11.75 8.75 11.19 8.75 10.5C8.75 9.81 8.19 9.25 7.5 9.25ZM7.25 10.5C7.25 10.36 7.36 10.25 7.5 10.25C7.64 10.25 7.75 10.36 7.75 10.5C7.75 10.78 7.25 10.78 7.25 10.5ZM7.5 4.25C6.81 4.25 6.25 4.81 6.25 5.5C6.25 6.19 6.81 6.75 7.5 6.75C8.19 6.75 8.75 6.19 8.75 5.5C8.75 4.81 8.19 4.25 7.5 4.25ZM7.25 5.5C7.25 5.36 7.36 5.25 7.5 5.25C7.64 5.25 7.75 5.36 7.75 5.5C7.75 5.78 7.25 5.78 7.25 5.5Z\"></path></svg>",
|
|
2030
|
+
"editsmall-16x16": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M13.1209 3.05249L12.9509 2.88249C11.8809 1.81249 10.1309 1.81249 9.06089 2.88249L3.47089 8.46249C3.37089 8.56249 3.31089 8.68249 3.27089 8.81249L2.27089 12.8125C2.21089 13.0625 2.28089 13.3425 2.47089 13.5225C2.61089 13.6625 2.80089 13.7425 3.00089 13.7425C3.06089 13.7425 3.12089 13.7425 3.18089 13.7225L7.18089 12.7225C7.31089 12.6925 7.43089 12.6225 7.53089 12.5225L13.1209 6.93249C14.1909 5.86249 14.1909 4.11249 13.1209 3.04249V3.05249ZM6.62089 11.3125L4.04089 11.9625L4.69089 9.38249L8.01089 6.06249L9.95089 8.00249L6.63089 11.3225L6.62089 11.3125ZM12.0609 5.87249L11.0009 6.93249L9.06089 4.99249L10.1209 3.93249C10.6109 3.44249 11.4009 3.44249 11.8909 3.93249L12.0609 4.10249C12.5509 4.59249 12.5509 5.38249 12.0609 5.87249Z\"></path></svg>",
|
|
1946
2031
|
"expand-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.75 8C11.75 8.41 11.41 8.75 11 8.75H8.75V11C8.75 11.41 8.41 11.75 8 11.75C7.59 11.75 7.25 11.41 7.25 11V8.75H5C4.59 8.75 4.25 8.41 4.25 8C4.25 7.59 4.59 7.25 5 7.25H7.25V5C7.25 4.59 7.59 4.25 8 4.25C8.41 4.25 8.75 4.59 8.75 5V7.25H11C11.41 7.25 11.75 7.59 11.75 8Z\"></path></svg>",
|
|
1947
2032
|
"expanddetails-16x16": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.75 8C11.75 8.41 11.41 8.75 11 8.75H8.75V11C8.75 11.41 8.41 11.75 8 11.75C7.59 11.75 7.25 11.41 7.25 11V8.75H5C4.59 8.75 4.25 8.41 4.25 8C4.25 7.59 4.59 7.25 5 7.25H7.25V5C7.25 4.59 7.59 4.25 8 4.25C8.41 4.25 8.75 4.59 8.75 5V7.25H11C11.41 7.25 11.75 7.59 11.75 8Z\"></path></svg>",
|
|
1948
2033
|
"file-72x72": "<svg viewBox=\"0 0 72 72\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M62.83 12.83L53.17 3.17C52.7982 2.79866 52.357 2.50421 51.8714 2.30346C51.3858 2.1027 50.8654 1.99959 50.34 2H14C12.4087 2 10.8826 2.63214 9.75735 3.75736C8.63214 4.88258 8 6.4087 8 8V64C8 65.5913 8.63214 67.1174 9.75735 68.2426C10.8826 69.3679 12.4087 70 14 70H58C59.5913 70 61.1174 69.3679 62.2426 68.2426C63.3679 67.1174 64 65.5913 64 64V15.66C64.0004 15.1346 63.8973 14.6142 63.6965 14.1286C63.4958 13.643 63.2013 13.2018 62.83 12.83ZM52 4.83L61.17 14H56C54.9391 14 53.9217 13.5786 53.1716 12.8284C52.4214 12.0783 52 11.0609 52 10V4.83ZM62 64C62 65.0609 61.5786 66.0783 60.8284 66.8284C60.0783 67.5786 59.0609 68 58 68H14C12.9391 68 11.9217 67.5786 11.1716 66.8284C10.4214 66.0783 10 65.0609 10 64V8C10 6.93914 10.4214 5.92172 11.1716 5.17157C11.9217 4.42143 12.9391 4 14 4H50V10C50 11.5913 50.6321 13.1174 51.7574 14.2426C52.8826 15.3679 54.4087 16 56 16H62V64ZM22 26H50V28H22V26ZM22 32H50V34H22V32ZM22 38H50V40H22V38ZM22 44H50V46H22V44Z\"></path></svg>",
|
|
@@ -2580,8 +2665,9 @@ class SurveyQuestionCheckbox extends SurveyQuestionElementBase {
|
|
|
2580
2665
|
if (this.question.blockedRow) {
|
|
2581
2666
|
return React.createElement("div", { className: cssClasses.rootRow }, this.getItems(cssClasses, this.question.dataChoices));
|
|
2582
2667
|
}
|
|
2583
|
-
else
|
|
2668
|
+
else {
|
|
2584
2669
|
return React.createElement(React.Fragment, null, this.getItems(cssClasses, this.question.bodyItems));
|
|
2670
|
+
}
|
|
2585
2671
|
}
|
|
2586
2672
|
getItems(cssClasses, choices) {
|
|
2587
2673
|
var renderedItems = [];
|
|
@@ -2819,7 +2905,7 @@ class SurveyQuestionRankingItem extends ReactSurveyElement {
|
|
|
2819
2905
|
}
|
|
2820
2906
|
renderElement() {
|
|
2821
2907
|
let itemContent = ReactElementFactory.Instance.createElement(this.question.itemComponent, { item: this.item, cssClasses: this.cssClasses });
|
|
2822
|
-
return (React.createElement("div", { tabIndex: this.itemTabIndex, className: this.itemClass, onKeyDown: this.handleKeydown, onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, "data-sv-drop-target-ranking-item": this.index },
|
|
2908
|
+
return (React.createElement("div", { id: this.question.getItemId(this.item), tabIndex: this.itemTabIndex, className: this.itemClass, onKeyDown: this.handleKeydown, onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, "data-sv-drop-target-ranking-item": this.index },
|
|
2823
2909
|
React.createElement("div", { tabIndex: -1, style: { outline: "none" } },
|
|
2824
2910
|
React.createElement("div", { className: this.cssClasses.itemGhostNode }),
|
|
2825
2911
|
React.createElement("div", { className: this.cssClasses.itemContent },
|
|
@@ -2888,10 +2974,10 @@ ReactElementFactory.Instance.registerElement("sv-rating-item", (props) => {
|
|
|
2888
2974
|
|
|
2889
2975
|
class RatingItemStar extends RatingItemBase {
|
|
2890
2976
|
render() {
|
|
2891
|
-
return (React.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClass(this.item.itemValue), onMouseOver: e => this.question.onItemMouseIn(this.item), onMouseOut: e => this.question.onItemMouseOut(this.item) },
|
|
2977
|
+
return (React.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClass(this.item.itemValue), onMouseOver: e => this.question.onItemMouseIn(this.item), onMouseOut: e => this.question.onItemMouseOut(this.item), title: this.item.text },
|
|
2892
2978
|
React.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: () => { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
|
|
2893
|
-
React.createElement(SvgIcon, { className: "sv-star", size: "auto", iconName: this.question.itemStarIcon
|
|
2894
|
-
React.createElement(SvgIcon, { className: "sv-star-2", size: "auto", iconName: this.question.itemStarIconAlt
|
|
2979
|
+
React.createElement(SvgIcon, { className: "sv-star", size: "auto", iconName: this.question.itemStarIcon }),
|
|
2980
|
+
React.createElement(SvgIcon, { className: "sv-star-2", size: "auto", iconName: this.question.itemStarIconAlt })));
|
|
2895
2981
|
}
|
|
2896
2982
|
}
|
|
2897
2983
|
ReactElementFactory.Instance.registerElement("sv-rating-item-star", (props) => {
|
|
@@ -2900,9 +2986,9 @@ ReactElementFactory.Instance.registerElement("sv-rating-item-star", (props) => {
|
|
|
2900
2986
|
|
|
2901
2987
|
class RatingItemSmiley extends RatingItemBase {
|
|
2902
2988
|
render() {
|
|
2903
|
-
return (React.createElement("label", { onMouseDown: this.handleOnMouseDown, style: this.question.getItemStyle(this.item.itemValue, this.item.highlight), className: this.question.getItemClass(this.item.itemValue), onMouseOver: e => this.question.onItemMouseIn(this.item), onMouseOut: e => this.question.onItemMouseOut(this.item) },
|
|
2989
|
+
return (React.createElement("label", { onMouseDown: this.handleOnMouseDown, style: this.question.getItemStyle(this.item.itemValue, this.item.highlight), className: this.question.getItemClass(this.item.itemValue), onMouseOver: e => this.question.onItemMouseIn(this.item), onMouseOut: e => this.question.onItemMouseOut(this.item), title: this.item.text },
|
|
2904
2990
|
React.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.questionName, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: () => { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-errormessage": this.question.ariaErrormessage }),
|
|
2905
|
-
React.createElement(SvgIcon, { size: "auto", iconName: this.question.getItemSmileyIconName(this.item.itemValue)
|
|
2991
|
+
React.createElement(SvgIcon, { size: "auto", iconName: this.question.getItemSmileyIconName(this.item.itemValue) })));
|
|
2906
2992
|
}
|
|
2907
2993
|
}
|
|
2908
2994
|
ReactElementFactory.Instance.registerElement("sv-rating-item-smiley", (props) => {
|
|
@@ -3329,14 +3415,14 @@ class SurveyQuestionMatrix extends SurveyQuestionElementBase {
|
|
|
3329
3415
|
var key = "row-" + row.name + "-" + i;
|
|
3330
3416
|
rows.push(React.createElement(SurveyQuestionMatrixRow, { key: key, question: this.question, cssClasses: cssClasses, row: row, isFirst: i == 0 }));
|
|
3331
3417
|
}
|
|
3332
|
-
var header = !this.question.showHeader ? null : (React.createElement("thead",
|
|
3418
|
+
var header = !this.question.showHeader ? null : (React.createElement("thead", { role: "presentation" },
|
|
3333
3419
|
React.createElement("tr", null,
|
|
3334
3420
|
rowsTH,
|
|
3335
3421
|
headers)));
|
|
3336
3422
|
return (React.createElement("div", { className: cssClasses.tableWrapper, ref: root => (this.setControl(root)) },
|
|
3337
|
-
React.createElement("fieldset",
|
|
3338
|
-
React.createElement("legend", { className: "sv-
|
|
3339
|
-
React.createElement("table", { className: this.question.getTableCss() },
|
|
3423
|
+
React.createElement("fieldset", { role: "radiogroup" },
|
|
3424
|
+
React.createElement("legend", { className: "sv-visuallyhidden" }, this.question.locTitle.renderedHtml),
|
|
3425
|
+
React.createElement("table", { className: this.question.getTableCss(), role: "presentation" },
|
|
3340
3426
|
header,
|
|
3341
3427
|
React.createElement("tbody", null, rows)))));
|
|
3342
3428
|
}
|
|
@@ -3514,24 +3600,6 @@ class LoadingIndicatorComponent extends React.Component {
|
|
|
3514
3600
|
}
|
|
3515
3601
|
}
|
|
3516
3602
|
|
|
3517
|
-
class SurveyFileChooseButton extends ReactSurveyElement {
|
|
3518
|
-
constructor(props) {
|
|
3519
|
-
super(props);
|
|
3520
|
-
}
|
|
3521
|
-
get question() {
|
|
3522
|
-
return (this.props.item && this.props.item.data.question) || this.props.data.question;
|
|
3523
|
-
}
|
|
3524
|
-
render() {
|
|
3525
|
-
return attachKey2click(React.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText, onClick: (e) => this.question.chooseFile(e.nativeEvent) },
|
|
3526
|
-
(!!this.question.cssClasses.chooseFileIconId) ? React.createElement(SvgIcon, { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null,
|
|
3527
|
-
React.createElement("span", null, this.question.chooseButtonText)));
|
|
3528
|
-
}
|
|
3529
|
-
}
|
|
3530
|
-
ReactElementFactory.Instance.registerElement("sv-file-choose-btn", (props) => {
|
|
3531
|
-
return React.createElement(SurveyFileChooseButton, props);
|
|
3532
|
-
});
|
|
3533
|
-
|
|
3534
|
-
// import { ReactElementFactory, SurveyFileChooseButton } from "../entries/react-ui-model";
|
|
3535
3603
|
class SurveyQuestionFile extends SurveyQuestionElementBase {
|
|
3536
3604
|
constructor(props) {
|
|
3537
3605
|
super(props);
|
|
@@ -3544,8 +3612,6 @@ class SurveyQuestionFile extends SurveyQuestionElementBase {
|
|
|
3544
3612
|
const loadingIndicator = this.question.showLoadingIndicator ? this.renderLoadingIndicator() : null;
|
|
3545
3613
|
const video = this.question.isPlayingVideo ? this.renderVideo() : null;
|
|
3546
3614
|
const fileDecorator = this.question.showFileDecorator ? this.renderFileDecorator() : null;
|
|
3547
|
-
const clearButton = this.question.showRemoveButton ? this.renderClearButton(this.question.cssClasses.removeButton) : null;
|
|
3548
|
-
const clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
|
|
3549
3615
|
const fileNavigator = this.question.fileNavigatorVisible ? (React.createElement(SurveyActionBar, { model: this.question.fileNavigator })) : null;
|
|
3550
3616
|
let fileInput;
|
|
3551
3617
|
if (this.question.isReadOnlyAttr) {
|
|
@@ -3566,29 +3632,14 @@ class SurveyQuestionFile extends SurveyQuestionElementBase {
|
|
|
3566
3632
|
fileDecorator,
|
|
3567
3633
|
loadingIndicator,
|
|
3568
3634
|
video,
|
|
3569
|
-
clearButton,
|
|
3570
3635
|
preview,
|
|
3571
|
-
clearButtonBottom,
|
|
3572
3636
|
fileNavigator)));
|
|
3573
3637
|
}
|
|
3574
3638
|
renderFileDecorator() {
|
|
3575
|
-
const chooseButton = this.question.showChooseButton ? this.renderChooseButton() : null;
|
|
3576
3639
|
const actionsContainer = this.question.actionsContainerVisible ? React.createElement(SurveyActionBar, { model: this.question.actionsContainer }) : null;
|
|
3577
|
-
const noFileChosen = this.question.isEmpty() ? (React.createElement("span", { className: this.question.cssClasses.noFileChosen }, this.question.noFileChosenCaption)) : null;
|
|
3578
3640
|
return (React.createElement("div", { className: this.question.getFileDecoratorCss() },
|
|
3579
|
-
React.createElement("span", { className: this.question.cssClasses.dragAreaPlaceholder }, this.renderLocString(this.question.locRenderedPlaceholder)),
|
|
3580
|
-
React.createElement("div", { className: this.question.cssClasses.wrapper },
|
|
3581
|
-
chooseButton,
|
|
3582
|
-
actionsContainer,
|
|
3583
|
-
noFileChosen)));
|
|
3584
|
-
}
|
|
3585
|
-
renderChooseButton() {
|
|
3586
|
-
return React.createElement(SurveyFileChooseButton, { data: { question: this.question } });
|
|
3587
|
-
}
|
|
3588
|
-
renderClearButton(className) {
|
|
3589
|
-
return !this.question.isUploading ? (React.createElement("button", { type: "button", onClick: this.question.doClean, className: className },
|
|
3590
|
-
React.createElement("span", null, this.question.clearButtonCaption),
|
|
3591
|
-
(!!this.question.cssClasses.removeButtonIconId) ? React.createElement(SvgIcon, { iconName: this.question.cssClasses.removeButtonIconId, size: "auto", title: this.question.clearButtonCaption }) : null)) : null;
|
|
3641
|
+
this.question.showDragAreaPlaceholder ? React.createElement("span", { className: this.question.cssClasses.dragAreaPlaceholder }, this.renderLocString(this.question.locRenderedPlaceholder)) : false,
|
|
3642
|
+
React.createElement("div", { className: this.question.cssClasses.wrapper }, actionsContainer)));
|
|
3592
3643
|
}
|
|
3593
3644
|
renderPreview() {
|
|
3594
3645
|
return ReactElementFactory.Instance.createElement("sv-file-preview", { question: this.question });
|
|
@@ -3609,6 +3660,23 @@ ReactQuestionFactory.Instance.registerQuestion("file", props => {
|
|
|
3609
3660
|
return React.createElement(SurveyQuestionFile, props);
|
|
3610
3661
|
});
|
|
3611
3662
|
|
|
3663
|
+
class SurveyFileChooseButton extends ReactSurveyElement {
|
|
3664
|
+
constructor(props) {
|
|
3665
|
+
super(props);
|
|
3666
|
+
}
|
|
3667
|
+
get question() {
|
|
3668
|
+
return (this.props.item && this.props.item.data.question) || this.props.data.question;
|
|
3669
|
+
}
|
|
3670
|
+
render() {
|
|
3671
|
+
return attachKey2click(React.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText, onClick: (e) => this.question.chooseFile(e.nativeEvent) },
|
|
3672
|
+
(!!this.question.cssClasses.chooseFileIconId) ? React.createElement(SvgIcon, { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null,
|
|
3673
|
+
React.createElement("span", null, this.question.chooseButtonText)));
|
|
3674
|
+
}
|
|
3675
|
+
}
|
|
3676
|
+
ReactElementFactory.Instance.registerElement("sv-file-choose-btn", (props) => {
|
|
3677
|
+
return React.createElement(SurveyFileChooseButton, props);
|
|
3678
|
+
});
|
|
3679
|
+
|
|
3612
3680
|
class SurveyFileItem extends SurveyElementBase {
|
|
3613
3681
|
get question() {
|
|
3614
3682
|
return this.props.question;
|
|
@@ -3667,8 +3735,7 @@ class SurveyFilePreview extends SurveyElementBase {
|
|
|
3667
3735
|
}, title: val.name, download: val.name, style: { width: this.question.imageWidth } }, val.name)));
|
|
3668
3736
|
}
|
|
3669
3737
|
renderElement() {
|
|
3670
|
-
const content = this.question.
|
|
3671
|
-
: this.question.previewValue.map((item, index) => { return (React.createElement(SurveyFileItem, { item: item, question: this.question, key: index })); });
|
|
3738
|
+
const content = this.question.renderedPages.map((page, index) => { return (React.createElement(SurveyFilePage, { page: page, question: this.question, key: page.id })); });
|
|
3672
3739
|
return React.createElement("div", { className: this.question.cssClasses.fileList || undefined }, content);
|
|
3673
3740
|
}
|
|
3674
3741
|
canRender() {
|
|
@@ -3796,8 +3863,9 @@ class SurveyQuestionRadiogroup extends SurveyQuestionElementBase {
|
|
|
3796
3863
|
if (this.question.blockedRow) {
|
|
3797
3864
|
return React.createElement("div", { className: cssClasses.rootRow }, this.getItems(cssClasses, this.question.dataChoices));
|
|
3798
3865
|
}
|
|
3799
|
-
else
|
|
3866
|
+
else {
|
|
3800
3867
|
return React.createElement(React.Fragment, null, this.getItems(cssClasses, this.question.bodyItems));
|
|
3868
|
+
}
|
|
3801
3869
|
}
|
|
3802
3870
|
getItems(cssClasses, choices) {
|
|
3803
3871
|
var items = [];
|
|
@@ -3950,7 +4018,7 @@ class SurveyQuestionText extends SurveyQuestionUncontrolledElement {
|
|
|
3950
4018
|
// disabled={this.isDisplayMode}
|
|
3951
4019
|
disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, className: inputClass, type: this.question.inputType,
|
|
3952
4020
|
//ref={this.controlRef}
|
|
3953
|
-
ref: (input) => (this.setControl(input)), style: this.question.inputStyle, maxLength: this.question.getMaxLength(), min: this.question.renderedMin, max: this.question.renderedMax, step: this.question.renderedStep, size: this.question.inputSize, placeholder: placeholder, list: this.question.dataListId, autoComplete: this.question.autocomplete, onBlur: (event) => { this.question.onBlur(event); }, onFocus: (event) => { this.question.onFocus(event); }, onChange: this.question.onChange, onKeyUp: this.question.onKeyUp, onKeyDown: this.question.onKeyDown, onCompositionUpdate: (event) => this.question.onCompositionUpdate(event.nativeEvent), "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
|
|
4021
|
+
ref: (input) => (this.setControl(input)), style: this.question.inputStyle, maxLength: this.question.getMaxLength(), min: this.question.renderedMin, max: this.question.renderedMax, step: this.question.renderedStep, size: this.question.inputSize, placeholder: placeholder, list: this.question.dataListId, autoComplete: this.question.autocomplete, onBlur: (event) => { this.question.onBlur(event); }, onFocus: (event) => { this.question.onFocus(event); }, onChange: this.question.onChange, onClick: this.question.readOnlyBlocker, onPointerDown: this.question.readOnlyBlocker, onKeyUp: this.question.onKeyUp, onKeyDown: this.question.onKeyDown, onCompositionUpdate: (event) => this.question.onCompositionUpdate(event.nativeEvent), "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
|
|
3954
4022
|
counter));
|
|
3955
4023
|
}
|
|
3956
4024
|
renderElement() {
|
|
@@ -4036,7 +4104,7 @@ class SurveyQuestionBoolean extends SurveyQuestionElementBase {
|
|
|
4036
4104
|
const cssClasses = this.question.cssClasses;
|
|
4037
4105
|
const itemClass = this.question.getItemCss();
|
|
4038
4106
|
return (React.createElement("div", { className: cssClasses.root, onKeyDown: this.handleOnKeyDown },
|
|
4039
|
-
React.createElement("label", { className: itemClass
|
|
4107
|
+
React.createElement("label", { className: itemClass },
|
|
4040
4108
|
React.createElement("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
|
|
4041
4109
|
? ""
|
|
4042
4110
|
: this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.question.isDisabledAttr, readOnly: this.question.isReadOnlyAttr, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-describedby": this.question.a11y_input_ariaDescribedBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-errormessage": this.question.a11y_input_ariaErrormessage }),
|
|
@@ -4379,10 +4447,7 @@ class SurveyQuestionMatrixDropdownBase extends SurveyQuestionElementBase {
|
|
|
4379
4447
|
return this.renderTableDiv();
|
|
4380
4448
|
}
|
|
4381
4449
|
renderTableDiv() {
|
|
4382
|
-
|
|
4383
|
-
? { overflowX: "scroll" }
|
|
4384
|
-
: {};
|
|
4385
|
-
return (React.createElement("div", { style: divStyle, className: this.question.cssClasses.tableWrapper, ref: (root) => (this.setControl(root)) },
|
|
4450
|
+
return (React.createElement("div", { className: this.question.cssClasses.tableWrapper, ref: (root) => (this.setControl(root)) },
|
|
4386
4451
|
React.createElement(SurveyQuestionMatrixTable, { question: this.question, creator: this.creator, wrapCell: (cell, element, reason) => this.wrapCell(cell, element, reason) })));
|
|
4387
4452
|
}
|
|
4388
4453
|
}
|
|
@@ -4471,7 +4536,7 @@ class SurveyQuestionMatrixDropdownCell extends SurveyQuestionAndErrorsCell {
|
|
|
4471
4536
|
row: this.cell.row,
|
|
4472
4537
|
column: this.cell.cell.column,
|
|
4473
4538
|
};
|
|
4474
|
-
this.question.survey.matrixAfterCellRender(
|
|
4539
|
+
this.question.survey.matrixAfterCellRender(options);
|
|
4475
4540
|
this.question.afterRenderCore(el);
|
|
4476
4541
|
}
|
|
4477
4542
|
}
|
|
@@ -4577,12 +4642,7 @@ class SurveyQuestionMatrixDynamic extends SurveyQuestionMatrixDropdownBase {
|
|
|
4577
4642
|
return this.renderAddRowButton(cssClasses);
|
|
4578
4643
|
}
|
|
4579
4644
|
renderNoRowsContent(cssClasses) {
|
|
4580
|
-
|
|
4581
|
-
const textDiv = React.createElement("div", { className: cssClasses.noRowsText }, text);
|
|
4582
|
-
const btn = this.matrix.renderedTable.showAddRow ? this.renderAddRowButton(cssClasses, true) : undefined;
|
|
4583
|
-
return (React.createElement("div", { className: cssClasses.noRowsSection },
|
|
4584
|
-
textDiv,
|
|
4585
|
-
btn));
|
|
4645
|
+
return ReactElementFactory.Instance.createElement("sv-placeholder-matrixdynamic", { cssClasses: cssClasses, question: this.matrix });
|
|
4586
4646
|
}
|
|
4587
4647
|
renderAddRowButton(cssClasses, isEmptySection = false) {
|
|
4588
4648
|
return ReactElementFactory.Instance.createElement("sv-matrixdynamic-add-btn", {
|
|
@@ -4612,80 +4672,29 @@ class SurveyQuestionMatrixDynamicAddButton extends ReactSurveyElement {
|
|
|
4612
4672
|
return (this.props.isEmptySection ? addButton : React.createElement("div", { className: this.props.cssClasses.footer }, addButton));
|
|
4613
4673
|
}
|
|
4614
4674
|
}
|
|
4615
|
-
|
|
4616
|
-
return React.createElement(SurveyQuestionMatrixDynamicAddButton, props);
|
|
4617
|
-
});
|
|
4618
|
-
|
|
4619
|
-
class SurveyQuestionPanelDynamicAction extends ReactSurveyElement {
|
|
4675
|
+
class SurveyQuestionMatrixDynamicPlaceholder extends ReactSurveyElement {
|
|
4620
4676
|
constructor(props) {
|
|
4621
4677
|
super(props);
|
|
4622
4678
|
}
|
|
4623
|
-
get data() {
|
|
4624
|
-
return (this.props.item && this.props.item.data) || this.props.data;
|
|
4625
|
-
}
|
|
4626
|
-
get question() {
|
|
4627
|
-
return (this.props.item && this.props.item.data.question) || this.props.data.question;
|
|
4628
|
-
}
|
|
4629
|
-
}
|
|
4630
|
-
class SurveyQuestionPanelDynamicAddButton extends SurveyQuestionPanelDynamicAction {
|
|
4631
|
-
constructor() {
|
|
4632
|
-
super(...arguments);
|
|
4633
|
-
this.handleClick = (event) => {
|
|
4634
|
-
this.question.addPanelUI();
|
|
4635
|
-
};
|
|
4636
|
-
}
|
|
4637
|
-
renderElement() {
|
|
4638
|
-
if (!this.question.canAddPanel)
|
|
4639
|
-
return null;
|
|
4640
|
-
const btnText = this.renderLocString(this.question.locAddPanelText);
|
|
4641
|
-
return (React.createElement("button", { type: "button", id: this.question.addButtonId, className: this.question.getAddButtonCss(), onClick: this.handleClick },
|
|
4642
|
-
React.createElement("span", { className: this.question.cssClasses.buttonAddText }, btnText)));
|
|
4643
|
-
}
|
|
4644
|
-
}
|
|
4645
|
-
ReactElementFactory.Instance.registerElement("sv-paneldynamic-add-btn", (props) => {
|
|
4646
|
-
return React.createElement(SurveyQuestionPanelDynamicAddButton, props);
|
|
4647
|
-
});
|
|
4648
|
-
|
|
4649
|
-
class SurveyQuestionPanelDynamicNextButton extends SurveyQuestionPanelDynamicAction {
|
|
4650
|
-
constructor() {
|
|
4651
|
-
super(...arguments);
|
|
4652
|
-
this.handleClick = (event) => {
|
|
4653
|
-
this.question.goToNextPanel();
|
|
4654
|
-
};
|
|
4655
|
-
}
|
|
4656
4679
|
renderElement() {
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
}
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
constructor() {
|
|
4667
|
-
super(...arguments);
|
|
4668
|
-
this.handleClick = (event) => {
|
|
4669
|
-
this.question.goToPrevPanel();
|
|
4670
|
-
};
|
|
4680
|
+
const cssClasses = this.props.cssClasses;
|
|
4681
|
+
const matrix = this.props.question;
|
|
4682
|
+
const showAddButton = matrix.renderedTable.showAddRow;
|
|
4683
|
+
const text = this.renderLocString(matrix.locNoRowsText);
|
|
4684
|
+
const textDiv = React.createElement("div", { className: cssClasses.noRowsText }, text);
|
|
4685
|
+
const btn = showAddButton ? this.renderAddRowButton(cssClasses, matrix) : undefined;
|
|
4686
|
+
return (React.createElement("div", { className: cssClasses.noRowsSection },
|
|
4687
|
+
textDiv,
|
|
4688
|
+
btn));
|
|
4671
4689
|
}
|
|
4672
|
-
|
|
4673
|
-
return
|
|
4674
|
-
|
|
4690
|
+
renderAddRowButton(cssClasses, question) {
|
|
4691
|
+
return ReactElementFactory.Instance.createElement("sv-matrixdynamic-add-btn", {
|
|
4692
|
+
question: question, cssClasses: cssClasses, isEmptySection: true
|
|
4693
|
+
});
|
|
4675
4694
|
}
|
|
4676
4695
|
}
|
|
4677
|
-
ReactElementFactory.Instance.registerElement("sv-
|
|
4678
|
-
|
|
4679
|
-
});
|
|
4680
|
-
|
|
4681
|
-
class SurveyQuestionPanelDynamicProgressText extends SurveyQuestionPanelDynamicAction {
|
|
4682
|
-
renderElement() {
|
|
4683
|
-
return (React.createElement("div", { className: this.question.cssClasses.progressText }, this.question.progressText));
|
|
4684
|
-
}
|
|
4685
|
-
}
|
|
4686
|
-
ReactElementFactory.Instance.registerElement("sv-paneldynamic-progress-text", (props) => {
|
|
4687
|
-
return React.createElement(SurveyQuestionPanelDynamicProgressText, props);
|
|
4688
|
-
});
|
|
4696
|
+
ReactElementFactory.Instance.registerElement("sv-matrixdynamic-add-btn", (props) => { return React.createElement(SurveyQuestionMatrixDynamicAddButton, props); });
|
|
4697
|
+
ReactElementFactory.Instance.registerElement("sv-placeholder-matrixdynamic", (props) => { return React.createElement(SurveyQuestionMatrixDynamicPlaceholder, props); });
|
|
4689
4698
|
|
|
4690
4699
|
class SurveyQuestionPanelDynamic extends SurveyQuestionElementBase {
|
|
4691
4700
|
constructor(props) {
|
|
@@ -4721,64 +4730,23 @@ class SurveyQuestionPanelDynamic extends SurveyQuestionElementBase {
|
|
|
4721
4730
|
}
|
|
4722
4731
|
renderElement() {
|
|
4723
4732
|
const panels = [];
|
|
4733
|
+
const cssClasses = this.question.cssClasses;
|
|
4724
4734
|
this.question.renderedPanels.forEach((panel, index) => {
|
|
4725
|
-
panels.push(React.createElement(SurveyQuestionPanelDynamicItem, { key: panel.id, element: panel, question: this.question, index: index, cssClasses:
|
|
4735
|
+
panels.push(React.createElement(SurveyQuestionPanelDynamicItem, { key: panel.id, element: panel, question: this.question, index: index, cssClasses: cssClasses, isDisplayMode: this.isDisplayMode, creator: this.creator }));
|
|
4726
4736
|
});
|
|
4727
|
-
const
|
|
4728
|
-
? this.
|
|
4729
|
-
: null;
|
|
4730
|
-
const navTop = this.question.isProgressTopShowing
|
|
4731
|
-
? this.renderNavigator()
|
|
4732
|
-
: null;
|
|
4733
|
-
const navBottom = this.question.isProgressBottomShowing
|
|
4734
|
-
? this.renderNavigator()
|
|
4737
|
+
const rangeTop = this.question.isRangeShowing && this.question.isProgressTopShowing
|
|
4738
|
+
? this.renderRange()
|
|
4735
4739
|
: null;
|
|
4736
4740
|
const navV2 = this.renderNavigatorV2();
|
|
4737
|
-
const noEntriesPlaceholder = this.renderPlaceholder();
|
|
4738
|
-
return (React.createElement("div", { className:
|
|
4741
|
+
const noEntriesPlaceholder = this.renderPlaceholder(cssClasses);
|
|
4742
|
+
return (React.createElement("div", { className: cssClasses.root },
|
|
4739
4743
|
this.question.hasTabbedMenu ? React.createElement("div", { className: this.question.getTabsContainerCss() },
|
|
4740
4744
|
React.createElement(SurveyActionBar, { model: this.question.tabbedMenu })) : null,
|
|
4741
4745
|
noEntriesPlaceholder,
|
|
4742
|
-
|
|
4746
|
+
rangeTop,
|
|
4743
4747
|
React.createElement("div", { className: this.question.cssClasses.panelsContainer }, panels),
|
|
4744
|
-
navBottom,
|
|
4745
|
-
btnAdd,
|
|
4746
4748
|
navV2));
|
|
4747
4749
|
}
|
|
4748
|
-
renderNavigator() {
|
|
4749
|
-
if (!this.question["showLegacyNavigation"]) {
|
|
4750
|
-
if (this.question.isRangeShowing && this.question.isProgressTopShowing) {
|
|
4751
|
-
return this.renderRange();
|
|
4752
|
-
}
|
|
4753
|
-
else {
|
|
4754
|
-
return null;
|
|
4755
|
-
}
|
|
4756
|
-
}
|
|
4757
|
-
const range = this.question.isRangeShowing ? this.renderRange() : null;
|
|
4758
|
-
const btnPrev = this.rendrerPrevButton();
|
|
4759
|
-
const btnNext = this.rendrerNextButton();
|
|
4760
|
-
const btnAdd = this.renderAddRowButton();
|
|
4761
|
-
const progressClass = this.question.isProgressTopShowing
|
|
4762
|
-
? this.question.cssClasses.progressTop
|
|
4763
|
-
: this.question.cssClasses.progressBottom;
|
|
4764
|
-
return (React.createElement("div", { className: progressClass },
|
|
4765
|
-
React.createElement("div", { style: { clear: "both" } },
|
|
4766
|
-
React.createElement("div", { className: this.question.cssClasses.progressContainer },
|
|
4767
|
-
btnPrev,
|
|
4768
|
-
range,
|
|
4769
|
-
btnNext),
|
|
4770
|
-
btnAdd,
|
|
4771
|
-
this.renderProgressText())));
|
|
4772
|
-
}
|
|
4773
|
-
renderProgressText() {
|
|
4774
|
-
return (React.createElement(SurveyQuestionPanelDynamicProgressText, { data: { question: this.question } }));
|
|
4775
|
-
}
|
|
4776
|
-
rendrerPrevButton() {
|
|
4777
|
-
return (React.createElement(SurveyQuestionPanelDynamicPrevButton, { data: { question: this.question } }));
|
|
4778
|
-
}
|
|
4779
|
-
rendrerNextButton() {
|
|
4780
|
-
return (React.createElement(SurveyQuestionPanelDynamicNextButton, { data: { question: this.question } }));
|
|
4781
|
-
}
|
|
4782
4750
|
renderRange() {
|
|
4783
4751
|
return (React.createElement("div", { className: this.question.cssClasses.progress },
|
|
4784
4752
|
React.createElement("div", { className: this.question.cssClasses.progressBar, style: { width: this.question.progress }, role: "progressbar" })));
|
|
@@ -4798,12 +4766,9 @@ class SurveyQuestionPanelDynamic extends SurveyQuestionElementBase {
|
|
|
4798
4766
|
this.question.footerToolbar.visibleActions.length ? (React.createElement("div", { className: this.question.cssClasses.footerButtonsContainer },
|
|
4799
4767
|
React.createElement(SurveyActionBar, { model: this.question.footerToolbar }))) : null));
|
|
4800
4768
|
}
|
|
4801
|
-
renderPlaceholder() {
|
|
4802
|
-
if (this.question.getShowNoEntriesPlaceholder())
|
|
4803
|
-
return
|
|
4804
|
-
React.createElement("span", null, this.renderLocString(this.question.locNoEntriesText)),
|
|
4805
|
-
this.renderAddRowButton()));
|
|
4806
|
-
}
|
|
4769
|
+
renderPlaceholder(cssClasses) {
|
|
4770
|
+
if (this.question.getShowNoEntriesPlaceholder())
|
|
4771
|
+
return ReactElementFactory.Instance.createElement("sv-placeholder-paneldynamic", { cssClasses: cssClasses, question: this.question });
|
|
4807
4772
|
return null;
|
|
4808
4773
|
}
|
|
4809
4774
|
}
|
|
@@ -4843,6 +4808,24 @@ class SurveyQuestionPanelDynamicItem extends SurveyPanel {
|
|
|
4843
4808
|
ReactQuestionFactory.Instance.registerQuestion("paneldynamic", props => {
|
|
4844
4809
|
return React.createElement(SurveyQuestionPanelDynamic, props);
|
|
4845
4810
|
});
|
|
4811
|
+
class SurveyQuestionPanelDynamicPlaceholder extends ReactSurveyElement {
|
|
4812
|
+
constructor(props) {
|
|
4813
|
+
super(props);
|
|
4814
|
+
}
|
|
4815
|
+
renderElement() {
|
|
4816
|
+
const cssClasses = this.props.cssClasses;
|
|
4817
|
+
const question = this.props.question;
|
|
4818
|
+
return (React.createElement("div", { className: cssClasses.noEntriesPlaceholder },
|
|
4819
|
+
React.createElement("span", null, this.renderLocString(question.locNoEntriesText)),
|
|
4820
|
+
this.renderAddRowButton(question)));
|
|
4821
|
+
}
|
|
4822
|
+
renderAddRowButton(question) {
|
|
4823
|
+
return ReactElementFactory.Instance.createElement("sv-paneldynamic-add-btn", {
|
|
4824
|
+
data: { question: question }
|
|
4825
|
+
});
|
|
4826
|
+
}
|
|
4827
|
+
}
|
|
4828
|
+
ReactElementFactory.Instance.registerElement("sv-placeholder-paneldynamic", (props) => { return React.createElement(SurveyQuestionPanelDynamicPlaceholder, props); });
|
|
4846
4829
|
|
|
4847
4830
|
class SurveyProgress extends SurveyNavigationBase {
|
|
4848
4831
|
constructor(props) {
|
|
@@ -5521,7 +5504,7 @@ class SurveyQuestionSignaturePad extends SurveyQuestionElementBase {
|
|
|
5521
5504
|
renderBackgroundImage() {
|
|
5522
5505
|
if (!this.question.backgroundImage)
|
|
5523
5506
|
return null;
|
|
5524
|
-
return React.createElement("img", { className: this.question.cssClasses.backgroundImage, src: this.question.backgroundImage, style: { width: this.question.renderedCanvasWidth } });
|
|
5507
|
+
return React.createElement("img", { className: this.question.cssClasses.backgroundImage, src: this.question.backgroundImage, style: { width: this.question.renderedCanvasWidth }, role: "presentation" });
|
|
5525
5508
|
}
|
|
5526
5509
|
renderLoadingIndicator() {
|
|
5527
5510
|
return React.createElement("div", { className: this.question.cssClasses.loadingIndicator },
|
|
@@ -5768,6 +5751,36 @@ ReactElementFactory.Instance.registerElement("sv-matrix-detail-button", props =>
|
|
|
5768
5751
|
return React.createElement(SurveyQuestionMatrixDetailButton, props);
|
|
5769
5752
|
});
|
|
5770
5753
|
|
|
5754
|
+
class SurveyQuestionPanelDynamicAction extends ReactSurveyElement {
|
|
5755
|
+
constructor(props) {
|
|
5756
|
+
super(props);
|
|
5757
|
+
}
|
|
5758
|
+
get data() {
|
|
5759
|
+
return (this.props.item && this.props.item.data) || this.props.data;
|
|
5760
|
+
}
|
|
5761
|
+
get question() {
|
|
5762
|
+
return (this.props.item && this.props.item.data.question) || this.props.data.question;
|
|
5763
|
+
}
|
|
5764
|
+
}
|
|
5765
|
+
class SurveyQuestionPanelDynamicAddButton extends SurveyQuestionPanelDynamicAction {
|
|
5766
|
+
constructor() {
|
|
5767
|
+
super(...arguments);
|
|
5768
|
+
this.handleClick = (event) => {
|
|
5769
|
+
this.question.addPanelUI();
|
|
5770
|
+
};
|
|
5771
|
+
}
|
|
5772
|
+
renderElement() {
|
|
5773
|
+
if (!this.question.canAddPanel)
|
|
5774
|
+
return null;
|
|
5775
|
+
const btnText = this.renderLocString(this.question.locAddPanelText);
|
|
5776
|
+
return (React.createElement("button", { type: "button", id: this.question.addButtonId, className: this.question.getAddButtonCss(), onClick: this.handleClick },
|
|
5777
|
+
React.createElement("span", { className: this.question.cssClasses.buttonAddText }, btnText)));
|
|
5778
|
+
}
|
|
5779
|
+
}
|
|
5780
|
+
ReactElementFactory.Instance.registerElement("sv-paneldynamic-add-btn", (props) => {
|
|
5781
|
+
return React.createElement(SurveyQuestionPanelDynamicAddButton, props);
|
|
5782
|
+
});
|
|
5783
|
+
|
|
5771
5784
|
class SurveyQuestionPanelDynamicRemoveButton extends SurveyQuestionPanelDynamicAction {
|
|
5772
5785
|
constructor() {
|
|
5773
5786
|
super(...arguments);
|
|
@@ -5787,6 +5800,47 @@ ReactElementFactory.Instance.registerElement("sv-paneldynamic-remove-btn", (prop
|
|
|
5787
5800
|
return React.createElement(SurveyQuestionPanelDynamicRemoveButton, props);
|
|
5788
5801
|
});
|
|
5789
5802
|
|
|
5803
|
+
class SurveyQuestionPanelDynamicPrevButton extends SurveyQuestionPanelDynamicAction {
|
|
5804
|
+
constructor() {
|
|
5805
|
+
super(...arguments);
|
|
5806
|
+
this.handleClick = (event) => {
|
|
5807
|
+
this.question.goToPrevPanel();
|
|
5808
|
+
};
|
|
5809
|
+
}
|
|
5810
|
+
renderElement() {
|
|
5811
|
+
return (React.createElement("div", { title: this.question.panelPrevText, onClick: this.handleClick, className: this.question.getPrevButtonCss() },
|
|
5812
|
+
React.createElement(SvgIcon, { iconName: this.question.cssClasses.progressBtnIcon, size: "auto" })));
|
|
5813
|
+
}
|
|
5814
|
+
}
|
|
5815
|
+
ReactElementFactory.Instance.registerElement("sv-paneldynamic-prev-btn", (props) => {
|
|
5816
|
+
return React.createElement(SurveyQuestionPanelDynamicPrevButton, props);
|
|
5817
|
+
});
|
|
5818
|
+
|
|
5819
|
+
class SurveyQuestionPanelDynamicNextButton extends SurveyQuestionPanelDynamicAction {
|
|
5820
|
+
constructor() {
|
|
5821
|
+
super(...arguments);
|
|
5822
|
+
this.handleClick = (event) => {
|
|
5823
|
+
this.question.goToNextPanel();
|
|
5824
|
+
};
|
|
5825
|
+
}
|
|
5826
|
+
renderElement() {
|
|
5827
|
+
return (React.createElement("div", { title: this.question.panelNextText, onClick: this.handleClick, className: this.question.getNextButtonCss() },
|
|
5828
|
+
React.createElement(SvgIcon, { iconName: this.question.cssClasses.progressBtnIcon, size: "auto" })));
|
|
5829
|
+
}
|
|
5830
|
+
}
|
|
5831
|
+
ReactElementFactory.Instance.registerElement("sv-paneldynamic-next-btn", (props) => {
|
|
5832
|
+
return React.createElement(SurveyQuestionPanelDynamicNextButton, props);
|
|
5833
|
+
});
|
|
5834
|
+
|
|
5835
|
+
class SurveyQuestionPanelDynamicProgressText extends SurveyQuestionPanelDynamicAction {
|
|
5836
|
+
renderElement() {
|
|
5837
|
+
return (React.createElement("div", { className: this.question.cssClasses.progressText }, this.question.progressText));
|
|
5838
|
+
}
|
|
5839
|
+
}
|
|
5840
|
+
ReactElementFactory.Instance.registerElement("sv-paneldynamic-progress-text", (props) => {
|
|
5841
|
+
return React.createElement(SurveyQuestionPanelDynamicProgressText, props);
|
|
5842
|
+
});
|
|
5843
|
+
|
|
5790
5844
|
class SurveyNavigationButton extends ReactSurveyElement {
|
|
5791
5845
|
get item() {
|
|
5792
5846
|
return this.props.item;
|
|
@@ -6003,7 +6057,7 @@ ReactElementFactory.Instance.registerElement(LocalizableString.editableRenderer,
|
|
|
6003
6057
|
return React.createElement(SurveyLocStringEditor, props);
|
|
6004
6058
|
});
|
|
6005
6059
|
|
|
6006
|
-
checkLibraryVersion(`${"2.0.
|
|
6060
|
+
checkLibraryVersion(`${"2.0.6"}`, "survey-react-ui");
|
|
6007
6061
|
|
|
6008
6062
|
export { CharacterCounterComponent, ComponentsContainer, Header, HeaderCell, HeaderMobile, List, ListItemContent, ListItemGroup, LoadingIndicatorComponent, LogoImage, MatrixRow, NotifierComponent, Popup, PopupModal, PopupSurvey, QuestionErrorComponent, RatingDropdownItem, RatingItem, RatingItemSmiley, RatingItemStar, ReactElementFactory, ReactQuestionFactory, ReactSurveyElement, ReactSurveyElementsWrapper, Scroll, Skeleton, Survey, SurveyActionBar, SurveyElementBase, SurveyElementErrors, SurveyFileChooseButton, SurveyFilePreview, SurveyFlowPanel, SurveyHeader, SurveyLocStringEditor, SurveyLocStringViewer, SurveyNavigationBase, SurveyNavigationButton, SurveyPage, SurveyPanel, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestion, SurveyQuestionAndErrorsCell, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionButtonGroup, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionComment, SurveyQuestionCommentItem, SurveyQuestionComposite, SurveyQuestionCustom, SurveyQuestionDropdown, SurveyQuestionDropdownBase, SurveyQuestionDropdownSelect, SurveyQuestionElementBase, SurveyQuestionEmpty, SurveyQuestionExpression, SurveyQuestionFile, SurveyQuestionHtml, SurveyQuestionImage, SurveyQuestionImagePicker, SurveyQuestionMatrix, SurveyQuestionMatrixCell, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixRow, SurveyQuestionMultipleText, SurveyQuestionOptionItem, SurveyQuestionPanelDynamic, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicProgressText, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionRadioItem, SurveyQuestionRadiogroup, SurveyQuestionRanking, SurveyQuestionRankingItem, SurveyQuestionRankingItemContent, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionSignaturePad, SurveyQuestionTagbox, SurveyQuestionTagboxItem, SurveyQuestionText, SurveyRow, SurveyTimerPanel, SurveyWindow, SvgBundleComponent, SvgIcon, TagboxFilterString, TitleActions, TitleElement, attachKey2click };
|
|
6009
6063
|
//# sourceMappingURL=survey-react-ui.mjs.map
|