oolib 2.190.3 → 2.191.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.
Files changed (63) hide show
  1. package/dist/components/Divider/index.d.ts +2 -1
  2. package/dist/components/Divider/index.js +2 -2
  3. package/dist/components/Dropdowns/DropdownMulti/index.js +6 -1
  4. package/dist/components/Dropdowns/comps/OptionsMulti/index.js +1 -0
  5. package/dist/components/Dropdowns/utils/generateOptions.js +1 -0
  6. package/dist/components/ImageInput/comps/ImageEditor/index.js +1 -1
  7. package/dist/stories/v2/components/{Dropdowns.stories.d.ts → Dropdown/Dropdowns.stories.d.ts} +46 -18
  8. package/dist/stories/v2/components/Dropdown/Dropdowns.stories.js +204 -0
  9. package/dist/stories/v2/components/Dropdown/dropdownOptions.d.ts +15 -0
  10. package/dist/stories/v2/components/Dropdown/dropdownOptions.js +156 -0
  11. package/dist/stories/v2/components/List.stories.d.ts +96 -0
  12. package/dist/stories/v2/components/List.stories.js +219 -0
  13. package/dist/utils/useStyleUpdateAfterToggleTransition.js +6 -2
  14. package/dist/v2/components/Dropdowns/DropdownMulti/index.d.ts +3 -2
  15. package/dist/v2/components/Dropdowns/DropdownMulti/index.js +36 -19
  16. package/dist/v2/components/Dropdowns/DropdownSingle/index.d.ts +3 -2
  17. package/dist/v2/components/Dropdowns/DropdownSingle/index.js +12 -13
  18. package/dist/v2/components/Dropdowns/comps/Caret/index.d.ts +1 -2
  19. package/dist/v2/components/Dropdowns/comps/Caret/index.js +15 -5
  20. package/dist/v2/components/Dropdowns/comps/DisplayCompSingle/index.d.ts +1 -2
  21. package/dist/v2/components/Dropdowns/comps/DisplayCompSingle/index.js +8 -8
  22. package/dist/v2/components/Dropdowns/comps/NoOptionResultsComp/index.js +4 -4
  23. package/dist/v2/components/Dropdowns/comps/OptionsMulti/index.d.ts +2 -2
  24. package/dist/v2/components/Dropdowns/comps/OptionsMulti/index.js +12 -70
  25. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/index.d.ts +1 -2
  26. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/index.js +3 -3
  27. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/styled.js +5 -2
  28. package/dist/v2/components/Dropdowns/comps/OptionsShell/index.js +12 -26
  29. package/dist/v2/components/Dropdowns/comps/OptionsShell/styled.js +8 -8
  30. package/dist/v2/components/Dropdowns/comps/OptionsSingle/index.d.ts +3 -3
  31. package/dist/v2/components/Dropdowns/comps/OptionsSingle/index.js +9 -33
  32. package/dist/v2/components/Dropdowns/comps/OptionsSingle/styled.js +13 -12
  33. package/dist/v2/components/Dropdowns/comps/SearchBar/index.d.ts +8 -0
  34. package/dist/v2/components/Dropdowns/comps/SearchBar/index.js +21 -0
  35. package/dist/v2/components/Dropdowns/comps/SelectDropdown/index.d.ts +2 -2
  36. package/dist/v2/components/Dropdowns/comps/SelectDropdown/index.js +13 -15
  37. package/dist/v2/components/Dropdowns/comps/SelectDropdown/styled.js +10 -9
  38. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/index.d.ts +1 -2
  39. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/index.js +6 -9
  40. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/styled.js +3 -6
  41. package/dist/v2/components/Dropdowns/styled.js +1 -1
  42. package/dist/v2/components/Dropdowns/utils/genColor.js +2 -2
  43. package/dist/v2/components/Dropdowns/utils/genIcon.d.ts +3 -3
  44. package/dist/v2/components/Dropdowns/utils/genIcon.js +4 -2
  45. package/dist/v2/components/Dropdowns/utils/genProfileImg.d.ts +1 -2
  46. package/dist/v2/components/Dropdowns/utils/genProfileImg.js +2 -2
  47. package/dist/v2/components/Dropdowns/utils/genTagComp.js +3 -3
  48. package/dist/v2/components/Dropdowns/utils/getValue.d.ts +1 -0
  49. package/dist/v2/components/Dropdowns/utils/getValue.js +64 -10
  50. package/dist/v2/components/Dropdowns/utils/keywordSearchOptions.js +53 -9
  51. package/dist/v2/components/List/comps/ListGroup.d.ts +20 -0
  52. package/dist/v2/components/List/comps/ListGroup.js +39 -0
  53. package/dist/v2/components/List/comps/ListItem.d.ts +15 -0
  54. package/dist/v2/components/List/comps/ListItem.js +59 -0
  55. package/dist/v2/components/List/comps/styled.d.ts +1 -0
  56. package/dist/v2/components/List/comps/styled.js +71 -0
  57. package/dist/v2/components/List/index.d.ts +27 -0
  58. package/dist/v2/components/List/index.js +87 -0
  59. package/dist/v2/themes/globalStyles.js +2 -2
  60. package/package.json +1 -1
  61. package/dist/stories/v2/components/Dropdowns.stories.js +0 -289
  62. package/dist/v2/components/Dropdowns/comps/OptionContent/index.d.ts +0 -8
  63. package/dist/v2/components/Dropdowns/comps/OptionContent/index.js +0 -35
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SelectTagsInput = void 0;
37
37
  var react_1 = __importStar(require("react"));
