@urbanos/react-discovery-ui 2.1.55 → 2.1.57
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/lib/components/code-editor/code-editor.js +1 -0
- package/lib/components/data-view/data-view.js +7 -24
- package/lib/components/dataset-metadata/dataset-metadata.js +3 -15
- package/lib/components/dataset-metadata/dataset-metadata.scss +4 -0
- package/lib/components/facet-sidebar/facet-sidebar.scss +0 -5
- package/lib/components/generic-elements/arrow-left-button/arrow-left-button.js +1 -0
- package/lib/components/generic-elements/arrow-right-button/arrow-right-button.js +1 -0
- package/lib/components/organization/organization.js +1 -0
- package/lib/components/share/share.scss +18 -1
- package/lib/pages/dataset-detail-view/dataset-detail-view.scss +26 -10
- package/lib/pages/dataset-list-view/dataset-list-view.js +1 -5
- package/lib/pages/dataset-view/dataset-view.js +44 -5
- package/lib/pages/dataset-view/dataset-view.scss +52 -0
- package/lib/pages/dataset-view/dataset-view.test.js +60 -1
- package/lib/pages/visualization-view/visualization-view.scss +0 -5
- package/package.json +1 -1
|
@@ -175,8 +175,6 @@ var DataTable = function DataTable(_ref) {
|
|
|
175
175
|
if (coords) activateCell(coords.row, coords.col);
|
|
176
176
|
};
|
|
177
177
|
var dataRows = table.getRowModel().rows;
|
|
178
|
-
var pageIndex = pagination.pageIndex;
|
|
179
|
-
var pageSize = pagination.pageSize;
|
|
180
178
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
181
179
|
style: {
|
|
182
180
|
height: '400px',
|
|
@@ -184,30 +182,22 @@ var DataTable = function DataTable(_ref) {
|
|
|
184
182
|
}
|
|
185
183
|
}, /*#__PURE__*/_react.default.createElement("table", {
|
|
186
184
|
ref: tableRef,
|
|
187
|
-
role: "grid",
|
|
188
185
|
tabIndex: 0,
|
|
189
|
-
"aria-activedescendant": activeCellId,
|
|
190
|
-
"aria-rowcount": dataRows.length + 1,
|
|
191
|
-
"aria-colcount": columns.length,
|
|
192
186
|
style: {
|
|
193
|
-
width: table.getTotalSize()
|
|
187
|
+
width: table.getTotalSize() == 0 ? '100%' : table.getTotalSize()
|
|
194
188
|
},
|
|
195
189
|
onClick: handleTableClick
|
|
196
190
|
}, /*#__PURE__*/_react.default.createElement("caption", null, datasetName ? "".concat(datasetName, " Dataset Preview") : 'Dataset Preview'), /*#__PURE__*/_react.default.createElement("thead", null, table.getHeaderGroups().map(function (headerGroup) {
|
|
197
191
|
return /*#__PURE__*/_react.default.createElement("tr", {
|
|
198
|
-
key: headerGroup.id
|
|
199
|
-
role: "row",
|
|
200
|
-
"aria-rowindex": 1
|
|
192
|
+
key: headerGroup.id
|
|
201
193
|
}, headerGroup.headers.map(function (header, colIndex) {
|
|
202
194
|
var _header$column$column;
|
|
203
195
|
return /*#__PURE__*/_react.default.createElement("th", {
|
|
204
196
|
key: header.id,
|
|
205
197
|
id: colHeaderId(colIndex),
|
|
206
|
-
role: "columnheader",
|
|
207
198
|
scope: "col",
|
|
208
199
|
"data-row": 0,
|
|
209
200
|
"data-col": colIndex,
|
|
210
|
-
"aria-colindex": colIndex + 1,
|
|
211
201
|
className: "".concat(((_header$column$column = header.column.columnDef.meta) === null || _header$column$column === void 0 ? void 0 : _header$column$column.headerClassName) || 'table-header').concat(activeCellId === colHeaderId(colIndex) ? ' active-cell' : ''),
|
|
212
202
|
style: {
|
|
213
203
|
width: header.getSize(),
|
|
@@ -220,40 +210,30 @@ var DataTable = function DataTable(_ref) {
|
|
|
220
210
|
"aria-hidden": "true"
|
|
221
211
|
}));
|
|
222
212
|
}));
|
|
223
|
-
})), /*#__PURE__*/_react.default.createElement("tbody", null, dataRows.length === 0 ? /*#__PURE__*/_react.default.createElement("tr", {
|
|
224
|
-
|
|
225
|
-
}, /*#__PURE__*/_react.default.createElement("td", {
|
|
226
|
-
role: "gridcell",
|
|
227
|
-
colSpan: columns.length,
|
|
213
|
+
})), /*#__PURE__*/_react.default.createElement("tbody", null, dataRows.length === 0 ? /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", {
|
|
214
|
+
colSpan: Math.max(columns.length, 1),
|
|
228
215
|
className: "no-data-message"
|
|
229
216
|
}, "No rows found")) : dataRows.map(function (row, rowIndex) {
|
|
230
217
|
var tableRow = rowIndex + 1;
|
|
231
|
-
var ariaRowIndex = pageIndex * pageSize + rowIndex + 2; // +1 for header, +1 for 1-based
|
|
232
218
|
return /*#__PURE__*/_react.default.createElement("tr", {
|
|
233
219
|
key: row.id,
|
|
234
|
-
role: "row",
|
|
235
|
-
"aria-rowindex": ariaRowIndex,
|
|
236
220
|
className: rowIndex % 2 === 0 ? 'striped-row' : ''
|
|
237
221
|
}, row.getVisibleCells().map(function (cell, colIndex) {
|
|
238
222
|
var content = (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext());
|
|
239
223
|
return colIndex === 0 ? /*#__PURE__*/_react.default.createElement("th", {
|
|
240
224
|
key: cell.id,
|
|
241
225
|
id: rowHeaderId(rowIndex),
|
|
242
|
-
role: "rowheader",
|
|
243
226
|
scope: "row",
|
|
244
227
|
headers: colHeaderId(0),
|
|
245
228
|
"data-row": tableRow,
|
|
246
229
|
"data-col": colIndex,
|
|
247
|
-
"aria-colindex": 1,
|
|
248
230
|
className: "row-header".concat(activeCellId === rowHeaderId(rowIndex) ? ' active-cell' : '')
|
|
249
231
|
}, content) : /*#__PURE__*/_react.default.createElement("td", {
|
|
250
232
|
key: cell.id,
|
|
251
233
|
id: dataCellId(rowIndex, colIndex),
|
|
252
|
-
role: "gridcell",
|
|
253
234
|
headers: "".concat(colHeaderId(colIndex), " ").concat(rowHeaderId(rowIndex)),
|
|
254
235
|
"data-row": tableRow,
|
|
255
236
|
"data-col": colIndex,
|
|
256
|
-
"aria-colindex": colIndex + 1,
|
|
257
237
|
className: activeCellId === dataCellId(rowIndex, colIndex) ? 'active-cell' : undefined
|
|
258
238
|
}, content);
|
|
259
239
|
}));
|
|
@@ -266,6 +246,9 @@ var DataTable = function DataTable(_ref) {
|
|
|
266
246
|
disabled: !table.getCanPreviousPage(),
|
|
267
247
|
"aria-label": "Previous page"
|
|
268
248
|
}, '<'), /*#__PURE__*/_react.default.createElement("span", null, "Page", ' ', /*#__PURE__*/_react.default.createElement("input", {
|
|
249
|
+
id: "page-number-input",
|
|
250
|
+
type: "number",
|
|
251
|
+
label: "Page number input",
|
|
269
252
|
"data-testid": "page-number-input",
|
|
270
253
|
value: table.getState().pagination.pageIndex + 1,
|
|
271
254
|
onChange: function onChange(e) {
|
|
@@ -88,7 +88,6 @@ var MetadataTable = function MetadataTable(_ref) {
|
|
|
88
88
|
})));
|
|
89
89
|
};
|
|
90
90
|
var _default = exports.default = function _default(_ref2) {
|
|
91
|
-
var _dataset$homepage, _dataset$sourceUrl, _dataset$license;
|
|
92
91
|
var dataset = _ref2.dataset;
|
|
93
92
|
if (!dataset) return /*#__PURE__*/_react.default.createElement("div", null);
|
|
94
93
|
var referenceUrls = dataset.referenceUrls || [];
|
|
@@ -119,10 +118,8 @@ var _default = exports.default = function _default(_ref2) {
|
|
|
119
118
|
}, {
|
|
120
119
|
Field: 'Data Dictionary URL',
|
|
121
120
|
Value: dataset.describedByUrl ? /*#__PURE__*/_react.default.createElement("a", {
|
|
122
|
-
role: "link",
|
|
123
121
|
href: dataset.describedByUrl,
|
|
124
122
|
target: "_blank",
|
|
125
|
-
"aria-label": "Data Dictionary URL",
|
|
126
123
|
rel: "noreferrer"
|
|
127
124
|
}, dataset.describedByUrl) : /*#__PURE__*/_react.default.createElement("span", null, "Unavailable")
|
|
128
125
|
}, {
|
|
@@ -137,46 +134,38 @@ var _default = exports.default = function _default(_ref2) {
|
|
|
137
134
|
}, {
|
|
138
135
|
Field: 'Homepage URL',
|
|
139
136
|
Value: dataset.homepage ? /*#__PURE__*/_react.default.createElement("a", {
|
|
140
|
-
role: "link",
|
|
141
137
|
href: dataset.homepage,
|
|
142
138
|
target: "_blank",
|
|
143
|
-
"aria-label": "Homepage URL",
|
|
144
139
|
rel: "noreferrer"
|
|
145
|
-
},
|
|
140
|
+
}, dataset.homepage) : /*#__PURE__*/_react.default.createElement("span", null, "Unavailable")
|
|
146
141
|
}, {
|
|
147
142
|
Field: 'Related Documents',
|
|
148
143
|
Value: referenceUrls.length === 0 ? /*#__PURE__*/_react.default.createElement("span", null, "None") : referenceUrls.map(function (url) {
|
|
149
144
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
150
145
|
key: url
|
|
151
146
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
152
|
-
role: "link",
|
|
153
147
|
href: url,
|
|
154
148
|
target: "_blank",
|
|
155
|
-
"aria-label": "Related Document URL",
|
|
156
149
|
rel: "noreferrer"
|
|
157
150
|
}, url));
|
|
158
151
|
})
|
|
159
152
|
}, {
|
|
160
153
|
Field: 'Source URL',
|
|
161
154
|
Value: dataset.sourceUrl ? /*#__PURE__*/_react.default.createElement("a", {
|
|
162
|
-
role: "link",
|
|
163
155
|
href: dataset.sourceUrl,
|
|
164
156
|
target: "_blank",
|
|
165
|
-
"aria-label": "Source URL",
|
|
166
157
|
rel: "noreferrer"
|
|
167
|
-
},
|
|
158
|
+
}, dataset.sourceUrl) : /*#__PURE__*/_react.default.createElement("span", null, "Unavailable")
|
|
168
159
|
}, {
|
|
169
160
|
Field: 'Source Type',
|
|
170
161
|
Value: dataset.sourceType
|
|
171
162
|
}, {
|
|
172
163
|
Field: 'License',
|
|
173
164
|
Value: dataset.license ? /*#__PURE__*/_react.default.createElement("a", {
|
|
174
|
-
role: "link",
|
|
175
165
|
href: dataset.license,
|
|
176
166
|
target: "_blank",
|
|
177
|
-
"aria-label": "License URL",
|
|
178
167
|
rel: "noreferrer"
|
|
179
|
-
},
|
|
168
|
+
}, dataset.license) : /*#__PURE__*/_react.default.createElement("span", null, "Unavailable")
|
|
180
169
|
}, {
|
|
181
170
|
Field: 'Category',
|
|
182
171
|
Value: dataset.catagories
|
|
@@ -205,7 +194,6 @@ var _default = exports.default = function _default(_ref2) {
|
|
|
205
194
|
function mailto(email, name) {
|
|
206
195
|
if (email) {
|
|
207
196
|
return /*#__PURE__*/_react.default.createElement("a", {
|
|
208
|
-
role: "link",
|
|
209
197
|
href: 'mailto:' + email
|
|
210
198
|
}, name);
|
|
211
199
|
} else {
|
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
flex-direction: column;
|
|
7
7
|
padding: 0 2em 0 0;
|
|
8
8
|
float: left;
|
|
9
|
-
margin-top: 20px;
|
|
10
|
-
|
|
11
9
|
}
|
|
12
10
|
|
|
13
11
|
.checkbox-label {
|
|
@@ -98,9 +96,6 @@
|
|
|
98
96
|
background-size: 28px 28px;
|
|
99
97
|
}
|
|
100
98
|
|
|
101
|
-
login-zone login-svgs-and-text span {
|
|
102
|
-
display: none;
|
|
103
|
-
}
|
|
104
99
|
|
|
105
100
|
login-zone login-svgs-and-text .MuiSvgIcon-root {
|
|
106
101
|
font-size: 2.4rem;
|
|
@@ -17,6 +17,7 @@ var _default = exports.default = function _default(_ref) {
|
|
|
17
17
|
innerClass = _ref.innerClass;
|
|
18
18
|
return /*#__PURE__*/React.createElement("button", {
|
|
19
19
|
disabled: disabled,
|
|
20
|
+
"aria-label": "Previous page",
|
|
20
21
|
className: "".concat(className, " ").concat(disabled ? 'disabled' : ''),
|
|
21
22
|
onClick: onClick
|
|
22
23
|
}, /*#__PURE__*/React.createElement(_arrow_left.default, {
|
|
@@ -17,6 +17,7 @@ var _default = exports.default = function _default(_ref) {
|
|
|
17
17
|
innerClass = _ref.innerClass;
|
|
18
18
|
return /*#__PURE__*/React.createElement("button", {
|
|
19
19
|
disabled: disabled,
|
|
20
|
+
"aria-label": "Next page",
|
|
20
21
|
className: "".concat(className, " ").concat(disabled ? 'disabled' : ''),
|
|
21
22
|
onClick: onClick
|
|
22
23
|
}, /*#__PURE__*/React.createElement(_arrow_right.default, {
|
|
@@ -12,6 +12,7 @@ var _default = exports.default = function _default(_ref) {
|
|
|
12
12
|
className: "organization-header"
|
|
13
13
|
}, "Organization Info"), /*#__PURE__*/React.createElement("a", {
|
|
14
14
|
role: "link",
|
|
15
|
+
"aria-label": "View ".concat(organization.title, " datasets"),
|
|
15
16
|
href: "/?".concat(_utils.QueryStringBuilder.createFilterQueryString('organization', organization.title))
|
|
16
17
|
}, /*#__PURE__*/React.createElement("img", {
|
|
17
18
|
"data-testid": "organization-logo",
|
|
@@ -63,4 +63,21 @@ share-zone {
|
|
|
63
63
|
display: flex;
|
|
64
64
|
padding: 6px;
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
|
|
67
|
+
@media only screen and (max-width: 600px) {
|
|
68
|
+
.share-icons {
|
|
69
|
+
flex-wrap: wrap;
|
|
70
|
+
gap: 0.5rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.shareButton {
|
|
74
|
+
margin: 0;
|
|
75
|
+
flex: 0 0 32px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.button.clipboard {
|
|
79
|
+
width: 100%;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
dataset-detail-view {
|
|
4
4
|
@include page-with-left-bar();
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: flex-start;
|
|
7
|
+
gap: 2rem;
|
|
8
|
+
|
|
9
|
+
.left-section {
|
|
10
|
+
float: none;
|
|
11
|
+
width: min-content;
|
|
12
|
+
flex: 0 0 auto;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.right-section {
|
|
16
|
+
float: none;
|
|
17
|
+
width: auto;
|
|
18
|
+
flex: 1 1 auto;
|
|
19
|
+
min-width: 0;
|
|
20
|
+
}
|
|
5
21
|
|
|
6
22
|
dataset-api-doc {
|
|
7
23
|
margin-top: 2.5rem
|
|
@@ -61,24 +77,22 @@ dataset-detail-view {
|
|
|
61
77
|
}
|
|
62
78
|
|
|
63
79
|
@media only screen and (max-width: 600px) {
|
|
80
|
+
display: block;
|
|
81
|
+
|
|
64
82
|
.dataset-detail-view {
|
|
65
83
|
min-width:400px;
|
|
66
84
|
padding:4%;
|
|
67
85
|
}
|
|
68
|
-
dataset-view .header {
|
|
69
|
-
display:none;
|
|
70
|
-
}
|
|
71
86
|
.left-section, .right-section {
|
|
72
87
|
width:100%;
|
|
73
|
-
float:
|
|
88
|
+
float:none;
|
|
74
89
|
clear:both;
|
|
75
90
|
display:block;
|
|
76
91
|
}
|
|
77
92
|
dataset-organization .logo {
|
|
78
|
-
display:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
display:none;
|
|
93
|
+
display:block;
|
|
94
|
+
max-width:120px;
|
|
95
|
+
margin:0.75rem 0;
|
|
82
96
|
}
|
|
83
97
|
.download-button {
|
|
84
98
|
display:none;
|
|
@@ -93,7 +107,7 @@ dataset-detail-view {
|
|
|
93
107
|
font-weight:normal;
|
|
94
108
|
}
|
|
95
109
|
dataset-organization .organization-header {
|
|
96
|
-
display:
|
|
110
|
+
display:block;
|
|
97
111
|
}
|
|
98
112
|
dataset-details .name {
|
|
99
113
|
font-size:1.5rem;
|
|
@@ -116,7 +130,9 @@ dataset-detail-view {
|
|
|
116
130
|
text-transform:uppercase;
|
|
117
131
|
}
|
|
118
132
|
dataset-organization .description {
|
|
119
|
-
display:
|
|
133
|
+
display:block;
|
|
134
|
+
font-size:0.9rem;
|
|
135
|
+
line-height:1.3;
|
|
120
136
|
}
|
|
121
137
|
api-example .example-table {
|
|
122
138
|
font-size:0.8em;
|
|
@@ -81,11 +81,7 @@ var DatasetListView = function DatasetListView(props) {
|
|
|
81
81
|
callback: searchParamsManager.updateSearchText
|
|
82
82
|
}), /*#__PURE__*/React.createElement("div", {
|
|
83
83
|
className: "left-section"
|
|
84
|
-
}, /*#__PURE__*/React.createElement(_auth0LoginZone.default, null), /*#__PURE__*/React.createElement("div", {
|
|
85
|
-
style: {
|
|
86
|
-
height: '0.5rem'
|
|
87
|
-
}
|
|
88
|
-
}, /*#__PURE__*/React.createElement(_checkbox.default, {
|
|
84
|
+
}, /*#__PURE__*/React.createElement(_auth0LoginZone.default, null), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_checkbox.default, {
|
|
89
85
|
id: "toggleAPIDatasets",
|
|
90
86
|
clickHandler: searchParamsManager.toggleApiAccessible,
|
|
91
87
|
text: "Only Show API Accessible Datasets",
|
|
@@ -41,12 +41,21 @@ var _default = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
41
41
|
_this = _callSuper(this, _default);
|
|
42
42
|
_this.state = {
|
|
43
43
|
index: 0,
|
|
44
|
-
localTitle: ''
|
|
44
|
+
localTitle: '',
|
|
45
|
+
isMobileMenuOpen: false
|
|
45
46
|
};
|
|
46
47
|
return _this;
|
|
47
48
|
}
|
|
48
49
|
_inherits(_default, _Component);
|
|
49
50
|
return _createClass(_default, [{
|
|
51
|
+
key: "selectTab",
|
|
52
|
+
value: function selectTab(tabIndex) {
|
|
53
|
+
this.setState({
|
|
54
|
+
index: tabIndex,
|
|
55
|
+
isMobileMenuOpen: false
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
50
59
|
key: "generateVisualizationLink",
|
|
51
60
|
value: function generateVisualizationLink() {
|
|
52
61
|
return this.props.visualizationId && (0, _reactRouter.generatePath)(_routes.default.visualizationView, {
|
|
@@ -117,9 +126,7 @@ var _default = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
117
126
|
className: "dataset-view",
|
|
118
127
|
selectedIndex: this.state.index,
|
|
119
128
|
onSelect: function onSelect(tabIndex) {
|
|
120
|
-
return _this2.
|
|
121
|
-
index: tabIndex
|
|
122
|
-
});
|
|
129
|
+
return _this2.selectTab(tabIndex);
|
|
123
130
|
}
|
|
124
131
|
}, /*#__PURE__*/_react.default.createElement(_reactTabs.TabList, {
|
|
125
132
|
className: "header"
|
|
@@ -148,7 +155,39 @@ var _default = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
148
155
|
target: "_blank",
|
|
149
156
|
href: "https://plotly.com/chart-studio-help/tutorials/#basic",
|
|
150
157
|
rel: "noreferrer"
|
|
151
|
-
}, "Plot.ly Help")))),
|
|
158
|
+
}, "Plot.ly Help")))), /*#__PURE__*/_react.default.createElement("div", {
|
|
159
|
+
className: "mobile-tab-menu"
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
161
|
+
type: "button",
|
|
162
|
+
className: "mobile-tab-toggle",
|
|
163
|
+
onClick: function onClick() {
|
|
164
|
+
return _this2.setState(function (_ref2) {
|
|
165
|
+
var isMobileMenuOpen = _ref2.isMobileMenuOpen;
|
|
166
|
+
return {
|
|
167
|
+
isMobileMenuOpen: !isMobileMenuOpen
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
},
|
|
171
|
+
"aria-label": "Open tab menu",
|
|
172
|
+
"aria-expanded": this.state.isMobileMenuOpen
|
|
173
|
+
}, "\u2630"), this.state.isMobileMenuOpen && /*#__PURE__*/_react.default.createElement("div", {
|
|
174
|
+
className: "mobile-tab-dropdown"
|
|
175
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
176
|
+
type: "button",
|
|
177
|
+
onClick: function onClick() {
|
|
178
|
+
return _this2.selectTab(0);
|
|
179
|
+
}
|
|
180
|
+
}, "Dataset Details"), /*#__PURE__*/_react.default.createElement("button", {
|
|
181
|
+
type: "button",
|
|
182
|
+
onClick: function onClick() {
|
|
183
|
+
return _this2.selectTab(1);
|
|
184
|
+
}
|
|
185
|
+
}, "Write SQL"), this.isVisualizationEnabled() && /*#__PURE__*/_react.default.createElement("button", {
|
|
186
|
+
type: "button",
|
|
187
|
+
onClick: function onClick() {
|
|
188
|
+
return _this2.selectTab(2);
|
|
189
|
+
}
|
|
190
|
+
}, "Visualize"))), this.isNotDatasetDetailsTab() && /*#__PURE__*/_react.default.createElement("span", {
|
|
152
191
|
className: "action-area"
|
|
153
192
|
}, /*#__PURE__*/_react.default.createElement(_visualizationListMenuItem.default, {
|
|
154
193
|
isAuthenticated: this.props.auth.isAuthenticated
|
|
@@ -92,4 +92,56 @@ dataset-view {
|
|
|
92
92
|
loading-element {
|
|
93
93
|
@include default-loading-icon();
|
|
94
94
|
}
|
|
95
|
+
|
|
96
|
+
.mobile-tab-menu {
|
|
97
|
+
display: none;
|
|
98
|
+
position: relative;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@media only screen and (max-width: 600px) {
|
|
102
|
+
.header {
|
|
103
|
+
display: flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
justify-content: space-between;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.tab-area {
|
|
109
|
+
font-size: small;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.react-tabs__tab {
|
|
113
|
+
padding: 6px 12px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.mobile-tab-menu {
|
|
117
|
+
display: block;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.mobile-tab-toggle {
|
|
121
|
+
border: 0;
|
|
122
|
+
background: transparent;
|
|
123
|
+
font-size: 22px;
|
|
124
|
+
padding: 8px 12px;
|
|
125
|
+
cursor: pointer;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.mobile-tab-dropdown {
|
|
129
|
+
position: absolute;
|
|
130
|
+
top: calc(100% + 4px);
|
|
131
|
+
left: 0;
|
|
132
|
+
z-index: 20;
|
|
133
|
+
background: white;
|
|
134
|
+
border: 1px solid $light-grey;
|
|
135
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.mobile-tab-dropdown button {
|
|
139
|
+
display: block;
|
|
140
|
+
width: 100%;
|
|
141
|
+
text-align: left;
|
|
142
|
+
padding: 10px 12px;
|
|
143
|
+
border: 0;
|
|
144
|
+
background: white;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
95
147
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { shallow } from 'enzyme'
|
|
2
|
-
import { Tab, TabPanel, TabList } from 'react-tabs'
|
|
2
|
+
import { Tab, TabPanel, TabList, Tabs } from 'react-tabs'
|
|
3
3
|
|
|
4
4
|
import DatasetView from './dataset-view'
|
|
5
5
|
import QueryView from '../query-view'
|
|
@@ -62,6 +62,60 @@ describe('dataset view', () => {
|
|
|
62
62
|
expect(subject.find(VisualizationSaveMenuItem)).toHaveLength(0)
|
|
63
63
|
expect(subject.find(VisualizationListMenuItem)).toHaveLength(0)
|
|
64
64
|
})
|
|
65
|
+
|
|
66
|
+
describe('mobile tab menu', () => {
|
|
67
|
+
it('renders mobile menu toggle button', () => {
|
|
68
|
+
const mobileMenuToggle = subject.find('.mobile-tab-toggle')
|
|
69
|
+
expect(mobileMenuToggle).toHaveLength(1)
|
|
70
|
+
expect(mobileMenuToggle.prop('aria-expanded')).toBe(false)
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
it('toggles dropdown open and closed when menu button is clicked', () => {
|
|
74
|
+
subject.find('.mobile-tab-toggle').simulate('click')
|
|
75
|
+
expect(subject.state('isMobileMenuOpen')).toBe(true)
|
|
76
|
+
expect(subject.find('.mobile-tab-dropdown')).toHaveLength(1)
|
|
77
|
+
|
|
78
|
+
subject.find('.mobile-tab-toggle').simulate('click')
|
|
79
|
+
expect(subject.state('isMobileMenuOpen')).toBe(false)
|
|
80
|
+
expect(subject.find('.mobile-tab-dropdown')).toHaveLength(0)
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
it('selecting Dataset Details from dropdown sets index to 0 and closes menu', () => {
|
|
84
|
+
subject.setState({ index: 2, isMobileMenuOpen: true })
|
|
85
|
+
|
|
86
|
+
subject.find('.mobile-tab-dropdown button').at(0).simulate('click')
|
|
87
|
+
|
|
88
|
+
expect(subject.state('index')).toBe(0)
|
|
89
|
+
expect(subject.state('isMobileMenuOpen')).toBe(false)
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
it('selecting Write SQL from dropdown sets index to 1 and closes menu', () => {
|
|
93
|
+
subject.setState({ index: 0, isMobileMenuOpen: true })
|
|
94
|
+
|
|
95
|
+
subject.find('.mobile-tab-dropdown button').at(1).simulate('click')
|
|
96
|
+
|
|
97
|
+
expect(subject.state('index')).toBe(1)
|
|
98
|
+
expect(subject.state('isMobileMenuOpen')).toBe(false)
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
it('selecting Visualize from dropdown sets index to 2 when visualizations are enabled', () => {
|
|
102
|
+
subject.setState({ index: 0, isMobileMenuOpen: true })
|
|
103
|
+
|
|
104
|
+
subject.find('.mobile-tab-dropdown button').at(2).simulate('click')
|
|
105
|
+
|
|
106
|
+
expect(subject.state('index')).toBe(2)
|
|
107
|
+
expect(subject.state('isMobileMenuOpen')).toBe(false)
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
it('closes mobile menu when selecting a tab via Tabs onSelect callback', () => {
|
|
111
|
+
subject.setState({ isMobileMenuOpen: true })
|
|
112
|
+
|
|
113
|
+
subject.find(Tabs).prop('onSelect')(1)
|
|
114
|
+
|
|
115
|
+
expect(subject.state('index')).toBe(1)
|
|
116
|
+
expect(subject.state('isMobileMenuOpen')).toBe(false)
|
|
117
|
+
})
|
|
118
|
+
})
|
|
65
119
|
})
|
|
66
120
|
|
|
67
121
|
describe('Visualizations when DISABLE_VISUALIZATIONS is true', () => {
|
|
@@ -87,6 +141,11 @@ describe('Visualizations when DISABLE_VISUALIZATIONS is true', () => {
|
|
|
87
141
|
const test = subject.find('#plotlyhelp')
|
|
88
142
|
expect(test.length).toEqual(0)
|
|
89
143
|
})
|
|
144
|
+
|
|
145
|
+
it('does not have the visualize option in the mobile tab dropdown', () => {
|
|
146
|
+
subject.find('.mobile-tab-toggle').simulate('click')
|
|
147
|
+
expect(subject.find('.mobile-tab-dropdown button')).toHaveLength(2)
|
|
148
|
+
})
|
|
90
149
|
})
|
|
91
150
|
|
|
92
151
|
describe('dataset view when dataset is not loaded', () => {
|