@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
@@ -1,613 +1,23 @@
1
1
  "use strict";
2
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.object.to-string.js");
8
-
9
- require("core-js/modules/es.symbol.iterator.js");
10
-
11
- require("core-js/modules/es.array.iterator.js");
12
-
13
- require("core-js/modules/es.string.iterator.js");
14
-
15
- require("core-js/modules/web.dom-collections.iterator.js");
16
-
17
- require("core-js/modules/es.array.slice.js");
18
-
19
- require("core-js/modules/es.function.name.js");
20
-
21
- require("core-js/modules/es.array.from.js");
22
-
23
- require("core-js/modules/es.object.keys.js");
24
-
25
- require("core-js/modules/es.array.index-of.js");
26
-
27
- require("core-js/modules/es.array.filter.js");
28
-
29
- require("core-js/modules/es.object.get-own-property-descriptor.js");
30
-
31
- require("core-js/modules/web.dom-collections.for-each.js");
32
-
33
- require("core-js/modules/es.object.get-own-property-descriptors.js");
34
-
35
- require("core-js/modules/es.object.assign.js");
36
-
37
3
  Object.defineProperty(exports, "__esModule", {
38
4
  value: true
39
5
  });
40
- exports.OriginalComponent = Slider;
41
6
  exports.default = void 0;
42
7
 
43
- require("core-js/modules/es.array.reverse.js");
44
-
45
- require("core-js/modules/es.parse-float.js");
46
-
47
- require("core-js/modules/es.regexp.exec.js");
48
-
49
- require("core-js/modules/es.string.replace.js");
50
-
51
- require("core-js/modules/es.number.to-fixed.js");
52
-
53
8
  var _react = _interopRequireDefault(require("react"));
54
9
 
55
- var _classnames = _interopRequireDefault(require("classnames"));
56
-
57
- var _componentHelper = require("../../shared/component-helper");
58
-
59
- var _FormRowHelpers = require("../../components/form-row/FormRowHelpers");
60
-
61
- var _hooks = require("../../shared/hooks");
62
-
63
- var _AlignmentHelper2 = _interopRequireDefault(require("../../shared/AlignmentHelper"));
64
-
65
- var _withCamelCaseProps = require("../../shared/helpers/withCamelCaseProps");
66
-
67
- var _SpacingHelper = require("../space/SpacingHelper");
68
-
69
- var _NumberUtils = require("../number-format/NumberUtils");
70
-
71
- var _SkeletonHelper = require("../skeleton/SkeletonHelper");
72
-
73
- var _Context = _interopRequireDefault(require("../../shared/Context"));
74
-
75
- var _Suffix = _interopRequireDefault(require("../../shared/helpers/Suffix"));
10
+ var _SliderProvider = require("./SliderProvider");
76
11
 
77
- var _Button = _interopRequireDefault(require("../button/Button"));
12
+ var _SliderInstance2 = require("./SliderInstance");
78
13
 
79
- var _FormLabel = _interopRequireDefault(require("../form-label/FormLabel"));
80
-
81
- var _FormStatus = _interopRequireDefault(require("../form-status/FormStatus"));
82
-
83
- var _AlignmentHelper, _span;
84
-
85
- var _excluded = ["step", "label", "label_direction", "label_sr_only", "status", "status_state", "status_props", "status_no_animation", "global_status_id", "stretch", "suffix", "thumb_title", "subtract_title", "add_title", "hide_buttons", "number_format", "skeleton", "max", "min", "disabled", "className", "id", "on_init", "on_change", "on_drag_start", "on_drag_end", "vertical", "reverse", "class", "value"];
14
+ var _SliderInstance;
86
15
 
87
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
88
17
 
