@dreamcommerce/aurora 2.6.9 → 2.6.10-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.
Files changed (21) hide show
  1. package/build/cjs/packages/aurora/src/components/dropdown/components/select.js +4 -1
  2. package/build/cjs/packages/aurora/src/components/dropdown/components/select.js.map +1 -1
  3. package/build/cjs/packages/aurora/src/components/dropdown/hoc/select/index.js +2 -2
  4. package/build/cjs/packages/aurora/src/components/dropdown/utilities.js +13 -0
  5. package/build/cjs/packages/aurora/src/components/dropdown/utilities.js.map +1 -1
  6. package/build/cjs/packages/aurora/src/components/tooltip/index.js +4 -1
  7. package/build/cjs/packages/aurora/src/components/tooltip/index.js.map +1 -1
  8. package/build/cjs/packages/aurora/src/components/tooltip/tooltip_constants.js +8 -0
  9. package/build/cjs/packages/aurora/src/components/tooltip/tooltip_constants.js.map +1 -0
  10. package/build/esm/packages/aurora/src/components/dropdown/components/select.js +4 -1
  11. package/build/esm/packages/aurora/src/components/dropdown/components/select.js.map +1 -1
  12. package/build/esm/packages/aurora/src/components/dropdown/hoc/select/index.js +2 -2
  13. package/build/esm/packages/aurora/src/components/dropdown/utilities.d.ts +1 -0
  14. package/build/esm/packages/aurora/src/components/dropdown/utilities.js +13 -1
  15. package/build/esm/packages/aurora/src/components/dropdown/utilities.js.map +1 -1
  16. package/build/esm/packages/aurora/src/components/tooltip/index.js +5 -2
  17. package/build/esm/packages/aurora/src/components/tooltip/index.js.map +1 -1
  18. package/build/esm/packages/aurora/src/components/tooltip/tooltip_constants.d.ts +1 -0
  19. package/build/esm/packages/aurora/src/components/tooltip/tooltip_constants.js +4 -0
  20. package/build/esm/packages/aurora/src/components/tooltip/tooltip_constants.js.map +1 -0
  21. package/package.json +1 -1
@@ -7,6 +7,7 @@ var index = require('../context/index.js');
7
7
  var css_classes = require('../../controls/css_classes.js');
8
8
  var main_module$1 = require('../../../css/input/main.module.less.js');
9
9
  var main_module = require('../../../css/dropdown/main.module.less.js');
10
+ var utilities = require('../utilities.js');
10
11
  var use_keyboard_open_close = require('../hooks/use_keyboard_open_close.js');
11
12
  var icon_close = require('../../../assets/icon_close.js');
12
13
  var input_wrapper = require('../../controls/components/input_wrapper.js');
