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

9
node_modules/rc-resize-observer/LICENSE.md generated vendored Normal file
View File

@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) 2019-present afc163
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

58
node_modules/rc-resize-observer/README.md generated vendored Normal file
View File

@@ -0,0 +1,58 @@
# rc-resize-observer
[![NPM version][npm-image]][npm-url] [![dumi](https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square)](https://github.com/umijs/dumi) [![build status][github-actions-image]][github-actions-url] [![Codecov][codecov-image]][codecov-url] [![npm download][download-image]][download-url]
[npm-image]: http://img.shields.io/npm/v/rc-resize-observer.svg?style=flat-square
[npm-url]: http://npmjs.org/package/rc-resize-observer
[github-actions-image]: https://github.com/react-component/resize-observer/workflows/CI/badge.svg
[github-actions-url]: https://github.com/react-component/resize-observer/actions
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/resize-observer/master.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/react-component/resize-observer/branch/master
[download-image]: https://img.shields.io/npm/dm/rc-resize-observer.svg?style=flat-square
[download-url]: https://npmjs.org/package/rc-resize-observer
Resize observer for React.
## Live Demo
https://react-component.github.io/resize-observer/
## Install
[![rc-resize-observer](https://nodei.co/npm/rc-resize-observer.png)](https://npmjs.org/package/rc-resize-observer)
## Usage
```js
import ResizeObserver from 'rc-resize-observer';
import { render } from 'react-dom';
render(
<ResizeObserver
onResize={() => {
console.log('resized!');
}}
>
<textarea />
</ResizeObserver>,
mountNode,
);
```
## API
| Property | Type | Default | Description |
| -------- | --------------------------- | ------- | ------------------------------- |
| disabled | boolean | false | |
| onResize | ({ width, height }) => void | - | Trigger when child node resized |
## Development
```
npm install
npm start
```
## License
rc-resize-observer is released under the MIT license.

112
node_modules/rc-resize-observer/assets/index.css generated vendored Normal file
View File

@@ -0,0 +1,112 @@
.rc-footer {
position: relative;
clear: both;
color: rgba(255, 255, 255, 0.4);
font-size: 14px;
line-height: 1.5;
background-color: #000;
}
.rc-footer a {
transition: all 0.3s;
color: rgba(255, 255, 255, 0.9);
text-decoration: none;
}
.rc-footer a:hover {
color: #40a9ff;
}
.rc-footer-container {
width: 100%;
max-width: 1200px;
padding: 80px 0;
margin: auto;
}
.rc-footer-columns {
display: flex;
justify-content: space-around;
}
.rc-footer-column h2 {
position: relative;
margin: 0 auto 24px;
font-weight: 500;
font-size: 16px;
color: #fff;
}
.rc-footer-column-icon {
margin-right: 0.5em;
width: 22px;
display: inline-block;
vertical-align: middle;
top: -1px;
position: relative;
text-align: center;
}
.rc-footer-column-icon > span,
.rc-footer-column-icon > svg,
.rc-footer-column-icon img {
width: 100%;
display: block;
}
.rc-footer-item {
margin: 12px 0;
}
.rc-footer-item-icon {
margin-right: 0.4em;
width: 16px;
display: inline-block;
vertical-align: middle;
top: -1px;
position: relative;
text-align: center;
}
.rc-footer-item-icon > span,
.rc-footer-item-icon > svg,
.rc-footer-item-icon img {
width: 100%;
display: block;
}
.rc-footer-item-separator {
margin: 0 0.3em;
}
.rc-footer-bottom-container {
border-top: 1px solid rgba(255, 255, 255, 0.25);
width: 100%;
max-width: 1200px;
text-align: center;
margin: 0 auto;
padding: 16px 0;
line-height: 32px;
font-size: 16px;
}
.rc-footer-light {
background-color: transparent;
color: rgba(0, 0, 0, 0.85);
}
.rc-footer-light h2,
.rc-footer-light a {
color: rgba(0, 0, 0, 0.85);
}
.rc-footer-light .rc-footer-bottom-container {
border-top-color: #e8e8e8;
}
.rc-footer-light .rc-footer-item-separator,
.rc-footer-light .rc-footer-item-description {
color: rgba(0, 0, 0, 0.45);
}
@media only screen and (max-width: 767.99px) {
.rc-footer {
text-align: center;
}
.rc-footer-container {
padding: 40px 0;
}
.rc-footer-columns {
display: block;
}
.rc-footer-column {
display: block;
margin-bottom: 40px;
}
.rc-footer-column:last-child {
margin-bottom: 0;
}
}

139
node_modules/rc-resize-observer/assets/index.less generated vendored Normal file
View File

@@ -0,0 +1,139 @@
@footer-prefix-cls: rc-footer;
.@{footer-prefix-cls} {
position: relative;
clear: both;
color: rgba(255, 255, 255, .4);
font-size: 14px;
line-height: 1.5;
background-color: #000;
a {
transition: all .3s;
color: rgba(255, 255, 255, .9);
text-decoration: none;
&:hover {
color: #40a9ff;
}
}
&-container {
width: 100%;
max-width: 1200px;
padding: 80px 0;
margin: auto;
}
&-columns {
display: flex;
justify-content: space-around;
}
&-column {
h2 {
position: relative;
margin: 0 auto 24px;
font-weight: 500;
font-size: 16px;
color: #fff;
}
&-icon {
margin-right: .5em;
width: 22px;
display: inline-block;
vertical-align: middle;
top: -1px;
position: relative;
text-align: center;
> span,
> svg,
img {
width: 100%;
display: block;
}
}
}
&-item {
margin: 12px 0;
&-icon {
margin-right: .4em;
width: 16px;
display: inline-block;
vertical-align: middle;
top: -1px;
position: relative;
text-align: center;
> span,
> svg,
img {
width: 100%;
display: block;
}
}
&-separator {
margin: 0 .3em;
}
}
&-bottom {
&-container {
border-top: 1px solid rgba(255, 255, 255, .25);
width: 100%;
max-width: 1200px;
text-align: center;
margin: 0 auto;
padding: 16px 0;
line-height: 32px;
font-size: 16px;
}
}
&-light {
background-color: transparent;
color: rgba(0, 0, 0, .85);
h2,
a {
color: rgba(0, 0, 0, .85);
}
}
&-light &-bottom-container {
border-top-color: #e8e8e8;
}
&-light &-item-separator,
&-light &-item-description {
color: rgba(0, 0, 0, .45);
}
}
@media only screen and (max-width: 767.99px) {
.@{footer-prefix-cls} {
text-align: center;
&-container {
padding: 40px 0;
}
&-columns {
display: block;
}
&-column {
display: block;
margin-bottom: 40px;
&:last-child {
margin-bottom: 0;
}
}
}
}

19
node_modules/rc-resize-observer/es/Collection.d.ts generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import * as React from 'react';
import type { SizeInfo } from '.';
type onCollectionResize = (size: SizeInfo, element: HTMLElement, data: any) => void;
export declare const CollectionContext: React.Context<onCollectionResize>;
export interface ResizeInfo {
size: SizeInfo;
data: any;
element: HTMLElement;
}
export interface CollectionProps {
/** Trigger when some children ResizeObserver changed. Collect by frame render level */
onBatchResize?: (resizeInfo: ResizeInfo[]) => void;
children?: React.ReactNode;
}
/**
* Collect all the resize event from children ResizeObserver
*/
export declare function Collection({ children, onBatchResize }: CollectionProps): React.JSX.Element;
export {};

33
node_modules/rc-resize-observer/es/Collection.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
import * as React from 'react';
export var CollectionContext = /*#__PURE__*/React.createContext(null);
/**
* Collect all the resize event from children ResizeObserver
*/
export function Collection(_ref) {
var children = _ref.children,
onBatchResize = _ref.onBatchResize;
var resizeIdRef = React.useRef(0);
var resizeInfosRef = React.useRef([]);
var onCollectionResize = React.useContext(CollectionContext);
var onResize = React.useCallback(function (size, element, data) {
resizeIdRef.current += 1;
var currentId = resizeIdRef.current;
resizeInfosRef.current.push({
size: size,
element: element,
data: data
});
Promise.resolve().then(function () {
if (currentId === resizeIdRef.current) {
onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);
resizeInfosRef.current = [];
}
});
// Continue bubbling if parent exist
onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);
}, [onBatchResize, onCollectionResize]);
return /*#__PURE__*/React.createElement(CollectionContext.Provider, {
value: onResize
}, children);
}

View File

@@ -0,0 +1,10 @@
import * as React from 'react';
export interface DomWrapperProps {
children: React.ReactElement;
}
/**
* Fallback to findDOMNode if origin ref do not provide any dom element
*/
export default class DomWrapper extends React.Component<DomWrapperProps> {
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
}

View File

@@ -0,0 +1,24 @@
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 * as React from 'react';
/**
* Fallback to findDOMNode if origin ref do not provide any dom element
*/
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 { DomWrapper as default };

View File

@@ -0,0 +1,7 @@
import * as React from 'react';
import type { ResizeObserverProps } from '..';
export interface SingleObserverProps extends ResizeObserverProps {
children: React.ReactElement | ((ref: React.RefObject<Element>) => React.ReactElement);
}
declare const RefSingleObserver: React.ForwardRefExoticComponent<SingleObserverProps & React.RefAttributes<HTMLElement>>;
export default RefSingleObserver;

View File

@@ -0,0 +1,114 @@
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _typeof from "@babel/runtime/helpers/esm/typeof";
import findDOMNode from "rc-util/es/Dom/findDOMNode";
import { supportRef, useComposeRef, getNodeRef } from "rc-util/es/ref";
import * as React from 'react';
import { CollectionContext } from "../Collection";
import { observe, unobserve } from "../utils/observerUtil";
import DomWrapper from "./DomWrapper";
function SingleObserver(props, ref) {
var children = props.children,
disabled = props.disabled;
var elementRef = React.useRef(null);
var wrapperRef = React.useRef(null);
var onCollectionResize = React.useContext(CollectionContext);
// =========================== Children ===========================
var isRenderProps = typeof children === 'function';
var mergedChildren = isRenderProps ? children(elementRef) : children;
// ============================= Size =============================
var sizeRef = React.useRef({
width: -1,
height: -1,
offsetWidth: -1,
offsetHeight: -1
});
// ============================= Ref ==============================
var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);
var originRef = canRef ? getNodeRef(mergedChildren) : null;
var mergedRef = useComposeRef(originRef, elementRef);
var getDom = function getDom() {
var _elementRef$current;
return findDOMNode(elementRef.current) || (
// Support `nativeElement` format
elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);
};
React.useImperativeHandle(ref, function () {
return getDom();
});
// =========================== Observe ============================
var propsRef = React.useRef(props);
propsRef.current = props;
// Handler
var onInternalResize = React.useCallback(function (target) {
var _propsRef$current = propsRef.current,
onResize = _propsRef$current.onResize,
data = _propsRef$current.data;
var _target$getBoundingCl = target.getBoundingClientRect(),
width = _target$getBoundingCl.width,
height = _target$getBoundingCl.height;
var offsetWidth = target.offsetWidth,
offsetHeight = target.offsetHeight;
/**
* Resize observer trigger when content size changed.
* In most case we just care about element size,
* let's use `boundary` instead of `contentRect` here to avoid shaking.
*/
var fixedWidth = Math.floor(width);
var fixedHeight = Math.floor(height);
if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {
var size = {
width: fixedWidth,
height: fixedHeight,
offsetWidth: offsetWidth,
offsetHeight: offsetHeight
};
sizeRef.current = size;
// IE is strange, right?
var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {
offsetWidth: mergedOffsetWidth,
offsetHeight: mergedOffsetHeight
});
// Let collection know what happened
onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);
if (onResize) {
// defer the callback but not defer to next frame
Promise.resolve().then(function () {
onResize(sizeInfo, target);
});
}
}
}, []);
// Dynamic observe
React.useEffect(function () {
var currentElement = getDom();
if (currentElement && !disabled) {
observe(currentElement, onInternalResize);
}
return function () {
return unobserve(currentElement, onInternalResize);
};
}, [elementRef.current, disabled]);
// ============================ Render ============================
return /*#__PURE__*/React.createElement(DomWrapper, {
ref: wrapperRef
}, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {
ref: mergedRef
}) : mergedChildren);
}
var RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);
if (process.env.NODE_ENV !== 'production') {
RefSingleObserver.displayName = 'SingleObserver';
}
export default RefSingleObserver;

