@aiszlab/relax 1.2.62 → 1.2.64

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.
@@ -93,26 +93,6 @@ function _nonIterableRest() {
93
93
  function _nonIterableSpread() {
94
94
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
95
95
  }
96
- function _objectWithoutProperties(e, t) {
97
- if (null == e) return {};
98
- var o,
99
- r,
100
- i = _objectWithoutPropertiesLoose(e, t);
101
- if (Object.getOwnPropertySymbols) {
102
- var s = Object.getOwnPropertySymbols(e);
103
- for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
104
- }
105
- return i;
106
- }
107
- function _objectWithoutPropertiesLoose(r, e) {
108
- if (null == r) return {};
109
- var t = {};
110
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
111
- if (e.includes(n)) continue;
112
- t[n] = r[n];
113
- }
114
- return t;
115
- }
116
96
  function _slicedToArray(r, e) {
117
97
  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
118
98
  }
@@ -150,4 +130,4 @@ function _unsupportedIterableToArray(r, a) {
150
130
  }
151
131
  }
152
132
 
153
- export { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _arrayWithoutHoles as arrayWithoutHoles, _assertClassBrand as assertClassBrand, _checkPrivateRedeclaration as checkPrivateRedeclaration, _classCallCheck as classCallCheck, _classPrivateFieldGet2 as classPrivateFieldGet2, _classPrivateFieldInitSpec as classPrivateFieldInitSpec, _classPrivateFieldSet2 as classPrivateFieldSet2, _classPrivateMethodInitSpec as classPrivateMethodInitSpec, _construct as construct, _createClass as createClass, _isNativeReflectConstruct as isNativeReflectConstruct, _iterableToArray as iterableToArray, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _nonIterableSpread as nonIterableSpread, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toConsumableArray as toConsumableArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _typeof as typeof, _unsupportedIterableToArray as unsupportedIterableToArray };
133
+ export { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _arrayWithoutHoles as arrayWithoutHoles, _assertClassBrand as assertClassBrand, _checkPrivateRedeclaration as checkPrivateRedeclaration, _classCallCheck as classCallCheck, _classPrivateFieldGet2 as classPrivateFieldGet2, _classPrivateFieldInitSpec as classPrivateFieldInitSpec, _classPrivateFieldSet2 as classPrivateFieldSet2, _classPrivateMethodInitSpec as classPrivateMethodInitSpec, _construct as construct, _createClass as createClass, _isNativeReflectConstruct as isNativeReflectConstruct, _iterableToArray as iterableToArray, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _nonIterableSpread as nonIterableSpread, _slicedToArray as slicedToArray, _toConsumableArray as toConsumableArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _typeof as typeof, _unsupportedIterableToArray as unsupportedIterableToArray };
@@ -12,9 +12,9 @@ var useClickAway = function useClickAway(onClickAway, target) {
12
12
  onClickAway(event);
13
13
  });
14
14
  useEffect(function () {
15
- window.addEventListener("click", clickAway);
15
+ document.addEventListener("click", clickAway);
16
16
  return function () {
17
- window.removeEventListener("click", clickAway);
17
+ document.removeEventListener("click", clickAway);
18
18
  };
19
19
  }, []);
20
20
  };
@@ -19,7 +19,7 @@ type TogglableKey = {
19
19
  * @description
20
20
  * extra options
21
21
  */
22
- type Options = {
22
+ type UseTogglableOptions = {
23
23
  /**
24
24
  * @description
25
25
  * default toggled
@@ -35,12 +35,17 @@ type Options = {
35
35
  * on toggle callback
36
36
  */
37
37
  onToggle?: (keys: Key[]) => void;
38
+ /**
39
+ * @description
40
+ * default toggled keys
41
+ */
42
+ defaultToggledKeys?: Key[];
38
43
  };
39
44
  /**
40
45
  * @description
41
46
  * toggle able
42
47
  */
43
- export declare const useTogglable: (togglableKeys: TogglableKey[], { onToggle, ...options }?: Options) => {
48
+ export declare const useTogglable: (togglableKeys: TogglableKey[], { onToggle, defaultToggledKeys, isDefaultToggled, toggledKeys }?: UseTogglableOptions) => {
44
49
  toggledKeys: Set<Key>;
45
50
  isToggled: (key: Key) => boolean;
46
51
  toggle: (key: Key) => void;
@@ -1,9 +1,8 @@
1
- import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, createClass as _createClass, classPrivateFieldGet2 as _classPrivateFieldGet2, classCallCheck as _classCallCheck, classPrivateFieldInitSpec as _classPrivateFieldInitSpec, classPrivateFieldSet2 as _classPrivateFieldSet2 } from '../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { slicedToArray as _slicedToArray, createClass as _createClass, classPrivateFieldGet2 as _classPrivateFieldGet2, classCallCheck as _classCallCheck, classPrivateFieldInitSpec as _classPrivateFieldInitSpec, classPrivateFieldSet2 as _classPrivateFieldSet2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { useMemo, useCallback } from 'react';
3
3
  import { useControlledState } from './use-controlled-state.js';
4
4
  import { useEvent } from './use-event.js';
5
5
 
6
- var _excluded = ["onToggle"];
7
6
  var _groupedLeaves = /*#__PURE__*/new WeakMap();
8
7
  var Tree = /*#__PURE__*/function () {
9
8
  function Tree() {
@@ -41,13 +40,21 @@ var Tree = /*#__PURE__*/function () {
41
40
  }
42
41
  }, {
43
42
  key: "toggleBy",
44
- value: function toggleBy(key, isToggled, toggledKeys) {
43
+ value: function toggleBy(key, isToggled, _toggledKeys) {
45
44
  var _classPrivateFieldGet2$1;
45
+ var toggledKeys = new Set(_toggledKeys);
46
+ // toggle current leaf
47
+ if (isToggled) {
48
+ toggledKeys.add(key);
49
+ } else {
50
+ toggledKeys["delete"](key);
51
+ }
46
52
  return Array.from((_classPrivateFieldGet2$1 = _classPrivateFieldGet2(_groupedLeaves, this).get(key)) !== null && _classPrivateFieldGet2$1 !== void 0 ? _classPrivateFieldGet2$1 : []).reduce(function (prev, leaf) {
47
53
  // deep fall, add or remove child key
54
+ return leaf.rise(
48
55
  // deep rise, add or remove parent key
49
- return leaf.rise(isToggled, leaf.fall(isToggled, prev));
50
- }, new Set(toggledKeys));
56
+ leaf.fall(isToggled, prev));
57
+ }, toggledKeys);
51
58
  }
52
59
  }]);
53
60
  }();
