@qoretechnologies/reqore 0.37.9 → 0.38.1
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/__tests__/dropdown.test.tsx +10 -8
- package/__tests__/table.test.tsx +0 -1
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +6 -4
- package/dist/components/Breadcrumbs/index.js.map +1 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +5 -5
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/ControlGroup/index.d.ts.map +1 -1
- package/dist/components/ControlGroup/index.js +1 -1
- package/dist/components/ControlGroup/index.js.map +1 -1
- package/dist/components/Drawer/index.d.ts +1 -1
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Dropdown/index.d.ts +2 -2
- package/dist/components/Dropdown/index.d.ts.map +1 -1
- package/dist/components/Dropdown/index.js +5 -5
- package/dist/components/Dropdown/index.js.map +1 -1
- package/dist/components/Dropdown/item.d.ts +6 -5
- package/dist/components/Dropdown/item.d.ts.map +1 -1
- package/dist/components/Dropdown/item.js +14 -6
- package/dist/components/Dropdown/item.js.map +1 -1
- package/dist/components/Dropdown/list.d.ts +4 -2
- package/dist/components/Dropdown/list.d.ts.map +1 -1
- package/dist/components/Dropdown/list.js +33 -7
- package/dist/components/Dropdown/list.js.map +1 -1
- package/dist/components/Effect/index.d.ts +1 -0
- package/dist/components/Effect/index.d.ts.map +1 -1
- package/dist/components/Effect/index.js +39 -24
- package/dist/components/Effect/index.js.map +1 -1
- package/dist/components/InternalPopover/index.d.ts.map +1 -1
- package/dist/components/InternalPopover/index.js +21 -1
- package/dist/components/InternalPopover/index.js.map +1 -1
- package/dist/components/Menu/index.js +4 -4
- package/dist/components/Menu/index.js.map +1 -1
- package/dist/components/Menu/item.d.ts +1 -1
- package/dist/components/Menu/item.d.ts.map +1 -1
- package/dist/components/Menu/item.js +6 -6
- package/dist/components/Menu/item.js.map +1 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +3 -4
- package/dist/components/Message/index.js.map +1 -1
- package/dist/components/MultiSelect/index.js +2 -2
- package/dist/components/MultiSelect/index.js.map +1 -1
- package/dist/components/Notifications/notification.d.ts +1 -0
- package/dist/components/Notifications/notification.d.ts.map +1 -1
- package/dist/components/Notifications/notification.js +10 -21
- package/dist/components/Notifications/notification.js.map +1 -1
- package/dist/components/Panel/LabelEditor.d.ts +12 -0
- package/dist/components/Panel/LabelEditor.d.ts.map +1 -0
- package/dist/components/Panel/LabelEditor.js +61 -0
- package/dist/components/Panel/LabelEditor.js.map +1 -0
- package/dist/components/Panel/index.d.ts +11 -1
- package/dist/components/Panel/index.d.ts.map +1 -1
- package/dist/components/Panel/index.js +65 -22
- package/dist/components/Panel/index.js.map +1 -1
- package/dist/components/Tabs/content.d.ts +4 -2
- package/dist/components/Tabs/content.d.ts.map +1 -1
- package/dist/components/Tabs/content.js +22 -5
- package/dist/components/Tabs/content.js.map +1 -1
- package/dist/components/Textarea/index.d.ts +4 -0
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +20 -5
- package/dist/components/Textarea/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Breadcrumbs/index.tsx +19 -5
- package/src/components/Button/index.tsx +12 -11
- package/src/components/ControlGroup/index.tsx +1 -0
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Dropdown/index.tsx +16 -14
- package/src/components/Dropdown/item.tsx +26 -10
- package/src/components/Dropdown/list.tsx +80 -30
- package/src/components/Effect/index.tsx +46 -15
- package/src/components/InternalPopover/index.tsx +24 -1
- package/src/components/Menu/index.tsx +2 -2
- package/src/components/Menu/item.tsx +93 -85
- package/src/components/Message/index.tsx +39 -35
- package/src/components/MultiSelect/index.tsx +2 -2
- package/src/components/Notifications/notification.tsx +34 -30
- package/src/components/Panel/LabelEditor.tsx +67 -0
- package/src/components/Panel/index.tsx +99 -25
- package/src/components/Tabs/content.tsx +44 -7
- package/src/components/Textarea/index.tsx +77 -27
- package/src/mock/breadcrumbs.ts +12 -1
- package/src/stories/Dropdown/Dropdown.stories.tsx +58 -0
- package/src/stories/Dropdown/DropdownTests.stories.tsx +78 -0
- package/src/stories/Message/Message.stories.tsx +13 -5
- package/src/stories/MultiSelect/MultiSelect.stories.tsx +2 -2
- package/src/stories/Panel/Panel.stories.tsx +123 -0
- package/src/stories/Popover/Popover.stories.tsx +41 -0
- package/src/stories/TextArea/TextArea.stories.tsx +49 -0
- package/src/stories/TextArea/TextAreaTests.stories.tsx +103 -0
- package/tests.json +1 -1
|
@@ -31,15 +31,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
31
31
|
exports.__esModule = true;
|
|
32
32
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
33
33
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
34
|
-
var
|
|
35
|
-
|
|
34
|
+
var sizes_1 = require("../../constants/sizes");
|
|
35
|
+
var StyledTabsContent = styled_components_1["default"].div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n overflow: hidden;\n flex: 1;\n padding: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n display: flex;\n flex-flow: column;\n overflow: hidden;\n flex: 1;\n padding: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
|
|
36
|
+
var padded = _a.padded, size = _a.size;
|
|
36
37
|
return padded === 'none' || padded === false
|
|
37
38
|
? undefined
|
|
38
|
-
: "".concat(padded === 'both' || padded === true || padded === 'vertical'
|
|
39
|
+
: "".concat(padded === 'both' || padded === true || padded === 'vertical'
|
|
40
|
+
? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px")
|
|
41
|
+
: 0, " ").concat(padded === 'both' || padded === true || padded === 'horizontal'
|
|
42
|
+
? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px")
|
|
43
|
+
: 0);
|
|
44
|
+
}, function (_a) {
|
|
45
|
+
var padded = _a.padded, size = _a.size;
|
|
46
|
+
return padded === 'top' ? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px") : undefined;
|
|
47
|
+
}, function (_a) {
|
|
48
|
+
var padded = _a.padded, size = _a.size;
|
|
49
|
+
return padded === 'bottom' ? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px") : undefined;
|
|
50
|
+
}, function (_a) {
|
|
51
|
+
var padded = _a.padded, size = _a.size;
|
|
52
|
+
return padded === 'left' ? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px") : undefined;
|
|
53
|
+
}, function (_a) {
|
|
54
|
+
var padded = _a.padded, size = _a.size;
|
|
55
|
+
return padded === 'right' ? "".concat(sizes_1.PADDING_FROM_SIZE[size], "px") : undefined;
|
|
39
56
|
});
|
|
40
57
|
var ReqoreTabsContent = function (_a) {
|
|
41
|
-
var children = _a.children, className = _a.className, _b = _a.padded, padded = _b === void 0 ? true : _b, rest = __rest(_a, ["children", "className", "padded"]);
|
|
42
|
-
return ((0, jsx_runtime_1.jsx)(StyledTabsContent, __assign({}, rest, { padded: padded, className: "".concat(className || '', " reqore-tabs-content") }, { children: children })));
|
|
58
|
+
var children = _a.children, className = _a.className, _b = _a.padded, padded = _b === void 0 ? true : _b, _c = _a.size, size = _c === void 0 ? 'normal' : _c, rest = __rest(_a, ["children", "className", "padded", "size"]);
|
|
59
|
+
return ((0, jsx_runtime_1.jsx)(StyledTabsContent, __assign({}, rest, { size: size, padded: padded, className: "".concat(className || '', " reqore-tabs-content") }, { children: children })));
|
|
43
60
|
};
|
|
44
61
|
exports["default"] = ReqoreTabsContent;
|
|
45
62
|
var templateObject_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/components/Tabs/content.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/components/Tabs/content.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuC;AACvC,+CAAkE;AAqBlE,IAAM,iBAAiB,GAAG,8BAAM,CAAC,GAAG,gQAAA,wFAKvB,EAWH,oBACO,EACgD,uBAC7C,EACgD,qBAClD,EACgD,sBAC/C,EACgD,KAClE,KApBY,UAAC,EAAoC;QAAlC,MAAM,YAAA,EAAE,IAAI,UAAA;IACxB,OAAA,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UACE,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,UAAU;YAC3D,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI;YAChC,CAAC,CAAC,CAAC,cAEL,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,YAAY;YAC7D,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI;YAChC,CAAC,CAAC,CAAC,CACL;AAVN,CAUM,EACO,UAAC,EAAoC;QAAlC,MAAM,YAAA,EAAE,IAAI,UAAA;IAC5B,OAAA,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI,CAAC,CAAC,CAAC,SAAS;AAA7D,CAA6D,EAC7C,UAAC,EAAoC;QAAlC,MAAM,YAAA,EAAE,IAAI,UAAA;IAC/B,OAAA,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI,CAAC,CAAC,CAAC,SAAS;AAAhE,CAAgE,EAClD,UAAC,EAAoC;QAAlC,MAAM,YAAA,EAAE,IAAI,UAAA;IAC7B,OAAA,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI,CAAC,CAAC,CAAC,SAAS;AAA9D,CAA8D,EAC/C,UAAC,EAAoC;QAAlC,MAAM,YAAA,EAAE,IAAI,UAAA;IAC9B,OAAA,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAG,yBAAiB,CAAC,IAAI,CAAC,OAAI,CAAC,CAAC,CAAC,SAAS;AAA/D,CAA+D,CAClE,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,EAMN;IALnB,IAAA,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,cAAa,EAAb,MAAM,mBAAG,IAAI,KAAA,EACb,YAAe,EAAf,IAAI,mBAAG,QAAQ,KAAA,EACZ,IAAI,cALkB,2CAM1B,CADQ;IACiB,OAAA,CACxB,uBAAC,iBAAiB,eACZ,IAAI,IACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAG,SAAS,IAAI,EAAE,yBAAsB,gBAElD,QAAQ,IACS,CACrB,CAAA;CAAA,CAAC;AAEF,qBAAe,iBAAiB,CAAC"}
|
|
@@ -3,6 +3,9 @@ import { TSizes } from '../../constants/sizes';
|
|
|
3
3
|
import { IReqoreTheme } from '../../constants/theme';
|
|
4
4
|
import { IReqoreAutoFocusRules } from '../../hooks/useAutoFocus';
|
|
5
5
|
import { IReqoreDisabled, IReqoreIntent, IReqoreReadOnly, IWithReqoreCustomTheme, IWithReqoreEffect, IWithReqoreTooltip } from '../../types/global';
|
|
6
|
+
import { IReqoreDropdownProps } from '../Dropdown';
|
|
7
|
+
export interface IReqoreFormTemplates extends IReqoreDropdownProps {
|
|
8
|
+
}
|
|
6
9
|
export interface IReqoreTextareaProps extends React.HTMLAttributes<HTMLTextAreaElement>, IReqoreReadOnly, IReqoreDisabled, IWithReqoreCustomTheme, IWithReqoreTooltip, IReqoreIntent, IWithReqoreEffect {
|
|
7
10
|
autoFocus?: boolean;
|
|
8
11
|
width?: number;
|
|
@@ -20,6 +23,7 @@ export interface IReqoreTextareaProps extends React.HTMLAttributes<HTMLTextAreaE
|
|
|
20
23
|
onClearClick?: () => any;
|
|
21
24
|
wrapperStyle?: React.CSSProperties;
|
|
22
25
|
focusRules?: IReqoreAutoFocusRules;
|
|
26
|
+
templates?: IReqoreFormTemplates;
|
|
23
27
|
}
|
|
24
28
|
export interface IReqoreTextareaStyle extends IReqoreTextareaProps {
|
|
25
29
|
theme: IReqoreTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAG5E,OAAO,EAAgD,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAgB,MAAM,0BAA0B,CAAC;AAM/E,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAG;AAErE,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAC/C,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,iBAAiB;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,KASjC,CAAC;AAEF,eAAO,MAAM,cAAc,KAwD1B,CAAC;AAEF,QAAA,MAAM,WAAW,kGA0HhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -57,6 +57,7 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
57
57
|
var polished_1 = require("polished");
|
|
58
58
|
var react_1 = require("react");
|
|
59
59
|
var styled_components_1 = __importStar(require("styled-components"));
|
|
60
|
+
var __1 = require("../..");
|
|
60
61
|
var sizes_1 = require("../../constants/sizes");
|
|
61
62
|
var colors_1 = require("../../helpers/colors");
|
|
62
63
|
var useAutoFocus_1 = require("../../hooks/useAutoFocus");
|
|
@@ -125,7 +126,7 @@ exports.StyledTextarea = (0, styled_components_1["default"])(Effect_1.StyledEffe
|
|
|
125
126
|
return readOnly && styles_1.ReadOnlyElement;
|
|
126
127
|
}, styles_1.DisabledElement);
|
|
127
128
|
var ReqoreInput = (0, react_1.forwardRef)(function (_a, ref) {
|
|
128
|
-
var width = _a.width, height = _a.height, scaleWithContent = _a.scaleWithContent, _b = _a.size, size = _b === void 0 ? 'normal' : _b, className = _a.className, onClearClick = _a.onClearClick, fluid = _a.fluid, tooltip = _a.tooltip, customTheme = _a.customTheme, intent = _a.intent, _c = _a.rounded, rounded = _c === void 0 ? true : _c, wrapperStyle = _a.wrapperStyle, value = _a.value, onChange = _a.onChange, fixed = _a.fixed, focusRules = _a.focusRules, rest = __rest(_a, ["width", "height", "scaleWithContent", "size", "className", "onClearClick", "fluid", "tooltip", "customTheme", "intent", "rounded", "wrapperStyle", "value", "onChange", "fixed", "focusRules"]);
|
|
129
|
+
var width = _a.width, height = _a.height, scaleWithContent = _a.scaleWithContent, _b = _a.size, size = _b === void 0 ? 'normal' : _b, className = _a.className, onClearClick = _a.onClearClick, fluid = _a.fluid, tooltip = _a.tooltip, customTheme = _a.customTheme, intent = _a.intent, _c = _a.rounded, rounded = _c === void 0 ? true : _c, wrapperStyle = _a.wrapperStyle, value = _a.value, onChange = _a.onChange, fixed = _a.fixed, focusRules = _a.focusRules, templates = _a.templates, rest = __rest(_a, ["width", "height", "scaleWithContent", "size", "className", "onClearClick", "fluid", "tooltip", "customTheme", "intent", "rounded", "wrapperStyle", "value", "onChange", "fixed", "focusRules", "templates"]);
|
|
129
130
|
var targetRef = (0, useCombinedRefs_1.useCombinedRefs)(ref).targetRef;
|
|
130
131
|
var _d = (0, react_1.useState)(null), inputRef = _d[0], setInputRef = _d[1];
|
|
131
132
|
var theme = (0, useTheme_1.useReqoreTheme)('main', customTheme, intent);
|
|
@@ -136,10 +137,24 @@ var ReqoreInput = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
136
137
|
(0, useTooltip_1.useTooltip)(inputRef, tooltip);
|
|
137
138
|
(0, useTextareaAutoSize_1["default"])(inputRef, _value, scaleWithContent);
|
|
138
139
|
(0, useAutoFocus_1.useAutoFocus)(inputRef, rest.readOnly || rest.disabled ? undefined : focusRules, onChange);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
var handleItemSelect = (0, react_1.useCallback)(function (item) {
|
|
141
|
+
if (!inputRef || !item || !item.value) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Add the value of the selected item to the current value at the cursor position
|
|
145
|
+
var value = "".concat(_value.slice(0, inputRef.selectionStart)).concat(item.value).concat(_value.slice(inputRef.selectionEnd));
|
|
146
|
+
setValue(value);
|
|
147
|
+
}, [inputRef, _value]);
|
|
148
|
+
var renderChildren = function () {
|
|
149
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.StyledTextarea, __assign({}, rest, { effect: __assign({ interactive: !(rest === null || rest === void 0 ? void 0 : rest.disabled) && !rest.readOnly }, rest === null || rest === void 0 ? void 0 : rest.effect), onChange: function (e) {
|
|
150
|
+
setValue(e.target.value);
|
|
151
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
152
|
+
}, as: 'textarea', className: "".concat(className || '', " reqore-control reqore-textarea"), _size: size, ref: function (ref) { return setInputRef(ref); }, theme: theme, rounded: rounded, rows: 1, value: _value, readonly: rest === null || rest === void 0 ? void 0 : rest.readOnly })), (0, jsx_runtime_1.jsx)(InputClearButton_1["default"], { enabled: !(rest === null || rest === void 0 ? void 0 : rest.readOnly) && !(rest === null || rest === void 0 ? void 0 : rest.disabled) && !!(onClearClick && onChange), show: _value && _value !== '', onClick: onClearClick, size: size })] }));
|
|
153
|
+
};
|
|
154
|
+
if (templates) {
|
|
155
|
+
return ((0, jsx_runtime_1.jsx)(__1.ReqoreDropdown, __assign({ component: exports.StyledTextareaWrapper, className: "".concat(className || '', " reqore-control-wrapper"), width: width, height: height, fluid: fluid, fixed: fixed, _size: size, theme: theme, style: wrapperStyle, ref: targetRef, onItemSelect: handleItemSelect }, templates, { children: renderChildren() })));
|
|
156
|
+
}
|
|
157
|
+
return ((0, jsx_runtime_1.jsx)(exports.StyledTextareaWrapper, __assign({ className: "".concat(className || '', " reqore-control-wrapper"), width: width, height: height, fluid: fluid, fixed: fixed, _size: size, theme: theme, style: wrapperStyle, ref: targetRef }, { children: renderChildren() })));
|
|
143
158
|
});
|
|
144
159
|
exports["default"] = ReqoreInput;
|
|
145
160
|
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgC;AAChC,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -171,17 +171,22 @@ const ReqoreBreadcrumbs: React.FC<IReqoreBreadcrumbsProps> = ({
|
|
|
171
171
|
[items, width, _testWidth, size]
|
|
172
172
|
);
|
|
173
173
|
|
|
174
|
-
const renderItem = (
|
|
175
|
-
|
|
174
|
+
const renderItem = (
|
|
175
|
+
itemOrItems: IReqoreBreadcrumbItem | IReqoreBreadcrumbItem[],
|
|
176
|
+
index: number
|
|
177
|
+
) => {
|
|
178
|
+
if (isArray(itemOrItems) && count(itemOrItems) > 1) {
|
|
176
179
|
return (
|
|
177
180
|
<React.Fragment key={index}>
|
|
178
181
|
<ReqoreDropdown
|
|
179
182
|
key={`dropdown-${index}`}
|
|
180
|
-
icon={last(
|
|
183
|
+
icon={last(itemOrItems)?.icon}
|
|
184
|
+
leftIconProps={last(itemOrItems)?.leftIconProps}
|
|
181
185
|
handler='hoverStay'
|
|
182
186
|
delay={500}
|
|
183
|
-
|
|
184
|
-
|
|
187
|
+
size={size}
|
|
188
|
+
badge={count(itemOrItems)}
|
|
189
|
+
items={itemOrItems as IReqoreDropdownItem[]}
|
|
185
190
|
>
|
|
186
191
|
<ReqoreIcon icon='MoreLine' />
|
|
187
192
|
</ReqoreDropdown>
|
|
@@ -189,6 +194,15 @@ const ReqoreBreadcrumbs: React.FC<IReqoreBreadcrumbsProps> = ({
|
|
|
189
194
|
);
|
|
190
195
|
}
|
|
191
196
|
|
|
197
|
+
const item: IReqoreBreadcrumbItem = (
|
|
198
|
+
isArray(itemOrItems) && count(itemOrItems) === 1
|
|
199
|
+
? {
|
|
200
|
+
...itemOrItems[0],
|
|
201
|
+
label: <ReqoreIcon icon='MoreLine' />,
|
|
202
|
+
}
|
|
203
|
+
: itemOrItems
|
|
204
|
+
) as IReqoreBreadcrumbItem;
|
|
205
|
+
|
|
192
206
|
if (item.withTabs) {
|
|
193
207
|
return (
|
|
194
208
|
<StyledBreadcrumbsTabsWrapper key={index}>
|
|
@@ -385,18 +385,17 @@ const ReqoreButton = memo(
|
|
|
385
385
|
: getReadableColor(theme, undefined, undefined, true);
|
|
386
386
|
|
|
387
387
|
const _children = useMemo(() => label || children, [label, children]);
|
|
388
|
+
const hasLeftIcon = icon || leftIconProps?.image;
|
|
389
|
+
const hasRightIcon = rightIcon || rightIconProps?.image;
|
|
388
390
|
|
|
389
391
|
return (
|
|
390
392
|
<StyledButton
|
|
391
393
|
{...rest}
|
|
392
|
-
effect={
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
...fixedEffect,
|
|
398
|
-
}
|
|
399
|
-
}
|
|
394
|
+
effect={{
|
|
395
|
+
interactive: !readOnly && !rest.disabled,
|
|
396
|
+
...fixedEffect,
|
|
397
|
+
gradient: intent ? undefined : fixedEffect?.gradient,
|
|
398
|
+
}}
|
|
400
399
|
tabindex={rest.disabled ? -1 : 0}
|
|
401
400
|
as={as || 'button'}
|
|
402
401
|
theme={theme}
|
|
@@ -419,7 +418,7 @@ const ReqoreButton = memo(
|
|
|
419
418
|
className={`${className || ''} reqore-control reqore-button`}
|
|
420
419
|
>
|
|
421
420
|
<StyledButtonContent size={size} wrap={wrap} description={description} flat={_flat}>
|
|
422
|
-
{
|
|
421
|
+
{hasLeftIcon ? (
|
|
423
422
|
<>
|
|
424
423
|
<ReqoreIcon
|
|
425
424
|
icon={icon}
|
|
@@ -438,7 +437,9 @@ const ReqoreButton = memo(
|
|
|
438
437
|
: undefined
|
|
439
438
|
}
|
|
440
439
|
/>
|
|
441
|
-
{_children ||
|
|
440
|
+
{_children || hasRightIcon ? (
|
|
441
|
+
<ReqoreSpacer width={PADDING_FROM_SIZE[size]} />
|
|
442
|
+
) : null}
|
|
442
443
|
</>
|
|
443
444
|
) : _children ? (
|
|
444
445
|
<ReqoreHorizontalSpacer
|
|
@@ -470,7 +471,7 @@ const ReqoreButton = memo(
|
|
|
470
471
|
{(badge || badge === 0) && !wrap ? (
|
|
471
472
|
<ButtonBadge content={badge} size={size} theme={theme} />
|
|
472
473
|
) : null}
|
|
473
|
-
{!
|
|
474
|
+
{!hasRightIcon ? (
|
|
474
475
|
_children ? (
|
|
475
476
|
<ReqoreHorizontalSpacer
|
|
476
477
|
width={1}
|
|
@@ -16,7 +16,7 @@ import { ReqoreBackdrop } from './backdrop';
|
|
|
16
16
|
|
|
17
17
|
export type TPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
18
18
|
|
|
19
|
-
export interface IReqoreDrawerProps extends Omit<IReqorePanelProps, 'size'> {
|
|
19
|
+
export interface IReqoreDrawerProps extends Omit<IReqorePanelProps, 'size' | 'resizable'> {
|
|
20
20
|
children?: any;
|
|
21
21
|
isOpen?: boolean;
|
|
22
22
|
isHidden?: boolean;
|
|
@@ -14,9 +14,7 @@ import ReqoreDropdownList, {
|
|
|
14
14
|
} from './list';
|
|
15
15
|
|
|
16
16
|
export interface IReqoreDropdownProps
|
|
17
|
-
extends Partial<
|
|
18
|
-
Omit<IPopoverOptions, 'openOnMount' | 'show' | 'targetElement' | 'wrapperProps'>
|
|
19
|
-
> {
|
|
17
|
+
extends Partial<Omit<IPopoverOptions, 'openOnMount' | 'targetElement' | 'wrapperProps'>> {
|
|
20
18
|
items?: IReqoreDropdownItem[];
|
|
21
19
|
multiSelect?: boolean;
|
|
22
20
|
buttonStyle?: React.CSSProperties;
|
|
@@ -42,16 +40,18 @@ export interface IReqoreDropdownProps
|
|
|
42
40
|
paging?: TReqorePaginationType<IReqoreDropdownItem>;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
const ReqoreDropdownListWrapper = (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
const ReqoreDropdownListWrapper = memo(
|
|
44
|
+
({
|
|
45
|
+
wrapperProps,
|
|
46
|
+
...rest
|
|
47
|
+
}: IReqoreDropdownListProps & { wrapperProps?: IReqoreDropdownProps['wrapperProps'] }) => {
|
|
48
|
+
return (
|
|
49
|
+
<ReqorePanel flat size='small' {...wrapperProps}>
|
|
50
|
+
<ReqoreDropdownList {...rest} />
|
|
51
|
+
</ReqorePanel>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
55
|
|
|
56
56
|
function ReqoreDropdown<T = IReqoreButtonProps>({
|
|
57
57
|
items,
|
|
@@ -87,6 +87,7 @@ function ReqoreDropdown<T = IReqoreButtonProps>({
|
|
|
87
87
|
inputProps,
|
|
88
88
|
scrollToSelected,
|
|
89
89
|
paging,
|
|
90
|
+
show,
|
|
90
91
|
...rest
|
|
91
92
|
}: IReqoreDropdownProps & T) {
|
|
92
93
|
const componentProps = useMemo(
|
|
@@ -120,7 +121,7 @@ function ReqoreDropdown<T = IReqoreButtonProps>({
|
|
|
120
121
|
filter={filter}
|
|
121
122
|
/>
|
|
122
123
|
) : undefined;
|
|
123
|
-
}, [items]);
|
|
124
|
+
}, [items, onItemSelect]);
|
|
124
125
|
|
|
125
126
|
return (
|
|
126
127
|
<ReqorePopover
|
|
@@ -142,6 +143,7 @@ function ReqoreDropdown<T = IReqoreButtonProps>({
|
|
|
142
143
|
openOnMount={isDefaultOpen}
|
|
143
144
|
content={popoverContent}
|
|
144
145
|
passPopoverData={passPopoverData}
|
|
146
|
+
show={show}
|
|
145
147
|
>
|
|
146
148
|
{children || label}
|
|
147
149
|
</ReqorePopover>
|
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { size } from 'lodash';
|
|
2
|
+
import { memo, useCallback } from 'react';
|
|
3
|
+
import { ReqoreMenuItem } from '../..';
|
|
4
|
+
import ReqoreMenuDivider, { IReqoreMenuDividerProps } from '../Menu/divider';
|
|
3
5
|
import { IReqoreDropdownItem } from './list';
|
|
4
6
|
|
|
5
|
-
export interface IReqoreDropdownItemProps extends
|
|
7
|
+
export interface IReqoreDropdownItemProps extends IReqoreDropdownItem {
|
|
8
|
+
onItemClick: (item: IReqoreDropdownItem) => void;
|
|
9
|
+
scrollIntoView?: boolean;
|
|
10
|
+
}
|
|
6
11
|
|
|
7
|
-
export const ReqoreDropdownItem = (
|
|
8
|
-
|
|
9
|
-
{
|
|
10
|
-
|
|
11
|
-
);
|
|
12
|
+
export const ReqoreDropdownItem = memo(
|
|
13
|
+
({ onItemClick, scrollIntoView, ...rest }: IReqoreDropdownItemProps) => {
|
|
14
|
+
const handleItemClick = useCallback(() => {
|
|
15
|
+
onItemClick(rest);
|
|
16
|
+
}, [onItemClick, rest]);
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
return (
|
|
19
|
+
<ReqoreMenuItem
|
|
20
|
+
{...rest}
|
|
21
|
+
_insidePopover={size(rest.items) ? false : undefined}
|
|
22
|
+
label={rest.label || rest.value}
|
|
23
|
+
onClick={handleItemClick}
|
|
24
|
+
rightIcon={rest.selected ? 'CheckLine' : rest.rightIcon}
|
|
25
|
+
scrollIntoView={scrollIntoView}
|
|
26
|
+
/>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
);
|
|
14
30
|
|
|
15
|
-
export const ReqoreDropdownDivider = (props:
|
|
31
|
+
export const ReqoreDropdownDivider = (props: IReqoreMenuDividerProps) => (
|
|
16
32
|
<ReqoreMenuDivider {...props} />
|
|
17
33
|
);
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { size } from 'lodash';
|
|
2
|
-
import React, { memo, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import React, { memo, useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import { TReqorePaginationType } from '../../constants/paging';
|
|
4
4
|
import { PADDING_FROM_SIZE } from '../../constants/sizes';
|
|
5
5
|
import { ReqorePaginationContainer } from '../../containers/Paging';
|
|
6
6
|
import { IReqoreComponent } from '../../types/global';
|
|
7
|
+
import ReqoreButton from '../Button';
|
|
8
|
+
import ReqoreControlGroup from '../ControlGroup';
|
|
7
9
|
import ReqoreInput, { IReqoreInputProps } from '../Input';
|
|
8
10
|
import ReqoreMenu from '../Menu';
|
|
9
|
-
import ReqoreMenuDivider from '../Menu/divider';
|
|
10
|
-
import
|
|
11
|
+
import ReqoreMenuDivider, { IReqoreMenuDividerProps } from '../Menu/divider';
|
|
12
|
+
import { IReqoreMenuItemProps } from '../Menu/item';
|
|
11
13
|
import { ReqoreVerticalSpacer } from '../Spacer';
|
|
12
|
-
import {
|
|
14
|
+
import { ReqoreDropdownItem } from './item';
|
|
13
15
|
|
|
14
16
|
export type TDropdownItemOnClick = (item: IReqoreDropdownItem) => void;
|
|
15
17
|
export interface IReqoreDropdownItem
|
|
16
|
-
extends Omit<IReqoreMenuItemProps, 'onClick' | '
|
|
18
|
+
extends Omit<IReqoreMenuItemProps, 'onClick' | 'onRightIconClick'> {
|
|
17
19
|
value?: any;
|
|
20
|
+
items?: TReqoreDropdownItems;
|
|
18
21
|
onClick?: TDropdownItemOnClick;
|
|
19
22
|
divider?: boolean;
|
|
20
23
|
dividerAlign?: 'left' | 'center' | 'right';
|
|
@@ -40,6 +43,8 @@ export interface IReqoreDropdownListProps extends IReqoreComponent {
|
|
|
40
43
|
inputProps?: IReqoreInputProps;
|
|
41
44
|
scrollToSelected?: boolean;
|
|
42
45
|
paging?: TReqorePaginationType<TReqoreDropdownItem>;
|
|
46
|
+
|
|
47
|
+
_onBackClick?: () => void;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
const ReqoreDropdownList = memo(
|
|
@@ -58,10 +63,12 @@ const ReqoreDropdownList = memo(
|
|
|
58
63
|
onFilterChange,
|
|
59
64
|
filterPlaceholder,
|
|
60
65
|
filter,
|
|
66
|
+
_onBackClick,
|
|
61
67
|
}: IReqoreDropdownListProps) => {
|
|
62
68
|
const [_items, setItems] = useState<TReqoreDropdownItems>(items);
|
|
63
69
|
const [query, setQuery] = useState<string | number>(onFilterChange ? '' : filter || '');
|
|
64
70
|
const [menuRef, setMenuRef] = useState<HTMLDivElement>(undefined);
|
|
71
|
+
const [selectedItem, setSelectedItem] = useState<IReqoreDropdownItem>(undefined);
|
|
65
72
|
|
|
66
73
|
useEffect(() => {
|
|
67
74
|
setItems(items);
|
|
@@ -95,31 +102,76 @@ const ReqoreDropdownList = memo(
|
|
|
95
102
|
}
|
|
96
103
|
};
|
|
97
104
|
|
|
98
|
-
const handleItemClick = (
|
|
99
|
-
|
|
100
|
-
item.
|
|
101
|
-
|
|
105
|
+
const handleItemClick = useCallback(
|
|
106
|
+
(item: IReqoreDropdownItem): void => {
|
|
107
|
+
if (size(item.items)) {
|
|
108
|
+
setSelectedItem(item);
|
|
102
109
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (item.onClick) {
|
|
114
|
+
item.onClick(item);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (onItemSelect) {
|
|
118
|
+
onItemSelect(item);
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
[onItemSelect, selectedItem]
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
if (selectedItem) {
|
|
125
|
+
return (
|
|
126
|
+
<ReqoreDropdownList
|
|
127
|
+
{...{
|
|
128
|
+
items: selectedItem.items,
|
|
129
|
+
multiSelect,
|
|
130
|
+
listStyle,
|
|
131
|
+
_popoverId,
|
|
132
|
+
filterable,
|
|
133
|
+
width,
|
|
134
|
+
height,
|
|
135
|
+
onItemSelect,
|
|
136
|
+
inputProps,
|
|
137
|
+
scrollToSelected,
|
|
138
|
+
paging,
|
|
139
|
+
onFilterChange,
|
|
140
|
+
filterPlaceholder,
|
|
141
|
+
filter,
|
|
142
|
+
_onBackClick: () => setSelectedItem(undefined),
|
|
143
|
+
}}
|
|
144
|
+
/>
|
|
145
|
+
);
|
|
146
|
+
}
|
|
107
147
|
|
|
108
148
|
return (
|
|
109
149
|
<>
|
|
110
|
-
{filterable
|
|
150
|
+
{filterable || _onBackClick ? (
|
|
111
151
|
<>
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
152
|
+
<ReqoreControlGroup fluid>
|
|
153
|
+
{_onBackClick && (
|
|
154
|
+
<ReqoreButton
|
|
155
|
+
icon='ArrowLeftSLine'
|
|
156
|
+
fluid
|
|
157
|
+
onClick={_onBackClick}
|
|
158
|
+
className='reqore-dropdown-back-button'
|
|
159
|
+
/>
|
|
160
|
+
)}
|
|
161
|
+
{filterable && (
|
|
162
|
+
<ReqoreInput
|
|
163
|
+
value={onFilterChange ? filter : query}
|
|
164
|
+
icon='SearchLine'
|
|
165
|
+
onChange={handleQueryChange}
|
|
166
|
+
placeholder={filterPlaceholder || `Search ${size(_items)} items...`}
|
|
167
|
+
onClearClick={() => (onFilterChange ? onFilterChange('') : setQuery(''))}
|
|
168
|
+
{...inputProps}
|
|
169
|
+
/>
|
|
170
|
+
)}
|
|
171
|
+
</ReqoreControlGroup>
|
|
120
172
|
<ReqoreVerticalSpacer height={PADDING_FROM_SIZE.normal} />
|
|
121
173
|
</>
|
|
122
|
-
)}
|
|
174
|
+
) : null}
|
|
123
175
|
<ReqorePaginationContainer type={paging} items={filteredItems} scrollContainer={menuRef}>
|
|
124
176
|
{(finalItems, Controls, { includeBottomControls }) => (
|
|
125
177
|
<ReqoreMenu
|
|
@@ -132,20 +184,18 @@ const ReqoreDropdownList = memo(
|
|
|
132
184
|
ref={setMenuRef}
|
|
133
185
|
>
|
|
134
186
|
{finalItems.map(
|
|
135
|
-
({
|
|
187
|
+
({ dividerAlign, divider, ...item }: IReqoreDropdownItem, index: number) =>
|
|
136
188
|
divider ? (
|
|
137
189
|
<ReqoreMenuDivider
|
|
138
190
|
key={index}
|
|
139
|
-
{...(item as unknown as
|
|
191
|
+
{...(item as unknown as IReqoreMenuDividerProps)}
|
|
140
192
|
align={dividerAlign}
|
|
141
193
|
/>
|
|
142
194
|
) : (
|
|
143
|
-
<
|
|
144
|
-
key={index}
|
|
195
|
+
<ReqoreDropdownItem
|
|
196
|
+
key={item.label || item.value || index}
|
|
145
197
|
{...item}
|
|
146
|
-
|
|
147
|
-
onClick={() => handleItemClick({ ...item, onClick })}
|
|
148
|
-
rightIcon={item.selected ? 'CheckLine' : undefined}
|
|
198
|
+
onItemClick={handleItemClick}
|
|
149
199
|
scrollIntoView={scrollToSelected && item.selected && !multiSelect}
|
|
150
200
|
/>
|
|
151
201
|
)
|