@dnb/eufemia 9.41.0 → 9.42.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/cjs/components/accordion/style/_accordion.scss +1 -1
  3. package/cjs/components/table/Table.d.ts +2 -2
  4. package/cjs/components/table/Table.js +1 -1
  5. package/cjs/components/table/TableContainer.js +2 -2
  6. package/cjs/components/table/index.d.ts +1 -0
  7. package/cjs/components/table/index.js +11 -1
  8. package/cjs/components/table/style/_table-accordion.scss +5 -0
  9. package/cjs/components/table/style/_table-container.scss +13 -1
  10. package/cjs/components/table/style/_table-header-buttons.scss +20 -1
  11. package/cjs/components/table/style/dnb-table.css +49 -5
  12. package/cjs/components/table/style/dnb-table.min.css +3 -3
  13. package/cjs/components/table/useHandleSortState.d.ts +34 -0
  14. package/cjs/components/table/useHandleSortState.js +196 -0
  15. package/cjs/fragments/scroll-view/style/_scroll-view.scss +3 -0
  16. package/cjs/shared/Eufemia.js +1 -1
  17. package/cjs/style/dnb-ui-components.css +52 -6
  18. package/cjs/style/dnb-ui-components.min.css +4 -4
  19. package/cjs/style/dnb-ui-fragments.css +3 -1
  20. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  21. package/components/accordion/style/_accordion.scss +1 -1
  22. package/components/table/Table.d.ts +2 -2
  23. package/components/table/Table.js +1 -1
  24. package/components/table/TableContainer.js +2 -2
  25. package/components/table/index.d.ts +1 -0
  26. package/components/table/index.js +1 -0
  27. package/components/table/style/_table-accordion.scss +5 -0
  28. package/components/table/style/_table-container.scss +13 -1
  29. package/components/table/style/_table-header-buttons.scss +20 -1
  30. package/components/table/style/dnb-table.css +49 -5
  31. package/components/table/style/dnb-table.min.css +3 -3
  32. package/components/table/useHandleSortState.d.ts +34 -0
  33. package/components/table/useHandleSortState.js +141 -0
  34. package/es/components/accordion/style/_accordion.scss +1 -1
  35. package/es/components/table/Table.d.ts +2 -2
  36. package/es/components/table/Table.js +1 -1
  37. package/es/components/table/TableContainer.js +2 -2
  38. package/es/components/table/index.d.ts +1 -0
  39. package/es/components/table/index.js +1 -0
  40. package/es/components/table/style/_table-accordion.scss +5 -0
  41. package/es/components/table/style/_table-container.scss +13 -1
  42. package/es/components/table/style/_table-header-buttons.scss +20 -1
  43. package/es/components/table/style/dnb-table.css +49 -5
  44. package/es/components/table/style/dnb-table.min.css +3 -3
  45. package/es/components/table/useHandleSortState.d.ts +34 -0
  46. package/es/components/table/useHandleSortState.js +111 -0
  47. package/es/fragments/scroll-view/style/_scroll-view.scss +3 -0
  48. package/es/shared/Eufemia.js +1 -1
  49. package/es/style/dnb-ui-components.css +52 -6
  50. package/es/style/dnb-ui-components.min.css +4 -4
  51. package/es/style/dnb-ui-fragments.css +3 -1
  52. package/es/style/dnb-ui-fragments.min.css +1 -1
  53. package/esm/dnb-ui-basis.min.mjs +1 -1
  54. package/esm/dnb-ui-components.min.mjs +1 -1
  55. package/esm/dnb-ui-elements.min.mjs +2 -2
  56. package/esm/dnb-ui-extensions.min.mjs +1 -1
  57. package/esm/dnb-ui-lib.min.mjs +2 -2
  58. package/esm/dnb-ui-web-components.min.mjs +2 -2
  59. package/fragments/scroll-view/style/_scroll-view.scss +3 -0
  60. package/package.json +1 -1
  61. package/shared/Eufemia.js +1 -1
  62. package/style/dnb-ui-components.css +52 -6
  63. package/style/dnb-ui-components.min.css +4 -4
  64. package/style/dnb-ui-fragments.css +3 -1
  65. package/style/dnb-ui-fragments.min.css +1 -1
  66. package/umd/dnb-ui-basis.min.js +1 -1
  67. package/umd/dnb-ui-components.min.js +1 -1
  68. package/umd/dnb-ui-elements.min.js +2 -2
  69. package/umd/dnb-ui-extensions.min.js +1 -1
  70. package/umd/dnb-ui-lib.min.js +2 -2
  71. package/umd/dnb-ui-web-components.min.js +2 -2
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+
5
+ require("core-js/modules/es.symbol.description.js");
6
+
7
+ require("core-js/modules/es.symbol.iterator.js");
8
+
9
+ require("core-js/modules/es.array.iterator.js");
10
+
11
+ require("core-js/modules/es.string.iterator.js");
12
+
13
+ require("core-js/modules/web.dom-collections.iterator.js");
14
+
15
+ require("core-js/modules/es.array.slice.js");
16
+
17
+ require("core-js/modules/es.function.name.js");
18
+
19
+ require("core-js/modules/es.array.from.js");
20
+
21
+ require("core-js/modules/es.regexp.exec.js");
22
+
23
+ require("core-js/modules/es.object.keys.js");
24
+
25
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
26
+
27
+ require("core-js/modules/web.dom-collections.for-each.js");
28
+
29
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
30
+
31
+ Object.defineProperty(exports, "__esModule", {
32
+ value: true
33
+ });
34
+ exports.default = void 0;
35
+ exports.useHandleSortState = useHandleSortState;
36
+
37
+ require("core-js/modules/es.array.reduce.js");
38
+
39
+ require("core-js/modules/es.object.to-string.js");
40
+
41
+ require("core-js/modules/es.object.entries.js");
42
+
43
+ require("core-js/modules/es.array.filter.js");
44
+
45
+ require("core-js/modules/es.array.includes.js");
46
+
47
+ require("core-js/modules/es.string.includes.js");
48
+
49
+ var _react = _interopRequireDefault(require("react"));
50
+
51
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
52
+
53
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
54
+
55
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
56
+
57
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
58
+
59
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
60
+
61
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
62
+
63
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
64
+
65
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
66
+
67
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
68
+
69
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
70
+
71
+ function useHandleSortState(config) {
72
+ var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
73
+ direction: 'asc',
74
+ modes: ['asc', 'desc', 'off']
75
+ };
76
+
77
+ var initialState = _react.default.useMemo(function () {
78
+ return Object.entries(config).reduce(function (acc, _ref) {
79
+ var _ref2 = _slicedToArray(_ref, 2),
80
+ name = _ref2[0],
81
+ opts = _ref2[1];
82
+
83
+ acc[name] = _objectSpread(_objectSpread({}, defaults), opts);
84
+
85
+ if (!acc[name].active && !acc[name].lastDirection) {
86
+ acc[name].lastDirection = acc[name].direction;
87
+ }
88
+
89
+ return acc;
90
+ }, {});
91
+ }, [config, defaults]);
92
+
93
+ var _React$useState = _react.default.useState(initialState),
94
+ _React$useState2 = _slicedToArray(_React$useState, 2),
95
+ internalState = _React$useState2[0],
96
+ setState = _React$useState2[1];
97
+
98
+ var sortHandler = _react.default.useMemo(function () {
99
+ var list = Object.entries(internalState);
100
+ return list.reduce(function (acc, _ref3) {
101
+ var _ref4 = _slicedToArray(_ref3, 2),
102
+ name = _ref4[0],
103
+ opts = _ref4[1];
104
+
105
+ acc[name] = function () {
106
+ var state = _objectSpread({}, internalState[name]);
107
+
108
+ if (!state.active && state.lastDirection) {
109
+ state.direction = state.lastDirection;
110
+ state.active = true;
111
+ state.lastDirection = null;
112
+ } else {
113
+ state.direction = getNextMode({
114
+ state: state,
115
+ opts: opts,
116
+ defaults: defaults
117
+ });
118
+ state.active = state.direction !== 'off';
119
+ }
120
+
121
+ setState(_objectSpread(_objectSpread({}, list.reduce(function (acc, _ref5) {
122
+ var _ref6 = _slicedToArray(_ref5, 2),
123
+ name = _ref6[0],
124
+ opts = _ref6[1];
125
+
126
+ acc[name] = opts;
127
+ acc[name].active = false;
128
+
129
+ if (opts.direction !== 'off') {
130
+ acc[name].lastDirection = opts.direction;
131
+ }
132
+
133
+ return acc;
134
+ }, {})), {}, _defineProperty({}, name, state)));
135
+ };
136
+
137
+ return acc;
138
+ }, {});
139
+ }, [internalState]);
140
+
141
+ var activeSortName = null;
142
+ var sortState = Object.entries(internalState).reduce(function (acc, _ref7) {
143
+ var _ref8 = _slicedToArray(_ref7, 2),
144
+ name = _ref8[0],
145
+ _ref8$ = _ref8[1],
146
+ active = _ref8$.active,
147
+ direction = _ref8$.direction;
148
+
149
+ var reversed = direction === 'off' ? undefined : direction === 'desc';
150
+ acc[name] = {
151
+ active: active,
152
+ direction: direction,
153
+ reversed: reversed
154
+ };
155
+
156
+ if (active) {
157
+ activeSortName = name;
158
+ }
159
+
160
+ return acc;
161
+ }, {});
162
+ return {
163
+ sortState: sortState,
164
+ sortHandler: sortHandler,
165
+ activeSortName: activeSortName
166
+ };
167
+
168
+ function getNextMode(_ref9) {
169
+ var state = _ref9.state,
170
+ opts = _ref9.opts,
171
+ defaults = _ref9.defaults;
172
+ var modes = defaults.modes.filter(function (mode) {
173
+ return opts.modes.includes(mode);
174
+ });
175
+
176
+ for (var i = 0, l = modes.length; i < l; i++) {
177
+ var mode = modes[i];
178
+
179
+ if (mode === state.direction) {
180
+ var c = i + 1;
181
+
182
+ if (c >= l) {
183
+ c = 0;
184
+ }
185
+
186
+ state.direction = modes[c];
187
+ break;
188
+ }
189
+ }
190
+
191
+ return state.direction;
192
+ }
193
+ }
194
+
195
+ var _default = useHandleSortState;
196
+ exports.default = _default;
@@ -7,6 +7,9 @@
7
7
  overflow-x: auto;
