2024-08-09 22:50:51 +08:00
var ga = Object . defineProperty ;
var Nt = ( e ) => {
throw TypeError ( e ) ;
} ;
var pa = ( e , t , a ) => t in e ? ga ( e , t , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : a } ) : e [ t ] = a ;
var v = ( e , t , a ) => pa ( e , typeof t != "symbol" ? t + "" : t , a ) , xt = ( e , t , a ) => t . has ( e ) || Nt ( "Cannot " + a ) ;
2024-08-22 10:24:06 +08:00
var p = ( e , t , a ) => ( xt ( e , t , "read from private field" ) , a ? a . call ( e ) : t . get ( e ) ) , F = ( e , t , a ) => t . has ( e ) ? Nt ( "Cannot add the same private member more than once" ) : t instanceof WeakSet ? t . add ( e ) : t . set ( e , a ) , B = ( e , t , a , n ) => ( xt ( e , t , "write to private field" ) , n ? n . call ( e , a ) : t . set ( e , a ) , a ) ;
2024-08-09 22:50:51 +08:00
var Et = ( e , t , a , n ) => ( {
set _ ( i ) {
2024-08-22 10:24:06 +08:00
B ( e , t , i , a ) ;
2024-08-09 22:50:51 +08:00
} ,
get _ ( ) {
return p ( e , t , n ) ;
}
} ) ;
import { jsx as c , jsxs as $ } from "react/jsx-runtime" ;
2024-08-22 10:24:06 +08:00
import b , { useEffect as N , useState as P , useCallback as ge , useMemo as pe , useContext as Ge , useRef as Q , useId as Dt , useLayoutEffect as ma } from "react" ;
2024-08-09 22:50:51 +08:00
import g from "lodash" ;
import R from "classnames" ;
import { Form as Ze , Input as ha , Button as lt , Breadcrumb as fa , Tree as ya , Pagination as wa , Table as ba , Empty as Ca , Popconfirm as va , Tooltip as ka , Popover as Sa } from "antd" ;
import { useMergedState as Pa } from "rc-util" ;
import re , { FieldContext as $a , Field as Wt } from "rc-field-form" ;
import { useParams as Na , generatePath as xa , createBrowserRouter as Ea , useInRouterContext as Ta , Navigate as Fa } from "react-router-dom" ;
import O from "prop-types" ;
import "react-is" ;
import { useNotification as Ra } from "rc-notification" ;
import { N as Be , a as Ue , w as ct , S as Oa } from "./vender-DDOSHWIo.js" ;
import Tt from "immutability-helper" ;
import La from "rc-drawer" ;
import Va from "rc-dialog" ;
const Ft = { 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" } , qt = ( e , t ) => g . flatMap ( g . toPairs ( e ) , ( [ a , n ] ) => g . isObjectLike ( n ) ? qt ( n , a ) : [ [ ` ${ g . isUndefined ( t ) ? "" : t + "." } ${ a } ` , n ] ] ) , Ht = ( e , t = ( ) => ! 1 ) => g . some ( e , ( a ) => ! ! g . some ( a , t ) || ( g . isEmpty ( a ) || ! g . isPlainObject ( a ) && ! g . isArray ( a ) ? void 0 : Ht ( a , t ) ) ) , et = ( e , t ) => e && typeof e == "object" ? Array . isArray ( e ) ? e . map ( ( a ) => et ( a , t ) ) : Object . keys ( e ) . reduce ( ( a , n ) => ( t [ n ] ? a [ t [ n ] ] = et ( e [ n ] , t ) : a [ n ] = et ( e [ n ] , t ) , a ) , { } ) : e ;
g . mixin ( { toPrimitive : ( e , t ) => {
let a = "string" ;
a = Array . isArray ( e ) ? "array" : typeof e , g . isObject ( e ) && ( a = "json" ) ;
const n = ` ${ a } 2 ${ t } ` ;
return Reflect . has ( Ft , n ) ? Ft [ n ] ( e ) : e ;
} , toPairsDeep : qt , deepSome : Ht , replaceKeys : et } ) ;
var Ie , qe , Ae , de , Fe , Re ;
class Jt {
constructor ( t , a ) {
F ( this , Ie , /* @__PURE__ */ new Map ( ) ) ;
F ( this , qe , ! 0 ) ;
F ( this , Ae , [ ] ) ;
F ( this , de ) ;
F ( this , Fe , ( ) => p ( this , de ) ) ;
F ( this , Re , ( ) => Promise . resolve ( ) ) ;
v ( this , "get" , ( ... t ) => new Promise ( ( a , n ) => {
const i = JSON . stringify ( t ) ;
if ( p ( this , Ie ) . has ( i ) ) return a ( p ( this , Re ) . call ( this , p ( this , de ) , ... t ) ) ;
2024-08-22 10:24:06 +08:00
if ( p ( this , de ) === void 0 ) p ( this , Ae ) . push ( [ t , a , n ] ) , p ( this , qe ) && ( B ( this , qe , ! 1 ) , Promise . resolve ( typeof p ( this , Fe ) == "function" ? p ( this , Fe ) . call ( this ) : p ( this , Fe ) ) . then ( ( r ) => B ( this , de , r || null ) ) . finally ( ( ) => {
2024-08-09 22:50:51 +08:00
p ( this , Ae ) . forEach ( ( [ r , s , o ] ) => {
try {
const l = p ( this , Re ) . call ( this , p ( this , de ) , ... r ) ;
p ( this , Ie ) . set ( JSON . stringify ( r ) , l ) , s ( l ) ;
} catch ( l ) {
o ( l ) ;
}
} ) , p ( this , Ae ) . length = 0 ;
} ) ) ;
else {
const r = p ( this , Re ) . call ( this , p ( this , de ) , ... t ) ;
p ( this , Ie ) . set ( i , r ) , a ( r ) ;
}
} ) ) ;
2024-08-22 10:24:06 +08:00
B ( this , Re , a ) , B ( this , Fe , t ) ;
2024-08-09 22:50:51 +08:00
}
}
Ie = new WeakMap ( ) , qe = new WeakMap ( ) , Ae = new WeakMap ( ) , de = new WeakMap ( ) , Fe = new WeakMap ( ) , Re = new WeakMap ( ) ;
const Dn = ( ) => c ( "div" , { children : "Empty" } ) , _e = b . createContext ( { ele : { } , mount : ( ) => {
} , unmount : ( ) => {
2024-08-22 10:24:06 +08:00
} } ) , H = ( { rootClassName : e , className : t , children : a , actions : n , title : i , subTitle : r , extras : s , style : o = { } } ) => {
2024-08-09 22:50:51 +08:00
const { mount : l , unmount : u } = b . useContext ( _e ) ;
2024-08-22 10:24:06 +08:00
return n && H . Action ( { children : n } ) , i && H . Title ( { children : i } ) , r && H . SubTitle ( { children : r } ) , s && H . Extra ( { children : s } ) , N ( ( ) => ( l ( "rootClassName" , e ) , ( ) => u ( e ) ) , [ e ] ) , c ( "div" , { className : R ( "ff-container" , t ) , style : o , children : a } ) ;
2024-08-09 22:50:51 +08:00
} , Xe = ( e ) => ( { children : t , className : a } ) => {
const { mount : n , unmount : i } = b . useContext ( _e ) ;
return N ( ( ) => ( n ( e , b . createElement ( "div" , { key : ` ff- ${ e } ` , className : R ( ` ff-popup- ${ e } ` , a ) } , t ) ) , ( ) => i ( e ) ) , [ a , t ] ) , null ;
} ;
2024-08-22 10:24:06 +08:00
H . Action = Xe ( "actions" ) , H . Title = Xe ( "title" ) , H . SubTitle = Xe ( "sub-title" ) , H . Extra = Xe ( "extras" ) , H . propTypes = { className : O . string , style : O . object , title : O . any , subTitle : O . any , actions : O . any , extras : O . any } ;
const Wn = ( ) => c ( H , { className : "ff-loading" , children : $ ( "div" , { className : "loader" , children : [ $ ( "div" , { className : "square" , children : [ c ( "span" , { } ) , c ( "span" , { } ) , c ( "span" , { } ) ] } ) , $ ( "div" , { className : "square" , children : [ c ( "span" , { } ) , c ( "span" , { } ) , c ( "span" , { } ) ] } ) , $ ( "div" , { className : "square" , children : [ c ( "span" , { } ) , c ( "span" , { } ) , c ( "span" , { } ) ] } ) , $ ( "div" , { className : "square" , children : [ c ( "span" , { } ) , c ( "span" , { } ) , c ( "span" , { } ) ] } ) ] } ) } ) , qn = ( ) => c ( "div" , { children : "NotFound" } ) , Kt = ( { children : e } ) => {
2024-08-09 22:50:51 +08:00
const [ t , a ] = P ( { } ) , n = ge ( ( r , s ) => a ( ( o ) => ( { ... o , [ r ] : s } ) ) , [ ] ) , i = ge ( ( r ) => a ( ( s ) => ( { ... s , [ r ] : void 0 } ) ) , [ ] ) ;
return typeof ( e == null ? void 0 : e . type ) == "string" ? e : c ( _e . Provider , { value : { ele : t , mount : n , unmount : i } , children : b . cloneElement ( e , { className : t . rootClassName , title : t . title , subTitle : t [ "sub-title" ] , actions : t . actions , extras : t . extras } ) } ) ;
} ;
Kt . propTypes = { children : O . element . isRequired } ;
2024-08-22 10:24:06 +08:00
const Rt = { 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" ] } , Ct = ( { type : e , props : t } ) => c ( "i" , { ... t , children : c ( "svg" , { viewBox : "0 0 1024 1024" , width : "1em" , height : "1em" , fill : "currentColor" , children : ( Rt [ e ] || Rt . info ) . map ( ( a , n ) => c ( "path" , { d : a } , n ) ) } ) } ) , Gt = ( { className : e , content : t , icon : a , $close : n } ) => $ ( b . Fragment , { children : [ a && c ( "div" , { className : R ( "ff-notification-icon" , e ) , children : c ( Ct , { type : a } ) } ) , t ] } ) , ja = ( { } ) => c ( H , { children : "Confirm" } ) ;
2024-08-09 22:50:51 +08:00
var fe , Me ;
const ee = class ee {
constructor ( ) {
F ( this , Me , null ) ;
2024-08-22 10:24:06 +08:00
v ( this , "init" , ( t ) => B ( this , Me , new Map ( t ) ) ) ;
2024-08-09 22:50:51 +08:00
v ( this , "check" , ( t ) => ! p ( this , Me ) . has ( t ) || p ( this , Me ) . get ( t ) ) ;
if ( p ( ee , fe ) ) return p ( ee , fe ) ;
}
} ;
2024-08-22 10:24:06 +08:00
fe = new WeakMap ( ) , Me = new WeakMap ( ) , F ( ee , fe , null ) , v ( ee , "getInstance" , ( ) => ( p ( ee , fe ) || B ( ee , fe , new ee ( ) ) , p ( ee , fe ) ) ) ;
2024-08-09 22:50:51 +08:00
let dt = ee ;
const Ia = dt . getInstance ( ) , _t = ( e = { } , t = { } , a = { } , n = "" ) => g . deepSome ( e , ( i , r ) => r === "type" && i === "code" ) ? Yt ( e , t , a , n ) : Qt ( e , t , n ) , Yt = async ( e = { } , t = { } , a = { } , n = "" ) => {
let i = /* @__PURE__ */ Object . create ( null ) ;
for ( let r in e ) {
let s ;
if ( Reflect . has ( e [ r ] , "type" ) && [ "code" , "field" , "router" , "query" , "string" ] . includes ( e [ r ] . type ) ) {
const { type : o , value : l = "" , default : u = n } = e [ r ] ;
switch ( o ) {
case "code" :
s = await $e . exec ( l , t , a ) ;
break ;
case "field" :
s = g . get ( t , l ) ? ? g . get ( t , l . substring ( l . indexOf ( "." ) + 1 ) ) ;
break ;
case "router" :
case "query" :
s = Pe . getPageParams ( l ) ;
break ;
case "string" :
s = l ;
}
s ? ? ( s = u ) ;
} else s = await Yt ( e [ r ] , t , a , n ) ;
g . set ( i , r , s ) ;
}
return i ;
} , Qt = ( e = { } , t = { } , a = "" ) => Object . keys ( e || { } ) . reduce ( ( n , i ) => {
if ( g . isPlainObject ( e [ i ] ) ) {
let r ;
if ( Reflect . has ( e [ i ] , "type" ) && [ "field" , "router" , "query" , "string" ] . includes ( e [ i ] . type ) ) {
const { type : s , value : o = "" , default : l = a } = e [ i ] ;
switch ( s ) {
case "field" :
r = g . get ( t , o ) ? ? g . get ( t , o . substring ( o . indexOf ( "." ) + 1 ) ) ;
break ;
case "router" :
case "query" :
r = Pe . getPageParams ( o ) ;
break ;
case "string" :
r = o ;
}
r ? ? ( r = l ) ;
} else r = Qt ( e [ i ] , t , a ) ;
g . set ( n , i , r ) ;
}
return n ;
} , { } ) ;
var ye , He ;
const te = class te {
constructor ( ) {
F ( this , He , null ) ;
2024-08-22 10:24:06 +08:00
v ( this , "init" , ( t ) => B ( this , He , t ) ) ;
2024-08-09 22:50:51 +08:00
v ( this , "get" , ( t , a ) => g . get ( p ( this , He ) , t , a ) ) ;
if ( p ( te , ye ) ) return p ( te , ye ) ;
}
} ;
2024-08-22 10:24:06 +08:00
ye = new WeakMap ( ) , He = new WeakMap ( ) , F ( te , ye , null ) , v ( te , "getInstance" , ( ) => ( p ( te , ye ) || B ( te , ye , new te ( ) ) , p ( te , ye ) ) ) ;
2024-08-09 22:50:51 +08:00
let ut = te ;
const De = ut . getInstance ( ) , Aa = ( e , t , a , n , i ) => {
2024-08-22 10:24:06 +08:00
const r = b . lazy ( ( ) => X . getWidgetComponent ( e ) . catch ( ( s ) => ( { default : ( ) => ` ${ s } ` } ) ) ) ;
2024-08-09 22:50:51 +08:00
return c ( b . Suspense , { children : c ( r , { value : t , record : a , $setting : n , base62params : i } ) } , e ) ;
} , Ma = ( e , t = { } ) => ( jt ( e ) , jt ( t ) , pe ( ( ) => e == null ? void 0 : e . map ( ( { widgetByJs : a , widgetByJsSetting : n , ... i } , r ) => a && ! a . endsWith ( "/BasicShowFieldData" ) ? { ... i , render : ( s , o ) => {
const l = Aa ( a , s , o , n , t ) ;
return g . isFunction ( i == null ? void 0 : i . render ) ? i . render ( l , s , o ) : l ;
} } : i ) , [ e , t ] ) ) , Hn = ( e ) => {
const [ t , a ] = P ( { } ) ;
return N ( ( ) => {
let n = ! 1 ;
2024-08-22 10:24:06 +08:00
return e && x . get ( ` /api/_/ ${ e } ` ) . then ( ( i ) => g . pick ( i , [ "uuid" , "name" , "code" , "resource" , "marginX" , "marginY" , "cols" , "rowHeight" , "primaryKey" , "columns" , "itemOperations" , "batchOperations" , "isConditionFormLayout" , "layout" , "tabs" , "pageSize" , "layoutConfig" ] ) ) . then ( ( i ) => ! n && a ( i ) ) , ( ) => n = ! 0 ;
2024-08-09 22:50:51 +08:00
} , [ e ] ) , t ;
} , Jn = ( e , t = { } ) => {
const [ a , n ] = P ( { dataSource : [ ] } ) ;
return Ye ( ( ) => {
let i = ! 1 ;
2024-08-22 10:24:06 +08:00
return e && x . get ( ` /api/ ${ e } / ${ x . encode ( { page : 1 , ... t } )} ` ) . then ( ( r ) => ! i && n ( r ) ) , ( ) => i = ! 0 ;
2024-08-09 22:50:51 +08:00
} , [ e , t ] ) , a ;
} , gt = ( e , t = null , a = null , n = "id" ) => pe ( ( ) => {
if ( g . isEmpty ( e ) || ! e . every ( ( { uuid : r } ) => Ia . check ( r ) ) ) return ! 1 ;
if ( g . isEmpty ( a ) || g . isEmpty ( t ) ) return ! 0 ;
const i = t . map ( ( r ) => r == null ? void 0 : r [ n ] ) ;
return e . some ( ( { uuid : r } ) => ! r || ! a . has ( r ) || a . get ( r ) . some ( ( s ) => i . includes ( s ) ) ) ;
2024-08-22 10:24:06 +08:00
} , [ e , t , a , n ] ) , za = ( { className : e , itemClassName : t , classNames : a = { } , dataSource : n , isPaginate : i , isItemOperations : r , isBatchOperations : s , batchOperations : o , itemOperations : l , itemOperationsAccess : u , resource : d , primaryKey : m , title : y , itemGridLayout : h , $setting : f , tabs : C , isConditionFormLayout : w , isTreeSider : E , treeSiderConfig : A } ) => {
const { getBase62params : J , onClickCallback : W , onTabChange : I } = Ge ( Le ) , { total : M , page : D , pageSize : K , tab : z } = J ( ) || { } , G = ge ( ( V , k , se ) => c ( Ba , { className : R ( "ff-data-list-framework-item" , t ) , operations : r && k ? l == null ? void 0 : l . filter ( ( L ) => ! ( m && L . uuid && u . has ( L . uuid ) ) || u . get ( L . uuid ) . includes ( k == null ? void 0 : k [ m ] ) ) : [ ] , data : d ? { [ d ] : k } : k , children : V , onClickCallback : W } ) , [ d , m , r , W , l , u ] ) ;
return $ ( "div" , { className : R ( "ff-data-list-framework" , e ) , children : [ c ( ta , { className : a == null ? void 0 : a . sider , isTreeSider : E , ... A } ) , $ ( "div" , { className : R ( "ff-data-list-container" , a == null ? void 0 : a . container ) , children : [ c ( kt , { className : a == null ? void 0 : a . filter , isConditionFormLayout : w } ) , c ( ea , { title : y , className : a == null ? void 0 : a . toolbar , tabs : C , tab : z , onTabChange : I } ) , c ( Ya , { ... h , className : a == null ? void 0 : a . content , style : { "--col-num" : ( f == null ? void 0 : f . colNum ) || 1 } , primaryKey : m , itemRender : G , dataSource : n } ) , c ( aa , { className : a == null ? void 0 : a . footer , isPaginate : i , isOperations : s , operations : o , total : M , page : D , pageSize : K } ) ] } ) ] } ) ;
} , Ba = ( { className : e , operations : t , children : a , data : n , onClickCallback : i } ) => $ ( "div" , { className : R ( "data-list-grid-layout-item-container" , e ) , children : [ a , ! ! ( t != null && t . length ) && c ( "div" , { className : "data-list-grid-layout-item-actions" , children : t . map ( ( r ) => c ( "span" , { className : "data-list-grid-layout-item-action" , children : c ( S . Link , { uuid : r . uuid , type : r . type , name : r . name , widget : r . widget , widgetType : r . widgetType , widgetProps : r . widgetProps , widgetSetting : r . widgetSetting , widgetContainerProps : r . widgetContainerSetting , data : n , onAfterClick : ( s ) => s !== ! 1 && ( i == null ? void 0 : i ( r . isRefresh , n ) ) } , r . uuid || useId ( ) ) } , ( r == null ? void 0 : r . uuid ) || useId ( ) ) ) } ) ] } ) , Ua = ( { listCode : e , className : t , classNames : a = { } , itemClassName : n , dataSource : i , columns : r , isItemOperations : s , isBatchOperations : o , batchOperations : l , itemOperations : u , itemOperationsAccess : d , resource : m , primaryKey : y , title : h , tabs : f , isPaginate : C , isTreeSider : w , treeSiderConfig : E , isConditionFormLayout : A , ... J } ) => {
const { getBase62params : W , onClickCallback : I , onTabChange : M } = Ge ( Le ) , { total : D , page : K , tab : z , pageSize : G } = W ( ) || { } , V = gt ( u , i , d , y ) ;
return $ ( "div" , { className : R ( "ff-data-table-framework" , t ) , children : [ c ( ta , { className : a == null ? void 0 : a . sider , isTreeSider : w , ... E } ) , $ ( "div" , { className : R ( "ff-data-table-container" , a == null ? void 0 : a . container ) , children : [ c ( kt , { listCode : e , isConditionFormLayout : A } ) , c ( ea , { title : h , className : a == null ? void 0 : a . toolbar , tabs : f , tab : z , onTabChange : M } ) , c ( Ha , { ... J , className : "ff-data-table-content" , columns : r , dataSource : i , operationRender : V ? ( k ) => c ( "div" , { className : "ff-data-table-actions" , children : u == null ? void 0 : u . reduce ( ( se , L , me ) => [ ... se , c ( S . Link , { size : "small" , uuid : L . uuid , type : L . type , name : L . name , widget : L . widget , widgetType : L . widgetType , widgetProps : L . widgetProps , widgetData : L . widgetData , widgetSetting : L . widgetSetting , widgetContainerProps : L . widgetContainerSetting , data : k , onAfterClick : ( Ne ) => Ne !== ! 1 && ( I == null ? void 0 : I ( L . isRefresh , data ) ) } , L . uuid || me ) ] , [ ] ) } ) : null } ) , c ( aa , { isPaginate : C , isOperations : o , operations : l , total : D , page : K , pageSize : G } ) ] } ) ] } ) ;
2024-08-09 22:50:51 +08:00
} , Le = b . createContext ( { listCode : "" , getBase62params : ( e , t ) => {
} , onReload : ( ) => {
} , onClickCallback : ( ) => {
} , onConditonChange : ( ) => {
} , onTabChange : ( ) => {
} , onSiderChange : ( ) => {
} , onKeywordChange : ( ) => {
} , onPageChange : ( ) => {
} , onPageSizeChange : ( ) => {
} } ) , Da = ( { isItemGridLayout : e , theme : t , themeProps : a , onClickCallback : n , onReload : i , getBase62params : r , listCode : s , onPageChange : o , onPageSizeChange : l , onTabChange : u , onSiderChange : d , onKeywordChange : m , onConditonChange : y , ... h } ) => {
const [ f , C ] = P ( ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
t ? X . getWidgetComponent ( t ) . then ( ( w ) => {
2024-08-09 22:50:51 +08:00
if ( ! w ) throw ` ${ t } not found ` ;
return w ;
} ) . catch ( ( w ) => ( { default : ( ) => ` ${ w } ` } ) ) . then ( ( w ) => C ( b . createElement ( w . default , { ... h , $setting : a } ) ) ) : f || C ( null ) ;
} , [ t , a ] ) , c ( Le . Provider , { value : { listCode : s , onClickCallback : n , onReload : i , getBase62params : r , onPageChange : o , onPageSizeChange : l , onTabChange : u , onSiderChange : d , onKeywordChange : m , onConditonChange : y } , children : f ? b . cloneElement ( f , { ... h , $setting : a } ) : c ( e ? za : Ua , { ... h , $setting : a } ) } ) ;
} ;
var we , ue , Oe , at ;
const ae = class ae {
constructor ( ) {
F ( this , ue , null ) ;
F ( this , Oe , /* @__PURE__ */ new Map ( ) ) ;
F ( this , at , ( ) => {
if ( p ( this , ue ) ) return p ( this , ue ) . port . postMessage ( { command : "status" , data : [ ] } ) ;
2024-08-22 10:24:06 +08:00
B ( this , ue , new SharedWorker ( new URL ( "/ff-worker/res-ws.js" , self . location ) ) ) , p ( this , ue ) . port . onmessage = ( t ) => {
2024-08-09 22:50:51 +08:00
var a , n ;
( a = t . data ) != null && a . uuid ? p ( this , Oe ) . forEach ( ( i , r ) => {
var s ;
( i == "*" || ( s = i == null ? void 0 : i . includes ) != null && s . call ( i , t . data . uuid ) ) && r ( t . data ) ;
2024-08-22 10:24:06 +08:00
} ) : ( ( n = t . data ) == null ? void 0 : n . readyState ) == WebSocket . CLOSED && x . get ( "/api/user-api-token" ) . then ( ( { token : i , expire _at : r } ) => {
p ( this , ue ) . port . postMessage ( { command : "initWs" , data : [ ` ws ${ g . trimStart ( x . appUrl , "http" ) } api/user-resource-status-ws?token= ${ i } ` ] } ) ;
2024-08-09 22:50:51 +08:00
} ) ;
} , p ( this , ue ) . port . postMessage ( { command : "status" , data : [ ] } ) ;
} ) ;
v ( this , "subscribe" , ( t , a = [ ] ) => ( a ? Array . isArray ( a ) && a . length == 0 ? a = "*" : Array . isArray ( a ) || ( a = [ a ] . flat ( ) ) : a = "*" , p ( this , Oe ) . set ( t , a ) , p ( this , Oe ) . size == 1 && p ( this , at ) . call ( this ) , ( ) => this . unsubscribe ( t ) ) ) ;
v ( this , "unsubscribe" , ( t ) => p ( this , Oe ) . delete ( t ) ) ;
if ( p ( ae , we ) ) return p ( ae , we ) ;
}
} ;
2024-08-22 10:24:06 +08:00
we = new WeakMap ( ) , ue = new WeakMap ( ) , Oe = new WeakMap ( ) , at = new WeakMap ( ) , F ( ae , we , null ) , v ( ae , "getInstance" , ( ) => ( p ( ae , we ) || B ( ae , we , new ae ( ) ) , p ( ae , we ) ) ) ;
2024-08-09 22:50:51 +08:00
let pt = ae ;
const Xt = pt . getInstance ( ) , vt = b . forwardRef ( ( { listCode : e , base62params : t , className : a , itemClassName : n , theme : i , themeProps : r , classNames : s } , o ) => {
2024-08-22 10:24:06 +08:00
const l = oa ( ) , u = Q ( t ) , d = Q ( /* @__PURE__ */ new Map ( ) ) , m = Q ( [ ] ) , [ { resource : y , primaryKey : h , batchOperations : f = [ ] , itemOperations : C = [ ] , columns : w = [ ] , themeConfig : E , theme : A , isConditionFormLayout : J = ! 1 , isTreeSider : W , treeSiderConfig : I , isItemGridLayout : M , itemGridLayout : D , title : K , isPaginate : z , tabs : G } , V ] = P ( { isItemGridLayout : ! 1 , itemGridLayout : { } } ) , k = g . throttle ( ( T ) => {
m . current = [ ] , x . list ( e , g . pick ( { ... u . current , ... T } , [ "tab" , "page" , "pageSize" , "condition" , "sider" , "keyword" ] ) ) . then ( ( { keyword : U , condition : Ve , total : xe , tab : he , sider : Ee , page : oe , pageSize : le , operationsAccess : ce , dataSource : Te } ) => {
2024-08-09 22:50:51 +08:00
u . current = { tab : he , condition : Ve , sider : Ee , keyword : U , total : xe , pageSize : le , page : Te != null && Te . length ? oe : 1 } , m . current = Te , d . current = new Map ( ce ) , l ( ) ;
} ) ;
} , 380 , { leading : ! 1 , trailing : ! 0 } ) , se = gt ( C , m . current , d . current , h ) , L = gt ( f ) ;
N ( ( ) => {
let T = null ;
2024-08-22 10:24:06 +08:00
return e && x . get ( ` /api/_/ ${ e } ` ) . resp ( ( { data : U , res : Ve } ) => {
2024-08-09 22:50:51 +08:00
U != null && U . isDynamicRefresh && ( T = Xt . subscribe ( ( ) => k ( ) , Ve ) ) , u . current . pageSize = U . pageSize , V ( U ) ;
} ) . catch ( ( ) => V ( { } ) ) , ( ) => T == null ? void 0 : T ( ) ;
} , [ e ] ) , tn ( ( ) => {
e && k ( t ) ;
} , [ e , t ] ) ;
const me = ( ) => {
k ( ) ;
} , Ne = ( T = 0 , U = null ) => {
if ( T === 2 ) {
const Ve = g . get ( U , "__PARENT_ID__" , "" ) , xe = g . get ( U , h , g . get ( U , [ y , h ] , "" ) ) , he = g . findIndex ( m . current , [ "__PARENT_ID__" , Ve ] ) , Ee = g . findIndex ( he > - 1 ? g . get ( m . current , [ he , "children" ] ) : m . current , [ h , xe ] ) ;
2024-08-22 10:24:06 +08:00
Ee > - 1 ? ( x . get ( ` /api/ ${ e } /detail/ ${ xe } ` ) . then ( ( oe ) => {
2024-08-09 22:50:51 +08:00
const le = g . get ( m . current , he > - 1 ? [ he , "children" , Ee , "children" ] : [ Ee , "children" ] ) ;
m . current = Tt ( m . current , he > - 1 ? { [ he ] : { children : { $splice : [ [ Ee , 1 , { ... oe , children : le } ] ] } } } : { $splice : [ [ Ee , 1 , { ... oe , children : le } ] ] } ) , l ( ) ;
2024-08-22 10:24:06 +08:00
} ) , x . post ( ` /api/ ${ e } /list-operations-access ` , { ids : xe } ) . then ( ( oe ) => new Map ( oe ) ) . then ( ( oe ) => {
2024-08-09 22:50:51 +08:00
d . current . forEach ( ( le , ce ) => {
var Te ;
( Te = oe . get ( ce ) ) != null && Te . some ( ( rt ) => rt == xe ) || d . current . set ( ce , le . filter ( ( rt ) => rt !== xe ) ) ;
} ) , oe . forEach ( ( le , ce ) => {
d . current . has ( ce ) ? d . current . set ( ce , g . uniq ( [ ... d . current . get ( ce ) || [ ] , ... le ] ) ) : d . current . set ( ce , le ) ;
} ) , l ( ) ;
} ) ) : me ( ) ;
} else T === 1 && me ( ) ;
} ;
b . useImperativeHandle ( o , ( ) => ( { onReload : me , onClickCallback : Ne } ) ) ;
2024-08-22 10:24:06 +08:00
const it = { listCode : e , title : K , itemClassName : n , classNames : s , resource : y , primaryKey : h , theme : i || A , themeProps : r || E , isTreeSider : W , treeSiderConfig : I , isPaginate : z , tabs : G , isItemOperations : se , isBatchOperations : L , batchOperations : f , itemOperations : C , isItemGridLayout : M , columns : w , itemGridLayout : D , isConditionFormLayout : J , itemOperationsAccess : d . current , dataSource : m . current } ;
2024-08-09 22:50:51 +08:00
return c ( Da , { ... it , className : R ( "ff-data-list-helper" , a ) , getBase62params : ( T , U , Ve = ! 1 ) => T == "init" ? t : T ? g . get ( u . current , T , U ) : u . current , onReload : me , onClickCallback : Ne , onConditonChange : ( T , U ) => k ( { keyword : U , condition : Tt ( u . current . condition || { } , { $merge : T || { } } ) , page : 1 } ) , onTabChange : ( T ) => k ( { tab : T , page : 1 } ) , onSiderChange : ( T ) => k ( { sider : T , page : 1 } ) , onKeywordChange : ( T ) => k ( { keyword : T , page : 1 } ) , onPageChange : ( T , U ) => k ( { page : T , pageSize : U } ) , onPageSizeChange : ( T ) => k ( { pageSize : T , page : 1 } ) } ) ;
} ) , Zt = ( e , t , a , n , i = { } , r = 0 ) => {
const s = { "--grid-layout-h" : ` ${ n } ` , "--grid-layout-w" : ` ${ a } ` , "--grid-layout-x" : ` ${ e } ` , "--grid-layout-y" : ` ${ t } ` , "--grid-layout-row-height-offset" : "0px" } ;
return i != null && i . autoHeight ? s . height = "fit-content" : s [ "--grid-layout-row" ] = ` ${ n } ` , s [ "--grid-layout-box-margin" ] = Ot ( i == null ? void 0 : i . marginTop , i == null ? void 0 : i . marginRight , i == null ? void 0 : i . marginBottom , i == null ? void 0 : i . marginLeft ) , s [ "--grid-layout-box-padding" ] = Ot ( i == null ? void 0 : i . paddingTop , i == null ? void 0 : i . paddingRight , i == null ? void 0 : i . paddingBottom , i == null ? void 0 : i . paddingLeft ) , r && ( s . height = ` ${ r } px ` ) , s ;
} , Ot = ( e , t , a , n ) => ` ${ e || 0 } px ${ t || 0 } px ${ a || 0 } px ${ n || 0 } px ` , kt = ( { className : e , isConditionFormLayout : t } ) => {
var m , y ;
const [ a , n ] = P ( { } ) , { listCode : i , onKeywordChange : r , onConditonChange : s , getBase62params : o } = b . useContext ( Le ) , { keyword : l , condition : u } = o ( ) || { } , [ d ] = Ze . useForm ( ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
i && t && x . get ( ` /api/_/ ${ i } /list-condition-form-layout ` ) . then ( ( { resource : h , marginX : f , marginY : C , rowHeight : w , cols : E , fields : A } ) => {
n ( { resource : h , itemMargin : [ f , C ] , rowHeight : w , cols : E , fields : A } ) ;
2024-08-09 22:50:51 +08:00
} ) . catch ( ( ) => n ( { } ) ) ;
} , [ i , t ] ) , N ( ( ) => {
d . setFieldsValue ( { keyword : l , ... u } ) ;
} , [ JSON . stringify ( [ l , u ] ) ] ) , c ( "div" , { className : R ( "ff-data-list-filter" , e ) , children : c ( Ze , { form : d , layout : "vertical" , autoComplete : "off" , onFinish : ( ( m = a . fields ) == null ? void 0 : m . length ) > 1 ? ( h ) => s ( { [ a . resource ] : h [ a . resource ] } , h . keyword ) : ( ) => {
} , onValuesChange : ( h ) => {
g . isEmpty ( g . omit ( h , [ "keyword" ] ) ) || d . submit ( ) ;
} , children : ( ( y = a . fields ) == null ? void 0 : y . length ) > 1 ? c ( St , { ... a , children : c ( Wa , { onReset : ( ) => {
const { keyword : h , condition : f } = o ( "init" ) || { } ;
d . setFieldsValue ( { keyword : h , ... f } ) ;
} } ) } ) : c ( "div" , { className : "ff-data-list-filter-default-form ff-grid-layout-form" , children : c ( "div" , { className : "grid-layout-item" , style : Zt ( 20 , 0 , 5 , 2 ) , children : c ( Ze . Item , { name : [ "keyword" ] , children : c ( ha . Search , { allowClear : ! 0 , enterButton : "搜索" , placeholder : "多关键字 | 分割" , onSearch : ( h ) => r ( h ) } ) } ) } ) } ) } ) } ) ;
} , Wa = ( { cols : e , fields : t , onReset : a } ) => {
const [ n , i ] = P ( ! 1 ) , r = pe ( ( ) => t == null ? void 0 : t . toReversed ( ) . some ( ( s ) => s . y > 1 || s . x + s . w >= e - 5 ) , [ e , t ] ) ;
return $ ( Ze . Item , { label : " " , style : { "--item-span" : 5 } , className : R ( "ff-data-list-filter-actions" , { expanded : n } ) , children : [ c ( lt , { onClick : a , children : "重置" } ) , c ( lt , { type : "primary" , htmlType : "submit" , children : "查询" } ) , r && c ( S . Link , { className : "ff-data-list-filter-expanded-button" , widget : ( ) => i ( ( s ) => ! s ) , type : "primary" , name : n ? "关闭" : "展开" , icon : n ? "icon-up" : "icon-down" , iconPosition : "end" } ) ] } ) ;
} ;
kt . reservedFields = [ { x : 0 , y : 0 , h : 3 , w : 5 , field : { isVirtual : ! 0 , widgetPrefix : "@pkg/grid-layout-forms" , widget : "Input" , code : "keyword" , label : "关键字" , placeholder : "多关键字 | 分割" , extras : { prefix : "icon-search" } } } ] ;
const ea = ( { className : e , title : t , tabs : a , tab : n , onTabChange : i } ) => {
const [ r , s ] = Pa ( a == null ? void 0 : a [ 0 ] . value , { value : n , onChange : i } ) ;
return $ ( "div" , { className : R ( "ff-data-list-toolbar" , e ) , children : [ c ( "div" , { className : "ff-data-list-title" , children : t } ) , c ( fa , { className : "ff-data-list-tabs" , itemRender : ( { label : o , code : l } ) => c ( "span" , { onClick : ( ) => s ( l ) , className : R ( "ff-data-list-tab" , { active : l == r } ) , children : o } ) , items : a } ) , $ ( "div" , { className : "ff-data-list-actions" , children : [ c ( S . Link , { icon : "icon-reload" } ) , c ( S . Link , { icon : "icon-setting" } ) ] } ) ] } ) ;
} , qa = [ { 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 : c ( "span" , { style : { color : "#1677ff" } , children : "sss" } ) , key : "0-0-1-0" } ] } ] } ] , ta = ( { className : e , width : t = 280 , isTreeSider : a } ) => a ? c ( ya . DirectoryTree , { className : R ( "ff-data-list-sider" , e ) , style : { "--sider-width" : t } , showLine : ! 0 , showIcon : ! 1 , treeData : qa } ) : null , aa = ( { className : e , operations : t , isOperations : a , isPaginate : n , total : i , page : r , pageSize : s } ) => {
const { onPageChange : o , onPageSizeChange : l , onClickCallback : u } = b . useContext ( Le ) ;
return a && ! g . isEmpty ( t ) || n ? $ ( "div" , { className : R ( "ff-data-list-footer" , e ) , children : [ c ( "div" , { className : "ff-data-list-actions" , children : t == null ? void 0 : t . map ( ( d , m ) => c ( S , { uuid : d . uuid , type : d . type , name : d . name , widget : d . widget , widgetType : d . widgetType , widgetProps : d . widgetProps , widgetData : d . widgetData , widgetSetting : d . widgetSetting , widgetContainerProps : d . widgetContainerSetting , onAfterClick : ( y ) => y !== ! 1 && ( u == null ? void 0 : u ( d . isRefresh , null ) ) } , d . uuid || m ) ) } ) , n && c ( wa , { size : "small" , total : i , pageSize : s , showSizeChanger : ! 1 , showTotal : ( d ) => ` 第 ${ r } 页 / 总共 ${ d } 条 ` , onChange : o , onShowSizeChange : l } ) ] } ) : null ;
} , na = ( e , t , a = ! 0 ) => a !== ! 0 && a -- <= 0 ? [ ] : g . isArray ( e ) && ! g . isEmpty ( e ) ? e . reduce ( ( n , i ) => ( Reflect . has ( i , t ) && Reflect . has ( i , "children" ) && n . push ( i [ t ] ) , Reflect . has ( i , "children" ) && ! g . isEmpty ( i . children ) ? n . concat ( na ( i . children , t , a ) ) : n ) , [ ] ) : [ ] , Ha = ( { className : e , primaryKey : t , columns : a = [ ] , dataSource : n = [ ] , operationRender : i , operationWidth : r = 180 , ... s } ) => {
Dt ( ) ;
2024-08-22 10:24:06 +08:00
const o = Q ( null ) , l = Q ( null ) , [ u , d ] = P ( [ ] ) , [ m , y ] = P ( { width : 0 , height : 0 } ) ;
2024-08-09 22:50:51 +08:00
N ( ( ) => {
d ( na ( n , t ) ) ;
} , [ n , t ] ) , ma ( ( ) => {
const f = new ResizeObserver ( ( ) => {
var C ;
y ( { width : ( ( C = o . current ) == null ? void 0 : C . nativeElement . querySelector ( ".ant-table-body" ) . scrollWidth ) || l . current . offsetWidth , height : l . current . offsetHeight } ) ;
} ) ;
return l . current && f . observe ( l . current ) , ( ) => {
l . current && f . unobserve ( l . current ) ;
} ;
} , [ ] ) ;
const h = Ma ( a ) ;
return c ( "div" , { ref : l , className : R ( "ff-data-list-table" , e ) , children : m . height ? c ( ba , { ... s , ref : o , rowKey : ( f ) => ( f == null ? void 0 : f [ t ] ) ? ? Math . random ( ) , columns : h == null ? void 0 : h . concat ( i ? [ { title : "操作" , align : "center" , fixed : "right" , width : ` ${ Math . ceil ( r / m . width * 100 ) . toFixed ( 2 ) } % ` , render : ( f , C , w ) => i ( C , w ) } ] : [ ] ) , dataSource : n , size : "middle" , scroll : { x : "max-content" , y : m . height - 50 } , pagination : ! 1 , expandable : { defaultExpandAllRows : ! 0 , expandRowByClick : ! 0 , onExpandedRowsChange : d , expandedRowKeys : u } } ) : null } ) ;
} , Ja = "RC_FORM_INTERNAL_HOOKS" , ia = ( e , { initialValue : t , initialValueLanguage : a , convertJs : n , convertJsSetting : i , type : r = "string" } , s = null ) => {
2024-08-22 10:24:06 +08:00
const o = Q ( ! 1 ) , l = Ge ( $a ) , [ u , d ] = P ( ) , [ m , y ] = P ( a != "javascript" && e ? l . getFieldValue ( e ) : void 0 ) , { registerWatch : h } = l . getInternalHooks ( Ja ) || { } ;
2024-08-09 22:50:51 +08:00
return N ( ( ) => h == null ? void 0 : h ( ( f , C , w ) => {
if ( ! o . current ) return ;
2024-08-22 10:24:06 +08:00
const E = g . get ( C , e ) ;
g . isEqual ( E , m ) || y ( g . toPrimitive ( E , r ) ) ;
2024-08-09 22:50:51 +08:00
} ) , [ m ] ) , N ( ( ) => {
a == "javascript" && t ? $e . exec ( t , { } , { getFieldValueForBasicForm : ( f ) => s ? s . getFieldValue ( f ) : l . getFieldValue ( f ) , getFieldValue : ( f ) => l . getFieldValue ( f ) } ) . then ( ( f ) => y ( g . toPrimitive ( f , r ) ) ) . catch ( ( f ) => notification . error ( { message : ` 布局数据错误: ${ JSON . stringify ( f ) } ` } ) ) . finally ( ( ) => o . current = ! 0 ) : ( t && y ( g . toPrimitive ( t ? ? l . getFieldValue ( e ) , r ) ) , o . current = ! 0 ) ;
} , [ t , a ] ) , Ye ( ( ) => {
2024-08-22 10:24:06 +08:00
o . current && n && X . getWidgetComponent ( n ) . then ( ( { default : f } ) => f ( { value : m , record : l . getFieldsValue ( ! 0 ) , $setting : i } ) ) . then ( d ) . catch ( ( f ) => console . error ( "布局数据转换错误: " , f , n ) ) ;
2024-08-09 22:50:51 +08:00
} , [ m , n , i ] ) , [ u || m , m ] ;
} , ra = ( e , t , a = "@pkg/grid-layouts" , n = null ) => pe ( ( ) => {
var i ;
return ( i = g . sortBy ( e , [ "y" , "x" ] ) ) == null ? void 0 : i . map ( ( { i : r , x : s , y : o , w : l , h : u , field : { boxStyle : d , widgetPrefix : m = a , widget : y , ... h } } , f ) => c ( "div" , { className : "grid-layout-item" , style : Zt ( s , o , l , u , d , y === "Height" && ( h == null ? void 0 : h . initialValue ) ) , children : c ( Ka , { ... h , basicForm : n , itemWidget : y != null && y . startsWith ( "@" ) ? y : ` ${ m } / ${ y } ` , itemWidgetRender : t } ) } , r || f ) ) ;
} , [ e ] ) , Ka = ( { itemWidget : e , itemWidgetRender : t , basicForm : a , ... n } ) => {
const [ i , r ] = P ( ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
X . getWidgetComponent ( e ) . then ( ( { defaultProps : s = { } , default : o } ) => {
2024-08-09 22:50:51 +08:00
r ( b . createElement ( t ( o , s , a ) , n ) ) ;
} ) . catch ( ( s ) => {
console . error ( s ) , r ( e ) ;
} ) ;
} , [ e ] ) , i ;
} , sa = ( { cols : e = 12 , rowHeight : t = 21 , fields : a = [ ] , data : n , containerPadding : i = [ 0 , 0 ] , itemMargin : r = [ 4 , 0 ] , formProps : s = { } , className : o , ... l } ) => {
const [ u ] = re . useForm ( ) , d = ra ( a , Ga , "@pkg/grid-layouts" ) , m = pe ( ( ) => [ { name : "__PROPS__" , value : s } ] , [ s ] ) ;
return Ye ( ( ) => {
u . setFieldsValue ( n ) ;
} , [ n ] ) , c ( re , { fields : m , form : u , component : ! 1 , children : c ( "div" , { ... l , className : R ( "ff-grid-layout" , o ) , 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" : ` ${ ( i == null ? void 0 : i [ 0 ] ) || 0 } px ` , "--grid-layout-container-padding-x" : ` ${ ( i == null ? void 0 : i [ 1 ] ) || 0 } px ` , "--grid-layout-cols" : e , "--grid-layout-row-height" : ` ${ t } px ` } , children : d } ) } ) ;
} , Ga = ( e , t = { } , a = null ) => ( n ) => {
const { code : i , label : r , extras : s , isVirtual : o , initialValue : l , initialValueLanguage : u , convertJs : d , convertJsSetting : m , ... y } = g . merge ( { } , t , n ) , [ h , f ] = ia ( o ? null : i , { initialValue : l , initialValueLanguage : u , convertJs : d , convertJsSetting : m , type : ( y == null ? void 0 : y . type ) || "string" } , a ) ;
return c ( e , { ... y , value : h , rawValue : f , $setting : s || { } } ) ;
} , Kn = ( Lt = sa , function ( { code : e , data : t , ... a } ) {
const [ n , i ] = P ( { resource : null , cols : 12 , rowHeight : 21 , fields : [ ] } ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
e && x . get ( ` /api/_/ ${ e } ` ) . then ( ( r ) => i ( g . pick ( r , [ "resource" , "cols" , "rowHeight" , "fields" ] ) ) ) ;
2024-08-09 22:50:51 +08:00
} , [ e ] ) , ( n == null ? void 0 : n . resource ) && c ( Lt , { ... a , rowHeight : n . rowHeight , cols : n . cols , fields : n . fields , data : n != null && n . resource ? { [ n == null ? void 0 : n . resource ] : t } : { } } ) ;
} ) ;
var Lt ;
const Gn = ( { widget : e , widgetPrefix : t = "@pkg/grid-layouts" , basicForm : a , ... n } ) => {
const i = e != null && e . startsWith ( "@" ) ? e : ` ${ t } / ${ e } ` , [ r , s ] = P ( ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
i && X . getWidgetComponent ( i ) . then ( ( { defaultProps : o = { } , default : l } ) => ( { default : _a ( l , o , a ) } ) ) . catch ( ( o ) => ( { default : ( ) => ` ${ o } ` } ) ) . then ( ( o ) => s ( b . createElement ( o . default , n ) ) ) ;
2024-08-09 22:50:51 +08:00
} , [ i ] ) , r ;
} , _a = ( e , t = { } , a = null ) => ( n ) => {
const { code : i , label : r , extras : s , isVirtual : o , initialValue : l , initialValueLanguage : u , convertJs : d , convertJsSetting : m , value : y , ... h } = g . merge ( { } , t , n ) , [ f , C ] = ia ( o ? null : i , { initialValue : l , initialValueLanguage : u , convertJs : d , convertJsSetting : m , type : ( h == null ? void 0 : h . type ) || "string" } , a ) ;
return c ( e , { ... h , value : f , rawValue : C , $setting : s || { } } ) ;
} , Ya = ( { cols : e , rowHeight : t , itemMargin : a , fields : n , primaryKey : i , dataSource : r , itemClassName : s , itemRender : o = ( m , y , h ) => m , empty : l = c ( Ca , { description : null } ) , className : u , style : d = { } } ) => {
const m = Dt ( ) , y = pe ( ( ) => c ( sa , { cols : e , rowHeight : t , itemMargin : a , fields : n , className : s } ) , [ n , e , t , a ] ) ;
return c ( "div" , { className : R ( "ff-data-list-content" , u ) , style : d , children : g . isEmpty ( r ) ? l : r == null ? void 0 : r . map ( ( h , f ) => c ( b . Fragment , { children : o ( b . cloneElement ( y , { data : h } ) , h , f ) } , ` ${ m } - ${ ( h == null ? void 0 : h [ i ] ) || f } ` ) ) } ) ;
} , Qa = ( { component : e } ) => {
const { base62params : t } = Na ( ) ;
2024-08-22 10:24:06 +08:00
return c ( H , { children : c ( vt , { listCode : e , base62params : x . decode ( t ) } ) } ) ;
2024-08-09 22:50:51 +08:00
} , Xa = ( ) => "Empty" , Za = ( { component : e , $setting : t } ) => {
const [ a , n ] = P ( ) ;
return N ( ( ) => {
if ( ! e ) return n ( c ( Xa , { description : null } ) ) ;
2024-08-22 10:24:06 +08:00
X . getWidgetComponent ( e ) . catch ( ( i ) => ( { default : ( ) => ` ${ i } ` } ) ) . then ( ( i ) => b . createElement ( i . default , { $setting : t } ) ) . then ( n ) ;
2024-08-09 22:50:51 +08:00
} , [ e ] ) , a ? b . cloneElement ( a , { } ) : null ;
} ;
var be , Z , Ce , ve , Je , Ke ;
const ne = class ne {
constructor ( ) {
F ( this , Z , /* @__PURE__ */ new Map ( ) ) ;
F ( this , Ce , { } ) ;
F ( this , ve , null ) ;
v ( this , "init" , ( t , a ) => {
2024-08-22 10:24:06 +08:00
B ( this , Z , t ) , B ( this , Ce , a ) ;
2024-08-09 22:50:51 +08:00
} ) ;
v ( this , "get" , ( t ) => ( p ( this , Z ) . has ( t ) || ( t = Array . from ( p ( this , Z ) . keys ( ) ) . find ( ( a ) => p ( this , Z ) . get ( a ) . uri === t ) ) , p ( this , Z ) . get ( t ) || { } ) ) ;
v ( this , "redirect" , ( t , a , n = { } ) => {
const { uri : i , type : r , widgetProps : s } = this . get ( t ) || { } ;
2024-08-22 10:24:06 +08:00
let o = xa ( i || t , r != "list" ? a : g . mapValues ( a , ( u ) => x . encode ( u ) ) ) ;
2024-08-09 22:50:51 +08:00
const l = new URLSearchParams ( ) ;
for ( const u in s || { } ) ( s == null ? void 0 : s . type ) == "query" && l . append ( u , a [ u ] ) ;
return l . size > 0 && ( o = ` ${ o } ? ${ l . toString ( ) } ` ) , p ( this , ve ) . navigate ( o , n ) ;
} ) ;
v ( this , "getMenus" , ( t ) => {
var a ;
return ( ( a = p ( this , Ce ) ) == null ? void 0 : a [ t ] ) || [ ] ;
} ) ;
v ( this , "findMenuPathByUuid" , ( t ) => {
let a = [ ] ;
for ( const n in p ( this , Ce ) ) if ( a = p ( this , Je ) . call ( this , p ( this , Ce ) [ n ] , t , [ n ] ) , a . length > 1 ) return a ;
return a ;
} ) ;
v ( this , "getMenusByRouteUuid" , ( t ) => p ( this , Ke ) . call ( this , t , Object . values ( p ( this , Ce ) ) . flat ( ) ) ) ;
F ( this , Je , ( t , a , n = [ ] ) => {
if ( g . isEmpty ( t ) ) return n ;
for ( const { uuid : i , children : r } of t ) {
if ( i == a ) return n . concat ( i ) ;
if ( ! g . isEmpty ( r ) ) return n . concat ( i , p ( this , Je ) . call ( this , r , a ) ) ;
}
return n ;
} ) ;
F ( this , Ke , ( t , a ) => {
var i ;
let n = [ ] ;
for ( const r of a ) r . widgetType == "redirect" && ( r . uuid == t || r . widget == t ? n . push ( r ) : ( i = r . children ) != null && i . length && ( n = n . concat ( p ( this , Ke ) . call ( this , t , r . children ) ) ) ) ;
return n ;
} ) ;
v ( this , "getCurrentMenu" , ( ) => {
const { uuid : t } = this . getCurrentRoute ( ) || { } ;
if ( ! t ) return ;
const a = this . getMenusByRouteUuid ( t ) ;
return g . isEmpty ( a ) ? void 0 : a [ 0 ] ;
} ) ;
v ( this , "getCurrentRoute" , ( t = 0 ) => {
var n ;
const a = ( n = p ( this , ve ) . state . matches [ p ( this , ve ) . state . matches . length - 1 - t ] ) == null ? void 0 : n . route ;
if ( ! a ) return null ;
for ( let [ i , r ] of p ( this , Z ) ) if ( r . uri === a . path ) return r ;
return null ;
} ) ;
v ( this , "getPageParams" , ( t ) => {
var r ;
const { location : a , matches : n } = p ( this , ve ) . state , i = ( ( r = n [ n . length - 1 ] ) == null ? void 0 : r . params ) || { } ;
return a . search && new URLSearchParams ( a . search ) . forEach ( ( s , o ) => {
i [ o ] = s ;
} ) , t ? g . get ( i , t ) : i ;
} ) ;
v ( this , "createBrowserRouter" , ( t = { } ) => {
if ( p ( this , Z ) . size == 0 ) return null ;
2024-08-22 10:24:06 +08:00
const a = De . get ( "Common.WEBSITE_DEFAULT_THEME" , "@pkg/frameworks/BasicLayout" ) , n = De . get ( X . checkUserToken ( ) ? "Common.WEBSITE_LOGIN_REDIRECT" : "Common.WEBSITE_DEFAULT" , "/index" ) , i = { [ a ] : 0 } , r = ( o , l ) => ( ) => X . getWidgetComponent ( o ) . then ( ( u ) => u . default || function ( ) {
2024-08-09 22:50:51 +08:00
return ` ${ o } ` ;
} ) . then ( ( u ) => ( { Component : ( ) => b . createElement ( Kt , { } , b . createElement ( u , l ) ) } ) ) , s = Array . from ( p ( this , Z ) . values ( ) ) . reduce ( ( o , { uuid : l , uri : u , name : d , type : m , component : y , widgetSetting : h , isLogin : f , isLayout : C , extra : w } ) => {
2024-08-22 10:24:06 +08:00
let E = { } , A = 0 ;
2024-08-09 22:50:51 +08:00
switch ( m ) {
case "list" :
2024-08-22 10:24:06 +08:00
E . element = b . createElement ( Qa , { component : y } ) ;
2024-08-09 22:50:51 +08:00
break ;
case "fsdpf-component" :
2024-08-22 10:24:06 +08:00
E . element = b . createElement ( Za , { key : y , component : y , $setting : h } ) ;
2024-08-09 22:50:51 +08:00
}
if ( w != null && w . layout ) {
2024-08-22 10:24:06 +08:00
if ( ! i [ w == null ? void 0 : w . layout ] ) return i [ w == null ? void 0 : w . layout ] = o . length , [ ... o , { path : "/" , lazy : r ( w == null ? void 0 : w . layout , { } ) , children : [ { path : u , ... E } ] } ] ;
A = i [ w == null ? void 0 : w . layout ] ;
2024-08-09 22:50:51 +08:00
}
2024-08-22 10:24:06 +08:00
return C && A > - 1 ? ( o [ A ] . children . push ( { path : u , ... E } ) , o ) : [ ... o , { path : u , ... E } ] ;
2024-08-09 22:50:51 +08:00
} , [ { path : "/" , lazy : r ( a , { } ) , children : [ ] } ] ) ;
2024-08-22 10:24:06 +08:00
return s . push ( { index : ! 0 , element : b . createElement ( en , { to : n , replace : ! 0 } ) } ) , B ( this , ve , Ea ( s , t ) ) ;
2024-08-09 22:50:51 +08:00
} ) ;
if ( p ( ne , be ) ) return p ( ne , be ) ;
}
} ;
2024-08-22 10:24:06 +08:00
be = new WeakMap ( ) , Z = new WeakMap ( ) , Ce = new WeakMap ( ) , ve = new WeakMap ( ) , Je = new WeakMap ( ) , Ke = new WeakMap ( ) , F ( ne , be , null ) , v ( ne , "getInstance" , ( ) => ( p ( ne , be ) || B ( ne , be , new ne ( ) ) , p ( ne , be ) ) ) ;
2024-08-09 22:50:51 +08:00
let mt = ne ;
2024-08-22 10:24:06 +08:00
const en = ( { to : e , replace : t } ) => Ta ( ) ? b . createElement ( Fa , { to : e , replace : t } ) : ( window . document . location = e , "redirect" ) , Pe = mt . getInstance ( ) , je = new Worker ( new URL ( "/ff-worker/index.js" , self . location ) ) , Vt = { getConfigure : ( e ) => De . get ( e ) , route : { redirect : ( ... e ) => Pe . redirect ( ... e ) , getPageParams : ( ... e ) => Pe . getPageParams ( ... e ) , getCurrentRoute : ( ) => Pe . 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 ) } } ;
2024-08-09 22:50:51 +08:00
var nt , ze , ke ;
const j = class j {
constructor ( ) {
v ( this , "exec" , ( t , a = { } , n = { } , i = "" ) => new Promise ( ( r , s ) => {
const o = Et ( j , nt ) . _ ++ ;
p ( j , ze ) . set ( o , n ) , j . mQueue . set ( o , [ r , s ] ) , je . postMessage ( { id : o , session : i , category : "eval" , method : t , args : a } ) ;
} ) ) ;
v ( this , "clear" , ( t ) => je . postMessage ( { session : t , category : "clear" } ) ) ;
if ( p ( j , ke ) ) return p ( j , ke ) ;
Promise . resolve ( ) . then ( ( ) => Pn ) . then ( ( t ) => {
Vt . http = t . http ;
} ) , je . addEventListener ( "message" , ( { data : { id : t , task _id : a , method : n , args : i , category : r , data : s , error : o , session : l } } ) => {
if ( r === "eval" && j . mQueue . has ( t ) ) o !== null ? j . mQueue . get ( t ) [ 1 ] ( o ) : j . mQueue . get ( t ) [ 0 ] ( s ) , p ( j , ze ) . delete ( t ) , j . mQueue . delete ( t ) ;
else if ( r === "util" ) try {
const u = g . get ( Vt , n . split ( "/" ) ) || g . get ( p ( j , ze ) . get ( a ) , n . split ( "/" ) ) ;
if ( ! g . isFunction ( u ) ) throw ` ${ n } not found ` ;
Promise . resolve ( Reflect . apply ( u , void 0 , i ) ) . then ( ( d ) => {
je . postMessage ( { id : t , task _id : a , category : r , method : n , args : i , session : l , data : d , error : null } ) ;
} ) . catch ( ( d ) => {
je . postMessage ( { id : t , task _id : a , category : r , method : n , args : i , session : l , data : null , error : d } ) ;
} ) ;
} catch ( u ) {
je . postMessage ( { id : t , task _id : a , category : r , method : n , args : i , session : l , data : null , error : u } ) ;
}
} , ! 1 ) ;
}
} ;
2024-08-22 10:24:06 +08:00
nt = new WeakMap ( ) , ze = new WeakMap ( ) , ke = new WeakMap ( ) , v ( j , "mQueue" , /* @__PURE__ */ new Map ( ) ) , F ( j , nt , 0 ) , F ( j , ze , /* @__PURE__ */ new Map ( ) ) , F ( j , ke , null ) , v ( j , "getInstance" , ( ) => ( p ( j , ke ) || B ( j , ke , new j ( ) ) , p ( j , ke ) ) ) ;
2024-08-09 22:50:51 +08:00
let ht = j ;
const $e = ht . getInstance ( ) , oa = ( ) => {
2024-08-22 10:24:06 +08:00
const e = Q ( ! 0 ) , [ , t ] = b . useReducer ( ( a ) => a + 1 , 0 ) ;
2024-08-09 22:50:51 +08:00
return N ( ( ) => ( ) => e . current = ! 1 , [ ] ) , ( ) => e . current && t ( ) ;
} , jt = ( e ) => {
2024-08-22 10:24:06 +08:00
const t = Q ( ) ;
2024-08-09 22:50:51 +08:00
return N ( ( ) => {
t . current = e ;
} , [ e ] ) , t . current ;
} , _n = ( e ) => {
2024-08-22 10:24:06 +08:00
const [ t , a ] = P ( e ) , n = Q ( null ) , i = ge ( ( r , s ) => {
2024-08-09 22:50:51 +08:00
n . current = s , a ( r ) ;
} , [ ] ) ;
return N ( ( ) => {
n . current && ( n . current ( t ) , n . current = null ) ;
} , [ t ] ) , [ t , i ] ;
} , Ye = ( e = ( n ) => {
} , t , a = g . isEqual ) => {
const n = b . useRef ( t ) ;
a ( t , n . current ) || ( n . current = t ) , b . useEffect ( e , [ n . current ] ) ;
} , tn = Ye , la = ( e , t = "string" ) => {
var a ;
if ( ! Array . isArray ( e ) ) return e ;
for ( let n = 0 ; n < e . length ; n ++ ) e [ n ] . value = g . toPrimitive ( ( a = e [ n ] ) == null ? void 0 : a . value , t ) , e [ n ] && Reflect . has ( e [ n ] , "children" ) && ( e [ n ] . children = la ( e [ n ] . children , t ) ) ;
return e ;
} , Yn = ( e , t = "json" , a = "string" , n , i = null ) => {
2024-08-22 10:24:06 +08:00
const [ r ] = re . useForm ( n ) , [ s , o ] = P ( [ { label : "无" , value : "" , disabled : ! 0 } ] ) , l = Q ( [ ] ) , u = re . useWatch ( ( d ) => l . current . length === 0 ? null : g . pick ( d , l . current ) , r ) || null ;
2024-08-09 22:50:51 +08:00
return N ( ( ) => {
Array . isArray ( e ) ? o ( e ) : t === "javascript" && e ? $e . exec ( e , { } , { getFieldValue : ( d ) => ( l . current . includes ( d ) || l . current . push ( d ) , r . getFieldValue ( d ) ) , getFieldValueForBasicForm : ( d ) => ( l . current . includes ( d ) || l . current . push ( d ) , i ? i . getFieldValue ( d ) : r . getFieldValue ( d ) ) } ) . then ( ( d ) => {
o ( g . toPrimitive ( d , "array" ) ) ;
} ) : e && o ( g . toPrimitive ( e , "array" ) ) ;
} , [ e , t , u ] ) , la ( s , a ) ;
} , Qn = ( e ) => {
const [ t , a ] = P ( ) , n = { type : "GET" } ;
if ( typeof e == "string" ? n . url = e : g . isPlainObject ( e ) && Object . assign ( n , e ) , ! ( n != null && n . url ) ) throw "url is required" ;
2024-08-22 10:24:06 +08:00
const i = ( r ) => x . request ( n , ! 1 ) . resp ( ( s ) => ( console . log ( "useSubscribeRequest" , r ) , a ( s ) , s ) ) ;
2024-08-09 22:50:51 +08:00
return Ye ( ( ) => {
let r = null ;
return i ( ) . then ( ( s ) => {
r = Xt . subscribe ( g . throttle ( i , 180 , { leading : ! 1 , trailing : ! 0 } ) , s . res ) ;
} ) , ( ) => r == null ? void 0 : r ( ) ;
} , n ) , t ;
} , an = ( e ) => {
const [ t , a ] = b . useState ( { gridItems : [ ] , hideItems : [ ] } ) ;
return b . useEffect ( ( ) => {
2024-08-22 10:24:06 +08:00
e && x . get ( ` /api/_/ ${ e } ` ) . then ( ( { pk : n , uuid : i , code : r , resource : s , align : o , cols : l , rowHeight : u , marginX : d , marginY : m , listenChangeFields : y , listenChangeFieldsFunc : h , fields : f } ) => ( { pk : n , uuid : i , code : r , resource : s , align : o , cols : l , rowHeight : u , marginX : d , marginY : m , listenChangeFields : y , listenChangeFieldsFunc : h , ... f . reduce ( ( C , w ) => {
var E ;
return ( E = w == null ? void 0 : w . field ) != null && E . hidden ? C . hides . push ( w == null ? void 0 : w . field ) : C . items . push ( w ) , C ;
2024-08-09 22:50:51 +08:00
} , { items : [ ] , hides : [ ] } ) } ) ) . then ( a ) ;
} , [ e ] ) , t ;
} , nn = ( { max : e = 0 , min : t = 0 , type : a = "" , message : n , pattern : i , required : r = ! 1 , validator : s } = { } , o , l ) => {
const [ u , d ] = P ( [ ] ) ;
return N ( ( ) => {
const m = [ ] ;
if ( r ) {
let y = l ;
switch ( l ) {
case "number" :
case "string" :
case "array" :
break ;
case "bool" :
y = "boolean" ;
break ;
case "json" :
y = "object" ;
}
m . push ( { type : y , required : ! 0 , whitespace : ! 0 , message : "该项必填" } ) ;
}
switch ( a ) {
case "string" :
m . push ( { type : a , max : e , min : t , message : n || ( t && e ? ` 字符必须在 ${ t } ~ ${ e } 之间 ` : ` ${ e ? "最多能有" : "最少要有" } ${ t || e } 个字符 ` ) } ) ;
break ;
case "pattern" :
m . push ( { type : "string" , pattern : i , message : n } ) ;
break ;
case "validator" :
s && m . push ( ( { getFieldValue : y } ) => ( { validator : async ( h , f ) => {
const C = await $e . exec ( s , { value : f , fieldName : o } , { getFieldValue : y } ) ;
return g . isString ( C ) && C ? Promise . reject ( C ) : g . isBoolean ( C ) && ! C ? Promise . reject ( n ) : Promise . resolve ( ) ;
} } ) ) ;
}
d ( m ) ;
} , [ e , t , a , n , i , r , s ] ) , u ;
} , rn = ( e , t , a ) => {
const [ n , i ] = P ( null ) ;
return N ( ( ) => {
const { initDataUri : r = ` /api/ ${ e } ` , initDataMethod : s = "GET" } = a || { } ;
2024-08-22 10:24:06 +08:00
t && x . request ( { method : s , url : g . trimEnd ( ` ${ r } / ${ t } ` , "/" ) } ) . then ( ( o ) => {
2024-08-09 22:50:51 +08:00
i ( o ) ;
} ) ;
} , [ e , t , a ] ) , n ;
} , sn = ( e , t , a , n = { } ) => {
2024-08-22 10:24:06 +08:00
const i = oa ( ) , r = Q ( ! 0 ) , s = Q ( [ ] ) , [ o , l ] = P ( a ) , u = re . useWatch ( ( d ) => JSON . stringify ( g . pick ( d , s . current ) ) , t ) || "{}" ;
2024-08-09 22:50:51 +08:00
return N ( ( ) => {
e && $e . exec ( e , n , { getFieldValue : g . wrap ( t . getFieldValue , ( d , m ) => ( s . current . some ( ( y ) => g . isEqual ( y , m ) ) || ( s . current . push ( m ) , i ( ) ) , d ( m ) ) ) , isFieldTouched : t . isFieldTouched , isFieldsTouched : t . isFieldsTouched } ) . then ( ( d ) => r . current && l ( d ) ) ;
} , [ e , u , t , n ] ) , N ( ( ) => ( ) => r . current = ! 1 , [ ] ) , o ;
} , on = ( { type : e , initialValue : t , initialValueLanguage : a , onChange : n , form : i } ) => {
const r = sn ( a == "javascript" && t , i , a == "javascript" ? void 0 : t , { } ) ;
return N ( ( ) => {
n ( a == "javascript" ? g . toPrimitive ( r , e ) : g . toPrimitive ( t , e ) ) ;
} , [ e , t , r ] ) , null ;
} , ln = ( { widget : e = "Input" , widgetPrefix : t = "@pkg/grid-layout-forms" , widgetDecorator : a , subWidgets : n , basicForm : i , ... r } ) => {
const s = e != null && e . startsWith ( "@" ) ? e : ` ${ t } / ${ e } ` , [ o , l ] = P ( ) ;
return N ( ( ) => {
2024-08-22 10:24:06 +08:00
s && X . getWidgetComponent ( s ) . then ( ( { defaultProps : u = { } , default : d } ) => ( { default : ca ( d , u , i ) } ) ) . catch ( ( u ) => ( { default : ( ) => ` ${ u } ` } ) ) . then ( ( u ) => l ( b . createElement ( u . default , r ) ) ) ;
2024-08-09 22:50:51 +08:00
} , [ s ] ) , o && b . cloneElement ( o , r ) ;
} , ca = ( e , t = { } , a = null ) => ( n ) => {
2024-08-22 10:24:06 +08:00
const { type : i , code : r , label : s , noStyle : o , placeholder : l , extras : u , validators : d , help : m , isVirtual : y , $isReserved : h , initialValue : f , initialValueLanguage : C , convertJs : w , convertJsSetting : E , widgetPerfix : A , boxStyle : J , widgetDecorator : W , subWidgets : I , ... M } = { ... t , ... n } , D = nn ( d || { } , r , i ) , K = { label : s , noStyle : o , colon : ! 1 , layout : "vertical" } , z = { placeholder : l , ... M } , G = ge ( ( V ) => V == null ? void 0 : g . toPrimitive ( V , i ) , [ i ] ) ;
return c ( Wt , { name : r , rules : D , initialValue : G ( f ) , normalize : G , children : ( V , k , se ) => {
2024-08-09 22:50:51 +08:00
var L ;
2024-08-22 10:24:06 +08:00
return c ( e , { type : i , rcform : se , itemProps : { validateStatus : k . errors . length > 0 ? "error" : "success" , tooltip : m , help : k . errors . length > 0 ? k . errors . join ( "、" ) : null , required : ( ( L = D == null ? void 0 : D [ 0 ] ) == null ? void 0 : L . required ) || ! 1 , ... K } , fieldProps : { ... z , ... V } , $setting : u || { } } ) ;
2024-08-09 22:50:51 +08:00
} } ) ;
} , St = ( { cols : e = 24 , rowHeight : t = 16 , itemMargin : a = [ 8 , 16 ] , containerPadding : n = [ 0 , 0 ] , fields : i = [ ] , children : r } ) => {
const s = ra ( i , ca , "@pkg/grid-layout-forms" ) ;
return $ ( "div" , { className : "ff-grid-layout-form" , style : { "--grid-layout-item-margin-x" : ` ${ ( a == null ? void 0 : a [ 0 ] ) ? ? 8 } px ` , "--grid-layout-item-margin-y" : ` ${ ( a == null ? void 0 : a [ 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 : [ s , r && b . cloneElement ( r , { cols : e , rowHeight : t , itemMargin : a , containerPadding : n , fields : i } ) ] } ) ;
} ;
St . propTypes = { fields : O . array } ;
const cn = ( It = St , ( { code : e , layout : t , name : a , primaryKey : n = 0 , style : i = { } , formProps : r = { } , form : s , isPreview : o = ! 1 , className : l , onFinish : u , onValuesChange : d = ( ) => {
} , ... m } ) => {
2024-08-22 10:24:06 +08:00
const { align : y , autoComplete : h , resource : f , items : C , hides : w , rowHeight : E , marginX : A , marginY : J , cols : W , listenChangeFields : I , listenChangeFieldsFunc : M , pk : D , uuid : K } = an ( e ) , [ z ] = re . useForm ( s ) , G = pe ( ( ) => [ { name : "__PK__" , value : D } , { name : "__PROPS__" , value : r } , { name : "__RESOURCE__" , value : f } , { name : "__LAYOUT_KEY__" , value : e } , { name : "__LAYOUT_UUID__" , value : K } , { name : "__PRIMARY_KEY__" , value : n } ] , [ D , e , K , f , n , r ] ) ;
return $ ( re , { className : l , name : a || e , layout : t || y , fields : G , form : z , autoComplete : h , style : { ... i , position : "relative" } , onFinish : u , onValuesChange : ( V , k ) => ( ( { changedValues : se , allValues : L , listenChangeFields : me , listenChangeFieldsFunc : Ne , onValuesChange : it , code : T } ) => {
it ( se , L ) , Ne && Array . isArray ( me ) && $e . exec ( Ne , { changedValues : se , allValues : L } , { getFieldValue : z . getFieldValue , setFieldsValue : z . setFieldsValue , isFieldTouched : z . isFieldTouched , isFieldsTouched : z . isFieldsTouched } ) ;
} ) ( { changedValues : V , allValues : k , listenChangeFields : I , listenChangeFieldsFunc : M , onValuesChange : d , code : e } ) , children : [ c ( It , { ... m , form : z , code : e , fields : C , cols : W , rowHeight : E , itemMargin : [ A , J ] } ) , w == null ? void 0 : w . map ( ( V ) => {
2024-08-09 22:50:51 +08:00
var k ;
2024-08-22 10:24:06 +08:00
return c ( Wt , { name : V . code , children : c ( on , { form : z , name : V . code , type : V . type , initialValue : V . initialValue , initialValueLanguage : ( k = V . extras ) == null ? void 0 : k . initialValueLanguage } ) } , JSON . stringify ( V . code ) ) ;
2024-08-09 22:50:51 +08:00
} ) ] } ) ;
} ) ;
var It ;
const da = ( { $setting : e , $close : t , extras : a , code : n , primaryKey : i , ... r } ) => {
const [ s ] = re . useForm ( ) , o = rn ( n , i , e ) ;
return N ( ( ) => {
o && s . setFieldsValue ( o ) ;
2024-08-22 10:24:06 +08:00
} , [ o ] ) , c ( H , { actions : $ ( b . Fragment , { children : [ c ( S , { name : "保存" , type : "primary" , widget : ( ) => {
2024-08-09 22:50:51 +08:00
const l = s . getFieldValue ( "__RESOURCE__" ) , { initDataUri : u = ` /api/ ${ n } ` } = e || { } ;
2024-08-22 10:24:06 +08:00
s . validateFields ( ! 0 ) . then ( ( d ) => l ? g . pick ( d , [ l ] ) : d ) . then ( ( d ) => x . post ( i ? ` ${ u } / ${ i } ` : ` ${ u } ` , d ) . msg ( t ) ) . catch ( ( ) => _ . error ( "请先完善表单信息" , { duration : 2e3 } ) ) ;
2024-08-09 22:50:51 +08:00
} } ) , c ( S , { name : "取消" , widget : ( ) => t ( ! 1 ) } ) ] } ) , extras : a , children : c ( cn , { form : s , code : n , primaryKey : i , ... r } ) } ) ;
} , dn = ( e , t , { isReplaceRouteHistory : a = ! 1 } = { } ) => Pe . redirect ( t , e , { replace : a } ) , At = ( e , t , { status : { loading : a , disabled : n } , setStatus : i } ) => {
const r = { loading : ( s ) => s === void 0 ? a : i ( ( o ) => ( { ... o , loading : s } ) ) , disabled : ( s ) => s === void 0 ? n : i ( ( o ) => ( { ... o , disabled : s } ) ) } ;
return g . isFunction ( t ) ? t . call ( null , { ... e , ... r } ) : g . isString ( t ) && t ? $e . exec ( t , e , r ) : null ;
2024-08-22 10:24:06 +08:00
} , Mt = ( e , t , a , n ) => g . isString ( t ) && t ? X . getWidgetComponent ( t ) . then ( ( { default : i } ) => _ . modal ( i , { ... e , $setting : a } , n ) ) . catch ( ( i ) => {
_ . error ( t , { content : i . toString ( ) } ) ;
} ) : _ . modal ( t , { ... e , $setting : a } , n ) , un = ( e , t , a , n ) => _ . modal ( da , { ... e , $setting : a , code : t } , n ) , gn = ( e , t , a , n ) => _ . modal ( vt , { base62params : e , $setting : a , listCode : t } , n ) , pn = ( { widget : e , widgetType : t , widgetData : a , widgetProps : n , widgetSetting : i , widgetContainerProps : r } , { onAfterClick : s , onBeforeClick : o } ) => {
2024-08-09 22:50:51 +08:00
const l = Ge ( Le ) , [ u , d ] = P ( { leading : ! 0 , trailing : ! 1 } ) , m = pe ( ( ) => {
switch ( t ) {
case "redirect" :
return g . partialRight ( dn , e , i ) ;
case "func" :
return g . partialRight ( At , ( i == null ? void 0 : i . code ) ? ? e , { status : u , setStatus : d } ) ;
case "fsdpf-component" :
return g . partialRight ( Mt , e , i , r ) ;
case "grid-layout-form" :
return g . partialRight ( un , e , i , r ) ;
case "data-list" :
return g . partialRight ( gn , e , i , r ) ;
default :
if ( $t ( e ) || b . isValidElement ( e ) ) return g . partialRight ( Mt , e , i , r ) ;
if ( g . isFunction ( e ) ) return g . partialRight ( At , ( i == null ? void 0 : i . code ) || e , { status : u , setStatus : d } ) ;
}
return ( ... y ) => console . error ( "useButton unknown widgetType" , t , ... y ) ;
} , [ e , t ] ) ;
return [ g . debounce ( ( y ) => ( o == null || o ( y ) , Promise . resolve ( _t ( n , y , { list : l } ) ) . then ( ( h ) => m ( { ... a , ... h } ) ) . then ( ( h ) => s == null ? void 0 : s ( h ) ) . catch ( console . error ) ) , 300 , { leading : ! 0 , trailing : ! 1 } ) , u ] ;
} , zt = /* @__PURE__ */ new Set ( ) , ft = ( e = [ ] , t = 0 ) => {
const a = e [ t ] ;
if ( a . length && ! zt . has ( a ) ) {
const n = document . createElement ( "script" ) ;
n . setAttribute ( "src" , a ) , n . setAttribute ( "data-namespace" , a ) , e . length > t + 1 && ( n . onload = ( ) => {
ft ( e , t + 1 ) ;
} , n . onerror = ( ) => {
ft ( e , t + 1 ) ;
} ) , zt . add ( a ) , document . body . appendChild ( n ) ;
}
} , yt = ( { className : e , type : t , style : a = { } , ... n } ) => c ( "span" , { role : "img" , className : R ( "ff-iconfont" , e ) , style : a , ... n , children : c ( "svg" , { style : { width : "1em" , height : "1em" , fill : "currentColor" , overflow : "hidden" } , viewBox : "0 0 1024 1024" , children : c ( "use" , { xlinkHref : ` # ${ t } ` } ) } ) } ) ;
yt . propTypes = { className : O . string , type : O . string . isRequired , style : O . object } , yt . init = ft ;
2024-08-22 10:24:06 +08:00
const Qe = ( e ) => function ( { className : t , children : a , name : n , icon : i , type : r = "default" , iconPosition : s = "start" , noAuthType : o , onAfterClick : l , onBeforeClick : u , data : d , loading : m , disabled : y , tooltip : h , popConfirm : f , widget : C , widgetType : w , widgetData : E , widgetProps : A , widgetSetting : J , widgetContainerProps : W , ... I } ) {
const M = { type : "primary" , className : R ( "ff-button" , t ) , iconPosition : s } ;
r === "danger" ? M . danger = ! 0 : r === "default" && ( M . type = r ) , e === "link" || e === "dashed" ? ( M . type = e , r === "default" && ( M . className = R ( M . className , "ff-default" ) ) ) : e !== "circle" && e !== "round" || ( M . shape = e ) , i && ( M . icon = c ( yt , { type : i } ) ) ;
const [ D , K ] = P ( ! 1 ) , [ z , { disabled : G , loading : V } ] = pn ( { widget : C , widgetType : w , widgetData : E , widgetProps : A , widgetSetting : J , widgetContainerProps : W } , { onAfterClick : l , onBeforeClick : u } ) ;
return c ( va , { okText : "确定" , cancelText : "取消" , ... f || { } , disabled : G || y , open : D , onOpenChange : ( k ) => {
if ( ! k ) return K ( k ) ;
f ? K ( k ) : z ( d ) ;
2024-08-09 22:50:51 +08:00
} , onConfirm : ( ) => {
2024-08-22 10:24:06 +08:00
z ( d ) ;
2024-08-09 22:50:51 +08:00
} , onClick : ( k ) => {
k . stopPropagation ( ) ;
2024-08-22 10:24:06 +08:00
} , children : c ( ka , { ... h , title : D ? null : h == null ? void 0 : h . title , trigger : [ "hover" , "click" ] , children : c ( lt , { loading : V || m , disabled : G || y , ... M , ... I , children : a || n } ) } ) } ) ;
2024-08-09 22:50:51 +08:00
} , S = Qe ( "default" ) , mn = Qe ( "link" ) , hn = Qe ( "circle" ) , fn = Qe ( "round" ) , yn = Qe ( "dashed" ) , Bt = ( { data : e , widget : t , widgetType : a = "fsdpf-component" , children : n , widgetData : i , widgetProps : r , widgetSetting : s , widgetContainerProps : o } ) => {
2024-08-22 10:24:06 +08:00
const l = Ge ( Le ) , [ u , d ] = P ( ! 1 ) , [ m , y ] = P ( "hover" ) , [ h , f ] = P ( { } ) , [ C , w ] = P ( ) , { placement : E , ... A } = o || { } ;
2024-08-09 22:50:51 +08:00
N ( ( ) => {
2024-08-22 10:24:06 +08:00
a == "grid-layout-form" ? w ( b . createElement ( da , { ... i , $setting : s , code : t } ) ) : a == "data-list" ? w ( b . createElement ( vt , { base62params : e , $setting : s , listCode : t } ) ) : g . isString ( t ) ? X . getWidgetComponent ( t ) . then ( ( { default : I } ) => {
w ( b . createElement ( I , { ... i , $setting : s } ) ) ;
} ) . catch ( ( I ) => w ( I . toString ( ) ) ) : $t ( t ) ? w ( b . createElement ( t , { ... i , $setting : s } ) ) : b . isValidElement ( t ) && w ( b . cloneElement ( t , { ... i , $setting : s } ) ) ;
2024-08-09 22:50:51 +08:00
} , [ t , a , i ] ) , N ( ( ) => {
Promise . resolve ( _t ( r , e , { list : l } ) ) . then ( f ) ;
} , [ r , e ] ) ;
2024-08-22 10:24:06 +08:00
const J = ( I ) => {
d ( I ) , ! I && y ( "hover" ) ;
} , W = ( ) => {
2024-08-09 22:50:51 +08:00
d ( ! 0 ) , y ( "click" ) ;
} ;
2024-08-22 10:24:06 +08:00
return c ( Sa , { zIndex : 1e3 , placement : E , onPopupClick : W , onClick : W , open : u , trigger : m , content : c ( wn , { ... A , children : C && b . cloneElement ( C , { ... h , $close : ( ) => J ( ! 1 ) } ) } ) , children : n , onOpenChange : J } ) ;
} , wn = ( { title : e , className : t , children : a , ... n } ) => {
const [ i , r ] = P ( { } ) , s = ge ( ( u , d ) => r ( ( m ) => ( { ... m , [ u ] : d } ) ) , [ ] ) , o = ge ( ( u ) => r ( ( d ) => ( { ... d , [ u ] : void 0 } ) ) , [ ] ) , l = e ? b . createElement ( "div" , { className : "ff-popup-title" } , e ) : i == null ? void 0 : i . title ;
2024-08-22 10:29:19 +08:00
return c ( _e . Provider , { value : { ele : i , mount : s , unmount : o } , children : $ ( "div" , { className : R ( "ff-popup ff-popover" , t ) , ... n , children : [ l || i != null && i [ "sub-title" ] ? $ ( "div" , { className : "ff-popup-header" , children : [ l || c ( "div" , { className : "ff-popup-title" } ) , ( i == null ? void 0 : i [ "sub-title" ] ) || c ( "div" , { className : "ff-popup-sub-title" } ) ] } ) : null , a , i != null && i . extras || i != null && i . actions ? $ ( "div" , { className : "ff-popup-footer" , children : [ ( i == null ? void 0 : i . extras ) || c ( "div" , { className : "ff-popup-extras" } ) , ( i == null ? void 0 : i . actions ) || c ( "div" , { className : "ff-popup-actions" } ) ] } ) : null ] } ) } ) ;
2024-08-09 22:50:51 +08:00
} ;
Bt . propTypes = { widgetType : O . oneOf ( [ "fsdpf-component" , "grid-layout-form" , "data-list" ] ) } , S . propTypes = { type : O . oneOf ( [ "primary" , "default" , "danger" , "" ] ) , name : O . string , icon : O . string , iconPosition : O . oneOf ( [ "start" , "end" ] ) , data : O . any , widget : O . any , widgetType : O . oneOf ( [ "destroy" , "redirect" , "func" , "fsdpf-component" , "grid-layout-form" , "grid-layout" , "data-list" ] ) , widgetData : O . object , widgetProps : O . object , widgetSetting : O . object , widgetContainerProps : O . object } , S . Link = mn , S . Link . defaultProps = S . defaultProps , S . Link . propTypes = S . propTypes , S . Circle = hn , S . Circle . defaultProps = S . defaultProps , S . Circle . propTypes = S . propTypes , S . Round = fn , S . Round . defaultProps = S . defaultProps , S . Round . propTypes = S . propTypes , S . Dashed = yn , S . Dashed . defaultProps = S . defaultProps , S . Dashed . propTypes = S . propTypes , S . Popover = Bt ;
const bn = ( { fields : e , formProps : t , $close : a } ) => {
const [ n ] = re . useForm ( ) , i = pe ( ( ) => [ { name : "__PROPS__" , value : t } ] , [ t ] ) ;
2024-08-22 10:24:06 +08:00
return c ( H , { actions : $ ( b . Fragment , { children : [ c ( S , { name : "取消" , widget : ( ) => a ( ! 1 ) } ) , c ( S , { name : "确定" , type : "primary" , widget : ( ) => n . validateFields ( ! 0 ) . then ( a ) } ) ] } ) , children : c ( re , { fields : i , form : n , className : "ff-modal-form" , children : e == null ? void 0 : e . map ( ( { code : r , ... s } ) => c ( ln , { code : r , ... s } , r ) ) } ) } ) ;
2024-08-09 22:50:51 +08:00
} , Cn = ( { className : e , $close : t , children : a , title : n , subTitle : i , actions : r , extras : s , zIndex : o , ... l } ) => $ ( La , { ... l , prefixCls : "ff-drawer" , className : R ( "ff-popup" , e ) , height : 378 , maskMotion : { motionAppear : ! 0 , motionName : "mask-motion" } , motion : ( u ) => ( { motionAppear : ! 0 , motionName : ` panel-motion- ${ u } ` } ) , children : [ $ ( "div" , { className : "ff-popup-header" , children : [ c ( "button" , { "aria-label" : "Close" , className : "ff-popup-close" , onClick : l . onClose , children : c ( Ct , { type : "close" } ) } ) , n , i ] } ) , c ( "div" , { className : "ff-popup-body" , children : a } ) , $ ( "div" , { className : "ff-popup-footer" , children : [ s , " " , r ] } ) ] } ) , vn = ( { className : e , $close : t , $event : a , children : n , title : i , subTitle : r , actions : s , extras : o , zIndex : l , placement : u , ... d } ) => {
const m = ( a == null ? void 0 : a . pageX ) === void 0 ? { animation : null , maskAnimation : null , mousePosition : { x : null , y : null } } : { animation : "zoom" , maskAnimation : "fade" , mousePosition : { x : a == null ? void 0 : a . pageX , y : a == null ? void 0 : a . pageY } } ;
return c ( Va , { ... d , ... m , prefixCls : "ff-modal" , modalRender : ( ) => $ ( "div" , { className : R ( "ff-modal-content ff-popup" , e ) , children : [ $ ( "div" , { className : "ff-popup-header" , children : [ c ( "button" , { "aria-label" : "Close" , className : "ff-popup-close" , onClick : d . onClose , children : c ( Ct , { type : "close" } ) } ) , i , " " , r ] } ) , c ( "div" , { className : "ff-popup-body" , children : n } ) , $ ( "div" , { className : "ff-popup-footer" , children : [ o , " " , s ] } ) ] } ) } ) ;
} , ua = ( { placement : e , $close : t , $event : a , children : n , title : i , ... r } ) => {
const [ s , o ] = P ( { } ) , [ l , u ] = P ( ! 0 ) , d = ge ( ( f , C ) => o ( ( w ) => ( { ... w , [ f ] : C } ) ) , [ ] ) , m = ge ( ( f ) => o ( ( C ) => ( { ... C , [ f ] : void 0 } ) ) , [ ] ) ;
let y = { ... r , className : s . rootClassName , title : s . title || i && b . createElement ( "div" , { className : R ( "ff-popup-title" ) } , i ) , subTitle : s [ "sub-title" ] , actions : s . actions , extras : s . extras , children : n , $close : t , $event : a , onClose : ( ) => u ( ! 1 ) } ;
const h = ( ) => {
t ( ! 1 ) ;
} ;
return c ( _e . Provider , { value : { ele : s , mount : d , unmount : m } , children : e && e !== "center" ? c ( Cn , { ... y , placement : e , open : l , afterOpenChange : ( f ) => ! f && h ( ) } ) : c ( vn , { ... y , visible : l , afterClose : h } ) } ) ;
} ;
ua . propTypes = { placement : O . oneOf ( [ "center" , "left" , "top" , "right" , "bottom" ] ) } ;
2024-08-22 10:24:06 +08:00
const q = ( ) => {
2024-08-09 22:50:51 +08:00
const [ e , t ] = Ra ( { maxCount : 6 , motion : { motionName : "ff-notification-fade" , motionAppear : ! 0 , motionEnter : ! 0 , motionLeave : ! 0 , onLeaveStart : ( r ) => {
const { offsetHeight : s } = r ;
return { height : s } ;
} , onLeaveActive : ( ) => ( { height : 0 , opacity : 0 , margin : 0 } ) } , prefixCls : "ff-notification" } ) , [ , a ] = b . useReducer ( ( r ) => r + 1 , 0 ) ;
N ( ( ) => {
2024-08-22 10:24:06 +08:00
q . $onClick = n , q . $queue . forEach ( ( [ r , s , o ] , l , u ) => {
2024-08-09 22:50:51 +08:00
i ( [ s , o ] , ... r ) , delete u [ l ] ;
} ) ;
} , [ ] ) ;
const n = ( r , s = { } , o = { } ) => new Promise ( ( l , u ) => i ( [ l , u ] , r , s , o ) ) , i = ( [ r , s ] , o , l = { } , u = { } ) => {
2024-08-22 10:24:06 +08:00
const d = q . $index ++ , m = ( y ) => ( ( h , f ) => ( q . $popups . delete ( h ) , a ( ) , f == null ? void 0 : f ( ) ) ) ( d , ( ) => r ( y ) ) ;
2024-08-09 22:50:51 +08:00
if ( o === Gt ) return e . open ( { ... u , key : d , content : b . createElement ( o , { ... l , $close : ( ) => e . close ( d ) } ) } ) ;
2024-08-22 10:24:06 +08:00
q . $popups . set ( d , b . createElement ( ua , { zIndex : d , maskClosable : ! 1 , $event : l == null ? void 0 : l . $event , ... u , key : d , $close : m } , b . isValidElement ( o ) ? b . cloneElement ( o , { ... l , $close : m } ) : o != null && o . name ? b . createElement ( o , { ... l , $close : m } ) : o ) ) , a ( ) ;
2024-08-09 22:50:51 +08:00
} ;
2024-08-22 10:24:06 +08:00
return $ ( b . Fragment , { children : [ Array . from ( q . $popups ) . map ( ( [ r , s ] ) => s ) , t ] } ) ;
2024-08-09 22:50:51 +08:00
} ;
2024-08-22 10:24:06 +08:00
q . $popups = /* @__PURE__ */ new Map ( ) , q . $index = 0 , q . $queue = [ ] , q . $onClick = ( ... e ) => new Promise ( ( t , a ) => {
q . $queue . push ( [ e , t , a ] ) ;
2024-08-09 22:50:51 +08:00
} ) ;
2024-08-22 10:24:06 +08:00
const Ut = ( e , t , a = { } ) => q . $onClick ( e , t , a ) , st = ( e , { showProgress : t , duration : a , ... n } = { duration : 1.5 } ) => q . $onClick ( Gt , { content : e , ... n } , { showProgress : t , duration : a } ) , _ = { modal : Ut , confirm : ( e , t = { } ) => q . $onClick ( ja , { content : e , ... t } , { placement : "center" } ) , form : ( e , t = { } , a = { } ) => Ut ( bn , { formProps : a , fields : e } , { placement : "center" , ... t } ) . then ( ( n ) => {
2024-08-09 22:50:51 +08:00
if ( n === ! 1 ) throw ! 1 ;
return n ;
} ) , notification : st , success : ( e , t = { duration : 1.5 } ) => st ( e , { ... t , className : "ff-notification-success" , icon : "check" } ) , error : ( e , t = { duration : 1.5 } ) => st ( e , { ... t , className : "ff-notification-error" , icon : "close" } ) } ;
Be . configure ( { showSpinner : ! 1 } ) , Ue . interceptors . request . use ( ( e ) => {
e . headers . Platform = "web" , e . headers . SaaS = window . localStorage . getItem ( "SaaS" ) ;
const t = window . localStorage . getItem ( tt ) ;
return e . headers . Authorization = t ? ` Bearer ${ t } ` : void 0 , Be . inc ( ) , e ;
} , ( e ) => ( Be . done ( ) , Promise . reject ( { code : - 1 , msg : e } ) ) ) , Ue . interceptors . response . use ( ( { data : e , headers : t } ) => ( Be . done ( ) , { ... e , res : t == null ? void 0 : t . res } ) , function ( e ) {
return Be . done ( ) , Promise . reject ( e . message ) ;
2024-08-22 10:24:06 +08:00
} ) , window . addEventListener ( "unhandledrejection" , ct . onUnhandledRejection ) , ct . onMsg = ( e , t ) => _ [ [ 0 , 1 ] . includes ( e ) ? "success" : "error" ] ( t ) . then ( ( ) => e === 20300 && Pe . redirect ( De . get ( "Common.WEBSITE_LOGIN_PAGE" ) ) ) ;
2024-08-09 22:50:51 +08:00
const wt = { appUrl : "" , init : ( e , t , a ) => {
wt . appUrl = a , Ue . defaults . baseURL = a , Ue . defaults . timeout = 15e3 , Object . assign ( wt , new ct ( e , t , Ue ) ) ;
2024-08-22 10:24:06 +08:00
} } , x = wt ;
2024-08-09 22:50:51 +08:00
class Pt extends Error {
constructor ( t , a ) {
super ( a ) , Error . captureStackTrace && Error . captureStackTrace ( this , Pt ) , ! a instanceof We && ( this . name = ` ${ t } Error Runtime ` ) ;
}
}
class We extends Error {
constructor ( t , ... a ) {
super ( ... a ) , Error . captureStackTrace && Error . captureStackTrace ( this , We ) , this . name = ` ${ t } Not Found ` ;
}
}
const ot = "mine" , tt = "token" ;
2024-08-22 10:24:06 +08:00
var Se , Y ;
2024-08-09 22:50:51 +08:00
const ie = class ie {
constructor ( ) {
2024-08-22 10:24:06 +08:00
F ( this , Y , /* @__PURE__ */ new Map ( ) ) ;
v ( this , "setVendor" , ( t , a ) => p ( this , Y ) . set ( t , new Jt ( a , async ( n , i ) => {
2024-08-09 22:50:51 +08:00
var s , o ;
if ( ! ( n != null && n . default ) ) throw "@pkg not found" ;
let r = ( ) => i ;
switch ( "function" ) {
case typeof ( r = ( s = n . default ) == null ? void 0 : s [ ` ./ ${ i } /index.jsx ` ] ) :
case typeof ( r = ( o = n . default ) == null ? void 0 : o [ ` ./ ${ i } /index.js ` ] ) :
return r ( ) ;
}
throw new We ( i ) ;
} ) ) ) ;
v ( this , "getWidgetComponent" , async ( t ) => {
if ( ! t ) throw "getWidgetComponent widget is required" ;
const [ , a ] = t == null ? void 0 : t . split ( "@ff/" ) , [ , n ] = t == null ? void 0 : t . split ( "@app/" ) , [ , i ] = t == null ? void 0 : t . split ( "@pkg/" ) , [ , r ] = t == null ? void 0 : t . split ( "@fsdpf/" ) ;
try {
switch ( ! 0 ) {
2024-08-22 10:24:06 +08:00
case ( ! ! a && p ( this , Y ) . has ( "pkg" ) ) :
return await p ( this , Y ) . get ( "pkg" ) . get ( a ) ;
case ( ! ! n && p ( this , Y ) . has ( "pkg" ) ) :
return await p ( this , Y ) . get ( "pkg" ) . get ( n ) ;
case ( ! ! i && p ( this , Y ) . has ( "pkg" ) ) :
return await p ( this , Y ) . get ( "pkg" ) . get ( i ) ;
case ( ! ! r && p ( this , Y ) . has ( "pkg" ) ) :
return await p ( this , Y ) . get ( "pkg" ) . get ( r ) ;
2024-08-09 22:50:51 +08:00
default :
throw new We ( t ) ;
}
} catch ( s ) {
throw new Pt ( t , s ) ;
}
} ) ;
2024-08-22 10:24:06 +08:00
v ( this , "getRoutes" , ( ) => x . get ( "/api/my-router" ) . then ( ( t ) => [ ... t , { uuid : "data-list-setting" , isLayout : ! 0 , uri : "/data-list-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/DataListSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "grid-layout-setting" , isLayout : ! 0 , uri : "/grid-layout-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/GridLayoutSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "grid-layout-form-setting" , isLayout : ! 0 , uri : "/grid-layout-form-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/GridLayoutFormSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "resource-api-setting" , isLayout : ! 0 , uri : "/resource-api-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/ResourceApiSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "charts-setting" , isLayout : ! 0 , uri : "/resource-api-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/ChartsSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "fsm-setting" , isLayout : ! 0 , uri : "/fsm-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/FsmSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "component-setting" , isLayout : ! 0 , uri : "/component-setting/:category/:categoryUuid" , type : "fsdpf-component" , component : "@pkg/components/ff-design/ComponentSetting" , extra : { layout : "@pkg/frameworks/DesignTheme" } } , { uuid : "login" , uri : "/login" , name : "登录" , type : "fsdpf-component" , isLogin : ! 1 , component : "@pkg/components/ff/Login" } , { uuid : "not-found" , uri : "*" , name : "Not Found" , type : "fsdpf-component" , isLogin : ! 1 , component : "@pkg/components/ff/NotFound" } ] . map ( ( { uuid : a , ... n } ) => [ a , { uuid : a , ... n } ] ) ) . then ( ( t ) => new Map ( t ) ) ) ;
v ( this , "getMenus" , ( ) => x . get ( "/api/my-menu" ) ) ;
v ( this , "getConfigure" , ( ) => x . get ( "api/init-configure" ) ) ;
v ( this , "getWidgetOperationAuth" , ( ) => x . get ( "/api/init-widget-operation-auth" ) . then ( ( t ) => t . reduce ( ( a , { uuid : n , auth : i } ) => [ ... a , [ n , i ] ] , [ ] ) ) ) ;
v ( this , "getPhoneNumber" , ( t ) => x . get ( ` /api/user-wx-phone-number/ ${ t } ` ) ) ;
2024-08-09 22:50:51 +08:00
v ( this , "getUserToken" , ( ) => {
const t = window . localStorage . getItem ( tt ) ;
if ( ! t ) return "" ;
const a = t . split ( "." ) ;
if ( ! Array . isArray ( a ) || a . length !== 3 ) throw "登录令牌无效!" ;
const { iat : n } = JSON . parse ( window . atob ( a [ 1 ] ) ) ;
if ( Math . floor ( ( /* @__PURE__ */ new Date ( ) ) . getTime ( ) / 1e3 ) - n > 2592e3 ) throw "登录令牌已过期, 请重新登录!" ;
return t ;
} ) ;
v ( this , "checkUserToken" , ( ) => {
try {
return ! ! this . getUserToken ( ) ;
} catch {
return ! 1 ;
}
} ) ;
v ( this , "getUserInfo" , ( t = ! 0 ) => {
var a ;
try {
const n = this . getUserToken ( ) ;
if ( ! n ) return Promise . resolve ( null ) ;
2024-08-22 10:24:06 +08:00
const { iat : i } = JSON . parse ( window . atob ( ( a = n == null ? void 0 : n . split ( "." ) ) == null ? void 0 : a [ 1 ] ) ) , { iat : r , ... s } = x . decode ( window . localStorage . getItem ( ot ) || "" , { } ) ;
return r === i ? Promise . resolve ( s ) : x . get ( "/api/mine-info" ) . then ( ( { User : o = null } ) => ( window . localStorage . setItem ( ot , x . encode ( { ... o , iat : i } ) ) , o ) ) ;
2024-08-09 22:50:51 +08:00
} catch ( n ) {
console . error ( n ) , t && Popup . error ( "请登录" ) . then ( logout ) ;
}
return Promise . resolve ( null ) ;
} ) ;
2024-08-22 10:24:06 +08:00
v ( this , "login" , ( t , a , n = { } ) => x . post ( "/api/user-token" , { username : t , passwd : Oa . hash ( a ) , platform : "web" , ... n } ) . then ( ( { token : i } ) => ( window . localStorage . setItem ( tt , i ) , i ) ) ) ;
2024-08-09 22:50:51 +08:00
v ( this , "logout" , ( ) => {
window . localStorage . removeItem ( ot ) , window . localStorage . removeItem ( tt ) ;
} ) ;
if ( p ( ie , Se ) ) return p ( ie , Se ) ;
}
} ;
2024-08-22 10:24:06 +08:00
Se = new WeakMap ( ) , Y = new WeakMap ( ) , F ( ie , Se , null ) , v ( ie , "getInstance" , ( ) => ( p ( ie , Se ) || B ( ie , Se , new ie ( ) ) , p ( ie , Se ) ) ) ;
2024-08-09 22:50:51 +08:00
let bt = ie ;
2024-08-22 10:24:06 +08:00
const X = bt . getInstance ( ) , kn = b . createContext ( { user : { } , initUser : ( ) => {
2024-08-09 22:50:51 +08:00
} , initUserComplete : ! 1 } ) , Sn = b . createContext ( { set : ( ) => {
} , get : ( ) => {
} , assign : ( ) => {
} , currentRoute : ( ) => {
2024-08-22 10:24:06 +08:00
} } ) , $t = ( e ) => ! ! ( e != null && e . name ) && ( e . prototype instanceof b . Component || /^[A-Z]/ . test ( e . name ) ) , Pn = Object . freeze ( Object . defineProperty ( { _ _proto _ _ : null , AppContext : kn , AppGlobalParamsContext : Sn , cache : Jt , configure : De , default : X , func : $e , http : x , isReactComponent : $t , route : Pe } , Symbol . toStringTag , { value : "Module" } ) ) , $n = ( e , t , a = "children" ) => {
2024-08-09 22:50:51 +08:00
if ( g . isEmpty ( e ) ) return { } ;
const n = g . find ( e , [ "value" , t ] ) ;
if ( ! g . isEmpty ( n ) ) return n ;
const i = e . length ;
for ( let r = 0 ; r < i ; r ++ ) {
const { [ a ] : s } = e [ r ] , o = $n ( s , t , a ) ;
if ( ! g . isEmpty ( o ) ) return o ;
}
return { } ;
} ;
export {
$t as $ ,
Yn as A ,
Qn as B ,
cn as C ,
Da as D ,
St as E ,
ln as F ,
Kn as G ,
Ja as H ,
da as I ,
an as J ,
nn as K ,
rn as L ,
sn as M ,
yt as N ,
S as O ,
Ia as P ,
pn as Q ,
Xt as R ,
2024-08-22 10:24:06 +08:00
H as S ,
2024-08-09 22:50:51 +08:00
_e as T ,
Kt as U ,
2024-08-22 10:24:06 +08:00
q as V ,
_ as W ,
2024-08-09 22:50:51 +08:00
Dn as X ,
Wn as Y ,
qn as Z ,
2024-08-22 10:24:06 +08:00
X as _ ,
2024-08-09 22:50:51 +08:00
na as a ,
2024-08-22 10:24:06 +08:00
x as a0 ,
2024-08-09 22:50:51 +08:00
Jt as a1 ,
De as a2 ,
$e as a3 ,
Pe as a4 ,
kn as a5 ,
Sn as a6 ,
$n as a7 ,
sa as b ,
Gn as c ,
ra as d ,
kt as e ,
ea as f ,
Zt as g ,
ta as h ,
aa as i ,
vt as j ,
Le as k ,
Ha as l ,
Ya as m ,
za as n ,
Ua as o ,
Aa as p ,
Ma as q ,
Hn as r ,
Jn as s ,
gt as t ,
ia as u ,
oa as v ,
jt as w ,
_n as x ,
Ye as y ,
tn as z
} ;