38
38
  var styled_components_1 = require("styled-components");
39
- var themes_1 = require("../../../../themes");
40
39
  var toArray_1 = require("../../../../../utils/toArray");
41
40
  var utilsOolib_1 = require("../../../../../utilsOolib");
42
41
  var Typo_1 = require("../../../../../components/Typo");
@@ -44,10 +43,11 @@ var styled_1 = require("../../styled");
44
43
  var genTagComp_1 = require("../../utils/genTagComp");
45
44
  var styled_2 = require("./styled");
46
45
  var getKeyCode_1 = require("../../../../../utils/getKeyCode");
46
+ var themes_1 = require("../../../../themes");
47
47
  var SelectTagsInput = function (_a) {
48
48
  var
49
49
  //from root
50
- invert = _a.invert, id = _a.id, value = _a.value, disabled = _a.disabled,
50
+ id = _a.id, value = _a.value, disabled = _a.disabled,
51
51
  // genCustomSelectComp,
52
52
  handleSelect = _a.handleSelect, searchString = _a.searchString, setSearchString = _a.setSearchString, placeholder = _a.placeholder,
53
53
  // minHeight, // standard | wide | actual height in rem
@@ -82,10 +82,8 @@ var SelectTagsInput = function (_a) {
82
82
  alignItems: "center",
83
83
  } },
84
84
  react_1.default.createElement(TYPO_COMP, { color: disabled
85
- ? themes_1.colors.greyColor40
86
- : invert
87
- ? themes_1.colors.white
88
- : themes_1.colors.greyColor80 }, "".concat(localize('Selected Tags'), ":"))));
85
+ ? themes_1.colors.grey40
86
+ : themes_1.colors.grey80 }, "".concat(localize('Selected Tags'), ":"))));
89
87
  };
