@dnb/eufemia 9.28.0 → 9.29.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 (209) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/cjs/components/dialog/style/dnb-dialog.css +9 -6
  3. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  4. package/cjs/components/drawer/style/_drawer.scss +4 -3
  5. package/cjs/components/drawer/style/dnb-drawer.css +17 -10
  6. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  7. package/cjs/components/form-row/FormRowHelpers.d.ts +1 -1
  8. package/cjs/components/lib.d.ts +1 -89
  9. package/cjs/components/modal/style/_modal.scss +0 -1
  10. package/cjs/components/modal/style/dnb-modal.css +9 -6
  11. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  12. package/cjs/components/skeleton/SkeletonHelper.d.ts +2 -1
  13. package/cjs/components/slider/Slider.d.ts +6 -144
  14. package/cjs/components/slider/Slider.js +5 -595
  15. package/cjs/components/slider/SliderHelpers.d.ts +23 -0
  16. package/cjs/components/slider/SliderHelpers.js +239 -0
  17. package/cjs/components/slider/SliderInstance.d.ts +6 -0
  18. package/cjs/components/slider/SliderInstance.js +190 -0
  19. package/cjs/components/slider/SliderProvider.d.ts +4 -0
  20. package/cjs/components/slider/SliderProvider.js +264 -0
  21. package/cjs/components/slider/SliderThumb.d.ts +2 -0
  22. package/cjs/components/slider/SliderThumb.js +137 -0
  23. package/cjs/components/slider/SliderTrack.d.ts +6 -0
  24. package/cjs/components/slider/SliderTrack.js +131 -0
  25. package/cjs/components/slider/hooks/useSliderEvents.d.ts +11 -0
  26. package/cjs/components/slider/hooks/useSliderEvents.js +146 -0
  27. package/cjs/components/slider/hooks/useSliderProps.d.ts +1 -0
  28. package/cjs/components/slider/hooks/useSliderProps.js +16 -0
  29. package/cjs/components/slider/style/_slider.scss +19 -48
  30. package/cjs/components/slider/style/dnb-slider.css +30 -60
  31. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  32. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  33. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  34. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  35. package/cjs/components/slider/types.d.ts +75 -0
  36. package/cjs/components/slider/types.js +1 -0
  37. package/cjs/elements/Anchor.d.ts +44 -105
  38. package/cjs/elements/Anchor.js +48 -138
  39. package/cjs/elements/Element.d.ts +23 -40
  40. package/cjs/elements/Element.js +48 -122
  41. package/cjs/elements/Link.d.ts +18 -1
  42. package/cjs/elements/lib.d.ts +36 -2
  43. package/cjs/shared/Context.d.ts +2 -0
  44. package/cjs/shared/Eufemia.js +1 -1
  45. package/cjs/shared/helpers/Suffix.d.ts +2 -1
  46. package/cjs/shared/helpers/Suffix.js +5 -2
  47. package/cjs/shared/helpers/withCamelCaseProps.d.ts +1 -1
  48. package/cjs/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  49. package/cjs/shared/helpers/withSnakeCaseProps.js +168 -0
  50. package/cjs/shared/locales/en-GB.d.ts +3 -3
  51. package/cjs/shared/locales/en-GB.js +3 -3
  52. package/cjs/shared/locales/en-US.d.ts +3 -3
  53. package/cjs/shared/locales/index.d.ts +6 -6
  54. package/cjs/shared/locales/nb-NO.d.ts +3 -3
  55. package/cjs/shared/locales/nb-NO.js +3 -3
  56. package/cjs/style/dnb-ui-components.css +39 -66
  57. package/cjs/style/dnb-ui-components.min.css +3 -3
  58. package/cjs/style/dnb-ui-elements.css +44 -28
  59. package/cjs/style/dnb-ui-elements.min.css +1 -1
  60. package/cjs/style/dnb-ui-tags.css +63 -40
  61. package/cjs/style/dnb-ui-tags.min.css +1 -1
  62. package/cjs/style/elements/_anchor-mixins.scss +6 -3
  63. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.css +40 -40
  64. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  65. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +44 -44
  66. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  67. package/components/dialog/style/dnb-dialog.css +9 -6
  68. package/components/dialog/style/dnb-dialog.min.css +1 -1
  69. package/components/drawer/style/_drawer.scss +4 -3
  70. package/components/drawer/style/dnb-drawer.css +17 -10
  71. package/components/drawer/style/dnb-drawer.min.css +1 -1
  72. package/components/form-row/FormRowHelpers.d.ts +1 -1
  73. package/components/lib.d.ts +1 -89
  74. package/components/modal/style/_modal.scss +0 -1
  75. package/components/modal/style/dnb-modal.css +9 -6
  76. package/components/modal/style/dnb-modal.min.css +1 -1
  77. package/components/skeleton/SkeletonHelper.d.ts +2 -1
  78. package/components/slider/Slider.d.ts +6 -144
  79. package/components/slider/Slider.js +5 -528
  80. package/components/slider/SliderHelpers.d.ts +23 -0
  81. package/components/slider/SliderHelpers.js +152 -0
  82. package/components/slider/SliderInstance.d.ts +6 -0
  83. package/components/slider/SliderInstance.js +162 -0
  84. package/components/slider/SliderProvider.d.ts +4 -0
  85. package/components/slider/SliderProvider.js +199 -0
  86. package/components/slider/SliderThumb.d.ts +2 -0
  87. package/components/slider/SliderThumb.js +109 -0
  88. package/components/slider/SliderTrack.d.ts +6 -0
  89. package/components/slider/SliderTrack.js +104 -0
  90. package/components/slider/hooks/useSliderEvents.d.ts +11 -0
  91. package/components/slider/hooks/useSliderEvents.js +132 -0
  92. package/components/slider/hooks/useSliderProps.d.ts +1 -0
  93. package/components/slider/hooks/useSliderProps.js +5 -0
  94. package/components/slider/style/_slider.scss +19 -48
  95. package/components/slider/style/dnb-slider.css +30 -60
  96. package/components/slider/style/dnb-slider.min.css +1 -1
  97. package/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  98. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  99. package/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  100. package/components/slider/types.d.ts +75 -0
  101. package/components/slider/types.js +1 -0
  102. package/elements/Anchor.d.ts +44 -105
  103. package/elements/Anchor.js +51 -113
  104. package/elements/Element.d.ts +23 -40
  105. package/elements/Element.js +44 -92
  106. package/elements/Link.d.ts +18 -1
  107. package/elements/lib.d.ts +36 -2
  108. package/es/components/dialog/style/dnb-dialog.css +9 -6
  109. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  110. package/es/components/drawer/style/_drawer.scss +4 -3
  111. package/es/components/drawer/style/dnb-drawer.css +17 -10
  112. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  113. package/es/components/form-row/FormRowHelpers.d.ts +1 -1
  114. package/es/components/lib.d.ts +1 -89
  115. package/es/components/modal/style/_modal.scss +0 -1
  116. package/es/components/modal/style/dnb-modal.css +9 -6
  117. package/es/components/modal/style/dnb-modal.min.css +1 -1
  118. package/es/components/skeleton/SkeletonHelper.d.ts +2 -1
  119. package/es/components/slider/Slider.d.ts +6 -144
  120. package/es/components/slider/Slider.js +5 -484
  121. package/es/components/slider/SliderHelpers.d.ts +23 -0
  122. package/es/components/slider/SliderHelpers.js +124 -0
  123. package/es/components/slider/SliderInstance.d.ts +6 -0
  124. package/es/components/slider/SliderInstance.js +167 -0
  125. package/es/components/slider/SliderProvider.d.ts +4 -0
  126. package/es/components/slider/SliderProvider.js +178 -0
  127. package/es/components/slider/SliderThumb.d.ts +2 -0
  128. package/es/components/slider/SliderThumb.js +100 -0
  129. package/es/components/slider/SliderTrack.d.ts +6 -0
  130. package/es/components/slider/SliderTrack.js +99 -0
  131. package/es/components/slider/hooks/useSliderEvents.d.ts +11 -0
  132. package/es/components/slider/hooks/useSliderEvents.js +129 -0
  133. package/es/components/slider/hooks/useSliderProps.d.ts +1 -0
  134. package/es/components/slider/hooks/useSliderProps.js +5 -0
  135. package/es/components/slider/style/_slider.scss +19 -48
  136. package/es/components/slider/style/dnb-slider.css +30 -60
  137. package/es/components/slider/style/dnb-slider.min.css +1 -1
  138. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  139. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  140. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  141. package/es/components/slider/types.d.ts +75 -0
  142. package/es/components/slider/types.js +1 -0
  143. package/es/elements/Anchor.d.ts +44 -105
  144. package/es/elements/Anchor.js +49 -80
  145. package/es/elements/Element.d.ts +23 -40
  146. package/es/elements/Element.js +44 -61
  147. package/es/elements/Link.d.ts +18 -1
  148. package/es/elements/lib.d.ts +36 -2
  149. package/es/shared/Context.d.ts +2 -0
  150. package/es/shared/Eufemia.js +1 -1
  151. package/es/shared/helpers/Suffix.d.ts +2 -1
  152. package/es/shared/helpers/Suffix.js +5 -3
  153. package/es/shared/helpers/withCamelCaseProps.d.ts +1 -1
  154. package/es/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  155. package/es/shared/helpers/withSnakeCaseProps.js +72 -0
  156. package/es/shared/locales/en-GB.d.ts +3 -3
  157. package/es/shared/locales/en-GB.js +3 -3
  158. package/es/shared/locales/en-US.d.ts +3 -3
  159. package/es/shared/locales/index.d.ts +6 -6
  160. package/es/shared/locales/nb-NO.d.ts +3 -3
  161. package/es/shared/locales/nb-NO.js +3 -3
  162. package/es/style/dnb-ui-components.css +39 -66
  163. package/es/style/dnb-ui-components.min.css +3 -3
  164. package/es/style/dnb-ui-elements.css +44 -28
  165. package/es/style/dnb-ui-elements.min.css +1 -1
  166. package/es/style/dnb-ui-tags.css +63 -40
  167. package/es/style/dnb-ui-tags.min.css +1 -1
  168. package/es/style/elements/_anchor-mixins.scss +6 -3
  169. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.css +40 -40
  170. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  171. package/es/style/themes/theme-ui/dnb-theme-ui.css +44 -44
  172. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  173. package/esm/dnb-ui-basis.min.mjs +1 -1
  174. package/esm/dnb-ui-components.min.mjs +3 -3
  175. package/esm/dnb-ui-elements.min.mjs +9 -10
  176. package/esm/dnb-ui-extensions.min.mjs +4 -4
  177. package/esm/dnb-ui-lib.min.mjs +3 -3
  178. package/esm/dnb-ui-web-components.min.mjs +3 -3
  179. package/package.json +1 -1
  180. package/shared/Context.d.ts +2 -0
  181. package/shared/Eufemia.js +1 -1
  182. package/shared/helpers/Suffix.d.ts +2 -1
  183. package/shared/helpers/Suffix.js +4 -2
  184. package/shared/helpers/withCamelCaseProps.d.ts +1 -1
  185. package/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  186. package/shared/helpers/withSnakeCaseProps.js +115 -0
  187. package/shared/locales/en-GB.d.ts +3 -3
  188. package/shared/locales/en-GB.js +3 -3
  189. package/shared/locales/en-US.d.ts +3 -3
  190. package/shared/locales/index.d.ts +6 -6
  191. package/shared/locales/nb-NO.d.ts +3 -3
  192. package/shared/locales/nb-NO.js +3 -3
  193. package/style/dnb-ui-components.css +39 -66
  194. package/style/dnb-ui-components.min.css +3 -3
  195. package/style/dnb-ui-elements.css +44 -28
  196. package/style/dnb-ui-elements.min.css +1 -1
  197. package/style/dnb-ui-tags.css +63 -40
  198. package/style/dnb-ui-tags.min.css +1 -1
  199. package/style/elements/_anchor-mixins.scss +6 -3
  200. package/style/themes/theme-eiendom/dnb-theme-eiendom.css +40 -40
  201. package/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  202. package/style/themes/theme-ui/dnb-theme-ui.css +44 -44
  203. package/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  204. package/umd/dnb-ui-basis.min.js +1 -1
  205. package/umd/dnb-ui-components.min.js +5 -5
  206. package/umd/dnb-ui-elements.min.js +20 -21
  207. package/umd/dnb-ui-extensions.min.js +3 -3
  208. package/umd/dnb-ui-lib.min.js +4 -4
  209. package/umd/dnb-ui-web-components.min.js +3 -3
