2024-12-26 16:06:19 +08:00
var Si = Object . defineProperty ;
var Ft = ( e ) => {
throw TypeError ( e ) ;
} ;
var Pi = ( e , t , i ) => t in e ? Si ( e , t , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : i } ) : e [ t ] = i ;
var S = ( e , t , i ) => Pi ( e , typeof t != "symbol" ? t + "" : t , i ) , Ot = ( e , t , i ) => t . has ( e ) || Ft ( "Cannot " + i ) ;
var y = ( e , t , i ) => ( Ot ( e , t , "read from private field" ) , i ? i . call ( e ) : t . get ( e ) ) , R = ( e , t , i ) => t . has ( e ) ? Ft ( "Cannot add the same private member more than once" ) : t instanceof WeakSet ? t . add ( e ) : t . set ( e , i ) , B = ( e , t , i , n ) => ( Ot ( e , t , "write to private field" ) , n ? n . call ( e , i ) : t . set ( e , i ) , i ) ;
var Lt = ( e , t , i , n ) => ( {
set _ ( r ) {
B ( e , t , r , i ) ;
} ,
get _ ( ) {
return y ( e , t , n ) ;
}
} ) ;
import { jsx as d , jsxs as O } from "react/jsx-runtime" ;
import k , { useEffect as L , useState as N , useCallback as Y , useMemo as H , useRef as U , useContext as oe , useId as Le , isValidElement as Ti , useLayoutEffect as $i } from "react" ;
import c from "lodash" ;
import Kt from "immutability-helper" ;
import { Form as Ge , Input as Ni , Button as Xe , Pagination as Ri , Tree as Ei , Breadcrumb as Fi , Table as Oi , Empty as Li , Popconfirm as Ai , Tooltip as ji , Popover as Vi } from "antd" ;
import { useMergedState as Ii } from "rc-util" ;
import I from "classnames" ;
import Z , { FieldContext as Jt , Field as _t } from "rc-field-form" ;
import { useParams as Mi , generatePath as zi , createBrowserRouter as Di , useInRouterContext as qi , Navigate as Bi } from "react-router-dom" ;
import b from "prop-types" ;
import * as At from "react-is" ;
import { useNotification as Ui } from "rc-notification" ;
2024-12-26 16:35:36 +08:00
import { N as Fe , a as Oe , T as gt , S as Wi } from "./vender-DMK1apIA.js" ;
2024-12-26 16:06:19 +08:00
import "rc-util/lib/hooks/useMergedState" ;
import Hi from "rc-drawer" ;
import Ki from "rc-dialog" ;
var Te , Ve , $e , ce , ke , xe ;
class Gt {
constructor ( t , i ) {
R ( this , Te , /* @__PURE__ */ new Map ( ) ) ;
R ( this , Ve , ! 0 ) ;
R ( this , $e , [ ] ) ;
R ( this , ce ) ;
R ( this , ke , ( ) => y ( this , ce ) ) ;
R ( this , xe , ( ) => Promise . resolve ( ) ) ;
S ( this , "get" , ( ... t ) => new Promise ( ( i , n ) => {
const r = JSON . stringify ( t ) ;
if ( y ( this , Te ) . has ( r ) ) return i ( y ( this , xe ) . call ( this , y ( this , ce ) , ... t ) ) ;
if ( y ( this , ce ) === void 0 ) y ( this , $e ) . push ( [ t , i , n ] ) , y ( this , Ve ) && ( B ( this , Ve , ! 1 ) , Promise . resolve ( typeof y ( this , ke ) == "function" ? y ( this , ke ) . call ( this ) : y ( this , ke ) ) . then ( ( a ) => B ( this , ce , a || null ) ) . finally ( ( ) => {
y ( this , $e ) . forEach ( ( [ a , s , o ] ) => {
try {
const l = y ( this , xe ) . call ( this , y ( this , ce ) , ... a ) ;
y ( this , Te ) . set ( JSON . stringify ( a ) , l ) , s ( l ) ;
} catch ( l ) {
o ( l ) ;
}
} ) , y ( this , $e ) . length = 0 ;
} ) ) ;
else {
const a = y ( this , xe ) . call ( this , y ( this , ce ) , ... t ) ;
y ( this , Te ) . set ( r , a ) , i ( a ) ;
}
} ) ) ;
B ( this , xe , i ) , B ( this , ke , t ) ;
}
}
Te = new WeakMap ( ) , Ve = new WeakMap ( ) , $e = new WeakMap ( ) , ce = new WeakMap ( ) , ke = new WeakMap ( ) , xe = new WeakMap ( ) ;
const rr = ( ) => d ( "div" , { children : "Empty" } ) , Be = k . createContext ( { ele : { } , mount : ( ) => {
} , unmount : ( ) => {
} } ) , G = ( { rootClassName : e , className : t , children : i , actions : n , title : r , subTitle : a , extras : s , style : o = { } } ) => {
const { mount : l , unmount : u } = k . useContext ( Be ) ;
return n && G . Action ( { children : n } ) , r && G . Title ( { children : r } ) , a && G . SubTitle ( { children : a } ) , s && G . Extra ( { children : s } ) , L ( ( ) => ( l ( "rootClassName" , e ) , ( ) => u ( e ) ) , [ e ] ) , d ( "div" , { className : I ( "ff-container" , t ) , style : o , children : i } ) ;
} , _e = ( e ) => ( { children : t , className : i } ) => {
const { mount : n , unmount : r } = k . useContext ( Be ) ;
return L ( ( ) => ( n ( e , k . createElement ( "div" , { key : ` ff- ${ e } ` , className : I ( ` ff-popup- ${ e } ` , i ) } , t ) ) , ( ) => r ( e ) ) , [ i , t ] ) , null ;
} ;
G . Action = _e ( "actions" ) , G . Title = _e ( "title" ) , G . SubTitle = _e ( "sub-title" ) , G . Extra = _e ( "extras" ) , G . propTypes = { className : b . string , style : b . object , title : b . any , subTitle : b . any , actions : b . any , extras : b . any } ;
const ar = ( ) => d ( G , { className : "ff-loading" , children : O ( "div" , { className : "loader" , children : [ O ( "div" , { className : "square" , children : [ d ( "span" , { } ) , d ( "span" , { } ) , d ( "span" , { } ) ] } ) , O ( "div" , { className : "square" , children : [ d ( "span" , { } ) , d ( "span" , { } ) , d ( "span" , { } ) ] } ) , O ( "div" , { className : "square" , children : [ d ( "span" , { } ) , d ( "span" , { } ) , d ( "span" , { } ) ] } ) , O ( "div" , { className : "square" , children : [ d ( "span" , { } ) , d ( "span" , { } ) , d ( "span" , { } ) ] } ) ] } ) } ) , sr = ( ) => d ( "div" , { children : "NotFound" } ) , Yt = ( { children : e } ) => {
const [ t , i ] = N ( { } ) , n = Y ( ( a , s ) => i ( ( o ) => ( { ... o , [ a ] : s } ) ) , [ ] ) , r = Y ( ( a ) => i ( ( s ) => ( { ... s , [ a ] : void 0 } ) ) , [ ] ) ;
return typeof ( e == null ? void 0 : e . type ) == "string" ? e : d ( Be . Provider , { value : { ele : t , mount : n , unmount : r } , children : k . cloneElement ( e , { className : t . rootClassName , title : t . title , subTitle : t [ "sub-title" ] , actions : t . actions , extras : t . extras } ) } ) ;
} ;
Yt . propTypes = { children : b . element . isRequired } ;
const jt = { close : [ "M563.8 512l262.5-312.9c4.4-5.2 0.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9c-4.4 5.2-0.7 13.1 6.1 13.1h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" ] , check : [ "M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474c-6.1-7.7-15.3-12.2-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1 0.4-12.8-6.3-12.8z" ] , info : [ "M512 224m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" , "M544 392h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z" ] } , vt = ( { type : e , props : t } ) => d ( "i" , { ... t , children : d ( "svg" , { viewBox : "0 0 1024 1024" , width : "1em" , height : "1em" , fill : "currentColor" , children : ( jt [ e ] || jt . info ) . map ( ( i , n ) => d ( "path" , { d : i } , n ) ) } ) } ) , Xt = ( { className : e , content : t , icon : i , $close : n } ) => O ( k . Fragment , { children : [ i && d ( "div" , { className : I ( "ff-notification-icon" , e ) , children : d ( vt , { type : i } ) } ) , t ] } ) , Ji = ( { } ) => d ( G , { children : "Confirm" } ) ;
2024-12-26 16:35:36 +08:00
var ge , Ne ;
2024-12-26 16:06:19 +08:00
const te = class te {
constructor ( ) {
R ( this , Ne , /* @__PURE__ */ new Map ( ) ) ;
S ( this , "init" , ( t ) => B ( this , Ne , new Map ( t ) ) ) ;
S ( this , "check" , ( t ) => ! y ( this , Ne ) . has ( t ) || y ( this , Ne ) . get ( t ) ) ;
2024-12-26 16:35:36 +08:00
if ( y ( te , ge ) ) return y ( te , ge ) ;
2024-12-26 16:06:19 +08:00
}
} ;
2024-12-26 16:35:36 +08:00
ge = new WeakMap ( ) , Ne = new WeakMap ( ) , R ( te , ge , null ) , S ( te , "getInstance" , ( ) => ( y ( te , ge ) || B ( te , ge , new te ( ) ) , y ( te , ge ) ) ) ;
let pt = te ;
const _i = pt . getInstance ( ) , Gi = ( e , t , i = "children" ) => {
2024-12-26 16:06:19 +08:00
if ( c . isEmpty ( e ) ) return { } ;
const n = c . find ( e , [ "value" , t ] ) ;
if ( ! c . isEmpty ( n ) ) return n ;
const r = e . length ;
for ( let a = 0 ; a < r ; a ++ ) {
const { [ i ] : s } = e [ a ] , o = Gi ( s , t , i ) ;
if ( ! c . isEmpty ( o ) ) return o ;
}
return { } ;
} , Qt = ( e = "Input" , t = "@pkg/ff/grid-layout-forms" ) => e != null && e . startsWith ( "@" ) || e != null && e . startsWith ( "blob:" ) ? e : ` ${ t } / ${ e } ` ;
2024-12-26 16:35:36 +08:00
var pe , Ie ;
2024-12-26 16:06:19 +08:00
const ie = class ie {
constructor ( ) {
R ( this , Ie , null ) ;
S ( this , "init" , ( t ) => B ( this , Ie , t ) ) ;
S ( this , "get" , ( t , i ) => c . get ( y ( this , Ie ) , t , i ) ) ;
2024-12-26 16:35:36 +08:00
if ( y ( ie , pe ) ) return y ( ie , pe ) ;
2024-12-26 16:06:19 +08:00
}
} ;
2024-12-26 16:35:36 +08:00
pe = new WeakMap ( ) , Ie = new WeakMap ( ) , R ( ie , pe , null ) , S ( ie , "getInstance" , ( ) => ( y ( ie , pe ) || B ( ie , pe , new ie ( ) ) , y ( ie , pe ) ) ) ;
2024-12-26 16:06:19 +08:00
let mt = ie ;
const Ae = mt . getInstance ( ) , Vt = { null2json : ( e ) => Object . create ( ) , null2array : ( e ) => [ ] , null2number : ( e ) => 0 , null2bool : ( e ) => ! 1 , null2string : ( e ) => "" , null2integer : ( e ) => 0 , null2float : ( e ) => 0 , string2json : ( e ) => e ? JSON . parse ( e ) : "{}" , string2array : ( e ) => e . substr ( 0 , 1 ) === "[" && e . substr ( - 1 ) === "]" ? JSON . parse ( e ) : e . split ( "," ) , string2number : ( e ) => e == "" ? 0 : + e , string2integer : ( e ) => e == "" ? 0 : + e , string2float : ( e ) => e == "" ? 0 : + e , string2bool : ( e ) => {
switch ( ` ${ e } ` . toLowerCase ( ) ) {
case "0" :
case "false" :
case "[]" :
case "{}" :
return ! 1 ;
}
return ! ! e ;
} , string2string : ( e ) => e , json2json : ( e ) => e , json2array : ( e ) => e ? Object . values ( e ) : [ ] , json2number : ( e ) => Object . keys ( e ) . length , json2integer : ( e ) => Object . keys ( e ) . length , json2float : ( e ) => Object . keys ( e ) . length , json2bool : ( e ) => Object . keys ( e ) . length > 0 , json2string : ( e ) => e ? JSON . stringify ( e ) : "" , array2json : ( e ) => ( { ... e } ) , array2array : ( e ) => e , array2number : ( e ) => e . length , array2integer : ( e ) => e . length , array2float : ( e ) => e . length , array2bool : ( e ) => e . length > 0 , array2string : ( e ) => JSON . stringify ( e ) , number2json : ( e ) => ( { } ) , number2array : ( e ) => [ e ] , number2number : ( e ) => e , number2integer : ( e ) => e , number2float : ( e ) => e , number2bool : ( e ) => ! ! e , number2string : ( e ) => e . toString ( ) , boolean2json : ( e ) => ( { } ) , boolean2array : ( e ) => [ ] , boolean2number : ( e ) => + e , boolean2integer : ( e ) => + e , boolean2float : ( e ) => + e , boolean2bool : ( e ) => e , boolean2string : ( e ) => e ? "true" : "false" } , Q = ( e , t ) => {
let i = "string" ;
i = Array . isArray ( e ) ? "array" : typeof e , c . isObject ( e ) && ( i = "json" ) ;
const n = ` ${ i } 2 ${ t } ` ;
return Reflect . has ( Vt , n ) ? Vt [ n ] ( e ) : e ;
} , Zt = ( e = { } , t = { } , i = { } , n = "" ) => ei ( e , ( r , a ) => a === "type" && r === "code" ) ? ti ( e , t , i , n ) : ii ( e , t , n ) , ei = ( e , t = ( ) => ! 1 ) => c . some ( e , ( i ) => ! ! c . some ( i , t ) || ( c . isEmpty ( i ) || ! c . isPlainObject ( i ) && ! c . isArray ( i ) ? void 0 : ei ( i , t ) ) ) , ti = async ( e = { } , t = { } , i = { } , n = "" ) => {
let r = /* @__PURE__ */ Object . create ( null ) ;
for ( let a in e ) {
let s ;
if ( Reflect . has ( e [ a ] , "type" ) && [ "code" , "field" , "router" , "query" , "string" ] . includes ( e [ a ] . type ) ) {
const { type : o , value : l = "" , default : u = n } = e [ a ] ;
switch ( o ) {
case "code" :
s = await Ce . exec ( l , t , i ) ;
break ;
case "field" :
s = c . get ( t , l ) ? ? c . get ( t , l . substring ( l . indexOf ( "." ) + 1 ) ) ;
break ;
case "router" :
case "query" :
s = ue . getPageParams ( l ) ;
break ;
case "string" :
s = l ;
}
s ? ? ( s = u ) ;
} else s = await ti ( e [ a ] , t , i , n ) ;
c . set ( r , a , s ) ;
}
return r ;
} , ii = ( e = { } , t = { } , i = "" ) => Object . keys ( e || { } ) . reduce ( ( n , r ) => {
if ( c . isPlainObject ( e [ r ] ) ) {
let a ;
if ( Reflect . has ( e [ r ] , "type" ) && [ "field" , "router" , "query" , "string" ] . includes ( e [ r ] . type ) ) {
const { type : s , value : o = "" , default : l = i } = e [ r ] ;
switch ( s ) {
case "field" :
a = c . get ( t , o ) ? ? c . get ( t , o . substring ( o . indexOf ( "." ) + 1 ) ) ;
break ;
case "router" :
case "query" :
a = ue . getPageParams ( o ) ;
break ;
case "string" :
a = o ;
}
a ? ? ( a = l ) ;
} else a = ii ( e [ r ] , t , i ) ;
c . set ( n , r , a ) ;
}
return n ;
} , { } ) , ct = ( e , t ) => e && typeof e == "object" ? Array . isArray ( e ) ? e . map ( ( i ) => ct ( i , t ) ) : Object . keys ( e ) . reduce ( ( i , n ) => ( t [ n ] ? i [ t [ n ] ] = ct ( e [ n ] , t ) : i [ n ] = ct ( e [ n ] , t ) , i ) , { } ) : e , or = ( ) => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" . replace ( /[xy]/g , ( e ) => {
const t = 16 * Math . random ( ) | 0 ;
return ( e === "x" ? t : 3 & t | 8 ) . toString ( 16 ) ;
} ) , lr = ( e ) => {
var t , i ;
return e ? ( i = ( t = e . match ( /^@pkg(?:[^\/]*\/){3}(?<name>[^\/]+)/ ) ) == null ? void 0 : t . groups ) == null ? void 0 : i . name : "" ;
} , cr = ( e ) => {
var t , i ;
return e ? ( i = ( t = e . match ( /^@pkg(?:[^\/]*\/){2}(?<category>[^\/]+)/ ) ) == null ? void 0 : t . groups ) == null ? void 0 : i . category : "" ;
} , dr = ( e ) => {
var t , i ;
return e ? ( i = ( t = e . match ( /^@pkg(?:[^\/]*\/){1}(?<owner>[^\/]+)/ ) ) == null ? void 0 : t . groups ) == null ? void 0 : i . owner : "" ;
} ;
var Ze , Me , ze , et ;
const tt = class tt {
constructor ( ... t ) {
R ( this , Me , [ ] ) ;
R ( this , ze , ( t ) => {
var i ;
for ( let n of t ) Array . isArray ( n [ 0 ] ) ? y ( this , ze ) . call ( this , n ) : y ( this , Me ) . push ( y ( i = tt , Ze ) . call ( i , n [ 0 ] , n [ 1 ] ) ) ;
} ) ;
S ( this , "toValue" , async ( t , i = null ) => {
const n = { getValue : ( ) => t , getRecord : ( ) => i } ;
return await y ( this , Me ) . reduce ( async ( r , a ) => {
try {
const s = await r ;
return ( await a ) . call ( n , s ) ;
} catch ( s ) {
return console . error ( s ) , r ;
}
} , t ) ;
} ) ;
S ( this , "toRender" , ( t , i , n = null ) => k . createElement ( y ( this , et ) , { value : t , record : i } , n ) ) ;
R ( this , et , ( { value : t , record : i , children : n } ) => {
const [ r , a ] = N ( n ) ;
return at ( ( ) => {
let s = ! 1 ;
return a ( n ) , this . toValue ( t , i ) . then ( ( o ) => Q ( o , "string" ) ) . then ( ( o ) => ! s && a ( o ) ) . catch ( ( o ) => ! s && a ( ` ${ o } ` ) ) , ( ) => s = ! 0 ;
} , [ t , i ] ) , r ;
} ) ;
y ( this , ze ) . call ( this , t ) ;
}
} ;
Ze = new WeakMap ( ) , Me = new WeakMap ( ) , ze = new WeakMap ( ) , et = new WeakMap ( ) , R ( tt , Ze , c . memoize ( ( t , i ) => se . getWidgetComponent ( t ) . then ( ( n ) => {
var r ;
return ( ( r = n . default ) == null ? void 0 : r . call ( n , i ) ) || ( ( a ) => a ) ;
} ) , ( t , i ) => ` ${ t } :: ${ Q ( i , "string" ) } ` ) ) ;
let Qe = tt ;
const Yi = ( e , t = { } ) => H ( ( ) => e == null ? void 0 : e . map ( ( { widgetByJs : i , widgetByJsSetting : n , ... r } , a ) => i ? { ... r , render : ( s , o ) => new Qe ( [ i , n ] ) . toRender ( s , o , "-" ) } : r ) , [ e , t ] ) , ur = ( e ) => {
const [ t , i ] = N ( { } ) ;
return L ( ( ) => {
let n = ! 1 ;
return e && F . get ( ` /api/_/ ${ e } ` ) . then ( ( r ) => c . pick ( r , [ "uuid" , "name" , "code" , "resource" , "marginX" , "marginY" , "cols" , "rowHeight" , "primaryKey" , "columns" , "itemOperations" , "batchOperations" , "isConditionFormLayout" , "layout" , "tabs" , "pageSize" , "layoutConfig" ] ) ) . then ( ( r ) => ! n && i ( r ) ) , ( ) => n = ! 0 ;
} , [ e ] ) , t ;
2024-12-26 16:35:36 +08:00
} , gr = ( e , t = { } ) => {
2024-12-26 16:06:19 +08:00
const [ i , n ] = N ( { dataSource : [ ] } ) ;
return Ue ( ( ) => {
let r = ! 1 ;
return e && F . get ( ` /api/ ${ e } / ${ F . encode ( { page : 1 , ... t } )} ` ) . then ( ( a ) => ! r && n ( a ) ) , ( ) => r = ! 0 ;
} , [ e , t ] ) , i ;
} , ni = ( e = [ ] , t = /* @__PURE__ */ new Map ( ) , i = "id" , n ) => {
const r = Y ( n ? ( a ) => c . get ( a , i , c . get ( a , [ n , i ] ) ) : ( a ) => c . get ( a , i ) , [ i , n ] ) ;
return Y ( ( a ) => e == null ? void 0 : e . filter ( ( s ) => ! s . uuid || ! t . has ( s . uuid ) || t . get ( s . uuid ) . includes ( ` ${ r ( a ) } ` ) ) , [ e , t , r ] ) ;
} , ht = ( e = [ ] , t = [ ] , i = /* @__PURE__ */ new Map ( ) , n = "id" , r ) => {
const a = Y ( r ? ( s ) => c . get ( s , n , c . get ( s , [ r , n ] ) ) : ( s ) => c . get ( s , n ) , [ n , r ] ) ;
return H ( ( ) => {
if ( c . isEmpty ( t ) || ! t . some ( ( { uuid : o } ) => _i . check ( o ) ) ) return ! 1 ;
if ( c . isEmpty ( i ) || c . isEmpty ( e ) ) return ! 0 ;
const s = e . map ( ( o ) => ` ${ a ( o ) } ` ) ;
return t . some ( ( { uuid : o } ) => ! o || ! i . has ( o ) || i . get ( o ) . some ( ( l ) => s . includes ( ` ${ l } ` ) ) ) ;
} , [ t , e , i , a ] ) ;
} , Xi = ( e , t , i = "id" , n = null ) => {
const r = rt ( ) , a = U ( ! 1 ) , s = U ( e . dataSource ) , o = U ( e . itemOperationsAccess ) ;
return L ( ( ) => ( s . current = e . dataSource , o . current = e . itemOperationsAccess , ( ) => a . current = ! 1 ) , [ e . dataSource , e . itemOperationsAccess ] ) , a . current && ( e . dataSource = s . current , e . itemOperationsAccess = o . current ) , [ e , ( l = 0 , u = null ) => {
2024-12-26 16:35:36 +08:00
var p , g ;
if ( a . current = ! 1 , l === 1 ) return ( p = e . onReload ) == null ? void 0 : p . call ( e ) ;
2024-12-26 16:06:19 +08:00
if ( l === 2 ) {
const f = c . get ( u , "__PARENT_ID__" , "" ) , m = c . get ( u , i , c . get ( u , [ n , i ] , "" ) ) , h = c . findIndex ( s . current , [ "__PARENT_ID__" , f ] ) , C = c . findIndex ( h > - 1 ? c . get ( s . current , [ h , "children" ] ) : s . current , [ i , m ] ) ;
2024-12-26 16:35:36 +08:00
if ( C === - 1 ) return ( g = e . onReload ) == null ? void 0 : g . call ( e ) ;
2024-12-26 16:06:19 +08:00
Promise . all ( [ F . get ( ` /api/ ${ t } /detail/ ${ m } ` ) , F . post ( ` /api/ ${ t } /list-operations-access ` , { ids : m } ) ] ) . then ( ( [ w , v ] ) => {
const $ = c . get ( s . current , h > - 1 ? [ h , "children" , C , "children" ] : [ C , "children" ] ) ;
s . current = Kt ( s . current , h > - 1 ? { [ h ] : { children : { $splice : [ [ C , 1 , { ... w , children : $ } ] ] } } } : { $splice : [ [ C , 1 , { ... w , children : $ } ] ] } ) ;
const T = new Map ( v ) ;
o . current . forEach ( ( z , M ) => {
var q ;
( q = T . get ( M ) ) != null && q . some ( ( A ) => A == m ) || o . current . set ( M , z . filter ( ( A ) => A !== m ) ) ;
} ) , T . forEach ( ( z , M ) => {
o . current . has ( M ) ? o . current . set ( M , c . uniq ( [ ... o . current . get ( M ) || [ ] , ... z ] ) ) : o . current . set ( M , z ) ;
} ) ;
} ) . then ( ( ) => {
a . current = ! 0 , r ( ) ;
} ) ;
}
} ] ;
} , Qi = ( e , t ) => {
const i = rt ( ) , n = U ( t ) , r = U ( /* @__PURE__ */ new Map ( ) ) , a = U ( [ ] ) , s = c . throttle ( ( l ) => {
2024-12-26 16:35:36 +08:00
a . current = [ ] , F . list ( e , c . pick ( { ... n . current , ... l } , [ "tab" , "page" , "pageSize" , "condition" , "sider" , "keyword" ] ) ) . then ( ( { keyword : u , condition : p , total : g , tab : f , sider : m , page : h , pageSize : C , operationsAccess : w , dataSource : v } ) => {
n . current = { tab : f , condition : p , sider : m , keyword : u , total : g , pageSize : C , page : v != null && v . length ? h : 1 } , a . current = v , r . current = new Map ( w ) , i ( ) ;
2024-12-26 16:06:19 +08:00
} ) ;
} , 380 , { leading : ! 1 , trailing : ! 0 } ) ;
at ( ( ) => {
a . current = [ ] , e && s ( t ) ;
} , [ e , t ] ) ;
const o = H ( ( ) => c . pick ( n . current , [ "total" , "tab" , "page" , "pageSize" , "condition" , "sider" , "keyword" ] ) , [ n . current ] ) ;
return Object . assign ( o , { onTabChange : ( l ) => s ( { tab : l , page : 1 } ) , onPageChange : ( l , u ) => s ( { page : l , pageSize : u } ) , onPageSizeChange : ( l ) => s ( { pageSize : l , page : 1 } ) , onConditionChange : ( l , u ) => s ( { keyword : u , condition : Kt ( n . current . condition || { } , { $merge : l || { } } ) , page : 1 } ) , onSiderChange : ( l ) => s ( { sider : l , page : 1 } ) , onKeywordChange : ( l ) => s ( { keyword : l , page : 1 } ) , itemOperationsAccess : r . current , dataSource : a . current , onReload : s } ) ;
2024-12-26 16:35:36 +08:00
} , Zi = ( { listCode : e , className : t , layouts : i , dataSource : n , isPaginate : r , isItemOperations : a , isBatchOperations : s , batchOperations : o , itemOperations : l , itemOperationsAccess : u , resource : p , primaryKey : g , title : f , itemGridLayout : m , $setting : h , tabs : C , isConditionFormLayout : w , isTreeSider : v , treeSiderConfig : $ } ) => {
const { classNames : T , onClickCallback : z } = oe ( ee ) , M = ni ( l , u , g , p ) , q = Y ( ( A , j , x ) => d ( en , { className : I ( "ff-data-list-framework-item" , T . item ) , operations : a ? M ( j ) : [ ] , data : p ? { [ p ] : j } : j , children : A , onClickCallback : z } ) , [ p , g , a , z , l , u ] ) ;
return O ( "div" , { className : I ( "ff-data-list-framework" , t ) , children : [ d ( i . sider , { isTreeSider : v , ... $ } ) , O ( "div" , { className : I ( "ff-data-list-container" , T == null ? void 0 : T . container ) , children : [ d ( i . filter , { isConditionFormLayout : w } ) , d ( i . toolbar , { title : f , tabs : C } ) , d ( pn , { ... m , style : { "--col-num" : ( h == null ? void 0 : h . colNum ) || 1 } , primaryKey : g , itemRender : q , dataSource : n } ) , d ( i . footer , { isPaginate : r , isOperations : s , operations : o } ) ] } ) ] } ) ;
} , en = ( { className : e , operations : t , children : i , data : n , onClickCallback : r } ) => O ( "div" , { className : I ( "data-list-grid-layout-item-container" , e ) , children : [ i , ! ! ( t != null && t . length ) && d ( "div" , { className : "data-list-grid-layout-item-actions" , children : t . map ( ( a ) => d ( "span" , { className : "data-list-grid-layout-item-action" , children : d ( P . Link , { uuid : a . uuid , type : a . type , name : a . name , widget : a . widget , widgetType : a . widgetType , widgetProps : a . widgetProps , widgetSetting : a . widgetSetting , widgetContainerProps : a . widgetContainerSetting , data : n , confirm : a . confirm , onAfterClick : ( s ) => s !== ! 1 && ( r == null ? void 0 : r ( a . isRefresh , n ) ) } , a . uuid || Le ( ) ) } , ( a == null ? void 0 : a . uuid ) || Le ( ) ) ) } ) ] } ) , tn = ( { listCode : e , className : t , layouts : i , dataSource : n , columns : r , isItemOperations : a , isBatchOperations : s , batchOperations : o , itemOperations : l , itemOperationsAccess : u , resource : p , primaryKey : g , title : f , tabs : m , isPaginate : h , isTreeSider : C , treeSiderConfig : w , isConditionFormLayout : v , ... $ } ) => {
const { classNames : T , onClickCallback : z } = oe ( ee ) , M = ni ( l , u , g , p ) , q = ht ( n , l , u , g , p ) ;
return O ( "div" , { className : I ( "ff-data-table-framework" , t ) , children : [ d ( i . sider , { isTreeSider : C , ... w } ) , O ( "div" , { className : I ( "ff-data-table-container" , T == null ? void 0 : T . container ) , children : [ d ( i . filter , { isConditionFormLayout : v } ) , d ( i . toolbar , { title : f , tabs : m } ) , d ( ln , { ... $ , primaryKey : g , className : "ff-data-table-content" , columns : r , dataSource : n , operationRender : q ? ( A ) => {
2024-12-26 16:06:19 +08:00
var j ;
return d ( "div" , { className : "ff-data-table-actions" , children : ( j = M ( A ) ) == null ? void 0 : j . map ( ( x , E ) => d ( P . Link , { size : "small" , uuid : x . uuid , type : x . type , name : x . name , widget : x . widget , widgetType : x . widgetType , widgetProps : x . widgetProps , widgetData : x . widgetData , widgetSetting : x . widgetSetting , widgetContainerProps : x . widgetContainerSetting , data : A , confirm : x . confirm , onAfterClick : ( V ) => V !== ! 1 && ( z == null ? void 0 : z ( x . isRefresh , A ) ) } , x . uuid || E ) ) } ) ;
} : null } ) , d ( i . footer , { isPaginate : h , isOperations : s , operations : o } ) ] } ) ] } ) ;
} , ee = k . createContext ( { listCode : "" , classNames : { } , getBase62params : ( e , t ) => {
} , onReload : ( ) => {
} , onClickCallback : ( ) => {
} , onConditionChange : ( ) => {
} , onTabChange : ( ) => {
} , onSiderChange : ( ) => {
} , onKeywordChange : ( ) => {
} , onPageChange : ( ) => {
} , onPageSizeChange : ( ) => {
} } ) , ri = ( e , t , i , n , r = { } , a = 0 ) => {
const s = { "--grid-layout-h" : ` ${ n } ` , "--grid-layout-w" : ` ${ i } ` , "--grid-layout-x" : ` ${ e } ` , "--grid-layout-y" : ` ${ t } ` , "--grid-layout-row-height-offset" : "0px" } ;
return r != null && r . autoHeight ? s . height = "fit-content" : s [ "--grid-layout-row" ] = ` ${ n } ` , r != null && r . alignItems && ( s [ "--grid-layout-box-align-items" ] = r . alignItems ) , r != null && r . justifyContent && ( s [ "--grid-layout-box-justify-content" ] = r . justifyContent ) , s [ "--grid-layout-box-margin" ] = It ( r == null ? void 0 : r . marginTop , r == null ? void 0 : r . marginRight , r == null ? void 0 : r . marginBottom , r == null ? void 0 : r . marginLeft ) , s [ "--grid-layout-box-padding" ] = It ( r == null ? void 0 : r . paddingTop , r == null ? void 0 : r . paddingRight , r == null ? void 0 : r . paddingBottom , r == null ? void 0 : r . paddingLeft ) , a && ( s . height = ` ${ a } px ` ) , s ;
2024-12-26 16:35:36 +08:00
} , It = ( e , t , i , n ) => ` ${ e || 0 } px ${ t || 0 } px ${ i || 0 } px ${ n || 0 } px ` , pr = ( e = "Text" , t = "@pkg/ff/grid-layouts" ) => e != null && e . startsWith ( "@" ) || e != null && e . startsWith ( "blob:" ) ? e : ` ${ t } / ${ e } ` , ai = ( { className : e , isConditionFormLayout : t } ) => {
2024-12-26 16:06:19 +08:00
var f , m ;
2024-12-26 16:35:36 +08:00
const [ i , n ] = N ( { } ) , { listCode : r , onKeywordChange : a , onConditionChange : s , getBase62params : o , classNames : l } = k . useContext ( ee ) , { keyword : u , condition : p } = ( o == null ? void 0 : o ( ) ) || { } , [ g ] = Ge . useForm ( ) ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
r && t && F . get ( ` /api/_/ ${ r } /list-condition-form-layout ` ) . then ( ( { resource : h , marginX : C , marginY : w , rowHeight : v , cols : $ , fields : T } ) => {
n ( { resource : h , itemMargin : [ C , w ] , rowHeight : v , cols : $ , fields : T } ) ;
} ) . catch ( ( ) => n ( { } ) ) ;
} , [ r , t ] ) , L ( ( ) => {
2024-12-26 16:35:36 +08:00
g . setFieldsValue ( { keyword : u , ... p } ) ;
} , [ JSON . stringify ( [ u , p ] ) ] ) , d ( "div" , { className : I ( "ff-data-list-filter" , l . filter , e ) , children : d ( Ge , { form : g , layout : "vertical" , autoComplete : "off" , onFinish : ( ( f = i . fields ) == null ? void 0 : f . length ) > 1 ? ( h ) => s ( { [ i . resource ] : h [ i . resource ] } , h . keyword ) : ( ) => {
2024-12-26 16:06:19 +08:00
} , onValuesChange : ( h ) => {
2024-12-26 16:35:36 +08:00
c . isEmpty ( c . omit ( h , [ "keyword" ] ) ) || g . submit ( ) ;
2024-12-26 16:06:19 +08:00
} , children : ( ( m = i . fields ) == null ? void 0 : m . length ) > 1 ? d ( Pt , { ... i , children : d ( nn , { onReset : ( ) => {
const { keyword : h , condition : C } = o ( "init" ) || { } ;
2024-12-26 16:35:36 +08:00
g . setFieldsValue ( { keyword : h , ... C } ) ;
2024-12-26 16:06:19 +08:00
} } ) } ) : d ( "div" , { className : "ff-data-list-filter-default-form ff-grid-layout-form" , children : d ( "div" , { className : "grid-layout-item" , style : ri ( 20 , 0 , 5 , 2 ) , children : d ( Ge . Item , { name : [ "keyword" ] , children : d ( Ni . Search , { allowClear : ! 0 , enterButton : "搜索" , placeholder : "多关键字 | 分割" , onSearch : ( h ) => a ( h ) } ) } ) } ) } ) } ) } ) ;
} , nn = ( { cols : e , fields : t , onReset : i } ) => {
const [ n , r ] = N ( ! 1 ) , a = H ( ( ) => t == null ? void 0 : t . toReversed ( ) . some ( ( s ) => s . y > 1 || s . x + s . w >= e - 5 ) , [ e , t ] ) ;
return O ( Ge . Item , { label : " " , style : { "--item-span" : 5 } , className : I ( "ff-data-list-filter-actions" , { expanded : n } ) , children : [ d ( Xe , { onClick : i , children : "重置" } ) , d ( Xe , { type : "primary" , htmlType : "submit" , children : "查询" } ) , a && d ( P . Link , { className : "ff-data-list-filter-expanded-button" , widget : ( ) => r ( ( s ) => ! s ) , type : "primary" , name : n ? "关闭" : "展开" , icon : n ? "icon-up" : "icon-down" , iconPosition : "end" } ) ] } ) ;
} ;
ai . reservedFields = [ { x : 0 , y : 0 , h : 3 , w : 5 , field : { isVirtual : ! 0 , widgetPrefix : "@pkg/ff/grid-layout-forms" , widget : "Input" , code : "keyword" , label : "关键字" , placeholder : "多关键字 | 分割" , extras : { prefix : "icon-search" } } } ] ;
const rn = ( { className : e , operations : t , isOperations : i , isPaginate : n } ) => {
2024-12-26 16:35:36 +08:00
const { onPageChange : r , onPageSizeChange : a , onClickCallback : s , getBase62params : o } = k . useContext ( ee ) , { total : l , page : u , pageSize : p } = ( o == null ? void 0 : o ( ) ) || { } ;
return i && ! c . isEmpty ( t ) || n ? O ( "div" , { className : I ( "ff-data-list-footer" , e ) , children : [ d ( "div" , { className : "ff-data-list-actions" , children : t == null ? void 0 : t . map ( ( g , f ) => d ( P , { uuid : g . uuid , type : g . type , name : g . name , widget : g . widget , widgetType : g . widgetType , widgetProps : g . widgetProps , widgetData : g . widgetData , widgetSetting : g . widgetSetting , widgetContainerProps : g . widgetContainerSetting , onAfterClick : ( m ) => m !== ! 1 && ( s == null ? void 0 : s ( g . isRefresh , null ) ) } , g . uuid || f ) ) } ) , n && d ( Ri , { size : "small" , total : l , pageSize : p , showSizeChanger : ! 1 , showTotal : ( g ) => ` 第 ${ u } 页 / 总共 ${ g } 条 ` , onChange : r , onShowSizeChange : a } ) ] } ) : null ;
2024-12-26 16:06:19 +08:00
} , an = [ { title : "parent 1" , key : "0-0" , children : [ { title : "parent 1-0" , key : "0-0-0" , disabled : ! 0 , children : [ { title : "leaf" , key : "0-0-0-0" , disableCheckbox : ! 0 } , { title : "leaf" , key : "0-0-0-1" } ] } , { title : "parent 1-1" , key : "0-0-1" , children : [ { title : d ( "span" , { style : { color : "#1677ff" } , children : "sss" } ) , key : "0-0-1-0" } ] } ] } ] , sn = ( { className : e , width : t = 280 , isTreeSider : i } ) => {
const { classNames : n } = oe ( ee ) ;
return i ? d ( Ei . DirectoryTree , { className : I ( "ff-data-list-sider" , n . sider , e ) , style : { "--sider-width" : t } , showLine : ! 0 , showIcon : ! 1 , treeData : an } ) : null ;
} , on = ( { className : e , title : t , tabs : i } ) => {
const { getBase62params : n , onTabChange : r , onReload : a , classNames : s } = oe ( ee ) , { tab : o } = ( n == null ? void 0 : n ( ) ) || { } , [ l , u ] = Ii ( ( i == null ? void 0 : i [ 0 ] . value ) ? ? ( i == null ? void 0 : i [ 0 ] . code ) , { value : o , onChange : r } ) ;
2024-12-26 16:35:36 +08:00
return O ( "div" , { className : I ( "ff-data-list-toolbar" , s . toolbar , e ) , children : [ d ( "div" , { className : "ff-data-list-title" , children : t } ) , d ( Fi , { className : "ff-data-list-tabs" , itemRender : ( { label : p , code : g , value : f } ) => d ( "span" , { onClick : ( ) => u ( f ? ? g ) , className : I ( "ff-data-list-tab" , { active : ( f ? ? g ) == l } ) , children : p } ) , items : i } ) , O ( "div" , { className : "ff-data-list-actions" , children : [ d ( P . Link , { icon : "icon-reload" , widget : ( ) => a ( ) } ) , d ( P . Link , { icon : "icon-setting" } ) ] } ) ] } ) ;
} , si = ( { isItemGridLayout : e , theme : t , themeProps : i , onClickCallback : n , onReload : r , listCode : a , total : s = 0 , page : o = 0 , onPageChange : l , pageSize : u = 30 , onPageSizeChange : p , tab : g , onTabChange : f , keyword : m , onKeywordChange : h , condition : C , onConditionChange : w , sider : v , onSiderChange : $ , layouts : T , classNames : z = { } , ... M } ) => {
2024-12-26 16:06:19 +08:00
const [ q , A ] = N ( ) , j = H ( ( ) => {
let x = { sider : sn , filter : ai , footer : rn , toolbar : on } ;
T === ! 1 ? x = { sider : null , filter : null , footer : null , toolbar : null } : c . isPlainObject ( T ) && ( x = Object . assign ( { } , x , T ) ) ;
for ( const E in x ) if ( x [ E ] ) {
if ( Ti ( x [ E ] ) ) {
const V = x [ E ] ;
x [ E ] = ( W ) => k . cloneElement ( V , W ) ;
}
} else x [ E ] = ( ) => d ( k . Fragment , { } ) ;
return x ;
} , [ T ] ) ;
return L ( ( ) => {
t ? se . getWidgetComponent ( t ) . then ( ( x ) => {
if ( ! x ) throw ` ${ t } not found ` ;
return x ;
} ) . catch ( ( x ) => ( { default : ( ) => ` ${ x } ` } ) ) . then ( ( x ) => A ( k . createElement ( x . default , { ... M , layouts : j , $setting : i } ) ) ) : A ( d ( e ? Zi : tn , { ... M , layouts : j , $setting : i } ) ) ;
} , [ t , i ] ) , d ( ee . Provider , { value : { classNames : z , listCode : a , onClickCallback : n , onReload : r , getBase62params : ( x , E ) => {
2024-12-26 16:35:36 +08:00
const V = { tab : g , page : o , pageSize : u , keyword : m , sider : v , condition : C , total : s } ;
2024-12-26 16:06:19 +08:00
return x && x != "init" ? V [ x ] ? ? E : V ;
2024-12-26 16:35:36 +08:00
} , onPageChange : l , onPageSizeChange : p , onTabChange : f , onSiderChange : $ , onKeywordChange : h , onConditionChange : w } , children : q && k . cloneElement ( q , M ) } ) ;
2024-12-26 16:06:19 +08:00
} ;
si . propTypes = { classNames : b . exact ( { sider : b . string , filter : b . string , footer : b . string , toolbar : b . string , container : b . string , content : b . string , item : b . string } ) , layouts : b . oneOfType ( [ b . exact ( { sider : b . oneOfType ( [ b . elementType , b . element ] ) , filter : b . oneOfType ( [ b . elementType , b . element ] ) , footer : b . oneOfType ( [ b . elementType , b . element ] ) , toolbar : b . oneOfType ( [ b . elementType , b . element ] ) } ) , b . bool ] ) } ;
var me , de , ve , it ;
const ne = class ne {
constructor ( ) {
R ( this , de , null ) ;
R ( this , ve , /* @__PURE__ */ new Map ( ) ) ;
R ( this , it , ( ) => {
if ( y ( this , de ) ) return y ( this , de ) . port . postMessage ( { command : "status" , data : [ ] } ) ;
B ( this , de , new SharedWorker ( new URL ( "/ff-worker/res-ws.js" , self . location ) ) ) , y ( this , de ) . port . onmessage = ( t ) => {
var i , n ;
( i = t . data ) != null && i . uuid ? y ( this , ve ) . forEach ( ( r , a ) => {
var s ;
( r == "*" || ( s = r == null ? void 0 : r . includes ) != null && s . call ( r , t . data . uuid ) ) && a ( t . data ) ;
} ) : ( ( n = t . data ) == null ? void 0 : n . readyState ) == WebSocket . CLOSED && F . get ( "/api/user-api-token" ) . then ( ( { token : r , expire _at : a } ) => {
y ( this , de ) . port . postMessage ( { command : "initWs" , data : [ ` ws ${ c . trimStart ( F . appUrl , "http" ) } api/user-resource-status-ws?token= ${ r } ` ] } ) ;
} ) ;
} , y ( this , de ) . port . postMessage ( { command : "status" , data : [ ] } ) ;
} ) ;
S ( this , "subscribe" , ( t , i = [ ] ) => ( i ? Array . isArray ( i ) && i . length == 0 ? i = "*" : Array . isArray ( i ) || ( i = [ i ] . flat ( ) ) : i = "*" , y ( this , ve ) . set ( t , i ) , y ( this , ve ) . size == 1 && y ( this , it ) . call ( this ) , ( ) => this . unsubscribe ( t ) ) ) ;
S ( this , "unsubscribe" , ( t ) => y ( this , ve ) . delete ( t ) ) ;
if ( y ( ne , me ) ) return y ( ne , me ) ;
}
} ;
me = new WeakMap ( ) , de = new WeakMap ( ) , ve = new WeakMap ( ) , it = new WeakMap ( ) , R ( ne , me , null ) , S ( ne , "getInstance" , ( ) => ( y ( ne , me ) || B ( ne , me , new ne ( ) ) , y ( ne , me ) ) ) ;
let ft = ne ;
const oi = ft . getInstance ( ) , St = k . forwardRef ( ( { listCode : e , base62params : t , className : i , theme : n , themeProps : r , layouts : a , classNames : s } , o ) => {
2024-12-26 16:35:36 +08:00
const [ { resource : l , primaryKey : u , batchOperations : p = [ ] , itemOperations : g = [ ] , columns : f = [ ] , themeConfig : m , theme : h , isConditionFormLayout : C = ! 1 , isTreeSider : w , treeSiderConfig : v , isItemGridLayout : $ , itemGridLayout : T , title : z , isPaginate : M , tabs : q } , A ] = N ( { isItemGridLayout : ! 1 , itemGridLayout : { } } ) , j = Qi ( e , t ) , [ { dataSource : x , itemOperationsAccess : E , condition : V , tab : W , keyword : le , page : Se , total : K , pageSize : st , sider : He , onConditionChange : ot , onTabChange : Rt , onKeywordChange : yi , onPageChange : wi , onPageSizeChange : bi , onSiderChange : Ci , onReload : lt } , Et ] = Xi ( j , e , u , l ) , ki = ht ( g , x , E , u ) , xi = ht ( p ) ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
let Ke = null ;
return e && F . get ( ` /api/_/ ${ e } ` ) . resp ( ( { data : Je , res : vi } ) => {
Je != null && Je . isDynamicRefresh && ( Ke = oi . subscribe ( ( ) => lt ( ) , vi ) ) , A ( Je ) ;
} ) . catch ( ( ) => A ( { } ) ) , ( ) => Ke == null ? void 0 : Ke ( ) ;
2024-12-26 16:35:36 +08:00
} , [ e ] ) , k . useImperativeHandle ( o , ( ) => ( { onReload : lt , onClickCallback : Et } ) ) , d ( si , { listCode : e , title : z , classNames : s , layouts : a , resource : l , primaryKey : u , theme : n || h , themeProps : r || m , isTreeSider : w , treeSiderConfig : v , isPaginate : M , tabs : q , isItemOperations : ki , isBatchOperations : xi , batchOperations : p , itemOperations : g , isItemGridLayout : $ , columns : f , itemGridLayout : T , isConditionFormLayout : C , itemOperationsAccess : E , dataSource : x , onConditionChange : ot , onTabChange : Rt , onKeywordChange : yi , onPageChange : wi , onPageSizeChange : bi , onSiderChange : Ci , condition : V , tab : W , keyword : le , page : Se , total : K , pageSize : st , sider : He , className : I ( "ff-data-list-helper" , i ) , onReload : lt , onClickCallback : Et } ) ;
2024-12-26 16:06:19 +08:00
} ) , li = ( e , t , i = ! 0 ) => i !== ! 0 && i -- <= 0 ? [ ] : c . isArray ( e ) && ! c . isEmpty ( e ) ? e . reduce ( ( n , r ) => ( Reflect . has ( r , t ) && Reflect . has ( r , "children" ) && n . push ( r [ t ] ) , Reflect . has ( r , "children" ) && ! c . isEmpty ( r . children ) ? n . concat ( li ( r . children , t , i ) ) : n ) , [ ] ) : [ ] , ln = ( { className : e , primaryKey : t , columns : i = [ ] , dataSource : n = [ ] , operationRender : r , operationWidth : a = 180 , ... s } ) => {
const { classNames : o } = oe ( ee ) ;
Le ( ) ;
2024-12-26 16:35:36 +08:00
const l = U ( null ) , u = U ( null ) , [ p , g ] = N ( [ ] ) , [ f , m ] = N ( { width : 0 , height : 0 } ) ;
2024-12-26 16:06:19 +08:00
L ( ( ) => {
2024-12-26 16:35:36 +08:00
g ( li ( n , t ) ) ;
2024-12-26 16:06:19 +08:00
} , [ n , t ] ) , $i ( ( ) => {
const C = new ResizeObserver ( ( ) => {
var w ;
m ( { width : ( ( w = l . current ) == null ? void 0 : w . nativeElement . querySelector ( ".ant-table-body" ) . scrollWidth ) || u . current . offsetWidth , height : u . current . offsetHeight } ) ;
} ) ;
return u . current && C . observe ( u . current ) , ( ) => {
u . current && C . unobserve ( u . current ) ;
} ;
} , [ ] ) ;
const h = Yi ( i ) ;
2024-12-26 16:35:36 +08:00
return d ( "div" , { ref : u , className : I ( "ff-data-list-table" , o . content , e ) , children : f . height ? d ( Oi , { ... s , ref : l , rowKey : ( C ) => ( C == null ? void 0 : C [ t ] ) ? ? Math . random ( ) , columns : h == null ? void 0 : h . concat ( r ? [ { title : "操作" , align : "center" , fixed : "right" , width : ` ${ Math . ceil ( a / f . width * 100 ) . toFixed ( 2 ) } % ` , render : ( C , w , v ) => r ( w , v ) } ] : [ ] ) , dataSource : n , size : "middle" , scroll : { x : "max-content" , y : f . height - 50 } , pagination : ! 1 , expandable : { defaultExpandAllRows : ! 0 , expandRowByClick : ! 0 , onExpandedRowsChange : g , expandedRowKeys : p } } ) : null } ) ;
2024-12-26 16:06:19 +08:00
} , cn = "RC_FORM_INTERNAL_HOOKS" , dn = ( e , { initialValue : t , initialValueLanguage : i , convertJs : n , convertJsSetting : r , type : a = "string" } , s = null ) => {
2024-12-26 16:35:36 +08:00
const o = U ( ! 1 ) , l = oe ( Jt ) , [ u , p ] = N ( ) , [ g , f ] = N ( i != "javascript" && e ? l . getFieldValue ( e ) : void 0 ) , { registerWatch : m } = l . getInternalHooks ( cn ) || { } ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => m == null ? void 0 : m ( ( h , C , w ) => {
if ( ! o . current ) return ;
const v = c . get ( C , e ) ;
2024-12-26 16:35:36 +08:00
c . isEqual ( v , g ) || f ( Q ( v , a ) ) ;
} ) , [ g ] ) , L ( ( ) => {
2024-12-26 16:06:19 +08:00
i == "javascript" && t ? Ce . exec ( t , { } , { getFieldValueForBasicForm : ( h ) => s ? s . getFieldValue ( h ) : l . getFieldValue ( h ) , getFieldValue : ( h ) => l . getFieldValue ( h ) } ) . then ( ( h ) => f ( Q ( h , a ) ) ) . catch ( ( h ) => notification . error ( { message : ` 布局数据错误: ${ JSON . stringify ( h ) } ` } ) ) . finally ( ( ) => o . current = ! 0 ) : ( t && f ( Q ( t ? ? l . getFieldValue ( e ) , a ) ) , o . current = ! 0 ) ;
} , [ t , i ] ) , Ue ( ( ) => {
2024-12-26 16:35:36 +08:00
o . current && n && new Qe ( [ n , r ] ) . toValue ( g , l . getFieldsValue ( ! 0 ) ) . then ( p ) . catch ( ( h ) => {
p ( h ) , console . error ( "布局数据转换错误: " , h , n ) ;
2024-12-26 16:06:19 +08:00
} ) ;
2024-12-26 16:35:36 +08:00
} , [ g , n , r ] ) , [ u ? ? g , g ] ;
2024-12-26 16:06:19 +08:00
} , ci = ( e , t , i = null ) => H ( ( ) => {
var n ;
2024-12-26 16:35:36 +08:00
return ( n = c . sortBy ( e , [ "y" , "x" ] ) ) == null ? void 0 : n . map ( ( { i : r , x : a , y : s , w : o , h : l , field : { boxStyle : u , ... p } } , g ) => d ( "div" , { className : "grid-layout-item" , style : ri ( a , s , o , l , u ) , children : d ( t , { ... p , basicForm : i } ) } , r ? ? g ) ) ;
2024-12-26 16:06:19 +08:00
} , [ e ] ) , un = ( { widget : e , widgetPrefix : t = "@pkg/ff/grid-layouts" , basicForm : i , ... n } ) => {
const r = e != null && e . startsWith ( "@" ) || e != null && e . startsWith ( "blob:" ) ? e : ` ${ t } / ${ e } ` , [ a , s ] = N ( ) ;
return L ( ( ) => {
2024-12-26 16:35:36 +08:00
r && se . getWidgetComponent ( r ) . then ( ( { defaultProps : o = { } , default : l } ) => ( { default : gn ( l , o , i ) } ) ) . catch ( ( o ) => ( { default : ( ) => ` ${ o } ` } ) ) . then ( ( o ) => s ( k . createElement ( o . default , n ) ) ) ;
2024-12-26 16:06:19 +08:00
} , [ r ] ) , a ;
2024-12-26 16:35:36 +08:00
} , gn = ( e , t = { } , i = null ) => ( n ) => {
const { code : r , label : a , extras : s , isVirtual : o , initialValue : l , initialValueLanguage : u , convertJs : p , convertJsSetting : g , value : f , ... m } = c . merge ( { } , t , n ) , [ h , C ] = dn ( o ? null : r , { initialValue : l , initialValueLanguage : u , convertJs : p , convertJsSetting : g , type : ( m == null ? void 0 : m . type ) || "string" } , i ) , w = H ( ( ) => {
2024-12-26 16:06:19 +08:00
const T = Object . keys ( ( t == null ? void 0 : t . extras ) || { } ) ;
return c . over ( [ c . partialRight ( c . pick , T ) , c . partialRight ( c . omit , T ) ] ) ;
} , [ t == null ? void 0 : t . extras ] ) , [ v , $ ] = w ( m ) ;
return d ( e , { ... $ , value : h , rawValue : C , $setting : Object . assign ( { } , s , v ) } ) ;
} , di = ( { className : e , cols : t = 12 , rowHeight : i = 21 , containerPadding : n = [ 0 , 0 ] , itemMargin : r = [ 4 , 0 ] , formProps : a = { } , fields : s = [ ] , data : o , basicForm : l = null , ... u } ) => {
2024-12-26 16:35:36 +08:00
const [ p ] = Z . useForm ( ) , g = ci ( s , un , l ) , f = H ( ( ) => [ { name : "__PROPS__" , value : a } ] , [ a ] ) ;
return Ue ( ( ) => ( p . setFieldsValue ( o ) , ( ) => p . resetFields ( ) ) , [ o ] ) , d ( Z , { fields : f , form : p , component : ! 1 , children : d ( "div" , { ... u , className : I ( "ff-grid-layout" , e ) , style : { "--grid-layout-item-margin-y" : ` ${ ( r == null ? void 0 : r [ 0 ] ) || 0 } px ` , "--grid-layout-item-margin-x" : ` ${ ( r == null ? void 0 : r [ 1 ] ) || 0 } px ` , "--grid-layout-container-padding-y" : ` ${ ( n == null ? void 0 : n [ 0 ] ) || 0 } px ` , "--grid-layout-container-padding-x" : ` ${ ( n == null ? void 0 : n [ 1 ] ) || 0 } px ` , "--grid-layout-cols" : t , "--grid-layout-row-height" : ` ${ i } px ` } , children : g } ) } ) ;
2024-12-26 16:06:19 +08:00
} , mr = ( Mt = di , function ( { code : e , data : t , ... i } ) {
const [ n , r ] = N ( { resource : null , cols : 12 , rowHeight : 21 , fields : [ ] } ) ;
return L ( ( ) => {
e && F . get ( ` /api/_/ ${ e } ` ) . then ( ( a ) => r ( c . pick ( a , [ "resource" , "cols" , "rowHeight" , "fields" ] ) ) ) ;
} , [ e ] ) , ( n == null ? void 0 : n . resource ) && d ( Mt , { ... i , rowHeight : n . rowHeight , cols : n . cols , fields : n . fields , data : n != null && n . resource ? { [ n == null ? void 0 : n . resource ] : t } : { } } ) ;
} ) ;
var Mt ;
2024-12-26 16:35:36 +08:00
const pn = ( { cols : e , rowHeight : t , itemMargin : i , fields : n , primaryKey : r , dataSource : a , itemClassName : s , itemRender : o = ( g , f , m ) => g , empty : l = d ( Li , { description : null } ) , className : u , style : p = { } } ) => {
const { classNames : g } = oe ( ee ) , f = Le ( ) , m = H ( ( ) => d ( di , { cols : e , rowHeight : t , itemMargin : i , fields : n , className : s } ) , [ n , e , t , i ] ) ;
return d ( "div" , { className : I ( "ff-data-list-content" , g . content , u ) , style : p , children : c . isEmpty ( a ) ? l : a . map ( ( h , C ) => {
2024-12-26 16:06:19 +08:00
const w = o ( k . cloneElement ( m , { data : h } ) , h , C ) ;
return k . cloneElement ( w , { key : ` ${ f } - ${ ( h == null ? void 0 : h [ r ] ) || C } ` } ) ;
} ) } ) ;
} , mn = ( { component : e } ) => {
const { base62params : t } = Mi ( ) ;
return d ( G , { children : d ( St , { listCode : e , base62params : F . decode ( t ) } ) } ) ;
} , hn = ( ) => "Empty" , fn = ( { component : e , $setting : t } ) => {
const [ i , n ] = N ( ) ;
L ( ( ) => {
if ( ! e ) return n ( d ( hn , { description : null } ) ) ;
se . getWidgetComponent ( e ) . catch ( ( a ) => ( { default : ( ) => ` ${ a } ` } ) ) . then ( ( a ) => k . createElement ( a . default , { $setting : t } ) ) . then ( n ) ;
} , [ e ] ) ;
const r = ue . getPageParams ( ) || { } ;
return i ? k . cloneElement ( i , r ) : null ;
} ;
var he , X , fe , ye , De , qe ;
const re = class re {
constructor ( ) {
R ( this , X , /* @__PURE__ */ new Map ( ) ) ;
R ( this , fe , { } ) ;
R ( this , ye , null ) ;
S ( this , "init" , ( t , i ) => {
B ( this , X , t ) , B ( this , fe , i ) ;
} ) ;
S ( this , "get" , ( t ) => ( y ( this , X ) . has ( t ) || ( t = Array . from ( y ( this , X ) . keys ( ) ) . find ( ( i ) => y ( this , X ) . get ( i ) . uri === t ) ) , y ( this , X ) . get ( t ) || { } ) ) ;
S ( this , "redirect" , ( t , i , n = { } ) => {
const { uri : r , type : a , widgetProps : s } = this . get ( t ) || { } ;
let o = zi ( r || t , a != "list" ? i : c . mapValues ( i , ( u ) => F . encode ( u ) ) ) ;
const l = new URLSearchParams ( ) ;
for ( const u in s || { } ) ( s == null ? void 0 : s . type ) == "query" && l . append ( u , i [ u ] ) ;
return l . size > 0 && ( o = ` ${ o } ? ${ l . toString ( ) } ` ) , y ( this , ye ) . navigate ( o , n ) ;
} ) ;
S ( this , "getMenus" , ( t ) => {
var i ;
return ( ( i = y ( this , fe ) ) == null ? void 0 : i [ t ] ) || [ ] ;
} ) ;
S ( this , "findMenuPathByUuid" , ( t ) => {
let i = [ ] ;
for ( const n in y ( this , fe ) ) if ( i = y ( this , De ) . call ( this , y ( this , fe ) [ n ] , t , [ n ] ) , i . length > 1 ) return i ;
return i ;
} ) ;
S ( this , "getMenusByRouteUuid" , ( t ) => y ( this , qe ) . call ( this , t , Object . values ( y ( this , fe ) ) . flat ( ) ) ) ;
R ( this , De , ( t , i , n = [ ] ) => {
if ( c . isEmpty ( t ) ) return n ;
for ( const { uuid : r , children : a } of t ) {
if ( r == i ) return n . concat ( r ) ;
if ( ! c . isEmpty ( a ) ) return n . concat ( r , y ( this , De ) . call ( this , a , i ) ) ;
}
return n ;
} ) ;
R ( this , qe , ( t , i ) => {
var r ;
let n = [ ] ;
for ( const a of i ) a . widgetType == "redirect" && ( a . uuid == t || a . widget == t ? n . push ( a ) : ( r = a . children ) != null && r . length && ( n = n . concat ( y ( this , qe ) . call ( this , t , a . children ) ) ) ) ;
return n ;
} ) ;
S ( this , "getCurrentMenu" , ( ) => {
const { uuid : t } = this . getCurrentRoute ( ) || { } ;
if ( ! t ) return ;
const i = this . getMenusByRouteUuid ( t ) ;
return c . isEmpty ( i ) ? void 0 : i [ 0 ] ;
} ) ;
S ( this , "getCurrentRoute" , ( t = 0 ) => {
var n ;
const i = ( n = y ( this , ye ) . state . matches [ y ( this , ye ) . state . matches . length - 1 - t ] ) == null ? void 0 : n . route ;
if ( ! i ) return null ;
for ( let [ r , a ] of y ( this , X ) ) if ( a . uri === i . path ) return a ;
return null ;
} ) ;
S ( this , "getPageParams" , ( t ) => {
var a , s ;
const { location : i = { } , matches : n = [ ] } = ( ( a = y ( this , ye ) ) == null ? void 0 : a . state ) || { } , r = ( ( s = n [ n . length - 1 ] ) == null ? void 0 : s . params ) || { } ;
return i . search && new URLSearchParams ( i . search ) . forEach ( ( o , l ) => {
r [ l ] = o ;
} ) , t ? c . get ( r , t ) : r ;
} ) ;
S ( this , "createBrowserRouter" , ( t = { } ) => {
if ( y ( this , X ) . size == 0 ) return null ;
const i = Ae . get ( "Common.WEBSITE_DEFAULT_THEME" , "@pkg/ff/frameworks/DefaultTheme" ) , n = Ae . get ( se . checkUserToken ( ) ? "Common.WEBSITE_LOGIN_REDIRECT" : "Common.WEBSITE_DEFAULT" , "/index" ) , r = { [ i ] : 0 } , a = ( o , l ) => ( ) => se . getWidgetComponent ( o ) . then ( ( u ) => u . default || function ( ) {
return ` ${ o } ` ;
2024-12-26 16:35:36 +08:00
} ) . then ( ( u ) => ( { Component : ( ) => k . createElement ( Yt , { } , k . createElement ( u , l ) ) } ) ) , s = Array . from ( y ( this , X ) . values ( ) ) . reduce ( ( o , { uuid : l , uri : u , name : p , type : g , component : f , widgetSetting : m , isLogin : h , isLayout : C , extra : w } ) => {
2024-12-26 16:06:19 +08:00
let v = { } , $ = 0 ;
2024-12-26 16:35:36 +08:00
switch ( g ) {
2024-12-26 16:06:19 +08:00
case "list" :
v . element = k . createElement ( mn , { component : f } ) ;
break ;
case "fsdpf-component" :
v . element = k . createElement ( fn , { key : f , component : f , $setting : m } ) ;
}
if ( w != null && w . layout ) {
if ( ! r [ w == null ? void 0 : w . layout ] ) return r [ w == null ? void 0 : w . layout ] = o . length , [ ... o , { path : "/" , lazy : a ( w == null ? void 0 : w . layout , { } ) , children : [ { path : u , ... v } ] } ] ;
$ = r [ w == null ? void 0 : w . layout ] ;
}
return C && $ > - 1 ? ( o [ $ ] . children . push ( { path : u , ... v } ) , o ) : [ ... o , { path : u , ... v } ] ;
} , [ { path : "/" , lazy : a ( i , { } ) , children : [ ] } ] ) ;
return s . push ( { index : ! 0 , element : k . createElement ( yn , { to : n , replace : ! 0 } ) } ) , B ( this , ye , Di ( s , t ) ) ;
} ) ;
if ( y ( re , he ) ) return y ( re , he ) ;
}
} ;
he = new WeakMap ( ) , X = new WeakMap ( ) , fe = new WeakMap ( ) , ye = new WeakMap ( ) , De = new WeakMap ( ) , qe = new WeakMap ( ) , R ( re , he , null ) , S ( re , "getInstance" , ( ) => ( y ( re , he ) || B ( re , he , new re ( ) ) , y ( re , he ) ) ) ;
let yt = re ;
const yn = ( { to : e , replace : t } ) => qi ( ) ? k . createElement ( Bi , { to : e , replace : t } ) : ( window . document . location = e , "redirect" ) , ue = yt . getInstance ( ) , Pe = new Worker ( new URL ( "/ff-worker/index.js" , self . location ) ) , zt = { getConfigure : ( e ) => Ae . get ( e ) , route : { redirect : ( ... e ) => ue . redirect ( ... e ) , getPageParams : ( ... e ) => ue . getPageParams ( ... e ) , getCurrentRoute : ( ) => ue . getCurrentRoute ( ) } , popup : { notification : ( ... e ) => _ . notification ( ... e ) , success : ( ... e ) => _ . success ( ... e ) , error : ( ... e ) => _ . error ( ... e ) , form : ( ... e ) => _ . form ( ... e ) , modal : ( ... e ) => _ . modal ( ... e ) , confirm : ( ... e ) => _ . confirm ( ... e ) } } ;
var nt , Re , we ;
const D = class D {
constructor ( ) {
S ( this , "exec" , ( t , i = { } , n = { } , r = "" ) => new Promise ( ( a , s ) => {
const o = Lt ( D , nt ) . _ ++ ;
y ( D , Re ) . set ( o , n ) , D . mQueue . set ( o , [ a , s ] ) , Pe . postMessage ( { id : o , session : r , category : "eval" , method : t , args : i } ) ;
} ) ) ;
S ( this , "clear" , ( t ) => Pe . postMessage ( { session : t , category : "clear" } ) ) ;
if ( y ( D , we ) ) return y ( D , we ) ;
Promise . resolve ( ) . then ( ( ) => qn ) . then ( ( t ) => {
zt . http = t . http ;
} ) , Pe . addEventListener ( "message" , ( { data : { id : t , task _id : i , method : n , args : r , category : a , data : s , error : o , session : l } } ) => {
if ( a === "eval" && D . mQueue . has ( t ) ) o !== null ? D . mQueue . get ( t ) [ 1 ] ( o ) : D . mQueue . get ( t ) [ 0 ] ( s ) , y ( D , Re ) . delete ( t ) , D . mQueue . delete ( t ) ;
else if ( a === "util" ) try {
const u = c . get ( zt , n . split ( "/" ) ) || c . get ( y ( D , Re ) . get ( i ) , n . split ( "/" ) ) ;
if ( ! c . isFunction ( u ) ) throw ` ${ n } not found ` ;
2024-12-26 16:35:36 +08:00
Promise . resolve ( Reflect . apply ( u , void 0 , r ) ) . then ( ( p ) => {
Pe . postMessage ( { id : t , task _id : i , category : a , method : n , args : r , session : l , data : p , error : null } ) ;
} ) . catch ( ( p ) => {
Pe . postMessage ( { id : t , task _id : i , category : a , method : n , args : r , session : l , data : null , error : p } ) ;
2024-12-26 16:06:19 +08:00
} ) ;
} catch ( u ) {
Pe . postMessage ( { id : t , task _id : i , category : a , method : n , args : r , session : l , data : null , error : u } ) ;
}
} , ! 1 ) ;
}
} ;
nt = new WeakMap ( ) , Re = new WeakMap ( ) , we = new WeakMap ( ) , S ( D , "mQueue" , /* @__PURE__ */ new Map ( ) ) , R ( D , nt , 0 ) , R ( D , Re , /* @__PURE__ */ new Map ( ) ) , R ( D , we , null ) , S ( D , "getInstance" , ( ) => ( y ( D , we ) || B ( D , we , new D ( ) ) , y ( D , we ) ) ) ;
let wt = D ;
const Ce = wt . getInstance ( ) , rt = ( ) => {
const e = U ( ! 0 ) , [ , t ] = k . useReducer ( ( i ) => i + 1 , 0 ) ;
return L ( ( ) => ( ) => e . current = ! 1 , [ ] ) , ( ) => e . current && t ( ) ;
} , hr = ( e ) => {
const t = U ( ) ;
return L ( ( ) => {
t . current = e ;
} , [ e ] ) , t . current ;
} , fr = ( e ) => {
const [ t , i ] = N ( e ) , n = U ( null ) , r = Y ( ( a , s ) => {
n . current = s , i ( a ) ;
} , [ ] ) ;
return L ( ( ) => {
n . current && ( n . current ( t ) , n . current = null ) ;
} , [ t ] ) , [ t , r ] ;
} , Ue = ( e = ( n ) => {
} , t , i = c . isEqual ) => {
const n = k . useRef ( ) ;
i ( t , n . current ) || ( n . current = c . cloneDeep ( t ) ) , k . useEffect ( e , [ n . current ] ) ;
} , at = Ue , ui = ( e , t = "string" ) => {
var i ;
if ( ! Array . isArray ( e ) ) return e ;
for ( let n = 0 ; n < e . length ; n ++ ) e [ n ] . value = Q ( ( i = e [ n ] ) == null ? void 0 : i . value , t ) , e [ n ] && Reflect . has ( e [ n ] , "children" ) && ( e [ n ] . children = ui ( e [ n ] . children , t ) ) ;
return e ;
} , yr = ( e , t = "json" , i = "string" , n , r = null ) => {
2024-12-26 16:35:36 +08:00
const [ a ] = Z . useForm ( n ) , [ s , o ] = N ( [ { label : "无" , value : "" , disabled : ! 0 } ] ) , l = U ( [ ] ) , u = Z . useWatch ( ( p ) => l . current . length === 0 ? null : c . pick ( p , l . current ) , a ) || null ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
2024-12-26 16:35:36 +08:00
Array . isArray ( e ) ? o ( e ) : t === "javascript" && e ? Ce . exec ( e , { } , { getFieldValue : ( p ) => ( l . current . includes ( p ) || l . current . push ( p ) , a . getFieldValue ( p ) ) , getFieldValueForBasicForm : ( p ) => ( l . current . includes ( p ) || l . current . push ( p ) , r ? r . getFieldValue ( p ) : a . getFieldValue ( p ) ) } ) . then ( ( p ) => {
o ( Q ( p , "array" ) ) ;
2024-12-26 16:06:19 +08:00
} ) : e && o ( Q ( e , "array" ) ) ;
} , [ e , t , u ] ) , ui ( s , i ) ;
} , wr = ( e ) => {
const [ t , i ] = N ( ) , n = { type : "GET" } ;
if ( typeof e == "string" ? n . url = e : c . isPlainObject ( e ) && Object . assign ( n , e ) , ! ( n != null && n . url ) ) throw "url is required" ;
const r = ( a ) => F . request ( n , ! 1 ) . resp ( ( s ) => ( console . log ( "useSubscribeRequest" , a ) , i ( s ) , s ) ) ;
return Ue ( ( ) => {
let a = null ;
return r ( ) . then ( ( s ) => {
a = oi . subscribe ( c . throttle ( r , 180 , { leading : ! 1 , trailing : ! 0 } ) , s . res ) ;
} ) , ( ) => a == null ? void 0 : a ( ) ;
} , n ) , t ;
} , wn = ( e ) => {
const [ t , i ] = k . useState ( { gridItems : [ ] , hideItems : [ ] } ) ;
return k . useEffect ( ( ) => {
2024-12-26 16:35:36 +08:00
e && F . get ( ` /api/_/ ${ e } ` ) . then ( ( { pk : n , uuid : r , code : a , resource : s , align : o , cols : l , rowHeight : u , marginX : p , marginY : g , listenChangeFields : f , listenChangeFieldsFunc : m , fields : h } ) => ( { pk : n , uuid : r , code : a , resource : s , align : o , cols : l , rowHeight : u , marginX : p , marginY : g , listenChangeFields : f , listenChangeFieldsFunc : m , ... h . reduce ( ( C , w ) => {
2024-12-26 16:06:19 +08:00
var v ;
return ( v = w == null ? void 0 : w . field ) != null && v . hidden ? C . hides . push ( w == null ? void 0 : w . field ) : C . items . push ( w ) , C ;
} , { items : [ ] , hides : [ ] } ) } ) ) . then ( i ) ;
} , [ e ] ) , t ;
} , bn = ( { max : e = 0 , min : t = 0 , type : i = "" , message : n , pattern : r , required : a = ! 1 , validator : s } = { } , o , l ) => {
2024-12-26 16:35:36 +08:00
const [ u , p ] = N ( [ ] ) ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
2024-12-26 16:35:36 +08:00
const g = [ ] ;
2024-12-26 16:06:19 +08:00
if ( a ) {
let f = l ;
switch ( l ) {
case "number" :
case "string" :
case "array" :
break ;
case "bool" :
f = "boolean" ;
break ;
case "json" :
f = "object" ;
}
2024-12-26 16:35:36 +08:00
g . push ( { type : f , required : ! 0 , whitespace : ! 0 , message : "该项必填" } ) ;
2024-12-26 16:06:19 +08:00
}
switch ( i ) {
case "string" :
2024-12-26 16:35:36 +08:00
g . push ( { type : i , max : e , min : t , message : n || ( t && e ? ` 字符必须在 ${ t } ~ ${ e } 之间 ` : ` ${ e ? "最多能有" : "最少要有" } ${ t || e } 个字符 ` ) } ) ;
2024-12-26 16:06:19 +08:00
break ;
case "pattern" :
2024-12-26 16:35:36 +08:00
g . push ( { type : "string" , pattern : r , message : n } ) ;
2024-12-26 16:06:19 +08:00
break ;
case "validator" :
2024-12-26 16:35:36 +08:00
s && g . push ( ( { getFieldValue : f } ) => ( { validator : async ( m , h ) => {
2024-12-26 16:06:19 +08:00
const C = await Ce . exec ( s , { value : h , fieldName : o } , { getFieldValue : f } ) ;
return c . isString ( C ) && C ? Promise . reject ( C ) : c . isBoolean ( C ) && ! C ? Promise . reject ( n ) : Promise . resolve ( ) ;
} } ) ) ;
}
2024-12-26 16:35:36 +08:00
p ( g ) ;
2024-12-26 16:06:19 +08:00
} , [ e , t , i , n , r , a , s ] ) , u ;
} , Cn = ( e , t , i ) => {
const [ n , r ] = N ( null ) ;
return L ( ( ) => {
const { initDataUri : a = ` /api/ ${ e } ` , initDataMethod : s = "GET" } = i || { } ;
t && F . request ( { method : s , url : c . trimEnd ( ` ${ a } / ${ t } ` , "/" ) } ) . then ( ( o ) => {
r ( o ) ;
} ) ;
} , [ e , t , i ] ) , n ;
2024-12-26 16:35:36 +08:00
} , gi = ( e , t , i = { } , n = { } , r = { } ) => {
const a = oe ( Jt ) , s = rt ( ) , o = U ( ! 0 ) , l = U ( [ ] ) , [ u , p ] = N ( t ) , g = Z . useWatch ( ( f ) => JSON . stringify ( c . pick ( f , l . current ) ) , a ) || "{}" ;
2024-12-26 16:06:19 +08:00
return at ( ( ) => {
2024-12-26 16:35:36 +08:00
e && Ce . exec ( e , i , { ... n , getFieldValueForBasicForm : ( f ) => r ? r . getFieldValue ( f ) : null , getFieldValue : c . wrap ( a . getFieldValue , ( f , m ) => ( l . current . some ( ( h ) => c . isEqual ( h , m ) ) || ( l . current . push ( m ) , s ( ) ) , f == null ? void 0 : f ( m ) ) ) , isFieldTouched : a . isFieldTouched , isFieldsTouched : a . isFieldsTouched } ) . then ( ( f ) => o . current && p ( f ) ) ;
} , [ e , g , a , i , n ] ) , L ( ( ) => ( ) => o . current = ! 1 , [ ] ) , u ;
2024-12-26 16:06:19 +08:00
} , kn = ( e , t , i = [ ] , n = { } ) => {
const r = U ( { } ) ;
if ( ! t ) return [ e , r . current ] ;
2024-12-26 16:35:36 +08:00
const a = U ( ) , s = c . debounce ( rt ( ) , 180 ) , o = [ "disabled" , "required" ] , l = ( g , f ) => {
o . includes ( g ) && ( r . current [ g ] = f ) , s ( ) ;
} , u = H ( ( ) => ( { setDisabled : ( g ) => l ( "disabled" , g ) , setRequired : ( g ) => l ( "required" , g ) , getDisabled : ( ) => r . current . disabled , getRequired : ( ) => r . current . required } ) , [ t ] ) , p = gi ( t , - 1 , { } , u , n ) ? ? - 1 ;
if ( a . current != p && ( p >= 0 || ! c . isEmpty ( i == null ? void 0 : i [ p ] ) ) ) {
a . current = p ;
const { widget : g , widgetPrefix : f , props : m } = i == null ? void 0 : i [ p ] ;
e = Qt ( g , f ) , r . current = c . merge ( m , c . pick ( r . current , o ) ) ;
2024-12-26 16:06:19 +08:00
}
return [ e , r . current ] ;
} , br = ( { value : e , onChange : t } , i = null ) => {
const n = U ( ) , [ r ] = Z . useForm ( i ) ;
return at ( ( ) => {
c . isEqual ( n . current , e ) || r . setFieldsValue ( e ) ;
} , [ e ] ) , L ( ( ) => ( ) => r . resetFields ( ) , [ ] ) , [ H ( ( ) => r . _ _INTERNAL _ _ ? r : { ... r , _ _INTERNAL _ _ : { } } , [ r ] ) , ( a , s ) => {
n . current = s , t ( s ) ;
} ] ;
} , xn = ( { type : e , initialValue : t , initialValueLanguage : i , onChange : n , basicForm : r } ) => {
2024-12-26 16:35:36 +08:00
const a = gi ( i == "javascript" && t , i == "javascript" ? void 0 : t , { } , { } , r ) ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
i == "javascript" ? n ( Q ( a , e ) ) : t && n ( Q ( t , e ) ) ;
} , [ e , t , a ] ) , null ;
2024-12-26 16:35:36 +08:00
} , pi = ( { widget : e = "Input" , widgetPrefix : t = "@pkg/ff/grid-layout-forms" , widgetDecorator : i , subWidgets : n = [ ] , basicForm : r , ... a } ) => {
const s = Qt ( e , t ) , [ o , l ] = kn ( s , i , n , r ) , [ u , p ] = N ( ) ;
2024-12-26 16:06:19 +08:00
return L ( ( ) => {
2024-12-26 16:35:36 +08:00
o && se . getWidgetComponent ( o ) . then ( ( { defaultProps : g = { } , default : f } ) => ( { default : vn ( f , g , r ) } ) ) . catch ( ( g ) => ( { default : ( ) => ` ${ g } ` } ) ) . then ( ( g ) => p ( k . createElement ( g . default , a ) ) ) ;
2024-12-26 16:06:19 +08:00
} , [ o ] ) , u && k . cloneElement ( u , { ... a , ... l } ) ;
} , vn = ( e , t = { } , i = null ) => ( n ) => {
2024-12-26 16:35:36 +08:00
const { type : r , code : a , label : s , noStyle : o , placeholder : l , required : u = ! 1 , extras : p , validators : g , help : f , isVirtual : m , $isReserved : h , initialValue : C , initialValueLanguage : w , ... v } = c . omit ( c . merge ( { } , t , n ) , [ "convertJs" , "convertJsSetting" , "widget" , "widgetPerfix" , "widgetDecorator" , "subWidgets" , "boxStyle" ] ) , $ = bn ( Object . assign ( { } , g , u ? { required : ! 0 } : { } ) , a , r ) , T = H ( ( ) => {
2024-12-26 16:06:19 +08:00
const j = Object . keys ( ( t == null ? void 0 : t . extras ) || { } ) ;
return c . over ( [ c . partialRight ( c . pick , j ) , c . partialRight ( c . omit , j ) ] ) ;
} , [ t == null ? void 0 : t . extras ] ) , [ z , M ] = T ( v ) , q = { label : s , noStyle : o , colon : ! 1 , layout : "vertical" } , A = Y ( ( j ) => j == null ? void 0 : Q ( j , r ) , [ r ] ) ;
return d ( _t , { name : a , rules : $ , initialValue : A ( C ) , normalize : A , children : ( j , x , E ) => {
var V ;
2024-12-26 16:35:36 +08:00
return d ( e , { type : r , rcform : E , basicForm : i , itemProps : { validateStatus : x . errors . length > 0 ? "error" : "success" , tooltip : f , help : x . errors . length > 0 ? x . errors . join ( "、" ) : null , required : ( ( V = $ == null ? void 0 : $ [ 0 ] ) == null ? void 0 : V . required ) || ! 1 , ... q } , fieldProps : { placeholder : l , ... M , ... j } , $setting : Object . assign ( { } , p , z ) } ) ;
2024-12-26 16:06:19 +08:00
} } ) ;
} , Pt = ( { cols : e = 24 , rowHeight : t = 16 , itemMargin : i = [ 8 , 16 ] , containerPadding : n = [ 0 , 0 ] , fields : r = [ ] , children : a , basicForm : s = null } ) => {
2024-12-26 16:35:36 +08:00
const o = ci ( r , pi , s ) ;
2024-12-26 16:06:19 +08:00
return O ( "div" , { className : "ff-grid-layout-form" , style : { "--grid-layout-item-margin-x" : ` ${ ( i == null ? void 0 : i [ 0 ] ) ? ? 8 } px ` , "--grid-layout-item-margin-y" : ` ${ ( i == null ? void 0 : i [ 1 ] ) ? ? 16 } px ` , "--grid-layout-container-padding-y" : ` ${ ( n == null ? void 0 : n [ 0 ] ) || 0 } px ` , "--grid-layout-container-padding-x" : ` ${ ( n == null ? void 0 : n [ 1 ] ) || 0 } px ` , "--grid-layout-cols" : e , "--grid-layout-row-height" : ` ${ t } px ` } , children : [ o , a && k . cloneElement ( a , { cols : e , rowHeight : t , itemMargin : i , containerPadding : n , fields : r } ) ] } ) ;
} ;
Pt . propTypes = { fields : b . array } ;
2024-12-26 16:35:36 +08:00
const Sn = ( Dt = Pt , ( { code : e , layout : t , name : i , primaryKey : n = 0 , style : r = { } , formProps : a = { } , form : s , basicForm : o , isPreview : l = ! 1 , className : u , onFinish : p , onValuesChange : g = ( ) => {
2024-12-26 16:06:19 +08:00
} , ... f } ) => {
const { align : m , autoComplete : h , resource : C , items : w , hides : v , rowHeight : $ , marginX : T , marginY : z , cols : M , listenChangeFields : q , listenChangeFieldsFunc : A , pk : j , uuid : x } = wn ( e ) , [ E ] = Z . useForm ( s ) , V = H ( ( ) => [ { name : "__PK__" , value : j } , { name : "__PROPS__" , value : a } , { name : "__RESOURCE__" , value : C } , { name : "__LAYOUT_KEY__" , value : e } , { name : "__LAYOUT_UUID__" , value : x } , { name : "__PRIMARY_KEY__" , value : n } ] , [ j , e , x , C , n , a ] ) ;
2024-12-26 16:35:36 +08:00
return O ( Z , { className : u , name : i || e , layout : t || m , fields : V , form : E , autoComplete : h , style : { ... r , position : "relative" } , onFinish : p , onValuesChange : ( W , le ) => ( ( { changedValues : Se , allValues : K , listenChangeFields : st , listenChangeFieldsFunc : He , onValuesChange : ot , code : Rt } ) => {
2024-12-26 16:06:19 +08:00
ot ( Se , K ) , He && Array . isArray ( st ) && Ce . exec ( He , { changedValues : Se , allValues : K } , { getFieldValue : E . getFieldValue , setFieldValue : E . setFieldValue , setFieldsValue : E . setFieldsValue , isFieldTouched : E . isFieldTouched , isFieldsTouched : E . isFieldsTouched } ) ;
2024-12-26 16:35:36 +08:00
} ) ( { changedValues : W , allValues : le , listenChangeFields : q , listenChangeFieldsFunc : A , onValuesChange : g , code : e } ) , children : [ d ( Dt , { ... f , form : E , basicForm : o , code : e , fields : w , cols : M , rowHeight : $ , itemMargin : [ T , z ] } ) , v == null ? void 0 : v . map ( ( W ) => {
2024-12-26 16:06:19 +08:00
var le ;
return d ( _t , { name : W . code , children : d ( xn , { form : E , basicForm : o , name : W . code , type : W . type , initialValue : W . initialValue , initialValueLanguage : ( le = W . extras ) == null ? void 0 : le . initialValueLanguage } ) } , JSON . stringify ( W . code ) ) ;
} ) ] } , e ) ;
} ) ;
var Dt ;
const mi = ( { $setting : e , $close : t , extras : i , code : n , primaryKey : r , ... a } ) => {
const [ s ] = Z . useForm ( ) , o = Cn ( n , r , e ) ;
return L ( ( ) => {
o && s . setFieldsValue ( o ) ;
} , [ o ] ) , d ( G , { actions : O ( k . Fragment , { children : [ d ( P , { name : "保存" , type : "primary" , widget : ( ) => {
const l = s . getFieldValue ( "__RESOURCE__" ) , { initDataUri : u = ` /api/ ${ n } ` } = e || { } ;
2024-12-26 16:35:36 +08:00
s . validateFields ( ! 0 ) . then ( ( p ) => l ? c . pick ( p , [ l ] ) : p ) . then ( ( p ) => F . post ( r ? ` ${ u } / ${ r } ` : ` ${ u } ` , p ) . msg ( t ) ) . catch ( ( ) => _ . error ( "请先完善表单信息" , { duration : 2e3 } ) ) ;
2024-12-26 16:06:19 +08:00
} } ) , d ( P , { name : "取消" , widget : ( ) => t ( ! 1 ) } ) ] } ) , extras : i , children : d ( Sn , { form : s , code : n , primaryKey : r , ... a } ) } ) ;
} , qt = /* @__PURE__ */ new Set ( ) , bt = ( e = [ ] , t = 0 ) => {
const i = e [ t ] ;
if ( i . length && ! qt . has ( i ) ) {
const n = document . createElement ( "script" ) ;
n . setAttribute ( "src" , i ) , n . setAttribute ( "data-namespace" , i ) , e . length > t + 1 && ( n . onload = ( ) => {
bt ( e , t + 1 ) ;
} , n . onerror = ( ) => {
bt ( e , t + 1 ) ;
} ) , qt . add ( i ) , document . body . appendChild ( n ) ;
}
} , Ct = ( { className : e , type : t , style : i = { } , ... n } ) => d ( "span" , { role : "img" , className : I ( "ff-iconfont" , e ) , style : i , ... n , children : d ( "svg" , { style : { width : "1em" , height : "1em" , fill : "currentColor" , overflow : "hidden" } , viewBox : "0 0 1024 1024" , children : d ( "use" , { xlinkHref : ` # ${ t } ` } ) } ) } ) ;
Ct . propTypes = { className : b . string , type : b . string . isRequired , style : b . object } , Ct . init = bt ;
const Pn = ( e , t , i , { isReplaceRouteHistory : n = ! 1 } = { } ) => ue . redirect ( i , t , { replace : n } ) , Tn = ( e , t = { } , i , n = { } ) => {
var a ;
const r = ( a = n . router ) == null ? void 0 : a . reduce ( ( s , [ o , l , u ] ) => {
2024-12-26 16:35:36 +08:00
const p = c . get ( t , [ "router" , o ] ) ;
if ( ! p && p !== 0 && l ) throw ` 请传入 ${ u } ` ;
return ` ${ s } / ${ p } ` ;
2024-12-26 16:06:19 +08:00
} , ` /api/ ${ i } ` ) ;
return F . del ( r , t . param ) . msg ( ) ;
} , Bt = ( e , t , i , { status : { loading : n , disabled : r } , setStatus : a } ) => {
const s = { loading : ( o ) => o === void 0 ? n : a ( ( l ) => ( { ... l , loading : o } ) ) , disabled : ( o ) => o === void 0 ? r : a ( ( l ) => ( { ... l , disabled : o } ) ) } ;
return c . isFunction ( i ) ? i . call ( null , { ... t , ... s } ) : c . isString ( i ) && i ? Ce . exec ( i , t , s ) : null ;
} , Ut = ( e , t , i , n , r ) => c . isString ( i ) && i ? se . getWidgetComponent ( i ) . then ( ( { default : a } ) => _ . modal ( a , { ... t , $setting : n } , r != null && r . title ? { ... r , title : c . template ( r . title ) ( e ) } : r ) ) . catch ( ( a ) => {
_ . error ( i , { content : a . toString ( ) } ) ;
} ) : _ . modal ( i , { ... t , $setting : n } , r != null && r . title ? { ... r , title : c . template ( r . title ) ( e ) } : r ) , $n = ( e , t , i , n , r ) => _ . modal ( mi , { ... t , $setting : n , code : i } , r != null && r . title ? { ... r , title : c . template ( r . title ) ( e ) } : r ) , Nn = ( e , t , i , n , r ) => _ . modal ( St , { base62params : t , $setting : n , listCode : i } , r != null && r . title ? { ... r , title : c . template ( r . title ) ( e ) } : r ) , Rn = ( { widget : e , widgetType : t , widgetData : i , widgetProps : n , widgetSetting : r , widgetContainerProps : a } , { onAfterClick : s , onBeforeClick : o } ) => {
2024-12-26 16:35:36 +08:00
const l = oe ( ee ) , [ u , p ] = N ( { leading : ! 0 , trailing : ! 1 } ) , g = H ( ( ) => {
2024-12-26 16:06:19 +08:00
switch ( t ) {
case "redirect" :
return c . partialRight ( Pn , e , r ) ;
case "func" :
2024-12-26 16:35:36 +08:00
return c . partialRight ( Bt , ( r == null ? void 0 : r . code ) ? ? e , { status : u , setStatus : p } ) ;
2024-12-26 16:06:19 +08:00
case "fsdpf-component" :
return c . partialRight ( Ut , e , r , a ) ;
case "grid-layout-form" :
return c . partialRight ( $n , e , r , a ) ;
case "data-list" :
return c . partialRight ( Nn , e , r , a ) ;
case "destroy" :
return c . partialRight ( Tn , e , r , a ) ;
default :
if ( Nt ( e ) || k . isValidElement ( e ) ) return c . partialRight ( Ut , e , r , a ) ;
2024-12-26 16:35:36 +08:00
if ( c . isFunction ( e ) ) return c . partialRight ( Bt , ( r == null ? void 0 : r . code ) || e , { status : u , setStatus : p } ) ;
2024-12-26 16:06:19 +08:00
}
return ( ... f ) => console . error ( "useButton unknown widgetType" , t , ... f ) ;
} , [ e , t ] ) ;
2024-12-26 16:35:36 +08:00
return [ c . debounce ( ( f ) => ( o == null || o ( f ) , Promise . resolve ( Zt ( n , f , { list : l } ) ) . then ( ( m ) => g ( f , { ... i , ... m } ) ) . then ( ( m ) => s == null ? void 0 : s ( m ) ) . catch ( console . error ) ) , 300 , { leading : ! 0 , trailing : ! 1 } ) , u ] ;
2024-12-26 16:06:19 +08:00
} , hi = ( { type : e , name : t , className : i , icon : n , iconPosition : r , size : a } , s = "default" ) => H ( ( ) => {
const o = { type : "primary" , className : I ( "ff-button" , i ) , iconPosition : r , size : a } ;
return e === "danger" ? o . danger = ! 0 : e === "default" && ( o . type = e ) , s === "link" || s === "dashed" ? ( o . type = s , e === "default" && ( o . className = I ( o . className , "ff-default" ) ) ) : s !== "circle" && s !== "round" || ( o . shape = s ) , n && ( o . icon = d ( Ct , { type : n } ) ) , t && ( o . children = t ) , o ;
2024-12-26 16:35:36 +08:00
} , [ s , e , i , n , r ] ) , We = ( e ) => function ( { className : t , variant : i , children : n , name : r , icon : a , type : s = "default" , iconPosition : o = "start" , noAuthType : l , onAfterClick : u , onBeforeClick : p , data : g , loading : f , disabled : m , tooltip : h , confirm : C , widget : w = ( ) => {
2024-12-26 16:06:19 +08:00
} , widgetType : v , widgetData : $ , widgetProps : T , widgetSetting : z , widgetContainerProps : M , ... q } ) {
2024-12-26 16:35:36 +08:00
const A = c . isEmpty ( h ) || ! h . enabled ? { } : h , j = c . isEmpty ( C ) ? { enabled : ! 1 } : Object . assign ( { enabled : ! 0 } , C ) , x = hi ( { className : t , name : r , type : s , icon : a , iconPosition : o } , i ? ? e ) , [ E , V ] = N ( ! 1 ) , [ W , { disabled : le , loading : Se } ] = Rn ( { widget : w , widgetType : v , widgetData : $ , widgetProps : T , widgetSetting : z , widgetContainerProps : M } , { onAfterClick : u , onBeforeClick : p } ) ;
2024-12-26 16:06:19 +08:00
return d ( Ai , { okText : "确定" , cancelText : "取消" , getPopupContainer : ( K ) => K , ... j , disabled : le || m , open : E , onOpenChange : ( K ) => {
if ( ! K ) return V ( K ) ;
2024-12-26 16:35:36 +08:00
j . enabled ? V ( K ) : W ( g ) ;
2024-12-26 16:06:19 +08:00
} , onConfirm : ( ) => {
2024-12-26 16:35:36 +08:00
W ( g ) ;
2024-12-26 16:06:19 +08:00
} , onClick : ( K ) => {
K . stopPropagation ( ) ;
} , children : d ( ji , { getPopupContainer : ( K ) => K , ... A , title : E ? null : A == null ? void 0 : A . title , trigger : [ "hover" , "click" ] , children : d ( Xe , { loading : Se || f , disabled : le || m , ... x , ... q , children : n || r } ) } ) } ) ;
} , P = We ( "default" ) ;
P . propTypes = { type : b . oneOf ( [ "primary" , "default" , "danger" , "" ] ) , size : b . oneOf ( [ "large" , "middle" , "small" ] ) , name : b . string , icon : b . string , iconPosition : b . oneOf ( [ "start" , "end" ] ) , data : b . any , widget : b . any , widgetType : b . oneOf ( [ "destroy" , "redirect" , "func" , "fsdpf-component" , "grid-layout-form" , "grid-layout" , "data-list" ] ) , widgetData : b . object , widgetProps : b . object , widgetSetting : b . object , widgetContainerProps : b . object , tooltip : b . exact ( { title : b . string . isRequired , placement : b . oneOf ( [ "top" , "left" , "right" , "bottom" , "topLeft" , "topRight" , "bottomLeft" , "bottomRight" , "leftTop" , "leftBottom" , "rightTop" , "rightBottom" ] ) , enabled : b . oneOfType ( [ b . bool , b . number ] ) , getPopupContainer : b . func } ) , confirm : b . exact ( { title : b . string . isRequired , cancelText : b . string , okText : b . string , okType : b . oneOf ( [ "primary" , "default" , "danger" , "" ] ) , placement : b . oneOf ( [ "top" , "left" , "right" , "bottom" , "topLeft" , "topRight" , "bottomLeft" , "bottomRight" , "leftTop" , "leftBottom" , "rightTop" , "rightBottom" ] ) , enabled : b . oneOfType ( [ b . bool , b . number ] ) , getPopupContainer : b . func , arrow : b . oneOfType ( [ b . bool , b . exact ( { pointAtCenter : b . bool } ) ] ) } ) } ;
2024-12-26 16:35:36 +08:00
const En = We ( "link" ) , Fn = We ( "circle" ) , On = We ( "round" ) , Ln = We ( "dashed" ) , Tt = ( { data : e , widget : t , widgetType : i = "fsdpf-component" , widgetData : n , widgetProps : r , widgetSetting : a , widgetContainerProps : s , onAfterClick : o , onBeforeClick : l , children : u , extras : p } ) => {
const g = oe ( ee ) , [ f , m ] = N ( ! 1 ) , [ h , C ] = N ( "hover" ) , [ w , v ] = N ( { } ) , [ $ , T ] = N ( ) , { placement : z , align : M , arrow : q = { pointAtCenter : ! 0 } , getPopupContainer : A , ... j } = s || { } ;
2024-12-26 16:06:19 +08:00
L ( ( ) => {
i == "grid-layout-form" ? T ( k . createElement ( mi , { ... n , $setting : a , code : t } ) ) : i == "data-list" ? T ( k . createElement ( St , { base62params : e , $setting : a , listCode : t } ) ) : c . isString ( t ) ? se . getWidgetComponent ( t ) . then ( ( { default : V } ) => {
T ( k . createElement ( V , { ... n , $setting : a } ) ) ;
} ) . catch ( ( V ) => T ( V . toString ( ) ) ) : Nt ( t ) ? T ( k . createElement ( t , { ... n , $setting : a } ) ) : k . isValidElement ( t ) && T ( k . cloneElement ( t , { ... n , $setting : a } ) ) ;
} , [ t , i , n ] ) , L ( ( ) => {
2024-12-26 16:35:36 +08:00
Promise . resolve ( Zt ( r , e , { list : g } ) ) . then ( v ) ;
2024-12-26 16:06:19 +08:00
} , [ r , e ] ) ;
const x = ( V , W = ! 1 ) => ( m ( V ) , ! V && C ( "hover" ) , V ? l == null ? void 0 : l ( w ) : o == null ? void 0 : o ( W ) ) , E = ( V ) => {
m ( ! 0 ) , C ( "click" ) ;
} ;
2024-12-26 16:35:36 +08:00
return d ( Vi , { zIndex : 1080 , placement : z , onPopupClick : E , onClick : E , open : f , align : M , arrow : q , trigger : h , getPopupContainer : A , content : d ( An , { ... j , extras : p , children : $ && k . cloneElement ( $ , { ... w , $close : ( V ) => x ( ! 1 , V ) } ) } ) , children : u , onOpenChange : x } ) ;
2024-12-26 16:06:19 +08:00
} , An = ( { title : e , className : t , children : i , extras : n , width : r , height : a , ... s } ) => {
2024-12-26 16:35:36 +08:00
const [ o , l ] = N ( { } ) , u = Y ( ( m , h ) => l ( ( C ) => ( { ... C , [ m ] : h } ) ) , [ ] ) , p = Y ( ( m ) => l ( ( h ) => ( { ... h , [ m ] : void 0 } ) ) , [ ] ) , g = e ? k . createElement ( "div" , { className : "ff-popup-title" } , e ) : o == null ? void 0 : o . title , f = n ? ? k . createElement ( "div" , { className : "ff-popup-reserved-extras" } , n ) ;
return d ( Be . Provider , { value : { ele : o , mount : u , unmount : p } , children : O ( "div" , { className : I ( "ff-popup ff-popover" , t ) , style : { width : r , height : a } , ... s , children : [ O ( "div" , { className : "ff-popup-header" , children : [ g , o == null ? void 0 : o [ "sub-title" ] ] } ) , i , O ( "div" , { className : "ff-popup-footer" , children : [ f , o == null ? void 0 : o . extras , o == null ? void 0 : o . actions ] } ) ] } ) } ) ;
2024-12-26 16:06:19 +08:00
} ;
Tt . propTypes = { widgetType : b . oneOf ( [ "fsdpf-component" , "grid-layout-form" , "data-list" ] ) } ;
2024-12-26 16:35:36 +08:00
const Wt = ( { options : e = [ ] , triggerWeights : t = [ "grid-layout-form" , "grid-layout" , "fsdpf-component" , "print" ] , onAfterClick : i = ( m , h , C ) => {
2024-12-26 16:06:19 +08:00
} , onBeforeClick : n = ( m , h , C ) => {
2024-12-26 16:35:36 +08:00
} , labelVariant : r = "link" , labelSize : a , labelRender : s , btnVariant : o , btnSize : l , btnRender : u = ( m , h ) => d ( P , { ... m , data : h } , m . uuid || Le ( ) ) , widgetContainerProps : p = { } , children : g , data : f } ) => {
2024-12-26 16:06:19 +08:00
const [ m , h ] = H ( ( ) => e . reduce ( ( w , v ) => {
const $ = t . indexOf ( v . widgetType ) ;
return $ === - 1 ? w [ 1 ] . push ( v ) : w [ 0 ] ? $ < t . indexOf ( w [ 0 ] . widgetType ) ? ( w [ 1 ] . push ( w [ 0 ] ) , w [ 0 ] = v ) : w [ 1 ] . push ( v ) : w [ 0 ] = v , w ;
} , [ null , [ ] ] ) , [ e , t ] ) ;
2024-12-26 16:35:36 +08:00
if ( c . isEmpty ( m ) && c . isEmpty ( h ) ) return g ;
s ? g = s ( m , f ) || g : g || ( g = d ( Xe , { ... hi ( { ... m , size : a } , r ) } ) ) ;
2024-12-26 16:06:19 +08:00
const C = h . map ( ( w ) => u ( Object . assign ( { uuid : w . uuid , type : w . type , name : w . name , widget : w . widget , widgetType : w . widgetType , widgetProps : w . widgetProps , widgetData : w . widgetData , widgetSetting : w . widgetSetting , widgetContainerProps : w . widgetContainerSetting , confirm : w . confirm , onAfterClick : c . partialRight ( i , w , f ) , onBeforeClick : c . partialRight ( n , w , f ) } , { size : l , variant : o } ) , f ) ) ;
2024-12-26 16:35:36 +08:00
return d ( Tt , { widget : m == null ? void 0 : m . widget , widgetType : m == null ? void 0 : m . widgetType , widgetProps : m == null ? void 0 : m . widgetProps , widgetSetting : m == null ? void 0 : m . widgetSetting , widgetContainerProps : Object . assign ( { } , p , m == null ? void 0 : m . widgetContainerProps ) , data : f , widgetData : m == null ? void 0 : m . widgetData , extras : C , onAfterClick : c . partialRight ( i , m , f ) , onBeforeClick : c . partialRight ( n , m , f ) , children : g } ) ;
2024-12-26 16:06:19 +08:00
} ;
2024-12-26 16:35:36 +08:00
Wt . propTypes = { triggerWeights : b . array , options : b . arrayOf ( b . shape ( { ... P . propTypes , widgetType : P . propTypes . widgetType . isRequired } ) ) . isRequired , btnSize : P . propTypes . size , btnRender : b . func , btnVariant : b . oneOf ( [ "" , "default" , "link" , "circle" , "round" , "dashed" ] ) , labelVariant : b . oneOf ( [ "" , "default" , "link" , "circle" , "round" , "dashed" ] ) , labelRender : b . func , labelSize : P . propTypes . size , onAfterClick : b . func , onBeforeClick : b . func , widgetContainerProps : P . propTypes . widgetContainerProps , data : P . propTypes . data } , P . Link = En , P . Link . defaultProps = P . defaultProps , P . Link . propTypes = P . propTypes , P . Circle = Fn , P . Circle . defaultProps = P . defaultProps , P . Circle . propTypes = P . propTypes , P . Round = On , P . Round . defaultProps = P . defaultProps , P . Round . propTypes = P . propTypes , P . Dashed = Ln , P . Dashed . defaultProps = P . defaultProps , P . Dashed . propTypes = P . propTypes , P . Popover = Tt , P . GroupPopover = Wt ;
2024-12-26 16:06:19 +08:00
const jn = ( { fields : e , formProps : t , $close : i } ) => {
const [ n ] = Z . useForm ( ) , r = H ( ( ) => [ { name : "__PROPS__" , value : t } ] , [ t ] ) ;
2024-12-26 16:35:36 +08:00
return d ( G , { actions : O ( k . Fragment , { children : [ d ( P , { name : "取消" , widget : ( ) => i ( ! 1 ) } ) , d ( P , { name : "确定" , type : "primary" , widget : ( ) => n . validateFields ( ! 0 ) . then ( i ) } ) ] } ) , children : d ( Z , { fields : r , form : n , className : "ff-modal-form" , children : e == null ? void 0 : e . map ( ( { code : a , ... s } ) => d ( pi , { code : a , ... s } , a ) ) } ) } ) ;
} , Vn = ( { className : e , $close : t , children : i , title : n , subTitle : r , actions : a , extras : s , zIndex : o , ... l } ) => O ( Hi , { ... l , prefixCls : "ff-drawer" , className : I ( "ff-popup" , e ) , maskMotion : { motionAppear : ! 0 , motionName : "mask-motion" } , motion : ( u ) => ( { motionAppear : ! 0 , motionName : ` panel-motion- ${ u } ` } ) , children : [ O ( "div" , { className : "ff-popup-header" , children : [ d ( "button" , { "aria-label" : "Close" , className : "ff-popup-close" , onClick : l . onClose , children : d ( vt , { type : "close" } ) } ) , n , r ] } ) , d ( "div" , { className : "ff-popup-body" , children : i } ) , O ( "div" , { className : "ff-popup-footer" , children : [ s , a ] } ) ] } ) , In = ( { className : e , $close : t , $event : i , children : n , title : r , subTitle : a , actions : s , extras : o , zIndex : l , placement : u , ... p } ) => {
const g = ( i == null ? void 0 : i . pageX ) === void 0 ? { animation : null , maskAnimation : null , mousePosition : { x : null , y : null } } : { animation : "zoom" , maskAnimation : "fade" , mousePosition : { x : i == null ? void 0 : i . pageX , y : i == null ? void 0 : i . pageY } } ;
return d ( Ki , { ... p , ... g , prefixCls : "ff-modal" , modalRender : ( ) => O ( "div" , { className : I ( "ff-modal-content ff-popup" , e ) , children : [ O ( "div" , { className : "ff-popup-header" , children : [ d ( "button" , { "aria-label" : "Close" , className : "ff-popup-close" , onClick : p . onClose , children : d ( vt , { type : "close" } ) } ) , r , a ] } ) , d ( "div" , { className : "ff-popup-body" , children : n } ) , O ( "div" , { className : "ff-popup-footer" , children : [ o , s ] } ) ] } ) } ) ;
2024-12-26 16:06:19 +08:00
} , fi = ( { placement : e , $close : t , $event : i , children : n , title : r , ... a } ) => {
2024-12-26 16:35:36 +08:00
const [ s , o ] = N ( { } ) , [ l , u ] = N ( ! 0 ) , p = Y ( ( h , C ) => o ( ( w ) => ( { ... w , [ h ] : C } ) ) , [ ] ) , g = Y ( ( h ) => o ( ( C ) => ( { ... C , [ h ] : void 0 } ) ) , [ ] ) ;
2024-12-26 16:06:19 +08:00
let f = { ... a , className : s . rootClassName , title : s . title || r && k . createElement ( "div" , { className : I ( "ff-popup-title" ) } , r ) , subTitle : s [ "sub-title" ] , actions : s . actions , extras : s . extras , children : n , $close : t , $event : i , onClose : ( ) => u ( ! 1 ) } ;
const m = ( ) => {
t ( ! 1 ) ;
} ;
2024-12-26 16:35:36 +08:00
return d ( Be . Provider , { value : { ele : s , mount : p , unmount : g } , children : e && e !== "center" ? d ( Vn , { ... f , placement : e , open : l , afterOpenChange : ( h ) => ! h && m ( ) } ) : d ( In , { ... f , visible : l , afterClose : m } ) } ) ;
2024-12-26 16:06:19 +08:00
} ;
fi . propTypes = { placement : b . oneOf ( [ "center" , "left" , "top" , "right" , "bottom" ] ) } ;
const J = ( ) => {
const [ e , t ] = Ui ( { maxCount : 6 , motion : { motionName : "ff-notification-fade" , motionAppear : ! 0 , motionEnter : ! 0 , motionLeave : ! 0 , onLeaveStart : ( a ) => {
const { offsetHeight : s } = a ;
return { height : s } ;
} , onLeaveActive : ( ) => ( { height : 0 , opacity : 0 , margin : 0 } ) } , prefixCls : "ff-notification" } ) , [ , i ] = k . useReducer ( ( a ) => a + 1 , 0 ) ;
L ( ( ) => {
J . $onClick = n , J . $queue . forEach ( ( [ a , s , o ] , l , u ) => {
r ( [ s , o ] , ... a ) , delete u [ l ] ;
} ) ;
} , [ ] ) ;
const n = ( a , s = { } , o = { } ) => new Promise ( ( l , u ) => r ( [ l , u ] , a , s , o ) ) , r = ( [ a , s ] , o , l = { } , u = { } ) => {
2024-12-26 16:35:36 +08:00
const p = J . $index ++ , g = ( f ) => ( ( m , h ) => ( J . $popups . delete ( m ) , i ( ) , h == null ? void 0 : h ( ) ) ) ( p , ( ) => a ( f ) ) ;
if ( o === Xt ) return e . open ( { ... u , key : p , content : k . createElement ( o , { ... l , $close : ( ) => e . close ( p ) } ) } ) ;
J . $popups . set ( p , k . createElement ( fi , { zIndex : p , maskClosable : ! 1 , $event : l == null ? void 0 : l . $event , ... u , key : p , $close : g } , k . isValidElement ( o ) ? k . cloneElement ( o , { ... l , $close : g } ) : o != null && o . name || At . isForwardRef ( o ) || ( o == null ? void 0 : o . $$typeof ) === At . ForwardRef ? k . createElement ( o , { ... l , $close : g } ) : o ) ) , i ( ) ;
2024-12-26 16:06:19 +08:00
} ;
return O ( k . Fragment , { children : [ Array . from ( J . $popups ) . map ( ( [ a , s ] ) => s ) , t ] } ) ;
} ;
J . $popups = /* @__PURE__ */ new Map ( ) , J . $index = 0 , J . $queue = [ ] , J . $onClick = ( ... e ) => new Promise ( ( t , i ) => {
J . $queue . push ( [ e , t , i ] ) ;
} ) ;
const Ht = ( e , t , i = { } ) => J . $onClick ( e , t , i ) , dt = ( e , { showProgress : t , duration : i , ... n } = { duration : 1.5 } ) => J . $onClick ( Xt , { content : e , ... n } , { showProgress : t , duration : i } ) , _ = { modal : Ht , confirm : ( e , t = { } ) => J . $onClick ( Ji , { content : e , ... t } , { placement : "center" } ) , form : ( e , t = { } , i = { } ) => Ht ( jn , { formProps : i , fields : e } , { placement : "center" , ... t } ) . then ( ( n ) => {
if ( n === ! 1 ) throw ! 1 ;
return n ;
} ) , notification : dt , success : ( e , t = { duration : 1.5 } ) => dt ( e , { ... t , className : "ff-notification-success" , icon : "check" } ) , error : ( e , t = { duration : 1.5 } ) => dt ( e , { ... t , className : "ff-notification-error" , icon : "close" } ) } ;
Fe . configure ( { showSpinner : ! 1 } ) , Oe . interceptors . request . use ( ( e ) => {
e . headers . Platform = "web" , e . headers . SaaS = window . localStorage . getItem ( "SaaS" ) ;
const t = window . localStorage . getItem ( Ye ) ;
return e . headers . Authorization = t ? ` Bearer ${ t } ` : void 0 , Fe . inc ( ) , e ;
} , ( e ) => ( Fe . done ( ) , Promise . reject ( { code : - 1 , msg : e } ) ) ) , Oe . interceptors . response . use ( ( { data : e , headers : t } ) => ( Fe . done ( ) , { ... e , res : t == null ? void 0 : t . res } ) , function ( e ) {
return Fe . done ( ) , Promise . reject ( e . message ) ;
2024-12-26 16:35:36 +08:00
} ) , window . addEventListener ( "unhandledrejection" , gt . onUnhandledRejection ) , gt . onMsg = ( e , t ) => _ [ [ 0 , 1 ] . includes ( e ) ? "success" : "error" ] ( t ) . then ( ( ) => e === 20300 && ue . redirect ( Ae . get ( "Common.WEBSITE_LOGIN_PAGE" ) ) ) ;
2024-12-26 16:06:19 +08:00
const kt = { appUrl : "" , init : ( e , t , i ) => {
2024-12-26 16:35:36 +08:00
kt . appUrl = i , Oe . defaults . baseURL = i , Oe . defaults . timeout = 15e3 , Object . assign ( kt , new gt ( e , t , Oe ) ) ;
2024-12-26 16:06:19 +08:00
} } , F = kt ;
class $t extends Error {
constructor ( t , i ) {
super ( i ) , Error . captureStackTrace && Error . captureStackTrace ( this , $t ) , ! i instanceof je && ( this . name = ` ${ t } Error Runtime ` ) ;
}
}
class je extends Error {
constructor ( t , ... i ) {
super ( ... i ) , Error . captureStackTrace && Error . captureStackTrace ( this , je ) , this . name = ` ${ t } Not Found ` ;
}
}
const ut = "mine" , Ye = "token" ;
var be , Ee ;
const ae = class ae {
constructor ( ) {
R ( this , Ee , /* @__PURE__ */ new Map ( ) ) ;
S ( this , "setVendor" , ( t , i ) => y ( this , Ee ) . set ( t , new Gt ( i , async ( n , r ) => {
var s , o ;
if ( ! ( n != null && n . default ) ) throw "@pkg not found" ;
let a = ( ) => r ;
switch ( "function" ) {
case typeof ( a = ( s = n . default ) == null ? void 0 : s [ ` ./ ${ r } /index.jsx ` ] ) :
case typeof ( a = ( o = n . default ) == null ? void 0 : o [ ` ./ ${ r } /index.js ` ] ) :
return a ( ) ;
}
throw new je ( r ) ;
} ) ) ) ;
S ( this , "getWidgetComponent" , async ( t ) => {
if ( ! t ) throw "getWidgetComponent widget is required" ;
if ( t != null && t . startsWith ( "blob:" ) || t != null && t . startsWith ( "http:" ) || t != null && t . startsWith ( "https:" ) ) return await import ( t ) ;
const [ , i ] = t == null ? void 0 : t . split ( "@pkg/" ) ;
if ( ! i ) throw new je ( t ) ;
try {
return y ( this , Ee ) . has ( "pkg" ) ? await y ( this , Ee ) . get ( "pkg" ) . get ( i ) : await import ( ` ${ F . appUrl } /api/pkg-import/web?name= ${ t } ` ) ;
} catch ( n ) {
throw new $t ( t , n ) ;
}
} ) ;
S ( this , "getRoutes" , ( ) => F . get ( "/api/my-router" ) . then ( ( t ) => [ ... t , { uuid : "data-list-setting" , isLayout : ! 0 , uri : "/data-list-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/DataListSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "grid-layout-setting" , isLayout : ! 0 , uri : "/grid-layout-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/GridLayoutSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "grid-layout-form-setting" , isLayout : ! 0 , uri : "/grid-layout-form-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/GridLayoutFormSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "resource-api-setting" , isLayout : ! 0 , uri : "/resource-api-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/ResourceApiSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "charts-setting" , isLayout : ! 0 , uri : "/resource-api-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/ChartsSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "fsm-setting" , isLayout : ! 0 , uri : "/fsm-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/FsmSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "component-setting" , isLayout : ! 0 , uri : "/component-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/ff-design/components/ComponentSetting" , extra : { layout : "@pkg/ff-design/frameworks/DesignTheme" } } , { uuid : "login" , uri : "/login" , name : "登录" , type : "fsdpf-component" , isLogin : ! 1 , component : "@pkg/ff/components/Login" } , { uuid : "not-found" , uri : "*" , name : "Not Found" , type : "fsdpf-component" , isLogin : ! 1 , component : "@pkg/ff/components/NotFound" } ] . map ( ( { uuid : i , ... n } ) => [ i , { uuid : i , ... n } ] ) ) . then ( ( t ) => new Map ( t ) ) ) ;
S ( this , "getMenus" , ( ) => F . get ( "/api/my-menu" ) ) ;
S ( this , "getConfigure" , ( ) => F . get ( "api/init-configure" ) ) ;
S ( this , "getWidgetOperationAuth" , ( ) => F . get ( "/api/init-widget-operation-auth" ) . then ( ( t ) => t . reduce ( ( i , { uuid : n , auth : r } ) => [ ... i , [ n , r ] ] , [ ] ) ) ) ;
S ( this , "getPhoneNumber" , ( t ) => F . get ( ` /api/user-wx-phone-number/ ${ t } ` ) ) ;
S ( this , "getUserToken" , ( ) => {
const t = window . localStorage . getItem ( Ye ) ;
if ( ! t ) return "" ;
const i = t . split ( "." ) ;
if ( ! Array . isArray ( i ) || i . length !== 3 ) throw "登录令牌无效!" ;
const { iat : n } = JSON . parse ( window . atob ( i [ 1 ] ) ) ;
if ( Math . floor ( ( /* @__PURE__ */ new Date ( ) ) . getTime ( ) / 1e3 ) - n > 2592e3 ) throw "登录令牌已过期, 请重新登录!" ;
return t ;
} ) ;
S ( this , "checkUserToken" , ( ) => {
try {
return ! ! this . getUserToken ( ) ;
} catch {
return ! 1 ;
}
} ) ;
S ( this , "getUserInfo" , ( t = ! 0 ) => {
var i ;
try {
const n = this . getUserToken ( ) ;
if ( ! n ) return Promise . resolve ( null ) ;
const { iat : r } = JSON . parse ( window . atob ( ( i = n == null ? void 0 : n . split ( "." ) ) == null ? void 0 : i [ 1 ] ) ) , { iat : a , ... s } = F . decode ( window . localStorage . getItem ( ut ) || "" , { } ) ;
return a === r ? Promise . resolve ( s ) : F . get ( "/api/mine-info" ) . then ( ( { User : o = null } ) => ( window . localStorage . setItem ( ut , F . encode ( { ... o , iat : r } ) ) , o ) ) ;
} catch ( n ) {
console . error ( n ) , t && _ . error ( "请登录" ) . then ( this . logout ) ;
}
return Promise . resolve ( null ) ;
} ) ;
S ( this , "login" , ( t , i , n = { } ) => F . post ( "/api/user-token" , { username : t , passwd : Wi . hash ( i ) , platform : "web" , ... n } ) . then ( ( { token : r } ) => ( window . localStorage . setItem ( Ye , r ) , r ) ) ) ;
S ( this , "logout" , ( t ) => ( window . localStorage . removeItem ( ut ) , window . localStorage . removeItem ( Ye ) , t == null ? void 0 : t ( ) ) ) ;
if ( y ( ae , be ) ) return y ( ae , be ) ;
}
} ;
be = new WeakMap ( ) , Ee = new WeakMap ( ) , R ( ae , be , null ) , S ( ae , "getInstance" , ( ) => ( y ( ae , be ) || B ( ae , be , new ae ( ) ) , y ( ae , be ) ) ) ;
let xt = ae ;
const se = xt . getInstance ( ) , Mn = k . createContext ( { user : { } , initUser : ( ) => {
} , initUserComplete : ! 1 } ) , zn = k . createContext ( { set : ( ) => {
} , get : ( ) => {
} , assign : ( ) => {
} , currentRoute : ( ) => {
} } ) , Nt = ( e ) => ! ! ( e != null && e . name ) && ( e . prototype instanceof k . Component || /^[A-Z]/ . test ( e . name ) ) , Dn = ( e , t ) => {
if ( ! e || typeof window > "u" ) return ;
let i = document . querySelector ( ` style[ff-style-token=" ${ t } "] ` ) ;
return i ? ( i . innerHTML = e , e ) : ( i = document . createElement ( "style" ) , i . setAttribute ( "ff-style-token" , t ) , i . setAttribute ( "type" , "text/css" ) , i . innerHTML = e , document . head . appendChild ( i ) , e ) ;
} , qn = Object . freeze ( Object . defineProperty ( { _ _proto _ _ : null , AppContext : Mn , AppGlobalParamsContext : zn , cache : Gt , configure : Ae , default : se , func : Ce , http : F , insertStyle : Dn , isReactComponent : Nt , route : ue } , Symbol . toStringTag , { value : "Module" } ) ) ;
export {
2024-12-26 16:35:36 +08:00
gi as $ ,
2024-12-26 16:06:19 +08:00
Zi as A ,
tn as B ,
Yi as C ,
Qe as D ,
ur as E ,
2024-12-26 16:35:36 +08:00
gr as F ,
2024-12-26 16:06:19 +08:00
mr as G ,
cn as H ,
ni as I ,
ht as J ,
Xi as K ,
Qi as L ,
rt as M ,
hr as N ,
fr as O ,
Ue as P ,
at as Q ,
oi as R ,
yr as S ,
wr as T ,
Sn as U ,
Pt as V ,
2024-12-26 16:35:36 +08:00
pi as W ,
2024-12-26 16:06:19 +08:00
mi as X ,
wn as Y ,
bn as Z ,
Cn as _ ,
Qt as a ,
kn as a0 ,
br as a1 ,
Ct as a2 ,
P as a3 ,
_i as a4 ,
Rn as a5 ,
G as a6 ,
Be as a7 ,
Yt as a8 ,
J as a9 ,
_ as aa ,
rr as ab ,
ar as ac ,
sr as ad ,
se as ae ,
Nt as af ,
Dn as ag ,
F as ah ,
Gt as ai ,
Ae as aj ,
Ce as ak ,
ue as al ,
Mn as am ,
zn as an ,
Zt as b ,
lr as c ,
ei as d ,
cr as e ,
dr as f ,
Gi as g ,
ri as h ,
2024-12-26 16:35:36 +08:00
pr as i ,
2024-12-26 16:06:19 +08:00
li as j ,
di as k ,
un as l ,
dn as m ,
ci as n ,
si as o ,
ai as p ,
on as q ,
ct as r ,
sn as s ,
Q as t ,
or as u ,
rn as v ,
St as w ,
ee as x ,
ln as y ,
2024-12-26 16:35:36 +08:00
pn as z
2024-12-26 16:06:19 +08:00
} ;