90
88
  var genSelectComp = function () {
91
89
  // const minHeightStyle = minHeight
@@ -97,7 +95,7 @@ var SelectTagsInput = function (_a) {
97
95
  // : "9rem"; //wide by default
98
96
  return (react_1.default.createElement(styled_2.StyledSelectTagsInputContainer, { onKeyDown: blurInputOnEscKey,
99
97
  // style={{ minHeight: '9rem' }}
100
- style: style, className: "".concat(isFocussed ? "focussed" : ""), invert: invert, disabled: disabled, onFocus: function () {
98
+ style: style, className: "".concat(isFocussed ? "focussed" : ""), disabled: disabled, onFocus: function () {
101
99
  handleFocus(true);
102
100
  }, onBlur: function () { return handleFocus(false); }, tabIndex: 0 },
103
101
  react_1.default.createElement(styled_1.StyledTagsInputWrapper, null,
@@ -107,7 +105,6 @@ var SelectTagsInput = function (_a) {
107
105
  return (0, genTagComp_1.genTagComp)(id, d, {
108
106
  handleSelect: handleSelect,
109
107
  single_multi: single_multi,
110
- invert: invert,
111
108
  showOptions: showOptions,
112
109
  theme: theme,
113
110
  S: S,
@@ -115,7 +112,7 @@ var SelectTagsInput = function (_a) {
115
112
  });
116
113
  }),
117
114
  // isCombobox ? (
118
- react_1.default.createElement(styled_2.StyledTagsSelectTextInput, { ref: inputRef, className: S ? "SANS_2" : "SANS_3", style: { color: invert ? themes_1.colors.white : themes_1.colors.greyColor100 }, placeholder: localize(placeholder || "Type to Search"), type: "text", value: searchString, onBlur: function () {
115
+ react_1.default.createElement(styled_2.StyledTagsSelectTextInput, { ref: inputRef, className: S ? "SANS_2" : "SANS_3", style: { color: themes_1.colors.grey80 }, placeholder: localize(placeholder || "Type to Search"), type: "text", value: searchString, onBlur: function () {
119
116
  return setFocusSelectTagsInput && setFocusSelectTagsInput(false);
120
117
  }, onChange: function (e) { return setSearchString(e.target.value); } }))));
121
118
  };
@@ -39,14 +39,11 @@ var __importStar = (this && this.__importStar) || (function () {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.StyledSelectTagsInputContainer = exports.StyledTagsSelectTextInput = void 0;
41
41
  var styled_components_1 = __importStar(require("styled-components"));
42
- var themes_1 = require("../../../../themes");
43
42
  var globalVariables_1 = require("../../../../../globalStyles/globalVariables");
44
43
  var mixins_1 = require("../../../../../themes/mixins");
45
- exports.StyledTagsSelectTextInput = styled_components_1.default.input(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n border: 0;\n width: 100%;\n background-color: ", ";\n \n // this strange bit is to fix the 'zoom into input' issue on ios\n margin: 0 -2rem;\n ", "\n &:focus {\n border: 0;\n }\n\n &::placeholder {\n color: ", ";\n }\n"], ["\n height: 100%;\n border: 0;\n width: 100%;\n background-color: ", ";\n \n // this strange bit is to fix the 'zoom into input' issue on ios\n margin: 0 -2rem;\n ", "\n &:focus {\n border: 0;\n }\n\n &::placeholder {\n color: ", ";\n }\n"])), themes_1.colors.none, globalVariables_1.globalInputElemPadding, themes_1.colors.greyColor40);
46
- exports.StyledSelectTagsInputContainer = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n cursor: pointer;\n position: relative;\n border-radius: 2px;\n background-color: ", ";\n padding: 1rem 2rem 1rem 2rem;\n ", "\n\n ", ";\n\n ", "\n ", "\n\n height: auto;\n align-items: flex-start;\n"], ["\n cursor: pointer;\n position: relative;\n border-radius: 2px;\n background-color: ", ";\n padding: 1rem 2rem 1rem 2rem;\n ", "\n\n ", ";\n\n ", "\n ", "\n\n height: auto;\n align-items: flex-start;\n"])), function (_a) {
47
- var invert = _a.invert;
48
- return invert ? themes_1.colors.greyColor80 : themes_1.colors.greyColor5;
49
- }, function (_a) {
44
+ var themes_1 = require("../../../../themes");
45
+ exports.StyledTagsSelectTextInput = styled_components_1.default.input(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n border: 0;\n width: 100%;\n background-color: ", ";\n \n // this strange bit is to fix the 'zoom into input' issue on ios\n margin: 0 -2rem;\n ", "\n &:focus {\n border: 0;\n }\n\n &::placeholder {\n color: ", ";\n }\n"], ["\n height: 100%;\n border: 0;\n width: 100%;\n background-color: ", ";\n \n // this strange bit is to fix the 'zoom into input' issue on ios\n margin: 0 -2rem;\n ", "\n &:focus {\n border: 0;\n }\n\n &::placeholder {\n color: ", ";\n }\n"])), themes_1.colors.none, globalVariables_1.globalInputElemPadding, themes_1.colors.grey40);
46
+ exports.StyledSelectTagsInputContainer = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n cursor: pointer;\n position: relative;\n border-radius: 2px;\n background-color: ", ";\n padding: 1rem 2rem 1rem 2rem;\n ", "\n\n ", ";\n\n ", "\n ", "\n\n height: auto;\n align-items: flex-start;\n"], ["\n cursor: pointer;\n position: relative;\n border-radius: 2px;\n background-color: ", ";\n padding: 1rem 2rem 1rem 2rem;\n ", "\n\n ", ";\n\n ", "\n ", "\n\n height: auto;\n align-items: flex-start;\n"])), themes_1.colors.grey5, function (_a) {
50
47
  var disabled = _a.disabled;
51
48
  return disabled && (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "])));
52
49
  }, (0, mixins_1.transition)("background-color"), globalVariables_1.globalInputElemFocused, globalVariables_1.globalInputElemHover);
@@ -44,6 +44,6 @@ exports.StyledDropdownRefWrapper = styled_components_1.default.div(templateObjec
44
44
  exports.StyledTagsInputWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n height: 100%;\n gap: 1rem;\n ", "\n"], ["\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n height: 100%;\n gap: 1rem;\n ", "\n"])), function (_a) {
45
45
  var input_display = _a.input_display;
46
46
  return input_display === 'input'
47
- ? (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n max-width: calc(100vw - 10rem); //2+2 for page container padding on mob & 2+4 for the select elem padding\n "], ["\n background-color: ", ";\n max-width: calc(100vw - 10rem); //2+2 for page container padding on mob & 2+4 for the select elem padding\n "])), themes_1.colors.white) : (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n\n "], ["\n\n "])));
47
+ ? (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n max-width: calc(100vw - 10rem); //2+2 for page container padding on mob & 2+4 for the select elem padding\n "], ["\n background-color: ", ";\n max-width: calc(100vw - 10rem); //2+2 for page container padding on mob & 2+4 for the select elem padding\n "])), themes_1.colors.white) : (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n\n "], ["\n\n "])));
48
48
  });
49
49
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -9,7 +9,7 @@ var genColor = function (_a) {
9
9
  var color = _a.color;
10
10
  if (!color)
11
11
  return null;
12
- return (react_1.default.createElement("div", { style: { flex: "0 0 auto" } },
13
- react_1.default.createElement("div", { style: { width: '2rem', height: '2rem', background: color, borderRadius: '10%' } })));
12
+ return (react_1.default.createElement("div", null,
13
+ react_1.default.createElement("div", { style: { width: '1.8rem', height: '1.8rem', background: color, borderRadius: '0.4rem' } })));
14
14
  };
15
15
  exports.genColor = genColor;
@@ -1,7 +1,7 @@
1
- export function genIcon({ icon, weight, invert, S, color, className }: {
1
+ export function genIcon({ icon, weight, disabled, S, color, className }: {
2
2
  icon: any;
3
- weight: any;
4
- invert: any;
3
+ weight?: string;
4
+ disabled: any;
5
5
  S: any;
6
6
  color: any;
7
7
  className?: string;
@@ -6,13 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.genIcon = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var icons_1 = require("../../../../icons");
9
+ var themes_1 = require("../../../themes");
10
+ var grey40 = themes_1.colors.grey40;
9
11
  var genIcon = function (_a) {
10
- var icon = _a.icon, weight = _a.weight, invert = _a.invert, S = _a.S, color = _a.color, _b = _a.className, className = _b === void 0 ? '' : _b;
12
+ var icon = _a.icon, _b = _a.weight, weight = _b === void 0 ? "bold" : _b, disabled = _a.disabled, S = _a.S, color = _a.color, _c = _a.className, className = _c === void 0 ? '' : _c;
11
13
  if (!icon)
12
14
  return null;
13
15
  var IconComp = icons_1.icons[icon];
14
16
  if (!IconComp)
15
17
  return null;
16
- return react_1.default.createElement(IconComp, { className: className, size: S ? 16 : 20, style: { color: invert ? 'white' : (color || undefined) }, weight: weight });
18
+ return react_1.default.createElement(IconComp, { className: className, size: S ? 16 : 20, style: { color: disabled ? grey40 : (color || undefined) }, weight: weight });
17
19
  };
18
20
  exports.genIcon = genIcon;
@@ -1,6 +1,5 @@
1
- export function genProfileImg({ image, display, invert }: {
1
+ export function genProfileImg({ image, display }: {
2
2
  image: any;
3
3
  display: any;
4
- invert: any;
5
4
  }): React.JSX.Element;
6
5
  import React from "react";
@@ -7,8 +7,8 @@ exports.genProfileImg = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var ProfileImageInput_1 = require("../../../../components/ImageInput/derivedComps/ProfileImageInput");
9
9
  var genProfileImg = function (_a) {
10
- var image = _a.image, display = _a.display, invert = _a.invert;
10
+ var image = _a.image, display = _a.display;
11
11
  return (react_1.default.createElement("div", { style: { flex: "0 0 auto", display: 'flex', alignItems: 'start' }, id: "test" },
12
- react_1.default.createElement(ProfileImageInput_1.ProfileImageInput, { readOnly: true, value: image, imageTitle: display, size: 20, invert: invert })));
12
+ react_1.default.createElement(ProfileImageInput_1.ProfileImageInput, { readOnly: true, value: image, imageTitle: display, size: 20 })));
13
13
  };
14
14
  exports.genProfileImg = genProfileImg;
@@ -14,14 +14,14 @@ var genTagComp = function (id, d, options) {
14
14
  switch (true) {
15
15
  case !options.display:
16
16
  return (react_1.default.createElement("div", { tabIndex: 0, style: { minWidth: 0 }, onFocus: function (e) { return !showOptions && e.stopPropagation(); } },
17
- react_1.default.createElement(Tags_1.TagClear, { XS: options.S, grey: true, invert: options.invert, display: d.display, onClick: function (e) {
17
+ react_1.default.createElement(Tags_1.TagClear, { XS: options.S, grey: true, display: d.display, onClick: function (e) {
18
18
  e.stopPropagation();
19
19
  options.handleSelect(options.single_multi === "single" ? undefined : d);
20
20
  } })));
21
21
  case !!link:
22
- return react_1.default.createElement(Tags_1.TagLink, { XS: options.S, invert: options.invert, to: link, display: d.display, color: options.color });
22
+ return react_1.default.createElement(Tags_1.TagLink, { XS: options.S, to: link, display: d.display, color: options.color });
23
23
  default:
24
- return react_1.default.createElement(Tags_1.TagDisplay, { XS: options.S, invert: options.invert, display: d.display });
24
+ return react_1.default.createElement(Tags_1.TagDisplay, { XS: options.S, display: d.display });
25
25
  }
26
26
  };
27
27
  exports.genTagComp = genTagComp;
@@ -1,3 +1,4 @@
1
+ export function isGroupedData(options: any): boolean;
1
2
  export function getValue_SINGLE({ valueProp, optionsFn, options, theme, saveValueAsString }: {
2
3
  valueProp: any;
3
4
  optionsFn: any;
@@ -7,26 +7,80 @@
7
7
  * Because thats the only format our dropdowns understand
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getValue_MULTI = exports.getValue_SINGLE = void 0;
10
+ exports.getValue_MULTI = exports.getValue_SINGLE = exports.isGroupedData = void 0;
11
11
  var toArray_1 = require("../../../../utils/toArray");
12
12
  var getAllOptionsFns_1 = require("./getAllOptionsFns");
13
13
  // Note: - saveValueAsString can be misleading here, because the value could be a string, integer, boolean values
14
14
  // maybe we can rename to saveValueOnly, or some better name
15
+ // export const getValue_SINGLE = ({valueProp, optionsFn, options, theme,saveValueAsString}) => {
16
+ // return saveValueAsString
17
+ // ? (optionsFn ? getAllOptionsFns(theme)[optionsFn.fn](...(toArray(optionsFn.args) || [])) : options).find(d => d.value === valueProp)
18
+ // : valueProp
19
+ // }
20
+ // export const getValue_MULTI = ({valueProp, optionsFn, options, theme,saveValueAsString}) => {
21
+ // return saveValueAsString
22
+ // ? valueProp?.map(vProp => (optionsFn ? getAllOptionsFns(theme)[optionsFn.fn](...(toArray(optionsFn.args) || [])) : options).find(d => d.value === vProp))
23
+ // : valueProp
24
+ // }
25
+ var isGroupedData = function (options) {
26
+ // If the data is empty or not an array, return false
27
+ if (!options || !Array.isArray(options) || options.length === 0) {
28
+ return false;
29
+ }
30
+ // Check the first item in the array
31
+ // If it has an 'options' property that is an array, it's grouped data
32
+ return (options[0] &&
33
+ typeof options[0] === "object" &&
34
+ Array.isArray(options[0].options) &&
35
+ options[0].options.length > 0);
36
+ };
37
+ exports.isGroupedData = isGroupedData;
15
38
  var getValue_SINGLE = function (_a) {
16
39
  var _b;
17
40
  var valueProp = _a.valueProp, optionsFn = _a.optionsFn, options = _a.options, theme = _a.theme, saveValueAsString = _a.saveValueAsString;
18
- return saveValueAsString
19
- ? (optionsFn ? (_b = (0, getAllOptionsFns_1.getAllOptionsFns)(theme))[optionsFn.fn].apply(_b, ((0, toArray_1.toArray)(optionsFn.args) || [])) : options).find(function (d) { return d.value === valueProp; })
20
- : valueProp;
41
+ if (!saveValueAsString)
42
+ return valueProp;
43
+ var allOptions = optionsFn ? (_b = (0, getAllOptionsFns_1.getAllOptionsFns)(theme))[optionsFn.fn].apply(_b, ((0, toArray_1.toArray)(optionsFn.args) || [])) : options;
44
+ if ((0, exports.isGroupedData)(allOptions)) {
45
+ // For grouped data, search through all options in all groups
46
+ for (var _i = 0, allOptions_1 = allOptions; _i < allOptions_1.length; _i++) {
47
+ var group = allOptions_1[_i];
48
+ var found = group.options.find(function (d) { return d.value === valueProp; });
49
+ if (found)
50
+ return found;
51
+ }
52
+ return undefined;
53
+ }
54
+ else {
55
+ // For normal data, search directly
56
+ return allOptions.find(function (d) { return d.value === valueProp; });
57
+ }
21
58
  };
22
59
  exports.getValue_SINGLE = getValue_SINGLE;
23
60
  var getValue_MULTI = function (_a) {
61
+ var _b;
24
62
  var valueProp = _a.valueProp, optionsFn = _a.optionsFn, options = _a.options, theme = _a.theme, saveValueAsString = _a.saveValueAsString;
25
- return saveValueAsString
26
- ? valueProp === null || valueProp === void 0 ? void 0 : valueProp.map(function (vProp) {
27
- var _a;
28
- return (optionsFn ? (_a = (0, getAllOptionsFns_1.getAllOptionsFns)(theme))[optionsFn.fn].apply(_a, ((0, toArray_1.toArray)(optionsFn.args) || [])) : options).find(function (d) { return d.value === vProp; });
29
- })
30
- : valueProp;
63
+ if (!saveValueAsString || !valueProp)
64
+ return valueProp;
65
+ var allOptions = optionsFn
66
+ ? (_b = (0, getAllOptionsFns_1.getAllOptionsFns)(theme))[optionsFn.fn].apply(_b, ((0, toArray_1.toArray)(optionsFn.args) || [])) : options;
67
+ if ((0, exports.isGroupedData)(allOptions)) {
68
+ // For grouped data, map each value and search through all options in all groups
69
+ return valueProp.map(function (vProp) {
70
+ for (var _i = 0, allOptions_2 = allOptions; _i < allOptions_2.length; _i++) {
71
+ var group = allOptions_2[_i];
72
+ var found = group.options.find(function (d) { return d.value === vProp; });
73
+ if (found)
74
+ return found;
75
+ }
76
+ return undefined;
77
+ }).filter(Boolean); // Remove any undefined values
78
+ }
79
+ else {
80
+ // For normal data, map directly
81
+ return valueProp.map(function (vProp) {
82
+ return allOptions.find(function (d) { return d.value === vProp; });
83
+ }).filter(Boolean); // Remove any undefined values
84
+ }
31
85
  };
32
86
  exports.getValue_MULTI = getValue_MULTI;
@@ -1,18 +1,62 @@
1
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
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.keywordSearchOptions = void 0;
4
15
  var isStringMatch_1 = require("../../../../utils/isStringMatch");
16
+ var getValue_1 = require("./getValue");
5
17
  var keywordSearchOptions = function (_a) {
6
18
  var options = _a.options, searchString = _a.searchString, searchFieldsConfig = _a.searchFieldsConfig, setFilteredOptionsInParent = _a.setFilteredOptionsInParent;
19
+ // If any options are loading, return the original options
7
20
  if (options.some(function (d) { return d.loading === true; }))
8
- return options; //if any of the options are still loading, then dont even try to do this filter thing
9
- //else
10
- var toReturn = options.filter(function (d) {
11
- return (0, isStringMatch_1.isStringMatch)({ data: d, toMatchPath: searchFieldsConfig || 'display', subString: searchString });
12
- });
13
- //we want to track filtered options only if a search is being conducted
14
- //this will help us to select the most relevant option if user hits 'enter' instead of clicking on option.
15
- setFilteredOptionsInParent && searchString && setFilteredOptionsInParent(toReturn);
16
- return toReturn;
21
+ return options;
22
+ // Check if we're dealing with grouped data
23
+ var isGrouped = (0, getValue_1.isGroupedData)(options);
24
+ if (isGrouped) {
25
+ // Handle grouped data
26
+ var filteredGroups = options.map(function (group) {
27
+ // Filter the options within each group
28
+ var filteredOptions = group.options.filter(function (option) {
29
+ return (0, isStringMatch_1.isStringMatch)({
30
+ data: option,
31
+ toMatchPath: searchFieldsConfig || 'display',
32
+ subString: searchString
33
+ });
34
+ });
35
+ // Return a new group object with filtered options
36
+ return __assign(__assign({}, group), { options: filteredOptions });
37
+ }).filter(function (group) { return group.options.length > 0; }); // Only keep groups that have matching options
38
+ // Track filtered options if needed
39
+ if (setFilteredOptionsInParent && searchString) {
40
+ // Flatten all options from all groups for tracking
41
+ var allFilteredOptions = filteredGroups.flatMap(function (group) { return group.options; });
42
+ setFilteredOptionsInParent(allFilteredOptions);
43
+ }
44
+ return filteredGroups;
45
+ }
46
+ else {
47
+ // Handle normal data (original logic)
48
+ var filteredOptions = options.filter(function (option) {
49
+ return (0, isStringMatch_1.isStringMatch)({
50
+ data: option,
51
+ toMatchPath: searchFieldsConfig || 'display',
52
+ subString: searchString
53
+ });
54
+ });
55
+ // Track filtered options if needed
56
+ if (setFilteredOptionsInParent && searchString) {
57
+ setFilteredOptionsInParent(filteredOptions);
58
+ }
59
+ return filteredOptions;
60
+ }
17
61
  };
18
62
  exports.keywordSearchOptions = keywordSearchOptions;
@@ -0,0 +1,20 @@
1
+ export const GroupHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export const GroupDivider: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export function ListGroup({ group, index, value, focussedOp, scrollFocussedOpIntoView, handleSelect, optionsClassName, invert, S, observerRef, isMulti, isTagsStyle, setFocusSelectTagsInput, setSearchString, setSearchBarFocus, }: {
4
+ group: any;
5
+ index: any;
6
+ value: any;
7
+ focussedOp: any;
8
+ scrollFocussedOpIntoView: any;
9
+ handleSelect: any;
10
+ optionsClassName: any;
11
+ invert: any;
12
+ S: any;
13
+ observerRef: any;
14
+ isMulti: any;
15
+ isTagsStyle: any;
16
+ setFocusSelectTagsInput: any;
17
+ setSearchString: any;
18
+ setSearchBarFocus: any;
19
+ }): React.JSX.Element;
20
+ import React from 'react';
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ListGroup = exports.GroupDivider = exports.GroupHeader = void 0;
11
+ var react_1 = __importDefault(require("react"));
12
+ var Typo2_1 = require("../../Typo2");
13
+ var Divider_1 = require("../../Divider");
14
+ var themes_1 = require("../../../themes");
15
+ var styled_components_1 = __importDefault(require("styled-components"));
16
+ var ListItem_1 = require("./ListItem");
17
+ exports.GroupHeader = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: 0.4rem 0.8rem;\n color: ", ";\n"], ["\n padding: 0.4rem 0.8rem;\n color: ", ";\n"])), themes_1.colors.grey50);
18
+ exports.GroupDivider = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin: 0.4rem 0 0.8rem 0;\n"], ["\n margin: 0.4rem 0 0.8rem 0;\n"])));
19
+ var ListGroup = function (_a) {
20
+ var group = _a.group, index = _a.index, value = _a.value, focussedOp = _a.focussedOp, scrollFocussedOpIntoView = _a.scrollFocussedOpIntoView, handleSelect = _a.handleSelect, optionsClassName = _a.optionsClassName, invert = _a.invert, S = _a.S, observerRef = _a.observerRef, isMulti = _a.isMulti, isTagsStyle = _a.isTagsStyle, setFocusSelectTagsInput = _a.setFocusSelectTagsInput, setSearchString = _a.setSearchString, setSearchBarFocus = _a.setSearchBarFocus;
21
+ return (react_1.default.createElement("div", null,
22
+ index > 0 && (react_1.default.createElement(exports.GroupDivider, null,
23
+ react_1.default.createElement(Divider_1.Divider, null))),
24
+ react_1.default.createElement(exports.GroupHeader, null,
25
+ react_1.default.createElement(Typo2_1.UI_TAG, null, group.display)),
26
+ group.options.map(function (option, idx) { return (react_1.default.createElement(ListItem_1.ListItem, { key: option.value, option: option, isSelected: (!option.loading && (value === null || value === void 0 ? void 0 : value.value) === option.value), isFocussed: focussedOp === idx, index: idx, scrollFocussedOpIntoView: scrollFocussedOpIntoView, handleSelect: function () {
27
+ if (!option.loading) {
28
+ handleSelect(option);
29
+ if (setSearchString)
30
+ setSearchString("");
31
+ if (setSearchBarFocus)
32
+ setSearchBarFocus(true);
33
+ if (setFocusSelectTagsInput)
34
+ setFocusSelectTagsInput(true);
35
+ }
36
+ }, optionsClassName: optionsClassName, invert: invert, S: S, observerRef: group.options.length === idx + 1 ? observerRef : null, isMulti: isMulti, isTagsStyle: isTagsStyle, value: value })); })));
37
+ };
38
+ exports.ListGroup = ListGroup;
39
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,15 @@
1
+ export function ListItem({ option, isSelected, isFocussed, scrollFocussedOpIntoView, handleSelect, setSearchString, optionsClassName, S, observerRef, isTagsStyle, isMulti, value, index, }: {
2
+ option: any;
3
+ isSelected: any;
4
+ isFocussed: any;
5
+ scrollFocussedOpIntoView: any;
6
+ handleSelect: any;
7
+ setSearchString: any;
8
+ optionsClassName: any;
9
+ S: any;
10
+ observerRef: any;
11
+ isTagsStyle: any;
12
+ isMulti: any;
13
+ value: any;
14
+ index: any;
15
+ }): import("react").JSX.Element;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListItem = void 0;
4
+ var styled_components_1 = require("styled-components");
5
+ var TextLoader_1 = require("../../../../components/LoadersAndProgress/TextLoader");
6
+ // import { genProfileImg } from "../../Dropdowns/utils/genProfileImg";
7
+ var genIcon_1 = require("../../Dropdowns/utils/genIcon");
8
+ var getText_1 = require("../../../../utils/getText");
9
+ var Typo2_1 = require("../../Typo2");
10
+ var themes_1 = require("../../../themes");
11
+ var genColor_1 = require("../../Dropdowns/utils/genColor");
12
+ var RadioAndCheckbox_1 = require("../../RadioAndCheckbox");
13
+ var styled_1 = require("./styled");
14
+ var grey40 = themes_1.colors.grey40, grey80 = themes_1.colors.grey80, grey60 = themes_1.colors.grey60;
15
+ var ListItem = function (_a) {
16
+ var option = _a.option, isSelected = _a.isSelected, isFocussed = _a.isFocussed, scrollFocussedOpIntoView = _a.scrollFocussedOpIntoView, handleSelect = _a.handleSelect, setSearchString = _a.setSearchString, optionsClassName = _a.optionsClassName, S = _a.S, observerRef = _a.observerRef, isTagsStyle = _a.isTagsStyle, isMulti = _a.isMulti, value = _a.value, index = _a.index;
17
+ var theme = (0, styled_components_1.useTheme)();
18
+ var TypoComp = S ? Typo2_1.UI_BODY_SM_DF : Typo2_1.UI_BODY_SM_DF;
19
+ var image = option.image, display = option.display, icon = option.icon, desc = option.desc, color = option.color, loading = option.loading, disabled = option.disabled;
20
+ var handleClick = function () {
21
+ if (!loading) {
22
+ handleSelect(option);
23
+ setSearchString && setSearchString("");
24
+ }
25
+ };
26
+ if (loading) {
27
+ return (React.createElement(styled_1.StyledListItemWrapper, { isSelected: isSelected, isFocussed: isFocussed, className: "OKE-Dropdown__option", S: S },
28
+ React.createElement(TextLoader_1.TextLoader, { style: { width: "8rem", height: "1.5rem" } })));
29
+ }
30
+ var opIsSelected = function (thisOpData) {
31
+ return value === null || value === void 0 ? void 0 : value.some(function (d) { return d.value === thisOpData.value; });
32
+ };
33
+ return (React.createElement(styled_1.StyledListItemWrapper, { index: index, isSelected: isSelected, isFocussed: isFocussed, className: "OKE-Dropdown__option", ref: function (el) { return isFocussed && el && scrollFocussedOpIntoView(el); }, onClick: handleClick, S: S, style: { pointerEvents: disabled && "none" } },
34
+ React.createElement("div", { ref: observerRef, style: {
35
+ display: "flex",
36
+ alignItems: "flex-start",
37
+ maxWidth: "36rem",
38
+ gap: icon ? "0.6rem" : "0.8rem",
39
+ } },
40
+ (image || icon || color || isMulti) && (React.createElement("div", { style: {
41
+ marginTop: "0.1rem",
42
+ display: "flex",
43
+ alignItems: "center",
44
+ gap: "0.5rem"
45
+ } },
46
+ isMulti && !isTagsStyle ? React.createElement(RadioAndCheckbox_1.CheckboxButton, { isSelected: opIsSelected(option) }) : null,
47
+ icon &&
48
+ (0, genIcon_1.genIcon)({
49
+ icon: icon,
50
+ S: S,
51
+ className: "OKE-Dropdown__optionIcon",
52
+ disabled: disabled
53
+ }),
54
+ color && (0, genColor_1.genColor)({ color: color }))),
55
+ React.createElement("div", null,
56
+ React.createElement(TypoComp, { semibold: desc ? true : false, className: "OKE-Dropdown__optionText ".concat(optionsClassName || ""), style: { color: disabled ? grey40 : grey80 } }, (0, getText_1.getText)(display)),
57
+ desc && (React.createElement(Typo2_1.UI_CAPTION_DF, { className: "OKE-Dropdown__optionDesc", style: { color: disabled ? grey40 : grey60, marginTop: "0.2rem" } }, (0, getText_1.getText)(desc)))))));
58
+ };
59
+ exports.ListItem = ListItem;
@@ -0,0 +1 @@
1
+ export const StyledListItemWrapper: import("styled-components").StyledComponent<"li", any, {}, never>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.StyledListItemWrapper = void 0;
41
+ var styled_components_1 = __importStar(require("styled-components"));
42
+ var themes_1 = require("../../../themes");
43
+ var getDynamicColors_1 = require("../../../themes/utils/getDynamicColors");
44
+ var grey10 = themes_1.colors.grey10;
45
+ exports.StyledListItemWrapper = styled_components_1.default.li(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n /* padding: ", "; */\n padding: 0.8rem;\n border-radius: 0.4rem;\n gap: 20rem;\n ", "\n \n background-color: ", ";\n\n .OKE-Dropdown__optionText{\n color: ", "\n } \n\n .OKE-Dropdown__optionIcon{\n color: ", "\n } \n\n &:hover{\n background-color: ", ";\n\n .OKE-Dropdown__optionText{\n color: ", ";\n } \n\n .OKE-Dropdown__optionIcon{\n color: ", ";\n } \n }\n\n \n\n &:first-of-type {\n /* margin-top: 0.4rem; */\n }\n\n &:last-of-type {\n /* margin-bottom: 0.4rem; */\n }\n\n .OKE-Dropdown__optionDesc {\n @include kp-clamp-text(2);\n white-space: normal;\n }\n\n .OKE-Dropdown__optionImg {\n flex: 0 0 auto;\n }\n\n .OKE-Dropdown__checkboxClickArea {\n position: absolute;\n width: 2rem;\n height: 2rem;\n }\n .OKE-Dropdown__checkboxClickArea-box {\n margin-top: 0.2rem;\n flex-shrink: 0;\n }\n"], ["\n display: flex;\n align-items: center;\n /* padding: ", "; */\n padding: 0.8rem;\n border-radius: 0.4rem;\n gap: 20rem;\n ", "\n \n background-color: ", ";\n\n .OKE-Dropdown__optionText{\n color: ", "\n } \n\n .OKE-Dropdown__optionIcon{\n color: ", "\n } \n\n &:hover{\n background-color: ", ";\n\n .OKE-Dropdown__optionText{\n color: ", ";\n } \n\n .OKE-Dropdown__optionIcon{\n color: ", ";\n } \n }\n\n \n\n &:first-of-type {\n /* margin-top: 0.4rem; */\n }\n\n &:last-of-type {\n /* margin-bottom: 0.4rem; */\n }\n\n .OKE-Dropdown__optionDesc {\n @include kp-clamp-text(2);\n white-space: normal;\n }\n\n .OKE-Dropdown__optionImg {\n flex: 0 0 auto;\n }\n\n .OKE-Dropdown__checkboxClickArea {\n position: absolute;\n width: 2rem;\n height: 2rem;\n }\n .OKE-Dropdown__checkboxClickArea-box {\n margin-top: 0.2rem;\n flex-shrink: 0;\n }\n"])), function (_a) {
46
+ var S = _a.S;
47
+ return S ? '0.8rem' : '0.6rem 0.8rem';
48
+ }, function (_a) {
49
+ var S = _a.S;
50
+ return !S
51
+ ? (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n /* min-height: 3.8rem; */\n "], ["\n /* min-height: 3.8rem; */\n "]))) : (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n /* height: 3rem; */\n "], ["\n /* height: 3rem; */\n "])));
52
+ }, function (_a) {
53
+ var isFocussed = _a.isFocussed, isSelected = _a.isSelected, theme = _a.theme;
54
+ if (isSelected) {
55
+ var secondaryContainer = (0, getDynamicColors_1.getSecondaryContainer)(theme === null || theme === void 0 ? void 0 : theme.colors);
56
+ return "".concat(secondaryContainer, " !important"); // 66 in hex is 40% opacity
57
+ }
58
+ else {
59
+ return isFocussed ? themes_1.colors.grey5 : themes_1.colors.white;
60
+ }
61
+ }, themes_1.colors.grey80, themes_1.colors.grey80, function (_a) {
62
+ var theme = _a.theme;
63
+ return "".concat(grey10);
64
+ }, function (_a) {
65
+ var theme = _a.theme;
66
+ return (0, getDynamicColors_1.getOnSecondary)(theme === null || theme === void 0 ? void 0 : theme.colors);
67
+ }, function (_a) {
68
+ var theme = _a.theme;
69
+ return (0, getDynamicColors_1.getOnSecondary)(theme === null || theme === void 0 ? void 0 : theme.colors);
70
+ });
71
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,27 @@
1
+ export const StyledListWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export function List({ options, value, focussedOp, scrollFocussedOpIntoView, handleSelect, optionsClassName, invert, S, observerRef, isMulti, isTagsStyle, setFocusSelectTagsInput, grouped, disableShadow, isSearchable, searchbarPlaceholder, searchBarFocus, searchString, setSearchString, setSearchBarFocus, children, enableBorder, style }: {
3
+ options?: any[];
4
+ value: any;
5
+ focussedOp: any;
6
+ scrollFocussedOpIntoView: any;
7
+ handleSelect: any;
8
+ optionsClassName: any;
9
+ invert: any;
10
+ S: any;
11
+ observerRef: any;
12
+ isMulti?: boolean;
13
+ isTagsStyle: any;
14
+ setFocusSelectTagsInput: any;
15
+ grouped?: boolean;
16
+ disableShadow: any;
17
+ isSearchable: any;
18
+ searchbarPlaceholder: any;
19
+ searchBarFocus: any;
20
+ searchString: any;
21
+ setSearchString: any;
22
+ setSearchBarFocus: any;
23
+ children: any;
24
+ enableBorder: any;
25
+ style: any;
26
+ }): React.JSX.Element;
27
+ import React from 'react';