UNPKG

@skiyee/uni-ui

Version:

一个由原子化CSS驱动、符合直觉设计、高度定制化、面向AI时代的移动端 UI 库,助力开发者打造独特且差异化的移动端应用程序

7 lines 950 B
/** * @skiyee/uni-ui v1.0.0 * @author skiyee(https://github.com/skiyee) * @license Apache License 2.0 * @copyright 2025-present skiyee All rights reserved. **/ import{getCurrentInstance as e,markRaw as t,provide as n,shallowReactive as r}from"vue";function i(i,o){let s=e(),c=r([]),l=r([]),u=e=>{e.proxy&&(l.push(t(e)),c.push(t(e.proxy)),a(s,l,o))},d=e=>{e.proxy&&(l.splice(l.indexOf(t(e)),1),c.splice(c.indexOf(t(e.proxy)),1))};return e=>(n(i,Object.assign({add:u,remove:d,children:l},e)),{internalChildren:l,publicChildren:c})}function a(e,t,n){let r=o(e&&e.subTree&&e.subTree.children,n);t.sort((e,t)=>r.indexOf(e.vnode)-r.indexOf(t.vnode))}function o(e,t){let n=[],r=e=>{Array.isArray(e)&&e.forEach(e=>{if(s(e)){if(t){if(e.type&&e.type.name===t){n.push(e);return}}else n.push(e);e.component?.subTree&&r(e.component.subTree.children),e.children&&r(e.children)}})};return r(e),n}function s(e){return e?e.__v_isVNode===!0:!1}export{i as useProvide};