25
node_modules/rc-resize-observer/es/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,25 @@
import * as React from 'react';
import { Collection } from './Collection';
import { _rs } from './utils/observerUtil';
export {
/** @private Test only for mock trigger resize event */
_rs, };
export interface SizeInfo {
width: number;
height: number;
offsetWidth: number;
offsetHeight: number;
}
export type OnResize = (size: SizeInfo, element: HTMLElement) => void;
export interface ResizeObserverProps {
/** Pass to ResizeObserver.Collection with additional data */
data?: any;
children: React.ReactNode | ((ref: React.RefObject<any>) => React.ReactElement);
disabled?: boolean;
/** Trigger if element resized. Will always trigger when first time render. */
onResize?: OnResize;
}
declare const RefResizeObserver: React.ForwardRefExoticComponent<ResizeObserverProps & React.RefAttributes<any>> & {
Collection: typeof Collection;
};
export default RefResizeObserver;

34
node_modules/rc-resize-observer/es/index.js generated vendored Normal file
View File

@@ -0,0 +1,34 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import toArray from "rc-util/es/Children/toArray";
import { warning } from "rc-util/es/warning";
import SingleObserver from "./SingleObserver";
import { Collection } from "./Collection";
var INTERNAL_PREFIX_KEY = 'rc-observer-key';
import { _rs } from "./utils/observerUtil";
export { /** @private Test only for mock trigger resize event */
_rs };
function ResizeObserver(props, ref) {
var children = props.children;
var childNodes = typeof children === 'function' ? [children] : toArray(children);
if (process.env.NODE_ENV !== 'production') {
if (childNodes.length > 1) {
warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');
} else if (childNodes.length === 0) {
warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');
}
}
return childNodes.map(function (child, index) {
var key = (child === null || child === void 0 ? void 0 : child.key) || "".concat(INTERNAL_PREFIX_KEY, "-").concat(index);
return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {
key: key,
ref: index === 0 ? ref : undefined
}), child);
});
}
var RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);
if (process.env.NODE_ENV !== 'production') {
RefResizeObserver.displayName = 'ResizeObserver';
}
RefResizeObserver.Collection = Collection;
export default RefResizeObserver;

