{"_id":"@cainiaofe/overlay","_rev":"4-6359027274cf8835ff1ffda9c972b4cf","name":"@cainiaofe/overlay","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@cainiaofe/overlay","version":"0.0.1","keywords":["react","component"],"license":"MIT","_id":"@cainiaofe/overlay@0.0.1","maintainers":[{"name":"kayla3love","email":"kayla3love@163.com"},{"name":"hahaiwin","email":"hahaiwin@163.com"},{"name":"gz.sanqi","email":"ozgzzyzo@gmail.com"},{"name":"feiyanqiu","email":"fyq01039365@cainiao.com"},{"name":"walker.whq","email":"wanghuanqiang1988@gmail.com"},{"name":"yuqiaoling","email":"yangyuyu9898@163.com"},{"name":"majiangqi.mjq","email":"majiangqi.mjq@cainiao.com"},{"name":"wulie88","email":"1216446181@qq.com"},{"name":"vincent.ljq","email":"1312065793@qq.com"},{"name":"snowden_","email":"1149518004@qq.com"},{"name":"test_zy","email":"zhaoyangsoft@gmail.com"},{"name":"leannechen","email":"811873539@qq.com"},{"name":"tgshell","email":"tgshell@sina.com"},{"name":"chenyongqing.cyq","email":"chenyongqing.cyq@cainiao.com"},{"name":"fengyue1","email":"heiniuhaha@gmail.com"},{"name":"juntao.wjt","email":"juntao.wjt@alibaba-inc.com"},{"name":"hadon","email":"huadong19890803@qq.com"},{"name":"lanjian.yj","email":"lanjian.yj@alibaba-inc.com"},{"name":"connerliu","email":"connerliu@126.com"},{"name":"qianqianyinian","email":"83581869@qq.com"},{"name":"zhen.hz","email":"595620510@qq.com"},{"name":"mcdyzg","email":"940608110@qq.com"},{"name":"zhouhuan","email":"zhouhuan0910@163.com"},{"name":"ystar","email":"ystarchen@gmail.com"},{"name":"cismous","email":"251250076@qq.com"},{"name":"wangyuhao.wyh","email":"emailofwyh@foxmail.com"},{"name":"beside4ever","email":"beside4ever@outlook.com"},{"name":"joshuasui","email":"joshuasui@163.com"},{"name":"shdongdongshihao","email":"630434698@qq.com"}],"homepage":"https://unpkg.com/@cainiaofe/overlay@0.0.1/build/index.html","dist":{"shasum":"43e55b0c3336077509699ad87042683d34713c6e","tarball":"https://registry.npmjs.org/@cainiaofe/overlay/-/overlay-0.0.1.tgz","fileCount":50,"integrity":"sha512-gfM+s29O6YIA05WAMyHid85vkWu8ZL5s/hra1ZBU67SlwYB8nFVfZu1RoV6QvI4ikFiBCSte9hz76od3qJ22lQ==","signatures":[{"sig":"MEQCICfxrRgXrTPx/byuNyUGkcUvyEg+fTi9L7Aw4Kme2kcjAiAD2t9YGKLarfJQSEVNz+3HEytOtJI5/X6sPMQK3Igldg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1137710},"main":"lib/index.js","husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"lint-staged"}},"types":"./lib/index.d.ts","module":"es/index.js","gitHead":"db67373323c6cec397aac0e98eeb15e985de77a3","scripts":{"lint":"npm run eslint && npm run stylelint","test":"build-scripts test","build":"build-scripts build","start":"build-scripts start","watch":"npm run build -- --watch","eslint":"eslint --cache --ext .js,.jsx ./","stylelint":"stylelint \"**/*.{css,scss,less}\"","eslint:fix":"npm run eslint -- --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"hahaiwin","email":"hahaiwin@163.com"},"stylePath":"style.js","repository":{"url":"git@gitlab.alibaba-inc.com:cn-ui/overlay.git","type":"git"},"_npmVersion":"10.8.1","description":"overlay base component","directories":{},"lint-staged":{"src/**/*.@(css|scss)":["stylelint","git add"],"src/**/*.@(js|jsx|ts|tsx)":["eslint","git add"],"@(src|scripts|docs/*/demo)/**/*.@(js|jsx|ts|tsx|md)":["prettier --write"]},"_nodeVersion":"20.16.0","dependencies":{"resize-observer-polyfill":"^1.5.1"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"componentConfig":{"name":"Overlay","title":"弹层","category":"Modal"},"devDependencies":{"husky":"^3.1.0","react":"^17.0.0","enzyme":"^3.10.0","eslint":"^6.8.0","prettier":"^3.1.0","react-dom":"^17.0.0","stylelint":"^13.7.2","@alifd/next":"1.x","@types/jest":"^26.0.24","lint-staged":"^9.5.0","@types/react":"^17.0.0","@iceworks/spec":"^1.0.0","simulate-event":"^1.4.0","@commitlint/cli":"^8.3.6","@types/react-dom":"^17.0.0","@alib/build-scripts":"^0.1.3","build-plugin-fusion":"^0.1.0","build-plugin-component":"^1.0.0","eslint-config-prettier":"^9.0.0","build-plugin-moment-locales":"^0.1.0","@wojtekmaj/enzyme-adapter-react-17":"^0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/overlay_0.0.1_1722308760298_0.9591597348984089","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@cainiaofe/overlay","version":"0.0.2","keywords":["react","component"],"license":"MIT","_id":"@cainiaofe/overlay@0.0.2","maintainers":[{"name":"kayla3love","email":"kayla3love@163.com"},{"name":"hahaiwin","email":"hahaiwin@163.com"},{"name":"gz.sanqi","email":"ozgzzyzo@gmail.com"},{"name":"feiyanqiu","email":"fyq01039365@cainiao.com"},{"name":"walker.whq","email":"wanghuanqiang1988@gmail.com"},{"name":"yuqiaoling","email":"yangyuyu9898@163.com"},{"name":"majiangqi.mjq","email":"majiangqi.mjq@cainiao.com"},{"name":"wulie88","email":"1216446181@qq.com"},{"name":"vincent.ljq","email":"1312065793@qq.com"},{"name":"snowden_","email":"1149518004@qq.com"},{"name":"test_zy","email":"zhaoyangsoft@gmail.com"},{"name":"leannechen","email":"811873539@qq.com"},{"name":"tgshell","email":"tgshell@sina.com"},{"name":"chenyongqing.cyq","email":"chenyongqing.cyq@cainiao.com"},{"name":"fengyue1","email":"heiniuhaha@gmail.com"},{"name":"juntao.wjt","email":"juntao.wjt@alibaba-inc.com"},{"name":"hadon","email":"huadong19890803@qq.com"},{"name":"lanjian.yj","email":"lanjian.yj@alibaba-inc.com"},{"name":"connerliu","email":"connerliu@126.com"},{"name":"qianqianyinian","email":"83581869@qq.com"},{"name":"zhen.hz","email":"595620510@qq.com"},{"name":"mcdyzg","email":"940608110@qq.com"},{"name":"zhouhuan","email":"zhouhuan0910@163.com"},{"name":"ystar","email":"ystarchen@gmail.com"},{"name":"cismous","email":"251250076@qq.com"},{"name":"wangyuhao.wyh","email":"emailofwyh@foxmail.com"},{"name":"beside4ever","email":"beside4ever@outlook.com"},{"name":"joshuasui","email":"joshuasui@163.com"},{"name":"shdongdongshihao","email":"630434698@qq.com"}],"homepage":"https://unpkg.com/@cainiaofe/overlay@0.0.2/build/index.html","dist":{"shasum":"7e9003ccdcef708cd63f55dbc962c84929bda5b8","tarball":"https://registry.npmjs.org/@cainiaofe/overlay/-/overlay-0.0.2.tgz","fileCount":50,"integrity":"sha512-hIizqSYvIme75LmGl/E7rsbJSV/iU44s0hyHkqqZsfoXO47rCeBwxGUwy7oagvnjvKJHsvU7YAiPPYolPZgxTQ==","signatures":[{"sig":"MEUCIQCe6x4niu90kNE6KfdxwRUB/65ZN3+e3fqRNL8AQqirngIgNlUheLS0JpQMNBVcBeIDk4w7TRn+a//yLRMEhauaQ2c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1115316},"main":"lib/index.js","husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"lint-staged"}},"types":"./lib/index.d.ts","module":"es/index.js","gitHead":"373576c7ba9fce27489fcd1e9b0f8c15062a82c9","scripts":{"lint":"npm run eslint && npm run stylelint","test":"build-scripts test","build":"build-scripts build","start":"build-scripts start","watch":"npm run build -- --watch","eslint":"eslint --cache --ext .js,.jsx ./","stylelint":"stylelint \"**/*.{css,scss,less}\"","eslint:fix":"npm run eslint -- --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"hahaiwin","email":"hahaiwin@163.com"},"stylePath":"style.js","repository":{"url":"git@gitlab.alibaba-inc.com:cn-ui/overlay.git","type":"git"},"_npmVersion":"10.8.1","description":"overlay base component","directories":{},"lint-staged":{"src/**/*.@(css|scss)":["stylelint","git add"],"src/**/*.@(js|jsx|ts|tsx)":["eslint","git add"],"@(src|scripts|docs/*/demo)/**/*.@(js|jsx|ts|tsx|md)":["prettier --write"]},"_nodeVersion":"20.16.0","dependencies":{"resize-observer-polyfill":"^1.5.1"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"componentConfig":{"name":"Overlay","title":"弹层","category":"Modal"},"devDependencies":{"husky":"^3.1.0","react":"^17.0.0","enzyme":"^3.10.0","eslint":"^6.8.0","prettier":"^3.1.0","react-dom":"^17.0.0","stylelint":"^13.7.2","@alifd/next":"1.x","@types/jest":"^26.0.24","lint-staged":"^9.5.0","@types/react":"^17.0.0","@iceworks/spec":"^1.0.0","simulate-event":"^1.4.0","@commitlint/cli":"^8.3.6","@types/react-dom":"^17.0.0","@alib/build-scripts":"^0.1.3","build-plugin-fusion":"^0.1.0","build-plugin-component":"^1.0.0","eslint-config-prettier":"^9.0.0","build-plugin-moment-locales":"^0.1.0","@wojtekmaj/enzyme-adapter-react-17":"^0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/overlay_0.0.2_1722311990251_0.8267351135234093","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-07-30T03:06:00.191Z","modified":"2026-05-28T14:28:23.679Z","0.0.1":"2024-07-30T03:06:00.632Z","0.0.2":"2024-07-30T03:59:50.477Z"},"license":"MIT","homepage":"https://unpkg.com/@cainiaofe/overlay@0.0.2/build/index.html","keywords":["react","component"],"repository":{"url":"git@gitlab.alibaba-inc.com:cn-ui/overlay.git","type":"git"},"description":"overlay base component","maintainers":[{"email":"ystarchen@gmail.com","name":"ystar"},{"email":"beside4ever@outlook.com","name":"beside4ever"},{"email":"811873539@qq.com","name":"leannechen"},{"email":"tgshell@sina.com","name":"tgshell"},{"email":"joshuasui@163.com","name":"joshuasui"},{"email":"630434698@qq.com","name":"shdongdongshihao"},{"email":"1149518004@qq.com","name":"snowden_"},{"email":"zhaoyangsoft@gmail.com","name":"test_zy"},{"email":"fyq01039365@cainiao.com","name":"feiyanqiu"},{"email":"1312065793@qq.com","name":"vincent.ljq"},{"email":"emailofwyh@foxmail.com","name":"wangyuhao.wyh"},{"email":"1216446181@qq.com","name":"wulie88"},{"email":"251250076@qq.com","name":"cismous"},{"email":"yangyuyu9898@163.com","name":"yuqiaoling"},{"email":"wanghuanqiang1988@gmail.com","name":"walker.whq"},{"email":"majiangqi.mjq@cainiao.com","name":"majiangqi.mjq"},{"email":"heiniuhaha@gmail.com","name":"fengyue1"},{"email":"kayla3love@163.com","name":"kayla3love"},{"email":"940608110@qq.com","name":"mcdyzg"},{"email":"juntao.wjt@alibaba-inc.com","name":"juntao.wjt"},{"email":"595620510@qq.com","name":"zhen.hz"},{"email":"ozgzzyzo@gmail.com","name":"gz.sanqi"},{"email":"hahaiwin@163.com","name":"hahaiwin"},{"email":"yangjian_666@qq.com","name":"lanjian.yj"},{"email":"83581869@qq.com","name":"qianqianyinian"},{"email":"connerliu@126.com","name":"connerliu"},{"email":"huadong19890803@qq.com","name":"hadon"},{"email":"zhouhuan0910@163.com","name":"zhouhuan"},{"email":"chenyongqing.cyq@cainiao.com","name":"chenyongqing.cyq"},{"email":"qdq77a@gmail.com","name":"77a"},{"email":"1914016465@qq.com","name":"lhn123"}],"readme":"# 弹层\n\n@cainiaofe/overlay\n\n用于生成弹层的工具类集合。\n\n## 如何使用\n\nOverlay 提供了一系列组件用于创建弹层。其中包含：\n\n### Overlay\n\nOverlay 可以在页面中弹出一个浮层，封装了定位，动画及其他一些可用性的功能。Overlay 被设计为无状态的组件，其本身并不控制自己显示和隐藏的状态。\n\n**注意：** 类似 canCloseby\\* 的配置也需要配合 onRequestClose 才能关闭弹层。\n\n#### 安全节点 safeNode\n\nOverlay 提供了点击弹层外文档中节点隐藏该弹层的功能，如果想让某个节点点击后不隐藏弹层（如：触发弹层打开的节点），请将该节点传入 safeNode 属性。\n\n#### 定位\n\n1.  points 的值可以是由空格隔开的字符串，如 `['tl', 'bl']`，其中 `tl` 代表目标元素的左上方，`bl` 代表基准元素的左下方，所以 `['tl', 'bl']` 的意思是目标元素的左上方对齐基准元素左下方。其中定位的可选值有 `tl`, `tc`, `tr`, `cl`, `cc`, `cr`, `bl`, `bc`, `br`。`t` 为 `top` 的缩写，`b` 为 `bottom` 的缩写，`c` 为 `center` 的缩写，`l` 为 `left` 的缩写，`r` 为 `right` 的缩写。\n\n\n### Popup\n\nPopup 是对 Overlay 的封装，children 作为触发节点，弹出一个浮层，这个浮层默认情况下使用这个节点作为定位的参照对象。\n\n\n## API\n\n### Overlay\n\n| 参数                    | 说明                                              | 类型            | 默认值                       |\n| ---------------------- | ------------------------------------------------- | -------------- | --------------------------- |\n| children               | 弹层内容                                           | ReactElement   | -                          |\n| visible                | 是否显示弹层                                        | Boolean        | false                       |\n| onRequestClose         | 弹层请求关闭时触发事件的回调函数                       | Function       | () => {} |\n| target                 | 弹层定位的参照元素                                  | Function            | （）=> document.body |\n| points                 | 弹层相对于参照元素的定位                             | [point, point] | ['tl', 'bl'] |\n| placement              | 部分 points 的简写模式<br/><br/>**可选值**:<br/>'t'(上，对应 points: ['bc', 'tc'])<br/>'r'(右，对应 points: ['lc', 'rc'])<br/>'b'(下，对应 points: ['tc', 'bc'])<br/>'l'(左，对应 points: ['rc', 'lc'])<br/>'tl'(上左，对应 points: ['bl', 'tl'])<br/>'tr'(上右，对应 points: ['br', 'tr'])<br/>'bl'(下左，对应 points: ['tl', 'bl'])<br/>'br'(下右，对应 points: ['tr', 'br'])<br/>'lt'(左上，对应 points: ['rt', 'lt'])<br/>'lb'(左下，对应 points: ['rb', 'lb'])<br/>'rt'(右上，对应 points: ['lt', 'rt'])<br/>'rb'(右下，对应 points: ['lb', 'rb'])                                                                           | Enum           | 'bl'                                                            |      |\n| offset                 | 弹层相对于 trigger 的定位的微调，接收数组[hoz, ver], 表示弹层在 left / top 上的增量<br/>e.g. [100, 100] 表示往右、下分布偏移 100px | Array          | [0, 0]|\n| container              | 渲染组件的容器，如果是函数需要返回 ref，如果是字符串则是该 DOM 的 id，也可以直接传入 DOM 节点 | any            | - |\n| hasMask                | 是否显示遮罩 | Boolean        | false |\n| canCloseByEsc          | 是否支持 esc 按键关闭弹层                  | Boolean        | true  |\n| canCloseByOutSideClick | 点击弹层外的区域是否关闭弹层，不显示遮罩时生效          | Boolean        | true  |\n| canCloseByMask         | 点击遮罩区域是否关闭弹层，显示遮罩时生效             | Boolean        | true  |\n| onOpen                 | 弹层打开时触发事件的回调函数             | Function       | noop |\n| onClose                | 弹层关闭时触发事件的回调函数             | Function       | noop |\n| beforePosition         | 弹层定位完成前触发的事件               | Function       | noop |\n| onPosition             | 弹层定位完成时触发的事件<br/><br/>**签名**:<br/>Function(config: Object) => void<br/>**参数**:<br/>_config_: {Object} 定位的参数<br/>_config.config.points_: {Array} 对齐方式，如 ['cc', 'cc']（如果开启 needAdjust，可能和预先设置的 points 不同）<br/>_config.style.top_: {Number} 距离视口顶部距离<br/>_config.style.left_: {Number} 距离视口左侧距离 | Function       | noop |\n| autoFocus              | 弹层打开时是否让其中的元素自动获取焦点              | Boolean        | false |\n| autoAdjust             | 当弹层由于页面滚动等情况不在可视区域时，是否自动调整定位以出现在可视区域                              | Boolean        | true  |\n| autoHideScrollOverflow | 当 trigger 外面有滚动条，滚动到不可见区域后隐藏弹窗 | Boolean        | true  |\n| cache                  | 隐藏时是否保留子节点                       | Boolean        | false |\n| safeNode               | 安全节点，当点击 document 的时候，如果包含该节点则不会关闭弹层，如果是函数需要返回 ref，如果是字符串则是该 DOM 的 id，也可以直接传入 DOM 节点，或者以上值组成的数组            | any            | - |\n| wrapperClassName       | 弹层的根节点的样式类                       | String         | - |\n| wrapperStyle           | 弹层的根节点的内联样式                      | Object         | - |\n\n### Overlay.Popup\n\n> 继承 Overlay 的 API，除非特别说明\n\n| 参数                  | 说明         | 类型           | 默认值                            |\n| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------ |\n| children            | 触发弹层显示或隐藏的元素       | ReactNode    | -                              |\n| overlay             | 弹层内容                    | ReactElement | -                              |\n| triggerType         | 触发弹层显示或隐藏的操作类型，可以是 'click'，'hover'，'focus'，或者它们组成的数组，如 ['hover', 'focus']                    | String/Array | 'hover'                        |\n| triggerClickKeycode | 当 triggerType 为 click 时才生效，可自定义触发弹层显示的键盘码           | Number/Array | [KEYCODE.SPACE, KEYCODE.ENTER] |\n| visible             | 弹层当前是否显示   | Boolean      | -                              |\n| defaultVisible      | 弹层默认是否显示   | Boolean      | false                          |\n| onVisibleChange     | 弹层显示或隐藏时触发的回调函数<br/><br/>**签名**:<br/>Function(visible: Boolean, type: String, e: Object) => void<br/>**参数**:<br/>_visible_: {Boolean} 弹层是否显示<br/>_type_: {String} 触发弹层显示或隐藏的来源 fromTrigger 表示由 trigger 的点击触发；docClick 表示由 document 的点击触发<br/>_e_: {Object} DOM 事件 | Function     | noop                      |\n| disabled            | 设置此属性，弹层无法显示或隐藏 | Boolean      | false                          |\n| delay               | 弹层显示或隐藏的延时时间（以毫秒为单位），在 triggerType 被设置为 hover 时生效   | Number       | 200                            |\n| mouseEnterDelay     | 鼠标移入弹层显示的延时时间（以毫秒为单位），在 triggerType 被设置为 hover 时生效，优先级高于 delay   | Number       | -                             |\n| mouseLeaveDelay     | 鼠标移出弹层隐藏的延时时间（以毫秒为单位），在 triggerType 被设置为 hover 时生效，优先级高于 delay   | Number       | -                             |\n| followTrigger       | 是否跟随 trigger 滚动  | Boolean      | false ","readmeFilename":"README.md"}