@rio-cloud/rio-uikit 0.15.0 → 0.16.0-beta-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +46 -3
  2. package/lib/components/actionBarItem/ActionBarItem.js +4 -4
  3. package/lib/components/actionBarItem/ActionBarItemPopoverContent.js +43 -0
  4. package/lib/components/actionBarItem/ActionBarOverlay.js +8 -3
  5. package/lib/components/applicationHeader/AppMenuDropdown.js +9 -13
  6. package/lib/components/applicationLayout/ApplicationLayout.js +7 -9
  7. package/lib/components/applicationLayout/ApplicationLayoutBody.js +5 -3
  8. package/lib/components/assetTree/AssetTree.js +1 -1
  9. package/lib/components/assetTree/Tree.js +2 -2
  10. package/lib/components/assetTree/TreeLeaf.js +9 -9
  11. package/lib/components/bottomSheet/BottomSheet.js +11 -7
  12. package/lib/components/browserWarning/BrowserIcons.js +76 -0
  13. package/lib/components/browserWarning/BrowserWarning.js +4 -4
  14. package/lib/components/browserWarning/BrowserWarningMessageDE.js +20 -22
  15. package/lib/components/browserWarning/BrowserWarningMessageEN.js +20 -22
  16. package/lib/components/carousel/Carousel.js +7 -426
  17. package/lib/components/checkbox/Checkbox.js +4 -4
  18. package/lib/components/datepicker/DatePicker.js +15 -6
  19. package/lib/components/dialog/ConfirmationDialog.js +8 -6
  20. package/lib/components/dialog/SaveDialog.js +3 -1
  21. package/lib/components/dropdown/ButtonDropdown.js +149 -181
  22. package/lib/components/listMenu/ListMenu.js +40 -23
  23. package/lib/components/map/components/features/old/MapSettings.js +5 -5
  24. package/lib/components/map/components/features/old/settings/MapClusterSettings.js +13 -13
  25. package/lib/components/map/components/features/old/settings/MapLayerSettings.js +15 -15
  26. package/lib/components/map/components/features/old/settings/MapTypeSettings.js +20 -20
  27. package/lib/components/map/components/features/settings/ZoomButtons.js +10 -10
  28. package/lib/components/map/components/features/settings/builtinSettings/MapClusterSettings.js +20 -18
  29. package/lib/components/map/components/features/settings/builtinSettings/MapLayerSettings.js +8 -8
  30. package/lib/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +42 -32
  31. package/lib/components/map/components/features/settings/buttons/MapBoundingBoxButton.js +8 -8
  32. package/lib/components/map/components/features/settings/buttons/MapCenterMarkerButton.js +8 -8
  33. package/lib/components/map/components/features/settings/buttons/MapLockMarkerButton.js +8 -8
  34. package/lib/components/map/components/features/settings/items/MapCustomerPoiSettingsItem.js +8 -8
  35. package/lib/components/map/components/features/settings/items/MapLayerIncidentsItem.js +8 -6
  36. package/lib/components/map/components/features/settings/items/MapLayerRoadRestrictionsItem.js +8 -6
  37. package/lib/components/map/components/features/settings/items/MapLayerTrafficItem.js +8 -6
  38. package/lib/components/map/components/features/settings/items/MapWorkshopPoiSettingsItem.js +8 -8
  39. package/lib/components/map/icons/MapIcon.js +500 -0
  40. package/lib/components/numberInput/NumberInput.js +6 -6
  41. package/lib/components/onboarding/OnboardingTip.js +9 -9
  42. package/lib/components/states/NotBookedState.js +2 -2
  43. package/lib/components/table/TableSettingsDialogFooter.js +1 -1
  44. package/lib/components/teaser/Teaser.js +1 -1
  45. package/lib/components/teaser/TeaserContainer.js +8 -8
  46. package/lib/components/tooltip/Tooltip.js +5 -5
  47. package/lib/es/DeviceUtils.d.ts +4 -2
  48. package/lib/es/SortDirection.d.ts +5 -0
  49. package/lib/es/deviceUtils.js +12 -0
  50. package/lib/es/useFullscreen.js +15 -0
  51. package/lib/hooks/useClipboard.js +2 -2
  52. package/lib/hooks/useFullscreen.js +244 -0
  53. package/lib/style/css/_exports/man-uikit.less +7 -5
  54. package/lib/style/css/_exports/rio-buyButton.less +30 -41
  55. package/lib/style/css/_exports/rio-uikit-core.less +106 -127
  56. package/lib/style/css/_exports/rio-uikit-print-utilities.less +6 -11
  57. package/lib/style/css/_exports/rio-uikit-responsive-utilities.less +6 -11
  58. package/lib/style/css/_exports/rio-uikit.less +5 -4
  59. package/lib/style/css/_exports/rio-website.less +49 -13
  60. package/lib/style/css/_exports/vw-uikit.less +10 -8
  61. package/lib/style/css/animations/_imports.less +9 -0
  62. package/lib/style/css/animations/collapse.less +16 -0
  63. package/lib/style/css/animations/fade.less +28 -0
  64. package/lib/style/css/animations/pinging.less +7 -0
  65. package/lib/style/css/animations/rotate.less +52 -0
  66. package/lib/style/css/animations/scale.less +35 -0
  67. package/lib/style/css/animations/slide.less +39 -0
  68. package/lib/style/css/animations/spinning.less +4 -0
  69. package/lib/style/css/animations/transition.less +129 -0
  70. package/lib/style/css/animations/translate.less +28 -0
  71. package/lib/style/css/bootstrap/dropdowns.less +10 -3
  72. package/lib/style/css/bootstrap/forms.less +38 -36
  73. package/lib/style/css/bootstrap/input-groups.less +4 -0
  74. package/lib/style/css/bootstrap/mixins/forms.less +1 -1
  75. package/lib/style/css/components/Activity.less +93 -0
  76. package/lib/style/css/components/ApplicationHeader.less +438 -0
  77. package/lib/style/css/components/ApplicationLayout.less +236 -0
  78. package/lib/style/css/components/AssetTree.less +443 -0
  79. package/lib/style/css/components/AutoSuggest.less +22 -0
  80. package/lib/style/css/components/BottomSheet.less +14 -0
  81. package/lib/style/css/components/Carousel.less +212 -0
  82. package/lib/style/css/components/Checkbox.less +224 -0
  83. package/lib/style/css/components/ClearableInput.less +115 -0
  84. package/lib/style/css/components/Counter.less +142 -0
  85. package/lib/style/css/components/DataTabs.less +100 -0
  86. package/lib/style/css/components/DatePicker.less +391 -0
  87. package/lib/style/css/components/Dialog.less +482 -0
  88. package/lib/style/css/components/Dropdown.less +186 -0
  89. package/lib/style/css/components/Expander.less +196 -0
  90. package/lib/style/css/components/FilePicker.less +8 -0
  91. package/lib/style/css/components/ListMenu.less +77 -0
  92. package/lib/style/css/components/MapHere.less +91 -0
  93. package/lib/style/css/components/MapMarker.less +347 -0
  94. package/lib/style/css/components/MapSettings.less +140 -0
  95. package/lib/style/css/components/NoData.less +8 -0
  96. package/lib/style/css/components/Notification.less +234 -0
  97. package/lib/style/css/components/RadioButton.less +173 -0
  98. package/lib/style/css/components/Resizer.less +43 -0
  99. package/lib/style/css/components/Select.less +272 -0
  100. package/lib/style/css/components/Sidebar.less +157 -0
  101. package/lib/style/css/components/Slider.less +278 -0
  102. package/lib/style/css/components/Spinner.less +49 -0
  103. package/lib/style/css/components/StatsWidget.less +111 -0
  104. package/lib/style/css/components/SteppedProgressBar.less +323 -0
  105. package/lib/style/css/components/SupportMarker.less +34 -0
  106. package/lib/style/css/components/Switch.less +145 -0
  107. package/lib/style/css/components/TableSettingsDialog.less +96 -0
  108. package/lib/style/css/components/TableSortArrows.less +54 -0
  109. package/lib/style/css/components/TableToolbar.less +121 -0
  110. package/lib/style/css/components/Tag.less +246 -0
  111. package/lib/style/css/components/TagManager.less +4 -0
  112. package/lib/style/css/components/Teaser.less +12 -0
  113. package/lib/style/css/components/Timeline.less +69 -0
  114. package/lib/style/css/components/Tooltip.less +261 -0
  115. package/lib/style/css/design/alerts.less +55 -0
  116. package/lib/style/css/design/aspect-ratio.less +23 -0
  117. package/lib/style/css/design/badges.less +120 -0
  118. package/lib/style/css/design/blockquote.less +49 -0
  119. package/lib/style/css/design/border.less +192 -0
  120. package/lib/style/css/design/breadcrumbs.less +20 -0
  121. package/lib/style/css/design/button-groups.less +194 -0
  122. package/lib/style/css/design/buttons.less +540 -0
  123. package/lib/style/css/design/callouts.less +27 -0
  124. package/lib/style/css/design/caret.less +28 -0
  125. package/lib/style/css/design/close.less +12 -0
  126. package/lib/style/css/design/code.less +45 -0
  127. package/lib/style/css/design/colors.less +202 -0
  128. package/lib/style/css/design/cols.less +56 -0
  129. package/lib/style/css/design/container.less +29 -0
  130. package/lib/style/css/design/cursors.less +19 -0
  131. package/lib/style/css/design/custom.less +20 -0
  132. package/lib/style/css/design/ellipsis.less +46 -0
  133. package/lib/style/css/design/flexgrid.less +7 -0
  134. package/lib/style/css/design/fonts.less +318 -0
  135. package/lib/style/css/design/form-input-groups.less +245 -0
  136. package/lib/style/css/design/form-inputs.less +655 -0
  137. package/lib/style/css/design/iframe.less +80 -0
  138. package/lib/style/css/design/images.less +47 -0
  139. package/lib/style/css/design/labels.less +66 -0
  140. package/lib/style/css/design/list-group.less +95 -0
  141. package/lib/style/css/design/navs.less +254 -0
  142. package/lib/style/css/design/normalize.less +436 -0
  143. package/lib/style/css/design/opacity.less +26 -0
  144. package/lib/style/css/design/overflow.less +1 -0
  145. package/lib/style/css/design/pagination.less +161 -0
  146. package/lib/style/css/design/panels.less +105 -0
  147. package/lib/style/css/design/popovers.less +117 -0
  148. package/lib/style/css/design/position.less +16 -0
  149. package/lib/style/css/design/progress-bars.less +131 -0
  150. package/lib/style/css/design/responsive/_imports.less +68 -0
  151. package/lib/style/css/design/responsive/backgrounds.less +32 -0
  152. package/lib/style/css/design/responsive/display.less +9 -0
  153. package/lib/style/css/design/responsive/flexgrid.less +75 -0
  154. package/lib/style/css/design/responsive/floating.less +4 -0
  155. package/lib/style/css/design/responsive/gap.less +41 -0
  156. package/lib/style/css/design/responsive/hyphens.less +14 -0
  157. package/lib/style/css/design/responsive/margin.less +127 -0
  158. package/lib/style/css/design/responsive/overflow.less +16 -0
  159. package/lib/style/css/design/responsive/padding.less +71 -0
  160. package/lib/style/css/design/responsive/position.less +102 -0
  161. package/lib/style/css/design/responsive/sizing.less +115 -0
  162. package/lib/style/css/design/responsive/text.less +71 -0
  163. package/lib/style/css/design/responsive/visibility.less +115 -0
  164. package/lib/style/css/design/responsive-embed.less +31 -0
  165. package/lib/style/css/design/responsive-video.less +22 -0
  166. package/lib/style/css/design/rioglyph.less +24 -0
  167. package/lib/style/css/design/rounded.less +44 -0
  168. package/lib/style/css/design/shadows.less +65 -0
  169. package/lib/style/css/design/tables.less +854 -0
  170. package/lib/style/css/design/text.less +201 -0
  171. package/lib/style/css/design/theme.less +200 -0
  172. package/lib/style/css/design/thumbnails.less +29 -0
  173. package/lib/style/css/design/transition.less +33 -0
  174. package/lib/style/css/design/type.less +159 -0
  175. package/lib/style/css/design/utilities.less +75 -0
  176. package/lib/style/css/design/visibilty.less +38 -0
  177. package/lib/style/css/design/wells.less +17 -0
  178. package/lib/style/css/design/z-index.less +21 -0
  179. package/lib/style/css/mapping/breakpoint-map.less +44 -0
  180. package/lib/style/css/mapping/color-map.less +200 -0
  181. package/lib/style/css/mapping/cols-map.less +15 -0
  182. package/lib/style/css/mapping/numbers-map.less +16 -0
  183. package/lib/style/css/mapping/positions-map.less +21 -0
  184. package/lib/style/css/mapping/sizes-map.less +129 -0
  185. package/lib/style/css/mapping/spacings-map.less +28 -0
  186. package/lib/style/css/mixins/_mixins.less +13 -0
  187. package/lib/style/css/mixins/alerts.less +13 -0
  188. package/lib/style/css/mixins/border-radius.less +16 -0
  189. package/lib/style/css/mixins/buttons.less +117 -0
  190. package/lib/style/css/mixins/clearfix.less +9 -0
  191. package/lib/style/css/mixins/cols.less +59 -0
  192. package/lib/style/css/mixins/forms.less +61 -0
  193. package/lib/style/css/mixins/panels.less +27 -0
  194. package/lib/style/css/mixins/placeholder.less +17 -0
  195. package/lib/style/css/mixins/reset.less +27 -0
  196. package/lib/style/css/mixins/sizings.less +21 -0
  197. package/lib/style/css/mixins/spinner.less +30 -0
  198. package/lib/style/css/mixins/table.less +26 -0
  199. package/lib/style/css/mixins/tabs.less +4 -0
  200. package/lib/style/css/mixins/text.less +5 -0
  201. package/lib/style/css/print/print.less +1 -4
  202. package/lib/style/css/rio-theme/alerts.less +23 -61
  203. package/lib/style/css/rio-theme/badges.less +16 -28
  204. package/lib/style/css/rio-theme/blockquote.less +14 -97
  205. package/lib/style/css/rio-theme/dropdowns.less +2 -2
  206. package/lib/style/css/rio-theme/forms.less +49 -20
  207. package/lib/style/css/rio-theme/input-groups.less +44 -25
  208. package/lib/style/css/rio-theme/mixins/alerts.less +13 -1
  209. package/lib/style/css/rio-theme/variables.less +1 -0
  210. package/lib/style/css/shared/colors.json +1 -1
  211. package/lib/style/css/shared/colors.less +11 -8
  212. package/lib/style/css/shared/text.less +6 -5
  213. package/lib/style/css/utils/responsive/grid.less +15 -6
  214. package/lib/style/css/utils/rounded.less +1 -0
  215. package/lib/style/css/variables.less +179 -0
  216. package/lib/style/fonts/rioglyph/rioglyph.less +1 -11
  217. package/lib/types.ts +42 -59
  218. package/lib/utils/buttonEffect.js +11 -4
  219. package/lib/utils/deviceUtils.js +28 -33
  220. package/lib/utils/init.js +174 -0
  221. package/lib/version.json +1 -1
  222. package/package.json +61 -34