89
- 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); }
90
-
91
- 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; }
92
-
93
- 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; }
94
-
95
- 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; }
96
-
97
- 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; }
98
-
99
- 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; }
100
-
101
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
102
-
103
- 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."); }
104
-
105
- 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); }
106
-
107
- 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; }
108
-
109
- 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; }
110
-
111
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
112
-
113
- var defaultProps = {
114
- status_state: 'error',
115
- add_title: '+',
116
- subtract_title: '−',
117
- min: 0,
118
- max: 100,
119
- value: -1
120
- };
121
-
122
18
  function Slider(localProps) {
123
- var context = _react.default.useContext(_Context.default);
124
-
125
- var allProps = (0, _hooks.usePropsWithContext)(localProps, defaultProps, {
126
- skeleton: context === null || context === void 0 ? void 0 : context.skeleton
127
- }, context === null || context === void 0 ? void 0 : context.getTranslation(localProps).Slider, (0, _FormRowHelpers.includeValidProps)(context === null || context === void 0 ? void 0 : context.FormRow, {
128
- vertical: null
129
- }), context === null || context === void 0 ? void 0 : context.Slider);
130
-
131
- var _React$useState = _react.default.useState(_componentHelper.makeUniqueId),
132
- _React$useState2 = _slicedToArray(_React$useState, 1),
133
- _id = _React$useState2[0];
134
-
135
- if (!allProps.id) {
136
- allProps.id = _id;
137
- }
138
-
139
- var step = allProps.step,
140
- label = allProps.label,
141
- label_direction = allProps.label_direction,
142
- label_sr_only = allProps.label_sr_only,
143
- status = allProps.status,
144
- status_state = allProps.status_state,
145
- status_props = allProps.status_props,
146
- status_no_animation = allProps.status_no_animation,
147
- global_status_id = allProps.global_status_id,
148
- stretch = allProps.stretch,
149
- suffix = allProps.suffix,
150
- title = allProps.thumb_title,
151
- subtract_title = allProps.subtract_title,
152
- add_title = allProps.add_title,
153
- hide_buttons = allProps.hide_buttons,
154
- number_format = allProps.number_format,
155
- skeleton = allProps.skeleton,
156
- max = allProps.max,
157
- min = allProps.min,
158
- disabled = allProps.disabled,
159
- className = allProps.className,
160
- id = allProps.id,
161
- on_init = allProps.on_init,
162
- on_change = allProps.on_change,
163
- on_drag_start = allProps.on_drag_start,
164
- on_drag_end = allProps.on_drag_end,
165
- _vertical = allProps.vertical,
166
- _reverse = allProps.reverse,
167
- _className = allProps.class,
168
- _value = allProps.value,
169
- attributes = _objectWithoutProperties(allProps, _excluded);
170
-
171
- var trackRef = _react.default.useRef();
172
-
173
- var _React$useState3 = _react.default.useState(_value),
174
- _React$useState4 = _slicedToArray(_React$useState3, 2),
175
- value = _React$useState4[0],
176
- setValue = _React$useState4[1];
177
-
178
- var _React$useState5 = _react.default.useState('initial'),
179
- _React$useState6 = _slicedToArray(_React$useState5, 2),
180
- currentState = _React$useState6[0],
181
- setCurrentState = _React$useState6[1];
182
-
183
- var _React$useState7 = _react.default.useState((0, _componentHelper.isTrue)(_vertical)),
184
- _React$useState8 = _slicedToArray(_React$useState7, 1),
185
- vertical = _React$useState8[0];
186
-
187
- var _React$useState9 = _react.default.useState(vertical ? !(0, _componentHelper.isTrue)(_reverse) : (0, _componentHelper.isTrue)(_reverse)),
188
- _React$useState10 = _slicedToArray(_React$useState9, 1),
189
- reverse = _React$useState10[0];
190
-
191
- if (allProps.use_scrollwheel) {
192
- (0, _componentHelper.warn)('use_scrollwheel is not supported anymore!');
193
- }
194
-
195
- var onFocusHandler = function onFocusHandler() {
196
- setCurrentState('focused');
197
- };
198
-
199
- var onBlurHandler = function onBlurHandler() {
200
- setCurrentState('normal');
201
- };
202
-
203
- var onClickHandler = function onClickHandler(event) {
204
- var percent = calculatePercent(trackRef.current, event, vertical, reverse);
205
- var value = percentToValue(percent, min, max);
206
- emitChange(event, value);
207
- setJumpedState();
208
- };
209
-
210
- var onSubtractClickHandler = function onSubtractClickHandler(event) {
211
- emitChange(event, clamp(value - (step || 1), min, max));
212
- };
213
-
214
- var onAddClickHandler = function onAddClickHandler(event) {
215
- emitChange(event, clamp(value + (step || 1), min, max));
216
- };
217
-
218
- var onTouchEndHandler = function onTouchEndHandler(event) {
219
- return onMouseUpHandler(event);
220
- };
221
-
222
- var onMouseDownHandler = function onMouseDownHandler(event) {
223
- if (typeof document !== 'undefined') {
224
- try {
225
- document.body.addEventListener('touchmove', onTouchMoveHandler);
226
- document.body.addEventListener('touchend', onTouchEndHandler);
227
- document.body.addEventListener('mousemove', onMouseMoveHandler);
228
- document.body.addEventListener('mouseup', onMouseUpHandler);
229
- } catch (e) {
230
- (0, _componentHelper.warn)(e);
231
- }
232
- }
233
-
234
- setCurrentState('activated');
235
-
236
- if (typeof on_drag_start === 'function') {
237
- (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'on_drag_start', {
238
- event: event
239
- });
240
- }
241
- };
242
-
243
- var onMouseUpHandler = function onMouseUpHandler(event) {
244
- if (typeof document !== 'undefined') {
245
- try {
246
- document.body.removeEventListener('touchmove', onTouchMoveHandler);
247
- document.body.removeEventListener('touchend', onTouchEndHandler);
248
- document.body.removeEventListener('mousemove', onMouseMoveHandler);
249
- document.body.removeEventListener('mouseup', onMouseUpHandler);
250
- } catch (e) {
251
- (0, _componentHelper.warn)(e);
252
- }
253
- }
254
-
255
- setCurrentState('normal');
256
-
257
- if (typeof on_drag_end === 'function') {
258
- (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'on_drag_end', {
259
- event: event
260
- });
261
- }
262
- };
263
-
264
- var onRangeChangeHandler = function onRangeChangeHandler(event) {
265
- var value = parseFloat(event.currentTarget.value);
266
- setValue(value);
267
- var emitEvent = event;
268
- emitChange(emitEvent, value);
269
- };
270
-
271
- var onTouchMoveHandler = function onTouchMoveHandler(event) {
272
- return onMouseMoveHandler(event);
273
- };
274
-
275
- var onMouseMoveHandler = function onMouseMoveHandler(event) {
276
- var _event, _event$detail;
277
-
278
- var elem = trackRef.current;
279
-
280
- if (typeof ((_event = event) === null || _event === void 0 ? void 0 : (_event$detail = _event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.height) !== 'undefined') {
281
- elem = createMockDiv(event.detail);
282
- event = event.detail;
283
- }
284
-
285
- if (elem) {
286
- var _percent = calculatePercent(elem, event, vertical, reverse);
287
-
288
- var _value2 = percentToValue(_percent, min, max);
289
-
290
- emitChange(event, _value2);
291
- }
292
- };
293
-
294
- var emitChange = function emitChange(event, rawValue) {
295
- if (disabled || (0, _componentHelper.isTrue)(skeleton)) {
296
- return;
297
- }
298
-
299
- var currentValue = roundValue(rawValue, step);
300
-
301
- if (currentValue > -1 && rawValue !== value) {
302
- if (typeof on_change === 'function') {
303
- var obj = {
304
- value: currentValue,
305
- rawValue: rawValue,
306
- raw_value: rawValue,
307
- event: event,
308
- number: null
309
- };
310
-
311
- if (number_format) {
312
- obj.number = formatNumber(currentValue, number_format);
313
- }
314
-
315
- (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'on_change', obj);
316
- }
317
-
318
- setValue(rawValue);
319
- }
320
- };
321
-
322
- var jumpedTimeout = _react.default.useRef();
323
-
324
- var setJumpedState = function setJumpedState() {
325
- setCurrentState('jumped');
326
- clearTimeout(jumpedTimeout.current);
327
- jumpedTimeout.current = setTimeout(function () {
328
- return setCurrentState('normal');
329
- }, 100);
330
- };
331
-
332
- _react.default.useEffect(function () {
333
- setValue(_value);
334
- }, [_value]);
335
-
336
- _react.default.useEffect(function () {
337
- if (typeof on_init === 'function') {
338
- var obj = {
339
- value: value,
340
- number: null
341
- };
342
-
343
- if (number_format) {
344
- obj.number = formatNumber(value, number_format);
345
- }
346
-
347
- (0, _componentHelper.dispatchCustomElementEvent)(allProps, 'on_init', obj);
348
- }
349
-
350
- return function () {
351
- if (typeof document !== 'undefined') {
352
- try {
353
- document.body.removeEventListener('touchmove', onTouchMoveHandler);
354
- document.body.removeEventListener('touchend', onTouchEndHandler);
355
- document.body.removeEventListener('mousemove', onMouseMoveHandler);
356
- document.body.removeEventListener('mouseup', onMouseUpHandler);
357
- } catch (e) {
358
- (0, _componentHelper.warn)(e);
359
- }
360
- }
361
-
362
- clearTimeout(jumpedTimeout.current);
363
- };
364
- }, []);
365
-
366
- var percent = clamp((value - min) * 100 / (max - min));
367
-
368
- var inlineStyleBefore = _defineProperty({}, "".concat(vertical ? 'height' : 'width'), "".concat(percent, "%"));
369
-
370
- var inlineThumbStyles = _defineProperty({}, "".concat(vertical ? 'top' : 'left'), "".concat(percent, "%"));
371
-
372
- var _ref = number_format ? formatNumber(value, _objectSpread(_objectSpread({}, number_format || {}), {}, {
373
- returnAria: true
374
- })) : {
375
- aria: null
376
- },
377
- humanNumber = _ref.aria;
378
-
379
- var hasHumanNumber = Boolean(humanNumber);
380
- var showStatus = (0, _componentHelper.getStatusState)(status);
381
- var showButtons = !(0, _componentHelper.isTrue)(hide_buttons);
382
- var mainParams = {
383
- className: (0, _classnames.default)("dnb-slider dnb-form-component", (0, _SkeletonHelper.createSkeletonClass)(null, skeleton), (0, _SpacingHelper.createSpacingClasses)(allProps), className, _className, reverse && 'dnb-slider--reverse', vertical && 'dnb-slider--vertical', (0, _componentHelper.isTrue)(stretch) && 'dnb-slider--stretch', label && label_direction && "dnb-slider__label--".concat(label_direction), showStatus && 'dnb-slider__form-status', status && "dnb-slider__status--".concat(status_state))
384
- };
385
- var helperParams = {};
386
- var subtractParams = {};
387
- var addParams = {};
388
- var trackParams = {
389
- className: 'dnb-slider__track' + (currentState ? " dnb-slider__state--".concat(currentState) : ""),
390
- onTouchStart: onClickHandler,
391
- onTouchStartCapture: onMouseDownHandler,
392
- onMouseDown: onClickHandler,
393
- onMouseDownCapture: onMouseDownHandler
394
- };
395
-
396
- var thumbParams = _objectSpread({
397
- title: title,
398
- onBlur: onBlurHandler,
399
- onFocus: onFocusHandler
400
- }, attributes);
401
-
402
- if (label || hasHumanNumber) {
403
- helperParams['aria-labelledby'] = (0, _componentHelper.combineLabelledBy)(helperParams, hasHumanNumber ? id + '-human' : null, label ? id + '-label' : null);
404
- }
405
-
406
- if (showStatus || suffix) {
407
- helperParams['aria-describedby'] = (0, _componentHelper.combineDescribedBy)(helperParams, showStatus ? id + '-status' : null, suffix ? id + '-suffix' : null);
408
- }
409
-
410
- if (typeof thumbParams['aria-hidden'] !== 'undefined') {
411
- helperParams['aria-hidden'] = addParams['aria-hidden'] = subtractParams['aria-hidden'] = thumbParams['aria-hidden'];
412
- }
413
-
414
- (0, _componentHelper.validateDOMAttributes)(allProps, thumbParams);
415
- (0, _componentHelper.validateDOMAttributes)(null, trackParams);
416
- (0, _componentHelper.validateDOMAttributes)(null, helperParams);
417
- (0, _SkeletonHelper.skeletonDOMAttributes)(mainParams, skeleton, context);
418
-
419
- var subtractButton = showButtons && _react.default.createElement(_Button.default, _extends({
420
- className: "dnb-slider__button dnb-slider__button--subtract",
421
- variant: "secondary",
422
- icon: "subtract",
423
- size: "small",
424
- "aria-label": subtract_title === null || subtract_title === void 0 ? void 0 : subtract_title.replace('%s', humanNumber),
425
- on_click: onSubtractClickHandler,
426
- disabled: disabled,
427
- skeleton: skeleton
428
- }, subtractParams));
429
-
430
- var addButton = showButtons && _react.default.createElement(_Button.default, _extends({
431
- className: "dnb-slider__button dnb-slider__button--add",
432
- variant: "secondary",
433
- icon: "add",
434
- size: "small",
435
- "aria-label": add_title === null || add_title === void 0 ? void 0 : add_title.replace('%s', humanNumber),
436
- on_click: onAddClickHandler,
437
- disabled: disabled,
438
- skeleton: skeleton
439
- }, addParams));
440
-
441
- return _react.default.createElement("span", mainParams, label && _react.default.createElement(_FormLabel.default, {
442
- id: id + '-label',
443
- text: label,
444
- disabled: disabled,
445
- skeleton: skeleton,
446
- label_direction: label_direction,
447
- sr_only: label_sr_only
448
- }), _react.default.createElement("span", {
449
- className: "dnb-slider__wrapper"
450
- }, _AlignmentHelper || (_AlignmentHelper = _react.default.createElement(_AlignmentHelper2.default, null)), _react.default.createElement(_FormStatus.default, _extends({
451
- show: showStatus,
452
- id: id + '-form-status',
453
- global_status_id: global_status_id,
454
- label: label,
455
- text_id: id + '-status',
456
- text: status,
457
- status: status_state,
458
- no_animation: status_no_animation,
459
- skeleton: skeleton
460
- }, status_props)), _react.default.createElement("span", {
461
- className: "dnb-slider__inner"
462
- }, showButtons && (reverse ? addButton : subtractButton), _react.default.createElement("span", _extends({
463
- id: id,
464
- ref: trackRef
465
- }, trackParams), _react.default.createElement("span", {
466
- className: "dnb-slider__thumb",
467
- style: inlineThumbStyles
468
- }, _react.default.createElement("input", _extends({
469
- type: "range",
470
- className: "dnb-slider__button-helper",
471
- min: min,
472
- max: max,
473
- step: step,
474
- value: value,
475
- disabled: disabled,
476
- orientation: vertical ? 'vertical' : 'horizontal',
477
- onChange: onRangeChangeHandler
478
- }, helperParams)), _react.default.createElement(_Button.default, _extends({
479
- tabIndex: -1,
480
- "aria-hidden": true,
481
- variant: "secondary",
482
- disabled: disabled,
483
- skeleton: skeleton,
484
- onMouseDown: onMouseDownHandler
485
- }, thumbParams))), _react.default.createElement("span", {
486
- className: "dnb-slider__line dnb-slider__line__before",
487
- style: inlineStyleBefore
488
- }), _span || (_span = _react.default.createElement("span", {
489
- className: "dnb-slider__line dnb-slider__line__after"
490
- })), hasHumanNumber && _react.default.createElement("span", {
491
- id: id + '-human',
492
- className: "dnb-sr-only",
493
- "aria-hidden": true
494
- }, humanNumber)), showButtons && (reverse ? subtractButton : addButton), suffix && _react.default.createElement(_Suffix.default, {
495
- className: "dnb-slider__suffix",
496
- id: id + '-suffix',
497
- context: allProps
498
- }, suffix))));
19
+ return _react.default.createElement(_SliderProvider.SliderProvider, localProps, _SliderInstance || (_SliderInstance = _react.default.createElement(_SliderInstance2.SliderInstance, null)));
499
20
  }
500
21
 
501
- var percentToValue = function percentToValue(percent, min, max) {
502
- if (typeof min === 'string') {
503
- min = parseFloat(min);
504
- }
505
-
506
- if (typeof max === 'string') {
507
- max = parseFloat(max);
508
- }
509
-
510
- return (max - min) * percent / 100 + min;
511
- };
512
-
513
- var roundToStep = function roundToStep(number, step) {
514
- return Math.round(number / step) * step;
515
- };
516
-
517
- var getOffset = function getOffset(node) {
518
- var _ref2 = typeof window !== 'undefined' ? window : {
519
- pageYOffset: 0,
520
- pageXOffset: 0
521
- },
522
- pageYOffset = _ref2.pageYOffset,
523
- pageXOffset = _ref2.pageXOffset;
524
-
525
- var _node$getBoundingClie = node.getBoundingClientRect(),
526
- left = _node$getBoundingClie.left,
527
- top = _node$getBoundingClie.top;
528
-
529
- return {
530
- top: top + pageYOffset,
531
- left: left + pageXOffset
532
- };
533
- };
534
-
535
- var getMousePosition = function getMousePosition(event) {
536
- if (event.changedTouches && event.changedTouches[0]) {
537
- return {
538
- x: event.changedTouches[0].pageX,
539
- y: event.changedTouches[0].pageY
540
- };
541
- }
542
-
543
- return {
544
- x: event.pageX,
545
- y: event.pageY
546
- };
547
- };
548
-
549
- var calculatePercent = function calculatePercent(node, event, isVertical, isReverted) {
550
- var _node$getBoundingClie2 = node.getBoundingClientRect(),
551
- width = _node$getBoundingClie2.width,
552
- height = _node$getBoundingClie2.height;
553
-
554
- var _getOffset = getOffset(node),
555
- top = _getOffset.top,
556
- left = _getOffset.left;
557
-
558
- var _getMousePosition = getMousePosition(event),
559
- x = _getMousePosition.x,
560
- y = _getMousePosition.y;
561
-
562
- var value = isVertical ? y - top : x - left;
563
- var onePercent = (isVertical ? height : width) / 100;
564
- return isReverted ? 100 - clamp(value / onePercent) : clamp(value / onePercent);
565
- };
566
-
567
- var clamp = function clamp(value) {
568
- var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
569
- var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;
570
- return Math.min(Math.max(value, min), max);
571
- };
572
-
573
- var roundValue = function roundValue(value, step) {
574
- return step > 0 ? roundToStep(value, step) : parseFloat(parseFloat(String(value)).toFixed(3));
575
- };
576
-
577
- var createMockDiv = function createMockDiv(_ref3) {
578
- var width = _ref3.width,
579
- height = _ref3.height;
580
- var div = document.createElement('div');
581
-
582
- _extends(div.style, {
583
- width: "".concat(width, "px"),
584
- height: "".concat(height, "px")
585
- });
586
-
587
- div.getBoundingClientRect = function () {
588
- return {
589
- width: width,
590
- height: height,
591
- top: 0,
592
- left: 0,
593
- right: width,
594
- bottom: height
595
- };
596
- };
597
-
598
- return div;
599
- };
600
-
601
- var formatNumber = function formatNumber(value) {
602
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
603
-
604
- if (opts) {
605
- return (0, _NumberUtils.format)(value, opts);
606
- }
607
-
608
- return value;
609
- };
610
-
611
- var _default = (0, _withCamelCaseProps.withCamelCaseProps)(Slider);
612
-
22
+ var _default = Slider;
613
23
  exports.default = _default;
@@ -0,0 +1,23 @@
1
+ import { formatOptionParams, formatValue, formatReturnType } from '../number-format/NumberUtils';
2
+ import type { ValueTypes } from './types';
3
+ export declare const percentToValue: (percent: number, min: number, max: number) => number;
4
+ export declare const roundToStep: (number: number, step: number) => number;
5
+ export declare const getOffset: (node: HTMLElement) => {
6
+ top: number;
7
+ left: number;
8
+ };
9
+ export declare const getMousePosition: (event: MouseEvent & TouchEvent) => {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ export declare const calculatePercent: (node: HTMLElement, event: MouseEvent | TouchEvent, isVertical: boolean, isReverted: boolean) => number;
14
+ export declare const clamp: (value: number, min?: number, max?: number) => number;
15
+ export declare const roundValue: (value: number, step: number) => number;
16
+ export declare const createMockDiv: ({ width, height }: {
17
+ width: any;
18
+ height: any;
19
+ }) => HTMLDivElement;
20
+ export declare const getUpdatedValues: (value: Array<number>, index: number, newValue: number) => ValueTypes;
21
+ export declare const closestIndex: (goal: number, array: Array<number>) => number;
22
+ export declare const formatNumber: (value: formatValue, opts?: formatOptionParams) => formatReturnType;
23
+ export declare const getHumanNumber: (value: number, numberFormat: formatOptionParams) => string;