add all frontend files

This commit is contained in:
2026-01-17 15:16:36 -05:00
parent ff16ae7858
commit e40287e4aa
25704 changed files with 1935289 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
import React from 'react';
import type { MutationObserverProps } from './interface';
declare const MutateObserver: React.FC<MutationObserverProps>;
export default MutateObserver;

View File

@@ -0,0 +1,44 @@
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import React from 'react';
import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
import { supportRef, useComposeRef } from "rc-util/es/ref";
import findDOMNode from "rc-util/es/Dom/findDOMNode";
import useEvent from "rc-util/es/hooks/useEvent";
import DomWrapper from "./wrapper";
import useMutateObserver from "./useMutateObserver";
var MutateObserver = function MutateObserver(props) {
var children = props.children,
options = props.options,
_props$onMutate = props.onMutate,
onMutate = _props$onMutate === void 0 ? function () {} : _props$onMutate;
var callback = useEvent(onMutate);
var wrapperRef = React.useRef(null);
var elementRef = React.useRef(null);
var canRef = /*#__PURE__*/React.isValidElement(children) && supportRef(children);
var mergedRef = useComposeRef(elementRef, canRef ? children.ref : null);
var _React$useState = React.useState(null),
_React$useState2 = _slicedToArray(_React$useState, 2),
target = _React$useState2[0],
setTarget = _React$useState2[1];
useMutateObserver(target, callback, options);
// =========================== Effect ===========================
// Bind target
useLayoutEffect(function () {
setTarget(findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current));
});
// =========================== Render ===========================
if (!children) {
if (process.env.NODE_ENV !== 'production') {
console.error('MutationObserver need children props');
}
return null;
}
return /*#__PURE__*/React.createElement(DomWrapper, {
ref: wrapperRef
}, canRef ? /*#__PURE__*/React.cloneElement(children, {
ref: mergedRef
}) : children);
};
export default MutateObserver;

View File

@@ -0,0 +1,4 @@
import MutateObserver from './MutateObserver';
import useMutateObserver from './useMutateObserver';
export { useMutateObserver };
export default MutateObserver;

View File

@@ -0,0 +1,4 @@
import MutateObserver from "./MutateObserver";
import useMutateObserver from "./useMutateObserver";
export { useMutateObserver };
export default MutateObserver;

View File

@@ -0,0 +1,6 @@
/// <reference types="react" />
export interface MutationObserverProps {
children: React.ReactNode;
options?: MutationObserverInit;
onMutate?: (mutations: MutationRecord[], observer: MutationObserver) => void;
}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1 @@
export default function useMutateObserver(nodeOrList: HTMLElement | HTMLElement[], callback: MutationCallback, options?: MutationObserverInit): void;

View File

@@ -0,0 +1,28 @@
import canUseDom from "rc-util/es/Dom/canUseDom";
import * as React from 'react';
var defaultOptions = {
subtree: true,
childList: true,
attributeFilter: ['style', 'class']
};
export default function useMutateObserver(nodeOrList, callback) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOptions;
React.useEffect(function () {
if (!canUseDom() || !nodeOrList) {
return;
}
var instance;
var nodeList = Array.isArray(nodeOrList) ? nodeOrList : [nodeOrList];
if ('MutationObserver' in window) {
instance = new MutationObserver(callback);
nodeList.forEach(function (element) {
instance.observe(element, options);
});
}
return function () {
var _instance, _instance2;
(_instance = instance) === null || _instance === void 0 ? void 0 : _instance.takeRecords();
(_instance2 = instance) === null || _instance2 === void 0 ? void 0 : _instance2.disconnect();
};
}, [options, nodeOrList]);
}

View File

@@ -0,0 +1,8 @@
import React from 'react';
interface DomWrapperProps {
children: React.ReactNode;
}
declare class DomWrapper extends React.Component<DomWrapperProps> {
render(): React.ReactNode;
}
export default DomWrapper;

View File

@@ -0,0 +1,21 @@
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
import _createClass from "@babel/runtime/helpers/esm/createClass";
import _inherits from "@babel/runtime/helpers/esm/inherits";
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
import React from 'react';
var DomWrapper = /*#__PURE__*/function (_React$Component) {
_inherits(DomWrapper, _React$Component);
var _super = _createSuper(DomWrapper);
function DomWrapper() {
_classCallCheck(this, DomWrapper);
return _super.apply(this, arguments);
}
_createClass(DomWrapper, [{
key: "render",
value: function render() {
return this.props.children;
}
}]);
return DomWrapper;
}(React.Component);
export default DomWrapper;