@@ -7,33 +7,31 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = Container;
10
+ exports.default = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
 
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
16
+ var _react = _interopRequireWildcard(require("react"));
19
17
 
20
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
18
+ var _reactDom = _interopRequireDefault(require("react-dom"));
21
19
 
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
22
+ var _reactPopper = require("react-popper");
25
23
 
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
24
+ var _classnames = _interopRequireDefault(require("classnames"));
27
25
 
28
- var _react = _interopRequireWildcard(require("react"));
26
+ var _isNil = _interopRequireDefault(require("lodash/fp/isNil"));
29
27
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
28
+ var _noop = _interopRequireDefault(require("lodash/fp/noop"));
31
29
 
32
- var _classnames = _interopRequireDefault(require("classnames"));
30
+ var _logDeprecatedWarnings = _interopRequireDefault(require("../../utils/logDeprecatedWarnings"));
33
31
 
34
- var _reactOnclickoutside = _interopRequireDefault(require("react-onclickoutside"));
32
+ var _portalRoot = require("../../utils/portalRoot");
35
33
 
36
- var _isNil = _interopRequireDefault(require("lodash/fp/isNil"));
34
+ var _useClickOutside = _interopRequireDefault(require("../../hooks/useClickOutside"));
37
35
 
38
36
  var _getMenuItems = _interopRequireDefault(require("../menuItems/getMenuItems"));
