@artsy/palette 37.2.0 → 37.2.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.
- package/dist/elements/Popover/Popover.story.d.ts +10 -0
- package/dist/elements/Popover/Popover.story.js +59 -10
- package/dist/elements/Popover/Popover.story.js.map +1 -1
- package/dist/utils/usePosition.d.ts +14 -3
- package/dist/utils/usePosition.js +133 -71
- package/dist/utils/usePosition.js.map +1 -1
- package/package.json +2 -2
|
@@ -22,5 +22,15 @@ export declare const Placement: {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
+
export declare const InternalScrollContainer: {
|
|
26
|
+
(): JSX.Element;
|
|
27
|
+
story: {
|
|
28
|
+
parameters: {
|
|
29
|
+
chromatic: {
|
|
30
|
+
disable: boolean;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
25
35
|
export declare const ManageFocus: () => JSX.Element;
|
|
26
36
|
export declare const PopoverActions: () => JSX.Element;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.PopoverActions = exports.Placement = exports.ManageFocus = exports.Default = void 0;
|
|
6
|
+
exports.default = exports.PopoverActions = exports.Placement = exports.ManageFocus = exports.InternalScrollContainer = exports.Default = void 0;
|
|
7
7
|
var _addonActions = require("@storybook/addon-actions");
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _storybookStates = require("storybook-states");
|
|
@@ -14,6 +14,7 @@ var _Flex = require("../Flex");
|
|
|
14
14
|
var _Spacer = require("../Spacer");
|
|
15
15
|
var _Text = require("../Text");
|
|
16
16
|
var _Popover = require("./Popover");
|
|
17
|
+
var _Pill = require("../Pill");
|
|
17
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
19
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
19
20
|
var CONTENT = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.";
|
|
@@ -123,6 +124,54 @@ Placement.story = {
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
};
|
|
127
|
+
var ExamplePopover = function ExamplePopover(_ref3) {
|
|
128
|
+
var children = _ref3.children;
|
|
129
|
+
return /*#__PURE__*/_react.default.createElement(_Popover.Popover, {
|
|
130
|
+
popover: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
131
|
+
variant: "xs",
|
|
132
|
+
fontWeight: "bold"
|
|
133
|
+
}, "New filters"), /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
134
|
+
variant: "xs"
|
|
135
|
+
}, "Choose artist and alert criteria to accurately narrow your results.")),
|
|
136
|
+
width: 250,
|
|
137
|
+
variant: "defaultDark",
|
|
138
|
+
pointer: true,
|
|
139
|
+
visible: true,
|
|
140
|
+
ignoreClickOutside: true,
|
|
141
|
+
manageFocus: false
|
|
142
|
+
}, function (_ref4) {
|
|
143
|
+
var anchorRef = _ref4.anchorRef;
|
|
144
|
+
return /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
145
|
+
ref: anchorRef,
|
|
146
|
+
m: "auto"
|
|
147
|
+
}, children);
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
ExamplePopover.displayName = "ExamplePopover";
|
|
151
|
+
var InternalScrollContainer = function InternalScrollContainer() {
|
|
152
|
+
return /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
153
|
+
overflow: "auto",
|
|
154
|
+
height: "100%"
|
|
155
|
+
}, /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
156
|
+
height: "300vh",
|
|
157
|
+
border: "1px dotted",
|
|
158
|
+
borderColor: "black60",
|
|
159
|
+
p: 2
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
161
|
+
y: 12
|
|
162
|
+
}), /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
163
|
+
textAlign: "center"
|
|
164
|
+
}, /*#__PURE__*/_react.default.createElement(ExamplePopover, null, /*#__PURE__*/_react.default.createElement(_Pill.Pill, null, "Popover should remain anchored to this element")))));
|
|
165
|
+
};
|
|
166
|
+
exports.InternalScrollContainer = InternalScrollContainer;
|
|
167
|
+
InternalScrollContainer.displayName = "InternalScrollContainer";
|
|
168
|
+
InternalScrollContainer.story = {
|
|
169
|
+
parameters: {
|
|
170
|
+
chromatic: {
|
|
171
|
+
disable: true
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
126
175
|
var ManageFocus = function ManageFocus() {
|
|
127
176
|
return /*#__PURE__*/_react.default.createElement(_storybookStates.States, {
|
|
128
177
|
states: [{
|
|
@@ -138,9 +187,9 @@ var ManageFocus = function ManageFocus() {
|
|
|
138
187
|
variant: "xs",
|
|
139
188
|
width: 300
|
|
140
189
|
}, CONTENT)
|
|
141
|
-
}, function (
|
|
142
|
-
var onVisible =
|
|
143
|
-
anchorRef =
|
|
190
|
+
}, function (_ref5) {
|
|
191
|
+
var onVisible = _ref5.onVisible,
|
|
192
|
+
anchorRef = _ref5.anchorRef;
|
|
144
193
|
return /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
145
194
|
textAlign: "center"
|
|
146
195
|
}, /*#__PURE__*/_react.default.createElement(_Button.Button, {
|
|
@@ -160,9 +209,9 @@ var PopoverActions = function PopoverActions() {
|
|
|
160
209
|
}]
|
|
161
210
|
}, /*#__PURE__*/_react.default.createElement(_Popover.Popover, {
|
|
162
211
|
placement: "bottom",
|
|
163
|
-
popover: function popover(
|
|
164
|
-
var onHide =
|
|
165
|
-
onDismiss =
|
|
212
|
+
popover: function popover(_ref6) {
|
|
213
|
+
var onHide = _ref6.onHide,
|
|
214
|
+
onDismiss = _ref6.onDismiss;
|
|
166
215
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
167
216
|
variant: "xs",
|
|
168
217
|
width: 300
|
|
@@ -182,9 +231,9 @@ var PopoverActions = function PopoverActions() {
|
|
|
182
231
|
onClick: onDismiss
|
|
183
232
|
}, "Dismiss")));
|
|
184
233
|
}
|
|
185
|
-
}, function (
|
|
186
|
-
var onVisible =
|
|
187
|
-
anchorRef =
|
|
234
|
+
}, function (_ref7) {
|
|
235
|
+
var onVisible = _ref7.onVisible,
|
|
236
|
+
anchorRef = _ref7.anchorRef;
|
|
188
237
|
return /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
189
238
|
textAlign: "center"
|
|
190
239
|
}, /*#__PURE__*/_react.default.createElement(_Button.Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.story.js","names":["_addonActions","require","_react","_interopRequireDefault","_storybookStates","_utils","_Box","_Button","_Flex","_Spacer","_Text","_Popover","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","CONTENT","_default","title","exports","Default","createElement","States","states","visible","onClose","action","onDismiss","popover","Text","variant","width","pointer","p","Fragment","Array","fill","map","_","overflowEllipsis","bg","px","py","placement","zIndex","ignoreClickOutside","Popover","_ref","onVisible","anchorRef","Box","textAlign","Button","ref","size","onClick","displayName","story","parameters","chromatic","disable","Placement","keys","POSITION","props","JSON","stringify","_ref2","maxWidth","mx","ManageFocus","manageFocus","_ref3","PopoverActions","_ref4","onHide","Spacer","y","Flex","flex","x","_ref5"],"sources":["../../../src/elements/Popover/Popover.story.tsx"],"sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Flex } from \"../Flex\"\nimport { Spacer } from \"../Spacer\"\nimport { Text } from \"../Text\"\nimport { Popover, PopoverProps } from \"./Popover\"\n\nconst CONTENT =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.\"\n\nexport default {\n title: \"Components/Popover\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n {},\n { visible: true },\n { onClose: action(\"onClose\"), onDismiss: action(\"onDismiss\") },\n {\n visible: true,\n popover: (\n <Text variant=\"xs\" width={300}>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | — (Content interaction with close button.)\n </Text>\n ),\n },\n {\n pointer: true,\n visible: true,\n p: 0,\n popover: (\n <>\n {new Array(4).fill(0).map((_, i) => (\n <Text\n key={i}\n variant=\"sm-display\"\n overflowEllipsis\n bg=\"red10\"\n px={1}\n py={0.5}\n >\n Example Item\n </Text>\n ))}\n </>\n ),\n },\n {\n variant: \"defaultDark\",\n placement: \"bottom\",\n visible: true,\n pointer: true,\n zIndex: 99,\n },\n {\n ignoreClickOutside: true,\n },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const Placement = () => {\n return (\n <States<Partial<PopoverProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n {(props) => {\n return (\n <Popover\n popover={<Text variant=\"xs\">{JSON.stringify(props)}</Text>}\n visible\n variant=\"defaultDark\"\n pointer\n {...props}\n >\n {({ anchorRef }) => {\n return (\n <Text\n ref={anchorRef as any}\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black10\"\n >\n {JSON.stringify(props)}\n </Text>\n )\n }}\n </Popover>\n )\n }}\n </States>\n )\n}\n\nPlacement.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ManageFocus = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n { visible: true, manageFocus: false },\n { visible: true, manageFocus: true },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nexport const PopoverActions = () => {\n return (\n <States<Partial<PopoverProps>> states={[{ visible: true }]}>\n <Popover\n placement=\"bottom\"\n popover={({ onHide, onDismiss }) => {\n return (\n <>\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n\n <Spacer y={2} />\n\n <Flex>\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onHide}\n >\n Hide\n </Button>\n\n <Spacer x={1} />\n\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onDismiss}\n >\n Dismiss\n </Button>\n </Flex>\n </>\n )\n }}\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popover.story.js","names":["_addonActions","require","_react","_interopRequireDefault","_storybookStates","_utils","_Box","_Button","_Flex","_Spacer","_Text","_Popover","_Pill","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","CONTENT","_default","title","exports","Default","createElement","States","states","visible","onClose","action","onDismiss","popover","Text","variant","width","pointer","p","Fragment","Array","fill","map","_","overflowEllipsis","bg","px","py","placement","zIndex","ignoreClickOutside","Popover","_ref","onVisible","anchorRef","Box","textAlign","Button","ref","size","onClick","displayName","story","parameters","chromatic","disable","Placement","keys","POSITION","props","JSON","stringify","_ref2","maxWidth","mx","ExamplePopover","_ref3","children","fontWeight","manageFocus","_ref4","m","InternalScrollContainer","overflow","height","border","borderColor","Spacer","y","Pill","ManageFocus","_ref5","PopoverActions","_ref6","onHide","Flex","flex","x","_ref7"],"sources":["../../../src/elements/Popover/Popover.story.tsx"],"sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Flex } from \"../Flex\"\nimport { Spacer } from \"../Spacer\"\nimport { Text } from \"../Text\"\nimport { Popover, PopoverProps } from \"./Popover\"\nimport { Pill } from \"../Pill\"\n\nconst CONTENT =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.\"\n\nexport default {\n title: \"Components/Popover\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n {},\n { visible: true },\n { onClose: action(\"onClose\"), onDismiss: action(\"onDismiss\") },\n {\n visible: true,\n popover: (\n <Text variant=\"xs\" width={300}>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | — (Content interaction with close button.)\n </Text>\n ),\n },\n {\n pointer: true,\n visible: true,\n p: 0,\n popover: (\n <>\n {new Array(4).fill(0).map((_, i) => (\n <Text\n key={i}\n variant=\"sm-display\"\n overflowEllipsis\n bg=\"red10\"\n px={1}\n py={0.5}\n >\n Example Item\n </Text>\n ))}\n </>\n ),\n },\n {\n variant: \"defaultDark\",\n placement: \"bottom\",\n visible: true,\n pointer: true,\n zIndex: 99,\n },\n {\n ignoreClickOutside: true,\n },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const Placement = () => {\n return (\n <States<Partial<PopoverProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n {(props) => {\n return (\n <Popover\n popover={<Text variant=\"xs\">{JSON.stringify(props)}</Text>}\n visible\n variant=\"defaultDark\"\n pointer\n {...props}\n >\n {({ anchorRef }) => {\n return (\n <Text\n ref={anchorRef as any}\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black10\"\n >\n {JSON.stringify(props)}\n </Text>\n )\n }}\n </Popover>\n )\n }}\n </States>\n )\n}\n\nPlacement.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nconst ExamplePopover: React.FC = ({ children }) => {\n return (\n <Popover\n popover={\n <>\n <Text variant=\"xs\" fontWeight=\"bold\">\n New filters\n </Text>\n <Text variant=\"xs\">\n Choose artist and alert criteria to accurately narrow your results.\n </Text>\n </>\n }\n width={250}\n variant=\"defaultDark\"\n pointer\n visible\n ignoreClickOutside\n manageFocus={false}\n >\n {({ anchorRef }) => {\n return (\n <Box ref={anchorRef as any} m=\"auto\">\n {children}\n </Box>\n )\n }}\n </Popover>\n )\n}\n\nexport const InternalScrollContainer = () => {\n return (\n <Box overflow=\"auto\" height=\"100%\">\n <Box height=\"300vh\" border=\"1px dotted\" borderColor=\"black60\" p={2}>\n <Spacer y={12} />\n\n <Box textAlign=\"center\">\n <ExamplePopover>\n <Pill>Popover should remain anchored to this element</Pill>\n </ExamplePopover>\n </Box>\n </Box>\n </Box>\n )\n}\n\nInternalScrollContainer.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ManageFocus = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n { visible: true, manageFocus: false },\n { visible: true, manageFocus: true },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nexport const PopoverActions = () => {\n return (\n <States<Partial<PopoverProps>> states={[{ visible: true }]}>\n <Popover\n placement=\"bottom\"\n popover={({ onHide, onDismiss }) => {\n return (\n <>\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n\n <Spacer y={2} />\n\n <Flex>\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onHide}\n >\n Hide\n </Button>\n\n <Spacer x={1} />\n\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onDismiss}\n >\n Dismiss\n </Button>\n </Flex>\n </>\n )\n }}\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AAA8B,SAAAE,uBAAAU,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAE9B,IAAMQ,OAAO,GACX,sNAAsN;AAAA,IAAAC,QAAA,GAEzM;EACbC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAlB,OAAA,GAAAgB,QAAA;AAEM,IAAMG,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;EAC3B,oBACEhC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC/B,gBAAA,CAAAgC,MAAM;IACLC,MAAM,EAAE,CACN,CAAC,CAAC,EACF;MAAEC,OAAO,EAAE;IAAK,CAAC,EACjB;MAAEC,OAAO,EAAE,IAAAC,oBAAM,EAAC,SAAS,CAAC;MAAEC,SAAS,EAAE,IAAAD,oBAAM,EAAC,WAAW;IAAE,CAAC,EAC9D;MACEF,OAAO,EAAE,IAAI;MACbI,OAAO,eACLxC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;QAACC,OAAO,EAAC,IAAI;QAACC,KAAK,EAAE;MAAI,GAAC,mcAQ/B;IAEJ,CAAC,EACD;MACEC,OAAO,EAAE,IAAI;MACbR,OAAO,EAAE,IAAI;MACbS,CAAC,EAAE,CAAC;MACJL,OAAO,eACLxC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAAjC,MAAA,CAAAa,OAAA,CAAAiC,QAAA,QACG,IAAIC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAE/B,CAAC;QAAA,oBAC7BnB,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;UACHlB,GAAG,EAAEJ,CAAE;UACPuB,OAAO,EAAC,YAAY;UACpBS,gBAAgB;UAChBC,EAAE,EAAC,OAAO;UACVC,EAAE,EAAE,CAAE;UACNC,EAAE,EAAE;QAAI,GACT,cAED,CAAO;MAAA,CACR,CAAC;IAGR,CAAC,EACD;MACEZ,OAAO,EAAE,aAAa;MACtBa,SAAS,EAAE,QAAQ;MACnBnB,OAAO,EAAE,IAAI;MACbQ,OAAO,EAAE,IAAI;MACbY,MAAM,EAAE;IACV,CAAC,EACD;MACEC,kBAAkB,EAAE;IACtB,CAAC;EACD,gBAEFzD,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACxB,QAAA,CAAAiD,OAAO;IACNH,SAAS,EAAC,QAAQ;IAClBf,OAAO,eACLxC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;MAACC,OAAO,EAAC,IAAI;MAACC,KAAK,EAAE;IAAI,GAC3Bf,OAAO;EAEX,GAEA,UAAA+B,IAAA,EAA8B;IAAA,IAA3BC,SAAS,GAAAD,IAAA,CAATC,SAAS;MAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACtB,oBACE7D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;MAACC,SAAS,EAAC;IAAQ,gBACrB/D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC5B,OAAA,CAAA2D,MAAM;MACLC,GAAG,EAAEJ,SAAU;MACfnB,OAAO,EAAC,gBAAgB;MACxBwB,IAAI,EAAC,OAAO;MACZC,OAAO,EAAEP;IAAU,GACpB,0BAED,CAAS,CACL;EAEV,CAAC,CACO,CACH;AAEb,CAAC;AAAA7B,OAAA,CAAAC,OAAA,GAAAA,OAAA;AA/EYA,OAAO,CAAAoC,WAAA;AAiFpBpC,OAAO,CAACqC,KAAK,GAAG;EACdC,UAAU,EAAE;IAAEC,SAAS,EAAE;MAAEC,OAAO,EAAE;IAAK;EAAE;AAC7C,CAAC;AAEM,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,oBACEzE,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC/B,gBAAA,CAAAgC,MAAM;IACLC,MAAM,EAAEpB,MAAM,CAAC2D,IAAI,CAACC,eAAQ,CAAC,CAAC1B,GAAG,CAAC,UAACM,SAAS;MAAA,OAAM;QAChDA,SAAS,EAAEA;MACb,CAAC;IAAA,CAAC;EAAE,GAEH,UAACqB,KAAK,EAAK;IACV,oBACE5E,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACxB,QAAA,CAAAiD,OAAO,EAAA5C,QAAA;MACN0B,OAAO,eAAExC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;QAACC,OAAO,EAAC;MAAI,GAAEmC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC,CAAS;MAC3DxC,OAAO;MACPM,OAAO,EAAC,aAAa;MACrBE,OAAO;IAAA,GACHgC,KAAK,GAER,UAAAG,KAAA,EAAmB;MAAA,IAAhBlB,SAAS,GAAAkB,KAAA,CAATlB,SAAS;MACX,oBACE7D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;QACHwB,GAAG,EAAEJ,SAAiB;QACtBnB,OAAO,EAAC,IAAI;QACZqB,SAAS,EAAC,QAAQ;QAClBlB,CAAC,EAAE,CAAE;QACLmC,QAAQ,EAAC,KAAK;QACdC,EAAE,EAAC,MAAM;QACT7B,EAAE,EAAC;MAAS,GAEXyB,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC,CACjB;IAEX,CAAC,CACO;EAEd,CAAC,CACM;AAEb,CAAC;AAAA7C,OAAA,CAAA0C,SAAA,GAAAA,SAAA;AApCYA,SAAS,CAAAL,WAAA;AAsCtBK,SAAS,CAACJ,KAAK,GAAG;EAChBC,UAAU,EAAE;IAAEC,SAAS,EAAE;MAAEC,OAAO,EAAE;IAAK;EAAE;AAC7C,CAAC;AAED,IAAMU,cAAwB,GAAG,SAA3BA,cAAwBA,CAAAC,KAAA,EAAqB;EAAA,IAAfC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;EAC1C,oBACEpF,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACxB,QAAA,CAAAiD,OAAO;IACNlB,OAAO,eACLxC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAAjC,MAAA,CAAAa,OAAA,CAAAiC,QAAA,qBACE9C,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;MAACC,OAAO,EAAC,IAAI;MAAC2C,UAAU,EAAC;IAAM,GAAC,aAErC,CAAO,eACPrF,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;MAACC,OAAO,EAAC;IAAI,GAAC,qEAEnB,CAAO,CAEV;IACDC,KAAK,EAAE,GAAI;IACXD,OAAO,EAAC,aAAa;IACrBE,OAAO;IACPR,OAAO;IACPqB,kBAAkB;IAClB6B,WAAW,EAAE;EAAM,GAElB,UAAAC,KAAA,EAAmB;IAAA,IAAhB1B,SAAS,GAAA0B,KAAA,CAAT1B,SAAS;IACX,oBACE7D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;MAACG,GAAG,EAAEJ,SAAiB;MAAC2B,CAAC,EAAC;IAAM,GACjCJ,QAAQ,CACL;EAEV,CAAC,CACO;AAEd,CAAC;AA7BKF,cAAwB,CAAAd,WAAA;AA+BvB,IAAMqB,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EAC3C,oBACEzF,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;IAAC4B,QAAQ,EAAC,MAAM;IAACC,MAAM,EAAC;EAAM,gBAChC3F,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;IAAC6B,MAAM,EAAC,OAAO;IAACC,MAAM,EAAC,YAAY;IAACC,WAAW,EAAC,SAAS;IAAChD,CAAC,EAAE;EAAE,gBACjE7C,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC1B,OAAA,CAAAuF,MAAM;IAACC,CAAC,EAAE;EAAG,EAAG,eAEjB/F,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;IAACC,SAAS,EAAC;EAAQ,gBACrB/D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACiD,cAAc,qBACblF,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACvB,KAAA,CAAAsF,IAAI,QAAC,gDAA8C,CAAO,CAC5C,CACb,CACF,CACF;AAEV,CAAC;AAAAjE,OAAA,CAAA0D,uBAAA,GAAAA,uBAAA;AAdYA,uBAAuB,CAAArB,WAAA;AAgBpCqB,uBAAuB,CAACpB,KAAK,GAAG;EAC9BC,UAAU,EAAE;IAAEC,SAAS,EAAE;MAAEC,OAAO,EAAE;IAAK;EAAE;AAC7C,CAAC;AAEM,IAAMyB,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC/B,oBACEjG,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC/B,gBAAA,CAAAgC,MAAM;IACLC,MAAM,EAAE,CACN;MAAEC,OAAO,EAAE,IAAI;MAAEkD,WAAW,EAAE;IAAM,CAAC,EACrC;MAAElD,OAAO,EAAE,IAAI;MAAEkD,WAAW,EAAE;IAAK,CAAC;EACpC,gBAEFtF,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACxB,QAAA,CAAAiD,OAAO;IACNH,SAAS,EAAC,QAAQ;IAClBf,OAAO,eACLxC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;MAACC,OAAO,EAAC,IAAI;MAACC,KAAK,EAAE;IAAI,GAC3Bf,OAAO;EAEX,GAEA,UAAAsE,KAAA,EAA8B;IAAA,IAA3BtC,SAAS,GAAAsC,KAAA,CAATtC,SAAS;MAAEC,SAAS,GAAAqC,KAAA,CAATrC,SAAS;IACtB,oBACE7D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;MAACC,SAAS,EAAC;IAAQ,gBACrB/D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC5B,OAAA,CAAA2D,MAAM;MACLC,GAAG,EAAEJ,SAAU;MACfnB,OAAO,EAAC,gBAAgB;MACxBwB,IAAI,EAAC,OAAO;MACZC,OAAO,EAAEP;IAAU,GACpB,0BAED,CAAS,CACL;EAEV,CAAC,CACO,CACH;AAEb,CAAC;AAAA7B,OAAA,CAAAkE,WAAA,GAAAA,WAAA;AAjCYA,WAAW,CAAA7B,WAAA;AAmCjB,IAAM+B,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;EAClC,oBACEnG,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC/B,gBAAA,CAAAgC,MAAM;IAAwBC,MAAM,EAAE,CAAC;MAAEC,OAAO,EAAE;IAAK,CAAC;EAAE,gBACzDpC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACxB,QAAA,CAAAiD,OAAO;IACNH,SAAS,EAAC,QAAQ;IAClBf,OAAO,EAAE,SAAAA,QAAA4D,KAAA,EAA2B;MAAA,IAAxBC,MAAM,GAAAD,KAAA,CAANC,MAAM;QAAE9D,SAAS,GAAA6D,KAAA,CAAT7D,SAAS;MAC3B,oBACEvC,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAAjC,MAAA,CAAAa,OAAA,CAAAiC,QAAA,qBACE9C,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAACzB,KAAA,CAAAiC,IAAI;QAACC,OAAO,EAAC,IAAI;QAACC,KAAK,EAAE;MAAI,GAC3Bf,OAAO,CACH,eAEP5B,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC1B,OAAA,CAAAuF,MAAM;QAACC,CAAC,EAAE;MAAE,EAAG,eAEhB/F,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC3B,KAAA,CAAAgG,IAAI,qBACHtG,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC5B,OAAA,CAAA2D,MAAM;QACLuC,IAAI,EAAE,CAAE;QACRrC,IAAI,EAAC,OAAO;QACZxB,OAAO,EAAC,gBAAgB;QACxByB,OAAO,EAAEkC;MAAO,GACjB,MAED,CAAS,eAETrG,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC1B,OAAA,CAAAuF,MAAM;QAACU,CAAC,EAAE;MAAE,EAAG,eAEhBxG,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC5B,OAAA,CAAA2D,MAAM;QACLuC,IAAI,EAAE,CAAE;QACRrC,IAAI,EAAC,OAAO;QACZxB,OAAO,EAAC,gBAAgB;QACxByB,OAAO,EAAE5B;MAAU,GACpB,SAED,CAAS,CACJ,CACN;IAEP;EAAE,GAED,UAAAkE,KAAA,EAA8B;IAAA,IAA3B7C,SAAS,GAAA6C,KAAA,CAAT7C,SAAS;MAAEC,SAAS,GAAA4C,KAAA,CAAT5C,SAAS;IACtB,oBACE7D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC7B,IAAA,CAAA0D,GAAG;MAACC,SAAS,EAAC;IAAQ,gBACrB/D,MAAA,CAAAa,OAAA,CAAAoB,aAAA,CAAC5B,OAAA,CAAA2D,MAAM;MACLC,GAAG,EAAEJ,SAAU;MACfnB,OAAO,EAAC,gBAAgB;MACxBwB,IAAI,EAAC,OAAO;MACZC,OAAO,EAAEP;IAAU,GACpB,0BAED,CAAS,CACL;EAEV,CAAC,CACO,CACH;AAEb,CAAC;AAAA7B,OAAA,CAAAoE,cAAA,GAAAA,cAAA;AAxDYA,cAAc,CAAA/B,WAAA"}
|
|
@@ -48,16 +48,15 @@ interface PlaceTooltip {
|
|
|
48
48
|
tooltip: HTMLElement;
|
|
49
49
|
position: Position;
|
|
50
50
|
offset?: number;
|
|
51
|
-
boundaryRect?: DOMRect;
|
|
52
51
|
flip?: boolean;
|
|
53
52
|
clamp?: boolean;
|
|
53
|
+
scrollableParents: Array<HTMLElement | Document>;
|
|
54
54
|
}
|
|
55
|
-
export declare const placeTooltip: ({ anchor, tooltip, position, offset,
|
|
55
|
+
export declare const placeTooltip: ({ anchor, tooltip, position, offset, flip, clamp, scrollableParents, }: PlaceTooltip) => {
|
|
56
56
|
isFlipped: boolean;
|
|
57
57
|
};
|
|
58
58
|
export declare const getPosition: (elementRect: Pick<DOMRect, "width" | "height" | "top" | "right" | "bottom" | "left">, tooltipRect: Pick<DOMRect, "width" | "height">, position: Position) => TargetPosition;
|
|
59
59
|
export declare const translateWithOffset: (targetPosition: TargetPosition, position: Position, offset: number) => string;
|
|
60
|
-
export declare const getDocumentBoundingRect: () => DOMRect;
|
|
61
60
|
interface ShouldFlip {
|
|
62
61
|
targetPosition: TargetPosition;
|
|
63
62
|
position: Position;
|
|
@@ -65,4 +64,16 @@ interface ShouldFlip {
|
|
|
65
64
|
tooltipRect: Pick<DOMRect, "width" | "height">;
|
|
66
65
|
}
|
|
67
66
|
export declare const shouldFlip: ({ targetPosition, position, boundaryRect, tooltipRect, }: ShouldFlip) => boolean;
|
|
67
|
+
export declare const getDocumentBoundingRect: () => {
|
|
68
|
+
top: number;
|
|
69
|
+
left: number;
|
|
70
|
+
right: number;
|
|
71
|
+
bottom: number;
|
|
72
|
+
width: number;
|
|
73
|
+
height: number;
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
toJSON: () => null;
|
|
77
|
+
};
|
|
78
|
+
export declare const getBoundingRect: (element: HTMLElement | Document) => DOMRect;
|
|
68
79
|
export {};
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.POSITION = void 0;
|
|
6
|
+
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.getBoundingRect = exports.POSITION = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useMutationObserver = require("./useMutationObserver");
|
|
9
9
|
var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
|
|
10
10
|
var _useResizeObserver = require("./useResizeObserver");
|
|
11
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
11
12
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
13
|
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."); }
|
|
13
14
|
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); }
|
|
@@ -59,13 +60,15 @@ var usePosition = function usePosition(_ref) {
|
|
|
59
60
|
if (!tooltipRef.current || !anchorRef.current) return;
|
|
60
61
|
var tooltip = tooltipRef.current;
|
|
61
62
|
var anchor = anchorRef.current;
|
|
63
|
+
var scrollableParents = getScrollableParents(anchor);
|
|
62
64
|
setState(placeTooltip({
|
|
63
65
|
anchor: anchor,
|
|
64
66
|
tooltip: tooltip,
|
|
65
67
|
position: position,
|
|
66
68
|
offset: offset,
|
|
67
69
|
flip: flip,
|
|
68
|
-
clamp: clamp
|
|
70
|
+
clamp: clamp,
|
|
71
|
+
scrollableParents: scrollableParents
|
|
69
72
|
}));
|
|
70
73
|
};
|
|
71
74
|
|
|
@@ -92,43 +95,54 @@ var usePosition = function usePosition(_ref) {
|
|
|
92
95
|
tooltip.style.position = "fixed";
|
|
93
96
|
tooltip.style.top = "0";
|
|
94
97
|
tooltip.style.left = "0";
|
|
95
|
-
var
|
|
98
|
+
var handle = function handle() {
|
|
96
99
|
setState(placeTooltip({
|
|
97
100
|
anchor: anchor,
|
|
98
101
|
tooltip: tooltip,
|
|
99
102
|
position: position,
|
|
100
103
|
offset: offset,
|
|
101
104
|
flip: flip,
|
|
102
|
-
clamp: clamp
|
|
105
|
+
clamp: clamp,
|
|
106
|
+
scrollableParents: scrollableParents
|
|
103
107
|
}));
|
|
104
108
|
};
|
|
105
|
-
|
|
106
|
-
|
|
109
|
+
var scrollableParents = getScrollableParents(anchor);
|
|
110
|
+
var handlers = scrollableParents.map(function (scrollableParent) {
|
|
111
|
+
return {
|
|
112
|
+
scrollableParent: scrollableParent,
|
|
113
|
+
handlerScroll: function handlerScroll() {
|
|
114
|
+
setState(placeTooltip({
|
|
115
|
+
anchor: anchor,
|
|
116
|
+
tooltip: tooltip,
|
|
117
|
+
position: position,
|
|
118
|
+
offset: offset,
|
|
119
|
+
flip: flip,
|
|
120
|
+
clamp: clamp,
|
|
121
|
+
scrollableParents: scrollableParents
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
};
|
|
107
125
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}));
|
|
117
|
-
};
|
|
118
|
-
window.addEventListener("resize", handleResize, {
|
|
126
|
+
handlers.forEach(function (_ref2) {
|
|
127
|
+
var scrollableParent = _ref2.scrollableParent,
|
|
128
|
+
handlerScroll = _ref2.handlerScroll;
|
|
129
|
+
scrollableParent.addEventListener("scroll", handlerScroll, {
|
|
130
|
+
passive: true
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
window.addEventListener("resize", handle, {
|
|
119
134
|
passive: true
|
|
120
135
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
position: position,
|
|
125
|
-
offset: offset,
|
|
126
|
-
flip: flip,
|
|
127
|
-
clamp: clamp
|
|
128
|
-
}));
|
|
136
|
+
|
|
137
|
+
// Initialize
|
|
138
|
+
handle();
|
|
129
139
|
return function () {
|
|
130
|
-
|
|
131
|
-
|
|
140
|
+
window.removeEventListener("resize", handle);
|
|
141
|
+
handlers.forEach(function (_ref3) {
|
|
142
|
+
var scrollableParent = _ref3.scrollableParent,
|
|
143
|
+
handlerScroll = _ref3.handlerScroll;
|
|
144
|
+
scrollableParent.removeEventListener("scroll", handlerScroll);
|
|
145
|
+
});
|
|
132
146
|
};
|
|
133
147
|
}, [active, tooltipRef, anchorRef, position]);
|
|
134
148
|
return {
|
|
@@ -140,28 +154,29 @@ var usePosition = function usePosition(_ref) {
|
|
|
140
154
|
};
|
|
141
155
|
};
|
|
142
156
|
exports.usePosition = usePosition;
|
|
143
|
-
var placeTooltip = function placeTooltip(
|
|
144
|
-
var anchor =
|
|
145
|
-
tooltip =
|
|
146
|
-
position =
|
|
147
|
-
|
|
148
|
-
offset =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp;
|
|
157
|
+
var placeTooltip = function placeTooltip(_ref4) {
|
|
158
|
+
var anchor = _ref4.anchor,
|
|
159
|
+
tooltip = _ref4.tooltip,
|
|
160
|
+
position = _ref4.position,
|
|
161
|
+
_ref4$offset = _ref4.offset,
|
|
162
|
+
offset = _ref4$offset === void 0 ? 0 : _ref4$offset,
|
|
163
|
+
_ref4$flip = _ref4.flip,
|
|
164
|
+
flip = _ref4$flip === void 0 ? true : _ref4$flip,
|
|
165
|
+
_ref4$clamp = _ref4.clamp,
|
|
166
|
+
clamp = _ref4$clamp === void 0 ? true : _ref4$clamp,
|
|
167
|
+
scrollableParents = _ref4.scrollableParents;
|
|
155
168
|
var elementRect = anchor.getBoundingClientRect();
|
|
156
169
|
var tooltipRect = tooltip.getBoundingClientRect();
|
|
157
170
|
var targetPosition = getPosition(elementRect, tooltipRect, position);
|
|
158
171
|
|
|
159
172
|
// Flip to avoid edges
|
|
160
|
-
var isFlipped = flip &&
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
173
|
+
var isFlipped = flip && scrollableParents.some(function (scrollableParent) {
|
|
174
|
+
return shouldFlip({
|
|
175
|
+
targetPosition: targetPosition,
|
|
176
|
+
position: position,
|
|
177
|
+
boundaryRect: getBoundingRect(scrollableParent),
|
|
178
|
+
tooltipRect: tooltipRect
|
|
179
|
+
});
|
|
165
180
|
});
|
|
166
181
|
if (isFlipped) {
|
|
167
182
|
position = getOppositePosition(position);
|
|
@@ -170,14 +185,33 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
170
185
|
|
|
171
186
|
// Clamp position within boundary
|
|
172
187
|
if (clamp) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
188
|
+
scrollableParents.forEach(function (scrollableParent) {
|
|
189
|
+
var boundaryRect = getBoundingRect(scrollableParent);
|
|
190
|
+
targetPosition.x = Math.max(boundaryRect.left, targetPosition.x);
|
|
191
|
+
targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
|
|
192
|
+
targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
|
|
193
|
+
targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
|
|
194
|
+
});
|
|
177
195
|
}
|
|
178
196
|
|
|
179
197
|
// Should hide entirely if it scrolls out of view
|
|
180
|
-
var shouldHide =
|
|
198
|
+
var shouldHide = false;
|
|
199
|
+
var _iterator = _createForOfIteratorHelper(scrollableParents),
|
|
200
|
+
_step;
|
|
201
|
+
try {
|
|
202
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
203
|
+
var scrollableParent = _step.value;
|
|
204
|
+
var boundaryRect = getBoundingRect(scrollableParent);
|
|
205
|
+
if (!isWithin(elementRect, boundaryRect)) {
|
|
206
|
+
shouldHide = true;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
} catch (err) {
|
|
211
|
+
_iterator.e(err);
|
|
212
|
+
} finally {
|
|
213
|
+
_iterator.f();
|
|
214
|
+
}
|
|
181
215
|
tooltip.style.display = shouldHide ? "none" : "block";
|
|
182
216
|
tooltip.style.transform = translateWithOffset(targetPosition, position, offset);
|
|
183
217
|
return {
|
|
@@ -249,7 +283,7 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
249
283
|
};
|
|
250
284
|
exports.getPosition = getPosition;
|
|
251
285
|
var translateWithOffset = function translateWithOffset(targetPosition, position, offset) {
|
|
252
|
-
var
|
|
286
|
+
var _ref5 = function () {
|
|
253
287
|
switch (position) {
|
|
254
288
|
case "top-start":
|
|
255
289
|
return [targetPosition.x, targetPosition.y - offset];
|
|
@@ -277,9 +311,9 @@ var translateWithOffset = function translateWithOffset(targetPosition, position,
|
|
|
277
311
|
return [targetPosition.x + offset, targetPosition.y];
|
|
278
312
|
}
|
|
279
313
|
}(),
|
|
280
|
-
|
|
281
|
-
x =
|
|
282
|
-
y =
|
|
314
|
+
_ref6 = _slicedToArray(_ref5, 2),
|
|
315
|
+
x = _ref6[0],
|
|
316
|
+
y = _ref6[1];
|
|
283
317
|
return "translate(".concat(x, "px, ").concat(y, "px)");
|
|
284
318
|
};
|
|
285
319
|
exports.translateWithOffset = translateWithOffset;
|
|
@@ -311,24 +345,11 @@ var getOppositePosition = function getOppositePosition(position) {
|
|
|
311
345
|
return "left-end";
|
|
312
346
|
}
|
|
313
347
|
};
|
|
314
|
-
var
|
|
315
|
-
var
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
left: 0,
|
|
320
|
-
right: width,
|
|
321
|
-
bottom: height,
|
|
322
|
-
width: width,
|
|
323
|
-
height: height
|
|
324
|
-
};
|
|
325
|
-
};
|
|
326
|
-
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
327
|
-
var shouldFlip = function shouldFlip(_ref5) {
|
|
328
|
-
var targetPosition = _ref5.targetPosition,
|
|
329
|
-
position = _ref5.position,
|
|
330
|
-
boundaryRect = _ref5.boundaryRect,
|
|
331
|
-
tooltipRect = _ref5.tooltipRect;
|
|
348
|
+
var shouldFlip = function shouldFlip(_ref7) {
|
|
349
|
+
var targetPosition = _ref7.targetPosition,
|
|
350
|
+
position = _ref7.position,
|
|
351
|
+
boundaryRect = _ref7.boundaryRect,
|
|
352
|
+
tooltipRect = _ref7.tooltipRect;
|
|
332
353
|
switch (position) {
|
|
333
354
|
case "top-start":
|
|
334
355
|
case "top":
|
|
@@ -352,4 +373,45 @@ exports.shouldFlip = shouldFlip;
|
|
|
352
373
|
var isWithin = function isWithin(elementRect, boundaryRect) {
|
|
353
374
|
return boundaryRect.top < elementRect.bottom && boundaryRect.left < elementRect.right && boundaryRect.bottom > elementRect.top && boundaryRect.right > elementRect.left;
|
|
354
375
|
};
|
|
376
|
+
var getScrollableParents = function getScrollableParents(element) {
|
|
377
|
+
var parent = element.parentElement;
|
|
378
|
+
var scrollableParents = [];
|
|
379
|
+
while (parent) {
|
|
380
|
+
var computedStyle = getComputedStyle(parent);
|
|
381
|
+
if (isOverflowSet(computedStyle.overflow) || isOverflowSet(computedStyle.overflowY) || isOverflowSet(computedStyle.overflowX)) {
|
|
382
|
+
scrollableParents.push(parent);
|
|
383
|
+
}
|
|
384
|
+
parent = parent.parentElement;
|
|
385
|
+
}
|
|
386
|
+
scrollableParents.push(document);
|
|
387
|
+
return scrollableParents;
|
|
388
|
+
};
|
|
389
|
+
var isOverflowSet = function isOverflowSet(overflowValue) {
|
|
390
|
+
return overflowValue === "auto" || overflowValue === "hidden" || overflowValue === "scroll" || overflowValue === "overlay";
|
|
391
|
+
};
|
|
392
|
+
var isDocument = function isDocument(element) {
|
|
393
|
+
return element.ownerDocument === null;
|
|
394
|
+
};
|
|
395
|
+
var getDocumentBoundingRect = function getDocumentBoundingRect() {
|
|
396
|
+
var width = document.body.clientWidth;
|
|
397
|
+
var height = document.body.clientHeight;
|
|
398
|
+
return {
|
|
399
|
+
top: 0,
|
|
400
|
+
left: 0,
|
|
401
|
+
right: width,
|
|
402
|
+
bottom: height,
|
|
403
|
+
width: width,
|
|
404
|
+
height: height,
|
|
405
|
+
x: 0,
|
|
406
|
+
y: 0,
|
|
407
|
+
toJSON: function toJSON() {
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
};
|
|
411
|
+
};
|
|
412
|
+
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
413
|
+
var getBoundingRect = function getBoundingRect(element) {
|
|
414
|
+
return isDocument(element) ? getDocumentBoundingRect() : element.getBoundingClientRect();
|
|
415
|
+
};
|
|
416
|
+
exports.getBoundingRect = getBoundingRect;
|
|
355
417
|
//# sourceMappingURL=usePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handleScroll","document","addEventListener","passive","handleResize","window","removeEventListener","_ref2","_ref2$offset","_ref2$boundaryRect","boundaryRect","getDocumentBoundingRect","_ref2$flip","_ref2$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","shouldFlip","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","isWithin","display","transform","translateWithOffset","_ref3","_ref4","concat","body","clientWidth","clientHeight","_ref5"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handleScroll = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n document.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n\n const handleResize = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n window.addEventListener(\"resize\", handleResize, { passive: true })\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n\n return () => {\n document.removeEventListener(\"scroll\", handleScroll)\n window.removeEventListener(\"resize\", handleResize)\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n boundaryRect?: DOMRect\n flip?: boolean\n clamp?: boolean\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n boundaryRect = getDocumentBoundingRect(),\n flip = true,\n clamp = true,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition(elementRect, tooltipRect, position)\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n shouldFlip({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition(elementRect, tooltipRect, position)\n }\n\n // Clamp position within boundary\n if (clamp) {\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n }\n\n // Should hide entirely if it scrolls out of view\n const shouldHide = !isWithin(elementRect, boundaryRect)\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = (\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >,\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">,\n position: Position\n): TargetPosition => {\n let x: number\n let y: number\n\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n } as DOMRect\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e2","f","TypeError","normalCompletion","didErr","err","call","step","next","_e3","return","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","push","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","scrollableParents","getScrollableParents","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handle","handlers","map","scrollableParent","handlerScroll","forEach","_ref2","addEventListener","passive","window","removeEventListener","_ref3","_ref4","_ref4$offset","_ref4$flip","_ref4$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","some","shouldFlip","boundaryRect","getBoundingRect","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","_iterator","_step","isWithin","display","transform","translateWithOffset","_ref5","_ref6","concat","_ref7","element","parent","parentElement","computedStyle","getComputedStyle","isOverflowSet","overflow","overflowY","overflowX","document","overflowValue","isDocument","ownerDocument","getDocumentBoundingRect","body","clientWidth","clientHeight","toJSON"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n const scrollableParents = getScrollableParents(anchor)\n\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handle = () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n }\n\n const scrollableParents = getScrollableParents(anchor)\n const handlers = scrollableParents.map((scrollableParent) => {\n return {\n scrollableParent,\n handlerScroll: () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n },\n }\n })\n\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.addEventListener(\"scroll\", handlerScroll, {\n passive: true,\n })\n })\n\n window.addEventListener(\"resize\", handle, { passive: true })\n\n // Initialize\n handle()\n\n return () => {\n window.removeEventListener(\"resize\", handle)\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.removeEventListener(\"scroll\", handlerScroll)\n })\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n flip?: boolean\n clamp?: boolean\n scrollableParents: Array<HTMLElement | Document>\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n flip = true,\n clamp = true,\n scrollableParents,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition(elementRect, tooltipRect, position)\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n scrollableParents.some((scrollableParent) => {\n return shouldFlip({\n targetPosition,\n position,\n boundaryRect: getBoundingRect(scrollableParent),\n tooltipRect,\n })\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition(elementRect, tooltipRect, position)\n }\n\n // Clamp position within boundary\n if (clamp) {\n scrollableParents.forEach((scrollableParent) => {\n const boundaryRect = getBoundingRect(scrollableParent)\n\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n })\n }\n\n // Should hide entirely if it scrolls out of view\n let shouldHide = false\n for (const scrollableParent of scrollableParents) {\n const boundaryRect = getBoundingRect(scrollableParent)\n if (!isWithin(elementRect, boundaryRect)) {\n shouldHide = true\n break\n }\n }\n\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = (\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >,\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">,\n position: Position\n): TargetPosition => {\n let x: number\n let y: number\n\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n\nconst getScrollableParents = (element: HTMLElement) => {\n let parent = element.parentElement\n const scrollableParents: Array<HTMLElement | Document> = []\n\n while (parent) {\n const computedStyle = getComputedStyle(parent)\n if (\n isOverflowSet(computedStyle.overflow) ||\n isOverflowSet(computedStyle.overflowY) ||\n isOverflowSet(computedStyle.overflowX)\n ) {\n scrollableParents.push(parent)\n }\n parent = parent.parentElement\n }\n\n scrollableParents.push(document)\n\n return scrollableParents\n}\n\nconst isOverflowSet = (overflowValue: string) => {\n return (\n overflowValue === \"auto\" ||\n overflowValue === \"hidden\" ||\n overflowValue === \"scroll\" ||\n overflowValue === \"overlay\"\n )\n}\n\nconst isDocument = (element: HTMLElement | Document): element is Document => {\n return element.ownerDocument === null\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n x: 0,\n y: 0,\n toJSON: () => null,\n }\n}\n\nexport const getBoundingRect = (element: HTMLElement | Document): DOMRect => {\n return isDocument(element)\n ? getDocumentBoundingRect()\n : element.getBoundingClientRect()\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "37.2.
|
|
3
|
+
"version": "37.2.1",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -182,5 +182,5 @@
|
|
|
182
182
|
"url": "http://localhost"
|
|
183
183
|
}
|
|
184
184
|
},
|
|
185
|
-
"gitHead": "
|
|
185
|
+
"gitHead": "d803782e8d384c99b2ed331c3425528d993e3eec"
|
|
186
186
|
}
|