@jfdevelops/react-layout 1.5.1 → 1.6.1

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 (59) hide show
  1. package/dist/create-config/create-defined-resource-layout.cjs +28 -0
  2. package/dist/create-config/create-defined-resource-layout.cjs.map +1 -1
  3. package/dist/create-config/create-defined-resource-layout.d.cts +6 -10
  4. package/dist/create-config/create-defined-resource-layout.d.cts.map +1 -1
  5. package/dist/create-config/create-defined-resource-layout.d.mts +6 -10
  6. package/dist/create-config/create-defined-resource-layout.d.mts.map +1 -1
  7. package/dist/create-config/create-defined-resource-layout.mjs +28 -0
  8. package/dist/create-config/create-defined-resource-layout.mjs.map +1 -1
  9. package/dist/create-config/define-layout.cjs +1 -1
  10. package/dist/create-config/define-layout.cjs.map +1 -1
  11. package/dist/create-config/define-layout.d.cts +10 -22
  12. package/dist/create-config/define-layout.d.cts.map +1 -1
  13. package/dist/create-config/define-layout.d.mts +10 -22
  14. package/dist/create-config/define-layout.d.mts.map +1 -1
  15. package/dist/create-config/define-layout.mjs +1 -1
  16. package/dist/create-config/define-layout.mjs.map +1 -1
  17. package/dist/create-config/for-resource.cjs.map +1 -1
  18. package/dist/create-config/for-resource.d.cts +10 -7
  19. package/dist/create-config/for-resource.d.cts.map +1 -1
  20. package/dist/create-config/for-resource.d.mts +10 -7
  21. package/dist/create-config/for-resource.d.mts.map +1 -1
  22. package/dist/create-config/for-resource.mjs.map +1 -1
  23. package/dist/create-config/for-resources/resource-selection.d.cts +4 -2
  24. package/dist/create-config/for-resources/resource-selection.d.cts.map +1 -1
  25. package/dist/create-config/for-resources/resource-selection.d.mts +4 -2
  26. package/dist/create-config/for-resources/resource-selection.d.mts.map +1 -1
  27. package/dist/create-config/for-resources/scoped-layout.d.cts +16 -24
  28. package/dist/create-config/for-resources/scoped-layout.d.cts.map +1 -1
  29. package/dist/create-config/for-resources/scoped-layout.d.mts +16 -24
  30. package/dist/create-config/for-resources/scoped-layout.d.mts.map +1 -1
  31. package/dist/create-config/layout-name.cjs +178 -8
  32. package/dist/create-config/layout-name.cjs.map +1 -1
  33. package/dist/create-config/layout-name.d.cts +225 -23
  34. package/dist/create-config/layout-name.d.cts.map +1 -1
  35. package/dist/create-config/layout-name.d.mts +225 -23
  36. package/dist/create-config/layout-name.d.mts.map +1 -1
  37. package/dist/create-config/layout-name.mjs +179 -8
  38. package/dist/create-config/layout-name.mjs.map +1 -1
  39. package/dist/errors/invalid-part-type.cjs +21 -0
  40. package/dist/errors/invalid-part-type.cjs.map +1 -0
  41. package/dist/errors/invalid-part-type.d.cts +110 -0
  42. package/dist/errors/invalid-part-type.d.cts.map +1 -0
  43. package/dist/errors/invalid-part-type.d.mts +110 -0
  44. package/dist/errors/invalid-part-type.d.mts.map +1 -0
  45. package/dist/errors/invalid-part-type.mjs +21 -0
  46. package/dist/errors/invalid-part-type.mjs.map +1 -0
  47. package/dist/errors/invalid-part.cjs +23 -0
  48. package/dist/errors/invalid-part.cjs.map +1 -0
  49. package/dist/errors/invalid-part.d.cts +107 -0
  50. package/dist/errors/invalid-part.d.cts.map +1 -0
  51. package/dist/errors/invalid-part.d.mts +107 -0
  52. package/dist/errors/invalid-part.d.mts.map +1 -0
  53. package/dist/errors/invalid-part.mjs +23 -0
  54. package/dist/errors/invalid-part.mjs.map +1 -0
  55. package/dist/index.cjs +4 -0
  56. package/dist/index.d.cts +4 -2
  57. package/dist/index.d.mts +4 -2
  58. package/dist/index.mjs +3 -1
  59. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"for-resource.cjs","names":["LayoutConfigurationError","capitalize"],"sources":["../../src/create-config/for-resource.ts"],"sourcesContent":["import type { LayoutNameInput } from './layout-name';\nimport type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport type {\n InPropsDefinition,\n InPropsObject,\n MergedLayoutInProps,\n ResolvedIncludedComponentProps,\n} from '../props';\nimport type {\n LayoutResourceKey,\n ResourceDefinition,\n} from '../resource';\nimport type { UnionToIntersection, Updater } from '../utils';\nimport { LayoutConfigurationError } from '../errors';\nimport { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\n ResourceLayoutResult,\n} from './define-layout';\n\ntype LayoutPropDefaults = Record<string, unknown>;\n\ntype CreateTimeLayoutPropWithDefault<\n LayoutProps extends LayoutPropDefaults,\n Key extends keyof LayoutProps,\n> = LayoutProps[Key] extends (...args: unknown[]) => unknown\n ? LayoutProps[Key]\n : Updater<LayoutProps[Key]>;\n\ntype ResolveLayoutPropsWithDefaults<\n LayoutProps extends LayoutPropDefaults,\n Defaults extends LayoutPropDefaults,\n> = Omit<LayoutProps, keyof Defaults> & {\n [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<\n LayoutProps,\n Key\n >;\n};\n\nexport type CreateResourceLayoutOptionsBase<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n> = {\n name: LayoutNameInput<Resource, string, Name>;\n resource: Resource;\n props?: Props;\n};\n\nexport type CreateResourceLayoutOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Namespace extends boolean = false,\n> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props> & {\n /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */\n namespace?: Namespace;\n };\n\nexport type CreateLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n> = {\n name?: Name;\n resource: Resource;\n};\n\ntype CreatedLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Props extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = ResolveLayoutPropsWithDefaults<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>,\n Defaults\n> & {\n props?: Props;\n};\n\ntype CreatedLayoutForResourceCallOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n OverrideName extends string,\n Props extends InPropsObject,\n Defaults extends LayoutPropDefaults,\n> = CreatedLayoutForResourceOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Props,\n Defaults\n> & {\n name?: OverrideName;\n};\n\nexport type CreatedLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <OverrideName extends string = Name, Props extends InPropsObject = {}, Namespace extends boolean = DefaultNamespace>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n) => ResourceLayoutResult<ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource,\n ResolvedIncludedComponentProps<\n MergedLayoutInProps<Resources, InProps, Composables>,\n IncludeProps\n >\n,\n States,\n Resources,\n InProps\n>, Namespace>;\n\ntype SetDefaultPropsForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n> = Partial<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>\n>;\n\ntype ResolvedSetDefaultProps<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n> = {\n [Key in keyof Defaults &\n keyof LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >]: LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >[Key];\n};\n\nexport type SetDefaultPropForResourceFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <\n const Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n>(\n /** Default values for layout props. Each prop can only be set once. */\n defaults: Defaults,\n) => CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n ResolvedSetDefaultProps<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Defaults\n >,\n DefaultNamespace,\n States\n>;\n\ntype CapitalizedResource<Resource extends string> =\n Resource extends Resource\n ? {\n toLowerCase: () => Lowercase<Capitalize<Resource>>;\n } & Capitalize<Resource>\n : never;\n\ntype ResourceLayoutNames<\n Resource extends string,\n CallbackName extends string,\n> = {\n [TargetResource in Resource]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype AtLeastOneResourceLayoutNameKey<Resource extends string> = {\n [TargetResource in Resource]: Record<TargetResource, unknown> &\n Partial<Record<Exclude<Resource, TargetResource>, unknown>>;\n}[Resource];\n\ntype SelectedResourceLayoutNames<\n Resource extends string,\n SelectedResource extends Resource,\n CallbackName extends string,\n> = {\n [TargetResource in Resource as TargetResource extends SelectedResource\n ? TargetResource\n : never]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype NormalizeCapitalizedResourceName<\n Name extends string,\n Resource extends string,\n> = Name extends Name\n ? NormalizeCapitalizedResourceNameMatch<\n Name,\n Resource\n > extends infer Match extends string\n ? [Match] extends [never]\n ? Name\n : Match\n : never\n : never;\n\ntype NormalizeCapitalizedResourceNameMatch<\n Name extends string,\n Resource extends string,\n> = Resource extends Resource\n ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}`\n ? `${Capitalize<Resource>}${Suffix}`\n : never\n : never;\n\ntype ResourceLayoutBuilder<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n {},\n DefaultNamespace,\n States\n> & {\n /** Set default values for layout props in a single call. */\n setDefaults: SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n};\n\ntype SingleResourceLayoutSelection<\n Resources extends ReadonlyArray<ResourceDefinition>,\n CallbackName extends string,\n> = {\n [Resource in LayoutResourceKey<Resources>]: Record<\n Resource,\n {\n name?:\n | string\n | ((resource: CapitalizedResource<Resource>) => CallbackName);\n }\n > &\n Partial<\n Record<\n Exclude<LayoutResourceKey<Resources>, Resource>,\n never\n >\n >;\n}[LayoutResourceKey<Resources>];\n\ntype SelectedResourceName<Selection, Resource extends string> =\n Selection extends Record<Resource, { name?: infer Name }>\n ? Name extends (...args: never[]) => infer CallbackName\n ? NormalizeCapitalizedResourceName<CallbackName & string, Resource>\n : Name extends string\n ? Name\n : string\n : string;\n\ntype MappedResourceName<\n Names,\n CallbackName extends string,\n Resource extends string,\n> = Names extends Record<Resource, infer Name>\n ? Name extends (...args: never[]) => unknown\n ? NormalizeCapitalizedResourceName<CallbackName, Resource>\n : Name & string\n : string;\n\n/**\n * Creates a layout builder with a resource-keyed default-name map.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: {\n * users: resource => `${resource}Page`,\n * },\n * })\n *\n * @param options The resource and its resource-keyed default name.\n * @returns A layout builder bound to the selected resource.\n */\ntype ResourceLayoutNameMapFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n Resource extends LayoutResourceKey<Resources>,\n DefaultNamespace extends boolean = false,\n States = {},\n> = <const CallbackName extends string, const Names>(\n options: {\n resource: Resource;\n name: SelectedResourceLayoutNames<\n LayoutResourceKey<Resources>,\n Resource,\n CallbackName\n > &\n AtLeastOneResourceLayoutNameKey<Resource> &\n Record<\n string,\n NonNullable<\n ResourceLayoutNames<\n LayoutResourceKey<Resources>,\n CallbackName\n >[LayoutResourceKey<Resources>]\n >\n >;\n } & {\n name: Names & Record<Exclude<keyof Names, Resource>, never>;\n },\n) => ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n MappedResourceName<Names, CallbackName, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype ResourceLayoutNameMapFns<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n Resource,\n DefaultNamespace,\n States\n >;\n }[LayoutResourceKey<Resources>]\n>;\n\nexport type CreateLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = {\n /**\n * Creates a layout builder for one resource without a default name.\n *\n * @example\n * createResourceLayout.forResource('users')\n *\n * @param resource The resource to bind to the returned layout builder.\n * @returns A layout builder bound to the selected resource.\n */\n <const Resource extends LayoutResourceKey<Resources>>(\n resource: Resource,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n string,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder with a capitalized-resource naming callback.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: resource => `${resource}Page`,\n * })\n *\n * @param options The resource and its default-name callback.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string,\n >(\n options: {\n name: (resource: CapitalizedResource<Resource>) => Name;\n resource: Resource;\n },\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n NormalizeCapitalizedResourceName<Name, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from the existing resource-options notation.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: 'UsersPage',\n * })\n *\n * @param options The resource and its optional default name.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string = string,\n >(\n options: CreateLayoutForResourceOptions<Resources, Name, Resource>,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from a single resource-keyed configuration.\n *\n * @example\n * createResourceLayout.forResource({\n * users: { name: resource => `${resource}Page` },\n * })\n *\n * @param options A single resource-keyed layout configuration.\n * @returns A layout builder bound to the configured resource.\n */\n <\n const CallbackName extends string,\n const Selection extends SingleResourceLayoutSelection<\n Resources,\n CallbackName\n >,\n >(\n options: Selection,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n SelectedResourceName<\n Selection,\n keyof Selection & LayoutResourceKey<Resources>\n >,\n keyof Selection & LayoutResourceKey<Resources>,\n CustomProps,\n DefaultNamespace,\n States\n >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype CreateForResourceOptions = {\n createResourceLayout: (options: Record<string, unknown>) => unknown;\n resolveLayoutOptionDefaults: (\n defaults: Record<string, unknown>,\n options: Record<string, unknown>,\n ) => Record<string, unknown>;\n};\n\nexport function createForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n>({\n createResourceLayout,\n resolveLayoutOptionDefaults,\n}: CreateForResourceOptions) {\n function createLayoutForResource<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Defaults extends LayoutPropDefaults,\n >(\n defaultName: Name | undefined,\n resource: Resource,\n defaults: Record<string, unknown>,\n ) {\n return ((\n layoutOptions: { name?: string } & Record<string, unknown> = {},\n ) => {\n const { name, ...options } = layoutOptions;\n\n return createResourceLayout({\n ...defaults,\n name: name ?? defaultName,\n resource,\n ...resolveLayoutOptionDefaults(defaults, options),\n });\n }) as CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n Defaults\n >;\n }\n\n function createLayoutForResourceBuilder<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n >(defaultName: Name | undefined, resource: Resource) {\n const createLayout = createLayoutForResource(defaultName, resource, {});\n const setDefaults = ((defaults) =>\n createLayoutForResource(\n defaultName,\n resource,\n defaults,\n )) as SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps\n >;\n\n return Object.assign(createLayout, { setDefaults });\n }\n\n const forResource = ((resourceOrOptions: unknown) => {\n type ResourceName =\n | string\n | ((resource: CapitalizedResource<LayoutResourceKey<Resources>>) => string);\n let name:\n | ResourceName\n | Partial<Record<LayoutResourceKey<Resources>, ResourceName>>\n | undefined;\n let resource: LayoutResourceKey<Resources> | undefined;\n\n if (typeof resourceOrOptions === 'string') {\n resource = resourceOrOptions as LayoutResourceKey<Resources>;\n } else if (\n resourceOrOptions !== null &&\n typeof resourceOrOptions === 'object' &&\n ('resource' in resourceOrOptions || 'name' in resourceOrOptions)\n ) {\n ({ name, resource } = resourceOrOptions as {\n name?: typeof name;\n resource?: LayoutResourceKey<Resources>;\n });\n } else {\n const [selection] = Object.entries(resourceOrOptions ?? {});\n\n if (selection) {\n const [selectedResource, options] = selection;\n resource = selectedResource as LayoutResourceKey<Resources>;\n name = (options as { name?: typeof name }).name;\n }\n }\n\n if (!resource) {\n throw new LayoutConfigurationError('\"resource\" is required when calling \"forResource\"');\n }\n\n const selectedName =\n name !== null && typeof name === 'object' ? name[resource] : name;\n let defaultName: string | undefined;\n\n if (typeof selectedName === 'function') {\n defaultName = selectedName(\n capitalize(resource) as CapitalizedResource<\n LayoutResourceKey<Resources>\n >,\n );\n } else if (typeof selectedName === 'string') {\n defaultName = selectedName;\n }\n\n return createLayoutForResourceBuilder(defaultName, resource);\n }) as CreateLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps\n >;\n\n return { createLayoutForResourceBuilder, forResource };\n}\n"],"mappings":";;;;AA+kBA,SAAgB,kBAMd,EACA,sBACA,+BAC2B;CAC3B,SAAS,wBAKP,aACA,UACA,UACA;EACA,SACE,gBAA6D,CAAC,MAC3D;GACH,MAAM,EAAE,MAAM,GAAG,YAAY;GAE7B,OAAO,qBAAqB;IAC1B,GAAG;IACH,MAAM,QAAQ;IACd;IACA,GAAG,4BAA4B,UAAU,OAAO;GAClD,CAAC;EACH;CAUF;CAEA,SAAS,+BAGP,aAA+B,UAAoB;EACnD,MAAM,eAAe,wBAAwB,aAAa,UAAU,CAAC,CAAC;EACtE,MAAM,gBAAgB,aACpB,wBACE,aACA,UACA,QACF;EAUF,OAAO,OAAO,OAAO,cAAc,EAAE,YAAY,CAAC;CACpD;CAEA,MAAM,gBAAgB,sBAA+B;EAInD,IAAI;EAIJ,IAAI;EAEJ,IAAI,OAAO,sBAAsB,UAC/B,WAAW;OACN,IACL,sBAAsB,QACtB,OAAO,sBAAsB,aAC5B,cAAc,qBAAqB,UAAU,oBAE9C,CAAC,CAAE,MAAM,YAAa;OAIjB;GACL,MAAM,CAAC,aAAa,OAAO,QAAQ,qBAAqB,CAAC,CAAC;GAE1D,IAAI,WAAW;IACb,MAAM,CAAC,kBAAkB,WAAW;IACpC,WAAW;IACX,OAAQ,QAAmC;GAC7C;EACF;EAEA,IAAI,CAAC,UACH,MAAM,IAAIA,4DAAyB,uDAAmD;EAGxF,MAAM,eACJ,SAAS,QAAQ,OAAO,SAAS,WAAW,KAAK,YAAY;EAC/D,IAAI;EAEJ,IAAI,OAAO,iBAAiB,YAC1B,cAAc,aACZC,8BAAW,QAAQ,CAGrB;OACK,IAAI,OAAO,iBAAiB,UACjC,cAAc;EAGhB,OAAO,+BAA+B,aAAa,QAAQ;CAC7D;CAQA,OAAO;EAAE;EAAgC;CAAY;AACvD"}
