@dhis2-ui/popper 9.3.0 → 9.4.0-alpha.1

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.
@@ -25,6 +25,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
25
 
26
26
  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); }
27
27
 
28
+ const flipPlacement = placement => {
29
+ if (placement.startsWith('right')) {
30
+ return placement.replace('right', 'left');
31
+ }
32
+
33
+ if (placement.startsWith('left')) {
34
+ return placement.replace('left', 'right');
35
+ }
36
+
37
+ return placement;
38
+ };
39
+
28
40
  const Popper = _ref => {
29
41
  let {
30
42
  children,
@@ -50,7 +62,7 @@ const Popper = _ref => {
50
62
  } = (0, _reactPopper.usePopper)(referenceElement, popperElement, {
51
63
  strategy,
52
64
  onFirstUpdate,
53
- placement,
65
+ placement: document.documentElement.dir === 'rtl' ? flipPlacement(placement) : placement,
54
66
  modifiers: deduplicatedModifiers
55
67
  });
56
68
  return /*#__PURE__*/_react.default.createElement("div", _extends({
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.VirtualElementRef = exports.TopStart = exports.TopEnd = exports.Top = exports.RightStart = exports.RightEnd = exports.Right = exports.LeftStart = exports.LeftEnd = exports.Left = exports.ElementRef = exports.BottomStart = exports.BottomEnd = exports.Bottom = void 0;
6
+ exports.default = exports.VirtualElementRef = exports.TopStart = exports.TopEnd = exports.Top = exports.RightStart = exports.RightEnd = exports.Right = exports.RTL = exports.LeftStart = exports.LeftEnd = exports.Left = exports.ElementRef = exports.BottomStart = exports.BottomEnd = exports.Bottom = void 0;
7
7
 
8
8
  var _uiConstants = require("@dhis2/ui-constants");
9
9
 
@@ -198,4 +198,22 @@ VirtualElementRef.parameters = {
198
198
  type: 'code'
199
199
  }
200
200
  }
201
- };
201
+ };
202
+
203
+ const RTL = args => {
204
+ (0, _react.useEffect)(() => {
205
+ document.documentElement.setAttribute('dir', 'rtl');
206
+ return () => {
207
+ document.documentElement.setAttribute('dir', 'ltr');
208
+ };
209
+ }, []);
210
+ return /*#__PURE__*/_react.default.createElement("div", {
211
+ dir: "rtl"
212
+ }, /*#__PURE__*/_react.default.createElement("span", null, "If dir=rtl, `left` and `right` placement are reversed"), /*#__PURE__*/_react.default.createElement(Template, _extends({}, args, {
213
+ placement: "left"
214
+ })), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(Template, _extends({}, args, {
215
+ placement: "right-start"
216
+ })));
217
+ };
218
+
219
+ exports.RTL = RTL;
@@ -7,6 +7,18 @@ import { usePopper } from 'react-popper';
7
7
  import { getReferenceElement } from './get-reference-element.js';
8
8
  import { deduplicateModifiers } from './modifiers.js';
9
9
 
10
+ const flipPlacement = placement => {
11
+ if (placement.startsWith('right')) {
12
+ return placement.replace('right', 'left');
13
+ }
14
+
15
+ if (placement.startsWith('left')) {
16
+ return placement.replace('left', 'right');
17
+ }
18
+
19
+ return placement;
20
+ };
21
+
10
22
  const Popper = _ref => {
11
23
  let {
12
24
  children,
@@ -32,7 +44,7 @@ const Popper = _ref => {
32
44
  } = usePopper(referenceElement, popperElement, {
33
45
  strategy,
34
46
  onFirstUpdate,
35
- placement,
47
+ placement: document.documentElement.dir === 'rtl' ? flipPlacement(placement) : placement,
36
48
  modifiers: deduplicatedModifiers
37
49
  });
38
50
  return /*#__PURE__*/React.createElement("div", _extends({
@@ -1,7 +1,7 @@
1
1
  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); }
2
2
 
3
3
  import { sharedPropTypes } from '@dhis2/ui-constants';
4
- import React, { useRef } from 'react';
4
+ import React, { useEffect, useRef } from 'react';
5
5
  import { Popper } from './popper.js';
6
6
  const description = "\nA tool for adding additional information or content outside of the document flow, used for example in the Tooltip or Popover components.\n\nSince it's built using [Popper.js](https://popper.js.org/docs/v2/) and [react-popper](https://popper.js.org/react-popper/), some of that functionality can be accessed through the props of this component, like modifiers.\n\n```js\nimport { Popper } from '@dhis2/ui'\n```\n\n_**Note**: Some of the stories may not look right on this page. View those examples in the 'Canvas' tab instead._\n";
7
7
  export default {
@@ -165,4 +165,19 @@ VirtualElementRef.parameters = {
165
165
  type: 'code'
166
166
  }
167
167
  }
168
+ };
169
+ export const RTL = args => {
170
+ useEffect(() => {
171
+ document.documentElement.setAttribute('dir', 'rtl');
172
+ return () => {
173
+ document.documentElement.setAttribute('dir', 'ltr');
174
+ };
175
+ }, []);
176
+ return /*#__PURE__*/React.createElement("div", {
177
+ dir: "rtl"
178
+ }, /*#__PURE__*/React.createElement("span", null, "If dir=rtl, `left` and `right` placement are reversed"), /*#__PURE__*/React.createElement(Template, _extends({}, args, {
179
+ placement: "left"
180
+ })), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(Template, _extends({}, args, {
181
+ placement: "right-start"
182
+ })));
168
183
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2-ui/popper",
3
- "version": "9.3.0",
3
+ "version": "9.4.0-alpha.1",
4
4
  "description": "UI Popper",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@dhis2/prop-types": "^3.1.2",
36
- "@dhis2/ui-constants": "9.3.0",
36
+ "@dhis2/ui-constants": "9.4.0-alpha.1",
37
37
  "@popperjs/core": "^2.10.1",
38
38
  "classnames": "^2.3.1",
39
39
  "prop-types": "^15.7.2",