@@ -46,7 +47,9 @@ selectedOptions, placeholder, onRemoveOptions, hasCloseIcon }) => {
46
47
  /**
47
48
  * value for display purposes, its texts not actual values from options
48
49
  */
49
- const value = selectedOptions.map((option) => option.text).join(', ');
50
+ const filteredOptions = utilities.filterOptionDuplicatesByProperty(selectedOptions, 'value');
51
+ const value = filteredOptions.map((option) => option.text).join(', ');
52
+ console.log('value', value);
50
53
  /**
51
54
  * disabled options should have hidden inputs with values rendered
52
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -117,9 +117,9 @@ portalContainer, placeholder, onScroll, innerAdditionalContent, hasCloseIcon })
117
117
  React__default['default'].createElement(index$1['default'].Content, { portalContainer: portalContainer },
118
118
  isWithSearch && React__default['default'].createElement(index$1['default'].Search, { onKeyUp: (ev) => utilities.handleSearchKeyUp(ev, options, setOptionsList) }),
119
119
  React__default['default'].createElement(index$1['default'].List, { isWithGroups: isWithGroups, onScroll: onScroll }, optionsList === null || optionsList === void 0 ? void 0 :
120
- optionsList.map((option) => {
120
+ optionsList.map((option, index) => {
121
121
  var _a, _b;
122
- return option.isHeader ? (React__default['default'].createElement(index$1['default'].Header, { key: option.text, text: option.text })) : (React__default['default'].createElement(index$1['default'].Option, { key: option.value, option: option, isSelected: utilities.isSelected(option, selectedValues), isDisabled: (_a = option.isDisabled) !== null && _a !== void 0 ? _a : isDisabled, isReadonly: (_b = option.isReadonly) !== null && _b !== void 0 ? _b : isReadonly, onClick: (option) => utilities.handleItemClick(option, defaultCloseOnClick, setSelectedValues, toggleDropdown) }));
122
+ return option.isHeader ? (React__default['default'].createElement(index$1['default'].Header, { key: option.text, text: option.text })) : (React__default['default'].createElement(index$1['default'].Option, { key: `${option.value}-${index}`, option: option, isSelected: utilities.isSelected(option, selectedValues), isDisabled: (_a = option.isDisabled) !== null && _a !== void 0 ? _a : isDisabled, isReadonly: (_b = option.isReadonly) !== null && _b !== void 0 ? _b : isReadonly, onClick: (option) => utilities.handleItemClick(option, defaultCloseOnClick, setSelectedValues, toggleDropdown) }));
123
123
  }),
124
124
  innerAdditionalContent)))));
125
125
  };
@@ -72,8 +72,21 @@ const isChildOfModal = (ref) => {
72
72
  };
73
73
  const getBounding = (element) => {
74
74
  return element.getBoundingClientRect();
75
+ };
76
+ const filterOptionDuplicatesByProperty = (options, property) => {
77
+ const uniqueProperties = [];
78
+ const filteredOptions = options.filter((option) => {
79
+ const isDuplicate = uniqueProperties.includes(option[property]);
80
+ if (!isDuplicate) {
81
+ uniqueProperties.push(option[property]);
82
+ return true;
83
+ }
84
+ return false;
85
+ });
86
+ return filteredOptions;
75
87
  };
76
88
 
89
+ exports.filterOptionDuplicatesByProperty = filterOptionDuplicatesByProperty;
77
90
  exports.getBounding = getBounding;
78
91
  exports.getXYModifiersForNestedDropdowns = getXYModifiersForNestedDropdowns;
79
92
  exports.handleItemClick = handleItemClick;
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,6 +8,7 @@ var main_module = require('../../css/tooltip/main.module.less.js');
8
8
  var use_toggle = require('../dropdown/hooks/use_toggle.js');
9
9
  var index$1 = require('../dropdown/index.js');
10
10
  var css_classes = require('./css_classes.js');
11
+ var tooltip_constants = require('./tooltip_constants.js');
11
12
 
12
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
14
 
@@ -17,11 +18,13 @@ const Tooltip = ({ left, top, disabled, onToggle, children, content }) => {
17
18
  const wrapperRef = React.useRef(null);
18
19
  const [isOpen, toggleDropdown] = use_toggle.useToggle(false, onToggle);
19
20
  const value = React__default['default'].useMemo(() => ({ wrapperRef, isOpen, toggleDropdown }), [isOpen, toggleDropdown]);
21
+ const [tooltipTimer, setTooltipTimer] = React.useState();
20
22
  const handleOnMouseEnter = () => {
21
- !isOpen && toggleDropdown();
23
+ !isOpen && setTooltipTimer(Number(setTimeout(() => toggleDropdown(), tooltip_constants.TOOLTIP_TIMEOUT_IN_MS)));
22
24
  };
23
25
  const handleOnMouseLeave = () => {
24
26
  isOpen && toggleDropdown();
27
+ clearTimeout(tooltipTimer);
25
28
  };
26
29
  return (React__default['default'].createElement(index.DropdownContext.Provider, { value: value },
27
30
  React__default['default'].createElement("span", { className: main_module['default'][css_classes.cssTooltip], ref: wrapperRef, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave },
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const TOOLTIP_TIMEOUT_IN_MS = 250;
6
+
7
+ exports.TOOLTIP_TIMEOUT_IN_MS = TOOLTIP_TIMEOUT_IN_MS;
8
+ //# sourceMappingURL=tooltip_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,6 +3,7 @@ import { useDropdownContext } from '../context/index.js';
3
3
  import { cssControlInputRemoveButton } from '../../controls/css_classes.js';
4
4
  import inputCssClasses from '../../../css/input/main.module.less.js';
5
5
  import cssClasses from '../../../css/dropdown/main.module.less.js';
6
+ import { filterOptionDuplicatesByProperty } from '../utilities.js';
6
7
  import { useKeyboardOpenClose } from '../hooks/use_keyboard_open_close.js';
7
8
  import IconClose from '../../../assets/icon_close.js';
8
9
  import InputWrapper from '../../controls/components/input_wrapper.js';
@@ -38,7 +39,9 @@ selectedOptions, placeholder, onRemoveOptions, hasCloseIcon }) => {
38
39
  /**
39
40
  * value for display purposes, its texts not actual values from options
40
41
  */
41
- const value = selectedOptions.map((option) => option.text).join(', ');
42
+ const filteredOptions = filterOptionDuplicatesByProperty(selectedOptions, 'value');
43
+ const value = filteredOptions.map((option) => option.text).join(', ');
44
+ console.log('value', value);
42
45
  /**
43
46
  * disabled options should have hidden inputs with values rendered
44
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -109,9 +109,9 @@ portalContainer, placeholder, onScroll, innerAdditionalContent, hasCloseIcon })
109
109
  React.createElement(Dropdown.Content, { portalContainer: portalContainer },
110
110
  isWithSearch && React.createElement(Dropdown.Search, { onKeyUp: (ev) => handleSearchKeyUp(ev, options, setOptionsList) }),
111
111
  React.createElement(Dropdown.List, { isWithGroups: isWithGroups, onScroll: onScroll }, optionsList === null || optionsList === void 0 ? void 0 :
112
- optionsList.map((option) => {
112
+ optionsList.map((option, index) => {
113
113
  var _a, _b;
114
- return option.isHeader ? (React.createElement(Dropdown.Header, { key: option.text, text: option.text })) : (React.createElement(Dropdown.Option, { key: option.value, option: option, isSelected: isSelected(option, selectedValues), isDisabled: (_a = option.isDisabled) !== null && _a !== void 0 ? _a : isDisabled, isReadonly: (_b = option.isReadonly) !== null && _b !== void 0 ? _b : isReadonly, onClick: (option) => handleItemClick(option, defaultCloseOnClick, setSelectedValues, toggleDropdown) }));
114
+ return option.isHeader ? (React.createElement(Dropdown.Header, { key: option.text, text: option.text })) : (React.createElement(Dropdown.Option, { key: `${option.value}-${index}`, option: option, isSelected: isSelected(option, selectedValues), isDisabled: (_a = option.isDisabled) !== null && _a !== void 0 ? _a : isDisabled, isReadonly: (_b = option.isReadonly) !== null && _b !== void 0 ? _b : isReadonly, onClick: (option) => handleItemClick(option, defaultCloseOnClick, setSelectedValues, toggleDropdown) }));
115
115
  }),
116
116
  innerAdditionalContent)))));
117
117
  };
@@ -31,3 +31,4 @@ export declare const getXYModifiersForNestedDropdowns: (portalContainer: HTMLEle
31
31
  };
32
32
  export declare const isChildOfModal: (ref: RefObject<HTMLElement>) => boolean;
33
33
  export declare const getBounding: (element: HTMLElement) => DOMRect;
34
+ export declare const filterOptionDuplicatesByProperty: (options: ISelectOption[], property: string) => ISelectOption[];
@@ -68,7 +68,19 @@ const isChildOfModal = (ref) => {
68
68
  };
69
69
  const getBounding = (element) => {
70
70
  return element.getBoundingClientRect();
71
+ };
72
+ const filterOptionDuplicatesByProperty = (options, property) => {
73
+ const uniqueProperties = [];
74
+ const filteredOptions = options.filter((option) => {
75
+ const isDuplicate = uniqueProperties.includes(option[property]);
76
+ if (!isDuplicate) {
77
+ uniqueProperties.push(option[property]);
78
+ return true;
79
+ }
80
+ return false;
81
+ });
82
+ return filteredOptions;
71
83
  };
72
84
 
73
- export { getBounding, getXYModifiersForNestedDropdowns, handleItemClick, handleSearchKeyUp, isChildOfModal, isSelected };
85
+ export { filterOptionDuplicatesByProperty, getBounding, getXYModifiersForNestedDropdowns, handleItemClick, handleSearchKeyUp, isChildOfModal, isSelected };
74
86
  //# sourceMappingURL=utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,19 +1,22 @@
1
- import React, { useRef } from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
  import { DropdownContext } from '../dropdown/context/index.js';
3
3
  import cssClasses from '../../css/tooltip/main.module.less.js';
4
4
  import { useToggle } from '../dropdown/hooks/use_toggle.js';
5
5
  import Dropdown from '../dropdown/index.js';
6
6
  import { cssTooltip, cssTooltipContainer } from './css_classes.js';
7
+ import { TOOLTIP_TIMEOUT_IN_MS } from './tooltip_constants.js';
7
8
 
8
9
  const Tooltip = ({ left, top, disabled, onToggle, children, content }) => {
9
10
  const wrapperRef = useRef(null);
10
11
  const [isOpen, toggleDropdown] = useToggle(false, onToggle);
11
12
  const value = React.useMemo(() => ({ wrapperRef, isOpen, toggleDropdown }), [isOpen, toggleDropdown]);
13
+ const [tooltipTimer, setTooltipTimer] = useState();
12
14
  const handleOnMouseEnter = () => {
13
- !isOpen && toggleDropdown();
15
+ !isOpen && setTooltipTimer(Number(setTimeout(() => toggleDropdown(), TOOLTIP_TIMEOUT_IN_MS)));
14
16
  };
15
17
  const handleOnMouseLeave = () => {
16
18
  isOpen && toggleDropdown();
19
+ clearTimeout(tooltipTimer);
17
20
  };
18
21
  return (React.createElement(DropdownContext.Provider, { value: value },
19
22
  React.createElement("span", { className: cssClasses[cssTooltip], ref: wrapperRef, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave },
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1 @@
1
+ export declare const TOOLTIP_TIMEOUT_IN_MS = 250;
@@ -0,0 +1,4 @@
1
+ const TOOLTIP_TIMEOUT_IN_MS = 250;
2
+
3
+ export { TOOLTIP_TIMEOUT_IN_MS };
4
+ //# sourceMappingURL=tooltip_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@dreamcommerce/aurora",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "2.6.9",
5
+ "version": "2.6.10-1",
6
6
  "description": "aurora",
7
7
  "author": "k0ssak",
8
8
  "license": "MIT",