@dnb/eufemia 9.47.0 → 9.47.2
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/CHANGELOG.md +18 -0
- package/cjs/components/accordion/AccordionProvider.js +1 -3
- package/cjs/components/autocomplete/Autocomplete.js +4 -1
- package/cjs/components/button/Button.d.ts +6 -1
- package/cjs/components/button/Button.js +3 -3
- package/cjs/components/dropdown/Dropdown.d.ts +2 -2
- package/cjs/components/help-button/HelpButtonInstance.js +1 -3
- package/cjs/components/icon/Icon.js +1 -3
- package/cjs/components/icon-primary/IconPrimary.js +1 -3
- package/cjs/components/input-masked/InputMasked.js +13 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +3 -3
- package/cjs/components/logo/Logo.js +1 -3
- package/cjs/components/modal/Modal.js +1 -3
- package/cjs/components/pagination/Pagination.js +1 -3
- package/cjs/components/progress-indicator/ProgressIndicator.js +1 -3
- package/cjs/components/step-indicator/StepIndicatorContext.js +1 -3
- package/cjs/components/upload/Upload.js +0 -1
- package/cjs/components/upload/UploadFileInput.js +2 -10
- package/cjs/components/upload/UploadFileList.js +0 -1
- package/cjs/components/upload/UploadFileListCell.js +22 -23
- package/cjs/components/upload/UploadInfo.js +1 -9
- package/cjs/components/upload/UploadVerify.d.ts +3 -0
- package/cjs/components/upload/UploadVerify.js +27 -3
- package/cjs/elements/Element.js +1 -3
- package/cjs/fragments/drawer-list/DrawerList.js +1 -3
- package/cjs/shared/Eufemia.js +1 -1
- package/components/accordion/AccordionProvider.js +1 -2
- package/components/autocomplete/Autocomplete.js +4 -1
- package/components/button/Button.d.ts +6 -1
- package/components/button/Button.js +3 -2
- package/components/dropdown/Dropdown.d.ts +2 -2
- package/components/help-button/HelpButtonInstance.js +1 -2
- package/components/icon/Icon.js +1 -2
- package/components/icon-primary/IconPrimary.js +1 -2
- package/components/input-masked/InputMasked.js +13 -1
- package/components/input-masked/InputMaskedHooks.js +1 -1
- package/components/input-masked/InputMaskedUtils.js +3 -3
- package/components/logo/Logo.js +1 -2
- package/components/modal/Modal.js +1 -2
- package/components/pagination/Pagination.js +1 -2
- package/components/progress-indicator/ProgressIndicator.js +1 -2
- package/components/step-indicator/StepIndicatorContext.js +1 -2
- package/components/upload/Upload.js +0 -1
- package/components/upload/UploadFileInput.js +3 -10
- package/components/upload/UploadFileList.js +0 -1
- package/components/upload/UploadFileListCell.js +17 -19
- package/components/upload/UploadInfo.js +1 -9
- package/components/upload/UploadVerify.d.ts +3 -0
- package/components/upload/UploadVerify.js +18 -1
- package/elements/Element.js +1 -2
- package/es/components/accordion/AccordionProvider.js +1 -2
- package/es/components/autocomplete/Autocomplete.js +4 -1
- package/es/components/button/Button.d.ts +6 -1
- package/es/components/button/Button.js +3 -2
- package/es/components/dropdown/Dropdown.d.ts +2 -2
- package/es/components/help-button/HelpButtonInstance.js +1 -2
- package/es/components/icon/Icon.js +1 -2
- package/es/components/icon-primary/IconPrimary.js +1 -2
- package/es/components/input-masked/InputMasked.js +12 -1
- package/es/components/input-masked/InputMaskedHooks.js +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +3 -3
- package/es/components/logo/Logo.js +1 -2
- package/es/components/modal/Modal.js +1 -2
- package/es/components/pagination/Pagination.js +1 -2
- package/es/components/progress-indicator/ProgressIndicator.js +1 -2
- package/es/components/step-indicator/StepIndicatorContext.js +1 -2
- package/es/components/upload/Upload.js +0 -1
- package/es/components/upload/UploadFileInput.js +3 -7
- package/es/components/upload/UploadFileList.js +0 -1
- package/es/components/upload/UploadFileListCell.js +14 -18
- package/es/components/upload/UploadInfo.js +1 -9
- package/es/components/upload/UploadVerify.d.ts +3 -0
- package/es/components/upload/UploadVerify.js +11 -1
- package/es/elements/Element.js +1 -2
- package/es/fragments/drawer-list/DrawerList.js +1 -2
- package/es/shared/Eufemia.js +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +2 -2
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +2 -2
- package/esm/dnb-ui-web-components.min.mjs +2 -2
- package/fragments/drawer-list/DrawerList.js +1 -2
- package/package.json +1 -1
- package/shared/Eufemia.js +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +2 -2
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +2 -2
- package/umd/dnb-ui-web-components.min.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to @dnb/eufemia will be documented in this file. See
|
|
4
4
|
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [9.47.2](https://github.com/dnbexperience/eufemia/compare/v9.47.1...v9.47.2) (2023-03-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Autocomplete:** pass status props to SubmitButton ([#2004](https://github.com/dnbexperience/eufemia/issues/2004)) ([fb89114](https://github.com/dnbexperience/eufemia/commit/fb89114e75ff4111640bc367a10d6faa339c4fe3))
|
|
12
|
+
* **Button:** support rel property ([#1990](https://github.com/dnbexperience/eufemia/issues/1990)) ([ad029f2](https://github.com/dnbexperience/eufemia/commit/ad029f20f21154df40975a82b9b4f7019e373ebf))
|
|
13
|
+
* remove FormRow context support from components not using FormRow ([#2103](https://github.com/dnbexperience/eufemia/issues/2103)) ([3a39134](https://github.com/dnbexperience/eufemia/commit/3a39134c883e70daf6ef374c85ea8ddbce317776))
|
|
14
|
+
|
|
15
|
+
## [9.47.1](https://github.com/dnbexperience/eufemia/compare/v9.47.0...v9.47.1) (2023-02-13)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **InputMasked:** avoid inherit mask options and types when custom mask is used ([#1988](https://github.com/dnbexperience/eufemia/issues/1988)) ([8937bcc](https://github.com/dnbexperience/eufemia/commit/8937bcc7842ba079318215c23d5e47c38fc91aeb))
|
|
21
|
+
* **InputMasked:** fix negative value updates (number mask) ([#1792](https://github.com/dnbexperience/eufemia/issues/1792)) ([e2b9482](https://github.com/dnbexperience/eufemia/commit/e2b94826d08572cb3008cb837658186644b8d0ba))
|
|
22
|
+
* **Upload:** fix handling of file types in combination with file extension ([#1986](https://github.com/dnbexperience/eufemia/issues/1986)) ([3fd9bfa](https://github.com/dnbexperience/eufemia/commit/3fd9bfab541dba28980edb1ef00c403723d8b4e7))
|
|
23
|
+
|
|
6
24
|
# [9.47.0](https://github.com/dnbexperience/eufemia/compare/v9.46.2...v9.47.0) (2023-02-05)
|
|
7
25
|
|
|
8
26
|
|
|
@@ -51,8 +51,6 @@ var _SpacingHelper = require("../space/SpacingHelper");
|
|
|
51
51
|
|
|
52
52
|
var _AccordionPropTypes = require("./AccordionPropTypes");
|
|
53
53
|
|
|
54
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
55
|
-
|
|
56
54
|
var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
57
55
|
|
|
58
56
|
var _AccordionProviderContext = _interopRequireDefault(require("./AccordionProviderContext"));
|
|
@@ -123,7 +121,7 @@ var AccordionGroup = function (_React$PureComponent) {
|
|
|
123
121
|
_createClass(AccordionGroup, [{
|
|
124
122
|
key: "render",
|
|
125
123
|
value: function render() {
|
|
126
|
-
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, AccordionGroup.defaultProps,
|
|
124
|
+
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, AccordionGroup.defaultProps, this.context.Accordion, this.context.getTranslation(this.props).Accordion);
|
|
127
125
|
|
|
128
126
|
var expanded = props.expanded,
|
|
129
127
|
expanded_id = props.expanded_id,
|
|
@@ -1731,7 +1731,10 @@ var AutocompleteInstance = function (_React$PureComponent2) {
|
|
|
1731
1731
|
icon_size: icon_size || (size === 'large' ? 'medium' : 'default'),
|
|
1732
1732
|
variant: "secondary",
|
|
1733
1733
|
size: size === 'default' ? 'medium' : size,
|
|
1734
|
-
type: "button"
|
|
1734
|
+
type: "button",
|
|
1735
|
+
status: status,
|
|
1736
|
+
status_state: status_state,
|
|
1737
|
+
status_props: status_props
|
|
1735
1738
|
}, triggerParams));
|
|
1736
1739
|
}
|
|
1737
1740
|
|
|
@@ -150,10 +150,15 @@ export type ButtonProps = {
|
|
|
150
150
|
href?: string;
|
|
151
151
|
|
|
152
152
|
/**
|
|
153
|
-
* When button behaves as a link. Used to
|
|
153
|
+
* When button behaves as a link. Used to specify where to open the linked document, specified by `href`. Possible values are `_self`, `_blank`, `_parent` and `_top`.
|
|
154
154
|
*/
|
|
155
155
|
target?: string;
|
|
156
156
|
|
|
157
|
+
/**
|
|
158
|
+
* When button behaves as a link. Used to specify the relationship between a linked resource and the current document. Examples(non-exhaustive list) of values are `nofollow`, `search`, and `tag`.
|
|
159
|
+
*/
|
|
160
|
+
rel?: string;
|
|
161
|
+
|
|
157
162
|
/**
|
|
158
163
|
* Use this prop only if you are using a router Link component as the `element` that uses the `to` property to declare the navigation url.
|
|
159
164
|
*/
|
|
@@ -57,8 +57,6 @@ var _SpacingHelper = require("../space/SpacingHelper");
|
|
|
57
57
|
|
|
58
58
|
var _SkeletonHelper = require("../skeleton/SkeletonHelper");
|
|
59
59
|
|
|
60
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
61
|
-
|
|
62
60
|
var _IconPrimary = _interopRequireDefault(require("../icon-primary/IconPrimary"));
|
|
63
61
|
|
|
64
62
|
var _icons = require("../../icons");
|
|
@@ -162,7 +160,7 @@ var Button = function (_React$PureComponent) {
|
|
|
162
160
|
|
|
163
161
|
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Button.defaultProps, {
|
|
164
162
|
skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
|
|
165
|
-
},
|
|
163
|
+
}, this.context.Button);
|
|
166
164
|
|
|
167
165
|
var class_name = props.class,
|
|
168
166
|
className = props.className,
|
|
@@ -325,6 +323,7 @@ process.env.NODE_ENV !== "production" ? Button.propTypes = _objectSpread(_object
|
|
|
325
323
|
class: _propTypes.default.string,
|
|
326
324
|
href: _propTypes.default.string,
|
|
327
325
|
target: _propTypes.default.string,
|
|
326
|
+
rel: _propTypes.default.string,
|
|
328
327
|
to: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.func]),
|
|
329
328
|
custom_content: _propTypes.default.node,
|
|
330
329
|
wrap: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
|
|
@@ -353,6 +352,7 @@ Button.defaultProps = {
|
|
|
353
352
|
icon_size: null,
|
|
354
353
|
href: null,
|
|
355
354
|
target: null,
|
|
355
|
+
rel: null,
|
|
356
356
|
to: null,
|
|
357
357
|
id: null,
|
|
358
358
|
class: null,
|
|
@@ -433,12 +433,12 @@ export interface DropdownProps extends React.HTMLProps<HTMLElement> {
|
|
|
433
433
|
on_hide?: (...args: any[]) => any;
|
|
434
434
|
|
|
435
435
|
/**
|
|
436
|
-
* Will be called on state changes made by the user. Returns an object with the new selected `data` item `{ data, event, attributes,
|
|
436
|
+
* Will be called on state changes made by the user. Returns an object with the new selected `data` item `{ data, event, attributes, value }`.
|
|
437
437
|
*/
|
|
438
438
|
on_change?: (...args: any[]) => any;
|
|
439
439
|
|
|
440
440
|
/**
|
|
441
|
-
* Will be called once the user selects an item by a click or keyboard navigation. Returns an object with the new selected `data` item `{ data, event, attributes,
|
|
441
|
+
* Will be called once the user selects an item by a click or keyboard navigation. Returns an object with the new selected `data` item `{ data, event, attributes, value, active_item }`. The "active_item" property is the currently selected item by keyboard navigation
|
|
442
442
|
*/
|
|
443
443
|
on_select?: (...args: any[]) => any;
|
|
444
444
|
on_state_update?: (...args: any[]) => any;
|
|
@@ -33,8 +33,6 @@ var _componentHelper = require("../../shared/component-helper");
|
|
|
33
33
|
|
|
34
34
|
var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
35
35
|
|
|
36
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
37
|
-
|
|
38
36
|
var _SpacingHelper = require("../space/SpacingHelper");
|
|
39
37
|
|
|
40
38
|
var _Button = _interopRequireDefault(require("../button/Button"));
|
|
@@ -63,7 +61,7 @@ var defaultProps = {
|
|
|
63
61
|
function HelpButtonInstance(localProps) {
|
|
64
62
|
var context = _react.default.useContext(_Context.default);
|
|
65
63
|
|
|
66
|
-
var props = (0, _componentHelper.extendPropsWithContext)(localProps, defaultProps,
|
|
64
|
+
var props = (0, _componentHelper.extendPropsWithContext)(localProps, defaultProps, context.HelpButton);
|
|
67
65
|
|
|
68
66
|
var size = props.size,
|
|
69
67
|
icon = props.icon,
|
|
@@ -79,8 +79,6 @@ var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
|
79
79
|
|
|
80
80
|
var _IconHelpers = require("./IconHelpers");
|
|
81
81
|
|
|
82
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
83
|
-
|
|
84
82
|
var _excluded = ["sizeAsString"],
|
|
85
83
|
_excluded2 = ["icon", "size", "width", "height", "border", "color", "inherit_color", "modifier", "alt", "title", "skeleton", "class", "className"];
|
|
86
84
|
|
|
@@ -178,7 +176,7 @@ var Icon = function (_React$PureComponent) {
|
|
|
178
176
|
|
|
179
177
|
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Icon.defaultProps, {
|
|
180
178
|
skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
|
|
181
|
-
},
|
|
179
|
+
}, this.context.Icon);
|
|
182
180
|
|
|
183
181
|
var _prepareIcon = prepareIcon(props, this.context),
|
|
184
182
|
icon = _prepareIcon.icon,
|
|
@@ -49,8 +49,6 @@ var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
|
49
49
|
|
|
50
50
|
var _componentHelper = require("../../shared/component-helper");
|
|
51
51
|
|
|
52
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
53
|
-
|
|
54
52
|
var _Icon = _interopRequireWildcard(require("../icon/Icon"));
|
|
55
53
|
|
|
56
54
|
var primary_icons = _interopRequireWildcard(require("../../icons/primary_icons.js"));
|
|
@@ -109,7 +107,7 @@ var IconPrimary = function (_React$PureComponent) {
|
|
|
109
107
|
|
|
110
108
|
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, IconPrimary.defaultProps, {
|
|
111
109
|
skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
|
|
112
|
-
},
|
|
110
|
+
}, this.context.Icon, this.context.IconPrimary);
|
|
113
111
|
|
|
114
112
|
var _prepareIcon = (0, _Icon.prepareIcon)(props, this.context),
|
|
115
113
|
icon = _prepareIcon.icon,
|
|
@@ -33,6 +33,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
33
33
|
});
|
|
34
34
|
exports.default = void 0;
|
|
35
35
|
|
|
36
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
37
|
+
|
|
36
38
|
var _react = _interopRequireDefault(require("react"));
|
|
37
39
|
|
|
38
40
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -64,6 +66,16 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
64
66
|
var InputMasked = _react.default.forwardRef(function (props, ref) {
|
|
65
67
|
var context = _react.default.useContext(_Context.default);
|
|
66
68
|
|
|
69
|
+
if (props !== null && props !== void 0 && props.mask) {
|
|
70
|
+
var alias = context === null || context === void 0 ? void 0 : context.InputMasked;
|
|
71
|
+
|
|
72
|
+
for (var key in alias) {
|
|
73
|
+
if (/^as[_A-Z]|number_mask|currency_mask/.test(key)) {
|
|
74
|
+
delete alias[key];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
67
79
|
var contextAndProps = _react.default.useCallback((0, _componentHelper.extendPropsWithContext)(props, InputMasked.defaultProps, context === null || context === void 0 ? void 0 : context.InputMasked), [props, InputMasked.defaultProps, context === null || context === void 0 ? void 0 : context.InputMasked]);
|
|
68
80
|
|
|
69
81
|
return _react.default.createElement(_InputMaskedContext.default.Provider, {
|
|
@@ -107,7 +119,7 @@ process.env.NODE_ENV !== "production" ? InputMasked.propTypes = _objectSpread({
|
|
|
107
119
|
on_submit_blur: _propTypes.default.func
|
|
108
120
|
}, _Input.inputPropTypes) : void 0;
|
|
109
121
|
InputMasked.defaultProps = _objectSpread(_objectSpread({}, _Input.default.defaultProps), {}, {
|
|
110
|
-
mask:
|
|
122
|
+
mask: null,
|
|
111
123
|
number_mask: null,
|
|
112
124
|
currency_mask: null,
|
|
113
125
|
mask_options: null,
|
|
@@ -286,7 +286,7 @@ var useInputElement = function useInputElement() {
|
|
|
286
286
|
inputRef: ref,
|
|
287
287
|
inputElement: inputElementRef.current,
|
|
288
288
|
pipe: pipe,
|
|
289
|
-
mask: mask,
|
|
289
|
+
mask: mask || [],
|
|
290
290
|
showMask: showMask,
|
|
291
291
|
guide: showGuide,
|
|
292
292
|
keepCharPositions: keepCharPositions,
|
|
@@ -163,8 +163,8 @@ var correctNumberValue = function correctNumberValue(_ref5) {
|
|
|
163
163
|
value = value.replace('.', decimalSymbol);
|
|
164
164
|
|
|
165
165
|
if (localValue !== null) {
|
|
166
|
-
var localNumberValue = localValue.replace(/[^\d
|
|
167
|
-
var numberValue = value.replace(/[^\d
|
|
166
|
+
var localNumberValue = localValue.replace(/[^\d,.-]/g, '');
|
|
167
|
+
var numberValue = value.replace(/[^\d,.-]/g, '');
|
|
168
168
|
var endsWithDecimal = localNumberValue.endsWith(decimalSymbol);
|
|
169
169
|
var endsWithZeroAndDecimal = localNumberValue.endsWith("".concat(decimalSymbol, "0"));
|
|
170
170
|
|
|
@@ -178,7 +178,7 @@ var correctNumberValue = function correctNumberValue(_ref5) {
|
|
|
178
178
|
value = localValue;
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
if (
|
|
181
|
+
if (/^(-|-0)$/.test(localValue.replace(/[^\d-0]/g, ''))) {
|
|
182
182
|
value = localValue;
|
|
183
183
|
} else if (localNumberValue === '' && numberValue === '0') {
|
|
184
184
|
value = '';
|
|
@@ -49,8 +49,6 @@ var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
|
49
49
|
|
|
50
50
|
var _componentHelper = require("../../shared/component-helper");
|
|
51
51
|
|
|
52
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
53
|
-
|
|
54
52
|
var _SpacingHelper = require("../space/SpacingHelper");
|
|
55
53
|
|
|
56
54
|
var _title, _path, _path2, _path3;
|
|
@@ -105,7 +103,7 @@ var Logo = function (_React$PureComponent) {
|
|
|
105
103
|
value: function render() {
|
|
106
104
|
var _objectSpread2;
|
|
107
105
|
|
|
108
|
-
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Logo.defaultProps, this.context.getTranslation(this.props).Logo,
|
|
106
|
+
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Logo.defaultProps, this.context.getTranslation(this.props).Logo, this.context.Logo);
|
|
109
107
|
|
|
110
108
|
var ratio = props.ratio,
|
|
111
109
|
size = props.size,
|
|
@@ -78,8 +78,6 @@ var _ModalRoot = _interopRequireDefault(require("./ModalRoot"));
|
|
|
78
78
|
|
|
79
79
|
var _withCamelCaseProps = require("../../shared/helpers/withCamelCaseProps");
|
|
80
80
|
|
|
81
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
82
|
-
|
|
83
81
|
var _excluded = ["root_id", "content_id", "disabled", "labelled_by", "focus_selector", "header_content", "bar_content", "bypass_invalidation_selectors", "id", "open_state", "open_delay", "omit_trigger_button", "trigger", "trigger_attributes", "trigger_hidden", "trigger_disabled", "trigger_variant", "trigger_text", "trigger_title", "trigger_size", "trigger_icon", "trigger_icon_position", "trigger_class"];
|
|
84
82
|
|
|
85
83
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -385,7 +383,7 @@ var Modal = function (_React$PureComponent) {
|
|
|
385
383
|
value: function render() {
|
|
386
384
|
var _this2 = this;
|
|
387
385
|
|
|
388
|
-
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Modal.defaultProps, this.context.getTranslation(this.props).Modal,
|
|
386
|
+
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, Modal.defaultProps, this.context.getTranslation(this.props).Modal, this.context.Modal);
|
|
389
387
|
|
|
390
388
|
var _props$root_id = props.root_id,
|
|
391
389
|
root_id = _props$root_id === void 0 ? 'root' : _props$root_id,
|
|
@@ -53,8 +53,6 @@ var _PaginationProvider = _interopRequireDefault(require("./PaginationProvider")
|
|
|
53
53
|
|
|
54
54
|
var _componentHelper = require("../../shared/component-helper");
|
|
55
55
|
|
|
56
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
57
|
-
|
|
58
56
|
var _SpacingHelper = require("../space/SpacingHelper");
|
|
59
57
|
|
|
60
58
|
var _PaginationHelpers = require("./PaginationHelpers");
|
|
@@ -232,7 +230,7 @@ var PaginationInstance = function (_React$PureComponent2) {
|
|
|
232
230
|
_createClass(PaginationInstance, [{
|
|
233
231
|
key: "render",
|
|
234
232
|
value: function render() {
|
|
235
|
-
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, paginationDefaultProps, this.context.getTranslation(this.props).Pagination,
|
|
233
|
+
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, paginationDefaultProps, this.context.getTranslation(this.props).Pagination, this.context.Pagination);
|
|
236
234
|
|
|
237
235
|
var align = props.align,
|
|
238
236
|
children = props.children,
|
|
@@ -53,8 +53,6 @@ var _Context = _interopRequireDefault(require("../../shared/Context"));
|
|
|
53
53
|
|
|
54
54
|
var _componentHelper = require("../../shared/component-helper");
|
|
55
55
|
|
|
56
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
57
|
-
|
|
58
56
|
var _SpacingHelper = require("../space/SpacingHelper");
|
|
59
57
|
|
|
60
58
|
var _ProgressIndicatorCircular = _interopRequireDefault(require("./ProgressIndicatorCircular"));
|
|
@@ -145,7 +143,7 @@ var ProgressIndicator = function (_React$PureComponent) {
|
|
|
145
143
|
}, {
|
|
146
144
|
key: "render",
|
|
147
145
|
value: function render() {
|
|
148
|
-
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, ProgressIndicator.defaultProps, this.context.getTranslation(this.props).ProgressIndicator,
|
|
146
|
+
var props = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, ProgressIndicator.defaultProps, this.context.getTranslation(this.props).ProgressIndicator, this.context.ProgressIndicator);
|
|
149
147
|
|
|
150
148
|
var type = props.type,
|
|
151
149
|
size = props.size,
|
|
@@ -71,8 +71,6 @@ var _componentHelper = require("../../shared/component-helper");
|
|
|
71
71
|
|
|
72
72
|
var _MediaQueryUtils = require("../../shared/MediaQueryUtils");
|
|
73
73
|
|
|
74
|
-
var _FormRowHelpers = require("../form-row/FormRowHelpers");
|
|
75
|
-
|
|
76
74
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
77
75
|
|
|
78
76
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -219,7 +217,7 @@ var StepIndicatorProvider = function (_React$PureComponent) {
|
|
|
219
217
|
var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.context;
|
|
220
218
|
var data = (0, _componentHelper.extendPropsWithContextInClassComponent)(this.props, _StepIndicatorProps.stepIndicatorDefaultProps, {
|
|
221
219
|
skeleton: context === null || context === void 0 ? void 0 : context.skeleton
|
|
222
|
-
}, context.getTranslation(context).StepIndicator,
|
|
220
|
+
}, context.getTranslation(context).StepIndicator, context.StepIndicator);
|
|
223
221
|
return data;
|
|
224
222
|
}
|
|
225
223
|
}, {
|
|
@@ -159,7 +159,6 @@ var Upload = function Upload(localProps) {
|
|
|
159
159
|
}, _react.default.createElement(_Provider.default, {
|
|
160
160
|
skeleton: skeleton
|
|
161
161
|
}, _react.default.createElement(_UploadDropzone.default, _extends({
|
|
162
|
-
"data-testid": "upload",
|
|
163
162
|
className: (0, _classnames.default)('dnb-upload', spacingClasses, className)
|
|
164
163
|
}, props), _UploadInfo || (_UploadInfo = _react.default.createElement(_UploadInfo2.default, null)), _UploadFileInput || (_UploadFileInput = _react.default.createElement(_UploadFileInput2.default, null)), _UploadFileList || (_UploadFileList = _react.default.createElement(_UploadFileList2.default, null)))));
|
|
165
164
|
|
|
@@ -23,8 +23,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
23
23
|
});
|
|
24
24
|
exports.default = void 0;
|
|
25
25
|
|
|
26
|
-
require("core-js/modules/es.array.join.js");
|
|
27
|
-
|
|
28
26
|
require("core-js/modules/es.array.map.js");
|
|
29
27
|
|
|
30
28
|
require("core-js/modules/es.array.from.js");
|
|
@@ -71,15 +69,10 @@ var UploadFileInput = function UploadFileInput() {
|
|
|
71
69
|
};
|
|
72
70
|
|
|
73
71
|
var sharedId = id || (0, _componentHelper.makeUniqueId)();
|
|
74
|
-
var accept = (0, _UploadVerify.
|
|
75
|
-
|
|
76
|
-
}).join(',');
|
|
77
|
-
return _react.default.createElement("div", {
|
|
78
|
-
"data-testid": "upload-file-input"
|
|
79
|
-
}, _react.default.createElement(_Button.default, {
|
|
72
|
+
var accept = (0, _UploadVerify.getAcceptedFileTypes)(acceptedFileTypes);
|
|
73
|
+
return _react.default.createElement("div", null, _react.default.createElement(_Button.default, {
|
|
80
74
|
top: "medium",
|
|
81
75
|
id: "".concat(sharedId, "-input"),
|
|
82
|
-
"data-testid": "upload-file-input-button",
|
|
83
76
|
className: "dnb-upload__file-input-button",
|
|
84
77
|
icon: _icons.folder,
|
|
85
78
|
icon_position: "left",
|
|
@@ -88,7 +81,6 @@ var UploadFileInput = function UploadFileInput() {
|
|
|
88
81
|
onClick: openFileDialog
|
|
89
82
|
}, buttonText), _UploadStatus || (_UploadStatus = _react.default.createElement(_UploadStatus2.default, null)), _react.default.createElement("input", {
|
|
90
83
|
"aria-labelledby": "".concat(sharedId, "-input"),
|
|
91
|
-
"data-testid": "upload-file-input-input",
|
|
92
84
|
ref: fileInput,
|
|
93
85
|
accept: accept,
|
|
94
86
|
className: "dnb-upload__file-input",
|
|
@@ -21,12 +21,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
21
21
|
});
|
|
22
22
|
exports.default = void 0;
|
|
23
23
|
|
|
24
|
-
require("core-js/modules/es.function.name.js");
|
|
25
|
-
|
|
26
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
27
|
-
|
|
28
|
-
require("core-js/modules/es.string.split.js");
|
|
29
|
-
|
|
30
24
|
require("core-js/modules/es.array.iterator.js");
|
|
31
25
|
|
|
32
26
|
require("core-js/modules/es.object.to-string.js");
|
|
@@ -39,6 +33,12 @@ require("core-js/modules/web.url.js");
|
|
|
39
33
|
|
|
40
34
|
require("core-js/modules/web.url-search-params.js");
|
|
41
35
|
|
|
36
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
37
|
+
|
|
38
|
+
require("core-js/modules/es.string.split.js");
|
|
39
|
+
|
|
40
|
+
require("core-js/modules/es.function.name.js");
|
|
41
|
+
|
|
42
42
|
var _react = _interopRequireWildcard(require("react"));
|
|
43
43
|
|
|
44
44
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -51,7 +51,7 @@ var _FormStatus2 = _interopRequireDefault(require("../../components/FormStatus")
|
|
|
51
51
|
|
|
52
52
|
var _progressIndicator = _interopRequireDefault(require("../../components/progress-indicator"));
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var _P2 = _interopRequireDefault(require("../../elements/P"));
|
|
55
55
|
|
|
56
56
|
var _icons = require("../../icons");
|
|
57
57
|
|
|
@@ -59,6 +59,8 @@ var _componentHelper = require("../../shared/component-helper");
|
|
|
59
59
|
|
|
60
60
|
var _useUpload2 = _interopRequireDefault(require("./useUpload"));
|
|
61
61
|
|
|
62
|
+
var _UploadVerify = require("./UploadVerify");
|
|
63
|
+
|
|
62
64
|
var _ProgressIndicator, _Icon;
|
|
63
65
|
|
|
64
66
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -90,7 +92,7 @@ var images = {
|
|
|
90
92
|
};
|
|
91
93
|
|
|
92
94
|
var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
93
|
-
var _div,
|
|
95
|
+
var _div, _P, _FormStatus;
|
|
94
96
|
|
|
95
97
|
var id = _ref.id,
|
|
96
98
|
uploadFile = _ref.uploadFile,
|
|
@@ -100,10 +102,9 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
100
102
|
var file = uploadFile.file,
|
|
101
103
|
errorMessage = uploadFile.errorMessage,
|
|
102
104
|
isLoading = uploadFile.isLoading;
|
|
103
|
-
var name = file.name,
|
|
104
|
-
type = file.type;
|
|
105
|
-
var fileType = type.split('/')[1] || '';
|
|
106
105
|
var hasWarning = errorMessage != null;
|
|
106
|
+
var fileType = (0, _UploadVerify.getFileTypeFromExtension)(file);
|
|
107
|
+
var humanFileType = fileType.toUpperCase();
|
|
107
108
|
var imageUrl = URL.createObjectURL(file);
|
|
108
109
|
var cellRef = (0, _react.useRef)();
|
|
109
110
|
var exists = useExistsHighlight(id, file);
|
|
@@ -124,7 +125,6 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
124
125
|
};
|
|
125
126
|
|
|
126
127
|
return _react.default.createElement("li", {
|
|
127
|
-
"data-testid": "upload-file-list-cell",
|
|
128
128
|
className: (0, _classnames.default)('dnb-upload__file-cell', hasWarning && 'dnb-upload__file-cell--warning', exists && 'dnb-upload__file-cell--highlight'),
|
|
129
129
|
ref: cellRef
|
|
130
130
|
}, _react.default.createElement("div", {
|
|
@@ -132,7 +132,6 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
132
132
|
}, _react.default.createElement("div", {
|
|
133
133
|
className: "dnb-upload__file-cell__content__left"
|
|
134
134
|
}, getIcon(), getTitle()), _react.default.createElement("div", null, _react.default.createElement(_Button.default, {
|
|
135
|
-
"data-testid": "upload-delete-button",
|
|
136
135
|
icon: _icons.trash,
|
|
137
136
|
variant: "tertiary",
|
|
138
137
|
onClick: onDeleteHandler,
|
|
@@ -141,9 +140,7 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
141
140
|
|
|
142
141
|
function getIcon() {
|
|
143
142
|
if (isLoading) {
|
|
144
|
-
return _ProgressIndicator || (_ProgressIndicator = _react.default.createElement(_progressIndicator.default,
|
|
145
|
-
"data-testid": "upload-progress-indicator"
|
|
146
|
-
}));
|
|
143
|
+
return _ProgressIndicator || (_ProgressIndicator = _react.default.createElement(_progressIndicator.default, null));
|
|
147
144
|
}
|
|
148
145
|
|
|
149
146
|
if (hasWarning) return _Icon || (_Icon = _react.default.createElement(_Icon2.default, {
|
|
@@ -151,7 +148,12 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
151
148
|
}));
|
|
152
149
|
var iconFileType = fileType;
|
|
153
150
|
|
|
154
|
-
if (!
|
|
151
|
+
if (!iconFileType) {
|
|
152
|
+
var mimeParts = file.type.split('/');
|
|
153
|
+
iconFileType = images[mimeParts[0]] || images[mimeParts[1]];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (!Object.prototype.hasOwnProperty.call(images, iconFileType)) {
|
|
155
157
|
iconFileType = 'file';
|
|
156
158
|
}
|
|
157
159
|
|
|
@@ -165,23 +167,20 @@ var UploadFileListCell = function UploadFileListCell(_ref) {
|
|
|
165
167
|
className: "dnb-upload__file-cell__text-container dnb-upload__file-cell__text-container--loading"
|
|
166
168
|
}, loadingText)) : _react.default.createElement("div", {
|
|
167
169
|
className: "dnb-upload__file-cell__text-container"
|
|
168
|
-
},
|
|
169
|
-
"data-testid": "upload-file-anchor",
|
|
170
|
+
}, _react.default.createElement("a", {
|
|
170
171
|
target: "_blank",
|
|
171
172
|
href: imageUrl,
|
|
172
173
|
className: "dnb-anchor dnb-upload__file-cell__title",
|
|
173
174
|
rel: "noopener noreferrer"
|
|
174
|
-
}, name)
|
|
175
|
-
"data-testid": "upload-subtitle",
|
|
175
|
+
}, file.name), _P || (_P = _react.default.createElement(_P2.default, {
|
|
176
176
|
className: "dnb-upload__file-cell__subtitle",
|
|
177
177
|
size: "x-small",
|
|
178
178
|
top: "xx-small"
|
|
179
|
-
},
|
|
179
|
+
}, humanFileType)));
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
function getWarning() {
|
|
183
183
|
return hasWarning ? _FormStatus || (_FormStatus = _react.default.createElement(_FormStatus2.default, {
|
|
184
|
-
"data-testid": "upload-warning",
|
|
185
184
|
top: "small",
|
|
186
185
|
text: errorMessage,
|
|
187
186
|
stretch: true
|
|
@@ -47,10 +47,8 @@ var UploadInfo = function UploadInfo() {
|
|
|
47
47
|
fileMaxSize = context.fileMaxSize;
|
|
48
48
|
var prettyfiedAcceptedFileFormats = acceptedFileTypes.join(', ').toUpperCase();
|
|
49
49
|
return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_Lead.default, {
|
|
50
|
-
"data-testid": "upload-title",
|
|
51
50
|
space: "0"
|
|
52
51
|
}, title), _react.default.createElement(_P.default, {
|
|
53
|
-
"data-testid": "upload-text",
|
|
54
52
|
top: "xx-small",
|
|
55
53
|
className: "dnb-upload__text"
|
|
56
54
|
}, text), _react.default.createElement(_Dl.default, {
|
|
@@ -58,13 +56,7 @@ var UploadInfo = function UploadInfo() {
|
|
|
58
56
|
bottom: 0,
|
|
59
57
|
direction: "horizontal",
|
|
60
58
|
className: "dnb-upload__condition-list"
|
|
61
|
-
}, _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default,
|
|
62
|
-
"data-testid": "upload-accepted-formats"
|
|
63
|
-
}, fileTypeDescription), _react.default.createElement(_Dd.default, null, prettyfiedAcceptedFileFormats)), _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, {
|
|
64
|
-
"data-testid": "upload-file-size"
|
|
65
|
-
}, fileSizeDescription), _react.default.createElement(_Dd.default, null, String(fileSizeContent).replace('%size', (0, _NumberUtils.format)(fileMaxSize).toString()))), filesAmountLimit < _UploadContext.defaultProps.filesAmountLimit && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, {
|
|
66
|
-
"data-testid": "upload-file-amount-limit"
|
|
67
|
-
}, fileAmountDescription), _react.default.createElement(_Dd.default, null, filesAmountLimit))));
|
|
59
|
+
}, prettyfiedAcceptedFileFormats && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileTypeDescription), _react.default.createElement(_Dd.default, null, prettyfiedAcceptedFileFormats)), _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileSizeDescription), _react.default.createElement(_Dd.default, null, String(fileSizeContent).replace('%size', (0, _NumberUtils.format)(fileMaxSize).toString()))), filesAmountLimit < _UploadContext.defaultProps.filesAmountLimit && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileAmountDescription), _react.default.createElement(_Dd.default, null, filesAmountLimit))));
|
|
68
60
|
};
|
|
69
61
|
|
|
70
62
|
var _default = UploadInfo;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { UploadFile, UploadContextProps, UploadAcceptedFileTypes } from './types';
|
|
2
2
|
export declare function verifyFiles(files: UploadFile[], context: Pick<UploadContextProps, 'errorUnsupportedFile' | 'errorLargeFile' | 'acceptedFileTypes' | 'fileMaxSize'>): UploadFile[];
|
|
3
|
+
export declare function getFileTypeFromExtension(file: File): string;
|
|
4
|
+
export declare function getAcceptedFileTypes(acceptedFileTypes: UploadAcceptedFileTypes): string;
|
|
5
|
+
export declare function hasPreferredMimeType(acceptedFileTypes: UploadAcceptedFileTypes, file: File): boolean;
|
|
3
6
|
export declare function extendWithAbbreviation(acceptedFileTypes: UploadAcceptedFileTypes, abbreviations?: {
|
|
4
7
|
jpg: string;
|
|
5
8
|
}): string[];
|
|
@@ -16,12 +16,13 @@ require("core-js/modules/es.array.from.js");
|
|
|
16
16
|
|
|
17
17
|
require("core-js/modules/es.array.slice.js");
|
|
18
18
|
|
|
19
|
-
require("core-js/modules/es.function.name.js");
|
|
20
|
-
|
|
21
19
|
Object.defineProperty(exports, "__esModule", {
|
|
22
20
|
value: true
|
|
23
21
|
});
|
|
24
22
|
exports.extendWithAbbreviation = extendWithAbbreviation;
|
|
23
|
+
exports.getAcceptedFileTypes = getAcceptedFileTypes;
|
|
24
|
+
exports.getFileTypeFromExtension = getFileTypeFromExtension;
|
|
25
|
+
exports.hasPreferredMimeType = hasPreferredMimeType;
|
|
25
26
|
exports.verifyFiles = verifyFiles;
|
|
26
27
|
|
|
27
28
|
require("core-js/modules/es.regexp.exec.js");
|
|
@@ -38,6 +39,12 @@ require("core-js/modules/es.string.includes.js");
|
|
|
38
39
|
|
|
39
40
|
require("core-js/modules/es.array.map.js");
|
|
40
41
|
|
|
42
|
+
require("core-js/modules/es.function.name.js");
|
|
43
|
+
|
|
44
|
+
require("core-js/modules/es.array.join.js");
|
|
45
|
+
|
|
46
|
+
require("core-js/modules/es.string.split.js");
|
|
47
|
+
|
|
41
48
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
42
49
|
|
|
43
50
|
require("core-js/modules/es.object.entries.js");
|
|
@@ -81,8 +88,9 @@ function verifyFiles(files, context) {
|
|
|
81
88
|
return false;
|
|
82
89
|
}
|
|
83
90
|
|
|
91
|
+
var fileType = hasPreferredMimeType(acceptedFileTypes, file) ? file.type : getFileTypeFromExtension(file) || file.type;
|
|
84
92
|
var foundType = extendWithAbbreviation(acceptedFileTypes).some(function (type) {
|
|
85
|
-
return
|
|
93
|
+
return fileType.includes(type);
|
|
86
94
|
});
|
|
87
95
|
return !foundType ? errorUnsupportedFile : null;
|
|
88
96
|
};
|
|
@@ -100,6 +108,22 @@ function verifyFiles(files, context) {
|
|
|
100
108
|
return cleanedFiles;
|
|
101
109
|
}
|
|
102
110
|
|
|
111
|
+
function getFileTypeFromExtension(file) {
|
|
112
|
+
return file.name.includes('.') && file.name.replace(/.*\.([^.]+)$/, '$1') || null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function getAcceptedFileTypes(acceptedFileTypes) {
|
|
116
|
+
return extendWithAbbreviation(acceptedFileTypes).map(function (type) {
|
|
117
|
+
return type.includes('/') ? type : ".".concat(type);
|
|
118
|
+
}).join(',');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function hasPreferredMimeType(acceptedFileTypes, file) {
|
|
122
|
+
return file.type.split('/')[1] && (!(acceptedFileTypes !== null && acceptedFileTypes !== void 0 && acceptedFileTypes.length) || (acceptedFileTypes === null || acceptedFileTypes === void 0 ? void 0 : acceptedFileTypes.some(function (type) {
|
|
123
|
+
return type.toLowerCase() === file.type.toLowerCase();
|
|
124
|
+
})));
|
|
125
|
+
}
|
|
126
|
+
|
|
103
127
|
function extendWithAbbreviation(acceptedFileTypes) {
|
|
104
128
|
var abbreviations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
105
129
|
jpg: 'jpeg'
|