8
8
  @include scrollY(auto);
9
9
 
10
+ // Ensure the user still can scroll a ancestor scrollarea (body)
11
+ overscroll-behavior: auto;
12
+
10
13
  // interactive prop
11
14
  &[tabindex='0'] {
12
15
  &:focus {
@@ -21,7 +21,7 @@ function init() {
21
21
  _createClass(Eufemia, [{
22
22
  key: "version",
23
23
  get: function get() {
24
- return '9.41.0';
24
+ return '9.42.0';
25
25
  }
26
26
  }]);
27
27
 
@@ -563,7 +563,9 @@
563
563
  -webkit-overflow-scrolling: touch;
564
564
  -ms-overflow-style: auto;
565
565
  scrollbar-color: #14555a transparent;
566
- scrollbar-color: var(--color-emerald-green) transparent; }
566
+ scrollbar-color: var(--color-emerald-green) transparent;
567
+ -ms-scroll-chaining: chained;
568
+ overscroll-behavior: auto; }
567
569
  html:not([data-visual-test]) .dnb-scroll-view {
568
570
  scroll-behavior: smooth; }
569
571
  html[data-visual-test] .dnb-scroll-view {
@@ -7361,12 +7363,33 @@ span.dnb-space--no-collapse > span {
7361
7363
  html:not([data-whatintent='touch'])
7362
7364
  .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before {
7363
7365
  right: -0.5rem; }
7364
- .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon,
7366
+ html[data-visual-test] .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon,
7367
+ :not(.dnb-table--active) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):active .dnb-icon, html[data-visual-test]
7365
7368
  html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon,
7369
+ :not(.dnb-table--active)
7370
+ html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):active .dnb-icon, html[data-visual-test]
7371
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon,
7372
+ :not(.dnb-table--active)
7373
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):active .dnb-icon, html[data-visual-test]
7374
+ html:not([data-whatintent='touch'])
7366
7375
  .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon,