View File

@@ -0,0 +1,7 @@
export type ResizeListener = (element: Element) => void;
declare function onResize(entities: ResizeObserverEntry[]): void;
export declare const _el: Map<Element, Set<ResizeListener>>;
export declare const _rs: typeof onResize;
export declare function observe(element: Element, callback: ResizeListener): void;
export declare function unobserve(element: Element, callback: ResizeListener): void;
export {};

View File

@@ -0,0 +1,37 @@
import ResizeObserver from 'resize-observer-polyfill';
// =============================== Const ===============================
var elementListeners = new Map();
function onResize(entities) {
entities.forEach(function (entity) {
var _elementListeners$get;
var target = entity.target;
(_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {
return listener(target);
});
});
}
// Note: ResizeObserver polyfill not support option to measure border-box resize
var resizeObserver = new ResizeObserver(onResize);
// Dev env only
export var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line
export var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line
// ============================== Observe ==============================
export function observe(element, callback) {
if (!elementListeners.has(element)) {
elementListeners.set(element, new Set());
resizeObserver.observe(element);
}
elementListeners.get(element).add(callback);
}
export function unobserve(element, callback) {
if (elementListeners.has(element)) {
elementListeners.get(element).delete(callback);
if (!elementListeners.get(element).size) {
resizeObserver.unobserve(element);
elementListeners.delete(element);
}
}
}

