UNPKG

@nocobase/plugin-china-region

Version:

Provides data and field type for administrative divisions of China.

2 lines (1 loc) 2.07 kB
(function(n,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("@nocobase/client"),require("@formily/react")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","@formily/react"],e):(n=typeof globalThis!="undefined"?globalThis:n||self,e(n["@nocobase/plugin-china-region"]={},n["@nocobase/client"],n["@formily/react"]))})(this,function(n,e,i){"use strict";var y=Object.defineProperty,L=Object.defineProperties;var P=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var m=(n,e,i)=>e in n?y(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,v=(n,e)=>{for(var i in e||(e={}))R.call(e,i)&&m(n,i,e[i]);if(p)for(var i of p(e))x.call(e,i)&&m(n,i,e[i]);return n},C=(n,e)=>L(n,P(e));var S=(n,e,i)=>new Promise((f,t)=>{var u=o=>{try{r(i.next(o))}catch(s){t(s)}},a=o=>{try{r(i.throw(o))}catch(s){t(s)}},r=o=>o.done?f(o.value):Promise.resolve(o.value).then(u,a);r((i=i.apply(n,e)).next())});const f=a=>{const o=i.useField().componentProps.maxLevel;return e.useRequest({resource:"chinaRegions",action:"list",params:{sort:"code",paginate:!1,filter:{level:1}}},C(v({},a),{onSuccess(s){var l;a==null||a.onSuccess({data:((l=s==null?void 0:s.data)==null?void 0:l.map(c=>(o!==1&&(c.isLeaf=!1),c)))||[]})},manual:!0}))},t=()=>{const a=e.useAPIClient(),r=i.useField(),o=r.componentProps.maxLevel;return s=>{var c;const l=s[s.length-1];((c=l==null?void 0:l.children)==null?void 0:c.length)>0||(l.loading=!0,a.resource("chinaRegions").list({sort:"code",paginate:!1,filter:{parentCode:l.code}}).then(({data:d})=>{var h;l.loading=!1,l.children=((h=d==null?void 0:d.data)==null?void 0:h.map(g=>(o>g.level&&(g.isLeaf=!1),g)))||[],r.dataSource=[...r.dataSource]}))}};class u extends e.Plugin{load(){return S(this,null,function*(){this.app.addScopes({useChinaRegionDataSource:f,useChinaRegionLoadData:t})})}}n.PluginChinaRegionClient=u,n.default=u,Object.defineProperties(n,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});