@sheinx/hooks 3.7.0-beta.30 → 3.7.0-beta.31
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/cjs/common/use-filter/index.d.ts +1 -0
- package/cjs/common/use-filter/index.d.ts.map +1 -1
- package/cjs/common/use-filter/index.js +7 -0
- package/cjs/common/use-filter/use-filter-context.d.ts +7 -0
- package/cjs/common/use-filter/use-filter-context.d.ts.map +1 -0
- package/cjs/common/use-filter/use-filter-context.js +10 -0
- package/cjs/common/use-filter/use-filter.d.ts +1 -0
- package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
- package/cjs/common/use-filter/use-filter.js +2 -0
- package/cjs/utils/highlight.d.ts +7 -0
- package/cjs/utils/highlight.d.ts.map +1 -0
- package/cjs/utils/highlight.js +67 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.d.ts.map +1 -1
- package/cjs/utils/index.js +12 -0
- package/cjs/utils/string.d.ts +1 -0
- package/cjs/utils/string.d.ts.map +1 -1
- package/cjs/utils/string.js +13 -0
- package/esm/common/use-filter/index.d.ts +1 -0
- package/esm/common/use-filter/index.d.ts.map +1 -1
- package/esm/common/use-filter/index.js +2 -1
- package/esm/common/use-filter/use-filter-context.d.ts +7 -0
- package/esm/common/use-filter/use-filter-context.d.ts.map +1 -0
- package/esm/common/use-filter/use-filter-context.js +3 -0
- package/esm/common/use-filter/use-filter.d.ts +1 -0
- package/esm/common/use-filter/use-filter.d.ts.map +1 -1
- package/esm/common/use-filter/use-filter.js +2 -0
- package/esm/utils/highlight.d.ts +7 -0
- package/esm/utils/highlight.d.ts.map +1 -0
- package/esm/utils/highlight.js +59 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/string.d.ts +1 -0
- package/esm/utils/string.d.ts.map +1 -1
- package/esm/utils/string.js +12 -0
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
@@ -4,6 +4,12 @@
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
+
Object.defineProperty(exports, "FilterContext", {
|
8
|
+
enumerable: true,
|
9
|
+
get: function get() {
|
10
|
+
return _useFilterContext.FilterContext;
|
11
|
+
}
|
12
|
+
});
|
7
13
|
Object.defineProperty(exports, "default", {
|
8
14
|
enumerable: true,
|
9
15
|
get: function get() {
|
@@ -17,4 +23,5 @@ Object.defineProperty(exports, "useFilter", {
|
|
17
23
|
}
|
18
24
|
});
|
19
25
|
var _useFilter = _interopRequireDefault(require("./use-filter"));
|
26
|
+
var _useFilterContext = require("./use-filter-context");
|
20
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-filter-context.d.ts","sourceRoot":"","sources":["use-filter-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAEzB,MAAM,WAAW,kBAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,mCAA8C,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.FilterContext = void 0;
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
9
|
+
var FilterContext = exports.FilterContext = /*#__PURE__*/_react.default.createContext({});
|
10
|
+
FilterContext.displayName = 'FilterContext';
|
@@ -14,6 +14,7 @@ declare const useFilter: <DataItem>(props: UseFilterProps<DataItem>) => {
|
|
14
14
|
filterFunc: ((d: DataItem) => boolean) | undefined;
|
15
15
|
onCreate: ((text: string) => string | DataItem | undefined) | undefined;
|
16
16
|
onFilter: ((text: string, from?: string) => void) | undefined;
|
17
|
+
FilterProvider: import("react").Provider<import("./use-filter-context").FilterContextProps>;
|
17
18
|
onClearCreatedData: () => void;
|
18
19
|
};
|
19
20
|
export default useFilter;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS;;;;;;;;;;kCAmBkD,OAAO;sBAiB1C,MAAM;sBAKN,MAAM,SAAQ,MAAM;;;CAsGjD,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.default = void 0;
|
7
7
|
var _react = require("react");
|
8
8
|
var _utils = require("../../utils");
|
9
|
+
var _useFilterContext = require("./use-filter-context");
|
9
10
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
10
11
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
11
12
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
@@ -157,6 +158,7 @@ var useFilter = function useFilter(props) {
|
|
157
158
|
filterFunc: filterFunc,
|
158
159
|
onCreate: onCreate ? handleCreate : undefined,
|
159
160
|
onFilter: onFilter || onCreate ? handleFilter : undefined,
|
161
|
+
FilterProvider: _useFilterContext.FilterContext.Provider,
|
160
162
|
// onResetFilter: handleResetData,
|
161
163
|
onClearCreatedData: handleClearCreatedData
|
162
164
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["highlight.tsx"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAClC,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,MAAM,GACP,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,CAAC,CA8BJ"}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.getHighlightText = getHighlightText;
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
9
|
+
var _string = require("./string");
|
10
|
+
var _is = require("./is");
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
14
|
+
function getHighlightText(_ref) {
|
15
|
+
var nodeList = _ref.nodeList,
|
16
|
+
searchWords = _ref.searchWords,
|
17
|
+
highlightClassName = _ref.highlightClassName,
|
18
|
+
enable = _ref.enable;
|
19
|
+
if (!enable || !searchWords) {
|
20
|
+
return nodeList;
|
21
|
+
}
|
22
|
+
var transformNode = function transformNode(node) {
|
23
|
+
var _node$props;
|
24
|
+
if (node && typeof ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.children) === 'string') {
|
25
|
+
return /*#__PURE__*/(0, _react.cloneElement)(node, undefined, /*#__PURE__*/(0, _jsxRuntime.jsx)(HighlightText, {
|
26
|
+
textToHighlight: node.props.children,
|
27
|
+
searchWords: searchWords,
|
28
|
+
highlightClassName: highlightClassName
|
29
|
+
}));
|
30
|
+
}
|
31
|
+
if (node && typeof node === 'string') {
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(HighlightText, {
|
33
|
+
textToHighlight: node,
|
34
|
+
searchWords: searchWords,
|
35
|
+
highlightClassName: highlightClassName
|
36
|
+
});
|
37
|
+
}
|
38
|
+
return node;
|
39
|
+
};
|
40
|
+
return (0, _is.isArray)(nodeList) ? nodeList.map(transformNode) : transformNode(nodeList);
|
41
|
+
}
|
42
|
+
function HighlightText(_ref2) {
|
43
|
+
var textToHighlight = _ref2.textToHighlight,
|
44
|
+
searchWords = _ref2.searchWords,
|
45
|
+
highlightClassName = _ref2.highlightClassName;
|
46
|
+
if (!searchWords) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
47
|
+
children: textToHighlight
|
48
|
+
});
|
49
|
+
if (searchWords.length > 500) {
|
50
|
+
searchWords = searchWords.slice(0, 500);
|
51
|
+
}
|
52
|
+
|
53
|
+
// 注意这里的括号,这里使用了带capture group功能的正则,来split字符串
|
54
|
+
// 从而在strArr中可以保留匹配文本
|
55
|
+
var re = new RegExp("(".concat((0, _string.escapeRegExp)(searchWords), ")"), 'i');
|
56
|
+
var strArr = textToHighlight.split(re);
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
58
|
+
children: strArr.map(function (item, index) {
|
59
|
+
return re.test(item) ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
60
|
+
className: highlightClassName,
|
61
|
+
children: item
|
62
|
+
}, index) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
|
63
|
+
children: item
|
64
|
+
}, index);
|
65
|
+
})
|
66
|
+
});
|
67
|
+
}
|
package/cjs/utils/index.d.ts
CHANGED
package/cjs/utils/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
package/cjs/utils/index.js
CHANGED
@@ -280,6 +280,18 @@ Object.keys(_warning).forEach(function (key) {
|
|
280
280
|
}
|
281
281
|
});
|
282
282
|
});
|
283
|
+
var _highlight = require("./highlight");
|
284
|
+
Object.keys(_highlight).forEach(function (key) {
|
285
|
+
if (key === "default" || key === "__esModule") return;
|
286
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
287
|
+
if (key in exports && exports[key] === _highlight[key]) return;
|
288
|
+
Object.defineProperty(exports, key, {
|
289
|
+
enumerable: true,
|
290
|
+
get: function get() {
|
291
|
+
return _highlight[key];
|
292
|
+
}
|
293
|
+
});
|
294
|
+
});
|
283
295
|
var _flat = _interopRequireWildcard(require("./flat"));
|
284
296
|
exports.flat = _flat;
|
285
297
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
package/cjs/utils/string.d.ts
CHANGED
@@ -11,4 +11,5 @@ export declare function substitute<T extends ObjectType = ObjectType>(str: strin
|
|
11
11
|
* 输出 '//github.com/'
|
12
12
|
*/
|
13
13
|
export declare function removeProtocol(url: string): string;
|
14
|
+
export declare function escapeRegExp(str?: any): any;
|
14
15
|
//# sourceMappingURL=string.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC1D,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,EAClC,GAAG,EAAE,CAAC,UAoBP;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAQzC"}
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC1D,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,EAClC,GAAG,EAAE,CAAC,UAoBP;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAQzC;AASD,wBAAgB,YAAY,CAAC,GAAG,GAAE,GAAQ,OAKzC"}
|
package/cjs/utils/string.js
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
+
exports.escapeRegExp = escapeRegExp;
|
6
7
|
exports.removeProtocol = removeProtocol;
|
7
8
|
exports.substitute = substitute;
|
8
9
|
/**
|
@@ -44,4 +45,16 @@ function removeProtocol(url) {
|
|
44
45
|
} catch (error) {
|
45
46
|
return url;
|
46
47
|
}
|
48
|
+
}
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Used to match `RegExp`
|
52
|
+
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
|
53
|
+
*/
|
54
|
+
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
|
55
|
+
reHasRegExpChar = RegExp(reRegExpChar.source);
|
56
|
+
function escapeRegExp() {
|
57
|
+
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
58
|
+
var string = typeof str === 'string' ? str : str.toString();
|
59
|
+
return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\$&') : string;
|
47
60
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-filter-context.d.ts","sourceRoot":"","sources":["use-filter-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAEzB,MAAM,WAAW,kBAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,mCAA8C,CAAC"}
|
@@ -14,6 +14,7 @@ declare const useFilter: <DataItem>(props: UseFilterProps<DataItem>) => {
|
|
14
14
|
filterFunc: ((d: DataItem) => boolean) | undefined;
|
15
15
|
onCreate: ((text: string) => string | DataItem | undefined) | undefined;
|
16
16
|
onFilter: ((text: string, from?: string) => void) | undefined;
|
17
|
+
FilterProvider: import("react").Provider<import("./use-filter-context").FilterContextProps>;
|
17
18
|
onClearCreatedData: () => void;
|
18
19
|
};
|
19
20
|
export default useFilter;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS;;;;;;;;;;kCAmBkD,OAAO;sBAiB1C,MAAM;sBAKN,MAAM,SAAQ,MAAM;;;CAsGjD,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
@@ -10,6 +10,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
10
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
11
11
|
import { useState, useEffect, useRef, useMemo } from 'react';
|
12
12
|
import { isFunc, getKey, getFilterTree } from "../../utils";
|
13
|
+
import { FilterContext } from "./use-filter-context";
|
13
14
|
var useFilter = function useFilter(props) {
|
14
15
|
var data = props.data,
|
15
16
|
groupKey = props.groupKey,
|
@@ -151,6 +152,7 @@ var useFilter = function useFilter(props) {
|
|
151
152
|
filterFunc: filterFunc,
|
152
153
|
onCreate: onCreate ? handleCreate : undefined,
|
153
154
|
onFilter: onFilter || onCreate ? handleFilter : undefined,
|
155
|
+
FilterProvider: FilterContext.Provider,
|
154
156
|
// onResetFilter: handleResetData,
|
155
157
|
onClearCreatedData: handleClearCreatedData
|
156
158
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["highlight.tsx"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAClC,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,MAAM,GACP,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,CAAC,CA8BJ"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import React, { cloneElement } from 'react';
|
2
|
+
import { escapeRegExp } from "./string";
|
3
|
+
import { isArray } from "./is";
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
5
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
6
|
+
export function getHighlightText(_ref) {
|
7
|
+
var nodeList = _ref.nodeList,
|
8
|
+
searchWords = _ref.searchWords,
|
9
|
+
highlightClassName = _ref.highlightClassName,
|
10
|
+
enable = _ref.enable;
|
11
|
+
if (!enable || !searchWords) {
|
12
|
+
return nodeList;
|
13
|
+
}
|
14
|
+
var transformNode = function transformNode(node) {
|
15
|
+
var _node$props;
|
16
|
+
if (node && typeof ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.children) === 'string') {
|
17
|
+
return /*#__PURE__*/cloneElement(node, undefined, /*#__PURE__*/_jsx(HighlightText, {
|
18
|
+
textToHighlight: node.props.children,
|
19
|
+
searchWords: searchWords,
|
20
|
+
highlightClassName: highlightClassName
|
21
|
+
}));
|
22
|
+
}
|
23
|
+
if (node && typeof node === 'string') {
|
24
|
+
return /*#__PURE__*/_jsx(HighlightText, {
|
25
|
+
textToHighlight: node,
|
26
|
+
searchWords: searchWords,
|
27
|
+
highlightClassName: highlightClassName
|
28
|
+
});
|
29
|
+
}
|
30
|
+
return node;
|
31
|
+
};
|
32
|
+
return isArray(nodeList) ? nodeList.map(transformNode) : transformNode(nodeList);
|
33
|
+
}
|
34
|
+
function HighlightText(_ref2) {
|
35
|
+
var textToHighlight = _ref2.textToHighlight,
|
36
|
+
searchWords = _ref2.searchWords,
|
37
|
+
highlightClassName = _ref2.highlightClassName;
|
38
|
+
if (!searchWords) return /*#__PURE__*/_jsx(_Fragment, {
|
39
|
+
children: textToHighlight
|
40
|
+
});
|
41
|
+
if (searchWords.length > 500) {
|
42
|
+
searchWords = searchWords.slice(0, 500);
|
43
|
+
}
|
44
|
+
|
45
|
+
// 注意这里的括号,这里使用了带capture group功能的正则,来split字符串
|
46
|
+
// 从而在strArr中可以保留匹配文本
|
47
|
+
var re = new RegExp("(".concat(escapeRegExp(searchWords), ")"), 'i');
|
48
|
+
var strArr = textToHighlight.split(re);
|
49
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
50
|
+
children: strArr.map(function (item, index) {
|
51
|
+
return re.test(item) ? /*#__PURE__*/_jsx("span", {
|
52
|
+
className: highlightClassName,
|
53
|
+
children: item
|
54
|
+
}, index) : /*#__PURE__*/_jsx(React.Fragment, {
|
55
|
+
children: item
|
56
|
+
}, index);
|
57
|
+
})
|
58
|
+
});
|
59
|
+
}
|
package/esm/utils/index.d.ts
CHANGED
package/esm/utils/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
package/esm/utils/index.js
CHANGED
package/esm/utils/string.d.ts
CHANGED
@@ -11,4 +11,5 @@ export declare function substitute<T extends ObjectType = ObjectType>(str: strin
|
|
11
11
|
* 输出 '//github.com/'
|
12
12
|
*/
|
13
13
|
export declare function removeProtocol(url: string): string;
|
14
|
+
export declare function escapeRegExp(str?: any): any;
|
14
15
|
//# sourceMappingURL=string.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC1D,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,EAClC,GAAG,EAAE,CAAC,UAoBP;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAQzC"}
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC1D,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,EAClC,GAAG,EAAE,CAAC,UAoBP;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAQzC;AASD,wBAAgB,YAAY,CAAC,GAAG,GAAE,GAAQ,OAKzC"}
|
package/esm/utils/string.js
CHANGED
@@ -37,4 +37,16 @@ export function removeProtocol(url) {
|
|
37
37
|
} catch (error) {
|
38
38
|
return url;
|
39
39
|
}
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Used to match `RegExp`
|
44
|
+
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
|
45
|
+
*/
|
46
|
+
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
|
47
|
+
reHasRegExpChar = RegExp(reRegExpChar.source);
|
48
|
+
export function escapeRegExp() {
|
49
|
+
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
50
|
+
var string = typeof str === 'string' ? str : str.toString();
|
51
|
+
return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\$&') : string;
|
40
52
|
}
|