UNPKG

14.3 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7var slicedToArray = require('./slicedToArray-ef426d0f.js');
8require('./unsupportedIterableToArray-8a00e599.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty = require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-7f36359f.js');
15var _styled = require('styled-components');
16var _styled__default = _interopDefault(_styled);
17require('./getPrototypeOf-e2d1e599.js');
18require('./color.js');
19require('./components.js');
20require('./contains-component.js');
21require('./css.js');
22require('./dayjs.min-aa59a48e.js');
23require('./date.js');
24require('./miscellaneous.js');
25require('./environment.js');
26require('./font.js');
27require('./math-ecfd5d91.js');
28require('./characters.js');
29require('./format.js');
30require('./keycodes.js');
31require('./url.js');
32require('./web3.js');
33var constants = require('./constants.js');
34require('./breakpoints.js');
35var springs = require('./springs.js');
36var textStyles = require('./text-styles.js');
37require('./theme-dark.js');
38require('./theme-light.js');
39var Theme = require('./Theme.js');
40require('./extends-40571110.js');
41require('./objectWithoutProperties-35db8ab0.js');
42require('./index-ecc57c9f.js');
43require('./isObject-52908731.js');
44require('./Viewport-fe2db97a.js');
45require('./Layout.js');
46require('./FocusVisible.js');
47require('./ButtonBase.js');
48require('./IconPropTypes-086fd371.js');
49require('./IconAddUser.js');
50require('./IconAlert.js');
51require('./IconAlignCenter.js');
52require('./IconAlignJustify.js');
53require('./IconAlignLeft.js');
54require('./IconAlignRight.js');
55require('./IconAragon.js');
56require('./IconArrowDown.js');
57require('./IconArrowLeft.js');
58require('./IconArrowRight.js');
59require('./IconArrowUp.js');
60require('./IconAtSign.js');
61require('./IconBlock.js');
62require('./IconBookmark.js');
63require('./IconCalendar.js');
64require('./IconCanvas.js');
65require('./IconCaution.js');
66require('./IconCenter.js');
67require('./IconChart.js');
68require('./IconChat.js');
69require('./IconCheck.js');
70require('./IconChip.js');
71require('./IconCircleCheck.js');
72require('./IconCircleMinus.js');
73require('./IconCirclePlus.js');
74require('./IconClock.js');
75require('./IconCloudDownload.js');
76require('./IconCloudUpload.js');
77require('./IconCoin.js');
78require('./IconConfiguration.js');
79require('./IconConnect.js');
80require('./IconConnection.js');
81require('./IconConsole.js');
82require('./IconCopy.js');
83require('./IconCross.js');
84require('./IconDashedSquare.js');
85require('./IconDown.js');
86require('./IconDownload.js');
87require('./IconEdit.js');
88require('./IconEllipsis.js');
89require('./IconEnter.js');
90require('./IconEthereum.js');
91require('./IconExternal.js');
92require('./IconFile.js');
93require('./IconFilter.js');
94require('./IconFlag.js');
95require('./IconFolder.js');
96require('./IconGraph2.js');
97require('./IconGraph.js');
98require('./IconGrid.js');
99require('./IconGroup.js');
100require('./IconHash.js');
101require('./IconHeart.js');
102require('./IconHide.js');
103require('./IconHome.js');
104require('./IconImage.js');
105require('./IconInfo.js');
106require('./IconLabel.js');
107require('./IconLayers.js');
108require('./IconLeft.js');
109require('./IconLink.js');
110require('./IconLocation.js');
111require('./IconLock.js');
112require('./IconMail.js');
113require('./IconMaximize.js');
114require('./IconMenu.js');
115require('./IconMinimize.js');
116require('./IconMinus.js');
117require('./IconMove.js');
118require('./IconNoPicture.js');
119require('./IconPicture.js');
120require('./IconPlus.js');
121require('./IconPower.js');
122require('./IconPrint.js');
123require('./IconProhibited.js');
124require('./IconQuestion.js');
125require('./IconRefresh.js');
126require('./IconRemoveUser.js');
127require('./IconRight.js');
128require('./IconRotateLeft.js');
129require('./IconRotateRight.js');
130require('./IconSearch.js');
131require('./IconSettings.js');
132require('./IconShare.js');
133require('./IconSquareMinus.js');
134require('./IconSquarePlus.js');
135require('./IconSquare.js');
136require('./IconStarFilled.js');
137require('./IconStar.js');
138require('./IconSwap.js');
139require('./IconTarget.js');
140require('./IconToken.js');
141require('./IconTrash.js');
142require('./IconUnlock.js');
143require('./IconUp.js');
144require('./IconUpload.js');
145require('./IconUser.js');
146require('./IconView.js');
147require('./IconVote.js');
148require('./IconWallet.js');
149require('./IconWarning.js');
150require('./IconWorld.js');
151require('./IconWrite.js');
152require('./IconZoomIn.js');
153require('./IconZoomOut.js');
154require('./objectWithoutPropertiesLoose-1af20ad0.js');
155require('react-dom');
156var web = require('./web-d0294535.js');
157var Checkbox = require('./Checkbox.js');
158require('./Button.js');
159require('./ButtonIcon.js');
160var ToggleButton = require('./ToggleButton.js');
161var OpenedSurfaceBorder = require('./OpenedSurfaceBorder.js');
162
163function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
164
165function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
166
167var _StyledDiv = _styled__default("div").withConfig({
168 displayName: "ListView___StyledDiv",
169 componentId: "sc-1wnrej-0"
170})(["position:relative;padding:0;padding-right:", "px;padding-left:", "px;border-bottom:", "px solid ", ";transition:background 150ms ease-in-out;background:", ";"], function (p) {
171 return p._css;
172}, function (p) {
173 return p._css2;
174}, function (p) {
175 return p._css3;
176}, function (p) {
177 return p._css4;
178}, function (p) {
179 return p._css5;
180});
181
182var _StyledDiv2 = _styled__default("div").withConfig({
183 displayName: "ListView___StyledDiv2",
184 componentId: "sc-1wnrej-1"
185})(["position:absolute;top:", "px;left:0;display:flex;justify-content:center;width:", "px;"], function (p) {
186 return p._css6;
187}, function (p) {
188 return p._css7;
189});
190
191var _StyledDiv3 = _styled__default("div").withConfig({
192 displayName: "ListView___StyledDiv3",
193 componentId: "sc-1wnrej-2"
194})(["position:absolute;top:", "px;right:", "px;"], function (p) {
195 return p._css8;
196}, function (p) {
197 return p._css9;
198});
199
200var _StyledDiv4 = _styled__default("div").withConfig({
201 displayName: "ListView___StyledDiv4",
202 componentId: "sc-1wnrej-3"
203})(["display:flex;flex-direction:column;padding-bottom:", "px;"], function (p) {
204 return p._css10;
205});
206
207var _StyledDiv5 = _styled__default("div").withConfig({
208 displayName: "ListView___StyledDiv5",
209 componentId: "sc-1wnrej-4"
210})(["display:flex;align-items:center;margin:", "px 0 ", "px;color:", ";", ";"], function (p) {
211 return p._css11;
212}, function (p) {
213 return p._css12;
214}, function (p) {
215 return p._css13;
216}, function (p) {
217 return p._css14;
218});
219
220function ListView(_ref) {
221 var allSelected = _ref.allSelected,
222 entries = _ref.entries,
223 fields = _ref.fields,
224 hasAnyExpansion = _ref.hasAnyExpansion,
225 onSelect = _ref.onSelect,
226 onSelectAll = _ref.onSelectAll,
227 renderSelectionCount = _ref.renderSelectionCount,
228 selectable = _ref.selectable,
229 rowHeight = _ref.rowHeight;
230 var theme = Theme.useTheme();
231
232 var _useState = React.useState(-1),
233 _useState2 = slicedToArray._slicedToArray(_useState, 2),
234 opened = _useState2[0],
235 setOpened = _useState2[1];
236
237 var toggleEntry = React.useCallback(function (index) {
238 setOpened(function (opened) {
239 return opened === index ? -1 : index;
240 });
241 }, []);
242 var sideSpace = selectable || hasAnyExpansion;
243 return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, entries.map(function (entry, index) {
244 var hasExpansion = entry.expansion.content.length > 0;
245 return /*#__PURE__*/React__default.createElement(_StyledDiv, {
246 key: index,
247 _css: 3 * constants.GU,
248 _css2: (sideSpace ? 6.5 : 3) * constants.GU,
249 _css3: Number(index !== entries.length - 1),
250 _css4: theme.border,
251 _css5: entry.selected ? theme.surfaceSelected : 'none'
252 }, /*#__PURE__*/React__default.createElement(OpenedSurfaceBorder.OpenedSurfaceBorder, {
253 opened: entry.index === opened
254 }), sideSpace && /*#__PURE__*/React__default.createElement(_StyledDiv2, {
255 _css6: 1.5 * constants.GU,
256 _css7: 6.5 * constants.GU
257 }, selectable && /*#__PURE__*/React__default.createElement(Select, {
258 index: entry.index,
259 selected: entry.selected,
260 onSelect: onSelect
261 }), !selectable && hasExpansion && /*#__PURE__*/React__default.createElement(ToggleButton.ToggleButton, {
262 opened: entry.index === opened,
263 onClick: function onClick() {
264 return toggleEntry(entry.index);
265 }
266 })), entry.actions && /*#__PURE__*/React__default.createElement(_StyledDiv3, {
267 _css8: 2 * constants.GU,
268 _css9: 3 * constants.GU
269 }, entry.actions), /*#__PURE__*/React__default.createElement("div", null, entry.entryNodes.map(function (content, index) {
270 return [// field content
271 content, // field label
272 fields[index].label, // priority number
273 fields[index].priority && fields[index].priority || 0];
274 }) // sort by priority
275 .sort(function (a, b) {
276 return b[2] - a[2];
277 }).map(function (_ref2, index, entryNodes) {
278 var _ref3 = slicedToArray._slicedToArray(_ref2, 2),
279 content = _ref3[0],
280 label = _ref3[1];
281
282 return /*#__PURE__*/React__default.createElement(_StyledDiv4, {
283 key: index,
284 _css10: index === entryNodes.length - 1 ? 2 * constants.GU : 0
285 }, /*#__PURE__*/React__default.createElement(_StyledDiv5, {
286 _css11: 2 * constants.GU,
287 _css12: 1 * constants.GU,
288 _css13: theme.surfaceContentSecondary,
289 _css14: textStyles.textStyle('label2')
290 }, label), /*#__PURE__*/React__default.createElement("div", null, content));
291 })), hasExpansion && /*#__PURE__*/React__default.createElement(EntryExpansion, {
292 expansion: entry.expansion,
293 opened: opened === entry.index,
294 rowHeight: rowHeight
295 }));
296 }));
297}
298
299ListView.propTypes = {
300 allSelected: index.PropTypes.oneOf([-1, 0, 1]).isRequired,
301 entries: index.PropTypes.array.isRequired,
302 fields: index.PropTypes.array.isRequired,
303 hasAnyExpansion: index.PropTypes.bool.isRequired,
304 onSelect: index.PropTypes.func.isRequired,
305 onSelectAll: index.PropTypes.func.isRequired,
306 renderSelectionCount: index.PropTypes.func.isRequired,
307 rowHeight: index.PropTypes.number.isRequired,
308 selectable: index.PropTypes.bool.isRequired
309}; // Disable prop types check for internal components
310
311/* eslint-disable react/prop-types */
312
313var _StyledAnimatedDiv = _styled__default(web.extendedAnimated.div).withConfig({
314 displayName: "ListView___StyledAnimatedDiv",
315 componentId: "sc-1wnrej-5"
316})(["overflow:hidden;background:", ";margin-left:", "px;margin-right:", "px;padding-left:", "px;box-shadow:inset 0 6px 4px -4px rgba(0,0,0,0.16);"], function (p) {
317 return p._css15;
318}, function (p) {
319 return p._css16;
320}, function (p) {
321 return p._css17;
322}, function (p) {
323 return p._css18;
324});
325
326var _StyledDiv6 = _styled__default("div").withConfig({
327 displayName: "ListView___StyledDiv6",
328 componentId: "sc-1wnrej-6"
329})(["display:flex;align-items:center;height:", ";padding-right:", "px;"], function (p) {
330 return p._css19;
331}, function (p) {
332 return p._css20;
333});
334
335function EntryExpansion(_ref4) {
336 var expansion = _ref4.expansion,
337 opened = _ref4.opened,
338 rowHeight = _ref4.rowHeight;
339 var theme = Theme.useTheme(); // Handles the height of the expansion in free layout mode
340
341 var _useState3 = React.useState(0),
342 _useState4 = slicedToArray._slicedToArray(_useState3, 2),
343 freeLayoutContentHeight = _useState4[0],
344 setFreeLayoutContentHeight = _useState4[1];
345
346 var handleFreeLayoutContentRef = React.useCallback(function (element) {
347 if (element) {
348 setFreeLayoutContentHeight(element.getBoundingClientRect().height);
349 }
350 }, []);
351 var height = expansion.freeLayout ? freeLayoutContentHeight : rowHeight * expansion.content.length;
352 return /*#__PURE__*/React__default.createElement(web.Transition, {
353 native: true,
354 items: opened,
355 from: {
356 height: 0
357 },
358 enter: {
359 height: height
360 },
361 update: {
362 height: height
363 },
364 leave: {
365 height: 0
366 },
367 config: _objectSpread(_objectSpread({}, springs.springs.smooth), {}, {
368 precision: 0.1
369 })
370 }, function (show) {
371 return show && function (_ref5) {
372 var height = _ref5.height;
373 return /*#__PURE__*/React__default.createElement(_StyledAnimatedDiv, {
374 style: {
375 height: height.interpolate(function (v) {
376 return "".concat(v, "px");
377 })
378 },
379 _css15: theme.surfaceUnder,
380 _css16: -6.5 * constants.GU,
381 _css17: -3 * constants.GU,
382 _css18: 6.5 * constants.GU
383 }, expansion.content.map(function (child, i) {
384 return /*#__PURE__*/React__default.createElement(_StyledDiv6, {
385 key: i,
386 ref: expansion.freeLayout ? handleFreeLayoutContentRef : null,
387 _css19: expansion.freeLayout ? 'auto' : "".concat(rowHeight, "px"),
388 _css20: 3 * constants.GU
389 }, child);
390 }));
391 };
392 });
393}
394
395function Select(_ref6) {
396 var index = _ref6.index,
397 selected = _ref6.selected,
398 onSelect = _ref6.onSelect;
399 var change = React.useCallback(function (check) {
400 onSelect(index, check);
401 }, [index, onSelect]);
402 return /*#__PURE__*/React__default.createElement(Checkbox.default, {
403 onChange: change,
404 checked: selected
405 });
406}
407
408exports.ListView = ListView;
409//# sourceMappingURL=ListView.js.map