39
37
 
@@ -41,8 +39,6 @@ var _MenuItems = _interopRequireDefault(require("../menuItems/MenuItems"));
41
39
 
42
40
  var _menuItemsPropTypes = _interopRequireDefault(require("./menuItemsPropTypes"));
43
41
 
44
- var _getDropDirection = _interopRequireDefault(require("../../utils/getDropDirection"));
45
-
46
42
  var _DropdownToggleButton = _interopRequireDefault(require("./DropdownToggleButton"));
47
43
 
48
44
  var _SplitCaretButton = _interopRequireDefault(require("./SplitCaretButton"));
@@ -53,170 +49,145 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
53
49
 
54
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
55
51
 
56
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
57
-
58
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
59
-
60
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
52
+ var getPlacement = function getPlacement(pullRight, dropup) {
53
+ if (pullRight && dropup) {
54
+ return 'top-end';
55
+ }
61
56
 
62
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
+ if (!pullRight && dropup) {
58
+ return 'top-start';
59
+ }
63
60
 
64
- var ButtonDropdown = /*#__PURE__*/function (_PureComponent) {
65
- (0, _inherits2.default)(ButtonDropdown, _PureComponent);
61
+ if (pullRight && !dropup) {
62
+ return 'bottom-end';
63
+ }
66
64
 
67
- var _super = _createSuper(ButtonDropdown);
65
+ return 'bottom-start';
66
+ };
68
67
 
69
- function ButtonDropdown(props) {
70
- var _this;
68
+ var ButtonDropdown = function ButtonDropdown(props) {
69
+ var id = props.id,
70
+ items = props.items,
71
+ bsSize = props.bsSize,
72
+ bsStyle = props.bsStyle,
73
+ disabled = props.disabled,
74
+ iconOnly = props.iconOnly,
75
+ title = props.title,
76
+ splitButton = props.splitButton,
77
+ customDropdown = props.customDropdown,
78
+ toggleClassName = props.toggleClassName,
79
+ dropdownClassName = props.dropdownClassName,
80
+ className = props.className,
81
+ open = props.open,
82
+ dropup = props.dropup,
83
+ pullRight = props.pullRight,
84
+ noCaret = props.noCaret,
85
+ onOpen = props.onOpen,
86
+ onClose = props.onClose,
87
+ onLabelButtonClick = props.onLabelButtonClick,
88
+ usePortal = props.usePortal,
89
+ popperConfig = props.popperConfig;
90
+
91
+ var _useState = (0, _react.useState)(open),
92
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
93
+ internalOpen = _useState2[0],
94
+ setInternalOpen = _useState2[1];
95
+
96
+ var _React$useState = _react.default.useState(null),
97
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
98
+ refDropdownToggle = _React$useState2[0],
99
+ setRefDropdownToggle = _React$useState2[1];
100
+
101
+ var _React$useState3 = _react.default.useState(null),
102
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
103
+ refDropdownMenu = _React$useState4[0],
104
+ setRefDropdownMenu = _React$useState4[1];
105
+
106
+ var defaultPopperConfig = {
107
+ placement: getPlacement(pullRight, dropup),
108
+ modifiers: []
109
+ };
110
+
111
+ var _usePopper = (0, _reactPopper.usePopper)(refDropdownToggle, refDropdownMenu, popperConfig || defaultPopperConfig),
112
+ styles = _usePopper.styles,
113
+ attributes = _usePopper.attributes;
114
+
115
+ var wrapperRef = (0, _useClickOutside.default)(function () {
116
+ return closeMenu();
117
+ });
118
+ var dropdownRoot = (0, _portalRoot.getOrCreatePortalRoot)();
119
+ var isUncontrolled = (0, _isNil.default)(open);
120
+ var shouldShowCaret = !noCaret && !splitButton && !iconOnly;
121
+ (0, _react.useEffect)(function () {
122
+ if (!isUncontrolled) {
123
+ // console.log('update open from outside: ' + open);
124
+ setInternalOpen(open);
125
+ }
126
+ }, [isUncontrolled, open]);
71
127
 
72
- (0, _classCallCheck2.default)(this, ButtonDropdown);
73
- _this = _super.call(this, props);
74
- _this.isUncontrolled = (0, _isNil.default)(props.open);
75
- _this.state = {
76
- open: _this.isUncontrolled && props.open,
77
- dropup: props.dropup,
78
- pullRight: props.pullRight
79
- };
80
- _this.toggleOpen = _this.toggleOpen.bind((0, _assertThisInitialized2.default)(_this));
81
- _this.handleSplitLabelButtonClick = _this.handleSplitLabelButtonClick.bind((0, _assertThisInitialized2.default)(_this));
82
- _this.refDropdownMenu = /*#__PURE__*/_react.default.createRef();
83
- _this.refDropdownToggle = /*#__PURE__*/_react.default.createRef();
84
- return _this;
85
- }
128
+ var toggleOpen = function toggleOpen(event) {
129
+ var isOpen = isUncontrolled ? internalOpen : open;
86
130
 
87
- (0, _createClass2.default)(ButtonDropdown, [{
88
- key: "isAutoDropActive",
89
- value: function isAutoDropActive() {
90
- return !(!this.props.autoDropDirection || this.props.dropup || this.props.pullRight);
91
- }
92
- }, {
93
- key: "toggleOpen",
94
- value: function toggleOpen(event) {
95
- var _ref = this.isUncontrolled ? this.state : this.props,
96
- open = _ref.open;
97
-
98
- if (open) {
99
- this.closeMenu();
100
- } else {
101
- this.openMenu(event);
102
- }
103
- }
104
- }, {
105
- key: "openMenu",
106
- value: function openMenu(event) {
107
- var toggleNode = this.refDropdownToggle.current;
108
- var menuNode = this.refDropdownMenu.current;
109
- var dropDirection = this.isAutoDropActive() ? (0, _getDropDirection.default)(toggleNode, menuNode) : {};
110
-
111
- if (this.isUncontrolled) {
112
- this.setState(_objectSpread({
113
- open: true
114
- }, dropDirection));
115
- } else {
116
- this.setState(_objectSpread({}, dropDirection));
117
- }
118
-
119
- this.props.enableOnClickOutside();
120
- this.props.onOpen(event);
121
- }
122
- }, {
123
- key: "closeMenu",
124
- value: function closeMenu() {
125
- if (this.isUncontrolled) {
126
- this.setState({
127
- open: false
128
- });
129
- }
130
-
131
- this.props.disableOnClickOutside();
132
- this.props.onClose();
133
- }
134
- }, {
135
- key: "handleClickOutside",
136
- value: function handleClickOutside() {
137
- this.closeMenu();
138
- }
139
- }, {
140
- key: "handleSplitLabelButtonClick",
141
- value: function handleSplitLabelButtonClick() {
142
- this.closeMenu();
143
-
144
- if (this.props.onLabelButtonClick) {
145
- this.props.onLabelButtonClick();
146
- }
147
- }
148
- }, {
149
- key: "isDropUp",
150
- value: function isDropUp() {
151
- return this.isAutoDropActive() ? this.state.dropup : this.props.dropup;
131
+ if (isOpen) {
132
+ closeMenu();
133
+ } else {
134
+ openMenu(event);
152
135
  }
153
- }, {
154
- key: "isPullRight",
155
- value: function isPullRight() {
156
- return this.isAutoDropActive() ? this.state.pullRight : this.props.pullRight;
157
- }
158
- }, {
159
- key: "shouldShowCaret",
160
- value: function shouldShowCaret() {
161
- var _this$props = this.props,
162
- iconOnly = _this$props.iconOnly,
163
- noCaret = _this$props.noCaret,
164
- splitButton = _this$props.splitButton;
165
- return !noCaret && !splitButton && !iconOnly;
166
- }
167
- }, {
168
- key: "isOpen",
169
- value: function isOpen() {
170
- var _ref2 = this.isUncontrolled ? this.state : this.props,
171
- open = _ref2.open;
136
+ };
172
137
 
173
- return open;
138
+ var openMenu = function openMenu(event) {
139
+ if (isUncontrolled) {
140
+ setInternalOpen(true);
174
141
  }
175
- }, {
176
- key: "render",
177
- value: function render() {
178
- var _this$props2 = this.props,
179
- id = _this$props2.id,
180
- items = _this$props2.items,
181
- bsSize = _this$props2.bsSize,
182
- bsStyle = _this$props2.bsStyle,
183
- disabled = _this$props2.disabled,
184
- iconOnly = _this$props2.iconOnly,
185
- title = _this$props2.title,
186
- splitButton = _this$props2.splitButton,
187
- customDropdown = _this$props2.customDropdown,
188
- toggleClassName = _this$props2.toggleClassName,
189
- dropdownClassName = _this$props2.dropdownClassName,
190
- className = _this$props2.className;
191
- var wrapperClasses = (0, _classnames.default)('dropdown', 'btn-group', this.isOpen() && 'open', this.isDropUp() && 'dropup', className);
192
- var handleDropdownButtonClick = splitButton ? this.handleSplitLabelButtonClick : this.toggleOpen;
193
- return /*#__PURE__*/_react.default.createElement("div", {
194
- className: wrapperClasses
195
- }, /*#__PURE__*/_react.default.createElement(_DropdownToggleButton.default, {
196
- id: id,
197
- splitButton: splitButton,
198
- bsStyle: bsStyle,
199
- bsSize: bsSize,
200
- iconOnly: iconOnly,
201
- disabled: disabled,
202
- ref: this.refDropdownToggle,
203
- onClick: handleDropdownButtonClick,
204
- className: toggleClassName
205
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, title, this.shouldShowCaret() && /*#__PURE__*/_react.default.createElement(_Caret.default, null))), splitButton && /*#__PURE__*/_react.default.createElement(_SplitCaretButton.default, {
206
- id: id,
207
- bsStyle: bsStyle,
208
- disabled: disabled,
209
- className: toggleClassName,
210
- onClick: this.toggleOpen
211
- }), /*#__PURE__*/_react.default.createElement(_MenuItems.default, {
212
- className: dropdownClassName,
213
- pullRight: this.isPullRight(),
214
- ref: this.refDropdownMenu
215
- }, customDropdown ? customDropdown : (0, _getMenuItems.default)(items, this.toggleOpen)));
142
+
143
+ onOpen(event);
144
+ };
145
+
146
+ var closeMenu = function closeMenu() {
147
+ if (isUncontrolled) {
148
+ setInternalOpen(false);
216
149
  }
217
- }]);
218
- return ButtonDropdown;
219
- }(_react.PureComponent);
150
+
151
+ onClose();
152
+ };
153
+
154
+ var handleSplitLabelButtonClick = function handleSplitLabelButtonClick() {
155
+ closeMenu();
156
+ onLabelButtonClick();
157
+ };
158
+
159
+ var handleDropdownButtonClick = splitButton ? handleSplitLabelButtonClick : toggleOpen;
160
+ var isOpen = isUncontrolled ? internalOpen : open;
161
+ var wrapperClasses = (0, _classnames.default)('dropdown', 'btn-group', isOpen && 'open', className);
162
+ var dropdownClasses = (0, _classnames.default)(usePortal && 'dropdown-portal', dropdownClassName);
163
+
164
+ var dropdownMenu = /*#__PURE__*/_react.default.createElement(_MenuItems.default, (0, _extends2.default)({
165
+ className: dropdownClasses,
166
+ ref: setRefDropdownMenu,
167
+ style: styles.popper
168
+ }, attributes.popper), customDropdown ? customDropdown : (0, _getMenuItems.default)(items, toggleOpen));
169
+
170
+ return /*#__PURE__*/_react.default.createElement("div", {
171
+ className: wrapperClasses,
172
+ ref: wrapperRef
173
+ }, /*#__PURE__*/_react.default.createElement(_DropdownToggleButton.default, {
174
+ id: id,
175
+ splitButton: splitButton,
176
+ bsStyle: bsStyle,
177
+ bsSize: bsSize,
178
+ iconOnly: iconOnly,
179
+ disabled: disabled,
180
+ ref: setRefDropdownToggle,
181
+ onClick: handleDropdownButtonClick,
182
+ className: toggleClassName
183
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, title, shouldShowCaret && /*#__PURE__*/_react.default.createElement(_Caret.default, null))), splitButton && /*#__PURE__*/_react.default.createElement(_SplitCaretButton.default, {
184
+ id: id,
185
+ bsStyle: bsStyle,
186
+ disabled: disabled,
187
+ className: toggleClassName,
188
+ onClick: toggleOpen
189
+ }), isOpen && usePortal && /*#__PURE__*/_reactDom.default.createPortal(dropdownMenu, dropdownRoot), isOpen && !usePortal && dropdownMenu);
190
+ };
220
191
 
221
192
  ButtonDropdown.defaultProps = {
222
193
  id: Math.random().toString(36).substr(2, 16),
@@ -226,12 +197,13 @@ ButtonDropdown.defaultProps = {
226
197
  pullRight: false,
227
198
  splitButton: false,
228
199
  dropup: false,
229
- autoDropDirection: true,
230
200
  bsStyle: 'default',
231
201
  disabled: false,
232
- onOpen: function onOpen() {},
233
- onClose: function onClose() {},
202
+ onOpen: _noop.default,
203
+ onClose: _noop.default,
204
+ onLabelButtonClick: _noop.default,
234
205
  toggleClassName: '',
206
+ usePortal: false,
235
207
  className: ''
236
208
  };
237
209
  ButtonDropdown.propTypes = {
@@ -245,7 +217,7 @@ ButtonDropdown.propTypes = {
245
217
  iconOnly: _propTypes.default.bool,
246
218
  noCaret: _propTypes.default.bool,
247
219
  splitButton: _propTypes.default.bool,
248
- autoDropDirection: _propTypes.default.bool,
220
+ usePortal: _propTypes.default.bool,
249
221
  items: _menuItemsPropTypes.default.isRequired,
250
222
  disabled: _propTypes.default.bool,
251
223
  className: _propTypes.default.string,
@@ -253,15 +225,11 @@ ButtonDropdown.propTypes = {
253
225
  toggleClassName: _propTypes.default.string,
254
226
  onLabelButtonClick: _propTypes.default.func,
255
227
  customDropdown: _propTypes.default.node,
228
+ popperConfig: _propTypes.default.object,
256
229
  enableOnClickOutside: _propTypes.default.func,
257
230
  disableOnClickOutside: _propTypes.default.func,
258
231
  onOpen: _propTypes.default.func,
259
232
  onClose: _propTypes.default.func
260
233
  };
261
- var EnhancedComponent = (0, _reactOnclickoutside.default)(ButtonDropdown);
262
-
263
- function Container(props) {
264
- return /*#__PURE__*/_react.default.createElement(EnhancedComponent, (0, _extends2.default)({}, props, {
265
- disableOnClickOutside: true
266
- }));
267
- }
234
+ var _default = ButtonDropdown;
235
+ exports.default = _default;
@@ -9,8 +9,12 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
12
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
14
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
19
 
16
20
  var _react = _interopRequireWildcard(require("react"));
@@ -29,6 +33,8 @@ var _ClearableInput = _interopRequireDefault(require("../clearableInput/Clearabl
29
33
 
30
34
  var _ExpanderPanel = _interopRequireDefault(require("../expander/ExpanderPanel"));
31
35
 
36
+ var _excluded = ["menuItems", "focusFilter", "enableFilter", "filterPlaceholder", "notFoundMessage", "className", "groupClassName", "responsive", "autoClose", "filterKey"];
37
+
32
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
39
 
34
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -42,11 +48,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
42
48
  var RESIZE_THROTTELING = 10;
43
49
  var MOBILE_MAX_WIDTH = 580;
44
50
 
45
- var filterMenuItems = function filterMenuItems(items, value) {
51
+ var filterMenuItems = function filterMenuItems(items, value, filterKey) {
46
52
  return items.map(function (menuGroupItem) {
47
53
  var groupItems = menuGroupItem.navItems;
48
54
  var navItems = groupItems.filter(function (item) {
49
- return item.key.toLowerCase().includes(value.toLowerCase());
55
+ var _item$filterKey;
56
+
57
+ return (_item$filterKey = item[filterKey]) === null || _item$filterKey === void 0 ? void 0 : _item$filterKey.toLowerCase().includes(value.toLowerCase());
50
58
  });
51
59
  return _objectSpread(_objectSpread({}, menuGroupItem), {}, {
52
60
  navItems: navItems
@@ -65,7 +73,7 @@ var ListMenuHeader = function ListMenuHeader(_ref) {
65
73
  }
66
74
 
67
75
  return /*#__PURE__*/_react.default.createElement("li", {
68
- className: 'ListMenuHeader'
76
+ className: "ListMenuHeader"
69
77
  }, groupNavItem ? groupNavItem : /*#__PURE__*/_react.default.createElement("span", {
70
78
  className: className
71
79
  }, group));
@@ -73,9 +81,12 @@ var ListMenuHeader = function ListMenuHeader(_ref) {
73
81
 
74
82
  var ListMenuItem = function ListMenuItem(_ref2) {
75
83
  var disabled = _ref2.disabled,
84
+ _ref2$isSubItem = _ref2.isSubItem,
85
+ isSubItem = _ref2$isSubItem === void 0 ? false : _ref2$isSubItem,
76
86
  children = _ref2.children;
87
+ var classes = (0, _classnames.default)(disabled && 'disabled', isSubItem && 'subitem');
77
88
  return /*#__PURE__*/_react.default.createElement("li", {
78
- className: disabled ? 'disabled' : ''
89
+ className: classes
79
90
  }, children);
80
91
  };
81
92
 
@@ -92,7 +103,8 @@ var ListMenuGroup = function ListMenuGroup(_ref3) {
92
103
  }, /*#__PURE__*/_react.default.createElement(ListMenuHeader, menuGroup), menuGroup.navItems.map(function (item) {
93
104
  return /*#__PURE__*/_react.default.createElement(ListMenuItem, {
94
105
  key: item.key,
95
- disabled: item.disabled
106
+ disabled: item.disabled,
107
+ isSubItem: item.isSubItem
96
108
  }, item.item);
97
109
  }));
98
110
  };
@@ -100,7 +112,7 @@ var ListMenuGroup = function ListMenuGroup(_ref3) {
100
112
  var NotFoundMessage = function NotFoundMessage(_ref4) {
101
113
  var notFoundMessage = _ref4.notFoundMessage;
102
114
  return /*#__PURE__*/_react.default.createElement("div", {
103
- className: 'padding-top-25 text-center text-color-gray'
115
+ className: "padding-top-25 text-center text-color-gray"
104
116
  }, notFoundMessage);
105
117
  };
106
118
 
@@ -113,7 +125,9 @@ var ListMenu = function ListMenu(props) {
113
125
  className = props.className,
114
126
  groupClassName = props.groupClassName,
115
127
  responsive = props.responsive,
116
- autoClose = props.autoClose;
128
+ autoClose = props.autoClose,
129
+ filterKey = props.filterKey,
130
+ remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
117
131
 
118
132
  var _useState = (0, _react.useState)(''),
119
133
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -145,9 +159,9 @@ var ListMenu = function ListMenu(props) {
145
159
  activeElement = _listRef$current$getE2[0];
146
160
 
147
161
  setMobileHeader( /*#__PURE__*/_react.default.createElement("div", {
148
- className: 'display-flex align-items-center'
162
+ className: "display-flex align-items-center"
149
163
  }, /*#__PURE__*/_react.default.createElement("span", {
150
- className: 'rioglyph rioglyph-menu-hamburger margin-right-10'
164
+ className: "rioglyph rioglyph-menu-hamburger margin-right-10"
151
165
  }), /*#__PURE__*/_react.default.createElement("span", null, activeElement && activeElement.innerText)));
152
166
  }
153
167
  };
@@ -201,27 +215,27 @@ var ListMenu = function ListMenu(props) {
201
215
  });
202
216
  };
203
217
 
204
- var filteredMenuItems = filterMenuItems(menuItems, filterValue);
218
+ var filteredMenuItems = filterMenuItems(menuItems, filterValue, filterKey);
205
219
 
206
220
  var handleExpanderBodyClick = function handleExpanderBodyClick(event) {
207
221
  var isListItem = event.target.parentElement.tagName.toLowerCase() === 'li';
208
222
  autoClose && isListItem && setIsExpanderOpen(false);
209
223
  };
210
224
 
211
- var formClassNames = (0, _classnames.default)('from-group', 'padding-left-15', 'padding-right-15', 'padding-bottom-15', 'position-sticky', 'top-0');
225
+ var formClassNames = (0, _classnames.default)('form-group margin-bottom-5', 'padding-left-15', 'padding-right-15', 'padding-bottom-15', 'position-sticky', 'top-0');
212
226
 
213
- var listMenu = /*#__PURE__*/_react.default.createElement("div", {
227
+ var listMenu = /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, remainingProps, {
214
228
  className: "ListMenu ".concat(className),
215
229
  ref: listRef
216
- }, enableFilter && /*#__PURE__*/_react.default.createElement("div", {
230
+ }), enableFilter && /*#__PURE__*/_react.default.createElement("div", {
217
231
  className: formClassNames
218
232
  }, /*#__PURE__*/_react.default.createElement("div", {
219
- className: 'input-group width-100pct'
233
+ className: "input-group width-100pct"
220
234
  }, /*#__PURE__*/_react.default.createElement("span", {
221
- className: 'input-group-addon'
235
+ className: "input-group-addon"
222
236
  }, /*#__PURE__*/_react.default.createElement("span", {
223
- className: 'rioglyph rioglyph-search',
224
- "aria-hidden": 'true'
237
+ className: "rioglyph rioglyph-search",
238
+ "aria-hidden": "true"
225
239
  })), /*#__PURE__*/_react.default.createElement(_ClearableInput.default, {
226
240
  value: filterValue,
227
241
  inputRef: inputRef,
@@ -232,23 +246,23 @@ var ListMenu = function ListMenu(props) {
232
246
  notFoundMessage: notFoundMessage
233
247
  }), filteredMenuItems.map(function (menuGroup, index) {
234
248
  return /*#__PURE__*/_react.default.createElement(ListMenuGroup, {
249
+ key: index,
235
250
  className: groupClassName,
236
- menuGroup: menuGroup,
237
- key: index
251
+ menuGroup: menuGroup
238
252
  });
239
253
  }));
240
254
 
241
255
  if (responsive && isMobileMode) {
242
256
  return /*#__PURE__*/_react.default.createElement(_ExpanderPanel.default, {
243
257
  title: mobileHeader,
244
- bsStyle: 'default',
258
+ bsStyle: "default",
245
259
  open: isExpanderOpen,
246
260
  onToggle: function onToggle() {
247
261
  return setIsExpanderOpen(!isExpanderOpen);
248
262
  },
249
263
  mountOnEnter: false,
250
264
  unmountOnExit: false,
251
- className: 'shadow-default'
265
+ className: "shadow-default"
252
266
  }, /*#__PURE__*/_react.default.createElement("div", {
253
267
  onClick: handleExpanderBodyClick
254
268
  }, listMenu));
@@ -264,7 +278,8 @@ ListMenu.defaultProps = {
264
278
  className: '',
265
279
  groupClassName: '',
266
280
  responsive: true,
267
- autoClose: true
281
+ autoClose: true,
282
+ filterKey: 'key'
268
283
  };
269
284
  ListMenu.propTypes = {
270
285
  menuItems: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -274,10 +289,12 @@ ListMenu.propTypes = {
274
289
  key: _propTypes.default.string.isRequired,
275
290
  item: _propTypes.default.node.isRequired,
276
291
  disabled: _propTypes.default.bool
277
- })).isRequired
292
+ })).isRequired,
293
+ isSubItem: _propTypes.default.bool
278
294
  })).isRequired,
279
295
  enableFilter: _propTypes.default.bool,
280
296
  focusFilter: _propTypes.default.bool,
297
+ filterKey: _propTypes.default.string,
281
298
  filterPlaceholder: _propTypes.default.string,
282
299
  notFoundMessage: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
283
300
  groupClassName: _propTypes.default.string,
@@ -29,9 +29,9 @@ var _isString = _interopRequireDefault(require("lodash/fp/isString"));
29
29
 
30
30
  var _map = _interopRequireDefault(require("lodash/fp/map"));
31
31
 
32
- var _icon_map_settings_active = _interopRequireDefault(require("./assets/icon_map_settings_active.svg"));
32
+ var _icon_map_settings_active = require("./assets/icon_map_settings_active.svg");
33
33
 
34
- var _icon_map_settings_inactive = _interopRequireDefault(require("./assets/icon_map_settings_inactive.svg"));
34
+ var _icon_map_settings_inactive = require("./assets/icon_map_settings_inactive.svg");
35
35
 
36
36
  var _MapTypeSettings = _interopRequireDefault(require("./settings/MapTypeSettings"));
37
37
 
@@ -90,12 +90,12 @@ var MapSettings = /*#__PURE__*/function (_React$Component) {
90
90
 
91
91
  var getMapSettingsTile = function getMapSettingsTile() {
92
92
  var mapSettingsTile = /*#__PURE__*/_react.default.createElement("div", {
93
- className: 'MapSettingsTile MapSettingsToggle bg-white padding-5 shadow-smooth cursor-pointer',
93
+ className: "MapSettingsTile MapSettingsToggle bg-white padding-5 shadow-smooth cursor-pointer",
94
94
  onClick: _this2.handleToggleSettingsMenu,
95
95
  title: (0, _isString.default)(mapSettingsTooltip) ? mapSettingsTooltip : null
96
- }, /*#__PURE__*/_react.default.createElement(_icon_map_settings_active.default, {
96
+ }, /*#__PURE__*/_react.default.createElement(_icon_map_settings_active.ReactComponent, {
97
97
  className: mapSettingsIconClasses
98
- }), /*#__PURE__*/_react.default.createElement(_icon_map_settings_inactive.default, {
98
+ }), /*#__PURE__*/_react.default.createElement(_icon_map_settings_inactive.ReactComponent, {
99
99
  className: mapSettingsIconInactiveClasses
100
100
  }));
101
101