@actdim/dynstruct 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/appDomain/appContracts.d.ts +7 -6
  2. package/dist/appDomain/appContracts.d.ts.map +1 -1
  3. package/dist/appDomain/appContracts.es.js +8 -10
  4. package/dist/appDomain/appContracts.es.js.map +1 -1
  5. package/dist/appDomain/security/securityProvider.d.ts.map +1 -1
  6. package/dist/appDomain/security/securityProvider.es.js +48 -50
  7. package/dist/appDomain/security/securityProvider.es.js.map +1 -1
  8. package/dist/componentModel/DynamicContent.es.js +5 -5
  9. package/dist/componentModel/DynamicContent.es.js.map +1 -1
  10. package/dist/componentModel/adapters.d.ts +4 -3
  11. package/dist/componentModel/adapters.d.ts.map +1 -1
  12. package/dist/componentModel/adapters.es.js +10 -12
  13. package/dist/componentModel/adapters.es.js.map +1 -1
  14. package/dist/componentModel/componentContext.d.ts +2 -2
  15. package/dist/componentModel/componentContext.d.ts.map +1 -1
  16. package/dist/componentModel/componentContext.es.js +1 -1
  17. package/dist/componentModel/componentContext.es.js.map +1 -1
  18. package/dist/componentModel/contracts.d.ts +21 -21
  19. package/dist/componentModel/contracts.d.ts.map +1 -1
  20. package/dist/componentModel/contracts.es.js.map +1 -1
  21. package/dist/componentModel/core.d.ts.map +1 -1
  22. package/dist/componentModel/core.es.js +86 -86
  23. package/dist/componentModel/core.es.js.map +1 -1
  24. package/dist/componentModel/react.d.ts.map +1 -1
  25. package/dist/componentModel/react.es.js +130 -136
  26. package/dist/componentModel/react.es.js.map +1 -1
  27. package/dist/services/ServiceProvider.d.ts +6 -4
  28. package/dist/services/ServiceProvider.d.ts.map +1 -1
  29. package/dist/services/ServiceProvider.es.js +8 -13
  30. package/dist/services/ServiceProvider.es.js.map +1 -1
  31. package/dist/services/StorageService.d.ts +5 -14
  32. package/dist/services/StorageService.d.ts.map +1 -1
  33. package/dist/services/StorageService.es.js +37 -48
  34. package/dist/services/StorageService.es.js.map +1 -1
  35. package/dist/services/{NavService.d.ts → react/NavService.d.ts} +3 -3
  36. package/dist/services/react/NavService.d.ts.map +1 -0
  37. package/dist/services/{NavService.es.js → react/NavService.es.js} +2 -2
  38. package/dist/services/react/NavService.es.js.map +1 -0
  39. package/dist/services/react/ServiceProvider.d.ts +7 -0
  40. package/dist/services/react/ServiceProvider.d.ts.map +1 -0
  41. package/dist/services/react/ServiceProvider.es.js +24 -0
  42. package/dist/services/react/ServiceProvider.es.js.map +1 -0
  43. package/dist/services/react/StorageService.d.ts +16 -0
  44. package/dist/services/react/StorageService.d.ts.map +1 -0
  45. package/dist/services/react/StorageService.es.js +55 -0
  46. package/dist/services/react/StorageService.es.js.map +1 -0
  47. package/package.json +1 -1
  48. package/dist/services/NavService.d.ts.map +0 -1
  49. package/dist/services/NavService.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"componentContext.es.js","sources":["../../src/componentModel/componentContext.tsx"],"sourcesContent":["//##############################################################################\r\n//# Copyright (c) Pavel Borodaev #\r\n//##############################################################################\r\n\r\nimport React, { createContext, PropsWithChildren, useContext, useRef } from 'react';\r\nimport { BaseComponentContext, ComponentRegistryContext, ComponentTreeNode } from './contracts';\r\nimport { toHtmlId } from './core';\r\n\r\nexport const ReactComponentContext = createContext<ComponentRegistryContext>(undefined);\r\n\r\n// ComponentRegistry(Context)Provider\r\nexport function ComponentContextProvider(\r\n props: PropsWithChildren<{\r\n value?: BaseComponentContext;\r\n }>,\r\n) {\r\n let context: React.RefObject<ComponentRegistryContext>;\r\n const treeRef = useRef(new Map<string, ComponentTreeNode>());\r\n // idStack\r\n const regStack = useRef([]);\r\n\r\n const seqMap = useRef(new Map<string, number>());\r\n\r\n const getNextId = (regType: string) => {\r\n let index = 1;\r\n if (seqMap.current.has(regType)) {\r\n index = seqMap.current.get(regType);\r\n }\r\n seqMap.current.set(regType, index + 1);\r\n return `${toHtmlId(regType)}#${index}`;\r\n };\r\n\r\n const getCurrentId = () => {\r\n return regStack.current[regStack.current.length - 1];\r\n };\r\n\r\n const register = (id: string, regType: string, parentId?: string) => {\r\n let node = treeRef.current.get(id);\r\n\r\n if (!node) {\r\n node = {\r\n id,\r\n parentId,\r\n children: new Set(),\r\n regType: regType,\r\n };\r\n treeRef.current.set(id, node);\r\n } else {\r\n node.parentId = parentId;\r\n node.regType = regType;\r\n }\r\n\r\n if (parentId) {\r\n let parentNode = treeRef.current.get(parentId);\r\n if (!parentNode) {\r\n parentNode = {\r\n id: parentId,\r\n children: new Set(),\r\n regType: undefined,\r\n };\r\n treeRef.current.set(parentId, parentNode);\r\n }\r\n if (!parentNode.children.has(id)) {\r\n parentNode.children.add(id);\r\n }\r\n }\r\n\r\n regStack.current.push(id);\r\n };\r\n\r\n const unregister = (id: string) => {\r\n const node = treeRef.current.get(id);\r\n if (!node) {\r\n return;\r\n }\r\n\r\n if (node.parentId) {\r\n const parent = treeRef.current.get(node.parentId);\r\n parent?.children.delete(id);\r\n }\r\n\r\n node.children.forEach((childId) => unregister(childId));\r\n treeRef.current.delete(id);\r\n\r\n const index = regStack.current.lastIndexOf(id);\r\n if (index >= 0) {\r\n regStack.current.splice(index, 1);\r\n }\r\n };\r\n\r\n const getParent = (id: string) => {\r\n return treeRef.current.get(id)?.parentId;\r\n };\r\n const getChildren = (id: string) => {\r\n return Array.from(treeRef.current.get(id)?.children ?? []) as string[];\r\n };\r\n\r\n const getChainUp = (id: string): string[] => {\r\n const result: string[] = [];\r\n let current = id;\r\n while (true) {\r\n const parent = getParent(current);\r\n if (!parent) {\r\n break;\r\n }\r\n result.push(parent);\r\n current = parent;\r\n }\r\n return result;\r\n };\r\n\r\n const getRootId = (id: string) => {\r\n let current = id;\r\n while (true) {\r\n const parent = getParent(current);\r\n if (!parent) {\r\n break;\r\n }\r\n current = parent;\r\n }\r\n return current;\r\n };\r\n\r\n const getChainDown = (id: string): string[] => {\r\n const result: string[] = [];\r\n const stack: string[] = [id];\r\n while (stack.length > 0) {\r\n const current = stack.pop();\r\n const children = getChildren(current)!;\r\n for (const child of children) {\r\n if (!result.includes(child)) {\r\n result.push(child);\r\n stack.push(child);\r\n }\r\n }\r\n // result.push(...children);\r\n // stack.push(...children);\r\n }\r\n return result;\r\n };\r\n\r\n const getHierarchy = (rootId: string) => {\r\n const buildNode = (id: string): ComponentTreeNode => {\r\n const childIds = getChildren(id) || [];\r\n return {\r\n id,\r\n parentId: getParent(id),\r\n children: childIds.map(buildNode),\r\n } as ComponentTreeNode & { children: ComponentTreeNode[] };\r\n };\r\n return buildNode(rootId);\r\n };\r\n\r\n const getSiblings = (id: string) => {\r\n const parent = getParent(id);\r\n if (!parent) {\r\n return [];\r\n }\r\n const children = getChildren(parent);\r\n if (!children) {\r\n return [];\r\n }\r\n return children.filter((child) => child !== id);\r\n };\r\n\r\n const getHierarchyPath = (id: string): string => {\r\n if (!id) {\r\n id = getCurrentId();\r\n }\r\n const path: string[] = [];\r\n let current = id;\r\n\r\n while (current) {\r\n path.push(current);\r\n current = getParent(current);\r\n }\r\n\r\n return path.reverse().join('/');\r\n };\r\n\r\n // getNodes\r\n const getNodeMap = () => treeRef.current;\r\n\r\n context = useRef({\r\n ...props.value,\r\n register,\r\n unregister,\r\n getParent,\r\n getChildren,\r\n getChainUp,\r\n getChainDown,\r\n getHierarchyPath,\r\n getNodeMap,\r\n getNextId,\r\n });\r\n\r\n return (\r\n <ReactComponentContext.Provider value={context.current}>\r\n {props.children}\r\n </ReactComponentContext.Provider>\r\n );\r\n}\r\n\r\n// useComponentRegistry(Context)\r\nexport function useComponentContext() {\r\n const context = useContext(ReactComponentContext);\r\n if (!context) {\r\n // useComponentContext must be used within a ComponentContextProvider\r\n throw new Error(\r\n \"Can't resolve ComponentContext. Please wrap your component tree with <ComponentContextProvider>.\",\r\n );\r\n }\r\n return context;\r\n}\r\n"],"names":["ReactComponentContext","createContext","ComponentContextProvider","props","context","treeRef","useRef","regStack","seqMap","getNextId","regType","index","toHtmlId","getCurrentId","register","id","parentId","node","parentNode","unregister","childId","getParent","getChildren","getChainUp","result","current","parent","getChainDown","stack","children","child","getHierarchyPath","path","getNodeMap","React","useComponentContext","useContext"],"mappings":";;AAQO,MAAMA,IAAwBC,EAAwC,MAAS;AAG/E,SAASC,EACZC,GAGF;AACE,MAAIC;AACJ,QAAMC,IAAUC,EAAO,oBAAI,KAAgC,GAErDC,IAAWD,EAAO,EAAE,GAEpBE,IAASF,EAAO,oBAAI,KAAqB,GAEzCG,IAAY,CAACC,MAAoB;AACnC,QAAIC,IAAQ;AACZ,WAAIH,EAAO,QAAQ,IAAIE,CAAO,MAC1BC,IAAQH,EAAO,QAAQ,IAAIE,CAAO,IAEtCF,EAAO,QAAQ,IAAIE,GAASC,IAAQ,CAAC,GAC9B,GAAGC,EAASF,CAAO,CAAC,IAAIC,CAAK;AAAA,EACxC,GAEME,IAAe,MACVN,EAAS,QAAQA,EAAS,QAAQ,SAAS,CAAC,GAGjDO,IAAW,CAACC,GAAYL,GAAiBM,MAAsB;AACjE,QAAIC,IAAOZ,EAAQ,QAAQ,IAAIU,CAAE;AAejC,QAbKE,KASDA,EAAK,WAAWD,GAChBC,EAAK,UAAUP,MATfO,IAAO;AAAA,MACH,IAAAF;AAAA,MACA,UAAAC;AAAA,MACA,8BAAc,IAAA;AAAA,MACd,SAAAN;AAAA,IAAA,GAEJL,EAAQ,QAAQ,IAAIU,GAAIE,CAAI,IAM5BD,GAAU;AACV,UAAIE,IAAab,EAAQ,QAAQ,IAAIW,CAAQ;AAC7C,MAAKE,MACDA,IAAa;AAAA,QACT,IAAIF;AAAA,QACJ,8BAAc,IAAA;AAAA,QACd,SAAS;AAAA,MAAA,GAEbX,EAAQ,QAAQ,IAAIW,GAAUE,CAAU,IAEvCA,EAAW,SAAS,IAAIH,CAAE,KAC3BG,EAAW,SAAS,IAAIH,CAAE;AAAA,IAElC;AAEA,IAAAR,EAAS,QAAQ,KAAKQ,CAAE;AAAA,EAC5B,GAEMI,IAAa,CAACJ,MAAe;AAC/B,UAAME,IAAOZ,EAAQ,QAAQ,IAAIU,CAAE;AACnC,QAAI,CAACE;AACD;AAGJ,IAAIA,EAAK,YACUZ,EAAQ,QAAQ,IAAIY,EAAK,QAAQ,GACxC,SAAS,OAAOF,CAAE,GAG9BE,EAAK,SAAS,QAAQ,CAACG,MAAYD,EAAWC,CAAO,CAAC,GACtDf,EAAQ,QAAQ,OAAOU,CAAE;AAEzB,UAAMJ,IAAQJ,EAAS,QAAQ,YAAYQ,CAAE;AAC7C,IAAIJ,KAAS,KACTJ,EAAS,QAAQ,OAAOI,GAAO,CAAC;AAAA,EAExC,GAEMU,IAAY,CAACN,MACRV,EAAQ,QAAQ,IAAIU,CAAE,GAAG,UAE9BO,IAAc,CAACP,MACV,MAAM,KAAKV,EAAQ,QAAQ,IAAIU,CAAE,GAAG,YAAY,EAAE,GAGvDQ,IAAa,CAACR,MAAyB;AACzC,UAAMS,IAAmB,CAAA;AACzB,QAAIC,IAAUV;AACd,eAAa;AACT,YAAMW,IAASL,EAAUI,CAAO;AAChC,UAAI,CAACC;AACD;AAEJ,MAAAF,EAAO,KAAKE,CAAM,GAClBD,IAAUC;AAAA,IACd;AACA,WAAOF;AAAA,EACX,GAcMG,IAAe,CAACZ,MAAyB;AAC3C,UAAMS,IAAmB,CAAA,GACnBI,IAAkB,CAACb,CAAE;AAC3B,WAAOa,EAAM,SAAS,KAAG;AACrB,YAAMH,IAAUG,EAAM,IAAA,GAChBC,IAAWP,EAAYG,CAAO;AACpC,iBAAWK,KAASD;AAChB,QAAKL,EAAO,SAASM,CAAK,MACtBN,EAAO,KAAKM,CAAK,GACjBF,EAAM,KAAKE,CAAK;AAAA,IAK5B;AACA,WAAON;AAAA,EACX,GA0BMO,IAAmB,CAAChB,MAAuB;AAC7C,IAAKA,MACDA,IAAKF,EAAA;AAET,UAAMmB,IAAiB,CAAA;AACvB,QAAIP,IAAUV;AAEd,WAAOU;AACH,MAAAO,EAAK,KAAKP,CAAO,GACjBA,IAAUJ,EAAUI,CAAO;AAG/B,WAAOO,EAAK,UAAU,KAAK,GAAG;AAAA,EAClC,GAGMC,IAAa,MAAM5B,EAAQ;AAEjC,SAAAD,IAAUE,EAAO;AAAA,IACb,GAAGH,EAAM;AAAA,IACT,UAAAW;AAAA,IACA,YAAAK;AAAA,IACA,WAAAE;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAI;AAAA,IACA,kBAAAI;AAAA,IACA,YAAAE;AAAA,IACA,WAAAxB;AAAA,EAAA,CACH,GAGG,gBAAAyB,EAAA,cAAClC,EAAsB,UAAtB,EAA+B,OAAOI,EAAQ,QAAA,GAC1CD,EAAM,QACX;AAER;AAGO,SAASgC,IAAsB;AAClC,QAAM/B,IAAUgC,EAAWpC,CAAqB;AAChD,MAAI,CAACI;AAED,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAGR,SAAOA;AACX;"}
