@imposium-hub/components 2.5.11-7 → 2.5.11-9
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/cjs/components/color-field/ColorField.js +9 -14
- package/dist/cjs/components/color-field/ColorField.js.map +1 -1
- package/dist/cjs/components/data-table/DataTable.d.ts +1 -0
- package/dist/cjs/components/data-table/DataTable.js +75 -5
- package/dist/cjs/components/data-table/DataTable.js.map +1 -1
- package/dist/cjs/components/header/Header.d.ts +1 -0
- package/dist/cjs/components/header/Header.js +22 -2
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -1
- package/dist/cjs/index.js +10 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/color-field/ColorField.js +9 -14
- package/dist/esm/components/color-field/ColorField.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.d.ts +1 -0
- package/dist/esm/components/data-table/DataTable.js +73 -3
- package/dist/esm/components/data-table/DataTable.js.map +1 -1
- package/dist/esm/components/header/Header.d.ts +1 -0
- package/dist/esm/components/header/Header.js +19 -3
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/assets/StoryTableNameFilter.tsx +40 -0
- package/src/components/color-field/ColorField.tsx +16 -17
- package/src/components/data-table/DataTable.tsx +90 -5
- package/src/components/header/Header.tsx +25 -2
- package/src/index.ts +7 -0
- package/{dist/esm/redux/actions/story-filters.js → src/redux/actions/story-filter.ts} +6 -4
- package/{dist/esm/redux/reducers/story-filters.js → src/redux/reducers/story-filter.ts} +6 -4
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.d.ts +0 -2
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.js +0 -94
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.js.map +0 -1
- package/dist/cjs/redux/actions/asset-filters copy.d.ts +0 -4
- package/dist/cjs/redux/actions/asset-filters copy.js +0 -18
- package/dist/cjs/redux/actions/asset-filters copy.js.map +0 -1
- package/dist/cjs/redux/actions/story-filters.d.ts +0 -4
- package/dist/cjs/redux/actions/story-filters.js +0 -18
- package/dist/cjs/redux/actions/story-filters.js.map +0 -1
- package/dist/cjs/redux/reducers/asset-filters copy.d.ts +0 -2
- package/dist/cjs/redux/reducers/asset-filters copy.js +0 -39
- package/dist/cjs/redux/reducers/asset-filters copy.js.map +0 -1
- package/dist/cjs/redux/reducers/story-filters.d.ts +0 -2
- package/dist/cjs/redux/reducers/story-filters.js +0 -33
- package/dist/cjs/redux/reducers/story-filters.js.map +0 -1
- package/dist/esm/components/assets/AssetsTableNameFilter copy.d.ts +0 -2
- package/dist/esm/components/assets/AssetsTableNameFilter copy.js +0 -20
- package/dist/esm/components/assets/AssetsTableNameFilter copy.js.map +0 -1
- package/dist/esm/redux/actions/asset-filters copy.d.ts +0 -4
- package/dist/esm/redux/actions/asset-filters copy.js +0 -13
- package/dist/esm/redux/actions/asset-filters copy.js.map +0 -1
- package/dist/esm/redux/actions/story-filters.d.ts +0 -4
- package/dist/esm/redux/actions/story-filters.js.map +0 -1
- package/dist/esm/redux/reducers/asset-filters copy.d.ts +0 -2
- package/dist/esm/redux/reducers/asset-filters copy.js +0 -22
- package/dist/esm/redux/reducers/asset-filters copy.js.map +0 -1
- package/dist/esm/redux/reducers/story-filters.d.ts +0 -2
- package/dist/esm/redux/reducers/story-filters.js.map +0 -1
|
@@ -90,6 +90,8 @@ interface IDataTableProps {
|
|
|
90
90
|
disableKeyScroll?: boolean;
|
|
91
91
|
|
|
92
92
|
expandTags?: boolean;
|
|
93
|
+
|
|
94
|
+
keyboardNav?: boolean;
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
const processColumnData = (freshColumns): any[] => {
|
|
@@ -119,7 +121,7 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
119
121
|
const [didMount, setDidMount] = React.useState(false);
|
|
120
122
|
const [data, setData] = React.useState([]);
|
|
121
123
|
const [columns, setColumns] = React.useState([]);
|
|
122
|
-
|
|
124
|
+
const [selectedRowId, setSelectedRowId] = React.useState<number>(null);
|
|
123
125
|
const manualPagination: boolean =
|
|
124
126
|
Number.isInteger(props.currentPage) && typeof props.onPage === 'function';
|
|
125
127
|
const manualSortBy: boolean =
|
|
@@ -205,6 +207,8 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
205
207
|
React.useEffect(() => {
|
|
206
208
|
if (Array.isArray(props.data)) {
|
|
207
209
|
setData(props.data);
|
|
210
|
+
setSelectedRowId(null);
|
|
211
|
+
scrollToTop();
|
|
208
212
|
}
|
|
209
213
|
}, [props.data]);
|
|
210
214
|
|
|
@@ -226,6 +230,68 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
226
230
|
}
|
|
227
231
|
}, [sortBy]);
|
|
228
232
|
|
|
233
|
+
const getRowElem = () => {
|
|
234
|
+
return document.getElementsByClassName('ip-table-row selected keyboardNav')[0];
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
const getBodyEle = () => {
|
|
238
|
+
return document.querySelector('tbody.ip-table-body.keyboardNav');
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
const scrollIntoView = () => {
|
|
242
|
+
getRowElem().scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
const scrollToTop = () => {
|
|
246
|
+
if (getBodyEle()) {
|
|
247
|
+
getBodyEle().scrollTo({ top: 0, behavior: 'smooth' });
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const scrollToBottom = () => {
|
|
252
|
+
const y = getRowElem().scrollHeight * rowData.length;
|
|
253
|
+
getBodyEle().scrollTo({ top: y, behavior: 'smooth' });
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
const rowSelector = (e) => {
|
|
257
|
+
e.preventDefault();
|
|
258
|
+
e.stopPropagation();
|
|
259
|
+
let rowId = 0;
|
|
260
|
+
const maxRowId = rowData.length - 1;
|
|
261
|
+
if (e.code === 'ArrowUp') {
|
|
262
|
+
if (selectedRowId === 0 || selectedRowId === null) {
|
|
263
|
+
setSelectedRowId(maxRowId);
|
|
264
|
+
scrollToBottom();
|
|
265
|
+
}
|
|
266
|
+
if (selectedRowId !== 0 && selectedRowId !== null) {
|
|
267
|
+
setSelectedRowId(selectedRowId - 1);
|
|
268
|
+
scrollIntoView();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (e.code === 'ArrowDown') {
|
|
273
|
+
if (selectedRowId === null) {
|
|
274
|
+
setSelectedRowId(0);
|
|
275
|
+
} else {
|
|
276
|
+
rowId = selectedRowId === maxRowId ? 0 : selectedRowId + 1;
|
|
277
|
+
setSelectedRowId(rowId);
|
|
278
|
+
if (rowId === 0) {
|
|
279
|
+
scrollToTop();
|
|
280
|
+
} else {
|
|
281
|
+
scrollIntoView();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (
|
|
287
|
+
e.code === 'Enter' &&
|
|
288
|
+
typeof props.onRowClick === 'function' &&
|
|
289
|
+
selectedRowId !== null
|
|
290
|
+
) {
|
|
291
|
+
props.onRowClick(rows[selectedRowId]);
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
|
|
229
295
|
return (
|
|
230
296
|
<section
|
|
231
297
|
ref={wrapperRef}
|
|
@@ -246,7 +312,17 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
246
312
|
<React.Fragment key='head-fragment'>
|
|
247
313
|
<tr
|
|
248
314
|
{...headerGroup.getHeaderGroupProps()}
|
|
249
|
-
className='ip-table-head-row'
|
|
315
|
+
className='ip-table-head-row'
|
|
316
|
+
onKeyDown={(e) => {
|
|
317
|
+
if (
|
|
318
|
+
(e.code === 'ArrowUp' ||
|
|
319
|
+
e.code === 'ArrowDown' ||
|
|
320
|
+
e.code === 'Enter') &&
|
|
321
|
+
props.keyboardNav
|
|
322
|
+
) {
|
|
323
|
+
rowSelector(e);
|
|
324
|
+
}
|
|
325
|
+
}}>
|
|
250
326
|
{headerGroup.headers.map((column) => {
|
|
251
327
|
const searchable: boolean = column.hasOwnProperty('Search');
|
|
252
328
|
const toggleProps: any = column.getSortByToggleProps();
|
|
@@ -326,7 +402,7 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
326
402
|
|
|
327
403
|
<tbody
|
|
328
404
|
{...getTableBodyProps()}
|
|
329
|
-
className=
|
|
405
|
+
className={`ip-table-body ${props.keyboardNav ? 'keyboardNav' : ''}`}>
|
|
330
406
|
{rowData.map((row, i) => {
|
|
331
407
|
let selectedClass: string = '';
|
|
332
408
|
let activeRef: any;
|
|
@@ -351,8 +427,14 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
351
427
|
|
|
352
428
|
prepareRow(row);
|
|
353
429
|
|
|
430
|
+
if (i === selectedRowId) {
|
|
431
|
+
selectedClass = 'selected';
|
|
432
|
+
}
|
|
433
|
+
|
|
354
434
|
const rowProps = row.getRowProps();
|
|
355
|
-
rowProps.className = `ip-table-row ${selectedClass}
|
|
435
|
+
rowProps.className = `ip-table-row ${selectedClass} ${
|
|
436
|
+
props.keyboardNav ? 'keyboardNav' : ''
|
|
437
|
+
}`;
|
|
356
438
|
rowProps.onClick = (e) => {
|
|
357
439
|
const onClick = () => {
|
|
358
440
|
if (typeof props.onRowClick === 'function') {
|
|
@@ -375,6 +457,10 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
375
457
|
}
|
|
376
458
|
};
|
|
377
459
|
|
|
460
|
+
rowProps.onMouseMove = () => {
|
|
461
|
+
setSelectedRowId(i);
|
|
462
|
+
};
|
|
463
|
+
|
|
378
464
|
const rowContent = row.cells.map((cell) => (
|
|
379
465
|
<td
|
|
380
466
|
{...cell.getCellProps()}
|
|
@@ -386,7 +472,6 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
386
472
|
));
|
|
387
473
|
const rowId = row?.original?.id || i;
|
|
388
474
|
const rowKey = `row-${rowId}`;
|
|
389
|
-
|
|
390
475
|
const expanded = props.expandTags ? props.expandTags : row.isExpanded;
|
|
391
476
|
return (
|
|
392
477
|
<React.Fragment key={rowKey}>
|
|
@@ -19,6 +19,7 @@ import Select, { createFilter } from 'react-select';
|
|
|
19
19
|
import { setAccessData } from '../../redux/actions/access';
|
|
20
20
|
import { bindActionCreators } from 'redux';
|
|
21
21
|
import { StoryTableTotalRendersCell } from '../assets/StoryTableTotalRendersCell';
|
|
22
|
+
import StoryTableNameFilter from '../assets/StoryTableNameFilter';
|
|
22
23
|
|
|
23
24
|
export interface IHeaderProps {
|
|
24
25
|
email?: string;
|
|
@@ -38,6 +39,7 @@ export interface IHeaderProps {
|
|
|
38
39
|
hideDocs?: boolean;
|
|
39
40
|
showFTLogo?: boolean;
|
|
40
41
|
access: any;
|
|
42
|
+
storyFilter: string;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export interface IHeaderState {
|
|
@@ -290,6 +292,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
290
292
|
Header: 'Name',
|
|
291
293
|
width: 115,
|
|
292
294
|
minWidth: 115,
|
|
295
|
+
Search: () => <StoryTableNameFilter />,
|
|
293
296
|
disableSortBy: false
|
|
294
297
|
},
|
|
295
298
|
{
|
|
@@ -533,12 +536,30 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
533
536
|
? [{ id: order, desc: orderDirection === 'desc' }]
|
|
534
537
|
: undefined;
|
|
535
538
|
|
|
536
|
-
|
|
539
|
+
let sortedStories = _.orderBy(
|
|
537
540
|
activeOrganizationBlob.stories,
|
|
538
541
|
['date_modified'],
|
|
539
542
|
['desc']
|
|
540
543
|
);
|
|
541
544
|
|
|
545
|
+
if (!!this.props.storyFilter) {
|
|
546
|
+
const storyFilter = this.props.storyFilter.toLowerCase();
|
|
547
|
+
|
|
548
|
+
const sortByName = sortedStories.filter((stories) =>
|
|
549
|
+
stories.name.toLowerCase().includes(storyFilter)
|
|
550
|
+
);
|
|
551
|
+
if (sortByName.length > 0) {
|
|
552
|
+
sortedStories = sortByName;
|
|
553
|
+
} else {
|
|
554
|
+
const sortById = sortedStories.filter((stories) =>
|
|
555
|
+
stories.id.includes(storyFilter)
|
|
556
|
+
);
|
|
557
|
+
if (sortById.length > 0) {
|
|
558
|
+
sortedStories = sortById;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
542
563
|
storyMenuInner = (
|
|
543
564
|
<DataTable
|
|
544
565
|
columns={this.getStoriesColumns()}
|
|
@@ -548,6 +569,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
548
569
|
itemsPerPage={activeOrganizationBlob.stories.length}
|
|
549
570
|
hidePaginator={true}
|
|
550
571
|
onRowClick={this.changeStory}
|
|
572
|
+
keyboardNav={true}
|
|
551
573
|
/>
|
|
552
574
|
);
|
|
553
575
|
}
|
|
@@ -682,7 +704,8 @@ const mapStateToProps = (state): any => {
|
|
|
682
704
|
return {
|
|
683
705
|
auth: state.auth,
|
|
684
706
|
story: state.story,
|
|
685
|
-
access: state.access
|
|
707
|
+
access: state.access,
|
|
708
|
+
storyFilter: state.storyFilter.name
|
|
686
709
|
};
|
|
687
710
|
};
|
|
688
711
|
|
package/src/index.ts
CHANGED
|
@@ -161,6 +161,9 @@ import CopyPropIdButton from './components/copy-prop-id-button/CopyPropIdButton'
|
|
|
161
161
|
import Submenu from './components/context-menu/SubMenu';
|
|
162
162
|
import { ConfirmModal, IConfirmModalProps } from './components/confirm-modal/ConfirmModal';
|
|
163
163
|
import AssetsTableAssetIdCell from './components/assets/AssetsTableAssetIdCell';
|
|
164
|
+
import { resetStoryFilter, updateStoryFilter } from './redux/actions/story-filter';
|
|
165
|
+
import storyFilter from './redux/reducers/story-filter';
|
|
166
|
+
import StoryTableNameFilter from './components/assets/StoryTableNameFilter';
|
|
164
167
|
|
|
165
168
|
export {
|
|
166
169
|
AppWrapper,
|
|
@@ -219,6 +222,7 @@ export {
|
|
|
219
222
|
AssetsTableGlobalCell,
|
|
220
223
|
AssetsTableStatusCell,
|
|
221
224
|
AssetsTableNameFilter,
|
|
225
|
+
StoryTableNameFilter,
|
|
222
226
|
AssetsTableAssetIdFilter,
|
|
223
227
|
AssetsTableAssetIdCell,
|
|
224
228
|
AssetsTableNameCell,
|
|
@@ -246,6 +250,8 @@ export {
|
|
|
246
250
|
storyDeleted,
|
|
247
251
|
updateFilters,
|
|
248
252
|
resetFilters,
|
|
253
|
+
updateStoryFilter,
|
|
254
|
+
resetStoryFilter,
|
|
249
255
|
getAssets,
|
|
250
256
|
deleteAssets,
|
|
251
257
|
downloadAssets,
|
|
@@ -260,6 +266,7 @@ export {
|
|
|
260
266
|
deselectAsset,
|
|
261
267
|
resetSelection,
|
|
262
268
|
assetFilters,
|
|
269
|
+
storyFilter,
|
|
263
270
|
assetList,
|
|
264
271
|
assetUploads,
|
|
265
272
|
selectedAssets,
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
const storyFilterActions = {
|
|
1
|
+
const storyFilterActions: any = {
|
|
2
2
|
UPDATE: 'storyFilter/UPDATE',
|
|
3
3
|
RESET: 'storyFilter/RESET'
|
|
4
4
|
};
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
export const updateStoryFilter = (newFilters: any): any => ({
|
|
6
7
|
type: storyFilterActions.UPDATE,
|
|
7
8
|
newFilters
|
|
8
9
|
});
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
export const resetStoryFilter = (): any => ({
|
|
10
12
|
type: storyFilterActions.RESET
|
|
11
13
|
});
|
|
14
|
+
|
|
12
15
|
export default storyFilterActions;
|
|
13
|
-
//# sourceMappingURL=story-filters.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import storyFilterActions from '../actions/story-filter';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
const initialState: any = {
|
|
4
|
+
name: ''
|
|
4
5
|
};
|
|
5
|
-
|
|
6
|
+
|
|
7
|
+
const storyFilter = (state = initialState, action): any => {
|
|
6
8
|
switch (action.type) {
|
|
7
9
|
case storyFilterActions.UPDATE:
|
|
8
10
|
return { ...state, ...action.newFilters };
|
|
@@ -12,5 +14,5 @@ const storyFilter = (state = initialState, action) => {
|
|
|
12
14
|
return state;
|
|
13
15
|
}
|
|
14
16
|
};
|
|
17
|
+
|
|
15
18
|
export default storyFilter;
|
|
16
|
-
//# sourceMappingURL=story-filters.js.map
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
41
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
42
|
-
if (!m) return o;
|
|
43
|
-
var i = m.call(o), r, ar = [], e;
|
|
44
|
-
try {
|
|
45
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
46
|
-
}
|
|
47
|
-
catch (error) { e = { error: error }; }
|
|
48
|
-
finally {
|
|
49
|
-
try {
|
|
50
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
51
|
-
}
|
|
52
|
-
finally { if (e) throw e.error; }
|
|
53
|
-
}
|
|
54
|
-
return ar;
|
|
55
|
-
};
|
|
56
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
57
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
58
|
-
if (ar || !(i in from)) {
|
|
59
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
60
|
-
ar[i] = from[i];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
64
|
-
};
|
|
65
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
66
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
67
|
-
};
|
|
68
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
69
|
-
var React = __importStar(require("react"));
|
|
70
|
-
var TextField_1 = __importDefault(require("../text-field/TextField"));
|
|
71
|
-
var asset_filters_1 = require("../../redux/actions/asset-filters");
|
|
72
|
-
var react_redux_1 = require("react-redux");
|
|
73
|
-
var redux_1 = require("redux");
|
|
74
|
-
var AssetsTableNameFilter = /** @class */ (function (_super) {
|
|
75
|
-
__extends(AssetsTableNameFilter, _super);
|
|
76
|
-
function AssetsTableNameFilter() {
|
|
77
|
-
var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
|
|
78
|
-
_this.render = function () {
|
|
79
|
-
var assetFilters = _this.props.assetFilters;
|
|
80
|
-
return (React.createElement(TextField_1.default, { className: 'asset-name', submittable: true, submittableType: 'search', value: assetFilters.name, doSubmit: function (n) { return _this.props.updateFilters({ name: n }); } }));
|
|
81
|
-
};
|
|
82
|
-
return _this;
|
|
83
|
-
}
|
|
84
|
-
return AssetsTableNameFilter;
|
|
85
|
-
}(React.PureComponent));
|
|
86
|
-
var mapDispatchToProps = function (dispatch) {
|
|
87
|
-
return (0, redux_1.bindActionCreators)({ updateFilters: asset_filters_1.updateFilters }, dispatch);
|
|
88
|
-
};
|
|
89
|
-
var mapStateToProps = function (state) {
|
|
90
|
-
return { assetFilters: state.assetFilters };
|
|
91
|
-
};
|
|
92
|
-
var AssetsTableNameFilterMemoized = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(React.memo(AssetsTableNameFilter));
|
|
93
|
-
exports.default = AssetsTableNameFilterMemoized;
|
|
94
|
-
//# sourceMappingURL=AssetsTableNameFilter%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsTableNameFilter copy.js","sourceRoot":"","sources":["../../../../src/components/assets/AssetsTableNameFilter copy.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,sEAAgD;AAChD,mEAAkE;AAClE,2CAAsC;AACtC,+BAA2C;AAO3C;IAAoC,yCAAgD;IAApF;;QACW,YAAM,GAAG;YACJ,IAAA,YAAY,GAAK,KAAI,CAAC,KAAK,aAAf,CAAgB;YAEpC,OAAO,CACH,oBAAC,mBAAS,IACN,SAAS,EAAC,YAAY,EACtB,WAAW,QACX,eAAe,EAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,CAAC,IAAI,EACxB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAArC,CAAqC,GACxD,CACL,CAAC;QACN,CAAC,CAAC;;IACN,CAAC;IAAD,4BAAC;AAAD,CAAC,AAdD,CAAoC,KAAK,CAAC,aAAa,GActD;AAED,IAAM,kBAAkB,GAAG,UAAC,QAAQ;IAChC,OAAO,IAAA,0BAAkB,EAAC,EAAE,aAAa,+BAAA,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,IAAM,eAAe,GAAG,UAAC,KAAK;IAC1B,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;AAChD,CAAC,CAAC;AAEF,IAAM,6BAA6B,GAAG,IAAA,qBAAO,EACzC,eAAe,EACf,kBAAkB,CACrB,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrC,kBAAe,6BAA6B,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resetFilters = exports.updateFilters = void 0;
|
|
4
|
-
var assetFiltersActions = {
|
|
5
|
-
UPDATE: 'assetFilters/UPDATE',
|
|
6
|
-
RESET: 'footageFilters/RESET'
|
|
7
|
-
};
|
|
8
|
-
var updateFilters = function (newFilters) { return ({
|
|
9
|
-
type: assetFiltersActions.UPDATE,
|
|
10
|
-
newFilters: newFilters
|
|
11
|
-
}); };
|
|
12
|
-
exports.updateFilters = updateFilters;
|
|
13
|
-
var resetFilters = function () { return ({
|
|
14
|
-
type: assetFiltersActions.RESET
|
|
15
|
-
}); };
|
|
16
|
-
exports.resetFilters = resetFilters;
|
|
17
|
-
exports.default = assetFiltersActions;
|
|
18
|
-
//# sourceMappingURL=asset-filters%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-filters copy.js","sourceRoot":"","sources":["../../../../src/redux/actions/asset-filters copy.ts"],"names":[],"mappings":";;;AAAA,IAAM,mBAAmB,GAAQ;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,sBAAsB;CAChC,CAAC;AAEK,IAAM,aAAa,GAAG,UAAC,UAAe,IAAU,OAAA,CAAC;IACpD,IAAI,EAAE,mBAAmB,CAAC,MAAM;IAChC,UAAU,YAAA;CACb,CAAC,EAHqD,CAGrD,CAAC;AAHU,QAAA,aAAa,iBAGvB;AAEI,IAAM,YAAY,GAAG,cAAW,OAAA,CAAC;IACpC,IAAI,EAAE,mBAAmB,CAAC,KAAK;CAClC,CAAC,EAFqC,CAErC,CAAC;AAFU,QAAA,YAAY,gBAEtB;AAEH,kBAAe,mBAAmB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resetStoryFilter = exports.updateStoryFilter = void 0;
|
|
4
|
-
var storyFilterActions = {
|
|
5
|
-
UPDATE: 'storyFilter/UPDATE',
|
|
6
|
-
RESET: 'storyFilter/RESET'
|
|
7
|
-
};
|
|
8
|
-
var updateStoryFilter = function (newFilters) { return ({
|
|
9
|
-
type: storyFilterActions.UPDATE,
|
|
10
|
-
newFilters: newFilters
|
|
11
|
-
}); };
|
|
12
|
-
exports.updateStoryFilter = updateStoryFilter;
|
|
13
|
-
var resetStoryFilter = function () { return ({
|
|
14
|
-
type: storyFilterActions.RESET
|
|
15
|
-
}); };
|
|
16
|
-
exports.resetStoryFilter = resetStoryFilter;
|
|
17
|
-
exports.default = storyFilterActions;
|
|
18
|
-
//# sourceMappingURL=story-filters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"story-filters.js","sourceRoot":"","sources":["../../../../src/redux/actions/story-filters.ts"],"names":[],"mappings":";;;AAAA,IAAM,kBAAkB,GAAQ;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;CAC7B,CAAC;AAEK,IAAM,iBAAiB,GAAG,UAAC,UAAe,IAAU,OAAA,CAAC;IACxD,IAAI,EAAE,kBAAkB,CAAC,MAAM;IAC/B,UAAU,YAAA;CACb,CAAC,EAHyD,CAGzD,CAAC;AAHU,QAAA,iBAAiB,qBAG3B;AAEI,IAAM,gBAAgB,GAAG,cAAW,OAAA,CAAC;IACxC,IAAI,EAAE,kBAAkB,CAAC,KAAK;CACjC,CAAC,EAFyC,CAEzC,CAAC;AAFU,QAAA,gBAAgB,oBAE1B;AAEH,kBAAe,kBAAkB,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var asset_filters_1 = __importDefault(require("../actions/asset-filters"));
|
|
18
|
-
var initialState = {
|
|
19
|
-
page: 1,
|
|
20
|
-
order: 'name',
|
|
21
|
-
items_per_page: 50,
|
|
22
|
-
order_direction: 'asc',
|
|
23
|
-
name: '',
|
|
24
|
-
type: '',
|
|
25
|
-
tags: ''
|
|
26
|
-
};
|
|
27
|
-
var assetFilters = function (state, action) {
|
|
28
|
-
if (state === void 0) { state = initialState; }
|
|
29
|
-
switch (action.type) {
|
|
30
|
-
case asset_filters_1.default.UPDATE:
|
|
31
|
-
return __assign(__assign({}, state), action.newFilters);
|
|
32
|
-
case asset_filters_1.default.RESET:
|
|
33
|
-
return __assign({}, initialState);
|
|
34
|
-
default:
|
|
35
|
-
return state;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
exports.default = assetFilters;
|
|
39
|
-
//# sourceMappingURL=asset-filters%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-filters copy.js","sourceRoot":"","sources":["../../../../src/redux/reducers/asset-filters copy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2EAA2D;AAE3D,IAAM,YAAY,GAAQ;IACtB,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,MAAM;IACb,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACX,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,KAAoB,EAAE,MAAM;IAA5B,sBAAA,EAAA,oBAAoB;IACtC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,uBAAmB,CAAC,MAAM;YAC3B,6BAAY,KAAK,GAAK,MAAM,CAAC,UAAU,EAAG;QAC9C,KAAK,uBAAmB,CAAC,KAAK;YAC1B,oBAAY,YAAY,EAAG;QAC/B;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var story_filter_1 = __importDefault(require("../actions/story-filter"));
|
|
18
|
-
var initialState = {
|
|
19
|
-
name: '',
|
|
20
|
-
};
|
|
21
|
-
var storyFilter = function (state, action) {
|
|
22
|
-
if (state === void 0) { state = initialState; }
|
|
23
|
-
switch (action.type) {
|
|
24
|
-
case story_filter_1.default.UPDATE:
|
|
25
|
-
return __assign(__assign({}, state), action.newFilters);
|
|
26
|
-
case story_filter_1.default.RESET:
|
|
27
|
-
return __assign({}, initialState);
|
|
28
|
-
default:
|
|
29
|
-
return state;
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
exports.default = storyFilter;
|
|
33
|
-
//# sourceMappingURL=story-filters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"story-filters.js","sourceRoot":"","sources":["../../../../src/redux/reducers/story-filters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAyD;AAEzD,IAAM,YAAY,GAAQ;IACtB,IAAI,EAAE,EAAE;CACX,CAAC;AAEF,IAAM,WAAW,GAAG,UAAC,KAAoB,EAAE,MAAM;IAA5B,sBAAA,EAAA,oBAAoB;IACrC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,sBAAkB,CAAC,MAAM;YAC1B,6BAAY,KAAK,GAAK,MAAM,CAAC,UAAU,EAAG;QAC9C,KAAK,sBAAkB,CAAC,KAAK;YACzB,oBAAY,YAAY,EAAG;QAC/B;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import TextField from '../text-field/TextField';
|
|
3
|
-
import { updateFilters } from '../../redux/actions/asset-filters';
|
|
4
|
-
import { connect } from 'react-redux';
|
|
5
|
-
import { bindActionCreators } from 'redux';
|
|
6
|
-
class AssetsTableNameFilter extends React.PureComponent {
|
|
7
|
-
render = () => {
|
|
8
|
-
const { assetFilters } = this.props;
|
|
9
|
-
return (React.createElement(TextField, { className: 'asset-name', submittable: true, submittableType: 'search', value: assetFilters.name, doSubmit: (n) => this.props.updateFilters({ name: n }) }));
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
const mapDispatchToProps = (dispatch) => {
|
|
13
|
-
return bindActionCreators({ updateFilters }, dispatch);
|
|
14
|
-
};
|
|
15
|
-
const mapStateToProps = (state) => {
|
|
16
|
-
return { assetFilters: state.assetFilters };
|
|
17
|
-
};
|
|
18
|
-
const AssetsTableNameFilterMemoized = connect(mapStateToProps, mapDispatchToProps)(React.memo(AssetsTableNameFilter));
|
|
19
|
-
export default AssetsTableNameFilterMemoized;
|
|
20
|
-
//# sourceMappingURL=AssetsTableNameFilter%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsTableNameFilter copy.js","sourceRoot":"","sources":["../../../../src/components/assets/AssetsTableNameFilter copy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAO3C,MAAM,qBAAsB,SAAQ,KAAK,CAAC,aAA0C;IACzE,MAAM,GAAG,GAAgB,EAAE;QAC9B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpC,OAAO,CACH,oBAAC,SAAS,IACN,SAAS,EAAC,YAAY,EACtB,WAAW,QACX,eAAe,EAAC,QAAQ,EACxB,KAAK,EAAE,YAAY,CAAC,IAAI,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GACxD,CACL,CAAC;IACN,CAAC,CAAC;CACL;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAO,EAAE;IACzC,OAAO,kBAAkB,CAAC,EAAE,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAK,EAAO,EAAE;IACnC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,OAAO,CACzC,eAAe,EACf,kBAAkB,CACrB,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrC,eAAe,6BAA6B,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const assetFiltersActions = {
|
|
2
|
-
UPDATE: 'assetFilters/UPDATE',
|
|
3
|
-
RESET: 'footageFilters/RESET'
|
|
4
|
-
};
|
|
5
|
-
export const updateFilters = (newFilters) => ({
|
|
6
|
-
type: assetFiltersActions.UPDATE,
|
|
7
|
-
newFilters
|
|
8
|
-
});
|
|
9
|
-
export const resetFilters = () => ({
|
|
10
|
-
type: assetFiltersActions.RESET
|
|
11
|
-
});
|
|
12
|
-
export default assetFiltersActions;
|
|
13
|
-
//# sourceMappingURL=asset-filters%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-filters copy.js","sourceRoot":"","sources":["../../../../src/redux/actions/asset-filters copy.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAQ;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,sBAAsB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAe,EAAO,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,mBAAmB,CAAC,MAAM;IAChC,UAAU;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAQ,EAAE,CAAC,CAAC;IACpC,IAAI,EAAE,mBAAmB,CAAC,KAAK;CAClC,CAAC,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"story-filters.js","sourceRoot":"","sources":["../../../../src/redux/actions/story-filters.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAQ;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAe,EAAO,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,kBAAkB,CAAC,MAAM;IAC/B,UAAU;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAQ,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE,kBAAkB,CAAC,KAAK;CACjC,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import assetFiltersActions from '../actions/asset-filters';
|
|
2
|
-
const initialState = {
|
|
3
|
-
page: 1,
|
|
4
|
-
order: 'name',
|
|
5
|
-
items_per_page: 50,
|
|
6
|
-
order_direction: 'asc',
|
|
7
|
-
name: '',
|
|
8
|
-
type: '',
|
|
9
|
-
tags: ''
|
|
10
|
-
};
|
|
11
|
-
const assetFilters = (state = initialState, action) => {
|
|
12
|
-
switch (action.type) {
|
|
13
|
-
case assetFiltersActions.UPDATE:
|
|
14
|
-
return { ...state, ...action.newFilters };
|
|
15
|
-
case assetFiltersActions.RESET:
|
|
16
|
-
return { ...initialState };
|
|
17
|
-
default:
|
|
18
|
-
return state;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
export default assetFilters;
|
|
22
|
-
//# sourceMappingURL=asset-filters%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-filters copy.js","sourceRoot":"","sources":["../../../../src/redux/reducers/asset-filters copy.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,YAAY,GAAQ;IACtB,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,MAAM;IACb,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAO,EAAE;IACvD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,mBAAmB,CAAC,MAAM;YAC3B,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9C,KAAK,mBAAmB,CAAC,KAAK;YAC1B,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC/B;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|