@oinone/kunlun-vue-router 6.2.11 → 6.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -12,4 +12,4 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */let b=class BaseRouterWidget extends t{};b=function(e,t,r,o){var n,u=arguments.length,l=u<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(l=(u<3?n(l):u>3?n(t,r,l):n(t,r))||l);return u>3&&l&&Object.defineProperty(t,r,l),l}([e.Base("Router",["widget"])],b);class RouterWidget extends b{}const M=r("router view location matched"),y=r("parent_segment_group"),S=e=>{const t=u(M),r=u(y,l((
|
|
15
|
+
***************************************************************************** */let b=class BaseRouterWidget extends t{};b=function(e,t,r,o){var n,u=arguments.length,l=u<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(l=(u<3?n(l):u>3?n(t,r,l):n(t,r))||l);return u>3&&l&&Object.defineProperty(t,r,l),l}([e.Base("Router",["widget"])],b);class RouterWidget extends b{}const M=r("router view location matched"),y=r("parent_segment_group"),S=e=>{const t=u(M),r=u(y,l(()=>t.value.root)),o=l(()=>{if(!(null==r?void 0:r.value))return;const{children:t}=r.value;return e?t[e]:t.primary});e&&a(y,o);return{currentSegmentGroup:l(()=>{if(!o.value)return;const{children:e}=o.value;return Object.keys(e).length?e.primary:o.value})}},W=r("root widget token"),k=e=>{const t=o.select(e);return a(W,t),t},j=()=>u(W),O=e=>{const t=j();if(!t)throw new Error("Need a root widget in Match tag");t.children.forEach(e=>e.dispose()),Object.entries(e).forEach(([e,r])=>{"default"===e&&t.createWidget(r),t.createWidget(r,e),t.forceUpdate()})},E=()=>({setRootWidget:k,getRootWidget:j,registerWidgets:O}),N="Route",P={name:N,inheritAttrs:!1,props:{path:String,slotName:{type:String,required:!0},namespace:String,computedMatched:Object,widgets:Object,widget:String},setup(e,{slots:t}){const{widget:r,widgets:o}=e,{path:u,namespace:l,computedMatched:a}=i(e),{currentSegmentGroup:c}=S(null==l?void 0:l.value),{matched:s,setMatched:d}=h(),{registerWidgets:p}=E();let g={};if(r){const t=b.Selector({widget:r})||n.Selector({widget:r});if(!t||!e.slotName)throw new Error(`路由${u}对应的页面:${r}匹配异常`);g={[e.slotName]:t},p(g)}return o&&p(o),()=>{var e;if(!t.default||!c.value)return!c.value&&t.default?t.default():null;let r;const o=t.default();return r=(null==a?void 0:a.value)?a.value:u.value?w(null===(e=c.value)||void 0===e?void 0:e.segments,{path:u.value}):s,r&&d(r),r?o:null}}},$=P,x=()=>{const e=c();if(!e)throw new Error("No vue instance in current component.");return{router:e.appContext.config.globalProperties.$router}},G=()=>x().router,A="Redirect",B={name:A,props:{to:String},setup(e){const{router:t}=x();s(()=>{t.navigate(e.to,{replaceUrl:!0})})}},C=[N,A],T=e=>e.reduce((e,t)=>[...e,...t.type===d?T(t.children):[t]],[]),U={name:"Match",props:{namespace:String,rootToken:String},setup(e,{slots:t}){const{rootToken:r}=e,{namespace:o}=i(e),{currentSegmentGroup:n}=S(null==o?void 0:o.value),{matched:u,setMatched:a}=h();let c;if(r){const{setRootWidget:e}=E(),t=e(r);c=t.getNodeCodeRef()}const s=l(()=>{if(!t.default)return null;let e,r=[];n.value&&(r=n.value.segments);let o=null;return T(t.default()).forEach(t=>{if(o||!p(t))return;const n=t.type,{name:l}=n;if(!C.includes(l))return;e=t;const{path:a}=t.props;o=a?w(r,{path:a}):u}),o?(a(o),{currentMatched:o,element:e}):null}),d=g(null);return v([s],([e],[t])=>{d.value&&(null==e?void 0:e.currentMatched.path)===(null==t?void 0:t.currentMatched.path)||(d.value=e)},{immediate:!0}),()=>{if(d.value&&c.value)return f(d.value.element,{key:d.value.element,computedMatched:d.value.currentMatched})}}},_=U,q=()=>{const e=R(),t=m(null);return e.activatedRoute.subscribe(e=>{t.value=e}),{install:r=>{if(r.config.globalProperties.$router)return void console.warn("Already install vue router: ",r.config.globalProperties.$router);r.config.globalProperties.$router=e,r.component("Route",$),r.component("Match",_),r.component("Redirect",B);const o=l(()=>t.value);r.provide(M,o),e.ignite()}}};export{b as BaseRouterWidget,_ as Match,A as REDIRECT_COMPONENT_NAME,N as ROUTE_COMPONENT_NAME,B as Redirect,$ as Route,RouterWidget,q as createVueRouter,G as getRouter,x as useRouter};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oinone/kunlun-vue-router",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.13",
|
|
4
4
|
"main": "index.ts",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prebuild": "rimraf dist",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"doc": "typedoc --out docs src/index.ts"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@oinone/kunlun-vue-widget": "6.2.
|
|
15
|
+
"@oinone/kunlun-vue-widget": "6.2.13"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@oinone/kunlun-router": "~6.2.0",
|