@linzjs/lui 21.39.2-2 → 21.39.3-0
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/CHANGELOG.md +7 -0
- package/dist/components/LuiSearchBox/LuiSearchBox.d.ts +3 -1
- package/dist/components/LuiSearchBox/ProductIcon/ProductIcon.d.ts +18 -0
- package/dist/index.js +60 -12
- package/dist/index.js.map +1 -1
- package/dist/lui.css +31 -17
- package/dist/lui.css.map +1 -1
- package/dist/lui.esm.js +60 -12
- package/dist/lui.esm.js.map +1 -1
- package/dist/scss/Components/LuiSearchBox/LuiSearchBox.scss +44 -13
- package/dist/scss/Components/LuiSearchInput/LuiSearchInput.scss +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [21.39.2](https://github.com/linz/lui/compare/v21.39.1...v21.39.2) (2024-07-10)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **Splitter:** refactor splitter to remove animation glitches ([#1136](https://github.com/linz/lui/issues/1136)) ([2fce2d1](https://github.com/linz/lui/commit/2fce2d1a5f0df5418bc95374be29762a51b318ec))
|
|
7
|
+
|
|
1
8
|
## [21.39.1](https://github.com/linz/lui/compare/v21.39.0...v21.39.1) (2024-07-07)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -3,7 +3,7 @@ import { LuiButtonProps } from '../LuiButton/LuiButton';
|
|
|
3
3
|
import { ISearchGroupedResult, ISearchResult } from '../LuiSearchInput/ResultsDisplay';
|
|
4
4
|
export interface ISearchMenuOption {
|
|
5
5
|
name?: string;
|
|
6
|
-
groupTitle?: string;
|
|
6
|
+
groupTitle?: string | ReactElement;
|
|
7
7
|
groupDivider?: boolean;
|
|
8
8
|
value: string;
|
|
9
9
|
title: string;
|
|
@@ -12,6 +12,8 @@ export interface ISearchMenuOption {
|
|
|
12
12
|
getOption: (input: any) => Promise<ISearchResult[] | ISearchGroupedResult[]>;
|
|
13
13
|
onSelectOption: (selectedOption: any) => void;
|
|
14
14
|
renderItem?: (item: any) => ReactElement;
|
|
15
|
+
icon?: ReactElement;
|
|
16
|
+
columnBreak?: boolean;
|
|
15
17
|
}
|
|
16
18
|
export interface ILuiSearchBoxProps {
|
|
17
19
|
searchBoxOptions: ISearchMenuOption[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare enum IconType {
|
|
3
|
+
TITLE = "Title",
|
|
4
|
+
SURVEY = "Survey",
|
|
5
|
+
VECTOR = "Vector",
|
|
6
|
+
INSTRUMENT = "Instrument",
|
|
7
|
+
PARCEL = "Parcel",
|
|
8
|
+
MARK = "Mark",
|
|
9
|
+
SUPPORTING_DOCUMENT = "Supporting document",
|
|
10
|
+
PENDING_DEALING = "Pending dealing",
|
|
11
|
+
REQUEST = "REQUEST"
|
|
12
|
+
}
|
|
13
|
+
interface ProductIconProps {
|
|
14
|
+
iconType: IconType;
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
declare const ProductIcon: React.FC<ProductIconProps>;
|
|
18
|
+
export default ProductIcon;
|
package/dist/index.js
CHANGED
|
@@ -42641,16 +42641,20 @@ var resultStyle = { verticalAlign: 'middle' };
|
|
|
42641
42641
|
* See examples in SearchBox in storybook.
|
|
42642
42642
|
*/
|
|
42643
42643
|
var LuiSearchBox = function (_a) {
|
|
42644
|
+
var _b;
|
|
42645
|
+
var _c, _d;
|
|
42644
42646
|
var searchBoxOptions = _a.searchBoxOptions, initOptionValue = _a.initOptionValue, onMenuSelect = _a.onMenuSelect, autoFocus = _a.autoFocus;
|
|
42645
42647
|
var initOption = searchBoxOptions.find(function (_a) {
|
|
42646
42648
|
var value = _a.value;
|
|
42647
42649
|
return value === initOptionValue;
|
|
42648
42650
|
});
|
|
42649
|
-
var
|
|
42651
|
+
var _e = React.useState(initOption ? initOption : searchBoxOptions[0]), selectedMenuOption = _e[0], setSelectedMenuOption = _e[1];
|
|
42650
42652
|
//auto focus every time select a menu item
|
|
42651
|
-
var
|
|
42653
|
+
var _f = React.useState(false), focusUpdate = _f[0], setFocusUpdate = _f[1];
|
|
42652
42654
|
//don't focus when first time display
|
|
42653
|
-
var
|
|
42655
|
+
var _g = React.useState(false), isFocus = _g[0], setIsFocus = _g[1];
|
|
42656
|
+
var _h = React.useState(false), showStacked = _h[0], setShowStacked = _h[1];
|
|
42657
|
+
var containerRef = React.useRef(null);
|
|
42654
42658
|
React.useEffect(function () {
|
|
42655
42659
|
var updatedOption = searchBoxOptions.find(function (_a) {
|
|
42656
42660
|
var value = _a.value;
|
|
@@ -42659,6 +42663,16 @@ var LuiSearchBox = function (_a) {
|
|
|
42659
42663
|
if (updatedOption)
|
|
42660
42664
|
setSelectedMenuOption(updatedOption);
|
|
42661
42665
|
}, [initOptionValue]);
|
|
42666
|
+
React.useEffect(function () {
|
|
42667
|
+
var _a, _b;
|
|
42668
|
+
console.log('REF width: ', (_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.offsetWidth);
|
|
42669
|
+
if (containerRef.current && containerRef.current.offsetWidth <= 448) {
|
|
42670
|
+
setShowStacked(true);
|
|
42671
|
+
}
|
|
42672
|
+
else if (showStacked) {
|
|
42673
|
+
setShowStacked(false);
|
|
42674
|
+
}
|
|
42675
|
+
}, [containerRef, containerRef.current, (_c = containerRef.current) === null || _c === void 0 ? void 0 : _c.offsetWidth]);
|
|
42662
42676
|
var handleMenuSelected = function (e) {
|
|
42663
42677
|
setSelectedMenuOption(findSelectedOption(e.value));
|
|
42664
42678
|
if (onMenuSelect !== undefined)
|
|
@@ -42673,8 +42687,27 @@ var LuiSearchBox = function (_a) {
|
|
|
42673
42687
|
});
|
|
42674
42688
|
return selectedOption ? selectedOption : searchBoxOptions[0];
|
|
42675
42689
|
};
|
|
42676
|
-
|
|
42677
|
-
|
|
42690
|
+
var numberOfColumns = showStacked
|
|
42691
|
+
? 1
|
|
42692
|
+
: searchBoxOptions.filter(function (option) { return option.columnBreak; }).length + 1;
|
|
42693
|
+
var multiColumnClass = "lui-select-menu-columns-".concat(numberOfColumns);
|
|
42694
|
+
return (React__default["default"].createElement("div", { className: clsx({
|
|
42695
|
+
LuiSearchBox: true,
|
|
42696
|
+
'LuiSearchBox-stacked': showStacked
|
|
42697
|
+
}), ref: containerRef },
|
|
42698
|
+
React__default["default"].createElement(LuiSelectMenu, { menuButton: React__default["default"].createElement(LuiSearchBoxButton, null,
|
|
42699
|
+
React__default["default"].createElement("span", { style: { display: 'flex' } }, (_d = selectedMenuOption.icon) !== null && _d !== void 0 ? _d : undefined,
|
|
42700
|
+
React__default["default"].createElement("span", { style: {
|
|
42701
|
+
marginLeft: '5px',
|
|
42702
|
+
overflow: 'hidden',
|
|
42703
|
+
lineHeight: '22px',
|
|
42704
|
+
maxHeight: '44px'
|
|
42705
|
+
} }, selectedMenuOption.title))), menuClassName: clsx((_b = {
|
|
42706
|
+
'lui-select-menu': true
|
|
42707
|
+
},
|
|
42708
|
+
_b[multiColumnClass] = numberOfColumns > 1,
|
|
42709
|
+
_b['lui-select-menu-stacked'] = showStacked,
|
|
42710
|
+
_b)) }, renderSelectMenu(searchBoxOptions, handleMenuSelected, showStacked)),
|
|
42678
42711
|
React__default["default"].createElement("div", { className: "LuiSearchBox-right" },
|
|
42679
42712
|
React__default["default"].createElement(LuiSearchInput, { name: selectedMenuOption.name ? selectedMenuOption.name : undefined, minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
42680
42713
|
? selectedMenuOption.renderItem
|
|
@@ -42687,12 +42720,27 @@ var LuiSearchBoxButton = React__default["default"].forwardRef(function (props, r
|
|
|
42687
42720
|
props.children,
|
|
42688
42721
|
React__default["default"].createElement(LuiIcon, { size: "md", name: 'ic_keyboard_arrow_down', className: 'LuiSearchBox-button-icon', alt: '' })));
|
|
42689
42722
|
});
|
|
42690
|
-
var renderSelectMenu = function (items, onClick
|
|
42691
|
-
|
|
42692
|
-
|
|
42693
|
-
|
|
42694
|
-
|
|
42695
|
-
|
|
42723
|
+
var renderSelectMenu = function (items, onClick, singleColumn) {
|
|
42724
|
+
if (singleColumn === void 0) { singleColumn = false; }
|
|
42725
|
+
var columns = [[]];
|
|
42726
|
+
items.forEach(function (item) {
|
|
42727
|
+
if (item.columnBreak && !singleColumn) {
|
|
42728
|
+
columns.push([]);
|
|
42729
|
+
}
|
|
42730
|
+
columns[columns.length - 1].push(item);
|
|
42731
|
+
});
|
|
42732
|
+
return (React__default["default"].createElement("div", { style: { display: 'flex', justifyContent: 'space-between' } }, columns.map(function (column, index) {
|
|
42733
|
+
return (React__default["default"].createElement("div", { style: {
|
|
42734
|
+
flexShrink: 0,
|
|
42735
|
+
flexGrow: index === columns.length - 1 ? 2 : 1
|
|
42736
|
+
}, key: index }, column.map(function (item) {
|
|
42737
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, { key: item.value },
|
|
42738
|
+
item.groupDivider ? React__default["default"].createElement(LuiSelectMenuDivider, null) : null,
|
|
42739
|
+
item.groupTitle ? (React__default["default"].createElement(LuiSelectMenuHeader, null, item.groupTitle)) : null,
|
|
42740
|
+
React__default["default"].createElement(LuiSelectMenuItem, { "data-testid": "select-box-".concat(item.value), value: item.value, onClick: onClick, noPadding: true }, item.title)));
|
|
42741
|
+
})));
|
|
42742
|
+
})));
|
|
42743
|
+
};
|
|
42696
42744
|
|
|
42697
42745
|
exports.LuiSplitButtonPosition = void 0;
|
|
42698
42746
|
(function (LuiSplitButtonPosition) {
|
|
@@ -59229,7 +59277,7 @@ var keyDownHandler = function (e) {
|
|
|
59229
59277
|
return valueNow + delta;
|
|
59230
59278
|
};
|
|
59231
59279
|
|
|
59232
|
-
var css_248z$4 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.Splitter {\n display: grid;\n position: relative;\n overflow: hidden;\n opacity: 0;\n}\n.Splitter > :first-child, .Splitter > :nth-child(2) {\n position: relative;\n z-index: 0;\n overflow: auto;\n}\n.Splitter.resizing * {\n pointer-events: none;\n user-select: none;\n}";
|
|
59280
|
+
var css_248z$4 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.Splitter {\n display: grid;\n position: relative;\n overflow: hidden;\n opacity: 0;\n}\n.Splitter > :first-child, .Splitter > :nth-child(2) {\n position: relative;\n z-index: 0;\n background: #f9f9f9;\n overflow: auto;\n}\n.Splitter.resizing * {\n pointer-events: none;\n user-select: none;\n}";
|
|
59233
59281
|
styleInject(css_248z$4);
|
|
59234
59282
|
|
|
59235
59283
|
/**
|