1
+ {"version":3,"file":"for-resource.cjs","names":["LayoutConfigurationError","capitalize"],"sources":["../../src/create-config/for-resource.ts"],"sourcesContent":["import type { LayoutNameInput, ResolvedLayoutName } from './layout-name';\nimport type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport type {\n InPropsDefinition,\n InPropsObject,\n MergedLayoutInProps,\n ResolvedIncludedComponentProps,\n} from '../props';\nimport type {\n LayoutResourceKey,\n ResourceDefinition,\n} from '../resource';\nimport type { UnionToIntersection, Updater } from '../utils';\nimport { LayoutConfigurationError } from '../errors';\nimport { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\n ResourceLayoutResult,\n} from './define-layout';\n\ntype LayoutPropDefaults = Record<string, unknown>;\n\ntype CreateTimeLayoutPropWithDefault<\n LayoutProps extends LayoutPropDefaults,\n Key extends keyof LayoutProps,\n> = LayoutProps[Key] extends (...args: unknown[]) => unknown\n ? LayoutProps[Key]\n : Updater<LayoutProps[Key]>;\n\ntype ResolveLayoutPropsWithDefaults<\n LayoutProps extends LayoutPropDefaults,\n Defaults extends LayoutPropDefaults,\n> = Omit<LayoutProps, keyof Defaults> & {\n [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<\n LayoutProps,\n Key\n >;\n};\n\nexport type CreateResourceLayoutOptionsBase<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Naming extends LayoutNameInput<Resource, any, Name> | undefined =\n LayoutNameInput<Resource, string, Name>,\n> = {\n /**\n * Overrides the definition or factory name; otherwise the resource supplies the name.\n */\n name?: Naming;\n resource: Resource;\n props?: Props;\n};\n\nexport type CreateResourceLayoutOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Namespace extends boolean = false,\n Naming extends LayoutNameInput<Resource, any, Name> | undefined =\n LayoutNameInput<Resource, string, Name>,\n> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props, Naming> & {\n /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */\n namespace?: Namespace;\n };\n\nexport type CreateLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n> = {\n name?: Name;\n resource: Resource;\n};\n\ntype CreatedLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Props extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = ResolveLayoutPropsWithDefaults<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>,\n Defaults\n> & {\n props?: Props;\n};\n\ntype CreatedLayoutForResourceCallOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n OverrideName extends string,\n Props extends InPropsObject,\n Defaults extends LayoutPropDefaults,\n> = CreatedLayoutForResourceOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Props,\n Defaults\n> & {\n name?: OverrideName;\n};\n\nexport type CreatedLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <OverrideName extends string = Name, Props extends InPropsObject = {}, Namespace extends boolean = DefaultNamespace>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n) => ResourceLayoutResult<ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource,\n ResolvedIncludedComponentProps<\n MergedLayoutInProps<Resources, InProps, Composables>,\n IncludeProps\n >\n,\n States,\n Resources,\n InProps\n>, Namespace>;\n\ntype SetDefaultPropsForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n> = Partial<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>\n>;\n\ntype ResolvedSetDefaultProps<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n> = {\n [Key in keyof Defaults &\n keyof LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >]: LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >[Key];\n};\n\nexport type SetDefaultPropForResourceFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <\n const Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n>(\n /** Default values for layout props. Each prop can only be set once. */\n defaults: Defaults,\n) => CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n ResolvedSetDefaultProps<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Defaults\n >,\n DefaultNamespace,\n States\n>;\n\ntype CapitalizedResource<Resource extends string> =\n Resource extends Resource\n ? {\n toLowerCase: () => Lowercase<Capitalize<Resource>>;\n } & Capitalize<Resource>\n : never;\n\ntype ResourceLayoutNames<\n Resource extends string,\n CallbackName extends string,\n> = {\n [TargetResource in Resource]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype AtLeastOneResourceLayoutNameKey<Resource extends string> = {\n [TargetResource in Resource]: Record<TargetResource, unknown> &\n Partial<Record<Exclude<Resource, TargetResource>, unknown>>;\n}[Resource];\n\ntype SelectedResourceLayoutNames<\n Resource extends string,\n SelectedResource extends Resource,\n CallbackName extends string,\n> = {\n [TargetResource in Resource as TargetResource extends SelectedResource\n ? TargetResource\n : never]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype NormalizeCapitalizedResourceName<\n Name extends string,\n Resource extends string,\n> = Name extends Name\n ? NormalizeCapitalizedResourceNameMatch<\n Name,\n Resource\n > extends infer Match extends string\n ? [Match] extends [never]\n ? Name\n : Match\n : never\n : never;\n\ntype NormalizeCapitalizedResourceNameMatch<\n Name extends string,\n Resource extends string,\n> = Resource extends Resource\n ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}`\n ? `${Capitalize<Resource>}${Suffix}`\n : never\n : never;\n\ntype ResourceLayoutBuilder<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n {},\n DefaultNamespace,\n States\n> & {\n /** Set default values for layout props in a single call. */\n setDefaults: SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n};\n\ntype SingleResourceLayoutSelection<\n Resources extends ReadonlyArray<ResourceDefinition>,\n CallbackName extends string,\n> = {\n [Resource in LayoutResourceKey<Resources>]: Record<\n Resource,\n {\n name?:\n | string\n | ((resource: CapitalizedResource<Resource>) => CallbackName);\n }\n > &\n Partial<\n Record<\n Exclude<LayoutResourceKey<Resources>, Resource>,\n never\n >\n >;\n}[LayoutResourceKey<Resources>];\n\ntype SelectedResourceName<Selection, Resource extends string> =\n Selection extends Record<Resource, { name?: infer Name }>\n ? Name extends (...args: never[]) => infer CallbackName\n ? NormalizeCapitalizedResourceName<CallbackName & string, Resource>\n : Name extends string\n ? Name\n : string\n : string;\n\ntype MappedResourceName<\n Names,\n CallbackName extends string,\n Resource extends string,\n> = Names extends Record<Resource, infer Name>\n ? Name extends (...args: never[]) => unknown\n ? NormalizeCapitalizedResourceName<CallbackName, Resource>\n : Name & string\n : string;\n\n/**\n * Creates a layout builder with a resource-keyed default-name map.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: {\n * users: resource => `${resource}Page`,\n * },\n * })\n *\n * @param options The resource and its resource-keyed default name.\n * @returns A layout builder bound to the selected resource.\n */\ntype ResourceLayoutNameMapFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n Resource extends LayoutResourceKey<Resources>,\n DefaultNamespace extends boolean = false,\n States = {},\n> = <const CallbackName extends string, const Names>(\n options: {\n resource: Resource;\n name: SelectedResourceLayoutNames<\n LayoutResourceKey<Resources>,\n Resource,\n CallbackName\n > &\n AtLeastOneResourceLayoutNameKey<Resource> &\n Record<\n string,\n NonNullable<\n ResourceLayoutNames<\n LayoutResourceKey<Resources>,\n CallbackName\n >[LayoutResourceKey<Resources>]\n >\n >;\n } & {\n name: Names & Record<Exclude<keyof Names, Resource>, never>;\n },\n) => ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n MappedResourceName<Names, CallbackName, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype ResourceLayoutNameMapFns<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n Resource,\n DefaultNamespace,\n States\n >;\n }[LayoutResourceKey<Resources>]\n>;\n\nexport type CreateLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined,\n> = {\n /**\n * Creates a layout builder for one resource without a default name.\n *\n * @example\n * createResourceLayout.forResource('users')\n *\n * @param resource The resource to bind to the returned layout builder.\n * @returns A layout builder bound to the selected resource.\n */\n <const Resource extends LayoutResourceKey<Resources>>(\n resource: Resource,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n ResolvedLayoutName<DefaultNaming, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder with a capitalized-resource naming callback.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: resource => `${resource}Page`,\n * })\n *\n * @param options The resource and its default-name callback.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string,\n >(\n options: {\n name: (resource: CapitalizedResource<Resource>) => Name;\n resource: Resource;\n },\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n NormalizeCapitalizedResourceName<Name, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from the existing resource-options notation.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: 'UsersPage',\n * })\n *\n * @param options The resource and its optional default name.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string = ResolvedLayoutName<DefaultNaming, Resource>,\n >(\n options: CreateLayoutForResourceOptions<Resources, Name, Resource>,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from a single resource-keyed configuration.\n *\n * @example\n * createResourceLayout.forResource({\n * users: { name: resource => `${resource}Page` },\n * })\n *\n * @param options A single resource-keyed layout configuration.\n * @returns A layout builder bound to the configured resource.\n */\n <\n const CallbackName extends string,\n const Selection extends SingleResourceLayoutSelection<\n Resources,\n CallbackName\n >,\n >(\n options: Selection,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n SelectedResourceName<\n Selection,\n keyof Selection & LayoutResourceKey<Resources>\n >,\n keyof Selection & LayoutResourceKey<Resources>,\n CustomProps,\n DefaultNamespace,\n States\n >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype CreateForResourceOptions = {\n createResourceLayout: (options: Record<string, unknown>) => unknown;\n resolveLayoutOptionDefaults: (\n defaults: Record<string, unknown>,\n options: Record<string, unknown>,\n ) => Record<string, unknown>;\n};\n\nexport function createForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n>({\n createResourceLayout,\n resolveLayoutOptionDefaults,\n}: CreateForResourceOptions) {\n function createLayoutForResource<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Defaults extends LayoutPropDefaults,\n >(\n defaultName: Name | undefined,\n resource: Resource,\n defaults: Record<string, unknown>,\n ) {\n return ((\n layoutOptions: { name?: string } & Record<string, unknown> = {},\n ) => {\n const { name, ...options } = layoutOptions;\n\n return createResourceLayout({\n ...defaults,\n name: name ?? defaultName,\n resource,\n ...resolveLayoutOptionDefaults(defaults, options),\n });\n }) as CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n Defaults\n >;\n }\n\n function createLayoutForResourceBuilder<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n >(defaultName: Name | undefined, resource: Resource) {\n const createLayout = createLayoutForResource(defaultName, resource, {});\n const setDefaults = ((defaults) =>\n createLayoutForResource(\n defaultName,\n resource,\n defaults,\n )) as SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps\n >;\n\n return Object.assign(createLayout, { setDefaults });\n }\n\n const forResource = ((resourceOrOptions: unknown) => {\n type ResourceName =\n | string\n | ((resource: CapitalizedResource<LayoutResourceKey<Resources>>) => string);\n let name:\n | ResourceName\n | Partial<Record<LayoutResourceKey<Resources>, ResourceName>>\n | undefined;\n let resource: LayoutResourceKey<Resources> | undefined;\n\n if (typeof resourceOrOptions === 'string') {\n resource = resourceOrOptions as LayoutResourceKey<Resources>;\n } else if (\n resourceOrOptions !== null &&\n typeof resourceOrOptions === 'object' &&\n ('resource' in resourceOrOptions || 'name' in resourceOrOptions)\n ) {\n ({ name, resource } = resourceOrOptions as {\n name?: typeof name;\n resource?: LayoutResourceKey<Resources>;\n });\n } else {\n const [selection] = Object.entries(resourceOrOptions ?? {});\n\n if (selection) {\n const [selectedResource, options] = selection;\n resource = selectedResource as LayoutResourceKey<Resources>;\n name = (options as { name?: typeof name }).name;\n }\n }\n\n if (!resource) {\n throw new LayoutConfigurationError('\"resource\" is required when calling \"forResource\"');\n }\n\n const selectedName =\n name !== null && typeof name === 'object' ? name[resource] : name;\n let defaultName: string | undefined;\n\n if (typeof selectedName === 'function') {\n defaultName = selectedName(\n capitalize(resource) as CapitalizedResource<\n LayoutResourceKey<Resources>\n >,\n );\n } else if (typeof selectedName === 'string') {\n defaultName = selectedName;\n }\n\n return createLayoutForResourceBuilder(defaultName, resource);\n }) as CreateLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps\n >;\n\n return { createLayoutForResourceBuilder, forResource };\n}\n"],"mappings":";;;;AAulBA,SAAgB,kBAMd,EACA,sBACA,+BAC2B;CAC3B,SAAS,wBAKP,aACA,UACA,UACA;EACA,SACE,gBAA6D,CAAC,MAC3D;GACH,MAAM,EAAE,MAAM,GAAG,YAAY;GAE7B,OAAO,qBAAqB;IAC1B,GAAG;IACH,MAAM,QAAQ;IACd;IACA,GAAG,4BAA4B,UAAU,OAAO;GAClD,CAAC;EACH;CAUF;CAEA,SAAS,+BAGP,aAA+B,UAAoB;EACnD,MAAM,eAAe,wBAAwB,aAAa,UAAU,CAAC,CAAC;EACtE,MAAM,gBAAgB,aACpB,wBACE,aACA,UACA,QACF;EAUF,OAAO,OAAO,OAAO,cAAc,EAAE,YAAY,CAAC;CACpD;CAEA,MAAM,gBAAgB,sBAA+B;EAInD,IAAI;EAIJ,IAAI;EAEJ,IAAI,OAAO,sBAAsB,UAC/B,WAAW;OACN,IACL,sBAAsB,QACtB,OAAO,sBAAsB,aAC5B,cAAc,qBAAqB,UAAU,oBAE9C,CAAC,CAAE,MAAM,YAAa;OAIjB;GACL,MAAM,CAAC,aAAa,OAAO,QAAQ,qBAAqB,CAAC,CAAC;GAE1D,IAAI,WAAW;IACb,MAAM,CAAC,kBAAkB,WAAW;IACpC,WAAW;IACX,OAAQ,QAAmC;GAC7C;EACF;EAEA,IAAI,CAAC,UACH,MAAM,IAAIA,4DAAyB,uDAAmD;EAGxF,MAAM,eACJ,SAAS,QAAQ,OAAO,SAAS,WAAW,KAAK,YAAY;EAC/D,IAAI;EAEJ,IAAI,OAAO,iBAAiB,YAC1B,cAAc,aACZC,8BAAW,QAAQ,CAGrB;OACK,IAAI,OAAO,iBAAiB,UACjC,cAAc;EAGhB,OAAO,+BAA+B,aAAa,QAAQ;CAC7D;CAQA,OAAO;EAAE;EAAgC;CAAY;AACvD"}
@@ -1,7 +1,7 @@
1
1
  import { UnionToIntersection, Updater } from "../utils.cjs";
