@rjsf/core 5.3.0 → 5.4.0

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.
@@ -88,9 +88,9 @@
88
88
  return typeof key === "symbol" ? key : String(key);
89
89
  }
90
90
 
91
- var _excluded$9 = ["widget"],
92
- _excluded2 = ["widget"],
93
- _excluded3 = ["widget"];
91
+ var _excluded$9 = ["widget", "title"],
92
+ _excluded2 = ["widget", "title"],
93
+ _excluded3 = ["widget", "title"];
94
94
  /** Used to generate a unique ID for an element in a row */
95
95
  function generateRowId() {
96
96
  return nanoid.nanoid();
@@ -511,6 +511,7 @@
511
511
  /** Renders an array using the custom widget provided by the user in the `uiSchema`
512
512
  */;
513
513
  _proto.renderCustomWidget = function renderCustomWidget() {
514
+ var _ref;
514
515
  var _this$props9 = this.props,
515
516
  schema = _this$props9.schema,
516
517
  idSchema = _this$props9.idSchema,
@@ -533,12 +534,16 @@
533
534
  rawErrors = _this$props9.rawErrors,
534
535
  name = _this$props9.name;
535
536
  var widgets = registry.widgets,
536
- formContext = registry.formContext;
537
- var title = schema.title || name;
538
- var _getUiOptions2 = utils.getUiOptions(uiSchema),
537
+ formContext = registry.formContext,
538
+ globalUiOptions = registry.globalUiOptions,
539
+ schemaUtils = registry.schemaUtils;
540
+ var _getUiOptions2 = utils.getUiOptions(uiSchema, globalUiOptions),
539
541
  widget = _getUiOptions2.widget,
542
+ uiTitle = _getUiOptions2.title,
540
543
  options = _objectWithoutPropertiesLoose(_getUiOptions2, _excluded$9);
541
544
  var Widget = utils.getWidget(schema, widget, widgets);
545
+ var label = (_ref = uiTitle != null ? uiTitle : schema.title) != null ? _ref : name;
546
+ var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
542
547
  return jsxRuntime.jsx(Widget, {
543
548
  id: idSchema.$id,
544
549
  name: name,
@@ -555,7 +560,8 @@
555
560
  readonly: readonly,
556
561
  hideError: hideError,
557
562
  required: required,
558
- label: title,
563
+ label: label,
564
+ hideLabel: !displayLabel,
559
565
  placeholder: placeholder,
560
566
  formContext: formContext,
561
567
  autofocus: autofocus,
@@ -565,6 +571,7 @@
565
571
  /** Renders an array as a set of checkboxes
566
572
  */;
567
573
  _proto.renderMultiSelect = function renderMultiSelect() {
574
+ var _ref2;
568
575
  var _this$props10 = this.props,
569
576
  schema = _this$props10.schema,
570
577
  idSchema = _this$props10.idSchema,
@@ -587,15 +594,18 @@
587
594
  name = _this$props10.name;
588
595
  var widgets = registry.widgets,
589
596
  schemaUtils = registry.schemaUtils,
590
- formContext = registry.formContext;
597
+ formContext = registry.formContext,
598
+ globalUiOptions = registry.globalUiOptions;
591
599
  var itemsSchema = schemaUtils.retrieveSchema(schema.items, items);
592
- var title = schema.title || name;
593
600
  var enumOptions = utils.optionsList(itemsSchema);
594
- var _getUiOptions3 = utils.getUiOptions(uiSchema),
601
+ var _getUiOptions3 = utils.getUiOptions(uiSchema, globalUiOptions),
595
602
  _getUiOptions3$widget = _getUiOptions3.widget,
596
603
  widget = _getUiOptions3$widget === void 0 ? 'select' : _getUiOptions3$widget,
604
+ uiTitle = _getUiOptions3.title,
597
605
  options = _objectWithoutPropertiesLoose(_getUiOptions3, _excluded2);
598
606
  var Widget = utils.getWidget(schema, widget, widgets);
607
+ var label = (_ref2 = uiTitle != null ? uiTitle : schema.title) != null ? _ref2 : name;
608
+ var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
599
609
  return jsxRuntime.jsx(Widget, {
600
610
  id: idSchema.$id,
601
611
  name: name,
@@ -613,7 +623,8 @@
613
623
  disabled: disabled,
614
624
  readonly: readonly,
615
625
  required: required,
616
- label: title,
626
+ label: label,
627
+ hideLabel: !displayLabel,
617
628
  placeholder: placeholder,
618
629
  formContext: formContext,
619
630
  autofocus: autofocus,
@@ -623,6 +634,7 @@
623
634
  /** Renders an array of files using the `FileWidget`
624
635
  */;
625
636
  _proto.renderFiles = function renderFiles() {
637
+ var _ref3;
626
638
  var _this$props11 = this.props,
627
639
  schema = _this$props11.schema,
628
640
  uiSchema = _this$props11.uiSchema,
@@ -642,14 +654,18 @@
642
654
  _this$props11$formDat = _this$props11.formData,
643
655
  items = _this$props11$formDat === void 0 ? [] : _this$props11$formDat,
644
656
  rawErrors = _this$props11.rawErrors;
645
- var title = schema.title || name;
646
657
  var widgets = registry.widgets,
647
- formContext = registry.formContext;
648
- var _getUiOptions4 = utils.getUiOptions(uiSchema),
658
+ formContext = registry.formContext,
659
+ globalUiOptions = registry.globalUiOptions,
660
+ schemaUtils = registry.schemaUtils;
661
+ var _getUiOptions4 = utils.getUiOptions(uiSchema, globalUiOptions),
649
662
  _getUiOptions4$widget = _getUiOptions4.widget,
650
663
  widget = _getUiOptions4$widget === void 0 ? 'files' : _getUiOptions4$widget,
664
+ uiTitle = _getUiOptions4.title,
651
665
  options = _objectWithoutPropertiesLoose(_getUiOptions4, _excluded3);
652
666
  var Widget = utils.getWidget(schema, widget, widgets);
667
+ var label = (_ref3 = uiTitle != null ? uiTitle : schema.title) != null ? _ref3 : name;
668
+ var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
653
669
  return jsxRuntime.jsx(Widget, {
654
670
  options: options,
655
671
  id: idSchema.$id,
@@ -660,7 +676,6 @@
660
676
  onFocus: onFocus,
661
677
  schema: schema,
662
678
  uiSchema: uiSchema,
663
- title: title,
664
679
  value: items,
665
680
  disabled: disabled,
666
681
  readonly: readonly,
@@ -669,7 +684,8 @@
669
684
  formContext: formContext,
670
685
  autofocus: autofocus,
671
686
  rawErrors: rawErrors,
672
- label: ''
687
+ label: label,
688
+ hideLabel: !displayLabel
673
689
  });
674
690
  }
675
691
  /** Renders an array that has a maximum limit of items
@@ -881,13 +897,14 @@
881
897
  return ArrayField;
882
898
  }(react.Component);
883
899
 
884
- var _excluded$8 = ["widget"];
900
+ var _excluded$8 = ["widget", "title", "label"];
885
901
  /** The `BooleanField` component is used to render a field in the schema is boolean. It constructs `enumOptions` for the
886
902
  * two boolean values based on the various alternatives in the schema.
887
903
  *
888
904
  * @param props - The `FieldProps` for this template
889
905
  */
890
906
  function BooleanField(props) {
907
+ var _ref;
891
908
  var schema = props.schema,
892
909
  name = props.name,
893
910
  uiSchema = props.uiSchema,
@@ -905,15 +922,20 @@
905
922
  var title = schema.title;
906
923
  var widgets = registry.widgets,
907
924
  formContext = registry.formContext,
908
- translateString = registry.translateString;
909
- var _getUiOptions = utils.getUiOptions(uiSchema),
925
+ translateString = registry.translateString,
926
+ globalUiOptions = registry.globalUiOptions;
927
+ var _getUiOptions = utils.getUiOptions(uiSchema, globalUiOptions),
910
928
  _getUiOptions$widget = _getUiOptions.widget,
911
929
  widget = _getUiOptions$widget === void 0 ? 'checkbox' : _getUiOptions$widget,
930
+ uiTitle = _getUiOptions.title,
931
+ _getUiOptions$label = _getUiOptions.label,
932
+ displayLabel = _getUiOptions$label === void 0 ? true : _getUiOptions$label,
912
933
  options = _objectWithoutPropertiesLoose(_getUiOptions, _excluded$8);
913
934
  var Widget = utils.getWidget(schema, widget, widgets);
914
935
  var yes = translateString(utils.TranslatableString.YesLabel);
915
936
  var no = translateString(utils.TranslatableString.NoLabel);
916
937
  var enumOptions;
938
+ var label = (_ref = uiTitle != null ? uiTitle : title) != null ? _ref : name;
917
939
  if (Array.isArray(schema.oneOf)) {
918
940
  enumOptions = utils.optionsList({
919
941
  oneOf: schema.oneOf.map(function (option) {
@@ -961,7 +983,8 @@
961
983
  onChange: onChange,
962
984
  onFocus: onFocus,
963
985
  onBlur: onBlur,
964
- label: title === undefined ? name : title,
986
+ label: label,
987
+ hideLabel: !displayLabel,
965
988
  value: formData,
966
989
  required: required,
967
990
  disabled: disabled,
@@ -1114,12 +1137,14 @@
1114
1137
  uiSchema = _this$props5.uiSchema;
1115
1138
  var widgets = registry.widgets,
1116
1139
  fields = registry.fields,
1117
- translateString = registry.translateString;
1140
+ translateString = registry.translateString,
1141
+ globalUiOptions = registry.globalUiOptions,
1142
+ schemaUtils = registry.schemaUtils;
1118
1143
  var _SchemaField = fields.SchemaField;
1119
1144
  var _this$state2 = this.state,
1120
1145
  selectedOption = _this$state2.selectedOption,
1121
1146
  retrievedOptions = _this$state2.retrievedOptions;
1122
- var _getUiOptions = utils.getUiOptions(uiSchema),
1147
+ var _getUiOptions = utils.getUiOptions(uiSchema, globalUiOptions),
1123
1148
  _getUiOptions$widget = _getUiOptions.widget,
1124
1149
  widget = _getUiOptions$widget === void 0 ? 'select' : _getUiOptions$widget,
1125
1150
  placeholder = _getUiOptions.placeholder,
@@ -1133,6 +1158,7 @@
1133
1158
  }, widget, widgets);
1134
1159
  var rawErrors = get__default["default"](errorSchema, utils.ERRORS_KEY, []);
1135
1160
  var fieldErrorSchema = omit__default["default"](errorSchema, [utils.ERRORS_KEY]);
1161
+ var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
1136
1162
  var option = selectedOption >= 0 ? retrievedOptions[selectedOption] || null : null;
1137
1163
  var optionSchema;
1138
1164
  if (option) {
@@ -1177,7 +1203,8 @@
1177
1203
  placeholder: placeholder,
1178
1204
  autocomplete: autocomplete,
1179
1205
  autofocus: autofocus,
1180
- label: ''
1206
+ label: title != null ? title : name,
1207
+ hideLabel: !displayLabel
1181
1208
  })
1182
1209
  }), option !== null && jsxRuntime.jsx(_SchemaField, _extends({}, this.props, {
1183
1210
  schema: optionSchema
@@ -1432,7 +1459,10 @@
1432
1459
  /** Renders the `ObjectField` from the given props
1433
1460
  */
1434
1461
  _proto.render = function render() {
1435
- var _this2 = this;
1462
+ var _ref2,
1463
+ _uiOptions$title,
1464
+ _uiOptions$descriptio,
1465
+ _this2 = this;
1436
1466
  var _this$props6 = this.props,
1437
1467
  rawSchema = _this$props6.schema,
1438
1468
  _this$props6$uiSchema = _this$props6.uiSchema,
@@ -1456,14 +1486,15 @@
1456
1486
  var fields = registry.fields,
1457
1487
  formContext = registry.formContext,
1458
1488
  schemaUtils = registry.schemaUtils,
1459
- translateString = registry.translateString;
1489
+ translateString = registry.translateString,
1490
+ globalUiOptions = registry.globalUiOptions;
1460
1491
  var SchemaField = fields.SchemaField;
1461
1492
  var schema = schemaUtils.retrieveSchema(rawSchema, formData);
1462
- var uiOptions = utils.getUiOptions(uiSchema);
1493
+ var uiOptions = utils.getUiOptions(uiSchema, globalUiOptions);
1463
1494
  var _schema$properties = schema.properties,
1464
1495
  schemaProperties = _schema$properties === void 0 ? {} : _schema$properties;
1465
- var title = uiOptions.title || (schema.title === undefined ? name : schema.title);
1466
- var description = uiOptions.description || schema.description;
1496
+ var title = (_ref2 = (_uiOptions$title = uiOptions.title) != null ? _uiOptions$title : schema.title) != null ? _ref2 : name;
1497
+ var description = (_uiOptions$descriptio = uiOptions.description) != null ? _uiOptions$descriptio : schema.description;
1467
1498
  var orderedProperties;
1468
1499
  try {
1469
1500
  var properties = Object.keys(schemaProperties);
@@ -1485,8 +1516,9 @@
1485
1516
  }
1486
1517
  var Template = utils.getTemplate('ObjectFieldTemplate', registry, uiOptions);
1487
1518
  var templateProps = {
1488
- title: title,
1489
- description: description,
1519
+ // getDisplayLabel() always returns false for object types, so just check the `uiOptions.label`
1520
+ title: uiOptions.label === false ? '' : title,
1521
+ description: uiOptions.label === false ? undefined : description,
1490
1522
  properties: orderedProperties.map(function (name) {
1491
1523
  var addedByAdditionalProperties = has__default["default"](schema, [utils.PROPERTIES_KEY, name, utils.ADDITIONAL_PROPERTY_FLAG]);
1492
1524
  var fieldUiSchema = addedByAdditionalProperties ? uiSchema.additionalProperties : uiSchema[name];
@@ -1803,12 +1835,13 @@
1803
1835
  return SchemaField;
1804
1836
  }(react.Component);
1805
1837
 
1806
- var _excluded$5 = ["widget", "placeholder"];
1838
+ var _excluded$5 = ["widget", "placeholder", "title"];
1807
1839
  /** The `StringField` component is used to render a schema field that represents a string type
1808
1840
  *
1809
1841
  * @param props - The `FieldProps` for this template
1810
1842
  */
1811
1843
  function StringField(props) {
1844
+ var _ref;
1812
1845
  var schema = props.schema,
1813
1846
  name = props.name,
1814
1847
  uiSchema = props.uiSchema,
@@ -1830,7 +1863,8 @@
1830
1863
  format = schema.format;
1831
1864
  var widgets = registry.widgets,
1832
1865
  formContext = registry.formContext,
1833
- schemaUtils = registry.schemaUtils;
1866
+ schemaUtils = registry.schemaUtils,
1867
+ globalUiOptions = registry.globalUiOptions;
1834
1868
  var enumOptions = schemaUtils.isSelect(schema) ? utils.optionsList(schema) : undefined;
1835
1869
  var defaultWidget = enumOptions ? 'select' : 'text';
1836
1870
  if (format && utils.hasWidget(schema, format, widgets)) {
@@ -1841,7 +1875,10 @@
1841
1875
  widget = _getUiOptions$widget === void 0 ? defaultWidget : _getUiOptions$widget,
1842
1876
  _getUiOptions$placeho = _getUiOptions.placeholder,
1843
1877
  placeholder = _getUiOptions$placeho === void 0 ? '' : _getUiOptions$placeho,
1878
+ uiTitle = _getUiOptions.title,
1844
1879
  options = _objectWithoutPropertiesLoose(_getUiOptions, _excluded$5);
1880
+ var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
1881
+ var label = (_ref = uiTitle != null ? uiTitle : title) != null ? _ref : name;
1845
1882
  var Widget = utils.getWidget(schema, widget, widgets);
1846
1883
  return jsxRuntime.jsx(Widget, {
1847
1884
  options: _extends({}, options, {
@@ -1851,7 +1888,8 @@
1851
1888
  uiSchema: uiSchema,
1852
1889
  id: idSchema.$id,
1853
1890
  name: name,
1854
- label: title === undefined ? name : title,
1891
+ label: label,
1892
+ hideLabel: !displayLabel,
1855
1893
  value: formData,
1856
1894
  onChange: onChange,
1857
1895
  onBlur: onBlur,
@@ -1909,7 +1947,7 @@
1909
1947
  registry = props.registry,
1910
1948
  schema = props.schema,
1911
1949
  uiSchema = props.uiSchema;
1912
- var options = utils.getUiOptions(uiSchema);
1950
+ var options = utils.getUiOptions(uiSchema, registry.globalUiOptions);
1913
1951
  var _options$label = options.label,
1914
1952
  displayLabel = _options$label === void 0 ? true : _options$label;
1915
1953
  if (!description || !displayLabel) {
@@ -2068,7 +2106,7 @@
2068
2106
  uiSchema = props.uiSchema,
2069
2107
  required = props.required,
2070
2108
  registry = props.registry;
2071
- var options = utils.getUiOptions(uiSchema);
2109
+ var options = utils.getUiOptions(uiSchema, registry.globalUiOptions);
2072
2110
  var _options$label = options.label,
2073
2111
  displayLabel = _options$label === void 0 ? true : _options$label;
2074
2112
  if (!title || !displayLabel) {
@@ -2457,16 +2495,16 @@
2457
2495
  var AddButton = registry.templates.ButtonTemplates.AddButton;
2458
2496
  return jsxRuntime.jsxs("fieldset", {
2459
2497
  id: idSchema.$id,
2460
- children: [(options.title || title) && jsxRuntime.jsx(TitleFieldTemplate, {
2498
+ children: [title && jsxRuntime.jsx(TitleFieldTemplate, {
2461
2499
  id: utils.titleId(idSchema),
2462
- title: options.title || title,
2500
+ title: title,
2463
2501
  required: required,
2464
2502
  schema: schema,
2465
2503
  uiSchema: uiSchema,
2466
2504
  registry: registry
2467
- }), (options.description || description) && jsxRuntime.jsx(DescriptionFieldTemplate, {
2505
+ }), description && jsxRuntime.jsx(DescriptionFieldTemplate, {
2468
2506
  id: utils.descriptionId(idSchema),
2469
- description: options.description || description,
2507
+ description: description,
2470
2508
  schema: schema,
2471
2509
  uiSchema: uiSchema,
2472
2510
  registry: registry
@@ -2744,22 +2782,25 @@
2744
2782
  onChange = _ref2.onChange,
2745
2783
  value = _ref2.value;
2746
2784
  var translateString = registry.translateString;
2785
+ var _useState = react.useState(value),
2786
+ lastValue = _useState[0],
2787
+ setLastValue = _useState[1];
2747
2788
  var _useReducer = react.useReducer(function (state, action) {
2748
2789
  return _extends({}, state, action);
2749
2790
  }, utils.parseDateString(value, time)),
2750
2791
  state = _useReducer[0],
2751
2792
  setState = _useReducer[1];
2752
2793
  react.useEffect(function () {
2753
- if (value && value !== utils.toDateString(state, time)) {
2794
+ var stateValue = utils.toDateString(state, time);
2795
+ if (readyForChange(state) && stateValue !== value) {
2796
+ // The user changed the date to a new valid data via the comboboxes, so call onChange
2797
+ onChange(stateValue);
2798
+ } else if (lastValue !== value) {
2799
+ // We got a new value in the props
2800
+ setLastValue(value);
2754
2801
  setState(utils.parseDateString(value, time));
2755
2802
  }
2756
- }, [value, state, time]);
2757
- react.useEffect(function () {
2758
- if (readyForChange(state)) {
2759
- // Only propagate to parent state if we have a complete date{time}
2760
- onChange(utils.toDateString(state, time));
2761
- }
2762
- }, [state, time, onChange]);
2803
+ }, [time, value, onChange, state, lastValue]);
2763
2804
  var handleChange = react.useCallback(function (property, value) {
2764
2805
  var _setState;
2765
2806
  setState((_setState = {}, _setState[property] = value, _setState));
@@ -2769,17 +2810,16 @@
2769
2810
  if (disabled || readonly) {
2770
2811
  return;
2771
2812
  }
2772
- var nowDateObj = utils.parseDateString(new Date().toJSON(), time);
2773
- setState(nowDateObj);
2813
+ var nextState = utils.parseDateString(new Date().toJSON(), time);
2814
+ onChange(utils.toDateString(nextState, time));
2774
2815
  }, [disabled, readonly, time]);
2775
2816
  var handleClear = react.useCallback(function (event) {
2776
2817
  event.preventDefault();
2777
2818
  if (disabled || readonly) {
2778
2819
  return;
2779
2820
  }
2780
- setState(utils.parseDateString('', time));
2781
2821
  onChange(undefined);
2782
- }, [disabled, readonly, time, onChange]);
2822
+ }, [disabled, readonly, onChange]);
2783
2823
  return jsxRuntime.jsxs("ul", {
2784
2824
  className: 'list-inline',
2785
2825
  children: [dateElementProps(state, time, options.yearsRange).map(function (elemProps, i) {
@@ -2840,6 +2880,7 @@
2840
2880
  * @param props - The `WidgetProps` for this component
2841
2881
  */
2842
2882
  function CheckboxWidget(_ref) {
2883
+ var _options$description;
2843
2884
  var schema = _ref.schema,
2844
2885
  uiSchema = _ref.uiSchema,
2845
2886
  options = _ref.options,
@@ -2848,6 +2889,7 @@
2848
2889
  disabled = _ref.disabled,
2849
2890
  readonly = _ref.readonly,
2850
2891
  label = _ref.label,
2892
+ hideLabel = _ref.hideLabel,
2851
2893
  _ref$autofocus = _ref.autofocus,
2852
2894
  autofocus = _ref$autofocus === void 0 ? false : _ref$autofocus,
2853
2895
  onBlur = _ref.onBlur,
@@ -2868,11 +2910,12 @@
2868
2910
  var handleFocus = react.useCallback(function (event) {
2869
2911
  return onFocus(id, event.target.checked);
2870
2912
  }, [onFocus, id]);
2913
+ var description = (_options$description = options.description) != null ? _options$description : schema.description;
2871
2914
  return jsxRuntime.jsxs("div", {
2872
2915
  className: "checkbox " + (disabled || readonly ? 'disabled' : ''),
2873
- children: [schema.description && jsxRuntime.jsx(DescriptionFieldTemplate, {
2916
+ children: [!hideLabel && !!description && jsxRuntime.jsx(DescriptionFieldTemplate, {
2874
2917
  id: utils.descriptionId(id),
2875
- description: schema.description,
2918
+ description: description,
2876
2919
  schema: schema,
2877
2920
  uiSchema: uiSchema,
2878
2921
  registry: registry
@@ -2889,9 +2932,9 @@
2889
2932
  onBlur: handleBlur,
2890
2933
  onFocus: handleFocus,
2891
2934
  "aria-describedby": utils.ariaDescribedByIds(id)
2892
- }), jsxRuntime.jsx("span", {
2935
+ }), utils.labelValue(jsxRuntime.jsx("span", {
2893
2936
  children: label
2894
- })]
2937
+ }), hideLabel)]
2895
2938
  })]
2896
2939
  });
2897
2940
  }
@@ -3079,9 +3122,38 @@
3079
3122
  function processFiles(files) {
3080
3123
  return Promise.all(Array.from(files).map(processFile));
3081
3124
  }
3082
- function FilesInfo(_ref) {
3083
- var filesInfo = _ref.filesInfo,
3125
+ function FileInfoPreview(_ref) {
3126
+ var fileInfo = _ref.fileInfo,
3084
3127
  registry = _ref.registry;
3128
+ var translateString = registry.translateString;
3129
+ var dataURL = fileInfo.dataURL,
3130
+ type = fileInfo.type,
3131
+ name = fileInfo.name;
3132
+ if (!dataURL) {
3133
+ return null;
3134
+ }
3135
+ if (type.indexOf('image') !== -1) {
3136
+ return jsxRuntime.jsx("img", {
3137
+ src: dataURL,
3138
+ style: {
3139
+ maxWidth: '100%'
3140
+ },
3141
+ className: 'file-preview'
3142
+ });
3143
+ }
3144
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
3145
+ children: [' ', jsxRuntime.jsx("a", {
3146
+ download: "preview-" + name,
3147
+ href: dataURL,
3148
+ className: 'file-download',
3149
+ children: translateString(utils.TranslatableString.PreviewLabel)
3150
+ })]
3151
+ });
3152
+ }
3153
+ function FilesInfo(_ref2) {
3154
+ var filesInfo = _ref2.filesInfo,
3155
+ registry = _ref2.registry,
3156
+ preview = _ref2.preview;
3085
3157
  if (filesInfo.length === 0) {
3086
3158
  return null;
3087
3159
  }
@@ -3092,10 +3164,13 @@
3092
3164
  var name = fileInfo.name,
3093
3165
  size = fileInfo.size,
3094
3166
  type = fileInfo.type;
3095
- return jsxRuntime.jsx("li", {
3096
- children: jsxRuntime.jsx(Markdown__default["default"], {
3167
+ return jsxRuntime.jsxs("li", {
3168
+ children: [jsxRuntime.jsx(Markdown__default["default"], {
3097
3169
  children: translateString(utils.TranslatableString.FilesInfo, [name, type, String(size)])
3098
- })
3170
+ }), preview && jsxRuntime.jsx(FileInfoPreview, {
3171
+ fileInfo: fileInfo,
3172
+ registry: registry
3173
+ })]
3099
3174
  }, key);
3100
3175
  })
3101
3176
  });
@@ -3108,6 +3183,7 @@
3108
3183
  blob = _dataURItoBlob.blob,
3109
3184
  name = _dataURItoBlob.name;
3110
3185
  return {
3186
+ dataURL: dataURL,
3111
3187
  name: name,
3112
3188
  size: blob.size,
3113
3189
  type: blob.type
@@ -3158,7 +3234,8 @@
3158
3234
  accept: options.accept ? String(options.accept) : undefined
3159
3235
  })), jsxRuntime.jsx(FilesInfo, {
3160
3236
  filesInfo: filesInfo,
3161
- registry: registry
3237
+ registry: registry,
3238
+ preview: options.filePreview
3162
3239
  })]
3163
3240
  });
3164
3241
  }