1
+ {"version":3,"file":"componentContext.es.js","sources":["../../src/componentModel/componentContext.tsx"],"sourcesContent":["//##############################################################################\r\n//# Copyright (c) Pavel Borodaev #\r\n//##############################################################################\r\n\r\nimport React, { createContext, PropsWithChildren, useContext, useRef } from 'react';\r\nimport { BaseContext, ComponentRegistryContext, ComponentTreeNode } from './contracts';\r\nimport { toHtmlId } from './core';\r\n\r\nexport const ReactComponentContext = createContext<ComponentRegistryContext>(undefined);\r\n\r\n// ComponentRegistry(Context)Provider\r\nexport function ComponentContextProvider(\r\n props: PropsWithChildren<{\r\n value?: BaseContext;\r\n }>,\r\n) {\r\n let context: React.RefObject<ComponentRegistryContext>;\r\n const treeRef = useRef(new Map<string, ComponentTreeNode>());\r\n // idStack\r\n const regStack = useRef([]);\r\n\r\n const seqMap = useRef(new Map<string, number>());\r\n\r\n const getNextId = (regType: string) => {\r\n let index = 1;\r\n if (seqMap.current.has(regType)) {\r\n index = seqMap.current.get(regType);\r\n }\r\n seqMap.current.set(regType, index + 1);\r\n return `${toHtmlId(regType)}#${index}`;\r\n };\r\n\r\n const getCurrentId = () => {\r\n return regStack.current[regStack.current.length - 1];\r\n };\r\n\r\n const register = (id: string, regType: string, parentId?: string) => {\r\n let node = treeRef.current.get(id);\r\n\r\n if (!node) {\r\n node = {\r\n id,\r\n parentId,\r\n children: new Set(),\r\n regType: regType,\r\n };\r\n treeRef.current.set(id, node);\r\n } else {\r\n node.parentId = parentId;\r\n node.regType = regType;\r\n }\r\n\r\n if (parentId) {\r\n let parentNode = treeRef.current.get(parentId);\r\n if (!parentNode) {\r\n parentNode = {\r\n id: parentId,\r\n children: new Set(),\r\n regType: undefined,\r\n };\r\n treeRef.current.set(parentId, parentNode);\r\n }\r\n if (!parentNode.children.has(id)) {\r\n parentNode.children.add(id);\r\n }\r\n }\r\n\r\n regStack.current.push(id);\r\n };\r\n\r\n const unregister = (id: string) => {\r\n const node = treeRef.current.get(id);\r\n if (!node) {\r\n return;\r\n }\r\n\r\n if (node.parentId) {\r\n const parent = treeRef.current.get(node.parentId);\r\n parent?.children.delete(id);\r\n }\r\n\r\n node.children.forEach((childId) => unregister(childId));\r\n treeRef.current.delete(id);\r\n\r\n const index = regStack.current.lastIndexOf(id);\r\n if (index >= 0) {\r\n regStack.current.splice(index, 1);\r\n }\r\n };\r\n\r\n const getParent = (id: string) => {\r\n return treeRef.current.get(id)?.parentId;\r\n };\r\n const getChildren = (id: string) => {\r\n return Array.from(treeRef.current.get(id)?.children ?? []) as string[];\r\n };\r\n\r\n const getChainUp = (id: string): string[] => {\r\n const result: string[] = [];\r\n let current = id;\r\n while (true) {\r\n const parent = getParent(current);\r\n if (!parent) {\r\n break;\r\n }\r\n result.push(parent);\r\n current = parent;\r\n }\r\n return result;\r\n };\r\n\r\n const getRootId = (id: string) => {\r\n let current = id;\r\n while (true) {\r\n const parent = getParent(current);\r\n if (!parent) {\r\n break;\r\n }\r\n current = parent;\r\n }\r\n return current;\r\n };\r\n\r\n const getChainDown = (id: string): string[] => {\r\n const result: string[] = [];\r\n const stack: string[] = [id];\r\n while (stack.length > 0) {\r\n const current = stack.pop();\r\n const children = getChildren(current)!;\r\n for (const child of children) {\r\n if (!result.includes(child)) {\r\n result.push(child);\r\n stack.push(child);\r\n }\r\n }\r\n // result.push(...children);\r\n // stack.push(...children);\r\n }\r\n return result;\r\n };\r\n\r\n const getHierarchy = (rootId: string) => {\r\n const buildNode = (id: string): ComponentTreeNode => {\r\n const childIds = getChildren(id) || [];\r\n return {\r\n id,\r\n parentId: getParent(id),\r\n children: childIds.map(buildNode),\r\n } as ComponentTreeNode & { children: ComponentTreeNode[] };\r\n };\r\n return buildNode(rootId);\r\n };\r\n\r\n const getSiblings = (id: string) => {\r\n const parent = getParent(id);\r\n if (!parent) {\r\n return [];\r\n }\r\n const children = getChildren(parent);\r\n if (!children) {\r\n return [];\r\n }\r\n return children.filter((child) => child !== id);\r\n };\r\n\r\n const getHierarchyPath = (id: string): string => {\r\n if (!id) {\r\n id = getCurrentId();\r\n }\r\n const path: string[] = [];\r\n let current = id;\r\n\r\n while (current) {\r\n path.push(current);\r\n current = getParent(current);\r\n }\r\n\r\n return path.reverse().join('/');\r\n };\r\n\r\n // getNodes\r\n const getNodeMap = () => treeRef.current;\r\n\r\n context = useRef({\r\n ...props.value,\r\n register,\r\n unregister,\r\n getParent,\r\n getChildren,\r\n getChainUp,\r\n getChainDown,\r\n getHierarchyPath,\r\n getNodeMap,\r\n getNextId,\r\n });\r\n\r\n return (\r\n <ReactComponentContext.Provider value={context.current}>\r\n {props.children}\r\n </ReactComponentContext.Provider>\r\n );\r\n}\r\n\r\n// useComponentRegistry(Context)\r\nexport function useComponentContext() {\r\n const context = useContext(ReactComponentContext);\r\n if (!context) {\r\n // useComponentContext must be used within a ComponentContextProvider\r\n throw new Error(\r\n \"Can't resolve ComponentContext. Please wrap your component tree with <ComponentContextProvider>.\",\r\n );\r\n }\r\n return context;\r\n}\r\n"],"names":["ReactComponentContext","createContext","ComponentContextProvider","props","context","treeRef","useRef","regStack","seqMap","getNextId","regType","index","toHtmlId","getCurrentId","register","id","parentId","node","parentNode","unregister","childId","getParent","getChildren","getChainUp","result","current","parent","getChainDown","stack","children","child","getHierarchyPath","path","getNodeMap","React","useComponentContext","useContext"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { $CG_IN, $CG_OUT, Msg, MsgBus, MsgHeaders, MsgProviderParams, MsgStruct, MsgSubParams, OutStruct } from '@actdim/msgmesh/contracts';
2
2
  import { HasKeys, MaybeKeyOf, MaybePromise, Require, Skip } from '@actdim/utico/typeCore';
3
3
  import { FC, PropsWithChildren, ReactNode } from 'react';
4
- export type BaseComponentContext<TMsgStruct extends MsgStruct = MsgStruct> = {
4
+ export type BaseContext<TMsgStruct extends MsgStruct = MsgStruct> = {
5
5
  msgBus: MsgBus<TMsgStruct>;
6
- currentId?: string;
7
6
  };
8
7
  export type ComponentTreeNode = {
9
8
  id: string;
@@ -11,7 +10,8 @@ export type ComponentTreeNode = {
11
10
  parentId?: string;
12
11
  children: Set<string>;
13
12
  };
14
- export type ComponentRegistryContext<TMsgStruct extends MsgStruct = MsgStruct> = BaseComponentContext<TMsgStruct> & {
13
+ export type ComponentRegistryContext<TMsgStruct extends MsgStruct = MsgStruct> = BaseContext<TMsgStruct> & {
14
+ currentId?: string;
15
15
  register: (id: string, regType: string, parentId?: string) => void;
16
16
  unregister: (id: string) => void;
17
17
  getParent: (id: string) => string | undefined;
@@ -143,25 +143,25 @@ export type ComponentDefChildren<TRefStruct extends ComponentRefStruct> = Requir
143
143
  [P in keyof TRefStruct]: TRefStruct[P] extends (params: infer TParams) => infer T ? T extends ComponentStruct ? (params: TParams) => Component<T> : never : TRefStruct[P] extends ComponentStruct ? Component<TRefStruct[P]> : never;
144
144
  }, HasKeys<TRefStruct>>;
145
145
  export type ComponentChildren<TRefStruct extends ComponentRefStruct> = {
146
- [P in keyof TRefStruct as TRefStruct[P] extends Function ? `${Capitalize<P & string>}` : P]: TRefStruct[P] extends (params: infer TParams) => infer T ? T extends ComponentStruct ? FC<ComponentParams<T> & TParams> : never : TRefStruct[P] extends ComponentStruct ? Component<TRefStruct[P]> : never;
146
+ readonly [P in keyof TRefStruct as TRefStruct[P] extends Function ? `${Capitalize<P & string>}` : P]: TRefStruct[P] extends (params: infer TParams) => infer T ? T extends ComponentStruct ? FC<ComponentParams<T> & TParams> : never : TRefStruct[P] extends ComponentStruct ? Component<TRefStruct[P]> : never;
147
147
  };
148
148
  export type ComponentMsgStruct<TStruct extends ComponentStruct = ComponentStruct> = Pick<TStruct['msg'], MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['provide']> | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['subscribe']> | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['publish']>>;
149
149
  export type ComponentBase<TStruct extends ComponentStruct = ComponentStruct, TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders> = {
150
- id: string;
151
- key: string;
152
- regType: string;
153
- parentId: string;
154
- getHierarchyId(): string;
155
- getParent(): string | undefined;
156
- getChildren(): string[];
157
- getChainUp(): string[];
158
- getChainDown(): string[];
159
- getNodeMap(): Map<string, ComponentTreeNode>;
160
- bindings: Map<PropertyKey, Binding>;
161
- msgBus: MsgBus<ComponentMsgStruct<TStruct>, TMsgHeaders>;
162
- msgBroker: ComponentMsgBroker<TStruct>;
163
- effects: Record<string, EffectController>;
164
- View: ComponentViewFn;
150
+ readonly id: string;
151
+ readonly key: string;
152
+ readonly regType: string;
153
+ readonly parentId: string;
154
+ readonly getHierarchyId: () => string;
155
+ readonly getParent: () => string | undefined;
156
+ readonly getChildren: () => string[];
157
+ readonly getChainUp: () => string[];
158
+ readonly getChainDown: () => string[];
159
+ readonly getNodeMap: () => Map<string, ComponentTreeNode>;
160
+ readonly bindings: Map<PropertyKey, Binding>;
161
+ readonly msgBus: MsgBus<ComponentMsgStruct<TStruct>, TMsgHeaders>;
162
+ readonly msgBroker: ComponentMsgBroker<TStruct>;
163
+ readonly effects: Record<string, EffectController>;
164
+ readonly View: ComponentViewFn;
165
165
  };
166
166
  export type ComponentModel<TStruct extends ComponentStruct = ComponentStruct> = TStruct['props'] & Readonly<TStruct['actions']> & {
167
167
  readonly $id?: string;
@@ -169,8 +169,8 @@ export type ComponentModel<TStruct extends ComponentStruct = ComponentStruct> =
169
169
  };
170
170
  export type Component<TStruct extends ComponentStruct = ComponentStruct, TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders> = {
171
171
  readonly model: ComponentModel<TStruct>;
172
- readonly children: Readonly<ComponentChildren<TStruct['children']>>;
173
- } & Readonly<ComponentBase<TStruct, TMsgHeaders>>;
172
+ readonly children: ComponentChildren<TStruct['children']>;
173
+ } & ComponentBase<TStruct, TMsgHeaders>;
174
174
  export type PropEventHandlers = {
175
175
  onGet?: () => any;
176
176
  onChanging?: (oldValue: any, newValue: any) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/componentModel/contracts.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/componentModel/contracts.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.es.js","sources":["../../src/componentModel/contracts.tsx"],"sourcesContent":["import {\r\n $CG_IN,\r\n $CG_OUT,\r\n Msg,\r\n MsgBus,\r\n MsgHeaders,\r\n MsgProviderParams,\r\n MsgStruct,\r\n MsgSubParams,\r\n OutStruct,\r\n} from '@actdim/msgmesh/contracts';\r\nimport { HasKeys, MaybeKeyOf, MaybePromise, Require, Skip } from '@actdim/utico/typeCore';\r\nimport { FC, PropsWithChildren, ReactNode } from 'react';\r\n\r\nexport type BaseComponentContext<TMsgStruct extends MsgStruct = MsgStruct> = {\r\n msgBus: MsgBus<TMsgStruct>;\r\n currentId?: string;\r\n};\r\n\r\nexport type ComponentTreeNode = {\r\n id: string;\r\n regType: string;\r\n parentId?: string;\r\n children: Set<string>;\r\n};\r\n\r\n// ComponentContext\r\nexport type ComponentRegistryContext<TMsgStruct extends MsgStruct = MsgStruct> =\r\n BaseComponentContext<TMsgStruct> & {\r\n register: (id: string, regType: string, parentId?: string) => void;\r\n unregister: (id: string) => void;\r\n getParent: (id: string) => string | undefined;\r\n getChildren: (id: string) => string[];\r\n getChainUp: (id: string) => string[];\r\n getChainDown: (id: string) => string[];\r\n getHierarchyPath: (id: string) => string;\r\n getNextId: (regType: string) => string;\r\n getNodeMap: () => Map<string, ComponentTreeNode>;\r\n };\r\n\r\nexport type ComponentMsgHeaders = MsgHeaders & {};\r\n\r\nexport enum ComponentMsgFilter {\r\n None = 0,\r\n // AcceptFrom...\r\n FromAncestors = 1 << 0,\r\n FromDescendants = 1 << 1,\r\n}\r\n\r\nexport type MsgChannelGroupProviderParams<\r\n TStruct extends MsgStruct = MsgStruct,\r\n TChannel extends keyof TStruct = keyof TStruct,\r\n TGroup extends keyof TStruct[TChannel] = typeof $CG_IN, // keyof TStruct[TChannel]\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Skip<\r\n MsgProviderParams<TStruct, TChannel, TGroup>,\r\n 'channel' | 'group' | 'callback' | 'filter'\r\n> & {\r\n // resolve\r\n callback?: (\r\n msgIn: Msg<TStruct, TChannel, TGroup, TMsgHeaders>,\r\n headers: TMsgHeaders,\r\n scope: TScope,\r\n ) => MaybePromise<OutStruct<TStruct, TChannel>>;\r\n filter?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => boolean;\r\n componentFilter?: ComponentMsgFilter;\r\n};\r\n\r\nexport type MsgChannelGroupSubscriberParams<\r\n TStruct extends MsgStruct = MsgStruct,\r\n TChannel extends keyof TStruct = keyof TStruct,\r\n TGroup extends keyof TStruct[TChannel] = typeof $CG_IN, // keyof TStruct[TChannel]\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Skip<MsgSubParams<TStruct, TChannel, TGroup>, 'channel' | 'group' | 'callback' | 'filter'> & {\r\n callback?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => void;\r\n filter?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => boolean;\r\n componentFilter?: ComponentMsgFilter;\r\n};\r\n\r\n// MsgScope\r\nexport type MsgBrokerScope<\r\n TStruct extends MsgStruct /*= MsgStruct*/,\r\n TKeysToProvide extends keyof TStruct = keyof TStruct,\r\n TKeysToSubscribe extends keyof TStruct = keyof TStruct,\r\n TKeysToPublish extends keyof TStruct = keyof TStruct,\r\n> = {\r\n provide?: TKeysToProvide;\r\n // consume\r\n subscribe?: TKeysToSubscribe;\r\n // produce\r\n publish?: TKeysToPublish;\r\n};\r\n\r\nexport type ComponentPropStruct = Record<string, any>;\r\n// export type ComponentPropStruct = {\r\n// [prop: string]: any;\r\n// };\r\n\r\nexport type ComponentMethodStruct = Record<string, Function>;\r\n// export type ComponentMethodStruct = {\r\n// [action: string]: Function;\r\n// };\r\n\r\n// export type ComponentRefStruct = Record<string, ComponentStruct<TMsgStruct, T>>;\r\nexport type ComponentRefStruct = {\r\n [name: string]: ComponentStruct | ((params: any) => ComponentStruct);\r\n};\r\n\r\nexport type ComponentStructBase<\r\n TMsgStruct extends MsgStruct = MsgStruct,\r\n TPropStruct extends ComponentPropStruct = ComponentPropStruct,\r\n TMsgScope extends MsgBrokerScope<TMsgStruct> = MsgBrokerScope<TMsgStruct>,\r\n> = {\r\n props?: TPropStruct;\r\n actions?: ComponentMethodStruct;\r\n effects?: string[] | string | undefined;\r\n children?: ComponentRefStruct;\r\n // msgs?\r\n msgScope?: TMsgScope;\r\n};\r\n\r\n// ComponentShape\r\nexport type ComponentStruct<\r\n TMsgStruct extends MsgStruct = MsgStruct,\r\n T extends ComponentStructBase<TMsgStruct> = ComponentStructBase<TMsgStruct>,\r\n> = T & {\r\n msg: TMsgStruct;\r\n};\r\n\r\nexport type MsgBroker<\r\n TStructToProvide extends MsgStruct = MsgStruct,\r\n TStructToSubscribe extends MsgStruct = MsgStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Require<\r\n {\r\n // providers\r\n provide?: Require<\r\n {\r\n [TChannel in keyof TStructToProvide]: {\r\n [TGroup in keyof Skip<\r\n TStructToProvide[TChannel],\r\n typeof $CG_OUT\r\n >]?: MsgChannelGroupProviderParams<\r\n TStructToProvide,\r\n TChannel,\r\n TGroup,\r\n TMsgHeaders,\r\n TScope\r\n >;\r\n };\r\n },\r\n HasKeys<TStructToProvide>\r\n >;\r\n // subscribers\r\n subscribe?: Require<\r\n {\r\n [TChannel in keyof TStructToSubscribe]: {\r\n [TGroup in keyof TStructToSubscribe[TChannel]]?: MsgChannelGroupSubscriberParams<\r\n TStructToSubscribe,\r\n TChannel,\r\n TGroup,\r\n TMsgHeaders,\r\n TScope\r\n >;\r\n };\r\n },\r\n HasKeys<TStructToSubscribe>\r\n >;\r\n abortController?: AbortController;\r\n },\r\n HasKeys<TStructToProvide & TStructToSubscribe>\r\n>;\r\n\r\nexport type ValueConverter<TTo, TFrom> = {\r\n // ConvertFrom\r\n convert(value: TFrom): TTo;\r\n // ConvertTo\r\n convertBack(value: TTo): TFrom;\r\n};\r\n\r\nexport type ValidationResult = {\r\n valid: boolean;\r\n message: string;\r\n};\r\n\r\nexport type Validator<T> = {\r\n options: {\r\n blur: boolean;\r\n };\r\n validate: (value: T) => MaybePromise<ValidationResult>;\r\n};\r\n\r\nexport const $isBinding = Symbol('$isBinding'); // brand\r\n\r\nexport type Binding<T = any, TFrom = any> = {\r\n // getter\r\n readonly get: () => T;\r\n // setter\r\n readonly set?: (value: T) => void;\r\n readonly converter?: ValueConverter<T, TFrom>;\r\n readonly validator?: Validator<T>;\r\n readonly readOnly?: boolean;\r\n [$isBinding]: boolean;\r\n};\r\n\r\nexport type ComponentPropSource<T> = T | Binding<T>;\r\n\r\nexport type ComponentPropParams<TPropStruct extends ComponentPropStruct> = {\r\n [P in keyof TPropStruct]?: ComponentPropSource<TPropStruct[P]>;\r\n};\r\n\r\n// export const $ON_PROP_CHANGING = \"onPropChanging\" as const;\r\n// export const $ON_PROP_CHANGE = \"onPropChange\" as const;\r\n\r\nexport const $ON_GET = 'onGet' as const;\r\n// export const $ON_BEFORE_SET = \"onBeforeSet\" as const;\r\nexport const $ON_CHANGING = 'onChanging' as const;\r\nexport const $ON_CHANGE = 'onChange' as const;\r\n// export const $ON_SET = \"onSet\" as const;\r\n\r\nexport type PropValueChangingHandler<TProp = PropertyKey> = (\r\n prop: TProp,\r\n oldValue: any,\r\n newValue: any,\r\n) => boolean;\r\n\r\nexport type PropValueChangeHandler<TProp = PropertyKey> = (prop: TProp, value: any) => void;\r\n\r\n// BeforeValueSetHandler\r\nexport type ValueChangingHandler<T = any> = (oldValue: T, newValue: T) => boolean;\r\n// ValueSetHandler\r\nexport type ValueChangeHandler<T = any> = (value: T) => void;\r\n\r\nexport type ComponentEvents<TStruct extends ComponentStruct = ComponentStruct> = {\r\n onPropChanging?: PropValueChangingHandler<keyof TStruct['props']>;\r\n onPropChange?: PropValueChangeHandler<keyof TStruct['props']>;\r\n onInit?: (component: Component<TStruct>) => void;\r\n onLayout?: (component: Component<TStruct>) => void;\r\n onReady?: (component: Component<TStruct>) => void;\r\n onLayoutDestroy?: (component: Component<TStruct>) => void; // onLayoutCleanup\r\n onDestroy?: (component: Component<TStruct>) => void; // onDispose/onCleanup\r\n onError?: (component: Component<TStruct>, error: any) => void;\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_GET}${Capitalize<P & string>}`]?: () => TStruct['props'][P];\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_CHANGING}${Capitalize<P & string>}`]?: ValueChangingHandler<\r\n TStruct['props']\r\n >;\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_CHANGE}${Capitalize<P & string>}`]?: ValueChangeHandler<\r\n TStruct['props']\r\n >;\r\n};\r\n\r\n// AllHTMLAttributes<JSX.Element>\r\n\r\nexport type ComponentViewProps = {\r\n render?: boolean;\r\n} & PropsWithChildren;\r\n\r\n// ComponentRenderImplFn\r\nexport type ComponentViewImplFn<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = (props: ComponentViewProps, component?: Component<TStruct, TMsgHeaders>) => ReactNode; // JSX.Element\r\n\r\n// ComponentRenderFn\r\nexport type ComponentViewFn = (props: ComponentViewProps) => ReactNode; // JSX.Element\r\n\r\nexport type ComponentMsgBroker<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = MsgBroker<\r\n Pick<TStruct['msg'], MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['provide']>>,\r\n Pick<TStruct['msg'], MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['subscribe']>>,\r\n TMsgHeaders,\r\n Component<TStruct, TMsgHeaders>\r\n>;\r\n\r\nexport type EffectFn<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = (component: Component<TStruct, TMsgHeaders>) => void | (() => void);\r\n\r\nexport type ComponentDef<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n // typeId\r\n regType?: string;\r\n props?: Require<TStruct['props'], HasKeys<TStruct['props']>>;\r\n actions?: Require<TStruct['actions'], HasKeys<TStruct['actions']>>;\r\n effects?: keyof TStruct['effects'] extends never\r\n ? never\r\n : Record<\r\n TStruct['effects'] extends string ? TStruct['effects'] : TStruct['effects'][number],\r\n EffectFn<TStruct, TMsgHeaders>\r\n >;\r\n children?: ComponentDefChildren<TStruct['children']>;\r\n events?: ComponentEvents<TStruct>;\r\n // msgs?\r\n msgBroker?: ComponentMsgBroker<TStruct, TMsgHeaders>;\r\n msgBus?: MsgBus<TStruct['msg'], TMsgHeaders>;\r\n view?: ComponentViewImplFn<TStruct, TMsgHeaders>;\r\n};\r\n\r\nexport type ComponentDefChildren<TRefStruct extends ComponentRefStruct> = Require<\r\n {\r\n [P in keyof TRefStruct]: TRefStruct[P] extends (params: infer TParams) => infer T\r\n ? T extends ComponentStruct\r\n ? (params: TParams) => Component<T>\r\n : never\r\n : TRefStruct[P] extends ComponentStruct\r\n ? Component<TRefStruct[P]>\r\n : never;\r\n },\r\n HasKeys<TRefStruct>\r\n>;\r\n\r\nexport type ComponentChildren<TRefStruct extends ComponentRefStruct> = {\r\n [P in keyof TRefStruct as TRefStruct[P] extends Function\r\n ? `${Capitalize<P & string>}`\r\n : P]: TRefStruct[P] extends (params: infer TParams) => infer T\r\n ? T extends ComponentStruct\r\n ? FC<ComponentParams<T> & TParams>\r\n : never\r\n : TRefStruct[P] extends ComponentStruct\r\n ? Component<TRefStruct[P]>\r\n : never;\r\n};\r\n\r\nexport type ComponentMsgStruct<TStruct extends ComponentStruct = ComponentStruct> = Pick<\r\n TStruct['msg'],\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['provide']>\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['subscribe']>\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['publish']>\r\n>;\r\n\r\n// style?: CSSProperties;\r\n// classNames?: string[];\r\nexport type ComponentBase<\r\n TStruct extends ComponentStruct = ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n id: string;\r\n key: string;\r\n regType: string;\r\n parentId: string;\r\n // getHierarchyPath?\r\n getHierarchyId(): string;\r\n getParent(): string | undefined;\r\n getChildren(): string[];\r\n getChainUp(): string[];\r\n getChainDown(): string[];\r\n getNodeMap(): Map<string, ComponentTreeNode>;\r\n bindings: Map<PropertyKey, Binding>;\r\n msgBus: MsgBus<ComponentMsgStruct<TStruct>, TMsgHeaders>;\r\n msgBroker: ComponentMsgBroker<TStruct>;\r\n effects: Record<string, EffectController>;\r\n View: ComponentViewFn;\r\n};\r\n\r\nexport type ComponentModel<TStruct extends ComponentStruct = ComponentStruct> = TStruct['props'] &\r\n Readonly<TStruct['actions']> & {\r\n // readonly __id?: string;\r\n // readonly __key?: string;\r\n readonly $id?: string;\r\n readonly $key?: string;\r\n };\r\n\r\nexport type Component<\r\n TStruct extends ComponentStruct = ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n readonly model: ComponentModel<TStruct>;\r\n readonly children: Readonly<ComponentChildren<TStruct['children']>>;\r\n} & Readonly<ComponentBase<TStruct, TMsgHeaders>>;\r\n\r\nexport type PropEventHandlers = {\r\n onGet?: () => any;\r\n onChanging?: (oldValue: any, newValue: any) => boolean;\r\n onChange?: (value: any) => void;\r\n};\r\n\r\nexport type ComponentParams<TStruct extends ComponentStruct = ComponentStruct> =\r\n ComponentPropParams<TStruct['props']> &\r\n ComponentEvents<TStruct> & {\r\n $id?: string;\r\n $key?: string;\r\n }; // & PropsWithChildren?\r\n\r\nexport type EffectController = {\r\n start: () => void;\r\n pause: () => void;\r\n resume: () => void;\r\n stop: () => void;\r\n restart: () => void;\r\n};\r\n"],"names":["ComponentMsgFilter","$isBinding","$ON_GET","$ON_CHANGING","$ON_CHANGE"],"mappings":"AA0CO,IAAKA,sBAAAA,OACRA,EAAAA,EAAA,OAAO,CAAA,IAAP,QAEAA,EAAAA,EAAA,gBAAgB,CAAA,IAAhB,iBACAA,EAAAA,EAAA,kBAAkB,CAAA,IAAlB,mBAJQA,IAAAA,KAAA,CAAA,CAAA;AAyJL,MAAMC,IAAa,OAAO,YAAY,GAsBhCC,IAAU,SAEVC,IAAe,cACfC,IAAa;"}
1
+ {"version":3,"file":"contracts.es.js","sources":["../../src/componentModel/contracts.tsx"],"sourcesContent":["import {\r\n $CG_IN,\r\n $CG_OUT,\r\n Msg,\r\n MsgBus,\r\n MsgHeaders,\r\n MsgProviderParams,\r\n MsgStruct,\r\n MsgSubParams,\r\n OutStruct,\r\n} from '@actdim/msgmesh/contracts';\r\nimport { HasKeys, MaybeKeyOf, MaybePromise, Require, Skip } from '@actdim/utico/typeCore';\r\nimport { FC, PropsWithChildren, ReactNode } from 'react';\r\n\r\nexport type BaseContext<TMsgStruct extends MsgStruct = MsgStruct> = {\r\n msgBus: MsgBus<TMsgStruct>;\r\n};\r\n\r\nexport type ComponentTreeNode = {\r\n id: string;\r\n regType: string;\r\n parentId?: string;\r\n children: Set<string>;\r\n};\r\n\r\n// ComponentContext\r\nexport type ComponentRegistryContext<TMsgStruct extends MsgStruct = MsgStruct> =\r\n BaseContext<TMsgStruct> & {\r\n currentId?: string;\r\n register: (id: string, regType: string, parentId?: string) => void;\r\n unregister: (id: string) => void;\r\n getParent: (id: string) => string | undefined;\r\n getChildren: (id: string) => string[];\r\n getChainUp: (id: string) => string[];\r\n getChainDown: (id: string) => string[];\r\n getHierarchyPath: (id: string) => string;\r\n getNextId: (regType: string) => string;\r\n getNodeMap: () => Map<string, ComponentTreeNode>;\r\n };\r\n\r\nexport type ComponentMsgHeaders = MsgHeaders & {};\r\n\r\nexport enum ComponentMsgFilter {\r\n None = 0,\r\n // AcceptFrom...\r\n FromAncestors = 1 << 0,\r\n FromDescendants = 1 << 1,\r\n}\r\n\r\nexport type MsgChannelGroupProviderParams<\r\n TStruct extends MsgStruct = MsgStruct,\r\n TChannel extends keyof TStruct = keyof TStruct,\r\n TGroup extends keyof TStruct[TChannel] = typeof $CG_IN, // keyof TStruct[TChannel]\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Skip<\r\n MsgProviderParams<TStruct, TChannel, TGroup>,\r\n 'channel' | 'group' | 'callback' | 'filter'\r\n> & {\r\n // resolve\r\n callback?: (\r\n msgIn: Msg<TStruct, TChannel, TGroup, TMsgHeaders>,\r\n headers: TMsgHeaders,\r\n scope: TScope,\r\n ) => MaybePromise<OutStruct<TStruct, TChannel>>;\r\n filter?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => boolean;\r\n componentFilter?: ComponentMsgFilter;\r\n};\r\n\r\nexport type MsgChannelGroupSubscriberParams<\r\n TStruct extends MsgStruct = MsgStruct,\r\n TChannel extends keyof TStruct = keyof TStruct,\r\n TGroup extends keyof TStruct[TChannel] = typeof $CG_IN, // keyof TStruct[TChannel]\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Skip<MsgSubParams<TStruct, TChannel, TGroup>, 'channel' | 'group' | 'callback' | 'filter'> & {\r\n callback?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => void;\r\n filter?: (msg: Msg<TStruct, TChannel, TGroup, TMsgHeaders>, scope: TScope) => boolean;\r\n componentFilter?: ComponentMsgFilter;\r\n};\r\n\r\n// MsgScope\r\nexport type MsgBrokerScope<\r\n TStruct extends MsgStruct /*= MsgStruct*/,\r\n TKeysToProvide extends keyof TStruct = keyof TStruct,\r\n TKeysToSubscribe extends keyof TStruct = keyof TStruct,\r\n TKeysToPublish extends keyof TStruct = keyof TStruct,\r\n> = {\r\n provide?: TKeysToProvide;\r\n // consume\r\n subscribe?: TKeysToSubscribe;\r\n // produce\r\n publish?: TKeysToPublish;\r\n};\r\n\r\nexport type ComponentPropStruct = Record<string, any>;\r\n// export type ComponentPropStruct = {\r\n// [prop: string]: any;\r\n// };\r\n\r\nexport type ComponentMethodStruct = Record<string, Function>;\r\n// export type ComponentMethodStruct = {\r\n// [action: string]: Function;\r\n// };\r\n\r\n// export type ComponentRefStruct = Record<string, ComponentStruct<TMsgStruct, T>>;\r\nexport type ComponentRefStruct = {\r\n [name: string]: ComponentStruct | ((params: any) => ComponentStruct);\r\n};\r\n\r\nexport type ComponentStructBase<\r\n TMsgStruct extends MsgStruct = MsgStruct,\r\n TPropStruct extends ComponentPropStruct = ComponentPropStruct,\r\n TMsgScope extends MsgBrokerScope<TMsgStruct> = MsgBrokerScope<TMsgStruct>,\r\n> = {\r\n props?: TPropStruct;\r\n actions?: ComponentMethodStruct;\r\n effects?: string[] | string | undefined;\r\n children?: ComponentRefStruct;\r\n // msgs?\r\n msgScope?: TMsgScope;\r\n};\r\n\r\n// ComponentShape\r\nexport type ComponentStruct<\r\n TMsgStruct extends MsgStruct = MsgStruct,\r\n T extends ComponentStructBase<TMsgStruct> = ComponentStructBase<TMsgStruct>,\r\n> = T & {\r\n msg: TMsgStruct;\r\n};\r\n\r\nexport type MsgBroker<\r\n TStructToProvide extends MsgStruct = MsgStruct,\r\n TStructToSubscribe extends MsgStruct = MsgStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n TScope = any,\r\n> = Require<\r\n {\r\n // providers\r\n provide?: Require<\r\n {\r\n [TChannel in keyof TStructToProvide]: {\r\n [TGroup in keyof Skip<\r\n TStructToProvide[TChannel],\r\n typeof $CG_OUT\r\n >]?: MsgChannelGroupProviderParams<\r\n TStructToProvide,\r\n TChannel,\r\n TGroup,\r\n TMsgHeaders,\r\n TScope\r\n >;\r\n };\r\n },\r\n HasKeys<TStructToProvide>\r\n >;\r\n // subscribers\r\n subscribe?: Require<\r\n {\r\n [TChannel in keyof TStructToSubscribe]: {\r\n [TGroup in keyof TStructToSubscribe[TChannel]]?: MsgChannelGroupSubscriberParams<\r\n TStructToSubscribe,\r\n TChannel,\r\n TGroup,\r\n TMsgHeaders,\r\n TScope\r\n >;\r\n };\r\n },\r\n HasKeys<TStructToSubscribe>\r\n >;\r\n abortController?: AbortController;\r\n },\r\n HasKeys<TStructToProvide & TStructToSubscribe>\r\n>;\r\n\r\nexport type ValueConverter<TTo, TFrom> = {\r\n // ConvertFrom\r\n convert(value: TFrom): TTo;\r\n // ConvertTo\r\n convertBack(value: TTo): TFrom;\r\n};\r\n\r\nexport type ValidationResult = {\r\n valid: boolean;\r\n message: string;\r\n};\r\n\r\nexport type Validator<T> = {\r\n options: {\r\n blur: boolean;\r\n };\r\n validate: (value: T) => MaybePromise<ValidationResult>;\r\n};\r\n\r\nexport const $isBinding = Symbol('$isBinding'); // brand\r\n\r\nexport type Binding<T = any, TFrom = any> = {\r\n // getter\r\n readonly get: () => T;\r\n // setter\r\n readonly set?: (value: T) => void;\r\n readonly converter?: ValueConverter<T, TFrom>;\r\n readonly validator?: Validator<T>;\r\n readonly readOnly?: boolean;\r\n [$isBinding]: boolean;\r\n};\r\n\r\nexport type ComponentPropSource<T> = T | Binding<T>;\r\n\r\nexport type ComponentPropParams<TPropStruct extends ComponentPropStruct> = {\r\n [P in keyof TPropStruct]?: ComponentPropSource<TPropStruct[P]>;\r\n};\r\n\r\n// export const $ON_PROP_CHANGING = \"onPropChanging\" as const;\r\n// export const $ON_PROP_CHANGE = \"onPropChange\" as const;\r\n\r\nexport const $ON_GET = 'onGet' as const;\r\n// export const $ON_BEFORE_SET = \"onBeforeSet\" as const;\r\nexport const $ON_CHANGING = 'onChanging' as const;\r\nexport const $ON_CHANGE = 'onChange' as const;\r\n// export const $ON_SET = \"onSet\" as const;\r\n\r\nexport type PropValueChangingHandler<TProp = PropertyKey> = (\r\n prop: TProp,\r\n oldValue: any,\r\n newValue: any,\r\n) => boolean;\r\n\r\nexport type PropValueChangeHandler<TProp = PropertyKey> = (prop: TProp, value: any) => void;\r\n\r\n// BeforeValueSetHandler\r\nexport type ValueChangingHandler<T = any> = (oldValue: T, newValue: T) => boolean;\r\n// ValueSetHandler\r\nexport type ValueChangeHandler<T = any> = (value: T) => void;\r\n\r\nexport type ComponentEvents<TStruct extends ComponentStruct = ComponentStruct> = {\r\n onPropChanging?: PropValueChangingHandler<keyof TStruct['props']>;\r\n onPropChange?: PropValueChangeHandler<keyof TStruct['props']>;\r\n onInit?: (component: Component<TStruct>) => void;\r\n onLayout?: (component: Component<TStruct>) => void;\r\n onReady?: (component: Component<TStruct>) => void;\r\n onLayoutDestroy?: (component: Component<TStruct>) => void; // onLayoutCleanup\r\n onDestroy?: (component: Component<TStruct>) => void; // onDispose/onCleanup\r\n onError?: (component: Component<TStruct>, error: any) => void;\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_GET}${Capitalize<P & string>}`]?: () => TStruct['props'][P];\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_CHANGING}${Capitalize<P & string>}`]?: ValueChangingHandler<\r\n TStruct['props']\r\n >;\r\n} & {\r\n [P in keyof TStruct['props'] as `${typeof $ON_CHANGE}${Capitalize<P & string>}`]?: ValueChangeHandler<\r\n TStruct['props']\r\n >;\r\n};\r\n\r\n// AllHTMLAttributes<JSX.Element>\r\n\r\nexport type ComponentViewProps = {\r\n render?: boolean;\r\n} & PropsWithChildren;\r\n\r\n// ComponentRenderImplFn\r\nexport type ComponentViewImplFn<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = (props: ComponentViewProps, component?: Component<TStruct, TMsgHeaders>) => ReactNode; // JSX.Element\r\n\r\n// ComponentRenderFn\r\nexport type ComponentViewFn = (props: ComponentViewProps) => ReactNode; // JSX.Element\r\n\r\nexport type ComponentMsgBroker<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = MsgBroker<\r\n Pick<TStruct['msg'], MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['provide']>>,\r\n Pick<TStruct['msg'], MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['subscribe']>>,\r\n TMsgHeaders,\r\n Component<TStruct, TMsgHeaders>\r\n>;\r\n\r\nexport type EffectFn<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = (component: Component<TStruct, TMsgHeaders>) => void | (() => void);\r\n\r\nexport type ComponentDef<\r\n TStruct extends ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n // typeId\r\n regType?: string;\r\n props?: Require<TStruct['props'], HasKeys<TStruct['props']>>;\r\n actions?: Require<TStruct['actions'], HasKeys<TStruct['actions']>>;\r\n effects?: keyof TStruct['effects'] extends never\r\n ? never\r\n : Record<\r\n TStruct['effects'] extends string ? TStruct['effects'] : TStruct['effects'][number],\r\n EffectFn<TStruct, TMsgHeaders>\r\n >;\r\n children?: ComponentDefChildren<TStruct['children']>;\r\n events?: ComponentEvents<TStruct>;\r\n // msgs?\r\n msgBroker?: ComponentMsgBroker<TStruct, TMsgHeaders>;\r\n msgBus?: MsgBus<TStruct['msg'], TMsgHeaders>;\r\n view?: ComponentViewImplFn<TStruct, TMsgHeaders>;\r\n};\r\n\r\nexport type ComponentDefChildren<TRefStruct extends ComponentRefStruct> = Require<\r\n {\r\n [P in keyof TRefStruct]: TRefStruct[P] extends (params: infer TParams) => infer T\r\n ? T extends ComponentStruct\r\n ? (params: TParams) => Component<T>\r\n : never\r\n : TRefStruct[P] extends ComponentStruct\r\n ? Component<TRefStruct[P]>\r\n : never;\r\n },\r\n HasKeys<TRefStruct>\r\n>;\r\n\r\nexport type ComponentChildren<TRefStruct extends ComponentRefStruct> = {\r\n readonly [P in keyof TRefStruct as TRefStruct[P] extends Function\r\n ? `${Capitalize<P & string>}`\r\n : P]: TRefStruct[P] extends (params: infer TParams) => infer T\r\n ? T extends ComponentStruct\r\n ? FC<ComponentParams<T> & TParams>\r\n : never\r\n : TRefStruct[P] extends ComponentStruct\r\n ? Component<TRefStruct[P]>\r\n : never;\r\n};\r\n\r\nexport type ComponentMsgStruct<TStruct extends ComponentStruct = ComponentStruct> = Pick<\r\n TStruct['msg'],\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['provide']>\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['subscribe']>\r\n | MaybeKeyOf<TStruct['msg'], TStruct['msgScope']['publish']>\r\n>;\r\n\r\n// style?: CSSProperties;\r\n// classNames?: string[];\r\nexport type ComponentBase<\r\n TStruct extends ComponentStruct = ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n readonly id: string;\r\n readonly key: string;\r\n readonly regType: string;\r\n readonly parentId: string;\r\n // getHierarchyPath?\r\n readonly getHierarchyId: () => string;\r\n readonly getParent: () => string | undefined;\r\n readonly getChildren: () => string[];\r\n readonly getChainUp: () => string[];\r\n readonly getChainDown: () => string[];\r\n readonly getNodeMap: () => Map<string, ComponentTreeNode>;\r\n readonly bindings: Map<PropertyKey, Binding>;\r\n readonly msgBus: MsgBus<ComponentMsgStruct<TStruct>, TMsgHeaders>;\r\n readonly msgBroker: ComponentMsgBroker<TStruct>;\r\n readonly effects: Record<string, EffectController>;\r\n readonly View: ComponentViewFn;\r\n};\r\n\r\nexport type ComponentModel<TStruct extends ComponentStruct = ComponentStruct> = TStruct['props'] &\r\n Readonly<TStruct['actions']> & {\r\n // readonly __id?: string;\r\n // readonly __key?: string;\r\n readonly $id?: string;\r\n readonly $key?: string;\r\n };\r\n\r\nexport type Component<\r\n TStruct extends ComponentStruct = ComponentStruct,\r\n TMsgHeaders extends ComponentMsgHeaders = ComponentMsgHeaders,\r\n> = {\r\n readonly model: ComponentModel<TStruct>;\r\n readonly children: ComponentChildren<TStruct['children']>;\r\n} & ComponentBase<TStruct, TMsgHeaders>;\r\n\r\nexport type PropEventHandlers = {\r\n onGet?: () => any;\r\n onChanging?: (oldValue: any, newValue: any) => boolean;\r\n onChange?: (value: any) => void;\r\n};\r\n\r\nexport type ComponentParams<TStruct extends ComponentStruct = ComponentStruct> =\r\n ComponentPropParams<TStruct['props']> &\r\n ComponentEvents<TStruct> & {\r\n $id?: string;\r\n $key?: string;\r\n }; // & PropsWithChildren?\r\n\r\nexport type EffectController = {\r\n start: () => void;\r\n pause: () => void;\r\n resume: () => void;\r\n stop: () => void;\r\n restart: () => void;\r\n};\r\n"],"names":["ComponentMsgFilter","$isBinding","$ON_GET","$ON_CHANGING","$ON_CHANGE"],"mappings":"AA0CO,IAAKA,sBAAAA,OACRA,EAAAA,EAAA,OAAO,CAAA,IAAP,QAEAA,EAAAA,EAAA,gBAAgB,CAAA,IAAhB,iBACAA,EAAAA,EAAA,kBAAkB,CAAA,IAAlB,mBAJQA,IAAAA,KAAA,CAAA,CAAA;AAyJL,MAAMC,IAAa,OAAO,YAAY,GAsBhCC,IAAU,SAEVC,IAAe,cACfC,IAAa;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/componentModel/core.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,KAAK,EACR,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EAGR,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,SAAS,EACT,cAAc,EACjB,MAAM,aAAa,CAAC;AAMrB,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,EAC/B,GAAG,EAAE,MAAM,CAAC,EACZ,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACxB,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GACzB,OAAO,CAST;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAQ/F;AAID,MAAM,MAAM,kBAAkB,GAAG;IAC7B,cAAc,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;CACtD,GAAG,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE3C,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EACnC,QAAQ,EAAE,kBAAkB,OAsE/B;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkB5C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAI,GAAG,MAAM,GAAG,IAAI,CAiBnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,SAAI,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAC/E,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,QAoFhC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAChF,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,IAAI,GAkChD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC9B;AAED,wBAAgB,YAAY,CACxB,OAAO,SAAS,eAAe,EAC/B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAE7D,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,GACnC,gBAAgB,CAiDlB"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/componentModel/core.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,KAAK,EACR,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EAGR,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,SAAS,EACT,cAAc,EACjB,MAAM,aAAa,CAAC;AAMrB,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,EAC/B,GAAG,EAAE,MAAM,CAAC,EACZ,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACxB,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GACzB,OAAO,CAST;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAQ/F;AAID,MAAM,MAAM,kBAAkB,GAAG;IAC7B,cAAc,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;CACtD,GAAG,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE3C,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EACnC,QAAQ,EAAE,kBAAkB,OAsE/B;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkB5C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAI,GAAG,MAAM,GAAG,IAAI,CAiBnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,SAAI,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAC/E,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,QAkFhC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAChF,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,IAAI,GAkChD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC9B;AAED,wBAAgB,YAAY,CACxB,OAAO,SAAS,eAAe,EAC/B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAE7D,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,GACnC,gBAAgB,CAiDlB"}
@@ -1,162 +1,162 @@
1
- import { isObservable as k, runInAction as I, toJS as y, autorun as m } from "mobx";
2
- import { $isBinding as p, ComponentMsgFilter as b } from "./contracts.es.js";
3
- function x(e) {
4
- return e[p] === !0;
1
+ import { isObservable as p, runInAction as k, toJS as I, autorun as y } from "mobx";
2
+ import { $isBinding as C, ComponentMsgFilter as g } from "./contracts.es.js";
3
+ function v(e) {
4
+ return e[C] === !0;
5
5
  }
6
- function P(e, c, r, t) {
6
+ function x(e, c, n, t) {
7
7
  return {
8
8
  get: e,
9
9
  set: c,
10
- converter: r,
10
+ converter: n,
11
11
  validator: t,
12
12
  readOnly: !!c,
13
- [p]: !0
13
+ [C]: !0
14
14
  };
15
15
  }
16
- function w(e, c) {
16
+ function P(e, c) {
17
17
  return {
18
18
  get: () => e()[c],
19
- set: (r) => {
20
- e()[c] = r;
19
+ set: (n) => {
20
+ e()[c] = n;
21
21
  },
22
- [p]: !0
22
+ [C]: !0
23
23
  };
24
24
  }
25
- const C = /* @__PURE__ */ new WeakMap();
26
- function F(e, c, r) {
27
- if (typeof e != "object" || e === null || !k(e))
25
+ const h = /* @__PURE__ */ new WeakMap();
26
+ function O(e, c, n) {
27
+ if (typeof e != "object" || e === null || !p(e))
28
28
  return e;
29
- if (C.has(e))
30
- return C.get(e);
29
+ if (h.has(e))
30
+ return h.get(e);
31
31
  const t = new Proxy(e, {
32
- get(o, n, s) {
33
- const i = r[n]?.onGet;
32
+ get(o, r, s) {
33
+ const i = n[r]?.onGet;
34
34
  if (i) return i();
35
- const f = c.get(n);
36
- if (f?.get)
37
- return f.get();
38
- const u = Reflect.get(o, n, s);
39
- return typeof u == "object" && u !== null && k(u) ? F(u, c, r) : u;
35
+ const a = c.get(r);
36
+ if (a?.get)
37
+ return a.get();
38
+ const u = Reflect.get(o, r, s);
39
+ return typeof u == "object" && u !== null && p(u) ? O(u, c, n) : u;
40
40
  },
41
- set(o, n, s, i) {
42
- const f = o[n], u = r[n]?.onChanging;
43
- if (u && u(f, s) === !1 || r.onPropChanging && r.onPropChanging(n, f, s) === !1)
41
+ set(o, r, s, i) {
42
+ const a = o[r], u = n[r]?.onChanging;
43
+ if (u && u(a, s) === !1 || n.onPropChanging && n.onPropChanging(r, a, s) === !1)
44
44
  return !0;
45
- const d = I(() => Reflect.set(o, n, s, i));
46
- return c.get(n)?.set?.(s), r[n]?.onChange?.(s), r.onPropChange?.(n, s), d;
45
+ const d = k(() => Reflect.set(o, r, s, i));
46
+ return c.get(r)?.set?.(s), n[r]?.onChange?.(s), n.onPropChange?.(r, s), d;
47
47
  }
48
48
  });
49
- return C.set(e, t), t;
49
+ return h.set(e, t), t;
50
50
  }
51
- function B(e) {
51
+ function w(e) {
52
52
  return e.split("/").filter(Boolean).map((o) => decodeURIComponent(o)).join("-").normalize("NFKD").replace(/[^a-zA-Z0-9\-_:.+#]/g, "-").replace(/-+/g, "-").replace(/^[^a-zA-Z]+/, "-").replace(/[+#]$/, "-");
53
53
  }
54
- function E(e = 2) {
55
- const r = new Error().stack?.split(`
54
+ function B(e = 2) {
55
+ const n = new Error().stack?.split(`
56
56
  `);
57
- if (!r || r.length <= e)
57
+ if (!n || n.length <= e)
58
58
  return null;
59
- const o = r[e].match(/\(([^)]+)\)/)?.[1];
59
+ const o = n[e].match(/\(([^)]+)\)/)?.[1];
60
60
  return o && document.querySelector('script[type="module"][src*="/@vite/"]') && globalThis.CONFIG_TYPE === "DEVELOPMENT" ? o.replace(/\?[^:]+/, "") : o;
61
61
  }
62
- function N(e = 2) {
63
- const r = new Error().stack?.split(`
62
+ function E(e = 2) {
63
+ const n = new Error().stack?.split(`
64
64
  `);
65
- if (!r || r.length <= e)
65
+ if (!n || n.length <= e)
66
66
  return null;
67
- const o = r[e].trim().match(/^at\s+([^\s(]+)/);
67
+ const o = n[e].trim().match(/^at\s+([^\s(]+)/);
68
68
  if (!o)
69
69
  return null;
70
- const n = o[1], s = n.match(/^use(.+)/);
71
- return s ? s[1] : n;
70
+ const r = o[1], s = r.match(/^use(.+)/);
71
+ return s ? s[1] : r;
72
72
  }
73
- function j(e) {
73
+ function N(e) {
74
74
  const c = e?.msgBroker.provide;
75
75
  if (c)
76
76
  for (const [t, o] of Object.entries(c))
77
- for (const [n, s] of Object.entries(o)) {
78
- const i = s, f = i.callback;
79
- f && (i.callback = (a, l) => f(a, l, e));
80
- const u = i.filter, d = i.componentFilter || b.None, g = (a) => {
81
- let l = !0;
82
- return d & b.FromAncestors && (l = e.getChainUp().indexOf(a.headers?.sourceId) >= 0), l && d & b.FromDescendants && (l = e.getChainDown().indexOf(a.headers?.sourceId) >= 0), l && u && (l = u(a, e)), l;
83
- };
84
- i.filter = g, e.msgBus.provide({
77
+ for (const [r, s] of Object.entries(o)) {
78
+ const i = s, a = i.callback;
79
+ a && (i.callback = (l, f) => a(l, f, e));
80
+ const u = i.filter, d = i.componentFilter || g.None;
81
+ i.filter = (l) => {
82
+ let f = !0;
83
+ return d & g.FromAncestors && (f = e.getChainUp()?.indexOf(l.headers?.sourceId) >= 0), f && d & g.FromDescendants && (f = e.getChainDown()?.indexOf(l.headers?.sourceId) >= 0), f && u && (f = u(l, e)), f;
84
+ }, e.msgBus.provide({
85
85
  ...s,
86
86
  channel: t,
87
- group: n,
87
+ group: r,
88
88
  options: {
89
89
  abortSignal: e.msgBroker.abortController.signal
90
90
  }
91
91
  });
92
92
  }
93
- const r = e?.msgBroker?.subscribe;
94
- if (r)
95
- for (const [t, o] of Object.entries(r))
96
- for (const [n, s] of Object.entries(o)) {
97
- const i = s, f = i.callback;
98
- f && (i.callback = (a) => f(a, e));
99
- const u = i.filter, d = i.componentFilter || b.None, g = (a) => {
100
- let l = !0;
101
- return d & b.FromAncestors && (l = e.getChainUp().indexOf(a.headers?.sourceId) >= 0), l && d & b.FromDescendants && (l = e.getChainDown().indexOf(a.headers?.sourceId) >= 0), l && u && (l = u(a, e)), l;
102
- };
103
- i.filter = g, e.msgBus.on({
93
+ const n = e?.msgBroker?.subscribe;
94
+ if (n)
95
+ for (const [t, o] of Object.entries(n))
96
+ for (const [r, s] of Object.entries(o)) {
97
+ const i = s, a = i.callback;
98
+ a && (i.callback = (l) => a(l, e));
99
+ const u = i.filter, d = i.componentFilter || g.None;
100
+ i.filter = (l) => {
101
+ let f = !0;
102
+ return d & g.FromAncestors && (f = e.getChainUp()?.indexOf(l.headers?.sourceId) >= 0), f && d & g.FromDescendants && (f = e.getChainDown()?.indexOf(l.headers?.sourceId) >= 0), f && u && (f = u(l, e)), f;
103
+ }, e.msgBus.on({
104
104
  ...s,
105
105
  channel: t,
106
- group: n,
106
+ group: r,
107
107
  config: {
108
108
  abortSignal: e.msgBroker.abortController.signal
109
109
  }
110
110
  });
111
111
  }
112
112
  }
113
- function D(e, c) {
114
- const r = (t) => {
115
- t.payload != null && (t.payload = structuredClone(y(t.payload))), t.headers || (t.headers = {}), c?.(t.headers);
113
+ function j(e, c) {
114
+ const n = (t) => {
115
+ t.payload != null && (t.payload = structuredClone(I(t.payload))), t.headers || (t.headers = {}), c?.(t.headers);
116
116
  };
117
117
  return {
118
118
  config: e.config,
119
119
  on: (t) => e.on(t),
120
120
  once: (t) => e.once(t),
121
121
  stream: (t) => e.stream(t),
122
- provide: (t) => (r(t), e.provide(t)),
123
- send: (t) => (r(t), e.send(t)),
124
- request: (t) => (r(t), e.request(t))
122
+ provide: (t) => (n(t), e.provide(t)),
123
+ send: (t) => (n(t), e.send(t)),
124
+ request: (t) => (n(t), e.request(t))
125
125
  };
126
126
  }
127
- function M(e, c, r) {
128
- let t = null, o = !1, n;
127
+ function D(e, c, n) {
128
+ let t = null, o = !1, r;
129
129
  const s = () => {
130
- t || (t = m(
130
+ t || (t = y(
131
131
  () => {
132
132
  if (!o) {
133
- const g = r(e);
134
- typeof g == "function" && (g(), n = g);
133
+ const l = n(e);
134
+ typeof l == "function" && (l(), r = l);
135
135
  }
136
136
  },
137
137
  { name: `effect:${c}` }
138
138
  ));
139
139
  }, i = () => {
140
- t?.(), t = null, n && (n(), n = void 0);
141
- }, f = () => {
140
+ t?.(), t = null, r && (r(), r = void 0);
141
+ }, a = () => {
142
142
  o = !0;
143
143
  }, u = () => {
144
144
  o = !1;
145
145
  }, d = () => {
146
146
  i(), s();
147
147
  };
148
- return s(), { start: s, pause: f, resume: u, stop: i, restart: d };
148
+ return s(), { start: s, pause: a, resume: u, stop: i, restart: d };
149
149
  }
150
150
  export {
151
- P as bind,
152
- w as bindProp,
153
- M as createEffect,
154
- F as createRecursiveProxy,
155
- D as getComponentMsgBus,
156
- N as getComponentNameByCaller,
157
- E as getComponentSourceByCaller,
158
- x as isBinding,
159
- j as registerMsgBroker,
160
- B as toHtmlId
151
+ x as bind,
152
+ P as bindProp,
153
+ D as createEffect,
154
+ O as createRecursiveProxy,
155
+ j as getComponentMsgBus,
156
+ E as getComponentNameByCaller,
157
+ B as getComponentSourceByCaller,
158
+ v as isBinding,
159
+ N as registerMsgBroker,
160
+ w as toHtmlId
161
161
  };
162
162
  //# sourceMappingURL=core.es.js.map