1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var slicedToArray = require('./slicedToArray-ef426d0f.js');
|
8 | require('./unsupportedIterableToArray-8a00e599.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-7f36359f.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-e2d1e599.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | require('./css.js');
|
22 | require('./dayjs.min-aa59a48e.js');
|
23 | require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-ecfd5d91.js');
|
28 | require('./characters.js');
|
29 | require('./format.js');
|
30 | require('./keycodes.js');
|
31 | require('./url.js');
|
32 | require('./web3.js');
|
33 | var constants = require('./constants.js');
|
34 | require('./breakpoints.js');
|
35 | var springs = require('./springs.js');
|
36 | var textStyles = require('./text-styles.js');
|
37 | require('./theme-dark.js');
|
38 | require('./theme-light.js');
|
39 | var Theme = require('./Theme.js');
|
40 | var _extends$1 = require('./extends-40571110.js');
|
41 | var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
|
42 | var index$1 = require('./index-ecc57c9f.js');
|
43 | require('./FocusVisible.js');
|
44 | var ButtonBase = require('./ButtonBase.js');
|
45 | require('./IconPropTypes-086fd371.js');
|
46 | require('./IconAddUser.js');
|
47 | require('./IconAlert.js');
|
48 | require('./IconAlignCenter.js');
|
49 | require('./IconAlignJustify.js');
|
50 | require('./IconAlignLeft.js');
|
51 | require('./IconAlignRight.js');
|
52 | require('./IconAragon.js');
|
53 | require('./IconArrowDown.js');
|
54 | require('./IconArrowLeft.js');
|
55 | require('./IconArrowRight.js');
|
56 | require('./IconArrowUp.js');
|
57 | require('./IconAtSign.js');
|
58 | require('./IconBlock.js');
|
59 | require('./IconBookmark.js');
|
60 | require('./IconCalendar.js');
|
61 | require('./IconCanvas.js');
|
62 | require('./IconCaution.js');
|
63 | require('./IconCenter.js');
|
64 | require('./IconChart.js');
|
65 | require('./IconChat.js');
|
66 | require('./IconCheck.js');
|
67 | require('./IconChip.js');
|
68 | require('./IconCircleCheck.js');
|
69 | require('./IconCircleMinus.js');
|
70 | require('./IconCirclePlus.js');
|
71 | require('./IconClock.js');
|
72 | require('./IconCloudDownload.js');
|
73 | require('./IconCloudUpload.js');
|
74 | require('./IconCoin.js');
|
75 | require('./IconConfiguration.js');
|
76 | require('./IconConnect.js');
|
77 | require('./IconConnection.js');
|
78 | require('./IconConsole.js');
|
79 | require('./IconCopy.js');
|
80 | require('./IconCross.js');
|
81 | require('./IconDashedSquare.js');
|
82 | var IconDown = require('./IconDown.js');
|
83 | require('./IconDownload.js');
|
84 | require('./IconEdit.js');
|
85 | require('./IconEllipsis.js');
|
86 | require('./IconEnter.js');
|
87 | require('./IconEthereum.js');
|
88 | require('./IconExternal.js');
|
89 | require('./IconFile.js');
|
90 | require('./IconFilter.js');
|
91 | require('./IconFlag.js');
|
92 | require('./IconFolder.js');
|
93 | require('./IconGraph2.js');
|
94 | require('./IconGraph.js');
|
95 | require('./IconGrid.js');
|
96 | require('./IconGroup.js');
|
97 | require('./IconHash.js');
|
98 | require('./IconHeart.js');
|
99 | require('./IconHide.js');
|
100 | require('./IconHome.js');
|
101 | require('./IconImage.js');
|
102 | require('./IconInfo.js');
|
103 | require('./IconLabel.js');
|
104 | require('./IconLayers.js');
|
105 | require('./IconLeft.js');
|
106 | require('./IconLink.js');
|
107 | require('./IconLocation.js');
|
108 | require('./IconLock.js');
|
109 | require('./IconMail.js');
|
110 | require('./IconMaximize.js');
|
111 | require('./IconMenu.js');
|
112 | require('./IconMinimize.js');
|
113 | require('./IconMinus.js');
|
114 | require('./IconMove.js');
|
115 | require('./IconNoPicture.js');
|
116 | require('./IconPicture.js');
|
117 | require('./IconPlus.js');
|
118 | require('./IconPower.js');
|
119 | require('./IconPrint.js');
|
120 | require('./IconProhibited.js');
|
121 | require('./IconQuestion.js');
|
122 | require('./IconRefresh.js');
|
123 | require('./IconRemoveUser.js');
|
124 | require('./IconRight.js');
|
125 | require('./IconRotateLeft.js');
|
126 | require('./IconRotateRight.js');
|
127 | require('./IconSearch.js');
|
128 | require('./IconSettings.js');
|
129 | require('./IconShare.js');
|
130 | require('./IconSquareMinus.js');
|
131 | require('./IconSquarePlus.js');
|
132 | require('./IconSquare.js');
|
133 | require('./IconStarFilled.js');
|
134 | require('./IconStar.js');
|
135 | require('./IconSwap.js');
|
136 | require('./IconTarget.js');
|
137 | require('./IconToken.js');
|
138 | require('./IconTrash.js');
|
139 | require('./IconUnlock.js');
|
140 | require('./IconUp.js');
|
141 | require('./IconUpload.js');
|
142 | require('./IconUser.js');
|
143 | require('./IconView.js');
|
144 | require('./IconVote.js');
|
145 | require('./IconWallet.js');
|
146 | require('./IconWarning.js');
|
147 | require('./IconWorld.js');
|
148 | require('./IconWrite.js');
|
149 | require('./IconZoomIn.js');
|
150 | require('./IconZoomOut.js');
|
151 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
152 | require('react-dom');
|
153 | var web = require('./web-d0294535.js');
|
154 |
|
155 |
|
156 |
|
157 | function interpolateToggleElevation(value, fn) {
|
158 | return value.interpolate(function (v) {
|
159 | return fn(1 - Math.abs(v * 2 - 1));
|
160 | });
|
161 | }
|
162 |
|
163 | var _StyledSection = _styled__default("section").withConfig({
|
164 | displayName: "Details___StyledSection",
|
165 | componentId: "b3f99g-0"
|
166 | })(["", ""], function (p) {
|
167 | return p._css;
|
168 | });
|
169 |
|
170 | var _StyledButtonBase = _styled__default(ButtonBase.default).withConfig({
|
171 | displayName: "Details___StyledButtonBase",
|
172 | componentId: "b3f99g-1"
|
173 | })(["position:relative;width:100%;&:active{background:", ";}"], function (p) {
|
174 | return p._css2;
|
175 | });
|
176 |
|
177 | var _StyledDiv = _styled__default("div").withConfig({
|
178 | displayName: "Details___StyledDiv",
|
179 | componentId: "b3f99g-2"
|
180 | })(["position:absolute;left:", "px;right:", "px;bottom:0;"], function (p) {
|
181 | return p._css3;
|
182 | }, function (p) {
|
183 | return p._css4;
|
184 | });
|
185 |
|
186 | var _StyledDiv2 = _styled__default("div").withConfig({
|
187 | displayName: "Details___StyledDiv2",
|
188 | componentId: "b3f99g-3"
|
189 | })(["height:1px;box-shadow:0 1px 1px rgba(0,0,0,0.1);"]);
|
190 |
|
191 | var _StyledH = _styled__default("h1").withConfig({
|
192 | displayName: "Details___StyledH",
|
193 | componentId: "b3f99g-4"
|
194 | })(["display:flex;justify-content:flex-start;align-items:center;height:", "px;margin-left:", "px;color:", ";", " font-weight:400;"], function (p) {
|
195 | return p._css5;
|
196 | }, function (p) {
|
197 | return p._css6;
|
198 | }, function (p) {
|
199 | return p._css7;
|
200 | }, function (p) {
|
201 | return p._css8;
|
202 | });
|
203 |
|
204 | var _StyledDiv3 = _styled__default("div").withConfig({
|
205 | displayName: "Details___StyledDiv3",
|
206 | componentId: "b3f99g-5"
|
207 | })(["margin-top:2px;"]);
|
208 |
|
209 | var _StyledDiv4 = _styled__default("div").withConfig({
|
210 | displayName: "Details___StyledDiv4",
|
211 | componentId: "b3f99g-6"
|
212 | })(["display:flex;align-items:center;justify-content:center;"]);
|
213 |
|
214 | var _StyledDiv5 = _styled__default("div").withConfig({
|
215 | displayName: "Details___StyledDiv5",
|
216 | componentId: "b3f99g-7"
|
217 | })(["overflow:hidden"]);
|
218 |
|
219 | var _StyledAnimatedDiv = _styled__default(web.extendedAnimated.div).withConfig({
|
220 | displayName: "Details___StyledAnimatedDiv",
|
221 | componentId: "b3f99g-8"
|
222 | })(["display:flex;flex-direction:column;justify-content:flex-end;"]);
|
223 |
|
224 | var _StyledDiv6 = _styled__default("div").withConfig({
|
225 | displayName: "Details___StyledDiv6",
|
226 | componentId: "b3f99g-9"
|
227 | })(["", ""], function (p) {
|
228 | return p._css9;
|
229 | });
|
230 |
|
231 | function Details(_ref) {
|
232 | var children = _ref.children,
|
233 | label = _ref.label,
|
234 | onToggle = _ref.onToggle,
|
235 | openedProp = _ref.opened,
|
236 | props = objectWithoutProperties._objectWithoutProperties(_ref, ["children", "label", "onToggle", "opened"]);
|
237 |
|
238 | var theme = Theme.useTheme();
|
239 |
|
240 | var _useInside = index$1.o('Box'),
|
241 | _useInside2 = slicedToArray._slicedToArray(_useInside, 1),
|
242 | insideBox = _useInside2[0];
|
243 |
|
244 | var _useInside3 = index$1.o('SidePanel'),
|
245 | _useInside4 = slicedToArray._slicedToArray(_useInside3, 1),
|
246 | insideSidePanel = _useInside4[0];
|
247 |
|
248 | var contentRef = React.useRef(null);
|
249 | var contentHeight = React.useRef(0);
|
250 |
|
251 |
|
252 | var _useState = React.useState(false),
|
253 | _useState2 = slicedToArray._slicedToArray(_useState, 2),
|
254 | openedManaged = _useState2[0],
|
255 | setOpenedManaged = _useState2[1];
|
256 |
|
257 | var opened = openedProp === undefined ? openedManaged : openedProp;
|
258 | var updateHeight = React.useCallback(function () {
|
259 | if (contentRef.current) {
|
260 | contentHeight.current = contentRef.current.clientHeight;
|
261 | }
|
262 | }, []);
|
263 | var handleContentRef = React.useCallback(function (element) {
|
264 | contentRef.current = element;
|
265 | updateHeight();
|
266 | }, [updateHeight]);
|
267 | var handleToggle = React.useCallback(function () {
|
268 | var newOpened = !opened;
|
269 |
|
270 | if (openedProp === undefined) {
|
271 | setOpenedManaged(newOpened);
|
272 | }
|
273 |
|
274 |
|
275 | if (onToggle) {
|
276 | onToggle(newOpened);
|
277 | }
|
278 | }, [onToggle, opened, openedProp]);
|
279 |
|
280 | var animate = React.useRef(false);
|
281 | React.useEffect(function () {
|
282 | animate.current = true;
|
283 | }, []);
|
284 |
|
285 | var _useState3 = React.useState(false),
|
286 | _useState4 = slicedToArray._slicedToArray(_useState3, 2),
|
287 | forceHeight = _useState4[0],
|
288 | setForceHeight = _useState4[1];
|
289 |
|
290 | var handleStart = React.useCallback(function () {
|
291 | return setForceHeight(true);
|
292 | }, []);
|
293 | var handleRest = React.useCallback(function () {
|
294 |
|
295 |
|
296 | setForceHeight(!opened);
|
297 | }, [opened]);
|
298 |
|
299 | React.useEffect(updateHeight, [opened, updateHeight]);
|
300 | var spacingCss = React.useMemo(function () {
|
301 | if (insideSidePanel) {
|
302 | return {
|
303 | section: "\n margin: ".concat(2 * constants.GU, "px ").concat(-3 * constants.GU, "px 0;\n padding-bottom: ").concat(3 * constants.GU, "px;\n "),
|
304 | content: "\n padding: ".concat(2 * constants.GU, "px ").concat(3 * constants.GU, "px 0;\n ")
|
305 | };
|
306 | }
|
307 |
|
308 | if (insideBox) {
|
309 | return {
|
310 | section: "\n margin: 0 ".concat(-3 * constants.GU, "px;\n "),
|
311 | content: "\n padding: ".concat(1 * constants.GU, "px ").concat(3 * constants.GU, "px 0;\n ")
|
312 | };
|
313 | }
|
314 |
|
315 | return {
|
316 | section: "\n margin: 0;\n padding-bottom: ".concat(3 * constants.GU, "px;\n "),
|
317 | content: "\n padding: 0;\n "
|
318 | };
|
319 | }, [insideSidePanel, insideBox]);
|
320 | return React__default.createElement(web.Spring, {
|
321 | config: springs.springs.smooth,
|
322 | from: {
|
323 | openProgress: 0
|
324 | },
|
325 | to: {
|
326 | openProgress: Number(opened)
|
327 | },
|
328 | immediate: !animate,
|
329 | onRest: handleRest,
|
330 | onStart: handleStart,
|
331 | native: true
|
332 | }, function (_ref2) {
|
333 | var openProgress = _ref2.openProgress;
|
334 | return React__default.createElement(_StyledSection, _extends$1._extends({}, props, {
|
335 | _css: spacingCss.section
|
336 | }), React__default.createElement(_StyledButtonBase, {
|
337 | onClick: handleToggle,
|
338 | _css2: theme.surfacePressed
|
339 | }, React__default.createElement(_StyledDiv, {
|
340 | _css3: 3 * constants.GU,
|
341 | _css4: 3 * constants.GU
|
342 | }, React__default.createElement(web.extendedAnimated.div, {
|
343 | style: {
|
344 | transform: interpolateToggleElevation(openProgress, function (v) {
|
345 | return "scale3d(".concat(v, ", 1, 1)");
|
346 | }),
|
347 | opacity: interpolateToggleElevation(openProgress, function (v) {
|
348 | return v;
|
349 | })
|
350 | }
|
351 | }, React__default.createElement(_StyledDiv2, null))), React__default.createElement(_StyledH, _extends$1._extends({}, props, {
|
352 | _css5: 5 * constants.GU,
|
353 | _css6: 3 * constants.GU,
|
354 | _css7: theme.surfaceContentSecondary,
|
355 | _css8: textStyles.textStyle('label2')
|
356 | }), React__default.createElement(_StyledDiv3, null, label), React__default.createElement("div", null, React__default.createElement(web.extendedAnimated.div, {
|
357 | style: {
|
358 | marginLeft: "".concat(1 * constants.GU, "px"),
|
359 | transform: openProgress.interpolate(function (v) {
|
360 | return "rotate(".concat((1 - v) * 180, "deg)");
|
361 | }),
|
362 | transformOrigin: '50% calc(50% - 0.5px)'
|
363 | }
|
364 | }, React__default.createElement(_StyledDiv4, null, React__default.createElement(IconDown.default, {
|
365 | size: "tiny"
|
366 | })))))), React__default.createElement(_StyledDiv5, null, React__default.createElement(_StyledAnimatedDiv, {
|
367 | style: {
|
368 | opacity: openProgress,
|
369 | height: forceHeight ? openProgress.interpolate(function (v) {
|
370 | return "".concat(v * contentHeight.current, "px");
|
371 | }) : 'auto'
|
372 | }
|
373 | }, React__default.createElement(_StyledDiv6, {
|
374 | ref: handleContentRef,
|
375 | _css9: spacingCss.content
|
376 | }, React__default.createElement("div", null, children)))));
|
377 | });
|
378 | }
|
379 |
|
380 | Details.propTypes = {
|
381 | children: index.PropTypes.node.isRequired,
|
382 | label: index.PropTypes.string.isRequired,
|
383 | onToggle: index.PropTypes.func,
|
384 | opened: index.PropTypes.bool
|
385 | };
|
386 |
|
387 | exports.default = Details;
|
388 |
|