@@ -0,0 +1,264 @@
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.array.index-of.js");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports.SliderContext = void 0;
31
+ exports.SliderProvider = SliderProvider;
32
+
33
+ require("core-js/modules/es.array.reverse.js");
34
+
35
+ require("core-js/modules/es.object.to-string.js");
36
+
37
+ var _react = _interopRequireDefault(require("react"));
38
+
39
+ var _FormRowHelpers = require("../../components/form-row/FormRowHelpers");
40
+
41
+ var _hooks = require("../../shared/hooks");
42
+
43
+ var _componentHelper = require("../../shared/component-helper");
44
+
45
+ var _Context = _interopRequireDefault(require("../../shared/Context"));
46
+
47
+ var _SliderHelpers = require("./SliderHelpers");
48
+
49
+ var _withSnakeCaseProps = require("../../shared/helpers/withSnakeCaseProps");
50
+
51
+ var _excluded = ["step", "label", "labelDirection", "labelSrOnly", "status", "statusState", "statusProps", "statusNoAnimation", "globalStatusId", "stretch", "suffix", "thumbTitle", "subtractTitle", "addTitle", "hideButtons", "numberFormat", "skeleton", "max", "min", "disabled", "className", "id", "onInit", "onChange", "onDragStart", "onDragEnd", "vertical", "reverse", "value", "children"];
52
+
53
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
54
+
55
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
56
+
57
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
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
+ var defaultProps = {
72
+ statusState: 'error',
73
+ addTitle: '+',
74
+ subtractTitle: '−',
75
+ min: 0,
76
+ max: 100,
77
+ value: -1
78
+ };
79
+
80
+ var SliderContext = _react.default.createContext(null);
81
+
82
+ exports.SliderContext = SliderContext;
83
+
84
+ function SliderProvider(localProps) {
85
+ var context = _react.default.useContext(_Context.default);
86
+
87
+ var allProps = (0, _withSnakeCaseProps.convertSnakeCaseProps)((0, _hooks.usePropsWithContext)(localProps, defaultProps, {
88
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
89
+ }, context === null || context === void 0 ? void 0 : context.getTranslation(localProps).Slider, (0, _FormRowHelpers.includeValidProps)(context === null || context === void 0 ? void 0 : context.FormRow, {
90
+ vertical: null
91
+ }), context === null || context === void 0 ? void 0 : context.Slider));
92
+
93
+ var _React$useState = _react.default.useState(_componentHelper.makeUniqueId),
94
+ _React$useState2 = _slicedToArray(_React$useState, 1),
95
+ _id = _React$useState2[0];
96
+
97
+ if (!allProps.id) {
98
+ allProps.id = _id;
99
+ }
100
+
101
+ var step = allProps.step,
102
+ label = allProps.label,
103
+ labelDirection = allProps.labelDirection,
104
+ labelSrOnly = allProps.labelSrOnly,
105
+ status = allProps.status,
106
+ statusState = allProps.statusState,
107
+ statusProps = allProps.statusProps,
108
+ statusNoAnimation = allProps.statusNoAnimation,
109
+ globalStatusId = allProps.globalStatusId,
110
+ stretch = allProps.stretch,
111
+ suffix = allProps.suffix,
112
+ title = allProps.thumbTitle,
113
+ subtractTitle = allProps.subtractTitle,
114
+ addTitle = allProps.addTitle,
115
+ hideButtons = allProps.hideButtons,
116
+ numberFormat = allProps.numberFormat,
117
+ skeleton = allProps.skeleton,
118
+ max = allProps.max,
119
+ min = allProps.min,
120
+ disabled = allProps.disabled,
121
+ className = allProps.className,
122
+ id = allProps.id,
123
+ onInit = allProps.onInit,
124
+ onChange = allProps.onChange,
125
+ onDragStart = allProps.onDragStart,
126
+ onDragEnd = allProps.onDragEnd,
127
+ _vertical = allProps.vertical,
128
+ _reverse = allProps.reverse,
129
+ _value = allProps.value,
130
+ _children = allProps.children,
131
+ attributes = _objectWithoutProperties(allProps, _excluded);
132
+
133
+ var _React$useState3 = _react.default.useState(_value),
134
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
135
+ value = _React$useState4[0],
136
+ setValue = _React$useState4[1];
137
+
138
+ var _React$useState5 = _react.default.useState('initial'),
139
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
140
+ thumbState = _React$useState6[0],
141
+ setThumbState = _React$useState6[1];
142
+
143
+ var thumbIndex = _react.default.useRef(-1);
144
+
145
+ var _React$useState7 = _react.default.useState((0, _componentHelper.isTrue)(_vertical)),
146
+ _React$useState8 = _slicedToArray(_React$useState7, 1),
147
+ isVertical = _React$useState8[0];
148
+
149
+ var _React$useState9 = _react.default.useState(isVertical ? !(0, _componentHelper.isTrue)(_reverse) : (0, _componentHelper.isTrue)(_reverse)),
150
+ _React$useState10 = _slicedToArray(_React$useState9, 1),
151
+ isReverse = _React$useState10[0];
152
+
153
+ var isMulti = Array.isArray(value);
154
+
155
+ var setThumbIndex = function setThumbIndex(index) {
156
+ if (!isNaN(index)) {
157
+ thumbIndex.current = index;
158
+ }
159
+ };
160
+
161
+ if (allProps.use_scrollwheel) {
162
+ (0, _componentHelper.warn)('use_scrollwheel is not supported anymore!');
163
+ }
164
+
165
+ var getAndUpdateCurrentIndex = function getAndUpdateCurrentIndex(currentValue) {
166
+ var currentIndex = null;
167
+
168
+ if (thumbIndex.current > -1) {
169
+ currentIndex = thumbIndex.current;
170
+ } else {
171
+ currentIndex = (0, _SliderHelpers.closestIndex)(currentValue, value);
172
+ setThumbIndex(currentIndex);
173
+ }
174
+
175
+ return currentIndex;
176
+ };
177
+
178
+ var emitChange = function emitChange(event, rawValue) {
179
+ if (disabled || (0, _componentHelper.isTrue)(skeleton)) {
180
+ return;
181
+ }
182
+
183
+ var currentValue = (0, _SliderHelpers.roundValue)(rawValue, step);
184
+
185
+ if (currentValue > -1 && rawValue !== value) {
186
+ var newValue = currentValue;
187
+
188
+ if (isMulti) {
189
+ var currentIndex = getAndUpdateCurrentIndex(currentValue);
190
+ newValue = (0, _SliderHelpers.getUpdatedValues)(value, currentIndex, currentValue);
191
+ }
192
+
193
+ if (typeof onChange === 'function') {
194
+ var obj = {
195
+ value: newValue,
196
+ rawValue: rawValue,
197
+ raw_value: rawValue,
198
+ event: event,
199
+ number: null
200
+ };
201
+
202
+ if (numberFormat) {
203
+ obj.number = (0, _SliderHelpers.formatNumber)(currentValue, numberFormat);
204
+ }
205
+
206
+ (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'onChange', obj);
207
+ }
208
+
209
+ setValue(newValue);
210
+ }
211
+ };
212
+
213
+ _react.default.useEffect(function () {
214
+ if (isMulti) {
215
+ var hasChanged = _value.some(function (val, i) {
216
+ return val !== value[i];
217
+ });
218
+
219
+ if (hasChanged) {
220
+ setValue(_value);
221
+ }
222
+ } else {
223
+ setValue(_value);
224
+ }
225
+ }, [_value, isMulti]);
226
+
227
+ var trackRef = _react.default.useRef();
228
+
229
+ var jumpedTimeout = _react.default.useRef();
230
+
231
+ var setJumpedState = function setJumpedState() {
232
+ setThumbState('jumped');
233
+ clearTimeout(jumpedTimeout.current);
234
+ jumpedTimeout.current = setTimeout(function () {
235
+ return setThumbState('normal');
236
+ }, 100);
237
+ };
238
+
239
+ var showStatus = (0, _componentHelper.getStatusState)(status);
240
+ var showButtons = !isMulti && !(0, _componentHelper.isTrue)(hideButtons);
241
+ var values = isMulti ? value : [value];
242
+ return _react.default.createElement(SliderContext.Provider, {
243
+ value: {
244
+ isMulti: isMulti,
245
+ isReverse: isReverse,
246
+ isVertical: isVertical,
247
+ value: value,
248
+ values: values,
249
+ setValue: setValue,
250
+ attributes: attributes,
251
+ showStatus: showStatus,
252
+ showButtons: showButtons,
253
+ thumbState: thumbState,
254
+ setThumbState: setThumbState,
255
+ thumbIndex: thumbIndex,
256
+ setThumbIndex: setThumbIndex,
257
+ emitChange: emitChange,
258
+ allProps: allProps,
259
+ trackRef: trackRef,
260
+ setJumpedState: setJumpedState,
261
+ jumpedTimeout: jumpedTimeout
262
+ }
263
+ }, localProps.children);
264
+ }
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function SliderThumb(): JSX.Element;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+
5
+ require("core-js/modules/es.symbol.js");
6
+
7
+ require("core-js/modules/es.array.filter.js");
8
+
9
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
10
+
11
+ require("core-js/modules/web.dom-collections.for-each.js");
12
+
13
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
14
+
15
+ require("core-js/modules/es.object.assign.js");
16
+
17
+ Object.defineProperty(exports, "__esModule", {
18
+ value: true
19
+ });
20
+ exports.SliderThumb = SliderThumb;
21
+
22
+ require("core-js/modules/es.array.iterator.js");
23
+
24
+ require("core-js/modules/es.object.to-string.js");
25
+
26
+ require("core-js/modules/web.dom-collections.iterator.js");
27
+
28
+ require("core-js/modules/es.array.map.js");
29
+
30
+ var _react = _interopRequireDefault(require("react"));
31
+
32
+ var _componentHelper = require("../../shared/component-helper");
33
+
34
+ var _Button = _interopRequireDefault(require("../button/Button"));
35
+
36
+ var _useSliderEvents2 = require("./hooks/useSliderEvents");
37
+
38
+ var _useSliderProps2 = require("./hooks/useSliderProps");
39
+
40
+ var _SliderHelpers = require("./SliderHelpers");
41
+
42
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
+
44
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ 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; }
51
+
52
+ function SliderThumb() {
53
+ var _useSliderProps = (0, _useSliderProps2.useSliderProps)(),
54
+ values = _useSliderProps.values,
55
+ thumbIndex = _useSliderProps.thumbIndex,
56
+ isVertical = _useSliderProps.isVertical,
57
+ showStatus = _useSliderProps.showStatus,
58
+ attributes = _useSliderProps.attributes,
59
+ allProps = _useSliderProps.allProps;
60
+
61
+ var id = allProps.id,
62
+ label = allProps.label,
63
+ min = allProps.min,
64
+ max = allProps.max,
65
+ step = allProps.step,
66
+ skeleton = allProps.skeleton,
67
+ disabled = allProps.disabled,
68
+ suffix = allProps.suffix,
69
+ numberFormat = allProps.numberFormat;
70
+
71
+ var _useSliderEvents = (0, _useSliderEvents2.useSliderEvents)(),
72
+ onThumbMouseDownHandler = _useSliderEvents.onThumbMouseDownHandler,
73
+ onThumbMouseUpHandler = _useSliderEvents.onThumbMouseUpHandler,
74
+ onThumbBlurHandler = _useSliderEvents.onThumbBlurHandler,
75
+ onThumbFocusHandler = _useSliderEvents.onThumbFocusHandler,
76
+ onHelperChangeHandler = _useSliderEvents.onHelperChangeHandler,
77
+ onHelperFocusHandler = _useSliderEvents.onHelperFocusHandler;
78
+
79
+ var thumbParams = _objectSpread({
80
+ onBlur: onThumbBlurHandler,
81
+ onFocus: onThumbFocusHandler
82
+ }, attributes);
83
+
84
+ var helperParams = {};
85
+
86
+ if (label) {
87
+ helperParams['aria-labelledby'] = (0, _componentHelper.combineLabelledBy)(helperParams, label ? id + '-label' : null);
88
+ }
89
+
90
+ if (showStatus || suffix) {
91
+ helperParams['aria-describedby'] = (0, _componentHelper.combineDescribedBy)(helperParams, showStatus ? id + '-status' : null, suffix ? id + '-suffix' : null);
92
+ }
93
+
94
+ (0, _componentHelper.validateDOMAttributes)(null, helperParams);
95
+ (0, _componentHelper.validateDOMAttributes)(allProps, thumbParams);
96
+ return _react.default.createElement(_react.default.Fragment, null, values.map(function (value, i) {
97
+ var index = thumbIndex.current;
98
+ var percent = (0, _SliderHelpers.clamp)((value - min) * 100 / (max - min));
99
+
100
+ var style = _defineProperty({
101
+ zIndex: index === i ? 4 : 3
102
+ }, "".concat(isVertical ? 'top' : 'left'), "".concat(percent, "%"));
103
+
104
+ var humanNumber = (0, _SliderHelpers.getHumanNumber)(value, numberFormat);
105
+ return _react.default.createElement(_react.default.Fragment, {
106
+ key: i
107
+ }, _react.default.createElement("span", {
108
+ className: "dnb-slider__thumb",
109
+ style: style
110
+ }, _react.default.createElement("input", _extends({
111
+ type: "range",
112
+ className: "dnb-slider__button-helper",
113
+ min: min,
114
+ max: max,
115
+ step: step,
116
+ value: value,
117
+ disabled: disabled,
118
+ onChange: onHelperChangeHandler,
119
+ onFocus: onHelperFocusHandler,
120
+ "aria-valuemin": min,
121
+ "aria-valuemax": max,
122
+ "aria-valuenow": value,
123
+ "aria-valuetext": humanNumber ? humanNumber : undefined,
124
+ "aria-orientation": isVertical ? 'vertical' : 'horizontal',
125
+ "data-index": i
126
+ }, helperParams)), _react.default.createElement(_Button.default, _extends({
127
+ element: "span",
128
+ type: "",
129
+ variant: "secondary",
130
+ disabled: disabled,
131
+ skeleton: skeleton,
132
+ "data-index": i,
133
+ onMouseDown: onThumbMouseDownHandler,
134
+ onMouseUp: onThumbMouseUpHandler
135
+ }, thumbParams))));
136
+ }));
137
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export declare function SliderMainTrack({ children, }: {
3
+ children: React.ReactNode | React.ReactNode[];
4
+ }): JSX.Element;
5
+ export declare function SliderTrackBefore(): JSX.Element;
6
+ export declare function SliderTrackAfter(): JSX.Element;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SliderMainTrack = SliderMainTrack;
7
+ exports.SliderTrackAfter = SliderTrackAfter;
8
+ exports.SliderTrackBefore = SliderTrackBefore;
9
+
10
+ require("core-js/modules/es.array.iterator.js");
11
+
12
+ require("core-js/modules/es.object.to-string.js");
13
+
14
+ require("core-js/modules/web.dom-collections.iterator.js");
15
+
16
+ require("core-js/modules/es.array.sort.js");
17
+
18
+ require("core-js/modules/es.array.reverse.js");
19
+
20
+ require("core-js/modules/es.object.assign.js");
21
+
22
+ var _react = _interopRequireDefault(require("react"));
23
+
24
+ var _componentHelper = require("../../shared/component-helper");
25
+
26
+ var _useSliderEvents2 = require("./hooks/useSliderEvents");
27
+
28
+ var _useSliderProps3 = require("./hooks/useSliderProps");
29
+
30
+ var _SliderHelpers = require("./SliderHelpers");
31
+
32
+ var _span;
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
37
+
38
+ function SliderMainTrack(_ref) {
39
+ var children = _ref.children;
40
+
41
+ var _useSliderProps = (0, _useSliderProps3.useSliderProps)(),
42
+ isMulti = _useSliderProps.isMulti,
43
+ value = _useSliderProps.value,
44
+ allProps = _useSliderProps.allProps,
45
+ trackRef = _useSliderProps.trackRef,
46
+ jumpedTimeout = _useSliderProps.jumpedTimeout,
47
+ thumbState = _useSliderProps.thumbState;
48
+
49
+ var id = allProps.id,
50
+ numberFormat = allProps.numberFormat,
51
+ onInit = allProps.onInit;
52
+
53
+ var _useSliderEvents = (0, _useSliderEvents2.useSliderEvents)(),
54
+ onTrackClickHandler = _useSliderEvents.onTrackClickHandler,
55
+ onThumbMouseDownHandler = _useSliderEvents.onThumbMouseDownHandler,
56
+ removeEvents = _useSliderEvents.removeEvents;
57
+
58
+ _react.default.useEffect(function () {
59
+ if (typeof onInit === 'function' && !isMulti) {
60
+ var obj = {
61
+ value: value,
62
+ number: null
63
+ };
64
+
65
+ if (numberFormat) {
66
+ obj.number = (0, _SliderHelpers.formatNumber)(value, numberFormat);
67
+ }
68
+
69
+ (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'onInit', obj);
70
+ }
71
+
72
+ return function () {
73
+ removeEvents();
74
+ clearTimeout(jumpedTimeout.current);
75
+ };
76
+ }, []);
77
+
78
+ var trackParams = {
79
+ className: 'dnb-slider__track' + (thumbState ? " dnb-slider__state--".concat(thumbState) : ""),
80
+ onTouchStart: onTrackClickHandler,
81
+ onTouchStartCapture: onThumbMouseDownHandler,
82
+ onMouseDown: onTrackClickHandler,
83
+ onMouseDownCapture: onThumbMouseDownHandler
84
+ };
85
+ (0, _componentHelper.validateDOMAttributes)(null, trackParams);
86
+ return _react.default.createElement("span", _extends({
87
+ id: id,
88
+ ref: trackRef
89
+ }, trackParams), children);
90
+ }
91
+
92
+ var trackObj = [['right', 'left'], ['bottom', 'top']];
93
+
94
+ function SliderTrackBefore() {
95
+ var _useSliderProps2 = (0, _useSliderProps3.useSliderProps)(),
96
+ origValues = _useSliderProps2.values,
97
+ isVertical = _useSliderProps2.isVertical,
98
+ thumbIndex = _useSliderProps2.thumbIndex,
99
+ _useSliderProps2$allP = _useSliderProps2.allProps,
100
+ min = _useSliderProps2$allP.min,
101
+ max = _useSliderProps2$allP.max;
102
+
103
+ var values = origValues.sort(function (a, b) {
104
+ return a - b;
105
+ });
106
+ var isBetween = values.length >= 2;
107
+
108
+ if (isBetween && values[0] > values[values.length - 1]) {
109
+ values.reverse();
110
+ }
111
+
112
+ var index = thumbIndex.current;
113
+ var upperValue = values[isBetween ? 0 : index > -1 ? index : 0];
114
+ var upperPercent = isBetween ? (0, _SliderHelpers.clamp)((upperValue - min) * 100 / (max - min)) : 0;
115
+ var lowerValue = values[isBetween ? values.length - 1 : index > -1 ? index : 0];
116
+ var lowerPercent = 100 - (0, _SliderHelpers.clamp)((lowerValue - min) * 100 / (max - min));
117
+ var units = [trackObj[isVertical ? 1 : 0][0], trackObj[isVertical ? 1 : 0][1]];
118
+ var style = {};
119
+ style[units[0]] = "".concat(lowerPercent, "%");
120
+ style[units[1]] = "".concat(upperPercent, "%");
121
+ return _react.default.createElement("span", {
122
+ className: "dnb-slider__line dnb-slider__line__before",
123
+ style: style
124
+ });
125
+ }
126
+
127
+ function SliderTrackAfter() {
128
+ return _span || (_span = _react.default.createElement("span", {
129
+ className: "dnb-slider__line dnb-slider__line__after"
130
+ }));
131
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export declare function useSliderEvents(): {
3
+ onThumbMouseDownHandler: (event: React.SyntheticEvent) => void;
4
+ onThumbMouseUpHandler: () => void;
5
+ onTrackClickHandler: (event: MouseEvent | TouchEvent) => void;
6
+ onThumbFocusHandler: () => void;
7
+ onThumbBlurHandler: () => void;
8
+ onHelperChangeHandler: (event: React.FormEvent<HTMLInputElement>) => void;
9
+ onHelperFocusHandler: (event: React.FormEvent<HTMLInputElement>) => void;
10
+ removeEvents: () => void;
11
+ };