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-0711941d.js');
|
8 | require('./unsupportedIterableToArray-68db1d3b.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 | var defineProperty = require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-d8a4a2c3.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-2a661a20.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | require('./css.js');
|
22 | require('./dayjs.min-e07657bf.js');
|
23 | require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-f4029164.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 | require('./extends-40571110.js');
|
41 | require('./objectWithoutProperties-35db8ab0.js');
|
42 | require('./index-ecc57c9f.js');
|
43 | require('./isObject-ec755c87.js');
|
44 | require('./Viewport-15101437.js');
|
45 | require('./Layout.js');
|
46 | require('./FocusVisible.js');
|
47 | require('./ButtonBase.js');
|
48 | require('./IconPropTypes-56de5759.js');
|
49 | require('./IconAddUser.js');
|
50 | require('./IconAlert.js');
|
51 | require('./IconAlignCenter.js');
|
52 | require('./IconAlignJustify.js');
|
53 | require('./IconAlignLeft.js');
|
54 | require('./IconAlignRight.js');
|
55 | require('./IconAragon.js');
|
56 | require('./IconArrowDown.js');
|
57 | require('./IconArrowLeft.js');
|
58 | require('./IconArrowRight.js');
|
59 | require('./IconArrowUp.js');
|
60 | require('./IconAtSign.js');
|
61 | require('./IconBlock.js');
|
62 | require('./IconBookmark.js');
|
63 | require('./IconCalendar.js');
|
64 | require('./IconCanvas.js');
|
65 | require('./IconCaution.js');
|
66 | require('./IconCenter.js');
|
67 | require('./IconChart.js');
|
68 | require('./IconChat.js');
|
69 | require('./IconCheck.js');
|
70 | require('./IconChip.js');
|
71 | require('./IconCircleCheck.js');
|
72 | require('./IconCircleMinus.js');
|
73 | require('./IconCirclePlus.js');
|
74 | require('./IconClock.js');
|
75 | require('./IconCloudDownload.js');
|
76 | require('./IconCloudUpload.js');
|
77 | require('./IconCoin.js');
|
78 | require('./IconConfiguration.js');
|
79 | require('./IconConnect.js');
|
80 | require('./IconConnection.js');
|
81 | require('./IconConsole.js');
|
82 | require('./IconCopy.js');
|
83 | require('./IconCross.js');
|
84 | require('./IconDashedSquare.js');
|
85 | require('./IconDown.js');
|
86 | require('./IconDownload.js');
|
87 | require('./IconEdit.js');
|
88 | require('./IconEllipsis.js');
|
89 | require('./IconEnter.js');
|
90 | require('./IconEthereum.js');
|
91 | require('./IconExternal.js');
|
92 | require('./IconFile.js');
|
93 | require('./IconFilter.js');
|
94 | require('./IconFlag.js');
|
95 | require('./IconFolder.js');
|
96 | require('./IconGraph2.js');
|
97 | require('./IconGraph.js');
|
98 | require('./IconGrid.js');
|
99 | require('./IconGroup.js');
|
100 | require('./IconHash.js');
|
101 | require('./IconHeart.js');
|
102 | require('./IconHide.js');
|
103 | require('./IconHome.js');
|
104 | require('./IconImage.js');
|
105 | require('./IconInfo.js');
|
106 | require('./IconLabel.js');
|
107 | require('./IconLayers.js');
|
108 | require('./IconLeft.js');
|
109 | require('./IconLink.js');
|
110 | require('./IconLocation.js');
|
111 | require('./IconLock.js');
|
112 | require('./IconMail.js');
|
113 | require('./IconMaximize.js');
|
114 | require('./IconMenu.js');
|
115 | require('./IconMinimize.js');
|
116 | require('./IconMinus.js');
|
117 | require('./IconMove.js');
|
118 | require('./IconNoPicture.js');
|
119 | require('./IconPicture.js');
|
120 | require('./IconPlus.js');
|
121 | require('./IconPower.js');
|
122 | require('./IconPrint.js');
|
123 | require('./IconProhibited.js');
|
124 | require('./IconQuestion.js');
|
125 | require('./IconRefresh.js');
|
126 | require('./IconRemoveUser.js');
|
127 | require('./IconRight.js');
|
128 | require('./IconRotateLeft.js');
|
129 | require('./IconRotateRight.js');
|
130 | require('./IconSearch.js');
|
131 | require('./IconSettings.js');
|
132 | require('./IconShare.js');
|
133 | require('./IconSquareMinus.js');
|
134 | require('./IconSquarePlus.js');
|
135 | require('./IconSquare.js');
|
136 | require('./IconStarFilled.js');
|
137 | require('./IconStar.js');
|
138 | require('./IconSwap.js');
|
139 | require('./IconTarget.js');
|
140 | require('./IconToken.js');
|
141 | require('./IconTrash.js');
|
142 | require('./IconUnlock.js');
|
143 | require('./IconUp.js');
|
144 | require('./IconUpload.js');
|
145 | require('./IconUser.js');
|
146 | require('./IconView.js');
|
147 | require('./IconVote.js');
|
148 | require('./IconWallet.js');
|
149 | require('./IconWarning.js');
|
150 | require('./IconWorld.js');
|
151 | require('./IconWrite.js');
|
152 | require('./IconZoomIn.js');
|
153 | require('./IconZoomOut.js');
|
154 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
155 | require('react-dom');
|
156 | var web = require('./web-d0294535.js');
|
157 | var Checkbox = require('./Checkbox.js');
|
158 | require('./Button.js');
|
159 | require('./ButtonIcon.js');
|
160 | var ToggleButton = require('./ToggleButton.js');
|
161 | var OpenedSurfaceBorder = require('./OpenedSurfaceBorder.js');
|
162 |
|
163 | function 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 |
|
165 | function _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 |
|
167 | var _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 |
|
182 | var _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 |
|
191 | var _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 |
|
200 | var _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 |
|
207 | var _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 |
|
220 | function 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 React__default.createElement(React__default.Fragment, null, entries.map(function (entry, index) {
|
244 | var hasExpansion = entry.expansion.content.length > 0;
|
245 | return 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 | }, React__default.createElement(OpenedSurfaceBorder.OpenedSurfaceBorder, {
|
253 | opened: entry.index === opened
|
254 | }), sideSpace && React__default.createElement(_StyledDiv2, {
|
255 | _css6: 1.5 * constants.GU,
|
256 | _css7: 6.5 * constants.GU
|
257 | }, selectable && React__default.createElement(Select, {
|
258 | index: entry.index,
|
259 | selected: entry.selected,
|
260 | onSelect: onSelect
|
261 | }), !selectable && hasExpansion && React__default.createElement(ToggleButton.ToggleButton, {
|
262 | opened: entry.index === opened,
|
263 | onClick: function onClick() {
|
264 | return toggleEntry(entry.index);
|
265 | }
|
266 | })), entry.actions && React__default.createElement(_StyledDiv3, {
|
267 | _css8: 2 * constants.GU,
|
268 | _css9: 3 * constants.GU
|
269 | }, entry.actions), React__default.createElement("div", null, entry.entryNodes.map(function (content, index) {
|
270 | return [
|
271 | content,
|
272 | fields[index].label,
|
273 | fields[index].priority && fields[index].priority || 0];
|
274 | })
|
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 React__default.createElement(_StyledDiv4, {
|
283 | key: index,
|
284 | _css10: index === entryNodes.length - 1 ? 2 * constants.GU : 0
|
285 | }, 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), React__default.createElement("div", null, content));
|
291 | })), hasExpansion && React__default.createElement(EntryExpansion, {
|
292 | expansion: entry.expansion,
|
293 | opened: opened === entry.index,
|
294 | rowHeight: rowHeight
|
295 | }));
|
296 | }));
|
297 | }
|
298 |
|
299 | ListView.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 | };
|
310 |
|
311 |
|
312 |
|
313 | var _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 |
|
326 | var _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 |
|
335 | function EntryExpansion(_ref4) {
|
336 | var expansion = _ref4.expansion,
|
337 | opened = _ref4.opened,
|
338 | rowHeight = _ref4.rowHeight;
|
339 | var theme = Theme.useTheme();
|
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 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({}, springs.springs.smooth, {
|
368 | precision: 0.1
|
369 | })
|
370 | }, function (show) {
|
371 | return show && function (_ref5) {
|
372 | var height = _ref5.height;
|
373 | return 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 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 |
|
395 | function 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 React__default.createElement(Checkbox.default, {
|
403 | onChange: change,
|
404 | checked: selected
|
405 | });
|
406 | }
|
407 |
|
408 | exports.ListView = ListView;
|
409 |
|