@jfdevelops/react-layout 0.17.4 → 0.17.5
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.
- package/dist/create-config/define-layout.cjs +29 -5
- package/dist/create-config/define-layout.cjs.map +1 -1
- package/dist/create-config/define-layout.d.cts +7 -7
- package/dist/create-config/define-layout.d.cts.map +1 -1
- package/dist/create-config/define-layout.d.mts +7 -7
- package/dist/create-config/define-layout.d.mts.map +1 -1
- package/dist/create-config/define-layout.mjs +30 -6
- package/dist/create-config/define-layout.mjs.map +1 -1
- package/dist/create-config/for-resource.cjs.map +1 -1
- package/dist/create-config/for-resource.d.cts +19 -19
- package/dist/create-config/for-resource.d.cts.map +1 -1
- package/dist/create-config/for-resource.d.mts +19 -19
- package/dist/create-config/for-resource.d.mts.map +1 -1
- package/dist/create-config/for-resource.mjs.map +1 -1
- package/dist/create-config/for-resources/scoped-layout.d.cts +14 -14
- package/dist/create-config/for-resources/scoped-layout.d.cts.map +1 -1
- package/dist/create-config/for-resources/scoped-layout.d.mts +14 -14
- package/dist/create-config/for-resources/scoped-layout.d.mts.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/props.d.cts +14 -4
- package/dist/props.d.cts.map +1 -1
- package/dist/props.d.mts +14 -4
- package/dist/props.d.mts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-resource.mjs","names":[],"sources":["../../src/create-config/for-resource.ts"],"sourcesContent":["import type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport type {\n InPropsDefinition,\n InPropsObject,\n} from '../props';\nimport type {\n LayoutResourceKey,\n ResourceDefinition,\n} from '../resource';\nimport type { UnionToIntersection, Updater } from '../utils';\nimport { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\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: 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 Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n Props extends InPropsObject = {},\n> = LayoutPropsForResource<Resources, InProps, Composables> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props>;\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 Props extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = ResolveLayoutPropsWithDefaults<\n LayoutPropsForResource<Resources, InProps, Composables>,\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 OverrideName extends string,\n Props extends InPropsObject,\n Defaults extends LayoutPropDefaults,\n> = CreatedLayoutForResourceOptions<\n Resources,\n InProps,\n Composables,\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 Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n Defaults extends LayoutPropDefaults = {},\n> = <OverrideName extends string = Name, Props extends InPropsObject = {}>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n OverrideName,\n Props,\n Defaults\n >\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n OverrideName,\n Props,\n Defaults\n >]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n OverrideName,\n Props,\n Defaults\n >]\n) => ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource\n>;\n\ntype SetDefaultPropsForResource<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents = {},\n> = Partial<LayoutPropsForResource<Resources, InProps, Composables>>;\n\ntype ResolvedSetDefaultProps<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n Defaults extends SetDefaultPropsForResource<Resources, InProps, Composables>,\n> = {\n [Key in keyof Defaults &\n keyof LayoutPropsForResource<\n Resources,\n InProps,\n Composables\n >]: LayoutPropsForResource<Resources, InProps, Composables>[Key];\n};\n\nexport type SetDefaultPropForResourceFn<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject = {},\n> = <\n const Defaults extends SetDefaultPropsForResource<\n Resources,\n InProps,\n Composables\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 Name,\n Resource,\n CustomProps,\n ResolvedSetDefaultProps<Resources, InProps, Composables, Defaults>\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 Name extends string,\n Resource extends LayoutResourceKey<Resources>,\n CustomProps extends InPropsObject,\n> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n Name,\n Resource,\n CustomProps\n> & {\n /** Set default values for layout props in a single call. */\n setDefaults: SetDefaultPropForResourceFn<\n Resources,\n InProps,\n Composables,\n Name,\n Resource,\n CustomProps\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 CustomProps extends InPropsObject,\n Resource extends LayoutResourceKey<Resources>,\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 MappedResourceName<Names, CallbackName, Resource>,\n Resource,\n CustomProps\n>;\n\ntype ResourceLayoutNameMapFns<\n Resources extends ReadonlyArray<ResourceDefinition>,\n InProps extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n CustomProps extends InPropsObject,\n> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n CustomProps,\n Resource\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> = {\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 string,\n Resource,\n CustomProps\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 NormalizeCapitalizedResourceName<Name, Resource>,\n Resource,\n CustomProps\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 Name,\n Resource,\n CustomProps\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 SelectedResourceName<\n Selection,\n keyof Selection & LayoutResourceKey<Resources>\n >,\n keyof Selection & LayoutResourceKey<Resources>,\n CustomProps\n >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n CustomProps\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 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 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 Error('\"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":";;;AAifA,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;CASF;CAEA,SAAS,+BAGP,aAA+B,UAAoB;EACnD,MAAM,eAAe,wBAAwB,aAAa,UAAU,CAAC,CAAC;EACtE,MAAM,gBAAgB,aACpB,wBACE,aACA,UACA,QACF;EASF,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,MAAM,uDAAmD;EAGrE,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 { 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 { capitalize } from '../utils/capitalize';\nimport type {\n LayoutIncludeProps,\n LayoutPropsForResource,\n ResourceLayoutComponent,\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: 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> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> &\n CreateResourceLayoutOptionsBase<Resources, Name, Resource, Props>;\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> = <OverrideName extends string = Name, Props extends InPropsObject = {}>(\n ...args: {} extends CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n >\n ? [options?: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n >]\n : [options: CreatedLayoutForResourceCallOptions<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n OverrideName,\n Props,\n Defaults\n >]\n) => ResourceLayoutComponent<\n OverrideName,\n CustomProps,\n Composables,\n Resource,\n ResolvedIncludedComponentProps<\n MergedLayoutInProps<Resources, InProps, Composables>,\n IncludeProps\n >\n>;\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> = <\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>;\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> = CreatedLayoutForResource<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n Name,\n Resource,\n CustomProps\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 >;\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> = <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>;\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> = UnionToIntersection<\n {\n [Resource in LayoutResourceKey<Resources>]: ResourceLayoutNameMapFn<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps,\n Resource\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> = {\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 >;\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 >;\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 >;\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 >;\n} & ResourceLayoutNameMapFns<\n Resources,\n InProps,\n Composables,\n IncludeProps,\n CustomProps\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 Error('\"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":";;;AAmiBA,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,MAAM,uDAAmD;EAGrE,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,5 +1,5 @@
|
|
|
1
1
|
import { LayoutResourceKey, ResourceDefinition } from "../../resource.cjs";
|
|
2
|
-
import { InPropsDefinition, InPropsObject } from "../../props.cjs";
|
|
2
|
+
import { InPropsDefinition, InPropsObject, MergedLayoutInProps, ResolvedIncludedComponentProps } from "../../props.cjs";
|
|
3
3
|
import { CreateLayoutForResourceOptions, CreateResourceLayoutOptionsBase, CreatedLayoutForResource, SetDefaultPropForResourceFn } from "../for-resource.cjs";
|
|
4
4
|
import { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, HasResourceLayoutName, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments } from "./resource-selection.cjs";
|
|
5
5
|
import { ScopedCreateComponent, ScopedCreateResourceComponents } from "./create-component.cjs";
|
|
@@ -7,7 +7,7 @@ import { LayoutIncludeProps, LayoutPropsForResource, ResourceLayoutComponent } f
|
|
|
7
7
|
import { ComposableComponents, ComposableResourceLayout } from "@jfdevelops/react-layout-composables";
|
|
8
8
|
|
|
9
9
|
//#region src/create-config/for-resources/scoped-layout.d.ts
|
|
10
|
-
type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, Name extends string, Resource extends SelectedLayoutResources<Resources, Arguments>, Props extends InPropsObject> = LayoutPropsForResource<Resources, InProps, Composables> & {
|
|
10
|
+
type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, Name extends string, Resource extends SelectedLayoutResources<Resources, Arguments>, Props extends InPropsObject> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & {
|
|
11
11
|
resource: Resource;
|
|
12
12
|
props?: Props;
|
|
13
13
|
} & (HasResourceLayoutName<Arguments, Resource> extends true ? {
|
|
@@ -15,18 +15,18 @@ type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceD
|
|
|
15
15
|
} : {
|
|
16
16
|
name: Name;
|
|
17
17
|
});
|
|
18
|
-
type ScopedCreateResourceLayoutFnImpl<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: ScopedCreateResourceLayoutOptions<Resources, InProps, Composables, Arguments, Name, Resource, Props>) => ResourceLayoutComponent<Name, CustomProps, Composables, Resource
|
|
19
|
-
type ScopedCreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>) => CreatedLayoutForResource<Resources, InProps, Composables, Name, Resource, CustomProps> & {
|
|
20
|
-
setDefaults: SetDefaultPropForResourceFn<Resources, InProps, Composables, Name, Resource, CustomProps>;
|
|
18
|
+
type ScopedCreateResourceLayoutFnImpl<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: ScopedCreateResourceLayoutOptions<Resources, InProps, Composables, IncludeProps, Arguments, Name, Resource, Props>) => ResourceLayoutComponent<Name, CustomProps, Composables, Resource, ResolvedIncludedComponentProps<MergedLayoutInProps<Resources, InProps, Composables>, IncludeProps>>;
|
|
19
|
+
type ScopedCreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>) => CreatedLayoutForResource<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps> & {
|
|
20
|
+
setDefaults: SetDefaultPropForResourceFn<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps>;
|
|
21
21
|
};
|
|
22
|
-
type ScopedCreateResourceLayoutMakeComposableFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: Omit<CreateResourceLayoutOptionsBase<Resources, Name, Resource>, 'name'> & Partial<LayoutPropsForResource<Resources, InProps, Composables>> & {
|
|
22
|
+
type ScopedCreateResourceLayoutMakeComposableFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: Omit<CreateResourceLayoutOptionsBase<Resources, Name, Resource>, 'name'> & Partial<LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>> & {
|
|
23
23
|
props?: Props;
|
|
24
24
|
} & (HasResourceLayoutName<Arguments, Resource> extends true ? {
|
|
25
25
|
name?: Name;
|
|
26
26
|
} : {
|
|
27
27
|
name: Name;
|
|
28
28
|
})) => ComposableResourceLayout<Composables, Name, any, any, any>;
|
|
29
|
-
type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = ScopedCreateResourceLayoutFnImpl<Resources, InProps, Composables, Arguments, CustomProps> & {
|
|
29
|
+
type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = ScopedCreateResourceLayoutFnImpl<Resources, InProps, Composables, IncludeProps, Arguments, CustomProps> & {
|
|
30
30
|
/**
|
|
31
31
|
* Creates a component shared by the target resources. Included layout props
|
|
32
32
|
* become component props, and `children` is always available as an optional
|
|
@@ -82,7 +82,7 @@ type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefini
|
|
|
82
82
|
*/
|
|
83
83
|
createComponent: ScopedCreateComponent<Resources, InProps, Composables, Arguments, CustomProps>; /** Builds one reusable entry for the selected resources. */
|
|
84
84
|
createResourceComponents: ScopedCreateResourceComponents<Resources, InProps, Composables, Arguments, CustomProps, {}, {}>;
|
|
85
|
-
forResource: ScopedCreateLayoutForResource<Resources, InProps, Composables, Arguments, CustomProps>;
|
|
85
|
+
forResource: ScopedCreateLayoutForResource<Resources, InProps, Composables, IncludeProps, Arguments, CustomProps>;
|
|
86
86
|
/**
|
|
87
87
|
* Type-only property containing the target resource union. This property is
|
|
88
88
|
* `undefined` at runtime and exists solely for extracting the scoped type.
|
|
@@ -92,7 +92,7 @@ type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefini
|
|
|
92
92
|
*/
|
|
93
93
|
readonly resources: SelectedLayoutResources<Resources, Arguments>;
|
|
94
94
|
} & ([keyof Composables] extends [never] ? {} : {
|
|
95
|
-
makeComposable: ScopedCreateResourceLayoutMakeComposableFn<Resources, InProps, Composables, Arguments>;
|
|
95
|
+
makeComposable: ScopedCreateResourceLayoutMakeComposableFn<Resources, InProps, Composables, IncludeProps, Arguments>;
|
|
96
96
|
});
|
|
97
97
|
type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}> = {
|
|
98
98
|
/**
|
|
@@ -106,7 +106,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
106
106
|
* @param resources Resources available from the returned layout factory.
|
|
107
107
|
* @returns A layout factory scoped to the selected resources.
|
|
108
108
|
*/
|
|
109
|
-
<const ResourceKeys extends readonly [LayoutResourceKey<Resources>, ...Array<LayoutResourceKey<Resources>>]>(...resources: ResourceKeys): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, ResourceKeys, CustomProps>;
|
|
109
|
+
<const ResourceKeys extends readonly [LayoutResourceKey<Resources>, ...Array<LayoutResourceKey<Resources>>]>(...resources: ResourceKeys): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, ResourceKeys, CustomProps>;
|
|
110
110
|
/**
|
|
111
111
|
* Creates a layout factory scoped to a resource list without default names.
|
|
112
112
|
*
|
|
@@ -119,7 +119,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
119
119
|
<const ResourceKeys extends ReadonlyArray<LayoutResourceKey<Resources>>>(options: {
|
|
120
120
|
resources: ResourceKeys;
|
|
121
121
|
name?: never;
|
|
122
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, readonly [{
|
|
122
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, readonly [{
|
|
123
123
|
resources: ResourceKeys;
|
|
124
124
|
}], CustomProps>;
|
|
125
125
|
/**
|
|
@@ -145,7 +145,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
145
145
|
name: SelectedResourceLayoutNames<LayoutResourceKey<Resources>, NoInfer<ResourceKeys[number]>, CallbackName> & AtLeastOneResourceLayoutNameKey<NoInfer<ResourceKeys[number]>> & Record<string, NonNullable<ResourceLayoutNames<LayoutResourceKey<Resources>, CallbackName>[LayoutResourceKey<Resources>]>>;
|
|
146
146
|
} & {
|
|
147
147
|
name: Names & Record<Exclude<keyof Names, ResourceKeys[number]>, never>;
|
|
148
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, MappedResourceLayoutArguments<Resources, ResourceKeys, Names, CallbackName>, CustomProps>;
|
|
148
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, MappedResourceLayoutArguments<Resources, ResourceKeys, Names, CallbackName>, CustomProps>;
|
|
149
149
|
/**
|
|
150
150
|
* Creates a scoped layout factory with one default-name callback shared by
|
|
151
151
|
* every selected resource. The callback receives a capitalized resource
|
|
@@ -165,7 +165,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
165
165
|
name: (resource: CapitalizedResource<ResourceKeys[number]>) => Name;
|
|
166
166
|
} & {
|
|
167
167
|
resources: ResourceKeys;
|
|
168
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, SharedResourceLayoutArguments<Resources, ResourceKeys, Name>, CustomProps>;
|
|
168
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, SharedResourceLayoutArguments<Resources, ResourceKeys, Name>, CustomProps>;
|
|
169
169
|
/**
|
|
170
170
|
* Creates a scoped layout factory from a resource-keyed configuration.
|
|
171
171
|
* Only configured resources are available from the returned factory.
|
|
@@ -179,7 +179,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
179
179
|
* @param options Resource-keyed layout defaults.
|
|
180
180
|
* @returns A layout factory scoped to the configured resources.
|
|
181
181
|
*/
|
|
182
|
-
<const CallbackName extends string, const Selection extends ResourceLayoutSelection<Resources, CallbackName>>(options: Selection & AtLeastOneResourceLayoutSelection<Resources, CallbackName> & Partial<Record<Exclude<'resources', LayoutResourceKey<Resources>>, never>> & Record<Exclude<keyof Selection, LayoutResourceKey<Resources>>, never>): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, SelectedResourceLayoutArguments<Selection>, CustomProps>;
|
|
182
|
+
<const CallbackName extends string, const Selection extends ResourceLayoutSelection<Resources, CallbackName>>(options: Selection & AtLeastOneResourceLayoutSelection<Resources, CallbackName> & Partial<Record<Exclude<'resources', LayoutResourceKey<Resources>>, never>> & Record<Exclude<keyof Selection, LayoutResourceKey<Resources>>, never>): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, SelectedResourceLayoutArguments<Selection>, CustomProps>;
|
|
183
183
|
};
|
|
184
184
|
//#endregion
|
|
185
185
|
export { CreateResourceLayoutForResourcesFn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-layout.d.cts","names":[],"sources":["../../../src/create-config/for-resources/scoped-layout.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"scoped-layout.d.cts","names":[],"sources":["../../../src/create-config/for-resources/scoped-layout.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LayoutResourceKey, ResourceDefinition } from "../../resource.mjs";
|
|
2
|
-
import { InPropsDefinition, InPropsObject } from "../../props.mjs";
|
|
2
|
+
import { InPropsDefinition, InPropsObject, MergedLayoutInProps, ResolvedIncludedComponentProps } from "../../props.mjs";
|
|
3
3
|
import { CreateLayoutForResourceOptions, CreateResourceLayoutOptionsBase, CreatedLayoutForResource, SetDefaultPropForResourceFn } from "../for-resource.mjs";
|
|
4
4
|
import { AtLeastOneResourceLayoutNameKey, AtLeastOneResourceLayoutSelection, CapitalizedResource, HasResourceLayoutName, MappedResourceLayoutArguments, ResourceLayoutNames, ResourceLayoutSelection, SelectedLayoutResources, SelectedResourceLayoutArguments, SelectedResourceLayoutName, SelectedResourceLayoutNames, SharedResourceLayoutArguments } from "./resource-selection.mjs";
|
|
5
5
|
import { ScopedCreateComponent, ScopedCreateResourceComponents } from "./create-component.mjs";
|
|
@@ -7,7 +7,7 @@ import { LayoutIncludeProps, LayoutPropsForResource, ResourceLayoutComponent } f
|
|
|
7
7
|
import { ComposableComponents, ComposableResourceLayout } from "@jfdevelops/react-layout-composables";
|
|
8
8
|
|
|
9
9
|
//#region src/create-config/for-resources/scoped-layout.d.ts
|
|
10
|
-
type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, Name extends string, Resource extends SelectedLayoutResources<Resources, Arguments>, Props extends InPropsObject> = LayoutPropsForResource<Resources, InProps, Composables> & {
|
|
10
|
+
type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, Name extends string, Resource extends SelectedLayoutResources<Resources, Arguments>, Props extends InPropsObject> = LayoutPropsForResource<Resources, InProps, Composables, IncludeProps> & {
|
|
11
11
|
resource: Resource;
|
|
12
12
|
props?: Props;
|
|
13
13
|
} & (HasResourceLayoutName<Arguments, Resource> extends true ? {
|
|
@@ -15,18 +15,18 @@ type ScopedCreateResourceLayoutOptions<Resources extends ReadonlyArray<ResourceD
|
|
|
15
15
|
} : {
|
|
16
16
|
name: Name;
|
|
17
17
|
});
|
|
18
|
-
type ScopedCreateResourceLayoutFnImpl<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: ScopedCreateResourceLayoutOptions<Resources, InProps, Composables, Arguments, Name, Resource, Props>) => ResourceLayoutComponent<Name, CustomProps, Composables, Resource
|
|
19
|
-
type ScopedCreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>) => CreatedLayoutForResource<Resources, InProps, Composables, Name, Resource, CustomProps> & {
|
|
20
|
-
setDefaults: SetDefaultPropForResourceFn<Resources, InProps, Composables, Name, Resource, CustomProps>;
|
|
18
|
+
type ScopedCreateResourceLayoutFnImpl<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: ScopedCreateResourceLayoutOptions<Resources, InProps, Composables, IncludeProps, Arguments, Name, Resource, Props>) => ResourceLayoutComponent<Name, CustomProps, Composables, Resource, ResolvedIncludedComponentProps<MergedLayoutInProps<Resources, InProps, Composables>, IncludeProps>>;
|
|
19
|
+
type ScopedCreateLayoutForResource<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>>(options: CreateLayoutForResourceOptions<Resources, Name, Resource>) => CreatedLayoutForResource<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps> & {
|
|
20
|
+
setDefaults: SetDefaultPropForResourceFn<Resources, InProps, Composables, IncludeProps, Name, Resource, CustomProps>;
|
|
21
21
|
};
|
|
22
|
-
type ScopedCreateResourceLayoutMakeComposableFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: Omit<CreateResourceLayoutOptionsBase<Resources, Name, Resource>, 'name'> & Partial<LayoutPropsForResource<Resources, InProps, Composables>> & {
|
|
22
|
+
type ScopedCreateResourceLayoutMakeComposableFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>> = <Resource extends SelectedLayoutResources<Resources, Arguments>, Name extends string = SelectedResourceLayoutName<Arguments, Resource>, Props extends InPropsObject = {}>(options: Omit<CreateResourceLayoutOptionsBase<Resources, Name, Resource>, 'name'> & Partial<LayoutPropsForResource<Resources, InProps, Composables, IncludeProps>> & {
|
|
23
23
|
props?: Props;
|
|
24
24
|
} & (HasResourceLayoutName<Arguments, Resource> extends true ? {
|
|
25
25
|
name?: Name;
|
|
26
26
|
} : {
|
|
27
27
|
name: Name;
|
|
28
28
|
})) => ComposableResourceLayout<Composables, Name, any, any, any>;
|
|
29
|
-
type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = ScopedCreateResourceLayoutFnImpl<Resources, InProps, Composables, Arguments, CustomProps> & {
|
|
29
|
+
type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables>, Arguments extends ReadonlyArray<unknown>, CustomProps extends InPropsObject> = ScopedCreateResourceLayoutFnImpl<Resources, InProps, Composables, IncludeProps, Arguments, CustomProps> & {
|
|
30
30
|
/**
|
|
31
31
|
* Creates a component shared by the target resources. Included layout props
|
|
32
32
|
* become component props, and `children` is always available as an optional
|
|
@@ -82,7 +82,7 @@ type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefini
|
|
|
82
82
|
*/
|
|
83
83
|
createComponent: ScopedCreateComponent<Resources, InProps, Composables, Arguments, CustomProps>; /** Builds one reusable entry for the selected resources. */
|
|
84
84
|
createResourceComponents: ScopedCreateResourceComponents<Resources, InProps, Composables, Arguments, CustomProps, {}, {}>;
|
|
85
|
-
forResource: ScopedCreateLayoutForResource<Resources, InProps, Composables, Arguments, CustomProps>;
|
|
85
|
+
forResource: ScopedCreateLayoutForResource<Resources, InProps, Composables, IncludeProps, Arguments, CustomProps>;
|
|
86
86
|
/**
|
|
87
87
|
* Type-only property containing the target resource union. This property is
|
|
88
88
|
* `undefined` at runtime and exists solely for extracting the scoped type.
|
|
@@ -92,7 +92,7 @@ type ScopedCreateResourceLayoutFn<Resources extends ReadonlyArray<ResourceDefini
|
|
|
92
92
|
*/
|
|
93
93
|
readonly resources: SelectedLayoutResources<Resources, Arguments>;
|
|
94
94
|
} & ([keyof Composables] extends [never] ? {} : {
|
|
95
|
-
makeComposable: ScopedCreateResourceLayoutMakeComposableFn<Resources, InProps, Composables, Arguments>;
|
|
95
|
+
makeComposable: ScopedCreateResourceLayoutMakeComposableFn<Resources, InProps, Composables, IncludeProps, Arguments>;
|
|
96
96
|
});
|
|
97
97
|
type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<ResourceDefinition>, InProps extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends LayoutIncludeProps<Resources, InProps, Composables> = {}, CustomProps extends InPropsObject = {}> = {
|
|
98
98
|
/**
|
|
@@ -106,7 +106,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
106
106
|
* @param resources Resources available from the returned layout factory.
|
|
107
107
|
* @returns A layout factory scoped to the selected resources.
|
|
108
108
|
*/
|
|
109
|
-
<const ResourceKeys extends readonly [LayoutResourceKey<Resources>, ...Array<LayoutResourceKey<Resources>>]>(...resources: ResourceKeys): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, ResourceKeys, CustomProps>;
|
|
109
|
+
<const ResourceKeys extends readonly [LayoutResourceKey<Resources>, ...Array<LayoutResourceKey<Resources>>]>(...resources: ResourceKeys): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, ResourceKeys, CustomProps>;
|
|
110
110
|
/**
|
|
111
111
|
* Creates a layout factory scoped to a resource list without default names.
|
|
112
112
|
*
|
|
@@ -119,7 +119,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
119
119
|
<const ResourceKeys extends ReadonlyArray<LayoutResourceKey<Resources>>>(options: {
|
|
120
120
|
resources: ResourceKeys;
|
|
121
121
|
name?: never;
|
|
122
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, readonly [{
|
|
122
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, readonly [{
|
|
123
123
|
resources: ResourceKeys;
|
|
124
124
|
}], CustomProps>;
|
|
125
125
|
/**
|
|
@@ -145,7 +145,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
145
145
|
name: SelectedResourceLayoutNames<LayoutResourceKey<Resources>, NoInfer<ResourceKeys[number]>, CallbackName> & AtLeastOneResourceLayoutNameKey<NoInfer<ResourceKeys[number]>> & Record<string, NonNullable<ResourceLayoutNames<LayoutResourceKey<Resources>, CallbackName>[LayoutResourceKey<Resources>]>>;
|
|
146
146
|
} & {
|
|
147
147
|
name: Names & Record<Exclude<keyof Names, ResourceKeys[number]>, never>;
|
|
148
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, MappedResourceLayoutArguments<Resources, ResourceKeys, Names, CallbackName>, CustomProps>;
|
|
148
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, MappedResourceLayoutArguments<Resources, ResourceKeys, Names, CallbackName>, CustomProps>;
|
|
149
149
|
/**
|
|
150
150
|
* Creates a scoped layout factory with one default-name callback shared by
|
|
151
151
|
* every selected resource. The callback receives a capitalized resource
|
|
@@ -165,7 +165,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
165
165
|
name: (resource: CapitalizedResource<ResourceKeys[number]>) => Name;
|
|
166
166
|
} & {
|
|
167
167
|
resources: ResourceKeys;
|
|
168
|
-
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, SharedResourceLayoutArguments<Resources, ResourceKeys, Name>, CustomProps>;
|
|
168
|
+
}): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, SharedResourceLayoutArguments<Resources, ResourceKeys, Name>, CustomProps>;
|
|
169
169
|
/**
|
|
170
170
|
* Creates a scoped layout factory from a resource-keyed configuration.
|
|
171
171
|
* Only configured resources are available from the returned factory.
|
|
@@ -179,7 +179,7 @@ type CreateResourceLayoutForResourcesFn<Resources extends ReadonlyArray<Resource
|
|
|
179
179
|
* @param options Resource-keyed layout defaults.
|
|
180
180
|
* @returns A layout factory scoped to the configured resources.
|
|
181
181
|
*/
|
|
182
|
-
<const CallbackName extends string, const Selection extends ResourceLayoutSelection<Resources, CallbackName>>(options: Selection & AtLeastOneResourceLayoutSelection<Resources, CallbackName> & Partial<Record<Exclude<'resources', LayoutResourceKey<Resources>>, never>> & Record<Exclude<keyof Selection, LayoutResourceKey<Resources>>, never>): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, SelectedResourceLayoutArguments<Selection>, CustomProps>;
|
|
182
|
+
<const CallbackName extends string, const Selection extends ResourceLayoutSelection<Resources, CallbackName>>(options: Selection & AtLeastOneResourceLayoutSelection<Resources, CallbackName> & Partial<Record<Exclude<'resources', LayoutResourceKey<Resources>>, never>> & Record<Exclude<keyof Selection, LayoutResourceKey<Resources>>, never>): ScopedCreateResourceLayoutFn<Resources, InProps, Composables, IncludeProps, SelectedResourceLayoutArguments<Selection>, CustomProps>;
|
|
183
183
|
};
|
|
184
184
|
//#endregion
|
|
185
185
|
export { CreateResourceLayoutForResourcesFn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-layout.d.mts","names":[],"sources":["../../../src/create-config/for-resources/scoped-layout.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"scoped-layout.d.mts","names":[],"sources":["../../../src/create-config/for-resources/scoped-layout.ts"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseComponent, MergeIntersection, Show, UnionToIntersection, pick } from "./utils.cjs";
|
|
2
2
|
import { LayoutResourceKey, NormalizeResource, NormalizeResources, ResourceDefinition, ResourceEnum, ResourceLayoutComponentProps, ResourceTree, normalizeResource, normalizeResources, toResourceEnum } from "./resource.cjs";
|
|
3
|
-
import { InPropsDefinition, InPropsFunction, InPropsObject, InPropsOptions, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined } from "./props.cjs";
|
|
3
|
+
import { InPropsDefinition, InPropsFunction, InPropsObject, InPropsOptions, IncludedPropBehavior, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedComponentProps, ResolvedIncludedConfigProps, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined } from "./props.cjs";
|
|
4
4
|
import { defineResourceLayout } from "./create-config/define-layout.cjs";
|
|
5
5
|
import { AnyComposableComponent, ComposableComponent, ComposableComponentCallable, ComposableComponents, ComposableNameContext, ComposablePresetComponent, ComposablePresetComponentCallProps, ComposablePresetMeta, ComposablePresetProps, ComposableResourceLayout, CreateLayoutComposable, DefinedComposableComponentRecord, LayoutComposablePresetProvider, LayoutComposablesFactory, MakeComposable, MakeComposableOptions, MergePresetProps, PresetPropsFromComposable, RequiredPresetLayoutProps, RequiredPresetRenderProps, ResolveLayoutComposables, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, defineComposableComponent, makeComposable, resolveComposablePresetProps, resolveLayoutComposables } from "@jfdevelops/react-layout-composables";
|
|
6
6
|
import { AnyBuiltPropDefinition, ExtractDefinitionValue, PropError, PropErrorOptions, ResolveLayoutProps, ResolveLayoutPropsAsDefined, ResolveProps, ResolvedBuiltPropShape, createPrimitivePropBuilder, createProp, isPropDefinitionShape, resolvePropDefinitionValues, validateProps } from "@jfdevelops/react-layout-validator";
|
|
7
|
-
export { type AnyBuiltPropDefinition, type AnyComposableComponent, type BaseComponent, type ComposableComponent, type ComposableComponentCallable, type ComposableComponents, type ComposableNameContext, type ComposablePresetComponent, type ComposablePresetComponentCallProps, type ComposablePresetMeta, type ComposablePresetProps, type ComposableResourceLayout, type CreateLayoutComposable, type DefinedComposableComponentRecord, type ExtractDefinitionValue, type InPropsDefinition, type InPropsFunction, type InPropsObject, type InPropsOptions, type IncludedProps, type InferredInProps, LayoutComposablePresetProvider, type LayoutComposablesFactory, type LayoutRenderProps, type LayoutResourceKey, type MakeComposable, type MakeComposableOptions, type MergeIntersection, type MergePresetProps, type MergedLayoutInProps, type NormalizeResource, type NormalizeResources, type PresetPropsFromComposable, PropError, type PropErrorOptions, type PropsContextRender, type PropsRenderDefinition, type RequiredPresetLayoutProps, type RequiredPresetRenderProps, type ResolveLayoutComposables, type ResolveLayoutProps, type ResolveLayoutPropsAsDefined, type ResolveProps, type ResolvedBuiltPropShape, type ResolvedIncludedProps, type ResolvedIncludedPropsAsDefined, type ResourceDefinition, type ResourceEnum, type ResourceLayoutComponentProps, type ResourceTree, type Show, type UnionToIntersection, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, createPrimitivePropBuilder, createProp, defineComposableComponent, defineResourceLayout, isPropDefinitionShape, makeComposable, normalizeResource, normalizeResources, pick, resolveComposablePresetProps, resolveLayoutComposables, resolvePropDefinitionValues, toResourceEnum, validateProps };
|
|
7
|
+
export { type AnyBuiltPropDefinition, type AnyComposableComponent, type BaseComponent, type ComposableComponent, type ComposableComponentCallable, type ComposableComponents, type ComposableNameContext, type ComposablePresetComponent, type ComposablePresetComponentCallProps, type ComposablePresetMeta, type ComposablePresetProps, type ComposableResourceLayout, type CreateLayoutComposable, type DefinedComposableComponentRecord, type ExtractDefinitionValue, type InPropsDefinition, type InPropsFunction, type InPropsObject, type InPropsOptions, type IncludedPropBehavior, type IncludedProps, type InferredInProps, LayoutComposablePresetProvider, type LayoutComposablesFactory, type LayoutRenderProps, type LayoutResourceKey, type MakeComposable, type MakeComposableOptions, type MergeIntersection, type MergePresetProps, type MergedLayoutInProps, type NormalizeResource, type NormalizeResources, type PresetPropsFromComposable, PropError, type PropErrorOptions, type PropsContextRender, type PropsRenderDefinition, type RequiredPresetLayoutProps, type RequiredPresetRenderProps, type ResolveLayoutComposables, type ResolveLayoutProps, type ResolveLayoutPropsAsDefined, type ResolveProps, type ResolvedBuiltPropShape, type ResolvedIncludedComponentProps, type ResolvedIncludedConfigProps, type ResolvedIncludedProps, type ResolvedIncludedPropsAsDefined, type ResourceDefinition, type ResourceEnum, type ResourceLayoutComponentProps, type ResourceTree, type Show, type UnionToIntersection, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, createPrimitivePropBuilder, createProp, defineComposableComponent, defineResourceLayout, isPropDefinitionShape, makeComposable, normalizeResource, normalizeResources, pick, resolveComposablePresetProps, resolveLayoutComposables, resolvePropDefinitionValues, toResourceEnum, validateProps };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseComponent, MergeIntersection, Show, UnionToIntersection, pick } from "./utils.mjs";
|
|
2
2
|
import { LayoutResourceKey, NormalizeResource, NormalizeResources, ResourceDefinition, ResourceEnum, ResourceLayoutComponentProps, ResourceTree, normalizeResource, normalizeResources, toResourceEnum } from "./resource.mjs";
|
|
3
|
-
import { InPropsDefinition, InPropsFunction, InPropsObject, InPropsOptions, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined } from "./props.mjs";
|
|
3
|
+
import { InPropsDefinition, InPropsFunction, InPropsObject, InPropsOptions, IncludedPropBehavior, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedComponentProps, ResolvedIncludedConfigProps, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined } from "./props.mjs";
|
|
4
4
|
import { defineResourceLayout } from "./create-config/define-layout.mjs";
|
|
5
5
|
import { AnyComposableComponent, ComposableComponent, ComposableComponentCallable, ComposableComponents, ComposableNameContext, ComposablePresetComponent, ComposablePresetComponentCallProps, ComposablePresetMeta, ComposablePresetProps, ComposableResourceLayout, CreateLayoutComposable, DefinedComposableComponentRecord, LayoutComposablePresetProvider, LayoutComposablesFactory, MakeComposable, MakeComposableOptions, MergePresetProps, PresetPropsFromComposable, RequiredPresetLayoutProps, RequiredPresetRenderProps, ResolveLayoutComposables, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, defineComposableComponent, makeComposable, resolveComposablePresetProps, resolveLayoutComposables } from "@jfdevelops/react-layout-composables";
|
|
6
6
|
import { AnyBuiltPropDefinition, ExtractDefinitionValue, PropError, PropErrorOptions, ResolveLayoutProps, ResolveLayoutPropsAsDefined, ResolveProps, ResolvedBuiltPropShape, createPrimitivePropBuilder, createProp, isPropDefinitionShape, resolvePropDefinitionValues, validateProps } from "@jfdevelops/react-layout-validator";
|
|
7
|
-
export { type AnyBuiltPropDefinition, type AnyComposableComponent, type BaseComponent, type ComposableComponent, type ComposableComponentCallable, type ComposableComponents, type ComposableNameContext, type ComposablePresetComponent, type ComposablePresetComponentCallProps, type ComposablePresetMeta, type ComposablePresetProps, type ComposableResourceLayout, type CreateLayoutComposable, type DefinedComposableComponentRecord, type ExtractDefinitionValue, type InPropsDefinition, type InPropsFunction, type InPropsObject, type InPropsOptions, type IncludedProps, type InferredInProps, LayoutComposablePresetProvider, type LayoutComposablesFactory, type LayoutRenderProps, type LayoutResourceKey, type MakeComposable, type MakeComposableOptions, type MergeIntersection, type MergePresetProps, type MergedLayoutInProps, type NormalizeResource, type NormalizeResources, type PresetPropsFromComposable, PropError, type PropErrorOptions, type PropsContextRender, type PropsRenderDefinition, type RequiredPresetLayoutProps, type RequiredPresetRenderProps, type ResolveLayoutComposables, type ResolveLayoutProps, type ResolveLayoutPropsAsDefined, type ResolveProps, type ResolvedBuiltPropShape, type ResolvedIncludedProps, type ResolvedIncludedPropsAsDefined, type ResourceDefinition, type ResourceEnum, type ResourceLayoutComponentProps, type ResourceTree, type Show, type UnionToIntersection, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, createPrimitivePropBuilder, createProp, defineComposableComponent, defineResourceLayout, isPropDefinitionShape, makeComposable, normalizeResource, normalizeResources, pick, resolveComposablePresetProps, resolveLayoutComposables, resolvePropDefinitionValues, toResourceEnum, validateProps };
|
|
7
|
+
export { type AnyBuiltPropDefinition, type AnyComposableComponent, type BaseComponent, type ComposableComponent, type ComposableComponentCallable, type ComposableComponents, type ComposableNameContext, type ComposablePresetComponent, type ComposablePresetComponentCallProps, type ComposablePresetMeta, type ComposablePresetProps, type ComposableResourceLayout, type CreateLayoutComposable, type DefinedComposableComponentRecord, type ExtractDefinitionValue, type InPropsDefinition, type InPropsFunction, type InPropsObject, type InPropsOptions, type IncludedPropBehavior, type IncludedProps, type InferredInProps, LayoutComposablePresetProvider, type LayoutComposablesFactory, type LayoutRenderProps, type LayoutResourceKey, type MakeComposable, type MakeComposableOptions, type MergeIntersection, type MergePresetProps, type MergedLayoutInProps, type NormalizeResource, type NormalizeResources, type PresetPropsFromComposable, PropError, type PropErrorOptions, type PropsContextRender, type PropsRenderDefinition, type RequiredPresetLayoutProps, type RequiredPresetRenderProps, type ResolveLayoutComposables, type ResolveLayoutProps, type ResolveLayoutPropsAsDefined, type ResolveProps, type ResolvedBuiltPropShape, type ResolvedIncludedComponentProps, type ResolvedIncludedConfigProps, type ResolvedIncludedProps, type ResolvedIncludedPropsAsDefined, type ResourceDefinition, type ResourceEnum, type ResourceLayoutComponentProps, type ResourceTree, type Show, type UnionToIntersection, collectComposablePresetEntries, createComposableComponent, createLayoutComposableFactory, createPrimitivePropBuilder, createProp, defineComposableComponent, defineResourceLayout, isPropDefinitionShape, makeComposable, normalizeResource, normalizeResources, pick, resolveComposablePresetProps, resolveLayoutComposables, resolvePropDefinitionValues, toResourceEnum, validateProps };
|
package/dist/props.d.cts
CHANGED
|
@@ -40,14 +40,24 @@ type RequiredVariant = true | 'required';
|
|
|
40
40
|
*/
|
|
41
41
|
type PropsType<Variant extends RequiredVariant = true> = Variant | 'optional';
|
|
42
42
|
type InternalPropsType = PropsType<'required'>;
|
|
43
|
+
/** Controls where an included layout prop is supplied and whether it is required there. */
|
|
44
|
+
type IncludedPropBehavior = {
|
|
45
|
+
visibility: 'optional' | 'required';
|
|
46
|
+
passthrough: 'component' | 'config';
|
|
47
|
+
};
|
|
48
|
+
type IncludedPropType = PropsType | IncludedPropBehavior;
|
|
43
49
|
/**
|
|
44
50
|
* A map of props to include in the layout.
|
|
45
51
|
*/
|
|
46
|
-
type IncludedProps<T extends object> = { [K in keyof T & string]?:
|
|
52
|
+
type IncludedProps<T extends object> = { [K in keyof T & string]?: IncludedPropType };
|
|
47
53
|
type PropsKeys<Props extends InPropsObject, T> = T & keyof Props;
|
|
48
|
-
type
|
|
49
|
-
type
|
|
54
|
+
type IncludedPropVisibility<Value> = Value extends IncludedPropBehavior ? Value['visibility'] : Value extends true | 'required' ? 'required' : Value extends 'optional' ? 'optional' : never;
|
|
55
|
+
type IncludedPropPassthrough<Value> = Value extends IncludedPropBehavior ? Value['passthrough'] : Value extends true | 'required' ? 'config' : Value extends 'optional' ? 'component' | 'config' : never;
|
|
56
|
+
type GetPropsKey<IncludeProps extends object, Visibility extends InternalPropsType, Passthrough extends IncludedPropBehavior['passthrough'] | 'render' = 'render'> = { [Key in keyof IncludeProps]: IncludedPropVisibility<IncludeProps[Key]> extends Visibility ? Passthrough extends 'render' ? Key : Passthrough extends IncludedPropPassthrough<IncludeProps[Key]> ? Key : never : never }[keyof IncludeProps];
|
|
57
|
+
type SelectedIncludedProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>, Visibility extends InternalPropsType, Passthrough extends IncludedPropBehavior['passthrough'] | 'render' = 'render'> = Pick<Props, PropsKeys<Props, GetPropsKey<IncludeProps, Visibility, Passthrough>>>;
|
|
50
58
|
type ResolvedIncludedProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional'>>>;
|
|
59
|
+
type ResolvedIncludedConfigProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required', 'config'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional', 'config'>>>;
|
|
60
|
+
type ResolvedIncludedComponentProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required', 'component'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional', 'component'>>>;
|
|
51
61
|
/**
|
|
52
62
|
* Like {@link ResolvedIncludedProps}, but keeps included prop keys exactly as
|
|
53
63
|
* declared (no `JSX.Element` capitalization).
|
|
@@ -55,5 +65,5 @@ type ResolvedIncludedProps<Props extends InPropsObject, IncludeProps extends Inc
|
|
|
55
65
|
type ResolvedIncludedPropsAsDefined<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutPropsAsDefined<SelectedIncludedProps<Props, IncludeProps, 'required'>> & Partial<ResolveLayoutPropsAsDefined<SelectedIncludedProps<Props, IncludeProps, 'optional'>>>;
|
|
56
66
|
type LayoutRenderProps<Resources extends ReadonlyArray<ResourceDefinition>, Options extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends IncludedProps<MergedLayoutInProps<Resources, Options, Composables>> = {}, CustomProps extends InPropsObject = {}> = Show<ResolveProps<CustomProps> & ResolvedIncludedProps<MergedLayoutInProps<Resources, Options, Composables>, IncludeProps>>;
|
|
57
67
|
//#endregion
|
|
58
|
-
export { InPropsDefinition, InPropsFunction, type InPropsObject, InPropsOptions, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined };
|
|
68
|
+
export { InPropsDefinition, InPropsFunction, type InPropsObject, InPropsOptions, IncludedPropBehavior, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedComponentProps, ResolvedIncludedConfigProps, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined };
|
|
59
69
|
//# sourceMappingURL=props.d.cts.map
|
package/dist/props.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.cts","names":[],"sources":["../src/props.ts"],"mappings":";;;;;;AAsBA;;;;;AAAA,KAAY,kBAAA,4CACV,KAAA,EAAO,WAAA,EACP,OAAA,EAAS,OAAA,KACN,MAAA;;;;;;;;;;;;UAaY,qBAAA,SACP,aAAA,iBACM,KAAA,SAAc,aAAA,GAAgB,YAAA,CAAa,KAAA;EAIzD,KAAA,GAAQ,KAAA;EACR,MAAA,EAAQ,kBAAA,CAAmB,WAAA,EAAa,OAAA,EAAS,MAAA;AAAA;AAAA,KAGvC,cAAA,mBACQ,aAAA,CAAc,kBAAA;EAGhC,IAAA,EAAM,kBAAA,CAAmB,IAAA;EACzB,QAAA,EAAU,eAAA,CAAgB,YAAA,CAAa,SAAA;AAAA;AAAA,KAE7B,eAAA,mBACQ,aAAA,CAAc,kBAAA,2BAEhC,KAAA,EAAO,IAAA,CAAK,cAAA,CAAe,SAAA,EAAW,IAAA,OACnC,aAAA;AAAA,KACO,iBAAA,mBACQ,aAAA,CAAc,kBAAA,KAC9B,aAAA,GAAgB,eAAA,CAAgB,SAAA;AAAA,KACxB,eAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,KAChC,OAAA,SAAgB,eAAA,CAAgB,SAAA,IAAa,UAAA,CAAW,OAAA,IAAW,OAAA;AAAA,KAC3D,mBAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,uBACd,oBAAA,IAEpB,eAAA,CAAgB,SAAA,EAAW,OAAA,UAAiB,aAAA,GACxC,eAAA,CAAgB,SAAA,EAAW,OAAA,IAAW,gBAAA,CAAiB,WAAA;AAAA,KAEjD,eAAA;;;;;KAKP,SAAA,iBAA0B,eAAA,WAA0B,OAAO;AAAA,KAC3D,iBAAA,GAAoB,SAAS;;;;
|
|
1
|
+
{"version":3,"file":"props.d.cts","names":[],"sources":["../src/props.ts"],"mappings":"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"}
|
package/dist/props.d.mts
CHANGED
|
@@ -40,14 +40,24 @@ type RequiredVariant = true | 'required';
|
|
|
40
40
|
*/
|
|
41
41
|
type PropsType<Variant extends RequiredVariant = true> = Variant | 'optional';
|
|
42
42
|
type InternalPropsType = PropsType<'required'>;
|
|
43
|
+
/** Controls where an included layout prop is supplied and whether it is required there. */
|
|
44
|
+
type IncludedPropBehavior = {
|
|
45
|
+
visibility: 'optional' | 'required';
|
|
46
|
+
passthrough: 'component' | 'config';
|
|
47
|
+
};
|
|
48
|
+
type IncludedPropType = PropsType | IncludedPropBehavior;
|
|
43
49
|
/**
|
|
44
50
|
* A map of props to include in the layout.
|
|
45
51
|
*/
|
|
46
|
-
type IncludedProps<T extends object> = { [K in keyof T & string]?:
|
|
52
|
+
type IncludedProps<T extends object> = { [K in keyof T & string]?: IncludedPropType };
|
|
47
53
|
type PropsKeys<Props extends InPropsObject, T> = T & keyof Props;
|
|
48
|
-
type
|
|
49
|
-
type
|
|
54
|
+
type IncludedPropVisibility<Value> = Value extends IncludedPropBehavior ? Value['visibility'] : Value extends true | 'required' ? 'required' : Value extends 'optional' ? 'optional' : never;
|
|
55
|
+
type IncludedPropPassthrough<Value> = Value extends IncludedPropBehavior ? Value['passthrough'] : Value extends true | 'required' ? 'config' : Value extends 'optional' ? 'component' | 'config' : never;
|
|
56
|
+
type GetPropsKey<IncludeProps extends object, Visibility extends InternalPropsType, Passthrough extends IncludedPropBehavior['passthrough'] | 'render' = 'render'> = { [Key in keyof IncludeProps]: IncludedPropVisibility<IncludeProps[Key]> extends Visibility ? Passthrough extends 'render' ? Key : Passthrough extends IncludedPropPassthrough<IncludeProps[Key]> ? Key : never : never }[keyof IncludeProps];
|
|
57
|
+
type SelectedIncludedProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>, Visibility extends InternalPropsType, Passthrough extends IncludedPropBehavior['passthrough'] | 'render' = 'render'> = Pick<Props, PropsKeys<Props, GetPropsKey<IncludeProps, Visibility, Passthrough>>>;
|
|
50
58
|
type ResolvedIncludedProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional'>>>;
|
|
59
|
+
type ResolvedIncludedConfigProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required', 'config'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional', 'config'>>>;
|
|
60
|
+
type ResolvedIncludedComponentProps<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'required', 'component'>> & Partial<ResolveLayoutProps<SelectedIncludedProps<Props, IncludeProps, 'optional', 'component'>>>;
|
|
51
61
|
/**
|
|
52
62
|
* Like {@link ResolvedIncludedProps}, but keeps included prop keys exactly as
|
|
53
63
|
* declared (no `JSX.Element` capitalization).
|
|
@@ -55,5 +65,5 @@ type ResolvedIncludedProps<Props extends InPropsObject, IncludeProps extends Inc
|
|
|
55
65
|
type ResolvedIncludedPropsAsDefined<Props extends InPropsObject, IncludeProps extends IncludedProps<Props>> = ResolveLayoutPropsAsDefined<SelectedIncludedProps<Props, IncludeProps, 'required'>> & Partial<ResolveLayoutPropsAsDefined<SelectedIncludedProps<Props, IncludeProps, 'optional'>>>;
|
|
56
66
|
type LayoutRenderProps<Resources extends ReadonlyArray<ResourceDefinition>, Options extends InPropsDefinition<Resources>, Composables extends ComposableComponents = {}, IncludeProps extends IncludedProps<MergedLayoutInProps<Resources, Options, Composables>> = {}, CustomProps extends InPropsObject = {}> = Show<ResolveProps<CustomProps> & ResolvedIncludedProps<MergedLayoutInProps<Resources, Options, Composables>, IncludeProps>>;
|
|
57
67
|
//#endregion
|
|
58
|
-
export { InPropsDefinition, InPropsFunction, type InPropsObject, InPropsOptions, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined };
|
|
68
|
+
export { InPropsDefinition, InPropsFunction, type InPropsObject, InPropsOptions, IncludedPropBehavior, IncludedProps, InferredInProps, LayoutRenderProps, MergedLayoutInProps, PropsContextRender, PropsRenderDefinition, ResolvedIncludedComponentProps, ResolvedIncludedConfigProps, ResolvedIncludedProps, ResolvedIncludedPropsAsDefined };
|
|
59
69
|
//# sourceMappingURL=props.d.mts.map
|
package/dist/props.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.mts","names":[],"sources":["../src/props.ts"],"mappings":";;;;;;AAsBA;;;;;AAAA,KAAY,kBAAA,4CACV,KAAA,EAAO,WAAA,EACP,OAAA,EAAS,OAAA,KACN,MAAA;;;;;;;;;;;;UAaY,qBAAA,SACP,aAAA,iBACM,KAAA,SAAc,aAAA,GAAgB,YAAA,CAAa,KAAA;EAIzD,KAAA,GAAQ,KAAA;EACR,MAAA,EAAQ,kBAAA,CAAmB,WAAA,EAAa,OAAA,EAAS,MAAA;AAAA;AAAA,KAGvC,cAAA,mBACQ,aAAA,CAAc,kBAAA;EAGhC,IAAA,EAAM,kBAAA,CAAmB,IAAA;EACzB,QAAA,EAAU,eAAA,CAAgB,YAAA,CAAa,SAAA;AAAA;AAAA,KAE7B,eAAA,mBACQ,aAAA,CAAc,kBAAA,2BAEhC,KAAA,EAAO,IAAA,CAAK,cAAA,CAAe,SAAA,EAAW,IAAA,OACnC,aAAA;AAAA,KACO,iBAAA,mBACQ,aAAA,CAAc,kBAAA,KAC9B,aAAA,GAAgB,eAAA,CAAgB,SAAA;AAAA,KACxB,eAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,KAChC,OAAA,SAAgB,eAAA,CAAgB,SAAA,IAAa,UAAA,CAAW,OAAA,IAAW,OAAA;AAAA,KAC3D,mBAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,uBACd,oBAAA,IAEpB,eAAA,CAAgB,SAAA,EAAW,OAAA,UAAiB,aAAA,GACxC,eAAA,CAAgB,SAAA,EAAW,OAAA,IAAW,gBAAA,CAAiB,WAAA;AAAA,KAEjD,eAAA;;;;;KAKP,SAAA,iBAA0B,eAAA,WAA0B,OAAO;AAAA,KAC3D,iBAAA,GAAoB,SAAS;;;;
|
|
1
|
+
{"version":3,"file":"props.d.mts","names":[],"sources":["../src/props.ts"],"mappings":"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"}
|