diff --git a/.dumi/global.less b/.dumi/global.less index 1cf30d9..778625e 100644 --- a/.dumi/global.less +++ b/.dumi/global.less @@ -1,13 +1,32 @@ #root .dumi-default-doc-layout .dumi-default-features-item { text-align: center; } +/* stylelint-disable-next-line rule-empty-line-before */ #root .dumi-default-doc-layout > main { max-width: none; } +#root .dumi-default-header { + box-shadow: 2px 1px 16px #dfdfdf; +} + #root .dumi-default-sidebar { + width: 188px; overflow-y: hidden; + /* stylelint-disable-next-line rule-empty-line-before */ &:hover { overflow-y: auto; } + /* stylelint-disable-next-line rule-empty-line-before */ + dd a { + font-size: 14px; + } +} + +#root .dumi-default-navbar li { + font-size: 14px; +} + +#root .dumi-default-footer { + display: none; } diff --git a/.fatherrc.ts b/.fatherrc.ts index 0d34c87..0e503e9 100644 --- a/.fatherrc.ts +++ b/.fatherrc.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'father'; export default defineConfig({ // more father config: https://github.com/umijs/father/blob/master/docs/config.md - esm: { output: 'dist' }, extraBabelPlugins: [ [ 'import', diff --git a/.vscode/settings.json b/.vscode/settings.json index 71d614a..0e3adf1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,13 +2,16 @@ "cSpell.words": [ "ahooks", "antd", + "commitlint", "COMPATER", "constract", + "dumi", "favicons", "flvjs", "indicatorsize", "lambo", "remuxer", + "stylelint", "transmuxer", "zhst" ] diff --git a/package.json b/package.json index 2045c50..738ca88 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dist" ], "scripts": { - "add": "pnpm run build && pnpm changeset add", + "add": "pnpm changeset add", "build": "pnpm --filter=@zhst/* run build", "build:watch": "father dev", "dev": "dumi dev", diff --git a/packages/biz/CHANGELOG.md b/packages/biz/CHANGELOG.md index 2e77d30..1c38a91 100644 --- a/packages/biz/CHANGELOG.md +++ b/packages/biz/CHANGELOG.md @@ -1,5 +1,14 @@ # @zhst/biz +## 0.5.1 + +### Patch Changes + +- Updated dependencies + - @zhst/hooks@0.6.0 + - @zhst/func@0.6.0 + - @zhst/meta@0.7.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/biz/package.json b/packages/biz/package.json index 558775d..41a32a0 100644 --- a/packages/biz/package.json +++ b/packages/biz/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/biz", - "version": "0.5.0", + "version": "0.5.1", "description": "业务库", "keywords": [ "business", diff --git a/packages/constants/CHANGELOG.md b/packages/constants/CHANGELOG.md index 695c6be..7ee2ac3 100644 --- a/packages/constants/CHANGELOG.md +++ b/packages/constants/CHANGELOG.md @@ -1,5 +1,11 @@ # @zhst/biz +## 0.6.0 + +### Minor Changes + +- feat: 变更 + ## 0.5.0 ### Minor Changes diff --git a/packages/constants/README.md b/packages/constants/README.md index 0ca9437..0bed926 100644 --- a/packages/constants/README.md +++ b/packages/constants/README.md @@ -1,6 +1,12 @@ +# @zhst/constants + +:::info{title=开发中} +稍等... +::: + ## 介绍 -业务库 +静态变量库 ## 安装 @@ -11,5 +17,4 @@ ```js import React from 'react'; import { TYPE } from '@zhst/constants' - ``` diff --git a/packages/constants/package.json b/packages/constants/package.json index cf8ddd3..5563c81 100644 --- a/packages/constants/package.json +++ b/packages/constants/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/constants", - "version": "0.5.0", + "version": "0.6.0", "description": "常量库", "keywords": [ "constants", diff --git a/packages/func/CHANGELOG.md b/packages/func/CHANGELOG.md index 1010608..e81830b 100644 --- a/packages/func/CHANGELOG.md +++ b/packages/func/CHANGELOG.md @@ -1,5 +1,16 @@ # @zhst/utils +## 0.6.0 + +### Minor Changes + +- feat: 变更 + +### Patch Changes + +- Updated dependencies + - @zhst/request@0.6.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/func/es/file/index.js b/packages/func/es/file/index.js index 1fd9c37..27580b7 100644 --- a/packages/func/es/file/index.js +++ b/packages/func/es/file/index.js @@ -325,7 +325,6 @@ export var generateImg = function generateImg(_imgKey) { if (/(http|https):\/\/([\w.]+\/?)\S*/ig.test(imgKey)) { return imgKey; } - console.log('imgKey', imgKey); try { if (matchS3Prefix(imgKey)) { imgKey = base64DecodeImageKey(imgKey); diff --git a/packages/func/es/index.js b/packages/func/es/index.js index 598dbef..ad5568d 100644 --- a/packages/func/es/index.js +++ b/packages/func/es/index.js @@ -7,4 +7,7 @@ export * from "./number"; export * from "./time"; export * from "./utils"; export * from "./camera"; -export * from "./math"; \ No newline at end of file +export * from "./math"; +export var a = function a(data) { + console.log('data', data); +}; \ No newline at end of file diff --git a/packages/func/es/math/index.js b/packages/func/es/math/index.js index 341dddb..d9d6d04 100644 --- a/packages/func/es/math/index.js +++ b/packages/func/es/math/index.js @@ -1,3 +1,4 @@ +var _ALGORITHM_VERSION; 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); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -8,8 +9,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } import { cloneDeep, get, isNull } from 'lodash-es'; import { dataURLToBlob } from "../file"; var proto = { @@ -21,7 +22,7 @@ var proto = { } } }; -export var ALGORITHM_VERSION = _defineProperty(_defineProperty(_defineProperty({}, '7', '形体'), '4', '人脸'), '6', '非机动车'); +export var ALGORITHM_VERSION = (_ALGORITHM_VERSION = {}, _defineProperty(_ALGORITHM_VERSION, '7', '形体'), _defineProperty(_ALGORITHM_VERSION, '4', '人脸'), _defineProperty(_ALGORITHM_VERSION, '6', '非机动车'), _ALGORITHM_VERSION); export var algorithmVersions = _toConsumableArray(Object.keys(ALGORITHM_VERSION)); export var getBikeExtendRect = function getBikeExtendRect(rect, maxW) { var newRect = _objectSpread({}, rect); diff --git a/packages/func/package.json b/packages/func/package.json index 5dd9058..1243917 100644 --- a/packages/func/package.json +++ b/packages/func/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/func", - "version": "0.5.0", + "version": "0.6.0", "description": "函数合集", "keywords": [ "hooks" diff --git a/packages/func/src/file/index.ts b/packages/func/src/file/index.ts index e302dbd..b208754 100644 --- a/packages/func/src/file/index.ts +++ b/packages/func/src/file/index.ts @@ -281,8 +281,6 @@ export const generateImg: (imgKey: string, host?: string) => string = (_imgKey, return imgKey; } - console.log('imgKey', imgKey) - try { if (matchS3Prefix(imgKey)) { imgKey = base64DecodeImageKey(imgKey); diff --git a/packages/func/src/index.ts b/packages/func/src/index.ts index c2828fc..06fcc02 100644 --- a/packages/func/src/index.ts +++ b/packages/func/src/index.ts @@ -8,3 +8,7 @@ export * from './time' export * from './utils' export * from './camera' export * from './math' + +export const a = (data: string) => { + console.log('data', data) +} diff --git a/packages/hooks/CHANGELOG.md b/packages/hooks/CHANGELOG.md index 21689ce..73733ea 100644 --- a/packages/hooks/CHANGELOG.md +++ b/packages/hooks/CHANGELOG.md @@ -1,5 +1,16 @@ # @zhst/hooks +## 0.6.0 + +### Minor Changes + +- feat: 变更 + +### Patch Changes + +- Updated dependencies + - @zhst/func@0.6.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/hooks/es/useActivateWrapper/index.d.ts b/packages/hooks/es/useActivateWrapper/index.d.ts deleted file mode 100644 index 8c35f0c..0000000 --- a/packages/hooks/es/useActivateWrapper/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare const useUnActivateWrapper: (cb: () => void) => void; -export declare const useActivateWrapper: (cb: any) => null; -export declare const useActivateState: () => boolean; -export default useActivateWrapper; diff --git a/packages/hooks/es/useActivateWrapper/index.js b/packages/hooks/es/useActivateWrapper/index.js index 3355ddf..8083d39 100644 --- a/packages/hooks/es/useActivateWrapper/index.js +++ b/packages/hooks/es/useActivateWrapper/index.js @@ -6,6 +6,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useState, useRef, useCallback } from 'react'; import { useActivate, useUnactivate } from 'react-activation'; +// @ts-ignore import { noop, isFunction } from '@zhst/func'; import { useLatest, useMount, useUnmount } from 'ahooks'; export var useUnActivateWrapper = function useUnActivateWrapper(cb) { diff --git a/packages/hooks/es/useSocket/index.d.ts b/packages/hooks/es/useSocket/index.d.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/hooks/lib/useActivateWrapper/index.d.ts b/packages/hooks/lib/useActivateWrapper/index.d.ts deleted file mode 100644 index 8c35f0c..0000000 --- a/packages/hooks/lib/useActivateWrapper/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare const useUnActivateWrapper: (cb: () => void) => void; -export declare const useActivateWrapper: (cb: any) => null; -export declare const useActivateState: () => boolean; -export default useActivateWrapper; diff --git a/packages/hooks/lib/useSocket/index.d.ts b/packages/hooks/lib/useSocket/index.d.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 3e18d13..106da42 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/hooks", - "version": "0.5.0", + "version": "0.6.0", "description": "hooks合集", "keywords": [ "hooks" diff --git a/packages/hooks/src/useActivateWrapper/index.tsx b/packages/hooks/src/useActivateWrapper/index.tsx index 4e359dc..7a96482 100644 --- a/packages/hooks/src/useActivateWrapper/index.tsx +++ b/packages/hooks/src/useActivateWrapper/index.tsx @@ -1,5 +1,6 @@ import { useState, useRef, useCallback } from 'react'; import { useActivate, useUnactivate } from 'react-activation'; +// @ts-ignore import { noop, isFunction } from '@zhst/func'; import { useLatest, useMount, useUnmount } from 'ahooks'; diff --git a/packages/material/CHANGELOG.md b/packages/material/CHANGELOG.md index 9ffc253..07153e6 100644 --- a/packages/material/CHANGELOG.md +++ b/packages/material/CHANGELOG.md @@ -1,5 +1,15 @@ # @zhst/biz +## 0.5.1 + +### Patch Changes + +- Updated dependencies + - @zhst/hooks@0.6.0 + - @zhst/func@0.6.0 + - @zhst/meta@0.7.0 + - @zhst/biz@0.5.1 + ## 0.5.0 ### Minor Changes diff --git a/packages/material/package.json b/packages/material/package.json index 0b8ceef..3cc40c5 100644 --- a/packages/material/package.json +++ b/packages/material/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/material", - "version": "0.5.0", + "version": "0.5.1", "description": "物料库", "keywords": [ "business", diff --git a/packages/meta/CHANGELOG.md b/packages/meta/CHANGELOG.md index deb8775..6c56910 100644 --- a/packages/meta/CHANGELOG.md +++ b/packages/meta/CHANGELOG.md @@ -1,5 +1,18 @@ # @zhst/utils +## 0.7.0 + +### Minor Changes + +- feat: 变更 + +### Patch Changes + +- Updated dependencies + - @zhst/hooks@0.6.0 + - @zhst/func@0.6.0 + - @zhst/meta@0.7.0 + ## 0.6.0 ### Minor Changes diff --git a/packages/meta/README.md b/packages/meta/README.md index 1c66331..7af4991 100644 --- a/packages/meta/README.md +++ b/packages/meta/README.md @@ -10,12 +10,11 @@ ```jsx import React from 'react'; -import { Button } from 'antd' -import { doubleClick } from '@zhst/meta' +import { Button } from '@zhst/meta' export default () => { return ( - + ) } ``` diff --git a/packages/meta/es/BigImagePreview/BigImagePreview.js b/packages/meta/es/BigImagePreview/BigImagePreview.js index 33a82f0..c1316cf 100644 --- a/packages/meta/es/BigImagePreview/BigImagePreview.js +++ b/packages/meta/es/BigImagePreview/BigImagePreview.js @@ -24,9 +24,11 @@ getExtendRect, // @ts-ignore getTransformRect, // @ts-ignore -getRotateImg, getTransforms, addEventListenerWrapper, getFileByRect } from '@zhst/func'; +getRotateImg, getTransforms, addEventListenerWrapper, getFileByRect +// @ts-ignore +} from '@zhst/func'; import Align from 'rc-align'; -import { Button, Empty } from 'antd'; +import { Button, Empty } from '..'; import Icon from "../iconfont"; import { Cropper, Viewer, EVENT_VIEWER_TRANSFORM_CHANGE, EVENT_VIEWER_READY, EVENT_CROP_START, EVENT_CROP_END } from "../ImageEditor"; import BtnGroup from "./components/BtnGroup"; diff --git a/packages/meta/es/CompareImage/CompareImage.js b/packages/meta/es/CompareImage/CompareImage.js index 1007042..c750224 100644 --- a/packages/meta/es/CompareImage/CompareImage.js +++ b/packages/meta/es/CompareImage/CompareImage.js @@ -5,6 +5,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import React, { useRef, useState, useEffect, forwardRef, useImperativeHandle } from 'react'; +// @ts-ignore import { generateImg, get, addEventListenerWrapper } from '@zhst/func'; import { useUpdateEffect } from '@zhst/hooks'; import Button from "../button"; diff --git a/packages/meta/es/VideoPlayer/VideoPlayer.js b/packages/meta/es/VideoPlayer/VideoPlayer.js index 2bd4e41..8bea43e 100644 --- a/packages/meta/es/VideoPlayer/VideoPlayer.js +++ b/packages/meta/es/VideoPlayer/VideoPlayer.js @@ -14,12 +14,14 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'; -import { noop, get, addEventListenerWrapper, dataURLToBlob, nextTick, toRealNumber, getTransforms, formatDurationTime } from '@zhst/func'; +import { noop, get, addEventListenerWrapper, dataURLToBlob, nextTick, toRealNumber, getTransforms, formatDurationTime +// @ts-ignore +} from '@zhst/func'; import Align from 'rc-align'; import { useLatest, useUpdateEffect, useFullscreen, useUnmount } from '@zhst/hooks'; import classNames from 'classnames'; import download from 'downloadjs'; -import { Button, message } from 'antd'; +import { Button, message } from '..'; import Icon from "../iconfont"; import { Cropper, EVENT_CROP_START, EVENT_CROP_END } from "../ImageEditor"; import FlvPlayer, { FLV_EVENT } from "./components/FlvPlayer"; diff --git a/packages/meta/es/VideoPlayer/components/FlvPlayer/index.js b/packages/meta/es/VideoPlayer/components/FlvPlayer/index.js index b52198d..a0fa271 100644 --- a/packages/meta/es/VideoPlayer/components/FlvPlayer/index.js +++ b/packages/meta/es/VideoPlayer/components/FlvPlayer/index.js @@ -19,6 +19,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import React, { Component } from 'react'; import flvjs from 'flv.js'; +// @ts-ignore import { isEqual } from '@zhst/func'; export var FLV_EVENT = flvjs.Events; var VideoPlayer = /*#__PURE__*/function (_Component) { diff --git a/packages/meta/es/index.js b/packages/meta/es/index.js index 942b61b..0896856 100644 --- a/packages/meta/es/index.js +++ b/packages/meta/es/index.js @@ -4,14 +4,16 @@ export { default as BigImagePreview } from "./BigImagePreview"; export { default as VideoPlayer } from "./VideoPlayer"; export { default as Tabs } from "./tabs"; export { default as Button } from "./button"; +export { default as message } from "./message"; export { default as Space } from "./space"; +export { default as Slider } from "./slider"; export { default as Switch } from "./switch"; export { default as Grid } from "./grid"; export { default as Row } from "./row"; export { default as Col } from "./col"; export { default as TimePicker } from "./time-picker"; export { default as DatePicker } from "./date-picker"; -export { default as Calender } from "./calendar"; +export { default as Calendar } from "./calendar"; export { default as Empty } from "./empty"; export { default as Form } from "./form"; export { default as Select } from "./select"; @@ -29,4 +31,14 @@ export { default as Divider } from "./divider"; export { default as Descriptions } from "./descriptions"; export { default as Flex } from "./flex"; export { default as Score } from "./score"; -export { default as Progress } from "./progress"; \ No newline at end of file +export { default as Progress } from "./progress"; +export { default as theme } from "./theme"; +export { default as Badge } from "./badge"; +export { default as Alert } from "./alert"; +export { default as Popover } from "./popover"; +export { default as Avatar } from "./avatar"; +export { default as Card } from "./card"; +export { default as Skeleton } from "./skeleton"; +export { default as Tooltip } from "./tooltip"; +export { default as Tour } from "./tour"; +export { default as Segmented } from "./segmented"; \ No newline at end of file diff --git a/packages/meta/package.json b/packages/meta/package.json index 9c4e6c4..3d3dfea 100644 --- a/packages/meta/package.json +++ b/packages/meta/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/meta", - "version": "0.6.0", + "version": "0.7.0", "description": "原子组件", "keywords": [ "meta", @@ -81,6 +81,7 @@ "@ant-design/icons": "^5.2.6", "@ctrl/tinycolor": "^4.0.2", "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/tour": "^1.12.3", "@rc-component/trigger": "^1.18.2", "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/turf": "^6.5.0", @@ -96,6 +97,7 @@ "dayjs": "^1.11.10", "downloadjs": "^1.4.7", "flv.js": "^1.6.2", + "lunar-typescript": "^1.7.3", "rc-align": "^4.0.15", "rc-cascader": "~3.20.0", "rc-checkbox": "~3.1.0", diff --git a/packages/meta/src/BigImagePreview/BigImagePreview.tsx b/packages/meta/src/BigImagePreview/BigImagePreview.tsx index 6957d48..78e9752 100644 --- a/packages/meta/src/BigImagePreview/BigImagePreview.tsx +++ b/packages/meta/src/BigImagePreview/BigImagePreview.tsx @@ -18,9 +18,10 @@ import { getTransforms, addEventListenerWrapper, getFileByRect +// @ts-ignore } from '@zhst/func'; import Align from 'rc-align'; -import { Button, Empty } from 'antd'; +import { Button, Empty } from '..'; import { type Rect, type IScreenshotButtonProp, type AlignType, type IOdRectOrigin } from '@zhst/types' import Icon from '../iconfont'; import { diff --git a/packages/meta/src/BigImagePreview/demo/base.tsx b/packages/meta/src/BigImagePreview/demo/base.tsx new file mode 100644 index 0000000..a1e9197 --- /dev/null +++ b/packages/meta/src/BigImagePreview/demo/base.tsx @@ -0,0 +1,68 @@ + +import React, { useRef } from 'react'; +import { Button, Space } from 'antd' +import { BigImagePreview } from '@zhst/meta' + + +const props = { + heigth: '500px', + data: { + imageKey: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', + odRect:{ + "x":0.553125,"y":0.29722223,"w":0.048958335,"h":0.2462963 + }, + attachImg: [ + { + "url": "https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png","label": "形体" + },{ + "url": "https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png", + "label": "人脸" + } + ], + score: 0.815207, // 人脸质量分 + showScore: true, // 人脸质量分 + cameraPosition: 'string', // 摄像头位置 + time: '2022-01-01', // 摄像头拍摄时间 + objects: [ + { + "infoOnSource": { + "bboxInFrame": { + "bboxRatio": { + "x": 0.5519352, + "y": 0.2965385, + "w": 0.05185461, + "h": 0.24698898 + }, + }, + }, + }, + { + "infoOnSource": { + "bboxInFrame": { + "bboxRatio": { + "x": 0.58543766, + "y": 0.3203356, + "w": 0.052037954, + "h": 0.2664015 + }, + }, + }, + }, + ] + } +} + +export default () => { + const imgRef = useRef(null) + + return ( + + + + + + + + + ) +} diff --git a/packages/meta/src/BigImagePreview/index.md b/packages/meta/src/BigImagePreview/index.md index d7c1e1d..84dd881 100644 --- a/packages/meta/src/BigImagePreview/index.md +++ b/packages/meta/src/BigImagePreview/index.md @@ -1,5 +1,5 @@ --- -group: 通用 +group: 媒体 category: Components subtitle: 大图预览组件 title: BigImagePreview 大图预览组件 @@ -7,180 +7,7 @@ title: BigImagePreview 大图预览组件 # BigImagePreview 大图预览组件 -```jsx -import React, { useState, useRef } from 'react'; -import { Button, Space } from 'antd' -import { BigImagePreview } from '@zhst/meta' - - -const props = { - heigth: '500px', - dataSource: [ - { - imageKey: 'http://10.0.0.120:30003/file/singer-20240110/1/5/1744894622934503424.jpg', - odRect:{ - "x":0.5445312, - "y":0.19166666, - "w":0.08671875, - "h":0.40138888 - }, - attachImg: [ - { - "url": "http://10.0.0.120:30003/file/singer-20240110/1/5/1744894622695428096.jpg","label": "形体" - },{ - "url": "http://10.0.0.120:30003/file/singer-20240110/1/5/1744894588427964418.jpg", - "label": "人脸" - } - ], - score: '0.6', // 人脸质量分 - showScore: true, // 人脸质量分 - cameraPosition: 'string', // 摄像头位置 - time: '2022-01-01', // 摄像头拍摄时间 - objects: [ - { - "objectIndex": { - "objectId": "1746832189053474816", - "solutionId": "0", - "deviceId": "0", - "fragmentId": "0" - }, - "objectType": "OBJECT_TYPE_PEDESTRAIN", - "sourceObjectId": "0", - "level": 0, - "confidence": 0.881164, - "frameInfo": { - "frameId": "0", - "frameTimestamp": "1705312223057", - "width": 0, - "height": 0, - "originWidth": 0, - "originHeight": 0, - "offsetTime": "0", - "skipNumber": "0" - }, - "infoOnSource": { - "bboxInFrame": { - "bboxRatio": { - "x": 0.61418945, - "y": 0.34309354, - "w": 0.067661405, - "h": 0.34659258 - }, - }, - "countInSource": 0, - "indexInSource": 0 - }, - "qualityScore": 0, - } - ] - }, - { - imageKey: 'http://10.0.0.120:30003/file/singer-20240115/1/9/1746795581994436608.jpg', - odRect:{ - "x":0.553125,"y":0.29722223,"w":0.048958335,"h":0.2462963 - }, - attachImg: [ - { - "url": "http://10.0.0.120:30003/file/singer-20240115/1/9/1746795581163964416.jpg","label": "形体" - },{ - "url": "http://10.0.0.120:30003/file/singer-20240115/1/9/1746795546867140608.jpg", - "label": "人脸" - } - ], - score: 0.815207, // 人脸质量分 - showScore: true, // 人脸质量分 - cameraPosition: 'string', // 摄像头位置 - time: '2022-01-01', // 摄像头拍摄时间 - objects: [ - { - "objectIndex": { - "objectId": "1746816737430472704", - "solutionId": "0", - "deviceId": "0", - "fragmentId": "0" - }, - "objectType": "OBJECT_TYPE_PEDESTRAIN", - "sourceObjectId": "0", - "frameInfo": { - "frameId": "0", - "frameTimestamp": "1705308539109", - "width": 0, - "height": 0, - "originWidth": 0, - "originHeight": 0, - "offsetTime": "0", - "skipNumber": "0" - }, - "infoOnSource": { - "bboxInFrame": { - "bboxRatio": { - "x": 0.5519352, - "y": 0.2965385, - "w": 0.05185461, - "h": 0.24698898 - }, - }, - "countInSource": 0, - "indexInSource": 0 - }, - "qualityScore": 0, - }, - { - "objectIndex": { - "objectId": "1746816737430472705", - "solutionId": "0", - "deviceId": "0", - "fragmentId": "0" - }, - "objectType": "OBJECT_TYPE_PEDESTRAIN", - "sourceObjectId": "0", - "level": 0, - "confidence": 0.9310699, - "frameInfo": { - "frameId": "0", - "frameTimestamp": "1705308539109", - "width": 0, - "height": 0, - "originWidth": 0, - "originHeight": 0, - "offsetTime": "0", - "skipNumber": "0" - }, - "infoOnSource": { - "bboxInFrame": { - "bboxRatio": { - "x": 0.58543766, - "y": 0.3203356, - "w": 0.052037954, - "h": 0.2664015 - }, - }, - "countInSource": 0, - "indexInSource": 0 - }, - "qualityScore": 0, - } - ] - } - ], - -} - -export default () => { - const imgRef = useRef(null) - - return ( - - - - - - - - - ) -} -``` +基本 ## API diff --git a/packages/meta/src/CompareImage/CompareImage.tsx b/packages/meta/src/CompareImage/CompareImage.tsx index a2c8ba9..cda03e6 100644 --- a/packages/meta/src/CompareImage/CompareImage.tsx +++ b/packages/meta/src/CompareImage/CompareImage.tsx @@ -1,4 +1,5 @@ import React, { useRef, useState, useEffect, forwardRef, useImperativeHandle } from 'react' +// @ts-ignore import { generateImg, get, addEventListenerWrapper } from '@zhst/func'; import { useUpdateEffect } from '@zhst/hooks'; import Button from '../button'; diff --git a/packages/meta/src/CompareImage/demo/basic.tsx b/packages/meta/src/CompareImage/demo/basic.tsx new file mode 100644 index 0000000..11578c1 --- /dev/null +++ b/packages/meta/src/CompareImage/demo/basic.tsx @@ -0,0 +1,30 @@ + +import React, { useRef } from 'react'; +import { CompareImage, Space, Button } from '@zhst/meta' + +const props = { + label: "目标图", + openRoll:true, + dataSource:[ + { + url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', + score: '0.5' + }, + { + url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', + score: '0.8' + }, + ] +} + +export default () => { + const ref = useRef(null) + + return ( + + + + + + ) +} diff --git a/packages/meta/src/CompareImage/index.md b/packages/meta/src/CompareImage/index.md index 72f2cfb..d403218 100644 --- a/packages/meta/src/CompareImage/index.md +++ b/packages/meta/src/CompareImage/index.md @@ -1,5 +1,5 @@ --- -group: 通用 +group: 媒体 category: Components subtitle: 图片预览 title: CompareImage 图片预览 @@ -7,37 +7,7 @@ title: CompareImage 图片预览 # CompareImage 图片预览 -```jsx -import React, { useRef } from 'react'; -import { CompareImage, Space, Button } from '@zhst/meta' - -const props = { - label: "目标图", - openRoll:true, - dataSource:[ - { - url: 'http://10.0.0.120:30003/file/public/public_20240110/file/60f26318-19fc-40b3-b249-91bd2a4da3f3.jpg', - score: '0.5' - }, - { - url: 'http://10.0.0.120:30003/file/public/public_20240110/file/7c9b33a8-5106-4982-9d58-a593ad8acbf6.jpg', - score: '0.8' - }, - ] -} - -export default () => { - const ref = useRef(null) - - return ( - - - - - - ) -} -``` +基本 ## API diff --git a/packages/meta/src/VideoPlayer/VideoPlayer.tsx b/packages/meta/src/VideoPlayer/VideoPlayer.tsx index 81b0b7f..bfce83f 100644 --- a/packages/meta/src/VideoPlayer/VideoPlayer.tsx +++ b/packages/meta/src/VideoPlayer/VideoPlayer.tsx @@ -8,13 +8,14 @@ import { toRealNumber, getTransforms, formatDurationTime + // @ts-ignore } from '@zhst/func'; import Align from 'rc-align'; import { Rect, IScreenshotButtonProp, AlignType } from '@zhst/types' import { useLatest, useUpdateEffect, useFullscreen, useUnmount } from '@zhst/hooks'; import classNames from 'classnames'; import download from 'downloadjs'; -import { Button, message } from 'antd'; +import { Button, message } from '..'; import Icon from '../iconfont'; import { Cropper, diff --git a/packages/meta/src/VideoPlayer/components/FlvPlayer/index.tsx b/packages/meta/src/VideoPlayer/components/FlvPlayer/index.tsx index b34b981..a7a76c1 100644 --- a/packages/meta/src/VideoPlayer/components/FlvPlayer/index.tsx +++ b/packages/meta/src/VideoPlayer/components/FlvPlayer/index.tsx @@ -1,5 +1,6 @@ import React, { Component, CSSProperties } from 'react'; import flvjs from 'flv.js'; +// @ts-ignore import { isEqual } from '@zhst/func'; export const FLV_EVENT = flvjs.Events; diff --git a/packages/meta/src/VideoPlayer/demo/basic.tsx b/packages/meta/src/VideoPlayer/demo/basic.tsx new file mode 100644 index 0000000..0af1770 --- /dev/null +++ b/packages/meta/src/VideoPlayer/demo/basic.tsx @@ -0,0 +1,18 @@ +import React, { useRef, useState } from 'react'; +import { VideoPlayer, Space, Button } from '@zhst/meta' + +export default () => { + const videoRef = useRef(null) + const [url, setUrl] = useState(null) + + return ( + + + + + + + {url && } + + ) +} diff --git a/packages/meta/src/VideoPlayer/index.md b/packages/meta/src/VideoPlayer/index.md index 6a64c70..5780cb6 100644 --- a/packages/meta/src/VideoPlayer/index.md +++ b/packages/meta/src/VideoPlayer/index.md @@ -1,5 +1,5 @@ --- -group: 通用 +group: 媒体 category: Components subtitle: 视频播放 title: VideoPlayer 视频播放 @@ -13,24 +13,7 @@ demo: 播放进度条操作还未完善,在播放结束和拖拽的过程中都有一定程度卡顿,目前逻辑待优化 ::: -```jsx -import React, { useRef, useState } from 'react'; -import { VideoPlayer, Space, Button } from '@zhst/meta' - -export default () => { - const videoRef = useRef(null) - const [url, setUrl] = useState(null) - - return ( - - - - - - - ) -} -``` +基础 测试视频播放压力 diff --git a/packages/meta/src/alert/Alert.tsx b/packages/meta/src/alert/Alert.tsx new file mode 100644 index 0000000..00a7a2e --- /dev/null +++ b/packages/meta/src/alert/Alert.tsx @@ -0,0 +1,228 @@ +import type { ReactElement } from 'react'; +import * as React from 'react'; +import CheckCircleFilled from '@ant-design/icons/CheckCircleFilled'; +import CloseCircleFilled from '@ant-design/icons/CloseCircleFilled'; +import CloseOutlined from '@ant-design/icons/CloseOutlined'; +import ExclamationCircleFilled from '@ant-design/icons/ExclamationCircleFilled'; +import InfoCircleFilled from '@ant-design/icons/InfoCircleFilled'; +import classNames from 'classnames'; +import CSSMotion from 'rc-motion'; +import pickAttrs from 'rc-util/lib/pickAttrs'; + +import { replaceElement } from '../_util/reactNode'; +import { devUseWarning } from '../_util/warning'; +import { ConfigContext } from '../config-provider'; +import useStyle from './style'; + +export interface AlertProps { + /** Type of Alert styles, options:`success`, `info`, `warning`, `error` */ + type?: 'success' | 'info' | 'warning' | 'error'; + /** Whether Alert can be closed */ + closable?: boolean; + /** + * @deprecated please use `closeIcon` instead. + * Close text to show + */ + closeText?: React.ReactNode; + /** Content of Alert */ + message?: React.ReactNode; + /** Additional content of Alert */ + description?: React.ReactNode; + /** Callback when close Alert */ + onClose?: React.MouseEventHandler; + /** Trigger when animation ending of Alert */ + afterClose?: () => void; + /** Whether to show icon */ + showIcon?: boolean; + /** https://www.w3.org/TR/2014/REC-html5-20141028/dom.html#aria-role-attribute */ + role?: string; + style?: React.CSSProperties; + prefixCls?: string; + className?: string; + rootClassName?: string; + banner?: boolean; + icon?: React.ReactNode; + /** Custom closeIcon */ + closeIcon?: boolean | React.ReactNode; + action?: React.ReactNode; + onMouseEnter?: React.MouseEventHandler; + onMouseLeave?: React.MouseEventHandler; + onClick?: React.MouseEventHandler; +} + +const iconMapFilled = { + success: CheckCircleFilled, + info: InfoCircleFilled, + error: CloseCircleFilled, + warning: ExclamationCircleFilled, +}; + +interface IconNodeProps { + type: AlertProps['type']; + icon: AlertProps['icon']; + prefixCls: AlertProps['prefixCls']; + description: AlertProps['description']; +} + +const IconNode: React.FC = (props) => { + const { icon, prefixCls, type } = props; + const iconType = iconMapFilled[type!] || null; + if (icon) { + return replaceElement(icon, {icon}, () => ({ + className: classNames(`${prefixCls}-icon`, { + [(icon as ReactElement).props.className]: (icon as ReactElement).props.className, + }), + })) as ReactElement; + } + return React.createElement(iconType, { className: `${prefixCls}-icon` }); +}; + +interface CloseIconProps { + isClosable: boolean; + prefixCls: AlertProps['prefixCls']; + closeIcon: AlertProps['closeIcon']; + handleClose: AlertProps['onClose']; +} + +const CloseIcon: React.FC = (props) => { + const { isClosable, prefixCls, closeIcon, handleClose } = props; + const mergedCloseIcon = + closeIcon === true || closeIcon === undefined ? : closeIcon; + return isClosable ? ( + + ) : null; +}; + +const Alert: React.FC = (props) => { + const { + description, + prefixCls: customizePrefixCls, + message, + banner, + className, + rootClassName, + style, + onMouseEnter, + onMouseLeave, + onClick, + afterClose, + showIcon, + closable, + closeText, + closeIcon, + action, + ...otherProps + } = props; + + const [closed, setClosed] = React.useState(false); + + if (process.env.NODE_ENV !== 'production') { + const warning = devUseWarning('Alert'); + warning.deprecated(!closeText, 'closeText', 'closeIcon'); + } + + const ref = React.useRef(null); + const { getPrefixCls, direction, alert } = React.useContext(ConfigContext); + const prefixCls = getPrefixCls('alert', customizePrefixCls); + + const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls); + + const handleClose = (e: React.MouseEvent) => { + setClosed(true); + props.onClose?.(e); + }; + + const type = React.useMemo(() => { + if (props.type !== undefined) { + return props.type; + } + // banner mode defaults to 'warning' + return banner ? 'warning' : 'info'; + }, [props.type, banner]); + + // closeable when closeText or closeIcon is assigned + const isClosable = React.useMemo(() => { + if (closeText) { + return true; + } + if (typeof closable === 'boolean') { + return closable; + } + // should be true when closeIcon is 0 or '' + return closeIcon !== false && closeIcon !== null && closeIcon !== undefined; + }, [closeText, closeIcon, closable]); + + // banner mode defaults to Icon + const isShowIcon = banner && showIcon === undefined ? true : showIcon; + + const alertCls = classNames( + prefixCls, + `${prefixCls}-${type}`, + { + [`${prefixCls}-with-description`]: !!description, + [`${prefixCls}-no-icon`]: !isShowIcon, + [`${prefixCls}-banner`]: !!banner, + [`${prefixCls}-rtl`]: direction === 'rtl', + }, + alert?.className, + className, + rootClassName, + cssVarCls, + hashId, + ); + + const restProps = pickAttrs(otherProps, { aria: true, data: true }); + + return wrapCSSVar( + ({ maxHeight: node.offsetHeight })} + onLeaveEnd={afterClose} + > + {({ className: motionClassName, style: motionStyle }) => ( +
+ {isShowIcon ? ( + + ) : null} +
+ {message ?
{message}
: null} + {description ?
{description}
: null} +
+ {action ?
{action}
: null} + +
+ )} +
, + ); +}; + +if (process.env.NODE_ENV !== 'production') { + Alert.displayName = 'Alert'; +} + +export default Alert; diff --git a/packages/meta/src/alert/ErrorBoundary.tsx b/packages/meta/src/alert/ErrorBoundary.tsx new file mode 100644 index 0000000..8c8b6b2 --- /dev/null +++ b/packages/meta/src/alert/ErrorBoundary.tsx @@ -0,0 +1,50 @@ +import * as React from 'react'; +import Alert from './Alert'; + +interface ErrorBoundaryProps { + message?: React.ReactNode; + description?: React.ReactNode; + children?: React.ReactNode; +} + +interface ErrorBoundaryStates { + error?: Error | null; + info?: { + componentStack?: string; + }; +} + +class ErrorBoundary extends React.Component { + state = { + error: undefined, + info: { + componentStack: '', + }, + }; + + componentDidCatch(error: Error | null, info: object) { + this.setState({ error, info }); + } + + render() { + const { message, description, children } = this.props; + const { error, info } = this.state; + const componentStack = info && info.componentStack ? info.componentStack : null; + const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message; + const errorDescription = typeof description === 'undefined' ? componentStack : description; + if (error) { + return ( + {errorDescription} + } + /> + ); + } + return children; + } +} + +export default ErrorBoundary; diff --git a/packages/meta/src/alert/__tests__/__snapshots__/demo-extend.test.ts.snap b/packages/meta/src/alert/__tests__/__snapshots__/demo-extend.test.ts.snap new file mode 100644 index 0000000..b399d10 --- /dev/null +++ b/packages/meta/src/alert/__tests__/__snapshots__/demo-extend.test.ts.snap @@ -0,0 +1,1622 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders components/alert/demo/action.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/action.tsx extend context correctly 2`] = ` +[ + "Warning: [antd: Button] \`link\` or \`text\` button can't be a \`ghost\` button.", +] +`; + +exports[`renders components/alert/demo/banner.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/banner.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/basic.tsx extend context correctly 1`] = ` + +`; + +exports[`renders components/alert/demo/basic.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/closable.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/closable.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/custom-icon.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/custom-icon.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/description.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/description.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/error-boundary.tsx extend context correctly 1`] = ` + +`; + +exports[`renders components/alert/demo/error-boundary.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/icon.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/icon.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/smooth-closed.tsx extend context correctly 1`] = ` +
+
+ +
+
+