@@ -92,17 +99,19 @@ var Leaf = /*#__PURE__*/function () {
92
99
  }
93
100
  }, {
94
101
  key: "rise",
95
- value: function rise(isToggled, toggledKeys) {
96
- var rised = new Set(toggledKeys);
97
- if (isToggled) {
98
- rised.add(_classPrivateFieldGet2(_key, this));
102
+ value: function rise(_toggledKeys) {
103
+ var rised = new Set(_toggledKeys);
104
+ if (!_classPrivateFieldGet2(_parent, this)) return rised;
105
+ var isChildrenToggled = _classPrivateFieldGet2(_children, _classPrivateFieldGet2(_parent, this)).every(function (child) {
106
+ return rised.has(child.key);
107
+ });
108
+ if (isChildrenToggled) {
109
+ rised.add(_classPrivateFieldGet2(_parent, this).key);
99
110
  } else {
100
- rised["delete"](_classPrivateFieldGet2(_key, this));
101
- }
102
- if (_classPrivateFieldGet2(_parent, this)) {
103
- return _classPrivateFieldGet2(_parent, this).rise(isToggled, rised);
111
+ rised["delete"](_classPrivateFieldGet2(_parent, this).key);
104
112
  }
105
- return rised;
113
+ // go on parent
114
+ return _classPrivateFieldGet2(_parent, this).rise(rised);
106
115
  }
107
116
  }, {
108
117
  key: "fall",
@@ -129,36 +138,34 @@ var Leaf = /*#__PURE__*/function () {
129
138
  var useTogglable = function useTogglable(togglableKeys) {
130
139
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
131
140
  onToggle = _ref.onToggle,
132
- options = _objectWithoutProperties(_ref, _excluded);
133
- /// re-create tree when togglable keys changed
141
+ _ref$defaultToggledKe = _ref.defaultToggledKeys,
142
+ defaultToggledKeys = _ref$defaultToggledKe === void 0 ? [] : _ref$defaultToggledKe,
143
+ isDefaultToggled = _ref.isDefaultToggled,
144
+ toggledKeys = _ref.toggledKeys;
145
+ // re-create tree when togglable keys changed
134
146
  var tree = useMemo(function () {
135
147
  return togglableKeys.reduce(function (_tree, togglable) {
136
148
  return _tree.grow(togglable);
137
149
  }, new Tree());
138
150
  }, [togglableKeys]);
139
- /// use controlled state to record toggled keys
140
- var _useControlledState = useControlledState(options.toggledKeys, {
151
+ // use controlled state to record toggled keys
152
+ var _useControlledState = useControlledState(toggledKeys, {
141
153
  defaultState: function defaultState() {
142
- return options.isDefaultToggled ? Array.from(Array.from(tree.groupedLeaves.values()).reduce(function (prev, leaves) {
143
- leaves.forEach(function (leaf) {
144
- return prev.add(leaf.key);
145
- });
146
- return prev;
147
- }, new Set())) : [];
154
+ return isDefaultToggled ? Array.from(tree.groupedLeaves.keys()) : defaultToggledKeys;
148
155
  }
149
156
  }),
150
157
  _useControlledState2 = _slicedToArray(_useControlledState, 2),
151
158
  _toggledKeys = _useControlledState2[0],
152
159
  _setToggledKeys = _useControlledState2[1];
153
- /// use set for toggled keys to make it read-only
160
+ // use set for toggled keys to make it read easily
154
161
  var readableToggledKeys = useMemo(function () {
155
162
  return new Set(_toggledKeys);
156
163
  }, [_toggledKeys]);
157
- /// check current key is toggled
164
+ // check current key is toggled
158
165
  var isToggled = useCallback(function (key) {
159
- return !readableToggledKeys || readableToggledKeys.has(key);
166
+ return readableToggledKeys.has(key);
160
167
  }, [readableToggledKeys]);
161
- /// toggle one key
168
+ // toggle one key
162
169
  var toggle = useEvent(function (key) {
163
170
  // get new toggled keys by toggle current key
164
171
  var _toggledKeys = Array.from(tree.toggle(key, readableToggledKeys));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "1.2.62",
3
+ "version": "1.2.64",
4
4
  "description": "react utils collection",
5
5
  "type": "module",
6
6
  "exports": {