7376
+ :not(.dnb-table--active)
7367
7377
  html:not([data-whatintent='touch'])
7368
- .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-icon {
7378
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):active .dnb-icon {
7369
7379
  opacity: 1; }
7380
+ html:not([data-visual-test]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after, html:not([data-visual-test])
7381
+ html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after, html:not([data-visual-test])
7382
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after, html:not([data-visual-test])
7383
+ html:not([data-whatintent='touch'])
7384
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after {
7385
+ opacity: 1;
7386
+ color: inherit; }
7387
+ html:not([data-visual-test]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-visual-test])
7388
+ html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-visual-test])
7389
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-visual-test])
7390
+ html:not([data-whatintent='touch'])
7391
+ .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after {
7392
+ visibility: visible; }
7370
7393
  .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],
7371
7394
  html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],
7372
7395
  .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],
@@ -7500,6 +7523,18 @@ span.dnb-space--no-collapse > span {
7500
7523
  color: #007272;
7501
7524
  color: var(--color-sea-green);
7502
7525
  opacity: 1; }
7526
+ .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:focus[disabled],
7527
+ html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:focus[disabled],
7528
+ .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:focus[disabled],
7529
+ html:not([data-whatintent='touch'])
7530
+ .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:focus[disabled] {
7531
+ cursor: not-allowed; }
7532
+ .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after,
7533
+ html:not([data-whatintent='touch']) .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after,
7534
+ .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after,
7535
+ html:not([data-whatintent='touch'])
7536
+ .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:focus:not([disabled]) .dnb-button__text::after {
7537
+ opacity: 0; }
7503
7538
  .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:focus:not(:active) .dnb-button__text::after,