19
node_modules/rc-resize-observer/lib/Collection.d.ts generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import * as React from 'react';
import type { SizeInfo } from '.';
type onCollectionResize = (size: SizeInfo, element: HTMLElement, data: any) => void;
export declare const CollectionContext: React.Context<onCollectionResize>;
export interface ResizeInfo {
size: SizeInfo;
data: any;
element: HTMLElement;
}
export interface CollectionProps {
/** Trigger when some children ResizeObserver changed. Collect by frame render level */
onBatchResize?: (resizeInfo: ResizeInfo[]) => void;
children?: React.ReactNode;
}
/**
* Collect all the resize event from children ResizeObserver
*/
export declare function Collection({ children, onBatchResize }: CollectionProps): React.JSX.Element;
export {};

41
node_modules/rc-resize-observer/lib/Collection.js generated vendored Normal file
View File

@@ -0,0 +1,41 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Collection = Collection;
exports.CollectionContext = void 0;
var React = _interopRequireWildcard(require("react"));
var CollectionContext = exports.CollectionContext = /*#__PURE__*/React.createContext(null);
/**
* Collect all the resize event from children ResizeObserver
*/
function Collection(_ref) {
var children = _ref.children,
onBatchResize = _ref.onBatchResize;
var resizeIdRef = React.useRef(0);
var resizeInfosRef = React.useRef([]);
var onCollectionResize = React.useContext(CollectionContext);
var onResize = React.useCallback(function (size, element, data) {
resizeIdRef.current += 1;
var currentId = resizeIdRef.current;
resizeInfosRef.current.push({
size: size,
element: element,
data: data
});
Promise.resolve().then(function () {
if (currentId === resizeIdRef.current) {
onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);
resizeInfosRef.current = [];
}
});
// Continue bubbling if parent exist
onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);
}, [onBatchResize, onCollectionResize]);
return /*#__PURE__*/React.createElement(CollectionContext.Provider, {
value: onResize
}, children);
}

