@nebula.js/stardust 3.1.2 → 3.1.3
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/core/esm/dev.js +236 -29
- package/core/esm/dev.js.map +1 -1
- package/core/esm/index.js +3 -3
- package/core/esm/index.js.map +1 -1
- package/core/package.json +1 -1
- package/dist/stardust.dev.js +253 -48
- package/dist/stardust.dev.js.map +1 -1
- package/dist/stardust.js +11 -11
- package/dist/stardust.js.map +1 -1
- package/package.json +10 -10
package/core/esm/dev.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @nebula.js/stardust v3.1.
|
|
2
|
+
* @nebula.js/stardust v3.1.3
|
|
3
3
|
* Copyright (c) 2023 QlikTech International AB
|
|
4
4
|
* Released under the MIT license.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as React from 'react';
|
|
8
|
-
import React__default, { useState as useState$1, useEffect as useEffect$1, useReducer, forwardRef, useMemo as useMemo$1, useImperativeHandle as useImperativeHandle$1, useCallback, useLayoutEffect as useLayoutEffect$1, PureComponent, createElement, useContext
|
|
8
|
+
import React__default, { useState as useState$1, useEffect as useEffect$1, useReducer, forwardRef, useMemo as useMemo$1, useImperativeHandle as useImperativeHandle$1, useCallback, useLayoutEffect as useLayoutEffect$1, PureComponent, useRef, createElement, useContext } from 'react';
|
|
9
9
|
import ReactDOM from 'react-dom';
|
|
10
10
|
import { CacheProvider, ThemeContext as ThemeContext$2 } from '@emotion/react';
|
|
11
11
|
import { Checkbox, Radio, Grid, Typography, FormControlLabel, Tooltip, Paper, IconButton, Popover, MenuList, MenuItem, ListItemIcon, Divider, InputAdornment, OutlinedInput, Badge, List, ListItem, Button, Box, Icon, CircularProgress } from '@mui/material';
|
|
@@ -7940,7 +7940,7 @@ function create$3(definition) {
|
|
|
7940
7940
|
return cache[key];
|
|
7941
7941
|
}
|
|
7942
7942
|
|
|
7943
|
-
const NEBULA_VERSION_HASH = "
|
|
7943
|
+
const NEBULA_VERSION_HASH = "b117" ;
|
|
7944
7944
|
ClassNameGenerator$1.configure(componentName => {
|
|
7945
7945
|
return "njs-".concat(NEBULA_VERSION_HASH, "-").concat(componentName.replace('Mui', ''));
|
|
7946
7946
|
});
|
|
@@ -8459,7 +8459,7 @@ function boot(_ref2) {
|
|
|
8459
8459
|
const appRef = React__default.createRef();
|
|
8460
8460
|
const element = document.createElement('div');
|
|
8461
8461
|
element.style.display = 'none';
|
|
8462
|
-
element.setAttribute('data-nebulajs-version', "3.1.
|
|
8462
|
+
element.setAttribute('data-nebulajs-version', "3.1.3" );
|
|
8463
8463
|
element.setAttribute('data-app-id', app.id);
|
|
8464
8464
|
document.body.appendChild(element);
|
|
8465
8465
|
ReactDOM.render( /*#__PURE__*/React__default.createElement(NebulaApp, {
|
|
@@ -9417,7 +9417,9 @@ function getFieldKeyboardNavigation(_ref) {
|
|
|
9417
9417
|
let {
|
|
9418
9418
|
select,
|
|
9419
9419
|
confirm,
|
|
9420
|
-
cancel
|
|
9420
|
+
cancel,
|
|
9421
|
+
setScrollPosition,
|
|
9422
|
+
focusListItems
|
|
9421
9423
|
} = _ref;
|
|
9422
9424
|
const getElement = function (elm) {
|
|
9423
9425
|
let next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
@@ -9432,7 +9434,8 @@ function getFieldKeyboardNavigation(_ref) {
|
|
|
9432
9434
|
let elementToFocus;
|
|
9433
9435
|
const {
|
|
9434
9436
|
keyCode,
|
|
9435
|
-
shiftKey = false
|
|
9437
|
+
shiftKey = false,
|
|
9438
|
+
ctrlKey = false
|
|
9436
9439
|
} = event.nativeEvent;
|
|
9437
9440
|
switch (keyCode) {
|
|
9438
9441
|
case KEYS.SHIFT:
|
|
@@ -9471,6 +9474,22 @@ function getFieldKeyboardNavigation(_ref) {
|
|
|
9471
9474
|
cancel();
|
|
9472
9475
|
return;
|
|
9473
9476
|
// let it propagate to top-level
|
|
9477
|
+
case KEYS.HOME:
|
|
9478
|
+
focusListItems.setFirst(true);
|
|
9479
|
+
if (ctrlKey) {
|
|
9480
|
+
setScrollPosition === null || setScrollPosition === void 0 ? void 0 : setScrollPosition('overflowStart');
|
|
9481
|
+
break;
|
|
9482
|
+
}
|
|
9483
|
+
setScrollPosition === null || setScrollPosition === void 0 ? void 0 : setScrollPosition('start');
|
|
9484
|
+
break;
|
|
9485
|
+
case KEYS.END:
|
|
9486
|
+
focusListItems.setLast(true);
|
|
9487
|
+
if (ctrlKey) {
|
|
9488
|
+
setScrollPosition === null || setScrollPosition === void 0 ? void 0 : setScrollPosition('overflowEnd');
|
|
9489
|
+
break;
|
|
9490
|
+
}
|
|
9491
|
+
setScrollPosition === null || setScrollPosition === void 0 ? void 0 : setScrollPosition('end');
|
|
9492
|
+
break;
|
|
9474
9493
|
default:
|
|
9475
9494
|
return;
|
|
9476
9495
|
// don't stop propagation since we want to outsource keydown to other handlers.
|
|
@@ -9748,15 +9767,26 @@ function RowColumn(_ref3) {
|
|
|
9748
9767
|
showGray = true,
|
|
9749
9768
|
columnCount = 1,
|
|
9750
9769
|
rowCount = 1,
|
|
9751
|
-
layoutOrder
|
|
9770
|
+
layoutOrder,
|
|
9771
|
+
dataOffset,
|
|
9772
|
+
focusListItems,
|
|
9773
|
+
listCount
|
|
9752
9774
|
} = data;
|
|
9753
9775
|
let cellIndex;
|
|
9754
9776
|
let styles;
|
|
9777
|
+
const count = {
|
|
9778
|
+
max: null,
|
|
9779
|
+
currentIndex: null
|
|
9780
|
+
};
|
|
9755
9781
|
if (typeof rowIndex === 'number' && typeof columnIndex === 'number') {
|
|
9756
9782
|
if (layoutOrder === 'row') {
|
|
9757
9783
|
cellIndex = rowIndex * columnCount + columnIndex;
|
|
9784
|
+
count.max = rowCount;
|
|
9785
|
+
count.currentIndex = rowIndex;
|
|
9758
9786
|
} else {
|
|
9759
9787
|
cellIndex = columnIndex * rowCount + rowIndex;
|
|
9788
|
+
count.max = columnCount;
|
|
9789
|
+
count.currentIndex = columnIndex;
|
|
9760
9790
|
}
|
|
9761
9791
|
const padding = 0;
|
|
9762
9792
|
styles = _objectSpread2(_objectSpread2({}, style), {}, {
|
|
@@ -9766,9 +9796,27 @@ function RowColumn(_ref3) {
|
|
|
9766
9796
|
});
|
|
9767
9797
|
} else {
|
|
9768
9798
|
cellIndex = index;
|
|
9799
|
+
count.max = listCount;
|
|
9800
|
+
count.currentIndex = index;
|
|
9769
9801
|
styles = _objectSpread2({}, style);
|
|
9770
9802
|
}
|
|
9771
|
-
|
|
9803
|
+
cellIndex += dataOffset;
|
|
9804
|
+
const rowRef = useRef(null);
|
|
9805
|
+
useEffect$1(() => {
|
|
9806
|
+
if (rowRef.current !== null) {
|
|
9807
|
+
if (count.currentIndex === 0 && focusListItems.first) {
|
|
9808
|
+
rowRef.current.focus();
|
|
9809
|
+
focusListItems.setFirst(false);
|
|
9810
|
+
}
|
|
9811
|
+
if (count.currentIndex === count.max - 1 && focusListItems.last) {
|
|
9812
|
+
rowRef.current.focus();
|
|
9813
|
+
focusListItems.setLast(false);
|
|
9814
|
+
}
|
|
9815
|
+
}
|
|
9816
|
+
}, [rowRef.current]);
|
|
9817
|
+
const handleKeyDownCallback = useCallback(getFieldKeyboardNavigation(_objectSpread2(_objectSpread2({}, actions), {}, {
|
|
9818
|
+
focusListItems
|
|
9819
|
+
})), [actions]);
|
|
9772
9820
|
const [isSelected, setSelected] = useState$1(false);
|
|
9773
9821
|
const [cell, setCell] = useState$1();
|
|
9774
9822
|
const [classArr, setClassArr] = useState$1([]);
|
|
@@ -9943,6 +9991,7 @@ function RowColumn(_ref3) {
|
|
|
9943
9991
|
flexBasisProp: flexBasisVal,
|
|
9944
9992
|
dense: dense
|
|
9945
9993
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
9994
|
+
ref: rowRef,
|
|
9946
9995
|
container: true,
|
|
9947
9996
|
gap: 0,
|
|
9948
9997
|
className: joinClassNames(['value', ...classArr]),
|
|
@@ -11522,11 +11571,18 @@ function getStyledComponents() {
|
|
|
11522
11571
|
}
|
|
11523
11572
|
|
|
11524
11573
|
const getIndex = (renderProps, isColumnLayout) => {
|
|
11525
|
-
if (renderProps
|
|
11574
|
+
if ((renderProps === null || renderProps === void 0 ? void 0 : renderProps.visibleRowStopIndex) !== undefined || renderProps.visibleColumnStopIndex !== undefined) {
|
|
11526
11575
|
return isColumnLayout ? renderProps.visibleColumnStopIndex : renderProps.visibleRowStopIndex;
|
|
11527
11576
|
}
|
|
11528
11577
|
return renderProps.visibleStopIndex;
|
|
11529
11578
|
};
|
|
11579
|
+
const getIsScrollTop = (renderProps, isColumnLayout) => {
|
|
11580
|
+
if ((renderProps === null || renderProps === void 0 ? void 0 : renderProps.visibleRowStartIndex) !== undefined || renderProps.visibleColumnStartIndex !== undefined) {
|
|
11581
|
+
return isColumnLayout ? renderProps.visibleColumnStartIndex === 0 : renderProps.visibleRowStartIndex === 0;
|
|
11582
|
+
}
|
|
11583
|
+
return renderProps.visibleStartIndex === 0;
|
|
11584
|
+
};
|
|
11585
|
+
const getIsEndOfData = (qCardinal, index, count, dataOffset) => qCardinal === index * count + dataOffset + count;
|
|
11530
11586
|
function handleSetOverflowDisclaimer(_ref) {
|
|
11531
11587
|
let {
|
|
11532
11588
|
renderProps,
|
|
@@ -11534,14 +11590,18 @@ function handleSetOverflowDisclaimer(_ref) {
|
|
|
11534
11590
|
maxCount,
|
|
11535
11591
|
columnCount,
|
|
11536
11592
|
rowCount,
|
|
11537
|
-
overflowDisclaimer
|
|
11593
|
+
overflowDisclaimer,
|
|
11594
|
+
qCardinal,
|
|
11595
|
+
dataOffset
|
|
11538
11596
|
} = _ref;
|
|
11539
11597
|
const isColumnLayout = (layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.layoutOrder) === 'column' && layoutOptions.dataLayout !== 'singleColumn';
|
|
11540
11598
|
const index = getIndex(renderProps, isColumnLayout);
|
|
11541
11599
|
const stopIndex = isColumnLayout ? maxCount.column : maxCount.row;
|
|
11542
11600
|
const count = isColumnLayout ? columnCount : rowCount;
|
|
11543
11601
|
const overflowPossible = count >= stopIndex;
|
|
11544
|
-
const
|
|
11602
|
+
const isEndOfData = getIsEndOfData(qCardinal, index, isColumnLayout ? rowCount : columnCount, dataOffset);
|
|
11603
|
+
const isTopOfOverflowData = !!dataOffset && getIsScrollTop(renderProps, isColumnLayout);
|
|
11604
|
+
const show = overflowPossible && !isEndOfData && index >= stopIndex - 1 || isTopOfOverflowData || overflowDisclaimer.state.show; // If its shown once, the user have to dismiss to hide it.
|
|
11545
11605
|
overflowDisclaimer.set(show);
|
|
11546
11606
|
}
|
|
11547
11607
|
|
|
@@ -11572,7 +11632,9 @@ function getListBoxComponents(_ref) {
|
|
|
11572
11632
|
listLayout,
|
|
11573
11633
|
sizes,
|
|
11574
11634
|
listCount,
|
|
11575
|
-
overflowDisclaimer
|
|
11635
|
+
overflowDisclaimer,
|
|
11636
|
+
setScrollPosition,
|
|
11637
|
+
focusListItems
|
|
11576
11638
|
} = _ref;
|
|
11577
11639
|
const {
|
|
11578
11640
|
layoutOptions = {},
|
|
@@ -11615,12 +11677,15 @@ function getListBoxComponents(_ref) {
|
|
|
11615
11677
|
actions: {
|
|
11616
11678
|
select,
|
|
11617
11679
|
confirm: () => selections === null || selections === void 0 ? void 0 : selections.confirm.call(selections),
|
|
11618
|
-
cancel: () => selections === null || selections === void 0 ? void 0 : selections.cancel.call(selections)
|
|
11680
|
+
cancel: () => selections === null || selections === void 0 ? void 0 : selections.cancel.call(selections),
|
|
11681
|
+
setScrollPosition
|
|
11619
11682
|
},
|
|
11620
11683
|
frequencyMax,
|
|
11621
11684
|
histogram,
|
|
11622
11685
|
keyboard,
|
|
11623
|
-
showGray
|
|
11686
|
+
showGray,
|
|
11687
|
+
dataOffset: local.current.dataOffset,
|
|
11688
|
+
focusListItems
|
|
11624
11689
|
});
|
|
11625
11690
|
const List = _ref2 => {
|
|
11626
11691
|
let {
|
|
@@ -11637,9 +11702,12 @@ function getListBoxComponents(_ref) {
|
|
|
11637
11702
|
width: width,
|
|
11638
11703
|
itemCount: listCount,
|
|
11639
11704
|
layout: listLayout,
|
|
11640
|
-
itemData: _objectSpread2({}, commonItemData),
|
|
11705
|
+
itemData: _objectSpread2(_objectSpread2({}, commonItemData), {}, {
|
|
11706
|
+
listCount
|
|
11707
|
+
}),
|
|
11641
11708
|
itemSize: itemSize,
|
|
11642
11709
|
onItemsRendered: renderProps => {
|
|
11710
|
+
var _layout$qListObject, _layout$qListObject$q;
|
|
11643
11711
|
if (scrollState) {
|
|
11644
11712
|
scrollState.setScrollPos(renderProps.visibleStopIndex);
|
|
11645
11713
|
}
|
|
@@ -11649,7 +11717,9 @@ function getListBoxComponents(_ref) {
|
|
|
11649
11717
|
maxCount: sizes.maxCount,
|
|
11650
11718
|
columnCount,
|
|
11651
11719
|
rowCount,
|
|
11652
|
-
overflowDisclaimer
|
|
11720
|
+
overflowDisclaimer,
|
|
11721
|
+
qCardinal: layout === null || layout === void 0 ? void 0 : (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 ? void 0 : (_layout$qListObject$q = _layout$qListObject.qDimensionInfo) === null || _layout$qListObject$q === void 0 ? void 0 : _layout$qListObject$q.qCardinal,
|
|
11722
|
+
dataOffset: local.current.dataOffset
|
|
11653
11723
|
});
|
|
11654
11724
|
onItemsRendered(_objectSpread2({}, renderProps));
|
|
11655
11725
|
},
|
|
@@ -11673,6 +11743,7 @@ function getListBoxComponents(_ref) {
|
|
|
11673
11743
|
// eslint-disable-next-line no-param-reassign
|
|
11674
11744
|
local.current.listRef = ref;
|
|
11675
11745
|
const handleGridItemsRendered = renderProps => {
|
|
11746
|
+
var _layout$qListObject2, _layout$qListObject2$;
|
|
11676
11747
|
const renderOptions = deriveRenderOptions({
|
|
11677
11748
|
renderProps,
|
|
11678
11749
|
scrollState,
|
|
@@ -11686,7 +11757,9 @@ function getListBoxComponents(_ref) {
|
|
|
11686
11757
|
maxCount: sizes.maxCount,
|
|
11687
11758
|
columnCount,
|
|
11688
11759
|
rowCount,
|
|
11689
|
-
overflowDisclaimer
|
|
11760
|
+
overflowDisclaimer,
|
|
11761
|
+
qCardinal: layout === null || layout === void 0 ? void 0 : (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 ? void 0 : (_layout$qListObject2$ = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2$ === void 0 ? void 0 : _layout$qListObject2$.qCardinal,
|
|
11762
|
+
dataOffset: local.current.dataOffset
|
|
11690
11763
|
});
|
|
11691
11764
|
onItemsRendered(renderOptions);
|
|
11692
11765
|
};
|
|
@@ -11857,9 +11930,10 @@ function useItemsLoader(_ref) {
|
|
|
11857
11930
|
const [pages, setPages] = useState$1([]);
|
|
11858
11931
|
let [minimumBatchSize] = useState$1(0);
|
|
11859
11932
|
const loadMoreItems = (startIndex, stopIndex) => {
|
|
11933
|
+
const offset = local.current.dataOffset;
|
|
11860
11934
|
local.current.queue.push({
|
|
11861
|
-
start: startIndex,
|
|
11862
|
-
stop: stopIndex
|
|
11935
|
+
start: startIndex + offset,
|
|
11936
|
+
stop: stopIndex + offset
|
|
11863
11937
|
});
|
|
11864
11938
|
const isScrolling = loaderRef.current ?
|
|
11865
11939
|
// eslint-disable-next-line no-underscore-dangle
|
|
@@ -12248,6 +12322,47 @@ function ListBoxFooter(_ref3) {
|
|
|
12248
12322
|
}, /*#__PURE__*/React__default.createElement(SmallCloseIcon, null))));
|
|
12249
12323
|
}
|
|
12250
12324
|
|
|
12325
|
+
const getOffset = (layout, listCount) => {
|
|
12326
|
+
const totalLength = layout.qListObject.qDimensionInfo.qCardinal;
|
|
12327
|
+
const offset = totalLength - listCount;
|
|
12328
|
+
return offset;
|
|
12329
|
+
};
|
|
12330
|
+
function getScrollIndex(_ref) {
|
|
12331
|
+
let {
|
|
12332
|
+
position,
|
|
12333
|
+
isRow,
|
|
12334
|
+
sizes,
|
|
12335
|
+
layout,
|
|
12336
|
+
offset
|
|
12337
|
+
} = _ref;
|
|
12338
|
+
let scrollIndex;
|
|
12339
|
+
let triggerRerender = false;
|
|
12340
|
+
let newOffset = offset !== null && offset !== void 0 ? offset : 0;
|
|
12341
|
+
switch (position) {
|
|
12342
|
+
case 'start':
|
|
12343
|
+
scrollIndex = 0;
|
|
12344
|
+
break;
|
|
12345
|
+
case 'end':
|
|
12346
|
+
scrollIndex = isRow ? sizes.rowCount : sizes.columnCount;
|
|
12347
|
+
break;
|
|
12348
|
+
case 'overflowStart':
|
|
12349
|
+
newOffset = 0;
|
|
12350
|
+
scrollIndex = 0;
|
|
12351
|
+
triggerRerender = true;
|
|
12352
|
+
break;
|
|
12353
|
+
case 'overflowEnd':
|
|
12354
|
+
newOffset = getOffset(layout, sizes.listCount);
|
|
12355
|
+
scrollIndex = layout.qListObject.qDimensionInfo.qCardinal;
|
|
12356
|
+
triggerRerender = true;
|
|
12357
|
+
break;
|
|
12358
|
+
}
|
|
12359
|
+
return {
|
|
12360
|
+
scrollIndex,
|
|
12361
|
+
offset: newOffset,
|
|
12362
|
+
triggerRerender
|
|
12363
|
+
};
|
|
12364
|
+
}
|
|
12365
|
+
|
|
12251
12366
|
const _excluded$4 = ["isLoadingData"];
|
|
12252
12367
|
const DEFAULT_MIN_BATCH_SIZE = 100;
|
|
12253
12368
|
function ListBox(_ref) {
|
|
@@ -12280,7 +12395,8 @@ function ListBox(_ref) {
|
|
|
12280
12395
|
const loaderRef = useRef(null);
|
|
12281
12396
|
const local = useRef({
|
|
12282
12397
|
queue: [],
|
|
12283
|
-
validPages: false
|
|
12398
|
+
validPages: false,
|
|
12399
|
+
dataOffset: 0
|
|
12284
12400
|
});
|
|
12285
12401
|
const listData = useRef({
|
|
12286
12402
|
pages: []
|
|
@@ -12338,6 +12454,23 @@ function ListBox(_ref) {
|
|
|
12338
12454
|
doc: document,
|
|
12339
12455
|
isSingleSelect
|
|
12340
12456
|
});
|
|
12457
|
+
const {
|
|
12458
|
+
layoutOptions = {}
|
|
12459
|
+
} = layout || {};
|
|
12460
|
+
let isRow = true;
|
|
12461
|
+
if (layoutOptions.dataLayout) {
|
|
12462
|
+
isRow = layoutOptions.dataLayout === 'singleColumn' ? true : (layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.layoutOrder) === 'row';
|
|
12463
|
+
}
|
|
12464
|
+
const isGrid = (layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.dataLayout) === 'grid';
|
|
12465
|
+
const scrollToIndex = index => {
|
|
12466
|
+
const gridIndex = _objectSpread2({}, isRow ? {
|
|
12467
|
+
rowIndex: index
|
|
12468
|
+
} : {
|
|
12469
|
+
columnIndex: index
|
|
12470
|
+
});
|
|
12471
|
+
const scrollIndex = isGrid ? gridIndex : index;
|
|
12472
|
+
loaderRef.current._listRef.scrollToItem(scrollIndex);
|
|
12473
|
+
};
|
|
12341
12474
|
const fetchData = () => {
|
|
12342
12475
|
local.current.queue = [];
|
|
12343
12476
|
local.current.validPages = false;
|
|
@@ -12347,7 +12480,8 @@ function ListBox(_ref) {
|
|
|
12347
12480
|
if (layout && layout.qSelectionInfo.qInSelections) {
|
|
12348
12481
|
return;
|
|
12349
12482
|
}
|
|
12350
|
-
|
|
12483
|
+
local.current.dataOffset = 0;
|
|
12484
|
+
scrollToIndex(0);
|
|
12351
12485
|
}
|
|
12352
12486
|
};
|
|
12353
12487
|
if (update) {
|
|
@@ -12368,14 +12502,11 @@ function ListBox(_ref) {
|
|
|
12368
12502
|
}, [loaderRef.current]);
|
|
12369
12503
|
useEffect$1(() => {
|
|
12370
12504
|
fetchData();
|
|
12371
|
-
}, [layout]);
|
|
12505
|
+
}, [layout, local.current.dataOffset]);
|
|
12372
12506
|
const textWidth = useTextWidth({
|
|
12373
12507
|
text: getMeasureText(layout),
|
|
12374
12508
|
font: '14px Source sans pro'
|
|
12375
12509
|
});
|
|
12376
|
-
const {
|
|
12377
|
-
layoutOptions = {}
|
|
12378
|
-
} = layout || {};
|
|
12379
12510
|
let minimumBatchSize = DEFAULT_MIN_BATCH_SIZE;
|
|
12380
12511
|
const isVertical = layoutOptions.dataLayout ? layoutOptions.dataLayout === 'singleColumn' : listLayout !== 'horizontal';
|
|
12381
12512
|
const count = layout === null || layout === void 0 ? void 0 : (_layout$qListObject$q = layout.qListObject.qSize) === null || _layout$qListObject$q === void 0 ? void 0 : _layout$qListObject$q.qcy;
|
|
@@ -12399,9 +12530,41 @@ function ListBox(_ref) {
|
|
|
12399
12530
|
listCount
|
|
12400
12531
|
} = sizes;
|
|
12401
12532
|
setStoreValue('listCount', listCount);
|
|
12533
|
+
const setScrollPosition = position => {
|
|
12534
|
+
const {
|
|
12535
|
+
scrollIndex,
|
|
12536
|
+
offset,
|
|
12537
|
+
triggerRerender
|
|
12538
|
+
} = getScrollIndex({
|
|
12539
|
+
position,
|
|
12540
|
+
isRow,
|
|
12541
|
+
sizes,
|
|
12542
|
+
layout,
|
|
12543
|
+
offset: local.current.dataOffset
|
|
12544
|
+
});
|
|
12545
|
+
local.current.dataOffset = offset;
|
|
12546
|
+
if (triggerRerender) {
|
|
12547
|
+
setPages(currentPages => [...currentPages]);
|
|
12548
|
+
}
|
|
12549
|
+
scrollToIndex(scrollIndex);
|
|
12550
|
+
};
|
|
12402
12551
|
const {
|
|
12403
12552
|
textAlign
|
|
12404
12553
|
} = (layout === null || layout === void 0 ? void 0 : layout.qListObject.qDimensionInfo) || {};
|
|
12554
|
+
const [focusListItem, setFocusListItem] = useState$1({
|
|
12555
|
+
first: false,
|
|
12556
|
+
last: false
|
|
12557
|
+
});
|
|
12558
|
+
const getFocusState = () => ({
|
|
12559
|
+
first: focusListItem.first,
|
|
12560
|
+
setFirst: first => setFocusListItem(prevState => _objectSpread2(_objectSpread2({}, prevState), {}, {
|
|
12561
|
+
first
|
|
12562
|
+
})),
|
|
12563
|
+
last: focusListItem.last,
|
|
12564
|
+
setLast: last => setFocusListItem(prevState => _objectSpread2(_objectSpread2({}, prevState), {}, {
|
|
12565
|
+
last
|
|
12566
|
+
}))
|
|
12567
|
+
});
|
|
12405
12568
|
const {
|
|
12406
12569
|
List,
|
|
12407
12570
|
Grid
|
|
@@ -12430,7 +12593,9 @@ function ListBox(_ref) {
|
|
|
12430
12593
|
overflowDisclaimer: {
|
|
12431
12594
|
state: overflowDisclaimer,
|
|
12432
12595
|
set: showOverflowDisclaimer
|
|
12433
|
-
}
|
|
12596
|
+
},
|
|
12597
|
+
setScrollPosition,
|
|
12598
|
+
focusListItems: getFocusState()
|
|
12434
12599
|
});
|
|
12435
12600
|
const {
|
|
12436
12601
|
columnWidth,
|
|
@@ -13028,6 +13193,7 @@ const search = props => _objectSpread2(_objectSpread2({}, props), {}, {
|
|
|
13028
13193
|
var SearchIcon = (props => SvgIcon$2(search(props)));
|
|
13029
13194
|
|
|
13030
13195
|
const TREE_PATH = '/qListObjectDef';
|
|
13196
|
+
const WILDCARD = '**';
|
|
13031
13197
|
const StyledInputAdornment = styled$1(InputAdornment)(_ref => {
|
|
13032
13198
|
var _theme$listBox, _theme$listBox$conten;
|
|
13033
13199
|
let {
|
|
@@ -13052,12 +13218,15 @@ function ListBoxSearch(_ref3) {
|
|
|
13052
13218
|
model,
|
|
13053
13219
|
keyboard,
|
|
13054
13220
|
dense = false,
|
|
13055
|
-
visible = true
|
|
13221
|
+
visible = true,
|
|
13222
|
+
wildCardSearch = true
|
|
13056
13223
|
} = _ref3;
|
|
13057
13224
|
const {
|
|
13058
13225
|
translator
|
|
13059
13226
|
} = useContext(InstanceContext);
|
|
13060
13227
|
const [value, setValue] = useState$1('');
|
|
13228
|
+
const [wildcardOn, setWildcardOn] = useState$1(false);
|
|
13229
|
+
const inputRef = useRef();
|
|
13061
13230
|
const theme = useTheme$1();
|
|
13062
13231
|
const {
|
|
13063
13232
|
getStoreValue
|
|
@@ -13084,6 +13253,13 @@ function ListBoxSearch(_ref3) {
|
|
|
13084
13253
|
selections.removeListener && selections.removeListener('deactivated', abortSearch);
|
|
13085
13254
|
};
|
|
13086
13255
|
}, []);
|
|
13256
|
+
useEffect$1(() => {
|
|
13257
|
+
if (wildcardOn && inputRef.current) {
|
|
13258
|
+
const cursorPos = value.length - 1;
|
|
13259
|
+
inputRef.current.setSelectionRange(cursorPos, cursorPos); // place the cursor in the wildcard
|
|
13260
|
+
setWildcardOn(false);
|
|
13261
|
+
}
|
|
13262
|
+
}, [wildcardOn, inputRef.current]);
|
|
13087
13263
|
const onChange = async e => {
|
|
13088
13264
|
setValue(e.target.value);
|
|
13089
13265
|
if (!e.target.value.length) {
|
|
@@ -13092,6 +13268,10 @@ function ListBoxSearch(_ref3) {
|
|
|
13092
13268
|
return model.searchListObjectFor(TREE_PATH, e.target.value);
|
|
13093
13269
|
};
|
|
13094
13270
|
const handleFocus = () => {
|
|
13271
|
+
if (wildCardSearch) {
|
|
13272
|
+
setValue(WILDCARD);
|
|
13273
|
+
setWildcardOn(true);
|
|
13274
|
+
}
|
|
13095
13275
|
if (!selections.isModal()) {
|
|
13096
13276
|
selections.begin(['/qListObjectDef']);
|
|
13097
13277
|
}
|
|
@@ -13155,6 +13335,7 @@ function ListBoxSearch(_ref3) {
|
|
|
13155
13335
|
paddingBottom: '5px'
|
|
13156
13336
|
}
|
|
13157
13337
|
}],
|
|
13338
|
+
inputRef: inputRef,
|
|
13158
13339
|
size: "small",
|
|
13159
13340
|
fullWidth: true,
|
|
13160
13341
|
placeholder: translator.get('Listbox.Search'),
|
|
@@ -14956,6 +15137,7 @@ function ListBoxInline(_ref3) {
|
|
|
14956
15137
|
const searchHeight = dense ? 27 : 40;
|
|
14957
15138
|
const extraheight = dense ? 39 : 49;
|
|
14958
15139
|
const minHeight = 49 + (searchVisible ? searchHeight : 0) + extraheight;
|
|
15140
|
+
const wildCardSearch = layout === null || layout === void 0 ? void 0 : layout.wildCardSearch;
|
|
14959
15141
|
const onShowSearch = () => {
|
|
14960
15142
|
const newValue = !showSearch;
|
|
14961
15143
|
setShowSearch(newValue);
|
|
@@ -15052,7 +15234,8 @@ function ListBoxInline(_ref3) {
|
|
|
15052
15234
|
dense: dense,
|
|
15053
15235
|
keyboard: keyboard,
|
|
15054
15236
|
visible: searchVisible,
|
|
15055
|
-
searchContainerRef: searchContainerRef
|
|
15237
|
+
searchContainerRef: searchContainerRef,
|
|
15238
|
+
wildCardSearch: wildCardSearch
|
|
15056
15239
|
})), /*#__PURE__*/React__default.createElement(Grid, {
|
|
15057
15240
|
item: true,
|
|
15058
15241
|
xs: true
|
|
@@ -15397,6 +15580,9 @@ function ListBoxPopoverWrapper(_ref) {
|
|
|
15397
15580
|
const [showState, setShowstate] = useState$1(!!options.show);
|
|
15398
15581
|
const handleCloseShowState = () => {
|
|
15399
15582
|
setShowstate(false);
|
|
15583
|
+
if (options.onPopoverClose) {
|
|
15584
|
+
options.onPopoverClose();
|
|
15585
|
+
}
|
|
15400
15586
|
};
|
|
15401
15587
|
return /*#__PURE__*/React__default.createElement(ListBoxPopover, {
|
|
15402
15588
|
show: showState,
|
|
@@ -22397,6 +22583,23 @@ function nuked() {
|
|
|
22397
22583
|
let selectionsApi = null;
|
|
22398
22584
|
let selectionsComponentReference = null;
|
|
22399
22585
|
|
|
22586
|
+
/**
|
|
22587
|
+
* @ignore
|
|
22588
|
+
* @typedef { 'fieldPopoverClose' } EmbedEventTypes
|
|
22589
|
+
*/
|
|
22590
|
+
|
|
22591
|
+
/**
|
|
22592
|
+
* Event listener function on instance
|
|
22593
|
+
*
|
|
22594
|
+
* @ignore
|
|
22595
|
+
* @method
|
|
22596
|
+
* @name Embed#on
|
|
22597
|
+
* @param {EmbedEventTypes} eventType event type that function needs to listen
|
|
22598
|
+
* @param {Function} callback a callback function to run when event emits
|
|
22599
|
+
* @example
|
|
22600
|
+
* api.on('someEvent', () => {...});
|
|
22601
|
+
*/
|
|
22602
|
+
|
|
22400
22603
|
/**
|
|
22401
22604
|
* @class
|
|
22402
22605
|
* @alias Embed
|
|
@@ -22631,7 +22834,10 @@ function nuked() {
|
|
|
22631
22834
|
root.remove(api._popoverInstance);
|
|
22632
22835
|
api._popoverInstance = null;
|
|
22633
22836
|
}
|
|
22634
|
-
const
|
|
22837
|
+
const onPopoverClose = () => api.emit('fieldPopoverClose');
|
|
22838
|
+
const opts = getOptions(_objectSpread2({
|
|
22839
|
+
onPopoverClose
|
|
22840
|
+
}, options));
|
|
22635
22841
|
api._popoverInstance = React__default.createElement(ListBoxPopoverWrapper, {
|
|
22636
22842
|
element: anchorElement,
|
|
22637
22843
|
key: uid(),
|
|
@@ -22646,6 +22852,7 @@ function nuked() {
|
|
|
22646
22852
|
};
|
|
22647
22853
|
halo.public.nebbie = api;
|
|
22648
22854
|
halo.types = types;
|
|
22855
|
+
eventmixin(api);
|
|
22649
22856
|
return api;
|
|
22650
22857
|
}
|
|
22651
22858
|
|