@activecollab/components 2.0.74 → 2.0.76
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/dist/cjs/components/Autocomplete/Autocomplete.js +6 -3
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +29 -5
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxIcon.js +4 -4
- package/dist/cjs/components/Checkbox/CheckboxIcon.js.map +1 -1
- package/dist/cjs/components/Checkbox/Styles.js +6 -6
- package/dist/cjs/components/Checkbox/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Option/Option.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +11 -4
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +29 -4
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts +2 -0
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +5 -3
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.d.ts +4 -2
- package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js +18 -4
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Checkbox/CheckboxIcon.d.ts +1 -1
- package/dist/esm/components/Checkbox/CheckboxIcon.js +3 -3
- package/dist/esm/components/Checkbox/CheckboxIcon.js.map +1 -1
- package/dist/esm/components/Checkbox/Styles.js +1 -1
- package/dist/esm/components/Checkbox/Styles.js.map +1 -1
- package/dist/esm/components/Select/Option/Option.d.ts +2 -0
- package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
- package/dist/esm/components/Select/Option/Option.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts +2 -0
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js +6 -2
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +25 -4
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/index.js +79 -26
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11141,7 +11141,7 @@
|
|
|
11141
11141
|
};
|
|
11142
11142
|
OptionContent.displayName = "OptionContent";
|
|
11143
11143
|
|
|
11144
|
-
var _excluded$S = ["
|
|
11144
|
+
var _excluded$S = ["mixed", "data-testid"];
|
|
11145
11145
|
|
|
11146
11146
|
/**
|
|
11147
11147
|
* @component CheckboxIcon
|
|
@@ -11163,7 +11163,7 @@
|
|
|
11163
11163
|
* https://design.activecollab.com/docs/foundations/icons
|
|
11164
11164
|
*/
|
|
11165
11165
|
var CheckboxIcon = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, svgRef) {
|
|
11166
|
-
var
|
|
11166
|
+
var mixed = _ref.mixed,
|
|
11167
11167
|
testId = _ref["data-testid"],
|
|
11168
11168
|
props = _objectWithoutProperties(_ref, _excluded$S);
|
|
11169
11169
|
// const [animate, setAnimate] = useState(false);
|
|
@@ -11175,9 +11175,9 @@
|
|
|
11175
11175
|
// } else {
|
|
11176
11176
|
// mountRef.current = true;
|
|
11177
11177
|
// }
|
|
11178
|
-
// }, [
|
|
11178
|
+
// }, [mixed]);
|
|
11179
11179
|
|
|
11180
|
-
if (
|
|
11180
|
+
if (mixed) {
|
|
11181
11181
|
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
11182
11182
|
width: "16",
|
|
11183
11183
|
height: "16",
|
|
@@ -11241,21 +11241,21 @@
|
|
|
11241
11241
|
displayName: "Styles__StyledCheckbox",
|
|
11242
11242
|
componentId: "sc-y7zymm-2"
|
|
11243
11243
|
})(["height:16px;width:16px;position:relative;transition-duration:0.2s;border-radius:2px;path{transition-duration:0.2s;stroke:transparent;stroke-dashoffset:12;stroke-dasharray:12;}svg{cursor:pointer;border-radius:2px;fill:transparent;}rect{transition-duration:0.2s;", " ", "}", ":disabled ~ ", "{pointer-events:none;opacity:0.5;}", ":focus ~ ", "{rect{stroke:var(--color-secondary);stroke-width:3px;}}&:not(.c-checkbox__controlled) ", ":hover:not(:checked) ~ ", "{path{stroke:var(--color-secondary-500);stroke-dashoffset:24;}rect{stroke:var(--color-secondary);", " stroke-width:3px;}}", " ", ":checked ~ ", "{path{", "}rect{stroke:var(--color-secondary);stroke-width:19px;", "}}"], function (props) {
|
|
11244
|
-
return !props.
|
|
11244
|
+
return !props.mixed && styled.css(["stroke:var(--color-theme-500);"]);
|
|
11245
11245
|
}, function (props) {
|
|
11246
|
-
return props.
|
|
11246
|
+
return props.mixed && styled.css(["stroke:transparent;"]);
|
|
11247
11247
|
}, StyledInput$3, StyledLabel, StyledInput$3, StyledLabel, StyledInput$3, StyledLabel, function (props) {
|
|
11248
|
-
return props.
|
|
11248
|
+
return props.mixed && styled.css(["stroke:transparent;"]);
|
|
11249
11249
|
}, function (props) {
|
|
11250
|
-
return props.hover && !props.
|
|
11250
|
+
return props.hover && !props.mixed && styled.css(["", ":not(:checked) ~ ", "{path{stroke:var(--color-secondary-500);stroke-dashoffset:24;}rect{stroke:var(--color-secondary);stroke-width:3px;}}"], StyledInput$3, StyledLabel);
|
|
11251
11251
|
}, StyledInput$3, StyledLabel, function (props) {
|
|
11252
|
-
return !props.
|
|
11252
|
+
return !props.mixed && styled.css(["stroke:var(--page-paper-main);stroke-dashoffset:24;"]);
|
|
11253
11253
|
}, function (props) {
|
|
11254
|
-
return props.
|
|
11254
|
+
return props.mixed && styled.css(["stroke:transparent;"]);
|
|
11255
11255
|
});
|
|
11256
11256
|
StyledCheckbox$1.displayName = "StyledCheckbox";
|
|
11257
11257
|
|
|
11258
|
-
var _excluded$R = ["className", "hover", "id", "
|
|
11258
|
+
var _excluded$R = ["className", "hover", "id", "mixed", "onChange"];
|
|
11259
11259
|
/**
|
|
11260
11260
|
* Checkbox component
|
|
11261
11261
|
*/
|
|
@@ -11264,8 +11264,24 @@
|
|
|
11264
11264
|
hover = _ref.hover,
|
|
11265
11265
|
_ref$id = _ref.id,
|
|
11266
11266
|
id = _ref$id === void 0 ? "checkbox" : _ref$id,
|
|
11267
|
-
|
|
11267
|
+
_ref$mixed = _ref.mixed,
|
|
11268
|
+
mixed = _ref$mixed === void 0 ? false : _ref$mixed,
|
|
11269
|
+
onChange = _ref.onChange,
|
|
11268
11270
|
rest = _objectWithoutProperties(_ref, _excluded$R);
|
|
11271
|
+
var _useState = React.useState(mixed),
|
|
11272
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
11273
|
+
indeterminate = _useState2[0],
|
|
11274
|
+
setIndeterminate = _useState2[1];
|
|
11275
|
+
var handleChange = React.useCallback(function (e) {
|
|
11276
|
+
typeof onChange === "function" && onChange(e);
|
|
11277
|
+
setIndeterminate(false);
|
|
11278
|
+
}, [onChange]);
|
|
11279
|
+
React.useEffect(function () {
|
|
11280
|
+
if (mixed !== indeterminate) {
|
|
11281
|
+
setIndeterminate(mixed);
|
|
11282
|
+
}
|
|
11283
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11284
|
+
}, [mixed]);
|
|
11269
11285
|
return /*#__PURE__*/React__default["default"].createElement(StyledCheckbox$1, {
|
|
11270
11286
|
className: classNames__default["default"]("c-checkbox", {
|
|
11271
11287
|
"c-checkbox__hover": hover,
|
|
@@ -11273,21 +11289,23 @@
|
|
|
11273
11289
|
}, className),
|
|
11274
11290
|
hover: hover,
|
|
11275
11291
|
tabIndex: -1,
|
|
11276
|
-
|
|
11292
|
+
mixed: indeterminate
|
|
11277
11293
|
}, /*#__PURE__*/React__default["default"].createElement(StyledInput$3, _extends({
|
|
11278
11294
|
role: "checkbox",
|
|
11279
11295
|
id: id,
|
|
11280
11296
|
className: "c-checkbox--input",
|
|
11281
11297
|
type: "checkbox",
|
|
11282
11298
|
ref: ref
|
|
11283
|
-
}, rest
|
|
11299
|
+
}, rest, {
|
|
11300
|
+
onChange: handleChange
|
|
11301
|
+
})), /*#__PURE__*/React__default["default"].createElement(StyledLabel, {
|
|
11284
11302
|
htmlFor: id,
|
|
11285
11303
|
className: "c-checkbox--label"
|
|
11286
11304
|
}, /*#__PURE__*/React__default["default"].createElement(CheckboxIcon$1, {
|
|
11287
11305
|
"data-testid": "checkbox-icon",
|
|
11288
11306
|
height: 16,
|
|
11289
11307
|
width: 16,
|
|
11290
|
-
|
|
11308
|
+
mixed: indeterminate
|
|
11291
11309
|
})));
|
|
11292
11310
|
});
|
|
11293
11311
|
Checkbox.displayName = "Checkbox";
|
|
@@ -12058,7 +12076,9 @@
|
|
|
12058
12076
|
onChange = _ref.onChange,
|
|
12059
12077
|
setHover = _ref.setHover,
|
|
12060
12078
|
renderOptions = _ref.renderOptions,
|
|
12061
|
-
optionGroupClassName = _ref.optionGroupClassName
|
|
12079
|
+
optionGroupClassName = _ref.optionGroupClassName,
|
|
12080
|
+
_ref$mixedOptions = _ref.mixedOptions,
|
|
12081
|
+
mixedOptions = _ref$mixedOptions === void 0 ? [] : _ref$mixedOptions;
|
|
12062
12082
|
var list = React.useMemo(function () {
|
|
12063
12083
|
return filter ? options.filter(function (v) {
|
|
12064
12084
|
return v.name.toLowerCase().includes(filter.trim().toLowerCase());
|
|
@@ -12088,6 +12108,13 @@
|
|
|
12088
12108
|
return option.id;
|
|
12089
12109
|
});
|
|
12090
12110
|
}, [options]);
|
|
12111
|
+
var isMixed = React.useMemo(function () {
|
|
12112
|
+
return (options.some(function (option) {
|
|
12113
|
+
return checked.includes(option.id);
|
|
12114
|
+
}) || mixedOptions.some(function (item) {
|
|
12115
|
+
return allOptionValues.includes(item);
|
|
12116
|
+
})) && !isAllOptionsChecked;
|
|
12117
|
+
}, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);
|
|
12091
12118
|
var handleClick = React.useCallback(function (e) {
|
|
12092
12119
|
e.stopPropagation();
|
|
12093
12120
|
if (onChange) {
|
|
@@ -12117,9 +12144,7 @@
|
|
|
12117
12144
|
}, name), type === "multiple" && /*#__PURE__*/React__default["default"].createElement(Checkbox, {
|
|
12118
12145
|
id: `${id}`,
|
|
12119
12146
|
checked: isAllOptionsChecked,
|
|
12120
|
-
|
|
12121
|
-
return checked.includes(option.id);
|
|
12122
|
-
}) && !isAllOptionsChecked,
|
|
12147
|
+
mixed: isMixed,
|
|
12123
12148
|
onChange: handleClick,
|
|
12124
12149
|
type: "checkbox"
|
|
12125
12150
|
}))), /*#__PURE__*/React__default["default"].createElement(List, null, list.map(function (item, index) {
|
|
@@ -12158,7 +12183,9 @@
|
|
|
12158
12183
|
keepSameOptionsOrder = _ref$keepSameOptionsO === void 0 ? false : _ref$keepSameOptionsO,
|
|
12159
12184
|
_ref$autoHeightMax = _ref.autoHeightMax,
|
|
12160
12185
|
autoHeightMax = _ref$autoHeightMax === void 0 ? 340 : _ref$autoHeightMax,
|
|
12161
|
-
clearInputOnSelect = _ref.clearInputOnSelect
|
|
12186
|
+
clearInputOnSelect = _ref.clearInputOnSelect,
|
|
12187
|
+
_ref$mixedOptions = _ref.mixedOptions,
|
|
12188
|
+
mixedOptions = _ref$mixedOptions === void 0 ? [] : _ref$mixedOptions;
|
|
12162
12189
|
var itemRef = React.useRef(null);
|
|
12163
12190
|
var listRef = React.useRef(null);
|
|
12164
12191
|
var selectedOptions = React.useMemo(function () {
|
|
@@ -12402,7 +12429,8 @@
|
|
|
12402
12429
|
renderOptions: handleRenderOption,
|
|
12403
12430
|
type: type,
|
|
12404
12431
|
onChange: handleChange,
|
|
12405
|
-
filter: filter
|
|
12432
|
+
filter: filter,
|
|
12433
|
+
mixedOptions: mixedOptions
|
|
12406
12434
|
});
|
|
12407
12435
|
}
|
|
12408
12436
|
return /*#__PURE__*/React__default["default"].createElement(Option, {
|
|
@@ -12425,7 +12453,7 @@
|
|
|
12425
12453
|
}
|
|
12426
12454
|
})
|
|
12427
12455
|
});
|
|
12428
|
-
}, [handleClick, handleMouseEnter, hover.item, optionClassName, renderOption, filter, selectedOptions, handleHoverCallback, type, handleChange]);
|
|
12456
|
+
}, [handleClick, handleMouseEnter, hover.item, optionClassName, renderOption, filter, selectedOptions, handleHoverCallback, type, handleChange, mixedOptions]);
|
|
12429
12457
|
var handleOnMouseLeave = React.useCallback(function () {
|
|
12430
12458
|
setHover({
|
|
12431
12459
|
item: undefined,
|
|
@@ -12613,6 +12641,27 @@
|
|
|
12613
12641
|
return [...acc, ...allGroupOptions];
|
|
12614
12642
|
}, []);
|
|
12615
12643
|
}, [selectOptions]);
|
|
12644
|
+
var getMixedOptionsRecursively = React.useCallback(function (options) {
|
|
12645
|
+
var mixedOptions = [];
|
|
12646
|
+
options.forEach(function (option) {
|
|
12647
|
+
if (option.mixed) {
|
|
12648
|
+
mixedOptions.push(option);
|
|
12649
|
+
}
|
|
12650
|
+
if (isOptionGroup(option) && option.options && option.options.length > 0) {
|
|
12651
|
+
var nestedMixedOptions = getMixedOptionsRecursively(option.options);
|
|
12652
|
+
mixedOptions = mixedOptions.concat(nestedMixedOptions);
|
|
12653
|
+
}
|
|
12654
|
+
});
|
|
12655
|
+
return mixedOptions;
|
|
12656
|
+
}, []);
|
|
12657
|
+
var mixedOptions = React.useRef(type === "multiple" && selectOptions ? getMixedOptionsRecursively(selectOptions).map(function (item) {
|
|
12658
|
+
return item.id;
|
|
12659
|
+
}) : []);
|
|
12660
|
+
var removeFromMixedOptions = React.useCallback(function (idsToRemove) {
|
|
12661
|
+
mixedOptions.current = mixedOptions.current.filter(function (mixedOption) {
|
|
12662
|
+
return !idsToRemove.includes(mixedOption);
|
|
12663
|
+
});
|
|
12664
|
+
}, []);
|
|
12616
12665
|
var isAllOptionsChecked = React.useMemo(function () {
|
|
12617
12666
|
return allOptionValues.every(function (option) {
|
|
12618
12667
|
return selectedOptions.includes(option);
|
|
@@ -12636,8 +12685,9 @@
|
|
|
12636
12685
|
}
|
|
12637
12686
|
if (selectedValue !== undefined && selectedValue !== selected && !(selectedValue instanceof Array && selectedValue.includes(undefined))) {
|
|
12638
12687
|
onChange(selectedValue);
|
|
12688
|
+
type === "multiple" && mixedOptions.current.length && removeFromMixedOptions(selectedValue);
|
|
12639
12689
|
}
|
|
12640
|
-
}, [forceCloseMenu, selected, onSelectClose, onChange]);
|
|
12690
|
+
}, [forceCloseMenu, selected, onSelectClose, onChange, type, removeFromMixedOptions]);
|
|
12641
12691
|
var onClose = React.useCallback(function () {
|
|
12642
12692
|
setOpen(false);
|
|
12643
12693
|
if (onSelectClose) {
|
|
@@ -12716,11 +12766,13 @@
|
|
|
12716
12766
|
additionalInfo: option.additionalInfo
|
|
12717
12767
|
}), option.id === null ? type === "multiple" ? /*#__PURE__*/React__default["default"].createElement(StyledCheckbox, _extends({
|
|
12718
12768
|
checked: isAllOptionsChecked,
|
|
12719
|
-
|
|
12769
|
+
mixed: someOptionsChecked && !isAllOptionsChecked
|
|
12720
12770
|
}, props)) : /*#__PURE__*/React__default["default"].createElement(StyledRadioButton, _extends({
|
|
12721
12771
|
checked: selectedOptions.length < 1 || !selectedOptions[0]
|
|
12722
|
-
}, props)) : type === "multiple" ? /*#__PURE__*/React__default["default"].createElement(StyledCheckbox,
|
|
12723
|
-
|
|
12772
|
+
}, props)) : type === "multiple" ? /*#__PURE__*/React__default["default"].createElement(StyledCheckbox, _extends({
|
|
12773
|
+
mixed: mixedOptions.current.includes(option.id)
|
|
12774
|
+
}, props)) : /*#__PURE__*/React__default["default"].createElement(StyledRadioButton, props));
|
|
12775
|
+
}, [isAllOptionsChecked, renderOption, type, someOptionsChecked, selectedOptions]);
|
|
12724
12776
|
return /*#__PURE__*/React__default["default"].createElement(Tag, props, /*#__PURE__*/React__default["default"].createElement("div", null, !disableSearch ? /*#__PURE__*/React__default["default"].createElement(StyledSelectForm, {
|
|
12725
12777
|
ref: formRef
|
|
12726
12778
|
}, startAdornment ? /*#__PURE__*/React__default["default"].createElement(StyledStartAdornment, null, startAdornment) : null, /*#__PURE__*/React__default["default"].createElement(StyledSelectInput, {
|
|
@@ -12734,6 +12786,7 @@
|
|
|
12734
12786
|
handleChange: handleChange,
|
|
12735
12787
|
renderOption: handleRenderOption,
|
|
12736
12788
|
options: options,
|
|
12789
|
+
mixedOptions: mixedOptions.current,
|
|
12737
12790
|
handleDefaultOptionChange: handleDefaultOptionChangeCallback,
|
|
12738
12791
|
type: type,
|
|
12739
12792
|
preselectDefaultValue: preselectDefaultValue,
|