@synerise/ds-context-selector 0.16.13 → 0.17.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
CHANGED
|
@@ -3,6 +3,35 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.17.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-context-selector@0.16.14...@synerise/ds-context-selector@0.17.0) (2023-05-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* types fix ([5f877b8](https://github.com/Synerise/synerise-design/commit/5f877b8d38c81a40f2c21d6e89795297f88407ea))
|
|
12
|
+
* **context-selector:** fix handling readOnly ([c88b710](https://github.com/Synerise/synerise-design/commit/c88b7108c52cd4e2c3192bddcecb81dac2b560fc))
|
|
13
|
+
* **factors:** reuse FactorsProps type ([5743065](https://github.com/Synerise/synerise-design/commit/574306564fb5c2b8f78f75a36a937960f0c7c609))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **factors:** allow changing tooltip ([6da9e97](https://github.com/Synerise/synerise-design/commit/6da9e979e972ca042fce6b2c79d05735257155d9))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## [0.16.14](https://github.com/Synerise/synerise-design/compare/@synerise/ds-context-selector@0.16.13...@synerise/ds-context-selector@0.16.14) (2023-05-20)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **condition:** adds validation errors support ([0da0a99](https://github.com/Synerise/synerise-design/commit/0da0a99436920398787a1128e26d5432af2d89e2))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
6
35
|
## [0.16.13](https://github.com/Synerise/synerise-design/compare/@synerise/ds-context-selector@0.16.12...@synerise/ds-context-selector@0.16.13) (2023-04-26)
|
|
7
36
|
|
|
8
37
|
**Note:** Version bump only for package @synerise/ds-context-selector
|
package/README.md
CHANGED
|
@@ -97,6 +97,7 @@ import ContextSelector from '@synerise/ds-context-selector'
|
|
|
97
97
|
| addMode | If true trigger doesn't change style when value is set | ContextItem \ undefined | undefined |
|
|
98
98
|
| customTriggerComponent | Add custom trigger | React.ReactNode | undefined |
|
|
99
99
|
| trigger | Add custom trigger to modal | 'click' \ 'hover' \ 'contextMenu' | 'click |
|
|
100
|
+
| getMenuEntryProps | Configure tooltip (information-card by default) | (arg: ParameterValueType) => MenuItemProps \ undefined | undefined |
|
|
100
101
|
| dropdownWrapperStyles | Apply custom styles to dropdown wrapper | CSSProperties \ undefined | - |
|
|
101
102
|
| onClickOutsideEvents | Overwrite default events for document listener | HandledEventsType[] \ undefined | - |
|
|
102
103
|
| onClickOutside | Callback called when user click outside dropdown | () => void \ undefined | - |
|
package/dist/ContextSelector.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
3
9
|
import * as React from 'react';
|
|
4
10
|
import Button from '@synerise/ds-button';
|
|
5
11
|
import Icon, { Add3M, AngleDownS } from '@synerise/ds-icon';
|
|
@@ -8,7 +14,7 @@ import Dropdown from '@synerise/ds-dropdown';
|
|
|
8
14
|
import InformationCard from '@synerise/ds-information-card';
|
|
9
15
|
import { getPopupContainer } from '@synerise/ds-utils';
|
|
10
16
|
import ContextSelectorDropdown from './ContextSelectorDropdown/ContextSelectorDropdown';
|
|
11
|
-
import { ItemWrapper } from './ContextSelector.styles';
|
|
17
|
+
import { ItemWrapper, ErrorWrapper } from './ContextSelector.styles';
|
|
12
18
|
|
|
13
19
|
var ContextSelector = function ContextSelector(_ref) {
|
|
14
20
|
var defaultDropdownVisibility = _ref.defaultDropdownVisibility,
|
|
@@ -38,8 +44,10 @@ var ContextSelector = function ContextSelector(_ref) {
|
|
|
38
44
|
type = _ref.type,
|
|
39
45
|
dropdownProps = _ref.dropdownProps,
|
|
40
46
|
disabled = _ref.disabled,
|
|
47
|
+
errorText = _ref.errorText,
|
|
41
48
|
_ref$readOnly = _ref.readOnly,
|
|
42
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly
|
|
49
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
50
|
+
getMenuEntryProps = _ref.getMenuEntryProps;
|
|
43
51
|
|
|
44
52
|
var _React$useState = React.useState(defaultDropdownVisibility != null ? defaultDropdownVisibility : false),
|
|
45
53
|
dropdownVisible = _React$useState[0],
|
|
@@ -77,24 +85,29 @@ var ContextSelector = function ContextSelector(_ref) {
|
|
|
77
85
|
}, [onOpen]);
|
|
78
86
|
var triggerButton = React.useMemo(function () {
|
|
79
87
|
var buttonLabel = texts.buttonLabel;
|
|
88
|
+
var hasError = Boolean(errorText);
|
|
80
89
|
return addMode && !selectedItem ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
|
90
|
+
error: hasError,
|
|
81
91
|
disabled: disabled,
|
|
82
92
|
type: "primary",
|
|
83
93
|
mode: "icon-label",
|
|
84
|
-
onClick: !readOnly ? handleClick : undefined
|
|
94
|
+
onClick: !readOnly ? handleClick : undefined,
|
|
95
|
+
readOnly: readOnly
|
|
85
96
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
86
97
|
component: /*#__PURE__*/React.createElement(Add3M, null)
|
|
87
98
|
}), buttonLabel)) : /*#__PURE__*/React.createElement(Menu, {
|
|
88
99
|
asDropdownMenu: true,
|
|
89
100
|
showTextTooltip: true,
|
|
90
101
|
asInfoCardContainer: true,
|
|
91
|
-
dataSource: [{
|
|
102
|
+
dataSource: [_objectSpread({
|
|
92
103
|
text: /*#__PURE__*/React.createElement(Button, {
|
|
104
|
+
error: hasError,
|
|
93
105
|
disabled: disabled,
|
|
94
106
|
type: "custom-color",
|
|
95
107
|
color: triggerColor,
|
|
96
108
|
mode: triggerMode,
|
|
97
|
-
onClick: !readOnly ? handleClick : undefined
|
|
109
|
+
onClick: !readOnly ? handleClick : undefined,
|
|
110
|
+
readOnly: readOnly
|
|
98
111
|
}, selectedItem ? /*#__PURE__*/React.createElement(Icon, {
|
|
99
112
|
component: selectedItem.icon
|
|
100
113
|
}) : null, /*#__PURE__*/React.createElement(ItemWrapper, null, selectedItem ? selectedItem.name : buttonLabel), !readOnly && /*#__PURE__*/React.createElement(Icon, {
|
|
@@ -116,9 +129,9 @@ var ContextSelector = function ContextSelector(_ref) {
|
|
|
116
129
|
} : undefined
|
|
117
130
|
});
|
|
118
131
|
} : undefined
|
|
119
|
-
}]
|
|
132
|
+
}, getMenuEntryProps == null ? void 0 : getMenuEntryProps(selectedItem))]
|
|
120
133
|
});
|
|
121
|
-
}, [texts, addMode, selectedItem, disabled, readOnly, handleClick, triggerColor, triggerMode, getPopupContainerOverride]);
|
|
134
|
+
}, [texts, addMode, selectedItem, disabled, readOnly, handleClick, triggerColor, triggerMode, getPopupContainerOverride, errorText, getMenuEntryProps]);
|
|
122
135
|
var onDropdownVisibilityChange = React.useCallback(function (value) {
|
|
123
136
|
if (value) {
|
|
124
137
|
onActivate && onActivate('');
|
|
@@ -129,7 +142,7 @@ var ContextSelector = function ContextSelector(_ref) {
|
|
|
129
142
|
}
|
|
130
143
|
}, [onActivate, onDeactivate]);
|
|
131
144
|
if (readOnly) return /*#__PURE__*/React.createElement(React.Fragment, null, customTriggerComponent != null ? customTriggerComponent : triggerButton);
|
|
132
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
145
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
133
146
|
"data-popup-container": true
|
|
134
147
|
}, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps, {
|
|
135
148
|
getPopupContainer: getPopupContainerOverride || getPopupContainer,
|
|
@@ -154,7 +167,7 @@ var ContextSelector = function ContextSelector(_ref) {
|
|
|
154
167
|
hasMoreItems: hasMoreItems,
|
|
155
168
|
onFetchData: onFetchData
|
|
156
169
|
})
|
|
157
|
-
}), customTriggerComponent != null ? customTriggerComponent : triggerButton));
|
|
170
|
+
}), customTriggerComponent != null ? customTriggerComponent : triggerButton)), errorText && /*#__PURE__*/React.createElement(ErrorWrapper, null, errorText));
|
|
158
171
|
};
|
|
159
172
|
|
|
160
173
|
export default ContextSelector;
|
|
@@ -5,5 +5,6 @@ export declare const ItemsList: import("styled-components").StyledComponent<type
|
|
|
5
5
|
export declare const SearchResult: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
6
6
|
export declare const SearchResultHighlight: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
7
7
|
export declare const Title: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
-
export declare const ItemWrapper: import("styled-components").StyledComponent<"
|
|
8
|
+
export declare const ItemWrapper: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
9
|
+
export declare const ErrorWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
10
|
export declare const LoaderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -30,13 +30,17 @@ export var Title = styled.div.withConfig({
|
|
|
30
30
|
})(["font-size:10px;line-height:1.6;font-weight:500;text-transform:uppercase;color:", ";padding:8px 12px;"], function (props) {
|
|
31
31
|
return props.theme.palette['grey-500'];
|
|
32
32
|
});
|
|
33
|
-
export var ItemWrapper = styled.
|
|
33
|
+
export var ItemWrapper = styled.span.withConfig({
|
|
34
34
|
displayName: "ContextSelectorstyles__ItemWrapper",
|
|
35
35
|
componentId: "sc-1tuu6xk-6"
|
|
36
|
-
})(["max-width:200px;overflow:hidden;text-overflow:ellipsis;
|
|
37
|
-
|
|
36
|
+
})(["max-width:200px;overflow:hidden;text-overflow:ellipsis;"]);
|
|
37
|
+
export var ErrorWrapper = styled.div.withConfig({
|
|
38
|
+
displayName: "ContextSelectorstyles__ErrorWrapper",
|
|
39
|
+
componentId: "sc-1tuu6xk-7"
|
|
40
|
+
})(["color:", ";margin-top:8px;"], function (props) {
|
|
41
|
+
return props.theme.palette['red-600'];
|
|
38
42
|
});
|
|
39
43
|
export var LoaderWrapper = styled.div.withConfig({
|
|
40
44
|
displayName: "ContextSelectorstyles__LoaderWrapper",
|
|
41
|
-
componentId: "sc-1tuu6xk-
|
|
45
|
+
componentId: "sc-1tuu6xk-8"
|
|
42
46
|
})(["width:100%;display:flex;align-items:center;justify-content:center;padding:32px 0;"]);
|
|
@@ -3,6 +3,7 @@ import { CSSProperties } from 'react';
|
|
|
3
3
|
import { HandledEventsType } from '@synerise/ds-utils';
|
|
4
4
|
import { ItemSize } from '@synerise/ds-menu';
|
|
5
5
|
import { DropdownProps } from '@synerise/ds-dropdown/dist/Dropdown';
|
|
6
|
+
import type { FactorsProps } from '@synerise/ds-factors';
|
|
6
7
|
export declare type ContextTexts = {
|
|
7
8
|
buttonLabel: string;
|
|
8
9
|
searchPlaceholder: string;
|
|
@@ -64,6 +65,8 @@ export declare type ContextProps = {
|
|
|
64
65
|
hasMoreItems?: boolean;
|
|
65
66
|
type?: 'default' | 'attribute' | 'event';
|
|
66
67
|
dropdownProps?: Omit<DropdownProps, 'trigger' | 'getPopupContainer' | 'onVisibleChange' | 'visible' | 'overlay'>;
|
|
68
|
+
errorText?: React.ReactNode | string;
|
|
69
|
+
getMenuEntryProps?: FactorsProps['getMenuEntryProps'];
|
|
67
70
|
};
|
|
68
71
|
export declare type ContextDropdownProps = {
|
|
69
72
|
setDropdownVisible: (show: boolean) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-context-selector",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "ContextSelector UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -26,21 +26,22 @@
|
|
|
26
26
|
"test:watch": "npm run test -- --watchAll",
|
|
27
27
|
"types": "tsc --noEmit"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "9a0fe37374409f1830fa642965975a26a72116c8",
|
|
30
30
|
"sideEffects": [
|
|
31
31
|
"dist/style/*",
|
|
32
32
|
"*.less"
|
|
33
33
|
],
|
|
34
34
|
"types": "dist/index.d.ts",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@synerise/ds-button": "^0.17.
|
|
37
|
-
"@synerise/ds-dropdown": "^0.17.
|
|
36
|
+
"@synerise/ds-button": "^0.17.16",
|
|
37
|
+
"@synerise/ds-dropdown": "^0.17.65",
|
|
38
|
+
"@synerise/ds-factors": "^0.18.0",
|
|
38
39
|
"@synerise/ds-icon": "^0.56.0",
|
|
39
|
-
"@synerise/ds-information-card": "^0.3.
|
|
40
|
-
"@synerise/ds-menu": "^0.17.
|
|
41
|
-
"@synerise/ds-result": "^0.6.
|
|
40
|
+
"@synerise/ds-information-card": "^0.3.15",
|
|
41
|
+
"@synerise/ds-menu": "^0.17.9",
|
|
42
|
+
"@synerise/ds-result": "^0.6.23",
|
|
42
43
|
"@synerise/ds-scrollbar": "^0.6.2",
|
|
43
|
-
"@synerise/ds-tabs": "^0.13.
|
|
44
|
+
"@synerise/ds-tabs": "^0.13.61",
|
|
44
45
|
"@synerise/ds-utils": "^0.19.0",
|
|
45
46
|
"classnames": "^2.2.6",
|
|
46
47
|
"react-window": "1.8.5"
|