View File

@@ -0,0 +1,10 @@
import * as React from 'react';
export interface DomWrapperProps {
children: React.ReactElement;
}
/**
* Fallback to findDOMNode if origin ref do not provide any dom element
*/
export default class DomWrapper extends React.Component<DomWrapperProps> {
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
}

View File

@@ -0,0 +1,31 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var React = _interopRequireWildcard(require("react"));
/**
* Fallback to findDOMNode if origin ref do not provide any dom element
*/
var DomWrapper = exports.default = /*#__PURE__*/function (_React$Component) {
(0, _inherits2.default)(DomWrapper, _React$Component);
var _super = (0, _createSuper2.default)(DomWrapper);
function DomWrapper() {
(0, _classCallCheck2.default)(this, DomWrapper);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(DomWrapper, [{
key: "render",
value: function render() {
return this.props.children;
}
}]);
return DomWrapper;
}(React.Component);

View File

@@ -0,0 +1,7 @@
import * as React from 'react';
import type { ResizeObserverProps } from '..';
export interface SingleObserverProps extends ResizeObserverProps {
children: React.ReactElement | ((ref: React.RefObject<Element>) => React.ReactElement);
}
declare const RefSingleObserver: React.ForwardRefExoticComponent<SingleObserverProps & React.RefAttributes<HTMLElement>>;
export default RefSingleObserver;

View File

@@ -0,0 +1,122 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _findDOMNode = _interopRequireDefault(require("rc-util/lib/Dom/findDOMNode"));
var _ref = require("rc-util/lib/ref");
var React = _interopRequireWildcard(require("react"));
var _Collection = require("../Collection");
var _observerUtil = require("../utils/observerUtil");
var _DomWrapper = _interopRequireDefault(require("./DomWrapper"));
function SingleObserver(props, ref) {
var children = props.children,
disabled = props.disabled;
var elementRef = React.useRef(null);
var wrapperRef = React.useRef(null);
var onCollectionResize = React.useContext(_Collection.CollectionContext);
// =========================== Children ===========================
var isRenderProps = typeof children === 'function';
var mergedChildren = isRenderProps ? children(elementRef) : children;
// ============================= Size =============================
var sizeRef = React.useRef({
width: -1,
height: -1,
offsetWidth: -1,
offsetHeight: -1
});
// ============================= Ref ==============================
var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && (0, _ref.supportRef)(mergedChildren);
var originRef = canRef ? (0, _ref.getNodeRef)(mergedChildren) : null;
var mergedRef = (0, _ref.useComposeRef)(originRef, elementRef);
var getDom = function getDom() {
var _elementRef$current;
return (0, _findDOMNode.default)(elementRef.current) || (
// Support `nativeElement` format
elementRef.current && (0, _typeof2.default)(elementRef.current) === 'object' ? (0, _findDOMNode.default)((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || (0, _findDOMNode.default)(wrapperRef.current);
};
React.useImperativeHandle(ref, function () {
return getDom();
});
// =========================== Observe ============================
var propsRef = React.useRef(props);
propsRef.current = props;
// Handler
var onInternalResize = React.useCallback(function (target) {
var _propsRef$current = propsRef.current,
onResize = _propsRef$current.onResize,
data = _propsRef$current.data;
var _target$getBoundingCl = target.getBoundingClientRect(),
width = _target$getBoundingCl.width,
height = _target$getBoundingCl.height;
var offsetWidth = target.offsetWidth,
offsetHeight = target.offsetHeight;
/**
* Resize observer trigger when content size changed.
* In most case we just care about element size,
* let's use `boundary` instead of `contentRect` here to avoid shaking.
*/
var fixedWidth = Math.floor(width);
var fixedHeight = Math.floor(height);
if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {
var size = {
width: fixedWidth,
height: fixedHeight,
offsetWidth: offsetWidth,
offsetHeight: offsetHeight
};
sizeRef.current = size;
// IE is strange, right?
var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
var sizeInfo = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, size), {}, {
offsetWidth: mergedOffsetWidth,
offsetHeight: mergedOffsetHeight
});
// Let collection know what happened
onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);
if (onResize) {
// defer the callback but not defer to next frame
Promise.resolve().then(function () {
onResize(sizeInfo, target);
});
}
}
}, []);
// Dynamic observe
React.useEffect(function () {
var currentElement = getDom();
if (currentElement && !disabled) {
(0, _observerUtil.observe)(currentElement, onInternalResize);
}
return function () {
return (0, _observerUtil.unobserve)(currentElement, onInternalResize);
};
}, [elementRef.current, disabled]);
// ============================ Render ============================
return /*#__PURE__*/React.createElement(_DomWrapper.default, {
ref: wrapperRef
}, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {
ref: mergedRef
}) : mergedChildren);
}
var RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);
if (process.env.NODE_ENV !== 'production') {
RefSingleObserver.displayName = 'SingleObserver';
}
var _default = exports.default = RefSingleObserver;