+ click the close button to see the effect +

+
+
+ +
+
+`; + +exports[`renders components/alert/demo/smooth-closed.tsx extend context correctly 2`] = `[]`; + +exports[`renders components/alert/demo/style.tsx extend context correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/style.tsx extend context correctly 2`] = `[]`; diff --git a/packages/meta/src/alert/__tests__/__snapshots__/demo.test.ts.snap b/packages/meta/src/alert/__tests__/__snapshots__/demo.test.ts.snap new file mode 100644 index 0000000..01a258b --- /dev/null +++ b/packages/meta/src/alert/__tests__/__snapshots__/demo.test.ts.snap @@ -0,0 +1,1598 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders components/alert/demo/action.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/banner.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/basic.tsx correctly 1`] = ` + +`; + +exports[`renders components/alert/demo/closable.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/custom-icon.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/description.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/error-boundary.tsx correctly 1`] = ` + +`; + +exports[`renders components/alert/demo/icon.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; + +exports[`renders components/alert/demo/smooth-closed.tsx correctly 1`] = ` +
+
+ +
+
+

+ click the close button to see the effect +

+
+
+ +
+
+`; + +exports[`renders components/alert/demo/style.tsx correctly 1`] = ` +
+
+ +
+
+ +
+
+ +
+
+ +
+
+`; diff --git a/packages/meta/src/alert/__tests__/__snapshots__/index.test.tsx.snap b/packages/meta/src/alert/__tests__/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000..374770f --- /dev/null +++ b/packages/meta/src/alert/__tests__/__snapshots__/index.test.tsx.snap @@ -0,0 +1,88 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Alert custom action 1`] = ` + +`; + +exports[`Alert rtl render component should be rendered correctly in RTL direction 1`] = ` +