@alifd/chat 0.0.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.
- package/README.md +1 -0
- package/es/button/index.d.ts +1 -0
- package/es/button/index.js +1 -0
- package/es/button/main.scss +0 -0
- package/es/button/style.d.ts +1 -0
- package/es/button/style.js +1 -0
- package/es/button/types.d.ts +123 -0
- package/es/button/types.js +1 -0
- package/es/button/view/button.d.ts +23 -0
- package/es/button/view/button.js +26 -0
- package/es/float-button/hooks/useAutoAlign.d.ts +11 -0
- package/es/float-button/hooks/useAutoAlign.js +45 -0
- package/es/float-button/hooks/useAutoHide.d.ts +15 -0
- package/es/float-button/hooks/useAutoHide.js +157 -0
- package/es/float-button/hooks/useDragable.d.ts +9 -0
- package/es/float-button/hooks/useDragable.js +128 -0
- package/es/float-button/hooks/useNestleEdge.d.ts +13 -0
- package/es/float-button/hooks/useNestleEdge.js +77 -0
- package/es/float-button/index.d.ts +6 -0
- package/es/float-button/index.js +5 -0
- package/es/float-button/main.scss +16 -0
- package/es/float-button/style.d.ts +2 -0
- package/es/float-button/style.js +2 -0
- package/es/float-button/types.d.ts +225 -0
- package/es/float-button/types.js +1 -0
- package/es/float-button/util.d.ts +8 -0
- package/es/float-button/util.js +67 -0
- package/es/float-button/view/backtop.d.ts +4 -0
- package/es/float-button/view/backtop.js +73 -0
- package/es/float-button/view/balloon.d.ts +8 -0
- package/es/float-button/view/balloon.js +12 -0
- package/es/float-button/view/drawer.d.ts +2 -0
- package/es/float-button/view/drawer.js +4 -0
- package/es/float-button/view/float-button.d.ts +4 -0
- package/es/float-button/view/float-button.js +117 -0
- package/es/float-button/view/inner-drawer.d.ts +2 -0
- package/es/float-button/view/inner-drawer.js +4 -0
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -0
- package/es/utils/common.d.ts +2 -0
- package/es/utils/common.js +8 -0
- package/es/utils/func.d.ts +3 -0
- package/es/utils/func.js +30 -0
- package/es/utils/hooks/useControlable.d.ts +6 -0
- package/es/utils/hooks/useControlable.js +27 -0
- package/es/utils/hooks/useDebounce.d.ts +2 -0
- package/es/utils/hooks/useDebounce.js +9 -0
- package/es/utils/hooks/useThrottle.d.ts +2 -0
- package/es/utils/hooks/useThrottle.js +9 -0
- package/es/utils/index.d.ts +6 -0
- package/es/utils/index.js +6 -0
- package/es/utils/types.d.ts +2 -0
- package/es/utils/types.js +1 -0
- package/lib/button/index.d.ts +1 -0
- package/lib/button/index.js +8 -0
- package/lib/button/main.scss +0 -0
- package/lib/button/style.d.ts +1 -0
- package/lib/button/style.js +3 -0
- package/lib/button/types.d.ts +123 -0
- package/lib/button/types.js +2 -0
- package/lib/button/view/button.d.ts +23 -0
- package/lib/button/view/button.js +29 -0
- package/lib/float-button/hooks/useAutoAlign.d.ts +11 -0
- package/lib/float-button/hooks/useAutoAlign.js +49 -0
- package/lib/float-button/hooks/useAutoHide.d.ts +15 -0
- package/lib/float-button/hooks/useAutoHide.js +161 -0
- package/lib/float-button/hooks/useDragable.d.ts +9 -0
- package/lib/float-button/hooks/useDragable.js +132 -0
- package/lib/float-button/hooks/useNestleEdge.d.ts +13 -0
- package/lib/float-button/hooks/useNestleEdge.js +81 -0
- package/lib/float-button/index.d.ts +6 -0
- package/lib/float-button/index.js +8 -0
- package/lib/float-button/main.scss +16 -0
- package/lib/float-button/style.d.ts +2 -0
- package/lib/float-button/style.js +4 -0
- package/lib/float-button/types.d.ts +225 -0
- package/lib/float-button/types.js +2 -0
- package/lib/float-button/util.d.ts +8 -0
- package/lib/float-button/util.js +74 -0
- package/lib/float-button/view/backtop.d.ts +4 -0
- package/lib/float-button/view/backtop.js +76 -0
- package/lib/float-button/view/balloon.d.ts +8 -0
- package/lib/float-button/view/balloon.js +16 -0
- package/lib/float-button/view/drawer.d.ts +2 -0
- package/lib/float-button/view/drawer.js +9 -0
- package/lib/float-button/view/float-button.d.ts +4 -0
- package/lib/float-button/view/float-button.js +119 -0
- package/lib/float-button/view/inner-drawer.d.ts +2 -0
- package/lib/float-button/view/inner-drawer.js +9 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +9 -0
- package/lib/utils/common.d.ts +2 -0
- package/lib/utils/common.js +12 -0
- package/lib/utils/func.d.ts +3 -0
- package/lib/utils/func.js +35 -0
- package/lib/utils/hooks/useControlable.d.ts +6 -0
- package/lib/utils/hooks/useControlable.js +31 -0
- package/lib/utils/hooks/useDebounce.d.ts +2 -0
- package/lib/utils/hooks/useDebounce.js +13 -0
- package/lib/utils/hooks/useThrottle.d.ts +2 -0
- package/lib/utils/hooks/useThrottle.js +13 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/index.js +13 -0
- package/lib/utils/types.d.ts +2 -0
- package/lib/utils/types.js +2 -0
- package/package.json +103 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
6
|
+
const next_1 = require("@alifd/next");
|
|
7
|
+
const index_1 = require("../../utils/index");
|
|
8
|
+
const useAutoHide_1 = require("../hooks/useAutoHide");
|
|
9
|
+
const useAutoAlign_1 = require("../hooks/useAutoAlign");
|
|
10
|
+
const useNestleEdge_1 = require("../hooks/useNestleEdge");
|
|
11
|
+
const useDragable_1 = require("../hooks/useDragable");
|
|
12
|
+
const FloatButton = (0, react_1.forwardRef)((_a, ref) => {
|
|
13
|
+
var { className, style, prefix = 'next-', type = 'balloon', addonAfter, addonBefore, dragable, safeAreaMargin = [10, 10, 10, 10], autoNestleEdge = true, interactiveEdges = ['left', 'right'], autoHide, autoAlign, leftSizeOfHidden, defaultPosition, trigger, triggerType = 'click', showClose = false, align, balloonProps, children } = _a, others = tslib_1.__rest(_a, ["className", "style", "prefix", "type", "addonAfter", "addonBefore", "dragable", "safeAreaMargin", "autoNestleEdge", "interactiveEdges", "autoHide", "autoAlign", "leftSizeOfHidden", "defaultPosition", "trigger", "triggerType", "showClose", "align", "balloonProps", "children"]);
|
|
14
|
+
const elRef = (0, react_1.useRef)(null);
|
|
15
|
+
const triggerRef = (0, react_1.useRef)(null);
|
|
16
|
+
const [el, setEl] = (0, react_1.useState)(null);
|
|
17
|
+
const [triggerEl, setTriggerEl] = (0, react_1.useState)(null);
|
|
18
|
+
const draggedRef = (0, react_1.useRef)(false);
|
|
19
|
+
const cls = `${prefix}float-button`;
|
|
20
|
+
const [visible, onVisibleChange] = (0, index_1.useControlable)(others, {
|
|
21
|
+
valueName: 'visible',
|
|
22
|
+
changeName: 'onVisibleChange',
|
|
23
|
+
});
|
|
24
|
+
(0, react_1.useEffect)(() => {
|
|
25
|
+
setEl(elRef.current);
|
|
26
|
+
setTriggerEl(triggerRef.current);
|
|
27
|
+
}, []);
|
|
28
|
+
const { align: currentAlign, update: updateAlign } = (0, useAutoAlign_1.useAutoAlign)(el === null || el === void 0 ? void 0 : el.querySelector(`.${cls}-popup`), triggerEl, {
|
|
29
|
+
enable: type === 'balloon' && autoAlign,
|
|
30
|
+
defaultAlign: align,
|
|
31
|
+
});
|
|
32
|
+
const { isHideRef, setHide, handleMove, saveRestorePosition } = (0, useAutoHide_1.useAutoHide)(el, {
|
|
33
|
+
enable: !visible && autoHide,
|
|
34
|
+
interactiveEdges,
|
|
35
|
+
leftSize: leftSizeOfHidden,
|
|
36
|
+
});
|
|
37
|
+
(0, react_1.useEffect)(() => {
|
|
38
|
+
if (visible) {
|
|
39
|
+
setHide(false);
|
|
40
|
+
updateAlign();
|
|
41
|
+
}
|
|
42
|
+
}, [visible]);
|
|
43
|
+
const { update: updateNestleEdge } = (0, useNestleEdge_1.useNestleEdge)(el, {
|
|
44
|
+
enable: !!autoNestleEdge,
|
|
45
|
+
safeAreaMargin,
|
|
46
|
+
interactiveEdges,
|
|
47
|
+
onUpdate(position) {
|
|
48
|
+
if (isHideRef.current) {
|
|
49
|
+
saveRestorePosition(position);
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
(0, react_1.useImperativeHandle)(ref, () => ({
|
|
55
|
+
setVisible(value) {
|
|
56
|
+
onVisibleChange(value, 'api');
|
|
57
|
+
},
|
|
58
|
+
setHide(isHide) {
|
|
59
|
+
setHide(isHide);
|
|
60
|
+
},
|
|
61
|
+
updateAlign,
|
|
62
|
+
updateNestleEdge,
|
|
63
|
+
}));
|
|
64
|
+
const { className: dragClassName, style: dragStyle } = (0, useDragable_1.useDragable)(el, {
|
|
65
|
+
enable: dragable,
|
|
66
|
+
safeAreaMargin,
|
|
67
|
+
defaultPosition,
|
|
68
|
+
onDragBefore() {
|
|
69
|
+
draggedRef.current = false;
|
|
70
|
+
},
|
|
71
|
+
onDraging(_, e) {
|
|
72
|
+
draggedRef.current = true;
|
|
73
|
+
updateAlign();
|
|
74
|
+
handleMove(e);
|
|
75
|
+
if (isHideRef.current) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
onDragend() {
|
|
80
|
+
if (!isHideRef.current) {
|
|
81
|
+
Promise.resolve().then(() => updateNestleEdge());
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
const classNames = (0, classnames_1.default)(cls, className, dragClassName);
|
|
86
|
+
const renderBalloon = () => {
|
|
87
|
+
return (react_1.default.createElement(next_1.Balloon, Object.assign({ visible: visible, onVisibleChange: (...args) => {
|
|
88
|
+
if (draggedRef.current) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(...args);
|
|
92
|
+
}, popupClassName: `${cls}-popup`, trigger: trigger, popupContainer: () => el, triggerType: triggerType, align: currentAlign, v2: true, closable: showClose, autoAdjust: false }, balloonProps), children));
|
|
93
|
+
};
|
|
94
|
+
const renderDrawer = () => {
|
|
95
|
+
return react_1.default.createElement("div", null);
|
|
96
|
+
};
|
|
97
|
+
const renderInnerDrawer = () => {
|
|
98
|
+
return react_1.default.createElement("div", null);
|
|
99
|
+
};
|
|
100
|
+
const renderView = () => {
|
|
101
|
+
switch (type) {
|
|
102
|
+
case 'drawer': {
|
|
103
|
+
return renderDrawer();
|
|
104
|
+
}
|
|
105
|
+
case 'inner-drawer': {
|
|
106
|
+
return renderInnerDrawer();
|
|
107
|
+
}
|
|
108
|
+
default: {
|
|
109
|
+
return renderBalloon();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return (react_1.default.createElement("div", { className: classNames, style: Object.assign(Object.assign({}, style), dragStyle), ref: elRef },
|
|
114
|
+
!!addonBefore && (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-addon`, `${cls}-addon--before`) }, addonBefore)),
|
|
115
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-trigger`), ref: triggerRef }, renderView()),
|
|
116
|
+
!!addonAfter && (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-addon`, `${cls}-addon--after`) }, addonAfter))));
|
|
117
|
+
});
|
|
118
|
+
FloatButton.displayName = 'FloatButton';
|
|
119
|
+
exports.default = next_1.ConfigProvider.config(FloatButton);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InnerDrawer = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
function InnerDrawer() {
|
|
7
|
+
return react_1.default.createElement("div", null, "inner-drawer");
|
|
8
|
+
}
|
|
9
|
+
exports.InnerDrawer = InnerDrawer;
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.version = exports.Button = void 0;
|
|
7
|
+
var button_1 = require("./button");
|
|
8
|
+
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return __importDefault(button_1).default; } });
|
|
9
|
+
exports.version = '0.0.1';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assignSubComponent = void 0;
|
|
4
|
+
function assignSubComponent(Component, SubComponents) {
|
|
5
|
+
for (const key in SubComponents) {
|
|
6
|
+
if (Object.prototype.hasOwnProperty.call(SubComponents, key)) {
|
|
7
|
+
Component[key] = SubComponents[key];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return Component;
|
|
11
|
+
}
|
|
12
|
+
exports.assignSubComponent = assignSubComponent;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type AnyFunction } from './types';
|
|
2
|
+
export declare function debounce<Callback extends AnyFunction>(callback: Callback, delay: number, leading?: boolean): (...args: Parameters<Callback>) => void;
|
|
3
|
+
export declare function throttle<Callback extends AnyFunction>(callback: Callback, delay: number): (...args: Parameters<Callback>) => void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throttle = exports.debounce = void 0;
|
|
4
|
+
function debounce(callback, delay, leading = false) {
|
|
5
|
+
let timer;
|
|
6
|
+
let isFirstRun = true;
|
|
7
|
+
const fn = (...args) => {
|
|
8
|
+
if (isFirstRun && leading) {
|
|
9
|
+
isFirstRun = false;
|
|
10
|
+
timer = setTimeout(() => {
|
|
11
|
+
callback(...args);
|
|
12
|
+
});
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
isFirstRun = false;
|
|
16
|
+
clearTimeout(timer);
|
|
17
|
+
timer = setTimeout(() => {
|
|
18
|
+
callback(...args);
|
|
19
|
+
}, delay);
|
|
20
|
+
};
|
|
21
|
+
return fn;
|
|
22
|
+
}
|
|
23
|
+
exports.debounce = debounce;
|
|
24
|
+
function throttle(callback, delay) {
|
|
25
|
+
let lastTime;
|
|
26
|
+
const fn = (...args) => {
|
|
27
|
+
const time = Date.now();
|
|
28
|
+
if (!lastTime || time - lastTime > delay) {
|
|
29
|
+
Promise.resolve().then(() => callback(...args));
|
|
30
|
+
lastTime = time;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return fn;
|
|
34
|
+
}
|
|
35
|
+
exports.throttle = throttle;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface ControlableOptions {
|
|
2
|
+
valueName?: string;
|
|
3
|
+
defaultValueName?: string;
|
|
4
|
+
changeName?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function useControlable<Value = unknown, OnChange extends (nextValue: Value, ...rest: unknown[]) => unknown = (nextValue: Value, ...rest: unknown[]) => unknown>(props: Record<string, unknown>, { valueName, defaultValueName, changeName, }?: ControlableOptions): readonly [Value, OnChange];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useControlable = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function upperFirst(str) {
|
|
6
|
+
return `${str.slice(0, 1).toUpperCase()}${str.slice(1)}`;
|
|
7
|
+
}
|
|
8
|
+
function getDefaultValueName(valueName) {
|
|
9
|
+
return `default${upperFirst(valueName)}`;
|
|
10
|
+
}
|
|
11
|
+
function useControlable(props, { valueName = 'value', defaultValueName = getDefaultValueName(valueName), changeName = 'onChange', } = {}) {
|
|
12
|
+
const isControl = valueName in props;
|
|
13
|
+
const propValue = (isControl ? props[valueName] : props[defaultValueName]);
|
|
14
|
+
const propOnChange = props[changeName];
|
|
15
|
+
const [value, setValue] = (0, react_1.useState)(() => propValue);
|
|
16
|
+
const handleChange = (nextValue, ...rest) => {
|
|
17
|
+
if (!isControl) {
|
|
18
|
+
setValue(() => nextValue);
|
|
19
|
+
}
|
|
20
|
+
if (typeof propOnChange === 'function') {
|
|
21
|
+
propOnChange(nextValue, ...rest);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
(0, react_1.useEffect)(() => {
|
|
25
|
+
if (value !== propValue) {
|
|
26
|
+
setValue(() => propValue);
|
|
27
|
+
}
|
|
28
|
+
}, [propValue]);
|
|
29
|
+
return [value, handleChange];
|
|
30
|
+
}
|
|
31
|
+
exports.useControlable = useControlable;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDebounce = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const func_1 = require("../func");
|
|
6
|
+
function useDebounce(callback, delay = 0, leading = false) {
|
|
7
|
+
const callbackRef = (0, react_1.useRef)(callback);
|
|
8
|
+
callbackRef.current = callback;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
return (0, func_1.debounce)((...args) => callbackRef.current(...args), delay, leading);
|
|
11
|
+
}, [delay, leading]);
|
|
12
|
+
}
|
|
13
|
+
exports.useDebounce = useDebounce;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThrottle = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const func_1 = require("../func");
|
|
6
|
+
function useThrottle(callback, delay = 0) {
|
|
7
|
+
const callbackRef = (0, react_1.useRef)(callback);
|
|
8
|
+
callbackRef.current = callback;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
return (0, func_1.throttle)((...args) => callbackRef.current(...args), delay);
|
|
11
|
+
}, [delay]);
|
|
12
|
+
}
|
|
13
|
+
exports.useThrottle = useThrottle;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThrottle = exports.useDebounce = exports.useControlable = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./common"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./func"), exports);
|
|
8
|
+
var useControlable_1 = require("./hooks/useControlable");
|
|
9
|
+
Object.defineProperty(exports, "useControlable", { enumerable: true, get: function () { return useControlable_1.useControlable; } });
|
|
10
|
+
var useDebounce_1 = require("./hooks/useDebounce");
|
|
11
|
+
Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return useDebounce_1.useDebounce; } });
|
|
12
|
+
var useThrottle_1 = require("./hooks/useThrottle");
|
|
13
|
+
Object.defineProperty(exports, "useThrottle", { enumerable: true, get: function () { return useThrottle_1.useThrottle; } });
|
package/package.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@alifd/chat",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "A configurable component library for chat built on React.",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"module": "es/index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./es/index.js",
|
|
10
|
+
"require": "./lib/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./package.json": "./package.json",
|
|
13
|
+
"./button": {
|
|
14
|
+
"import": "./es/button/index.js",
|
|
15
|
+
"require": "./lib/button/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./float-button": {
|
|
18
|
+
"import": "./es/float-button/index.js",
|
|
19
|
+
"require": "./lib/float-button/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./utils": {
|
|
22
|
+
"import": "./es/utils/index.js",
|
|
23
|
+
"require": "./lib/utils/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"es",
|
|
28
|
+
"lib"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"start": "NODE_ENV=development tsx ./scripts/start.ts",
|
|
32
|
+
"build": "npm run build:es && npm run build:lib && npm run build:others",
|
|
33
|
+
"build:es": "rm -rf es && tsc -p ./tsconfig.build.json --outDir es --module esnext",
|
|
34
|
+
"build:lib": "rm -rf lib && tsc -p ./tsconfig.build.json --outDir lib --module commonjs",
|
|
35
|
+
"build:others": "tsx ./scripts/build.ts"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@alifd/eslint-config-next": "^2.0.0",
|
|
39
|
+
"@alifd/next": "^1.27.2",
|
|
40
|
+
"@microsoft/tsdoc": "^0.14.2",
|
|
41
|
+
"@microsoft/tsdoc-config": "^0.16.2",
|
|
42
|
+
"@rspack/core": "^0.5.1",
|
|
43
|
+
"@rspack/dev-server": "^0.5.1",
|
|
44
|
+
"@rspack/plugin-react-refresh": "^0.5.1",
|
|
45
|
+
"@swc/core": "^1.3.104",
|
|
46
|
+
"@types/fs-extra": "^11.0.4",
|
|
47
|
+
"@types/lodash": "^4.14.202",
|
|
48
|
+
"@types/minimist": "^1.2.5",
|
|
49
|
+
"@types/react": "^16.0.0",
|
|
50
|
+
"@types/react-dom": "^16.0.0",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
52
|
+
"@typescript-eslint/parser": "^6.19.0",
|
|
53
|
+
"chalk": "^5.3.0",
|
|
54
|
+
"eslint": "^8.56.0",
|
|
55
|
+
"eslint-config-prettier": "^9.1.0",
|
|
56
|
+
"eslint-plugin-cypress": "^2.15.1",
|
|
57
|
+
"eslint-plugin-import": "^2.29.1",
|
|
58
|
+
"eslint-plugin-jsx-a11y": "^6.8.0",
|
|
59
|
+
"eslint-plugin-markdown": "^3.0.1",
|
|
60
|
+
"eslint-plugin-react": "^7.33.2",
|
|
61
|
+
"eslint-plugin-tsdoc": "^0.2.17",
|
|
62
|
+
"fs-extra": "^11.2.0",
|
|
63
|
+
"glob": "^10.3.10",
|
|
64
|
+
"hastscript": "^9.0.0",
|
|
65
|
+
"json5": "^2.2.3",
|
|
66
|
+
"lodash": "^4.17.21",
|
|
67
|
+
"minimist": "^1.2.8",
|
|
68
|
+
"moment": "^2.30.1",
|
|
69
|
+
"prettier": "^3.2.4",
|
|
70
|
+
"react": "^16.14.0",
|
|
71
|
+
"react-dom": "^16.14.0",
|
|
72
|
+
"react-live": "^4.1.5",
|
|
73
|
+
"react-markdown": "^9.0.1",
|
|
74
|
+
"react-refresh": "^0.14.0",
|
|
75
|
+
"rehype-autolink-headings": "^7.1.0",
|
|
76
|
+
"rehype-slug": "^6.0.0",
|
|
77
|
+
"remark-gfm": "^4.0.0",
|
|
78
|
+
"sass": "^1.70.0",
|
|
79
|
+
"sass-loader": "^14.0.0",
|
|
80
|
+
"ts-morph": "^21.0.1",
|
|
81
|
+
"tsx": "^4.7.0",
|
|
82
|
+
"typescript": "^5.3.3"
|
|
83
|
+
},
|
|
84
|
+
"peerDependencies": {
|
|
85
|
+
"react": ">=16.0.0",
|
|
86
|
+
"react-dom": ">=16.0.0"
|
|
87
|
+
},
|
|
88
|
+
"dependencies": {
|
|
89
|
+
"tslib": "^2.6.2"
|
|
90
|
+
},
|
|
91
|
+
"sideEffects": [
|
|
92
|
+
"es/**/style.js",
|
|
93
|
+
"lib/**/style.js",
|
|
94
|
+
"*.scss",
|
|
95
|
+
"*.css"
|
|
96
|
+
],
|
|
97
|
+
"repository": "git@gitlab.alibaba-inc.com:fusion-chat/fusion-chat.git",
|
|
98
|
+
"license": "MIT",
|
|
99
|
+
"publishConfig": {
|
|
100
|
+
"access": "public",
|
|
101
|
+
"registry": "https://registry.npmjs.org"
|
|
102
|
+
}
|
|
103
|
+
}
|