25
node_modules/rc-resize-observer/lib/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,25 @@
import * as React from 'react';
import { Collection } from './Collection';
import { _rs } from './utils/observerUtil';
export {
/** @private Test only for mock trigger resize event */
_rs, };
export interface SizeInfo {
width: number;
height: number;
offsetWidth: number;
offsetHeight: number;
}
export type OnResize = (size: SizeInfo, element: HTMLElement) => void;
export interface ResizeObserverProps {
/** Pass to ResizeObserver.Collection with additional data */
data?: any;
children: React.ReactNode | ((ref: React.RefObject<any>) => React.ReactElement);
disabled?: boolean;
/** Trigger if element resized. Will always trigger when first time render. */
onResize?: OnResize;
}
declare const RefResizeObserver: React.ForwardRefExoticComponent<ResizeObserverProps & React.RefAttributes<any>> & {
Collection: typeof Collection;
};
export default RefResizeObserver;

46
node_modules/rc-resize-observer/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,46 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "_rs", {
enumerable: true,
get: function get() {
return _observerUtil._rs;
}
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray"));
var _warning = require("rc-util/lib/warning");
var _SingleObserver = _interopRequireDefault(require("./SingleObserver"));
var _Collection = require("./Collection");
var _observerUtil = require("./utils/observerUtil");
var INTERNAL_PREFIX_KEY = 'rc-observer-key';
function ResizeObserver(props, ref) {
var children = props.children;
var childNodes = typeof children === 'function' ? [children] : (0, _toArray.default)(children);
if (process.env.NODE_ENV !== 'production') {
if (childNodes.length > 1) {
(0, _warning.warning)(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');
} else if (childNodes.length === 0) {
(0, _warning.warning)(false, '`children` of ResizeObserver is empty. Nothing is in observe.');
}
}
return childNodes.map(function (child, index) {
var key = (child === null || child === void 0 ? void 0 : child.key) || "".concat(INTERNAL_PREFIX_KEY, "-").concat(index);
return /*#__PURE__*/React.createElement(_SingleObserver.default, (0, _extends2.default)({}, props, {
key: key,
ref: index === 0 ? ref : undefined
}), child);
});
}
var RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);
if (process.env.NODE_ENV !== 'production') {
RefResizeObserver.displayName = 'ResizeObserver';
}
RefResizeObserver.Collection = _Collection.Collection;
var _default = exports.default = RefResizeObserver;

View File

@@ -0,0 +1,7 @@
export type ResizeListener = (element: Element) => void;
declare function onResize(entities: ResizeObserverEntry[]): void;
export declare const _el: Map<Element, Set<ResizeListener>>;
export declare const _rs: typeof onResize;
export declare function observe(element: Element, callback: ResizeListener): void;
export declare function unobserve(element: Element, callback: ResizeListener): void;
export {};

View File

@@ -0,0 +1,46 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports._rs = exports._el = void 0;
exports.observe = observe;
exports.unobserve = unobserve;
var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
// =============================== Const ===============================
var elementListeners = new Map();
function onResize(entities) {
entities.forEach(function (entity) {
var _elementListeners$get;
var target = entity.target;
(_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {
return listener(target);
});
});
}
// Note: ResizeObserver polyfill not support option to measure border-box resize
var resizeObserver = new _resizeObserverPolyfill.default(onResize);
// Dev env only
var _el = exports._el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line
var _rs = exports._rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line
// ============================== Observe ==============================
function observe(element, callback) {
if (!elementListeners.has(element)) {
elementListeners.set(element, new Set());
resizeObserver.observe(element);
}
elementListeners.get(element).add(callback);
}
function unobserve(element, callback) {
if (elementListeners.has(element)) {
elementListeners.get(element).delete(callback);
if (!elementListeners.get(element).size) {
resizeObserver.unobserve(element);
elementListeners.delete(element);
}
}
}

85
node_modules/rc-resize-observer/package.json generated vendored Normal file
View File

@@ -0,0 +1,85 @@
{
"name": "rc-resize-observer",
"version": "1.4.3",
"description": "Resize observer for React",
"keywords": [
"react",
"react-component",
"react-resize-observer",
"resize-observer"
],
"main": "./lib/index",
"module": "./es/index",
"files": [
"assets/*.css",
"assets/*.less",
"es",
"lib"
],
"homepage": "https://react-component.github.io/resize-observer",
"repository": {
"type": "git",
"url": "git@github.com:react-component/resize-observer.git"
},
"bugs": {
"url": "http://github.com/react-component/resize-observer/issues"
},
"license": "MIT",
"scripts": {
"start": "dumi dev",
"build": "dumi build",
"compile": "father build && lessc assets/index.less assets/index.css",
"deploy": "UMI_ENV=gh npm run build && gh-pages -d dist",
"gh-pages": "npm run deploy",
"prepare": "dumi setup",
"prepublishOnly": "npm run compile && np --no-cleanup --yolo --no-publish",
"postpublish": "npm run gh-pages",
"lint": "eslint src/ --ext .ts,.tsx,.jsx,.js,.md",
"prettier": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
"test": "rc-test",
"coverage": "rc-test --coverage",
"now-build": "npm run build"
},
"dependencies": {
"@babel/runtime": "^7.20.7",
"classnames": "^2.2.1",
"rc-util": "^5.44.1",
"resize-observer-polyfill": "^1.5.1"
},
"devDependencies": {
"@rc-component/father-plugin": "^1.0.0",
"@testing-library/react": "^12.1.5",
"@types/jest": "^29.5.10",
"@types/react-dom": "^18.0.11",
"@types/react": "^18.0.28",
"@umijs/fabric": "^2.0.9",
"coveralls": "^3.0.6",
"cross-env": "^7.0.2",
"dumi": "^2.0.0",
"enzyme": "^3.0.0",
"enzyme-adapter-react-16": "^1.15.6",
"enzyme-to-json": "^3.4.0",
"father": "^4.0.0",
"gh-pages": "^6.1.0",
"glob": "^7.1.6",
"less": "^4.1.3",
"np": "^9.0.0",
"prettier": "^3.2.5",
"pretty-quick": "^4.0.0",
"rc-test": "^7.0.15",
"react": "^16.0.0",
"react-dom": "^16.0.0",
"cheerio": "1.0.0-rc.12",
"regenerator-runtime": "^0.14.0"
},
"peerDependencies": {
"react": ">=16.9.0",
"react-dom": ">=16.9.0"
},
"cnpm": {
"mode": "npm"
},
"tnpm": {
"mode": "npm"
}
}