2
2
  import { LayoutResourceKey, ResourceDefinition } from "../resource.cjs";
3
3
  import { InPropsDefinition, InPropsObject, MergedLayoutInProps, ResolvedIncludedComponentProps } from "../props.cjs";
4
- import { LayoutNameInput } from "./layout-name.cjs";
4
+ import { LayoutNameInput, ResolvedLayoutName } from "./layout-name.cjs";
5
5
  import { LayoutIncludeProps, LayoutPropsForResource, ResourceLayoutComponent, ResourceLayoutResult } from "./define-layout.cjs";
6
6
  import { ComposableComponents } from "@jfdevelops/react-layout-composables";
7
7
 
@@ -9,12 +9,15 @@ import { ComposableComponents } from "@jfdevelops/react-layout-composables";
9
9
  type LayoutPropDefaults = Record<string, unknown>;
10
10
  type CreateTimeLayoutPropWithDefault<LayoutProps extends LayoutPropDefaults, Key extends keyof LayoutProps> = LayoutProps[Key] extends ((...args: unknown[]) => unknown) ? LayoutProps[Key] : Updater<LayoutProps[Key]>;
11
11
  type ResolveLayoutPropsWithDefaults<LayoutProps extends LayoutPropDefaults, Defaults extends LayoutPropDefaults> = Omit<LayoutProps, keyof Defaults> & { [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<LayoutProps, Key> };
12
- type CreateResourceLayoutOptionsBase<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}> = {
13
- name: LayoutNameInput<Resource, string, Name>;
12
+ type CreateResourceLayoutOptionsBase<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Naming extends LayoutNameInput<Resource, any, Name> | undefined = LayoutNameInput<Resource, string, Name>> = {
13
+ /**
14
+ * Overrides the definition or factory name; otherwise the resource supplies the name.
15
+ */
16
+ name?: Naming;
14
17
  resource: Resource;
15
18
  props?: Props;
16
19
  };
17
- type CreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Namespace extends boolean = false> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props> & {
20
+ type CreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Namespace extends boolean = false, Naming extends LayoutNameInput<Resource, any, Name> | undefined = LayoutNameInput<Resource, string, Name>> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props, Naming> & {
18
21
  /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */namespace?: Namespace;
19
22
  };
20
23
  type CreateLayoutForResourceOptions<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>> = {
@@ -78,7 +81,7 @@ type ResourceLayoutNameMapFn<Resources extends ReadonlyArray<ResourceDefinition>
78
81
  name: Names & Record<Exclude<keyof Names, Resource>, never>;
79
82
  }) => ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, MappedResourceName<Names, CallbackName, Resource>, Resource, CustomProps, DefaultNamespace, States>;
80
83
  type ResourceLayoutNameMapFns<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, CustomProps extends InPropsObject, DefaultNamespace extends boolean = false, States = {}> = UnionToIntersection<{ [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<Resources, InProps, Composables, IncludeProps, CustomProps, Resource, DefaultNamespace, States> }[LayoutResourceKey<Resources>]>;
81
- type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}, DefaultNamespace extends boolean = false, States = {}> = {
84
+ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}, DefaultNamespace extends boolean = false, States = {}, DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined> = {
82
85
  /**
83
86
  * Creates a layout builder for one resource without a default name.
84
87
  *
@@ -88,7 +91,7 @@ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>
88
91
  * @param resource The resource to bind to the returned layout builder.
89
92
  * @returns A layout builder bound to the selected resource.
90
93
  */
91
- <const Resource extends LayoutResourceKey<Resources>>(resource: Resource): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, string, Resource, CustomProps, DefaultNamespace, States>;
94
+ <const Resource extends LayoutResourceKey<Resources>>(resource: Resource): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, ResolvedLayoutName<DefaultNaming, Resource>, Resource, CustomProps, DefaultNamespace, States>;
92
95
  /**
93
96
  * Creates a layout builder with a capitalized-resource naming callback.
94
97
  *
@@ -117,7 +120,7 @@ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>
117
120
  * @param options The resource and its optional default name.
118
121
  * @returns A layout builder bound to the selected resource.
119
122
  */
120
- <const Resource extends LayoutResourceKey<Resources>, const Name extends string = string>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps, DefaultNamespace, States>;
123
+ <const Resource extends LayoutResourceKey<Resources>, const Name extends string = ResolvedLayoutName<DefaultNaming, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps, DefaultNamespace, States>;
121
124
  /**
122
125
  * Creates a layout builder from a single resource-keyed configuration.
123
126
  *
@@ -1 +1 @@
1
- {"version":3,"file":"for-resource.d.cts","names":[],"sources":["../../src/create-config/for-resource.ts"],"mappings":"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"}
1
+ {"version":3,"file":"for-resource.d.cts","names":[],"sources":["../../src/create-config/for-resource.ts"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { UnionToIntersection, Updater } from "../utils.mjs";
2
2
  import { LayoutResourceKey, ResourceDefinition } from "../resource.mjs";
3
3
  import { InPropsDefinition, InPropsObject, MergedLayoutInProps, ResolvedIncludedComponentProps } from "../props.mjs";
4
- import { LayoutNameInput } from "./layout-name.mjs";
4
+ import { LayoutNameInput, ResolvedLayoutName } from "./layout-name.mjs";
5
5
  import { LayoutIncludeProps, LayoutPropsForResource, ResourceLayoutComponent, ResourceLayoutResult } from "./define-layout.mjs";
6
6
  import { ComposableComponents } from "@jfdevelops/react-layout-composables";
7
7
 
@@ -9,12 +9,15 @@ import { ComposableComponents } from "@jfdevelops/react-layout-composables";
9
9
  type LayoutPropDefaults = Record<string, unknown>;
10
10
  type CreateTimeLayoutPropWithDefault<LayoutProps extends LayoutPropDefaults, Key extends keyof LayoutProps> = LayoutProps[Key] extends ((...args: unknown[]) => unknown) ? LayoutProps[Key] : Updater<LayoutProps[Key]>;
11
11
  type ResolveLayoutPropsWithDefaults<LayoutProps extends LayoutPropDefaults, Defaults extends LayoutPropDefaults> = Omit<LayoutProps, keyof Defaults> & { [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<LayoutProps, Key> };
12
- type CreateResourceLayoutOptionsBase<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}> = {
13
- name: LayoutNameInput<Resource, string, Name>;
12
+ type CreateResourceLayoutOptionsBase<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Naming extends LayoutNameInput<Resource, any, Name> | undefined = LayoutNameInput<Resource, string, Name>> = {
13
+ /**
14
+ * Overrides the definition or factory name; otherwise the resource supplies the name.
15
+ */
16
+ name?: Naming;
14
17
  resource: Resource;
15
18
  props?: Props;
16
19
  };
17
- type CreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Namespace extends boolean = false> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props> & {
20
+ type CreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Name extends string, Resource extends LayoutResourceKey<Resources>, Props extends InPropsObject = {}, Namespace extends boolean = false, Naming extends LayoutNameInput<Resource, any, Name> | undefined = LayoutNameInput<Resource, string, Name>> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props, Naming> & {
18
21
  /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */namespace?: Namespace;
19
22
  };
20
23
  type CreateLayoutForResourceOptions<Resources extends ReadonlyArray<ResourceDefinition>, Name extends string, Resource extends LayoutResourceKey<Resources>> = {
@@ -78,7 +81,7 @@ type ResourceLayoutNameMapFn<Resources extends ReadonlyArray<ResourceDefinition>
78
81
  name: Names & Record<Exclude<keyof Names, Resource>, never>;
79
82
  }) => ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, MappedResourceName<Names, CallbackName, Resource>, Resource, CustomProps, DefaultNamespace, States>;
80
83
  type ResourceLayoutNameMapFns<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, CustomProps extends InPropsObject, DefaultNamespace extends boolean = false, States = {}> = UnionToIntersection<{ [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<Resources, InProps, Composables, IncludeProps, CustomProps, Resource, DefaultNamespace, States> }[LayoutResourceKey<Resources>]>;
81
- type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}, DefaultNamespace extends boolean = false, States = {}> = {
84
+ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}, DefaultNamespace extends boolean = false, States = {}, DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined> = {
82
85
  /**
83
86
  * Creates a layout builder for one resource without a default name.
84
87
  *
@@ -88,7 +91,7 @@ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>
88
91
  * @param resource The resource to bind to the returned layout builder.
89
92
  * @returns A layout builder bound to the selected resource.
90
93
  */
91
- <const Resource extends LayoutResourceKey<Resources>>(resource: Resource): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, string, Resource, CustomProps, DefaultNamespace, States>;
94
+ <const Resource extends LayoutResourceKey<Resources>>(resource: Resource): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, ResolvedLayoutName<DefaultNaming, Resource>, Resource, CustomProps, DefaultNamespace, States>;
92
95
  /**
93
96
  * Creates a layout builder with a capitalized-resource naming callback.
94
97
  *
@@ -117,7 +120,7 @@ type CreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>
117
120
  * @param options The resource and its optional default name.
118
121
  * @returns A layout builder bound to the selected resource.
119
122
  */
120
- <const Resource extends LayoutResourceKey<Resources>, const Name extends string = string>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps, DefaultNamespace, States>;
123
+ <const Resource extends LayoutResourceKey<Resources>, const Name extends string = ResolvedLayoutName<DefaultNaming, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>): ResourceLayoutBuilder<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps, DefaultNamespace, States>;
121
124
  /**
122
125
  * Creates a layout builder from a single resource-keyed configuration.
123
126
  *
@@ -1 +1 @@
1
- {"version":3,"file":"for-resource.d.mts","names":[],"sources":["../../src/create-config/for-resource.ts"],"mappings":"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"}
1
+ {"version":3,"file":"for-resource.d.mts","names":[],"sources":["../../src/create-config/for-resource.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"for-resource.mjs","names":[],"sources":["../../src/create-config/for-resource.ts"],"sourcesContent":["import type { LayoutNameInput } from './layout-name';\nimport type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport type {\n InPropsDefinition,\n InPropsObject,\n MergedLayoutInProps,\n ResolvedIncludedComponentProps,\n} from '../props';\nimport type {\n LayoutResourceKey,\n ResourceDefinition,\n} from '../resource';\nimport type { UnionToIntersection, Updater } from '../utils';\nimport { LayoutConfigurationError } from '../errors';\nimport { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\n ResourceLayoutResult,\n} from './define-layout';\n\ntype LayoutPropDefaults = Record<string, unknown>;\n\ntype CreateTimeLayoutPropWithDefault<\n LayoutProps extends LayoutPropDefaults,\n Key extends keyof LayoutProps,\n> = LayoutProps[Key] extends (...args: unknown[]) => unknown\n ? LayoutProps[Key]\n : Updater<LayoutProps[Key]>;\n\ntype ResolveLayoutPropsWithDefaults<\n LayoutProps extends LayoutPropDefaults,\n Defaults extends LayoutPropDefaults,\n> = Omit<LayoutProps, keyof Defaults> & {\n [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<\n LayoutProps,\n Key\n >;\n};\n\nexport type CreateResourceLayoutOptionsBase<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n> = {\n name: LayoutNameInput<Resource, string, Name>;\n resource: Resource;\n props?: Props;\n};\n\nexport type CreateResourceLayoutOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Namespace extends boolean = false,\n> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props> & {\n /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */\n namespace?: Namespace;\n };\n\nexport type CreateLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n> = {\n name?: Name;\n resource: Resource;\n};\n\ntype CreatedLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Props extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = ResolveLayoutPropsWithDefaults<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>,\n Defaults\n> & {\n props?: Props;\n};\n\ntype CreatedLayoutForResourceCallOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n OverrideName extends string,\n Props extends InPropsObject,\n Defaults extends LayoutPropDefaults,\n> = CreatedLayoutForResourceOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Props,\n Defaults\n> & {\n name?: OverrideName;\n};\n\nexport type CreatedLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <OverrideName extends string = Name, Props extends InPropsObject = {}, Namespace extends boolean = DefaultNamespace>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n) => ResourceLayoutResult<ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource,\n ResolvedIncludedComponentProps<\n MergedLayoutInProps<Resources, InProps, Composables>,\n IncludeProps\n >\n,\n States,\n Resources,\n InProps\n>, Namespace>;\n\ntype SetDefaultPropsForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n> = Partial<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>\n>;\n\ntype ResolvedSetDefaultProps<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n> = {\n [Key in keyof Defaults &\n keyof LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >]: LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >[Key];\n};\n\nexport type SetDefaultPropForResourceFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <\n const Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n>(\n /** Default values for layout props. Each prop can only be set once. */\n defaults: Defaults,\n) => CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n ResolvedSetDefaultProps<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Defaults\n >,\n DefaultNamespace,\n States\n>;\n\ntype CapitalizedResource<Resource extends string> =\n Resource extends Resource\n ? {\n toLowerCase: () => Lowercase<Capitalize<Resource>>;\n } & Capitalize<Resource>\n : never;\n\ntype ResourceLayoutNames<\n Resource extends string,\n CallbackName extends string,\n> = {\n [TargetResource in Resource]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype AtLeastOneResourceLayoutNameKey<Resource extends string> = {\n [TargetResource in Resource]: Record<TargetResource, unknown> &\n Partial<Record<Exclude<Resource, TargetResource>, unknown>>;\n}[Resource];\n\ntype SelectedResourceLayoutNames<\n Resource extends string,\n SelectedResource extends Resource,\n CallbackName extends string,\n> = {\n [TargetResource in Resource as TargetResource extends SelectedResource\n ? TargetResource\n : never]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype NormalizeCapitalizedResourceName<\n Name extends string,\n Resource extends string,\n> = Name extends Name\n ? NormalizeCapitalizedResourceNameMatch<\n Name,\n Resource\n > extends infer Match extends string\n ? [Match] extends [never]\n ? Name\n : Match\n : never\n : never;\n\ntype NormalizeCapitalizedResourceNameMatch<\n Name extends string,\n Resource extends string,\n> = Resource extends Resource\n ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}`\n ? `${Capitalize<Resource>}${Suffix}`\n : never\n : never;\n\ntype ResourceLayoutBuilder<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n {},\n DefaultNamespace,\n States\n> & {\n /** Set default values for layout props in a single call. */\n setDefaults: SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n};\n\ntype SingleResourceLayoutSelection<\n Resources extends ReadonlyArray<ResourceDefinition>,\n CallbackName extends string,\n> = {\n [Resource in LayoutResourceKey<Resources>]: Record<\n Resource,\n {\n name?:\n | string\n | ((resource: CapitalizedResource<Resource>) => CallbackName);\n }\n > &\n Partial<\n Record<\n Exclude<LayoutResourceKey<Resources>, Resource>,\n never\n >\n >;\n}[LayoutResourceKey<Resources>];\n\ntype SelectedResourceName<Selection, Resource extends string> =\n Selection extends Record<Resource, { name?: infer Name }>\n ? Name extends (...args: never[]) => infer CallbackName\n ? NormalizeCapitalizedResourceName<CallbackName & string, Resource>\n : Name extends string\n ? Name\n : string\n : string;\n\ntype MappedResourceName<\n Names,\n CallbackName extends string,\n Resource extends string,\n> = Names extends Record<Resource, infer Name>\n ? Name extends (...args: never[]) => unknown\n ? NormalizeCapitalizedResourceName<CallbackName, Resource>\n : Name & string\n : string;\n\n/**\n * Creates a layout builder with a resource-keyed default-name map.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: {\n * users: resource => `${resource}Page`,\n * },\n * })\n *\n * @param options The resource and its resource-keyed default name.\n * @returns A layout builder bound to the selected resource.\n */\ntype ResourceLayoutNameMapFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n Resource extends LayoutResourceKey<Resources>,\n DefaultNamespace extends boolean = false,\n States = {},\n> = <const CallbackName extends string, const Names>(\n options: {\n resource: Resource;\n name: SelectedResourceLayoutNames<\n LayoutResourceKey<Resources>,\n Resource,\n CallbackName\n > &\n AtLeastOneResourceLayoutNameKey<Resource> &\n Record<\n string,\n NonNullable<\n ResourceLayoutNames<\n LayoutResourceKey<Resources>,\n CallbackName\n >[LayoutResourceKey<Resources>]\n >\n >;\n } & {\n name: Names & Record<Exclude<keyof Names, Resource>, never>;\n },\n) => ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n MappedResourceName<Names, CallbackName, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype ResourceLayoutNameMapFns<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n Resource,\n DefaultNamespace,\n States\n >;\n }[LayoutResourceKey<Resources>]\n>;\n\nexport type CreateLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = {\n /**\n * Creates a layout builder for one resource without a default name.\n *\n * @example\n * createResourceLayout.forResource('users')\n *\n * @param resource The resource to bind to the returned layout builder.\n * @returns A layout builder bound to the selected resource.\n */\n <const Resource extends LayoutResourceKey<Resources>>(\n resource: Resource,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n string,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder with a capitalized-resource naming callback.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: resource => `${resource}Page`,\n * })\n *\n * @param options The resource and its default-name callback.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string,\n >(\n options: {\n name: (resource: CapitalizedResource<Resource>) => Name;\n resource: Resource;\n },\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n NormalizeCapitalizedResourceName<Name, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from the existing resource-options notation.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: 'UsersPage',\n * })\n *\n * @param options The resource and its optional default name.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string = string,\n >(\n options: CreateLayoutForResourceOptions<Resources, Name, Resource>,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from a single resource-keyed configuration.\n *\n * @example\n * createResourceLayout.forResource({\n * users: { name: resource => `${resource}Page` },\n * })\n *\n * @param options A single resource-keyed layout configuration.\n * @returns A layout builder bound to the configured resource.\n */\n <\n const CallbackName extends string,\n const Selection extends SingleResourceLayoutSelection<\n Resources,\n CallbackName\n >,\n >(\n options: Selection,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n SelectedResourceName<\n Selection,\n keyof Selection & LayoutResourceKey<Resources>\n >,\n keyof Selection & LayoutResourceKey<Resources>,\n CustomProps,\n DefaultNamespace,\n States\n >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype CreateForResourceOptions = {\n createResourceLayout: (options: Record<string, unknown>) => unknown;\n resolveLayoutOptionDefaults: (\n defaults: Record<string, unknown>,\n options: Record<string, unknown>,\n ) => Record<string, unknown>;\n};\n\nexport function createForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n>({\n createResourceLayout,\n resolveLayoutOptionDefaults,\n}: CreateForResourceOptions) {\n function createLayoutForResource<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Defaults extends LayoutPropDefaults,\n >(\n defaultName: Name | undefined,\n resource: Resource,\n defaults: Record<string, unknown>,\n ) {\n return ((\n layoutOptions: { name?: string } & Record<string, unknown> = {},\n ) => {\n const { name, ...options } = layoutOptions;\n\n return createResourceLayout({\n ...defaults,\n name: name ?? defaultName,\n resource,\n ...resolveLayoutOptionDefaults(defaults, options),\n });\n }) as CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n Defaults\n >;\n }\n\n function createLayoutForResourceBuilder<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n >(defaultName: Name | undefined, resource: Resource) {\n const createLayout = createLayoutForResource(defaultName, resource, {});\n const setDefaults = ((defaults) =>\n createLayoutForResource(\n defaultName,\n resource,\n defaults,\n )) as SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps\n >;\n\n return Object.assign(createLayout, { setDefaults });\n }\n\n const forResource = ((resourceOrOptions: unknown) => {\n type ResourceName =\n | string\n | ((resource: CapitalizedResource<LayoutResourceKey<Resources>>) => string);\n let name:\n | ResourceName\n | Partial<Record<LayoutResourceKey<Resources>, ResourceName>>\n | undefined;\n let resource: LayoutResourceKey<Resources> | undefined;\n\n if (typeof resourceOrOptions === 'string') {\n resource = resourceOrOptions as LayoutResourceKey<Resources>;\n } else if (\n resourceOrOptions !== null &&\n typeof resourceOrOptions === 'object' &&\n ('resource' in resourceOrOptions || 'name' in resourceOrOptions)\n ) {\n ({ name, resource } = resourceOrOptions as {\n name?: typeof name;\n resource?: LayoutResourceKey<Resources>;\n });\n } else {\n const [selection] = Object.entries(resourceOrOptions ?? {});\n\n if (selection) {\n const [selectedResource, options] = selection;\n resource = selectedResource as LayoutResourceKey<Resources>;\n name = (options as { name?: typeof name }).name;\n }\n }\n\n if (!resource) {\n throw new LayoutConfigurationError('\"resource\" is required when calling \"forResource\"');\n }\n\n const selectedName =\n name !== null && typeof name === 'object' ? name[resource] : name;\n let defaultName: string | undefined;\n\n if (typeof selectedName === 'function') {\n defaultName = selectedName(\n capitalize(resource) as CapitalizedResource<\n LayoutResourceKey<Resources>\n >,\n );\n } else if (typeof selectedName === 'string') {\n defaultName = selectedName;\n }\n\n return createLayoutForResourceBuilder(defaultName, resource);\n }) as CreateLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps\n >;\n\n return { createLayoutForResourceBuilder, forResource };\n}\n"],"mappings":";;;;AA+kBA,SAAgB,kBAMd,EACA,sBACA,+BAC2B;CAC3B,SAAS,wBAKP,aACA,UACA,UACA;EACA,SACE,gBAA6D,CAAC,MAC3D;GACH,MAAM,EAAE,MAAM,GAAG,YAAY;GAE7B,OAAO,qBAAqB;IAC1B,GAAG;IACH,MAAM,QAAQ;IACd;IACA,GAAG,4BAA4B,UAAU,OAAO;GAClD,CAAC;EACH;CAUF;CAEA,SAAS,+BAGP,aAA+B,UAAoB;EACnD,MAAM,eAAe,wBAAwB,aAAa,UAAU,CAAC,CAAC;EACtE,MAAM,gBAAgB,aACpB,wBACE,aACA,UACA,QACF;EAUF,OAAO,OAAO,OAAO,cAAc,EAAE,YAAY,CAAC;CACpD;CAEA,MAAM,gBAAgB,sBAA+B;EAInD,IAAI;EAIJ,IAAI;EAEJ,IAAI,OAAO,sBAAsB,UAC/B,WAAW;OACN,IACL,sBAAsB,QACtB,OAAO,sBAAsB,aAC5B,cAAc,qBAAqB,UAAU,oBAE9C,CAAC,CAAE,MAAM,YAAa;OAIjB;GACL,MAAM,CAAC,aAAa,OAAO,QAAQ,qBAAqB,CAAC,CAAC;GAE1D,IAAI,WAAW;IACb,MAAM,CAAC,kBAAkB,WAAW;IACpC,WAAW;IACX,OAAQ,QAAmC;GAC7C;EACF;EAEA,IAAI,CAAC,UACH,MAAM,IAAI,yBAAyB,uDAAmD;EAGxF,MAAM,eACJ,SAAS,QAAQ,OAAO,SAAS,WAAW,KAAK,YAAY;EAC/D,IAAI;EAEJ,IAAI,OAAO,iBAAiB,YAC1B,cAAc,aACZ,WAAW,QAAQ,CAGrB;OACK,IAAI,OAAO,iBAAiB,UACjC,cAAc;EAGhB,OAAO,+BAA+B,aAAa,QAAQ;CAC7D;CAQA,OAAO;EAAE;EAAgC;CAAY;AACvD"}
1
+ {"version":3,"file":"for-resource.mjs","names":[],"sources":["../../src/create-config/for-resource.ts"],"sourcesContent":["import type { LayoutNameInput, ResolvedLayoutName } from './layout-name';\nimport type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport type {\n InPropsDefinition,\n InPropsObject,\n MergedLayoutInProps,\n ResolvedIncludedComponentProps,\n} from '../props';\nimport type {\n LayoutResourceKey,\n ResourceDefinition,\n} from '../resource';\nimport type { UnionToIntersection, Updater } from '../utils';\nimport { LayoutConfigurationError } from '../errors';\nimport { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\n ResourceLayoutResult,\n} from './define-layout';\n\ntype LayoutPropDefaults = Record<string, unknown>;\n\ntype CreateTimeLayoutPropWithDefault<\n LayoutProps extends LayoutPropDefaults,\n Key extends keyof LayoutProps,\n> = LayoutProps[Key] extends (...args: unknown[]) => unknown\n ? LayoutProps[Key]\n : Updater<LayoutProps[Key]>;\n\ntype ResolveLayoutPropsWithDefaults<\n LayoutProps extends LayoutPropDefaults,\n Defaults extends LayoutPropDefaults,\n> = Omit<LayoutProps, keyof Defaults> & {\n [Key in keyof Defaults & keyof LayoutProps]?: CreateTimeLayoutPropWithDefault<\n LayoutProps,\n Key\n >;\n};\n\nexport type CreateResourceLayoutOptionsBase<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Naming extends LayoutNameInput<Resource, any, Name> | undefined =\n LayoutNameInput<Resource, string, Name>,\n> = {\n /**\n * Overrides the definition or factory name; otherwise the resource supplies the name.\n */\n name?: Naming;\n resource: Resource;\n props?: Props;\n};\n\nexport type CreateResourceLayoutOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n Namespace extends boolean = false,\n Naming extends LayoutNameInput<Resource, any, Name> | undefined =\n LayoutNameInput<Resource, string, Name>,\n> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props, Naming> & {\n /** Return a component namespace with `Root` instead of a callable component. Defaults to false. */\n namespace?: Namespace;\n };\n\nexport type CreateLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n> = {\n name?: Name;\n resource: Resource;\n};\n\ntype CreatedLayoutForResourceOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Props extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = ResolveLayoutPropsWithDefaults<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>,\n Defaults\n> & {\n props?: Props;\n};\n\ntype CreatedLayoutForResourceCallOptions<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n OverrideName extends string,\n Props extends InPropsObject,\n Defaults extends LayoutPropDefaults,\n> = CreatedLayoutForResourceOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Props,\n Defaults\n> & {\n name?: OverrideName;\n};\n\nexport type CreatedLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <OverrideName extends string = Name, Props extends InPropsObject = {}, Namespace extends boolean = DefaultNamespace>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n > & { namespace?: Namespace }]\n) => ResourceLayoutResult<ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource,\n ResolvedIncludedComponentProps<\n MergedLayoutInProps<Resources, InProps, Composables>,\n IncludeProps\n >\n,\n States,\n Resources,\n InProps\n>, Namespace>;\n\ntype SetDefaultPropsForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n> = Partial<\n LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>\n>;\n\ntype ResolvedSetDefaultProps<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n> = {\n [Key in keyof Defaults &\n keyof LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >]: LayoutPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >[Key];\n};\n\nexport type SetDefaultPropForResourceFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n> = <\n const Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps\n >,\n>(\n /** Default values for layout props. Each prop can only be set once. */\n defaults: Defaults,\n) => CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n ResolvedSetDefaultProps<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Defaults\n >,\n DefaultNamespace,\n States\n>;\n\ntype CapitalizedResource<Resource extends string> =\n Resource extends Resource\n ? {\n toLowerCase: () => Lowercase<Capitalize<Resource>>;\n } & Capitalize<Resource>\n : never;\n\ntype ResourceLayoutNames<\n Resource extends string,\n CallbackName extends string,\n> = {\n [TargetResource in Resource]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype AtLeastOneResourceLayoutNameKey<Resource extends string> = {\n [TargetResource in Resource]: Record<TargetResource, unknown> &\n Partial<Record<Exclude<Resource, TargetResource>, unknown>>;\n}[Resource];\n\ntype SelectedResourceLayoutNames<\n Resource extends string,\n SelectedResource extends Resource,\n CallbackName extends string,\n> = {\n [TargetResource in Resource as TargetResource extends SelectedResource\n ? TargetResource\n : never]?:\n | string\n | ((resource: CapitalizedResource<TargetResource>) => CallbackName);\n};\n\ntype NormalizeCapitalizedResourceName<\n Name extends string,\n Resource extends string,\n> = Name extends Name\n ? NormalizeCapitalizedResourceNameMatch<\n Name,\n Resource\n > extends infer Match extends string\n ? [Match] extends [never]\n ? Name\n : Match\n : never\n : never;\n\ntype NormalizeCapitalizedResourceNameMatch<\n Name extends string,\n Resource extends string,\n> = Resource extends Resource\n ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}`\n ? `${Capitalize<Resource>}${Suffix}`\n : never\n : never;\n\ntype ResourceLayoutBuilder<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n {},\n DefaultNamespace,\n States\n> & {\n /** Set default values for layout props in a single call. */\n setDefaults: SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n};\n\ntype SingleResourceLayoutSelection<\n Resources extends ReadonlyArray<ResourceDefinition>,\n CallbackName extends string,\n> = {\n [Resource in LayoutResourceKey<Resources>]: Record<\n Resource,\n {\n name?:\n | string\n | ((resource: CapitalizedResource<Resource>) => CallbackName);\n }\n > &\n Partial<\n Record<\n Exclude<LayoutResourceKey<Resources>, Resource>,\n never\n >\n >;\n}[LayoutResourceKey<Resources>];\n\ntype SelectedResourceName<Selection, Resource extends string> =\n Selection extends Record<Resource, { name?: infer Name }>\n ? Name extends (...args: never[]) => infer CallbackName\n ? NormalizeCapitalizedResourceName<CallbackName & string, Resource>\n : Name extends string\n ? Name\n : string\n : string;\n\ntype MappedResourceName<\n Names,\n CallbackName extends string,\n Resource extends string,\n> = Names extends Record<Resource, infer Name>\n ? Name extends (...args: never[]) => unknown\n ? NormalizeCapitalizedResourceName<CallbackName, Resource>\n : Name & string\n : string;\n\n/**\n * Creates a layout builder with a resource-keyed default-name map.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: {\n * users: resource => `${resource}Page`,\n * },\n * })\n *\n * @param options The resource and its resource-keyed default name.\n * @returns A layout builder bound to the selected resource.\n */\ntype ResourceLayoutNameMapFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n Resource extends LayoutResourceKey<Resources>,\n DefaultNamespace extends boolean = false,\n States = {},\n> = <const CallbackName extends string, const Names>(\n options: {\n resource: Resource;\n name: SelectedResourceLayoutNames<\n LayoutResourceKey<Resources>,\n Resource,\n CallbackName\n > &\n AtLeastOneResourceLayoutNameKey<Resource> &\n Record<\n string,\n NonNullable<\n ResourceLayoutNames<\n LayoutResourceKey<Resources>,\n CallbackName\n >[LayoutResourceKey<Resources>]\n >\n >;\n } & {\n name: Names & Record<Exclude<keyof Names, Resource>, never>;\n },\n) => ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n MappedResourceName<Names, CallbackName, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype ResourceLayoutNameMapFns<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n DefaultNamespace extends boolean = false,\n States = {},\n> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n Resource,\n DefaultNamespace,\n States\n >;\n }[LayoutResourceKey<Resources>]\n>;\n\nexport type CreateLayoutForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {},\n CustomProps extends InPropsObject = {},\n DefaultNamespace extends boolean = false,\n States = {},\n DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined,\n> = {\n /**\n * Creates a layout builder for one resource without a default name.\n *\n * @example\n * createResourceLayout.forResource('users')\n *\n * @param resource The resource to bind to the returned layout builder.\n * @returns A layout builder bound to the selected resource.\n */\n <const Resource extends LayoutResourceKey<Resources>>(\n resource: Resource,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n ResolvedLayoutName<DefaultNaming, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder with a capitalized-resource naming callback.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: resource => `${resource}Page`,\n * })\n *\n * @param options The resource and its default-name callback.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string,\n >(\n options: {\n name: (resource: CapitalizedResource<Resource>) => Name;\n resource: Resource;\n },\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n NormalizeCapitalizedResourceName<Name, Resource>,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from the existing resource-options notation.\n *\n * @example\n * createResourceLayout.forResource({\n * resource: 'users',\n * name: 'UsersPage',\n * })\n *\n * @param options The resource and its optional default name.\n * @returns A layout builder bound to the selected resource.\n */\n <\n const Resource extends LayoutResourceKey<Resources>,\n const Name extends string = ResolvedLayoutName<DefaultNaming, Resource>,\n >(\n options: CreateLayoutForResourceOptions<Resources, Name, Resource>,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n DefaultNamespace,\n States\n >;\n\n /**\n * Creates a layout builder from a single resource-keyed configuration.\n *\n * @example\n * createResourceLayout.forResource({\n * users: { name: resource => `${resource}Page` },\n * })\n *\n * @param options A single resource-keyed layout configuration.\n * @returns A layout builder bound to the configured resource.\n */\n <\n const CallbackName extends string,\n const Selection extends SingleResourceLayoutSelection<\n Resources,\n CallbackName\n >,\n >(\n options: Selection,\n ): ResourceLayoutBuilder<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n SelectedResourceName<\n Selection,\n keyof Selection & LayoutResourceKey<Resources>\n >,\n keyof Selection & LayoutResourceKey<Resources>,\n CustomProps,\n DefaultNamespace,\n States\n >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n DefaultNamespace,\n States\n>;\n\ntype CreateForResourceOptions = {\n createResourceLayout: (options: Record<string, unknown>) => unknown;\n resolveLayoutOptionDefaults: (\n defaults: Record<string, unknown>,\n options: Record<string, unknown>,\n ) => Record<string, unknown>;\n};\n\nexport function createForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>,\n CustomProps extends InPropsObject,\n>({\n createResourceLayout,\n resolveLayoutOptionDefaults,\n}: CreateForResourceOptions) {\n function createLayoutForResource<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Defaults extends LayoutPropDefaults,\n >(\n defaultName: Name | undefined,\n resource: Resource,\n defaults: Record<string, unknown>,\n ) {\n return ((\n layoutOptions: { name?: string } & Record<string, unknown> = {},\n ) => {\n const { name, ...options } = layoutOptions;\n\n return createResourceLayout({\n ...defaults,\n name: name ?? defaultName,\n resource,\n ...resolveLayoutOptionDefaults(defaults, options),\n });\n }) as CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps,\n Defaults\n >;\n }\n\n function createLayoutForResourceBuilder<\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n >(defaultName: Name | undefined, resource: Resource) {\n const createLayout = createLayoutForResource(defaultName, resource, {});\n const setDefaults = ((defaults) =>\n createLayoutForResource(\n defaultName,\n resource,\n defaults,\n )) as SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps\n >;\n\n return Object.assign(createLayout, { setDefaults });\n }\n\n const forResource = ((resourceOrOptions: unknown) => {\n type ResourceName =\n | string\n | ((resource: CapitalizedResource<LayoutResourceKey<Resources>>) => string);\n let name:\n | ResourceName\n | Partial<Record<LayoutResourceKey<Resources>, ResourceName>>\n | undefined;\n let resource: LayoutResourceKey<Resources> | undefined;\n\n if (typeof resourceOrOptions === 'string') {\n resource = resourceOrOptions as LayoutResourceKey<Resources>;\n } else if (\n resourceOrOptions !== null &&\n typeof resourceOrOptions === 'object' &&\n ('resource' in resourceOrOptions || 'name' in resourceOrOptions)\n ) {\n ({ name, resource } = resourceOrOptions as {\n name?: typeof name;\n resource?: LayoutResourceKey<Resources>;\n });\n } else {\n const [selection] = Object.entries(resourceOrOptions ?? {});\n\n if (selection) {\n const [selectedResource, options] = selection;\n resource = selectedResource as LayoutResourceKey<Resources>;\n name = (options as { name?: typeof name }).name;\n }\n }\n\n if (!resource) {\n throw new LayoutConfigurationError('\"resource\" is required when calling \"forResource\"');\n }\n\n const selectedName =\n name !== null && typeof name === 'object' ? name[resource] : name;\n let defaultName: string | undefined;\n\n if (typeof selectedName === 'function') {\n defaultName = selectedName(\n capitalize(resource) as CapitalizedResource<\n LayoutResourceKey<Resources>\n >,\n );\n } else if (typeof selectedName === 'string') {\n defaultName = selectedName;\n }\n\n return createLayoutForResourceBuilder(defaultName, resource);\n }) as CreateLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps\n >;\n\n return { createLayoutForResourceBuilder, forResource };\n}\n"],"mappings":";;;;AAulBA,SAAgB,kBAMd,EACA,sBACA,+BAC2B;CAC3B,SAAS,wBAKP,aACA,UACA,UACA;EACA,SACE,gBAA6D,CAAC,MAC3D;GACH,MAAM,EAAE,MAAM,GAAG,YAAY;GAE7B,OAAO,qBAAqB;IAC1B,GAAG;IACH,MAAM,QAAQ;IACd;IACA,GAAG,4BAA4B,UAAU,OAAO;GAClD,CAAC;EACH;CAUF;CAEA,SAAS,+BAGP,aAA+B,UAAoB;EACnD,MAAM,eAAe,wBAAwB,aAAa,UAAU,CAAC,CAAC;EACtE,MAAM,gBAAgB,aACpB,wBACE,aACA,UACA,QACF;EAUF,OAAO,OAAO,OAAO,cAAc,EAAE,YAAY,CAAC;CACpD;CAEA,MAAM,gBAAgB,sBAA+B;EAInD,IAAI;EAIJ,IAAI;EAEJ,IAAI,OAAO,sBAAsB,UAC/B,WAAW;OACN,IACL,sBAAsB,QACtB,OAAO,sBAAsB,aAC5B,cAAc,qBAAqB,UAAU,oBAE9C,CAAC,CAAE,MAAM,YAAa;OAIjB;GACL,MAAM,CAAC,aAAa,OAAO,QAAQ,qBAAqB,CAAC,CAAC;GAE1D,IAAI,WAAW;IACb,MAAM,CAAC,kBAAkB,WAAW;IACpC,WAAW;IACX,OAAQ,QAAmC;GAC7C;EACF;EAEA,IAAI,CAAC,UACH,MAAM,IAAI,yBAAyB,uDAAmD;EAGxF,MAAM,eACJ,SAAS,QAAQ,OAAO,SAAS,WAAW,KAAK,YAAY;EAC/D,IAAI;EAEJ,IAAI,OAAO,iBAAiB,YAC1B,cAAc,aACZ,WAAW,QAAQ,CAGrB;OACK,IAAI,OAAO,iBAAiB,UACjC,cAAc;EAGhB,OAAO,+BAA+B,aAAa,QAAQ;CAC7D;CAQA,OAAO;EAAE;EAAgC;CAAY;AACvD"}
@@ -1,4 +1,5 @@
1
1
  import { LayoutResourceKey, ResourceDefinition } from "../../resource.cjs";
2
+ import { LayoutNameInput, ResolvedLayoutName } from "../layout-name.cjs";
2
3
 
3
4
  //#region src/create-config/for-resources/resource-selection.d.ts
4
5
  type CapitalizedResource<Resource extends string> = Resource extends Resource ? {
@@ -17,7 +18,8 @@ type SelectedLayoutResources<Resources extends ReadonlyArray<ResourceDefinition>
17
18
  type ResolveResourceLayoutName<Name> = Name extends ((...args: never[]) => infer Result) ? Result & string : Name extends string ? Name : string;
18
19
  type NormalizeCapitalizedResourceName<Name extends string, Resource extends string> = Name extends Name ? NormalizeCapitalizedResourceNameMatch<Name, Resource> extends infer Match ? [Match] extends [never] ? Name : Match : never : never;
19
20
  type NormalizeCapitalizedResourceNameMatch<Name extends string, Resource extends string> = Resource extends Resource ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}` ? `${Capitalize<Resource>}${Suffix}` : never : never;
20
- type SelectedResourceLayoutName<Arguments, Resource extends string> = Arguments extends ReadonlyArray<string> ? string : Arguments extends readonly [infer Options] ? Options extends {
21
+ type SelectedResourceLayoutName<Arguments, Resource extends string, DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined> = HasResourceLayoutName<Arguments, Resource> extends true ? ConfiguredResourceLayoutName<Arguments, Resource> : ResolvedLayoutName<DefaultNaming, Resource>;
22
+ type ConfiguredResourceLayoutName<Arguments, Resource extends string> = Arguments extends ReadonlyArray<string> ? string : Arguments extends readonly [infer Options] ? Options extends {
21
23
  resources: ReadonlyArray<string>;
22
24
  name?: infer Name;
23
25
  } ? Name extends ((...args: never[]) => unknown) ? ResolveResourceLayoutName<Name> : Name extends Record<Resource, infer ResourceName> ? ResolveResourceLayoutName<ResourceName> : string : Options extends Record<Resource, infer ResourceOptions> ? ResourceOptions extends {
@@ -43,5 +45,5 @@ type HasResourceLayoutName<Arguments, Resource extends string> = Arguments exten
43
45
  name: infer Name;
44
46
  } ? Name extends ((...args: never[]) => unknown) ? true : Name extends Record<Resource, unknown> ? true : false : Options extends Record<Resource, infer ResourceOptions> ? 'name' extends keyof ResourceOptions ? true : false : false : false;
45
47
  //#endregion
46
- export { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, HasResourceLayoutName, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments };
48
+ export { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments };
47
49
  //# sourceMappingURL=resource-selection.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-selection.d.cts","names":[],"sources":["../../../src/create-config/for-resources/resource-selection.ts"],"mappings":"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"}
1
+ {"version":3,"file":"resource-selection.d.cts","names":[],"sources":["../../../src/create-config/for-resources/resource-selection.ts"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { LayoutResourceKey, ResourceDefinition } from "../../resource.mjs";
2
+ import { LayoutNameInput, ResolvedLayoutName } from "../layout-name.mjs";
2
3
 
3
4
  //#region src/create-config/for-resources/resource-selection.d.ts
4
5
  type CapitalizedResource<Resource extends string> = Resource extends Resource ? {
@@ -17,7 +18,8 @@ type SelectedLayoutResources<Resources extends ReadonlyArray<ResourceDefinition>
17
18
  type ResolveResourceLayoutName<Name> = Name extends ((...args: never[]) => infer Result) ? Result & string : Name extends string ? Name : string;
18
19
  type NormalizeCapitalizedResourceName<Name extends string, Resource extends string> = Name extends Name ? NormalizeCapitalizedResourceNameMatch<Name, Resource> extends infer Match ? [Match] extends [never] ? Name : Match : never : never;
19
20
  type NormalizeCapitalizedResourceNameMatch<Name extends string, Resource extends string> = Resource extends Resource ? Name extends `${CapitalizedResource<Resource>}${infer Suffix}` ? `${Capitalize<Resource>}${Suffix}` : never : never;
20
- type SelectedResourceLayoutName<Arguments, Resource extends string> = Arguments extends ReadonlyArray<string> ? string : Arguments extends readonly [infer Options] ? Options extends {
21
+ type SelectedResourceLayoutName<Arguments, Resource extends string, DefaultNaming extends LayoutNameInput<any, any> | undefined = undefined> = HasResourceLayoutName<Arguments, Resource> extends true ? ConfiguredResourceLayoutName<Arguments, Resource> : ResolvedLayoutName<DefaultNaming, Resource>;
22
+ type ConfiguredResourceLayoutName<Arguments, Resource extends string> = Arguments extends ReadonlyArray<string> ? string : Arguments extends readonly [infer Options] ? Options extends {
21
23
  resources: ReadonlyArray<string>;
22
24
  name?: infer Name;
23
25
  } ? Name extends ((...args: never[]) => unknown) ? ResolveResourceLayoutName<Name> : Name extends Record<Resource, infer ResourceName> ? ResolveResourceLayoutName<ResourceName> : string : Options extends Record<Resource, infer ResourceOptions> ? ResourceOptions extends {
@@ -43,5 +45,5 @@ type HasResourceLayoutName<Arguments, Resource extends string> = Arguments exten
43
45
  name: infer Name;
44
46
  } ? Name extends ((...args: never[]) => unknown) ? true : Name extends Record<Resource, unknown> ? true : false : Options extends Record<Resource, infer ResourceOptions> ? 'name' extends keyof ResourceOptions ? true : false : false : false;
45
47
  //#endregion
46
- export { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, HasResourceLayoutName, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments };
48
+ export { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments };
47
49
  //# sourceMappingURL=resource-selection.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-selection.d.mts","names":[],"sources":["../../../src/create-config/for-resources/resource-selection.ts"],"mappings":"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"}
1
+ {"version":3,"file":"resource-selection.d.mts","names":[],"sources":["../../../src/create-config/for-resources/resource-selection.ts"],"mappings":";;;;KAGY,mBAAA,4BAA+C,QAAA,SAAiB,QAAA;EAEtE,WAAA,QAAmB,SAAA,CAAU,UAAA,CAAW,QAAA;AAAA,IACtC,UAAA,CAAW,QAAA;AAAA,KAQP,mBAAA,uFAIS,QAAA,eAEb,QAAA,EAAU,mBAAA,CAAoB,cAAA,MAAoB,YAAA;AAAA,KAG9C,+BAAA,iDACS,QAAA,GAAW,MAAA,CAAO,cAAA,aACnC,OAAA,CAAQ,MAAA,CAAO,OAAA,CAAQ,QAAA,EAAU,cAAA,eACnC,QAAA;AAAA,KAEU,2BAAA,mDAEe,QAAA,sDAGN,QAAA,IAAY,cAAA,SAAuB,gBAAA,GAClD,cAAA,uBAGE,QAAA,EAAU,mBAAA,CAAoB,cAAA,MAAoB,YAAA;AAAA,KAO9C,uBAAA,mBACQ,aAAA,CAAc,kBAAA,0DAGnB,iBAAA,CAAkB,SAAA;EAC7B,IAAA,cAAkB,QAAA,EAAU,mBAAA,CAAoB,QAAA,MAAc,YAAA;AAAA;AAAA,KAItD,iCAAA,mBACQ,aAAA,CAAc,kBAAA,iDAGnB,iBAAA,CAAkB,SAAA,IAAa,QAAA,CAC1C,IAAA,CAAK,uBAAA,CAAwB,SAAA,EAAW,YAAA,GAAe,QAAA,KAEvD,IAAA,CAAK,uBAAA,CAAwB,SAAA,EAAW,YAAA,GAAe,QAAA,IACzD,iBAAA,CAAkB,SAAA;AAAA,KAER,uBAAA,mBACQ,aAAA,CAAc,kBAAA,qBACd,aAAA,aAElB,SAAA,SAAkB,aAAA,CAAc,iBAAA,CAAkB,SAAA,KAC9C,SAAA,WACA,SAAA;EACI,SAAA,EAAW,aAAA;AAAA,IAEb,QAAA,GAAW,iBAAA,CAAkB,SAAA,UACvB,SAAA,MAAe,iBAAA,CAAkB,SAAA;AAAA,KAEnC,yBAAA,SAAkC,IAAA,cACzC,IAAA,8BAED,MAAA,YACA,IAAA,kBACE,IAAA;AAAA,KAGM,gCAAA,iDAGR,IAAA,SAAa,IAAA,GACb,qCAAA,CAAsC,IAAA,EAAM,QAAA,yBACzC,KAAA,oBACC,IAAA,GACA,KAAA;AAAA,KAII,qCAAA,iDAGR,QAAA,SAAiB,QAAA,GACjB,IAAA,YAAgB,mBAAA,CAAoB,QAAA,wBAC/B,UAAA,CAAW,QAAA,IAAY,MAAA;AAAA,KAIpB,0BAAA,2DAGY,eAAA,sCACpB,qBAAA,CAAsB,SAAA,EAAW,QAAA,iBACjC,4BAAA,CAA6B,SAAA,EAAW,QAAA,IACxC,kBAAA,CAAmB,aAAA,EAAe,QAAA;AAAA,KAEjC,4BAAA,uCACH,SAAA,SAAkB,aAAA,oBAEd,SAAA,oCACE,OAAA;EACE,SAAA,EAAW,aAAA;EACX,IAAA;AAAA,IAEA,IAAA,cAAiB,IAAA,yBACf,yBAAA,CAA0B,IAAA,IAC1B,IAAA,SAAa,MAAA,CAAO,QAAA,wBAClB,yBAAA,CAA0B,YAAA,aAE9B,OAAA,SAAgB,MAAA,CAAO,QAAA,2BACrB,eAAA;EAA0B,IAAA;AAAA,IACxB,yBAAA,CAA0B,IAAA;AAAA,KAK5B,4BAAA,4DACS,KAAA,GAAQ,KAAA,CAAM,QAAA,eAC5B,IAAA,0BAGC,QAAA,EAAU,mBAAA,CAAoB,QAAA,eAC3B,gCAAA,CAAiC,YAAA,EAAc,QAAA,aACpD,KAAA,CAAM,QAAA;AAAA,KAGA,gCAAA,mCACS,SAAA,GAAY,SAAA,CAAU,QAAA;EACvC,IAAA;AAAA;EAGI,IAAA,EAAM,IAAA,cAAiB,IAAA,0BAEjB,QAAA,EAAU,mBAAA,CAAoB,QAAA,eAC3B,gCAAA,CACH,yBAAA,CAA0B,IAAA,GAC1B,QAAA,aAEF,IAAA;AAAA,IAEN,SAAA,CAAU,QAAA;AAAA,KAGJ,6BAAA,mBACQ,aAAA,CAAc,kBAAA,wBACX,aAAA,CAAc,iBAAA,CAAkB,SAAA;EAInD,SAAA,EAAW,YAAA;EACX,IAAA,GACE,QAAA,EAAU,mBAAA,CAAoB,YAAA,cAC3B,gCAAA,CAAiC,IAAA,EAAM,YAAA;AAAA;AAAA,KAIpC,6BAAA,mBACQ,aAAA,CAAc,kBAAA,wBACX,aAAA,CAAc,iBAAA,CAAkB,SAAA;EAKnD,SAAA,EAAW,YAAA;EACX,IAAA,EAAM,4BAAA,CAA6B,KAAA,EAAO,YAAA;AAAA;AAAA,KAIlC,+BAAA,wBACV,gCAAgC,CAAC,SAAA;AAAA,KAGvB,qBAAA,uCACV,SAAA,SAAkB,aAAA,mBAEd,SAAA,oCACE,OAAA;EACE,SAAA,EAAW,aAAA;EACX,IAAA;AAAA,IAEA,IAAA,cAAiB,IAAA,gCAEf,IAAA,SAAa,MAAA,CAAO,QAAA,4BAGtB,OAAA,SAAgB,MAAA,CAAO,QAAA,gDACA,eAAA"}