@goldenpine/react-form-builder2 0.20.3-build.20 → 0.20.3-build.22
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/dist/845.app.js +1 -1
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/app.js +1 -1
- package/lib/form-elements/index.js +97 -47
- package/lib/form-elements-edit.js +113 -41
- package/lib/language-provider/locales/en-us.json +6 -10
- package/lib/language-provider/locales/fa-ir.json +6 -2
- package/lib/language-provider/locales/it-it.json +5 -1
- package/lib/language-provider/locales/vi-vn.json +24 -7
- package/lib/preview.js +119 -5
- package/lib/toolbar.js +2 -0
- package/package.json +1 -1
|
@@ -824,53 +824,103 @@ var Camera = /*#__PURE__*/function (_React$Component17) {
|
|
|
824
824
|
sourceDataURL = "data:image/png;base64,".concat(this.props.defaultValue);
|
|
825
825
|
}
|
|
826
826
|
}
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
827
|
+
if (this.props.data.upload_layout === "standard") {
|
|
828
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
829
|
+
style: _objectSpread({}, this.props.style),
|
|
830
|
+
className: baseClasses
|
|
831
|
+
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
|
|
832
|
+
className: "mb-3"
|
|
833
|
+
}, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.read_only === true && this.props.defaultValue && this.props.defaultValue.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
|
|
834
|
+
style: imageStyle,
|
|
835
|
+
src: sourceDataURL
|
|
836
|
+
// {...this.getImageSizeProps(this.props.data)} // move width and height from element style to inline style of image, to make it work the same way as 'Image' element.
|
|
837
|
+
})) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
838
|
+
className: "image-upload-container"
|
|
839
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
840
|
+
style: fileInputStyle
|
|
841
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
842
|
+
name: name,
|
|
843
|
+
type: "file",
|
|
844
|
+
accept: "image/*"
|
|
845
|
+
//capture="camera" // With this property, users on most mobiles can only take photo but no options to pick up a photo from gallery
|
|
846
|
+
,
|
|
847
|
+
className: "image-upload visually-hidden",
|
|
848
|
+
onChange: this.displayImage,
|
|
849
|
+
"data-clearlabel": this.props.data.label_after_photo_clear_icon,
|
|
850
|
+
disabled: this.props.read_only,
|
|
851
|
+
id: name
|
|
852
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
853
|
+
className: "image-upload-control",
|
|
854
|
+
style: {
|
|
855
|
+
position: 'relative'
|
|
856
|
+
}
|
|
857
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
858
|
+
className: "btn btn-outline-secondary",
|
|
859
|
+
htmlFor: name
|
|
860
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
861
|
+
className: "fas fa-camera"
|
|
862
|
+
}), " ", this.props.data.label_after_camera_icon), /*#__PURE__*/_react["default"].createElement("div", null, this.props.data.message_under_camera_icon))), this.state.img && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
|
|
863
|
+
onLoad: function onLoad() {
|
|
864
|
+
return URL.revokeObjectURL(_this13.state.previewImg);
|
|
865
|
+
},
|
|
866
|
+
src: this.state.previewImg,
|
|
867
|
+
height: "100",
|
|
868
|
+
className: "image-upload-preview"
|
|
869
|
+
}), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("div", {
|
|
870
|
+
className: "btn btn-image-clear",
|
|
871
|
+
onClick: this.clearImage
|
|
872
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
873
|
+
className: "fas fa-times"
|
|
874
|
+
}), " ", this.props.data.label_after_photo_clear_icon)))));
|
|
875
|
+
} else {
|
|
876
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
877
|
+
style: _objectSpread({}, this.props.style),
|
|
878
|
+
className: baseClasses
|
|
879
|
+
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
|
|
880
|
+
className: "mb-3"
|
|
881
|
+
}, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.read_only === true && this.props.defaultValue && this.props.defaultValue.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
|
|
882
|
+
style: imageStyle,
|
|
883
|
+
src: sourceDataURL
|
|
884
|
+
})) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
885
|
+
className: "image-upload-container"
|
|
886
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
887
|
+
style: fileInputStyle,
|
|
888
|
+
className: "upload-card"
|
|
889
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
890
|
+
name: name,
|
|
891
|
+
type: "file",
|
|
892
|
+
accept: "image/*",
|
|
893
|
+
className: "visually-hidden",
|
|
894
|
+
onChange: this.displayImage,
|
|
895
|
+
"data-clearlabel": this.props.data.label_after_photo_clear_icon,
|
|
896
|
+
disabled: this.props.read_only,
|
|
897
|
+
id: name
|
|
898
|
+
}), /*#__PURE__*/_react["default"].createElement("label", {
|
|
899
|
+
htmlFor: name,
|
|
900
|
+
className: "upload-card-content"
|
|
901
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
902
|
+
className: "fas fa-cloud-upload-alt upload-icon"
|
|
903
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
904
|
+
className: "upload-text"
|
|
905
|
+
}, this.props.data.message_under_camera_icon), /*#__PURE__*/_react["default"].createElement("div", {
|
|
906
|
+
className: "btn-browse"
|
|
907
|
+
}, this.props.data.label_after_camera_icon))), this.state.img && /*#__PURE__*/_react["default"].createElement("div", {
|
|
908
|
+
className: "preview-container"
|
|
909
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
910
|
+
onLoad: function onLoad() {
|
|
911
|
+
return URL.revokeObjectURL(_this13.state.previewImg);
|
|
912
|
+
},
|
|
913
|
+
src: this.state.previewImg,
|
|
914
|
+
className: "image-upload-preview",
|
|
915
|
+
alt: "Preview",
|
|
916
|
+
height: "100"
|
|
917
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
918
|
+
className: "btn btn-image-clear",
|
|
919
|
+
onClick: this.clearImage
|
|
920
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
921
|
+
className: "fas fa-times"
|
|
922
|
+
}), " Remove Photo")))));
|
|
923
|
+
}
|
|
874
924
|
}
|
|
875
925
|
}]);
|
|
876
926
|
}(_react["default"].Component);
|
|
@@ -10,6 +10,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
10
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
14
|
var _react = _interopRequireDefault(require("react"));
|
|
14
15
|
var _reactTextareaAutosize = _interopRequireDefault(require("react-textarea-autosize"));
|
|
15
16
|
var _draftJs = require("draft-js");
|
|
@@ -34,6 +35,17 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
|
|
|
34
35
|
var _this;
|
|
35
36
|
(0, _classCallCheck2["default"])(this, FormElementsEdit);
|
|
36
37
|
_this = _callSuper(this, FormElementsEdit, [props]);
|
|
38
|
+
// Instead of using editElementProp for the camera layout change, we have a separate handler to immediately update the element on change without waiting for blur, as it's a radio button and we want the change to be reflected immediately in the UI.
|
|
39
|
+
(0, _defineProperty2["default"])(_this, "handleUploadLayoutChange", function (e) {
|
|
40
|
+
var this_element = _this.state.element;
|
|
41
|
+
this_element["upload_layout"] = e.target["value"];
|
|
42
|
+
_this.setState({
|
|
43
|
+
element: this_element,
|
|
44
|
+
dirty: true
|
|
45
|
+
}, function () {
|
|
46
|
+
_this.updateElement();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
37
49
|
_this.state = {
|
|
38
50
|
element: _this.props.element,
|
|
39
51
|
data: _this.props.data,
|
|
@@ -122,6 +134,18 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
|
|
|
122
134
|
});
|
|
123
135
|
}
|
|
124
136
|
}
|
|
137
|
+
}, {
|
|
138
|
+
key: "validateImageSize",
|
|
139
|
+
value: function validateImageSize(e) {
|
|
140
|
+
var regex = /^$|^\d+(px|%)$/;
|
|
141
|
+
if (regex.test(e.target.value)) {
|
|
142
|
+
e.target.classList.remove("is-invalid");
|
|
143
|
+
e.target.classList.add("is-valid");
|
|
144
|
+
} else {
|
|
145
|
+
e.target.classList.remove("is-valid");
|
|
146
|
+
e.target.classList.add("is-invalid");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
125
149
|
}, {
|
|
126
150
|
key: "render",
|
|
127
151
|
value: function render() {
|
|
@@ -348,53 +372,45 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
|
|
|
348
372
|
defaultValue: this.props.element.src,
|
|
349
373
|
onBlur: this.updateElement.bind(this),
|
|
350
374
|
onChange: this.editElementProp.bind(this, 'src', 'value')
|
|
351
|
-
}))),
|
|
375
|
+
}))), this.state.element.element === 'Camera' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
352
376
|
className: "mb-3"
|
|
377
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
378
|
+
className: "control-label bold"
|
|
379
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
380
|
+
id: "upload-layout"
|
|
381
|
+
}), ":"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
382
|
+
className: "d-flex align-items-center gap-3"
|
|
353
383
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
354
|
-
className: "form-check"
|
|
384
|
+
className: "form-check d-flex align-items-center"
|
|
355
385
|
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
356
|
-
id: "do-center",
|
|
357
386
|
className: "form-check-input",
|
|
358
|
-
type: "
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
387
|
+
type: "radio",
|
|
388
|
+
name: "uploadLayout",
|
|
389
|
+
id: "uploadLayoutStandard",
|
|
390
|
+
value: "standard",
|
|
391
|
+
checked: this.props.element.upload_layout === "standard",
|
|
392
|
+
onChange: this.handleUploadLayoutChange
|
|
362
393
|
}), /*#__PURE__*/_react["default"].createElement("label", {
|
|
363
|
-
className: "form-check-label",
|
|
364
|
-
htmlFor: "
|
|
394
|
+
className: "form-check-label ms-2",
|
|
395
|
+
htmlFor: "uploadLayoutStandard"
|
|
365
396
|
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
366
|
-
id: "
|
|
367
|
-
})
|
|
368
|
-
className: "
|
|
369
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
370
|
-
className: "
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
defaultValue: this.props.element.width,
|
|
381
|
-
onBlur: this.updateElement.bind(this),
|
|
382
|
-
onChange: this.editElementProp.bind(this, 'width', 'value')
|
|
383
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
384
|
-
className: "col-sm-3"
|
|
385
|
-
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
386
|
-
className: "control-label",
|
|
387
|
-
htmlFor: "elementHeight"
|
|
397
|
+
id: "upload-layout-standard"
|
|
398
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
399
|
+
className: "form-check d-flex align-items-center"
|
|
400
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
401
|
+
className: "form-check-input",
|
|
402
|
+
type: "radio",
|
|
403
|
+
name: "uploadLayout",
|
|
404
|
+
id: "uploadLayoutDropZone",
|
|
405
|
+
value: "dropzone",
|
|
406
|
+
checked: this.props.element.upload_layout === "dropzone",
|
|
407
|
+
onChange: this.handleUploadLayoutChange
|
|
408
|
+
}), /*#__PURE__*/_react["default"].createElement("label", {
|
|
409
|
+
className: "form-check-label ms-2",
|
|
410
|
+
htmlFor: "uploadLayoutDropZone"
|
|
388
411
|
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
389
|
-
id: "
|
|
390
|
-
})
|
|
391
|
-
id: "elementHeight",
|
|
392
|
-
type: "text",
|
|
393
|
-
className: "form-control",
|
|
394
|
-
defaultValue: this.props.element.height,
|
|
395
|
-
onBlur: this.updateElement.bind(this),
|
|
396
|
-
onChange: this.editElementProp.bind(this, 'height', 'value')
|
|
397
|
-
})))), this.state.element.element === 'Camera' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
412
|
+
id: "upload-layout-dropzone"
|
|
413
|
+
}))))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
398
414
|
className: "mb-3"
|
|
399
415
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
400
416
|
className: "control-label",
|
|
@@ -436,7 +452,63 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
|
|
|
436
452
|
defaultValue: this.props.element.label_after_photo_clear_icon,
|
|
437
453
|
onBlur: this.updateElement.bind(this),
|
|
438
454
|
onChange: this.editElementProp.bind(this, 'label_after_photo_clear_icon', 'value')
|
|
439
|
-
}))),
|
|
455
|
+
}))), canHaveImageSize && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
456
|
+
className: "mb-3"
|
|
457
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
458
|
+
className: "control-label bold"
|
|
459
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
460
|
+
id: "image-layout"
|
|
461
|
+
}), ":"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
462
|
+
className: "form-check"
|
|
463
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
464
|
+
id: "do-center",
|
|
465
|
+
className: "form-check-input",
|
|
466
|
+
type: "checkbox",
|
|
467
|
+
checked: this_checked_center,
|
|
468
|
+
value: true,
|
|
469
|
+
onChange: this.editElementProp.bind(this, 'center', 'checked')
|
|
470
|
+
}), /*#__PURE__*/_react["default"].createElement("label", {
|
|
471
|
+
className: "form-check-label",
|
|
472
|
+
htmlFor: "do-center"
|
|
473
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
474
|
+
id: "center"
|
|
475
|
+
}), "?"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
476
|
+
className: "row mb-3"
|
|
477
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
478
|
+
className: "col-sm-3"
|
|
479
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
480
|
+
className: "control-label",
|
|
481
|
+
htmlFor: "elementWidth"
|
|
482
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
483
|
+
id: "width"
|
|
484
|
+
}), ":"), /*#__PURE__*/_react["default"].createElement("input", {
|
|
485
|
+
id: "elementWidth",
|
|
486
|
+
type: "text",
|
|
487
|
+
className: "form-control",
|
|
488
|
+
pattern: "^$|^\\d+(px|%)$",
|
|
489
|
+
onInput: this.validateImageSize,
|
|
490
|
+
defaultValue: this.props.element.width,
|
|
491
|
+
onBlur: this.updateElement.bind(this),
|
|
492
|
+
onChange: this.editElementProp.bind(this, 'width', 'value')
|
|
493
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
494
|
+
className: "col-sm-3"
|
|
495
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
496
|
+
className: "control-label",
|
|
497
|
+
htmlFor: "elementHeight"
|
|
498
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
|
499
|
+
id: "height"
|
|
500
|
+
}), ":"), /*#__PURE__*/_react["default"].createElement("input", {
|
|
501
|
+
id: "elementHeight",
|
|
502
|
+
type: "text",
|
|
503
|
+
className: "form-control",
|
|
504
|
+
pattern: "^$|^\\d+(px|%)$",
|
|
505
|
+
onInput: this.validateImageSize,
|
|
506
|
+
defaultValue: this.props.element.height,
|
|
507
|
+
onBlur: this.updateElement.bind(this),
|
|
508
|
+
onChange: this.editElementProp.bind(this, 'height', 'value')
|
|
509
|
+
})), /*#__PURE__*/_react["default"].createElement("small", {
|
|
510
|
+
className: "form-text text-muted"
|
|
511
|
+
}, "Use ", /*#__PURE__*/_react["default"].createElement("code", null, "px"), " or ", /*#__PURE__*/_react["default"].createElement("code", null, "%"), " (e.g. 200px, 100%)."))), this.state.element.element === 'FileUpload' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
440
512
|
className: "mb-3"
|
|
441
513
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
442
514
|
className: "control-label",
|
|
@@ -37,9 +37,13 @@
|
|
|
37
37
|
"word" : "Word",
|
|
38
38
|
"excel" : "Excel",
|
|
39
39
|
"ppt" : "PPT",
|
|
40
|
-
"
|
|
40
|
+
"upload-layout" : "Upload Area Layout",
|
|
41
|
+
"upload-layout-standard" : "Standard",
|
|
42
|
+
"upload-layout-dropzone" : "Large upload area",
|
|
43
|
+
"image-layout" : "Image Layout",
|
|
44
|
+
"display-label-after-camera-icon" : "Display label on button",
|
|
41
45
|
"place-holder-display-label-after-camera-icon" : "Upload Photo",
|
|
42
|
-
"display-message-under-camera-icon" : "Display message under
|
|
46
|
+
"display-message-under-camera-icon" : "Display message under icon",
|
|
43
47
|
"place-holder-display-message-under-camera-icon" : "Select an image from your computer or device.",
|
|
44
48
|
"display-label-after-photo-clear-icon" : "Display label after photo clear icon",
|
|
45
49
|
"place-holder-display-label-after-photo-clear-icon" : "Clear Photo",
|
|
@@ -107,12 +111,4 @@
|
|
|
107
111
|
"message.was-not-registered": "was not registered",
|
|
108
112
|
"message.invalid-email": "field requires valid email address",
|
|
109
113
|
"message.invalid-phone-number": "field requires a valid phone number"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
114
|
}
|
|
@@ -37,9 +37,13 @@
|
|
|
37
37
|
"word": "Word",
|
|
38
38
|
"excel": "Excel",
|
|
39
39
|
"ppt": "PPT",
|
|
40
|
+
"upload-layout" : "چیدمان بخش بارگذاری",
|
|
41
|
+
"upload-layout-standard" : "استاندارد",
|
|
42
|
+
"upload-layout-dropzone" : "بخش بارگذاری بزرگ",
|
|
43
|
+
"image-layout" : "چیدمان تصویر",
|
|
40
44
|
"display-label-after-camera-icon" : "نمایش برچسب پس از آیکون دوربین",
|
|
41
45
|
"place-holder-display-label-after-camera-icon" : "آپلود عکس",
|
|
42
|
-
"display-message-under-camera-icon" : "نمایش پیام زیر آیکون
|
|
46
|
+
"display-message-under-camera-icon" : "نمایش پیام زیر آیکون",
|
|
43
47
|
"place-holder-display-message-under-camera-icon" : "یک تصویر را از رایانه یا دستگاه خود انتخاب کنید.",
|
|
44
48
|
"display-label-after-photo-clear-icon" : "نمایش برچسب پس از آیکون حذف عکس",
|
|
45
49
|
"place-holder-display-label-after-photo-clear-icon" : "حذف عکس",
|
|
@@ -107,4 +111,4 @@
|
|
|
107
111
|
"message.was-not-registered": "ثبت نشد",
|
|
108
112
|
"message.invalid-email": "فیلد نیاز به آدرس ایمیل معتبر دارد",
|
|
109
113
|
"message.invalid-phone-number": "فیلد نیاز به شماره تلفن معتبر دارد"
|
|
110
|
-
}
|
|
114
|
+
}
|
|
@@ -37,9 +37,13 @@
|
|
|
37
37
|
"word" : "Word",
|
|
38
38
|
"excel" : "Excel",
|
|
39
39
|
"ppt" : "PPT",
|
|
40
|
+
"upload-layout" : "Layout dell'area di caricamento",
|
|
41
|
+
"upload-layout-standard" : "Standard",
|
|
42
|
+
"upload-layout-dropzone" : "Area di caricamento grande",
|
|
43
|
+
"image-layout" : "Layout dell'immagine",
|
|
40
44
|
"display-label-after-camera-icon" : "Mostra etichetta dopo l'icona della fotocamera",
|
|
41
45
|
"place-holder-display-label-after-camera-icon" : "Carica foto",
|
|
42
|
-
"display-message-under-camera-icon" : "Mostra messaggio sotto l'icona
|
|
46
|
+
"display-message-under-camera-icon" : "Mostra il messaggio sotto l'icona",
|
|
43
47
|
"place-holder-display-message-under-camera-icon" : "Seleziona un'immagine dal tuo computer o dispositivo.",
|
|
44
48
|
"display-label-after-photo-clear-icon" : "Mostra etichetta dopo l'icona di cancellazione della foto",
|
|
45
49
|
"place-holder-display-label-after-photo-clear-icon" : "Cancella foto",
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"display-label": "Nhãn hiển thị",
|
|
3
3
|
"choose-file": "Chọn tệp tin",
|
|
4
|
+
"choose-file-type": "Chọn loại tệp",
|
|
5
|
+
"select-file-type": "Chọn kiểu tập tin",
|
|
4
6
|
"text-to-display": "Chữ hiển thị",
|
|
5
7
|
"link-to": "Liên kết tới",
|
|
6
8
|
"center": "Giữa",
|
|
@@ -31,9 +33,17 @@
|
|
|
31
33
|
"populate-options-from-api": "Lấy dữ liệu từ API",
|
|
32
34
|
"minimum-number-of-selections" : "Số lượng lựa chọn tối thiểu mà khách hàng phải chọn",
|
|
33
35
|
"populate": "Thực hiện",
|
|
36
|
+
"pdf" : "PDF",
|
|
37
|
+
"word" : "Word",
|
|
38
|
+
"excel" : "Excel",
|
|
39
|
+
"ppt" : "PPT",
|
|
40
|
+
"upload-layout" : "Bố cục khu vực tải lên",
|
|
41
|
+
"upload-layout-standard" : "Tiêu chuẩn",
|
|
42
|
+
"upload-layout-dropzone" : "Khu vực tải lên lớn",
|
|
43
|
+
"image-layout" : "Bố cục hình ảnh",
|
|
34
44
|
"display-label-after-camera-icon" : "Hiển thị nhãn sau biểu tượng máy ảnh",
|
|
35
45
|
"place-holder-display-label-after-camera-icon" : "Tải ảnh lên",
|
|
36
|
-
"display-message-under-camera-icon" : "Hiển thị
|
|
46
|
+
"display-message-under-camera-icon" : "Hiển thị thông báo dưới biểu tượng",
|
|
37
47
|
"place-holder-display-message-under-camera-icon" : "Chọn một hình ảnh từ máy tính hoặc thiết bị của bạn.",
|
|
38
48
|
"display-label-after-photo-clear-icon" : "Hiển thị nhãn sau biểu tượng xóa ảnh",
|
|
39
49
|
"place-holder-display-label-after-photo-clear-icon" : "Xóa ảnh",
|
|
@@ -67,12 +77,16 @@
|
|
|
67
77
|
"checkboxes" : "Hộp chọn",
|
|
68
78
|
"multiple-choice":"Nhiều lựa chọn",
|
|
69
79
|
"text-input":"Nhập chữ",
|
|
80
|
+
"email-input": "Email",
|
|
81
|
+
"phone-input": "Số điện thoại",
|
|
70
82
|
"number-input":"Nhập số",
|
|
71
|
-
"fieldset":"bộ trường",
|
|
72
83
|
"multi-line-input":"Nhập nhiều dòng",
|
|
84
|
+
"fieldset":"bộ trường",
|
|
73
85
|
"two-columns-row":"Dòng có hai cột",
|
|
74
86
|
"three-columns-row":"Dòng có ba cột",
|
|
75
87
|
"four-columns-row":"Dòng có bốn cột",
|
|
88
|
+
"five-columns-row": "Hàng năm cột",
|
|
89
|
+
"six-columns-row": "Hàng sáu cột",
|
|
76
90
|
"image":"Liên kết ảnh",
|
|
77
91
|
"rating":"Đánh giá",
|
|
78
92
|
"date":"Ngày",
|
|
@@ -81,17 +95,20 @@
|
|
|
81
95
|
"file-attachment":"Tệp đính kèm",
|
|
82
96
|
"range":"Khoảng",
|
|
83
97
|
"camera":"Tải ảnh",
|
|
98
|
+
"file-upload": "Tải tệp lên",
|
|
84
99
|
"place-holder-text": "Nội dung...",
|
|
85
100
|
"place-holder-label": "Nhãn",
|
|
86
101
|
"place-holder-website-link": "Đường dẫn tới website...",
|
|
87
102
|
"place-holder-file-name": "Tên tệp...",
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
|
|
103
|
+
"place-holder-email": "E-Mail",
|
|
104
|
+
"place-holder-phone-number": "Số điện thoại",
|
|
105
|
+
"easy": "Dễ",
|
|
106
|
+
"difficult": "Khó",
|
|
91
107
|
"drop-zone": "Khu vực kéo thả",
|
|
92
108
|
|
|
93
109
|
"message.is-required": "không được bỏ trống",
|
|
94
110
|
"message.was-answered incorrectly": "đã trả lời sai",
|
|
95
|
-
"message.was-not-registered": "chưa đăng ký"
|
|
96
|
-
|
|
111
|
+
"message.was-not-registered": "chưa đăng ký",
|
|
112
|
+
"message.invalid-email": "trường này yêu cầu địa chỉ email hợp lệ",
|
|
113
|
+
"message.invalid-phone-number": "trường này yêu cầu số điện thoại hợp lệ"
|
|
97
114
|
}
|