7504
7539
  .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:focus:not(:active) .dnb-button__text::after {
7505
7540
  visibility: visible; }
@@ -7787,12 +7822,18 @@ thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:focus
7787
7822
  flex-direction: column; }
7788
7823
  .dnb-table__container__body .dnb-table:not([class*='space__bottom']) {
7789
7824
  margin-bottom: 0; }
7825
+ .dnb-table__container__body .dnb-table__size--large .dnb-table__th {
7826
+ padding-top: 1.5rem; }
7790
7827
  .dnb-table__container__head {
7791
7828
  padding: 2rem 1rem 0; }
7829
+ .dnb-table__container__head--empty {
7830
+ padding: 0.5rem 0 0; }
7792
7831
  .dnb-spacing .dnb-table__container__head .dnb-h--large:not([class*='space__top']) {
7793
7832
  margin: 0; }
7794
7833
  .dnb-table__container__foot {
7795
- padding: 0.5rem 1rem 2rem; }
7834
+ padding: 1rem 1rem 1.5rem; }
7835
+ .dnb-table__container__foot--empty {
7836
+ padding: 0 0 1rem; }
7796
7837
  .dnb-modal__content .dnb-table__container .dnb-table__scroll-view {
7797
7838
  overflow: visible; }
7798
7839
 
@@ -7858,12 +7899,15 @@ thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:focus
7858
7899
  var(--color-black-20); }
7859
7900
  .dnb-table__th.dnb-table__th__accordion-icon {
7860
7901
  padding: 0; }
7902
+ .dnb-table__th.dnb-table__th__accordion-icon,
7861
7903
  .dnb-table__th.dnb-table__th__accordion-icon div {
7862
7904
  width: 3.5rem;
7863
7905
  text-indent: -300vw; }
7864
- .dnb-table__size--medium .dnb-table__th.dnb-table__th__accordion-icon div {
7906
+ .dnb-table__size--medium .dnb-table__th.dnb-table__th__accordion-icon, .dnb-table__size--medium
7907
+ .dnb-table__th.dnb-table__th__accordion-icon div {
7865
7908
  width: 3rem; }
7866
- .dnb-table__size--small .dnb-table__th.dnb-table__th__accordion-icon div {
7909
+ .dnb-table__size--small .dnb-table__th.dnb-table__th__accordion-icon, .dnb-table__size--small
7910
+ .dnb-table__th.dnb-table__th__accordion-icon div {
7867
7911
  width: 2.5rem; }
7868
7912
  .dnb-table__td.dnb-table__td__accordion-icon {
7869
7913
  padding: 0;
@@ -7974,6 +8018,8 @@ thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:focus
7974
8018
  * we trick VoiceOver to not make this row as the end of the table. We still need "hidden" to get the correct number of rows (childCount).
7975
8019
  */
7976
8020
  display: block; } }
8021
+ .dnb-table__tr__accordion_content td {
8022
+ width: 100%; }
7977
8023
  .dnb-table__tr__accordion_content td::before {
7978
8024
  content: '';
7979
8025
  position: absolute;