@jfdevelops/react-layout 0.25.0 → 1.0.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.
- package/dist/create-config/create-defined-resource-layout.cjs +42 -37
- package/dist/create-config/create-defined-resource-layout.cjs.map +1 -1
- package/dist/create-config/create-defined-resource-layout.d.cts +64 -44
- package/dist/create-config/create-defined-resource-layout.d.cts.map +1 -1
- package/dist/create-config/create-defined-resource-layout.d.mts +64 -44
- package/dist/create-config/create-defined-resource-layout.d.mts.map +1 -1
- package/dist/create-config/create-defined-resource-layout.mjs +44 -39
- package/dist/create-config/create-defined-resource-layout.mjs.map +1 -1
- package/dist/create-config/define-layout.cjs +12 -1
- package/dist/create-config/define-layout.cjs.map +1 -1
- package/dist/create-config/define-layout.d.cts +20 -8
- package/dist/create-config/define-layout.d.cts.map +1 -1
- package/dist/create-config/define-layout.d.mts +20 -8
- package/dist/create-config/define-layout.d.mts.map +1 -1
- package/dist/create-config/define-layout.mjs +13 -3
- package/dist/create-config/define-layout.mjs.map +1 -1
- package/dist/create-config/get-component.cjs +22 -1
- package/dist/create-config/get-component.cjs.map +1 -1
- package/dist/create-config/get-component.d.cts +25 -3
- package/dist/create-config/get-component.d.cts.map +1 -1
- package/dist/create-config/get-component.d.mts +25 -3
- package/dist/create-config/get-component.d.mts.map +1 -1
- package/dist/create-config/get-component.mjs +22 -1
- package/dist/create-config/get-component.mjs.map +1 -1
- package/dist/create-config/index.d.cts +3 -3
- package/dist/create-config/index.d.mts +3 -3
- package/dist/create-config/render-state.cjs +1 -14
- package/dist/create-config/render-state.cjs.map +1 -1
- package/dist/create-config/render-state.d.cts +33 -18
- package/dist/create-config/render-state.d.cts.map +1 -1
- package/dist/create-config/render-state.d.mts +33 -18
- package/dist/create-config/render-state.d.mts.map +1 -1
- package/dist/create-config/render-state.mjs +1 -14
- package/dist/create-config/render-state.mjs.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +5 -5
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +2 -2
- package/dist/resource.cjs +17 -0
- package/dist/resource.cjs.map +1 -1
- package/dist/resource.d.cts +27 -1
- package/dist/resource.d.cts.map +1 -1
- package/dist/resource.d.mts +27 -1
- package/dist/resource.d.mts.map +1 -1
- package/dist/resource.mjs +17 -1
- package/dist/resource.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-defined-resource-layout.mjs","names":[],"sources":["../../src/create-config/create-defined-resource-layout.ts"],"sourcesContent":["import type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport { LayoutConfigurationError } from '../errors';\nimport type { InPropsDefinition, InPropsObject } from '../props';\nimport type {\n IncludedComponentPropDefinitions,\n MergedLayoutInProps,\n} from '../props';\nimport type { ResourceDefinition } from '../resource';\nimport {\n type CreateViewMapOptions,\n type CreateViewMapBuiltInRenderStatesOptions,\n type CreateViewMapFunctionRenderOptions,\n type DefinedResourceLayout,\n defineResourceLayout,\n type LayoutDefinition,\n type LayoutIncludeProps,\n type TypedBuiltInRenderStates,\n} from './define-layout';\nimport {\n createLazyResourceLayout,\n type LazyResourceLayoutOptions,\n type LazyResourceStates,\n} from './lazy-resource-layout';\nimport {\n createLayoutBuildingBlocks,\n type CreateLayoutBuildingBlocks,\n} from './render-state';\n\n/** A resource tuple with at least one entry, preserving literal and nested paths. */\nexport type NonEmptyResources = readonly [\n ResourceDefinition,\n ...ResourceDefinition[],\n];\n\n/**\n * The portion of a resource-layout definition accepted after resources and\n * options have been bound by {@link createDefinedResourceLayout}.\n */\nexport type DefinedResourceLayoutInput<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, Options, Composables>,\n CustomProps extends InPropsObject,\n Render,\n> = Omit<\n CreateViewMapOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps,\n Render\n >,\n 'options' | 'resources'\n>;\n\n/**\n * A `defineResourceLayout` function bound to one resource tuple and option\n * definition. Callers only provide the layout; `.lazy` instead creates a\n * type-preserving proxy around a named module export.\n */\nexport type BoundDefineResourceLayout<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n> = {\n <\n Composables extends ComposableComponents = {},\n const IncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables\n > = {},\n CustomProps extends InPropsObject = {},\n >(\n definition: Omit<\n CreateViewMapFunctionRenderOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps\n >,\n 'options' | 'resources'\n >,\n ): DefinedResourceLayout<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps,\n {}\n >;\n <\n Composables extends ComposableComponents = {},\n const IncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables\n > = {},\n CustomProps extends InPropsObject = {},\n DefaultComposables extends ComposableComponents = {},\n const DefaultIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & DefaultComposables\n > = {},\n DefaultCustomProps extends InPropsObject = {},\n LoadingComposables extends ComposableComponents = {},\n const LoadingIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & LoadingComposables\n > = {},\n LoadingCustomProps extends InPropsObject = {},\n ErrorComposables extends ComposableComponents = {},\n const ErrorIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & ErrorComposables\n > = {},\n ErrorCustomProps extends InPropsObject = {},\n NotFoundComposables extends ComposableComponents = {},\n const NotFoundIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & NotFoundComposables\n > = {},\n NotFoundCustomProps extends InPropsObject = {},\n const RenderStates extends { default: unknown } & Record<\n string,\n unknown\n > = { default: unknown },\n >(\n definition: Omit<\n CreateViewMapBuiltInRenderStatesOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps,\n TypedBuiltInRenderStates<\n Resources,\n Options,\n Composables,\n DefaultComposables,\n DefaultIncludeProps,\n DefaultCustomProps,\n LoadingComposables,\n LoadingIncludeProps,\n LoadingCustomProps,\n ErrorComposables,\n ErrorIncludeProps,\n ErrorCustomProps,\n NotFoundComposables,\n NotFoundIncludeProps,\n NotFoundCustomProps\n > &\n RenderStates\n >,\n 'options' | 'resources'\n >,\n ): DefinedResourceLayout<\n Resources,\n Options,\n Composables &\n DefaultComposables &\n LoadingComposables &\n ErrorComposables &\n NotFoundComposables,\n DefaultIncludeProps &\n LoadingIncludeProps &\n ErrorIncludeProps &\n NotFoundIncludeProps,\n DefaultCustomProps &\n IncludedComponentPropDefinitions<\n MergedLayoutInProps<\n Resources,\n Options,\n Composables & DefaultComposables\n >,\n DefaultIncludeProps\n >,\n RenderStates\n >;\n lazy<Module extends Record<string, unknown>>(\n options: LazyResourceLayoutOptions<Resources, Module>,\n ): ReturnType<typeof createLazyResourceLayout<Resources, Module>>;\n};\n\n/**\n * Registers shared loading and module-error components for lazy resource\n * layouts. Defaults must be registered before the first `.lazy` call.\n */\nexport type DefineLazyDefaults = (defaults: LazyResourceStates) => void;\n\n/**\n * Binds option definitions to the complete builder. Those option keys then\n * become available to every render state's `props.include` declaration.\n */\nexport type DefineOptions<Resources extends NonEmptyResources> = <\n const Options extends InPropsDefinition<Resources>,\n>(\n options: Options,\n) => DefinedResourceLayoutBuilder<Resources, Options>;\n\n/**\n * Self-contained helpers for defining one family of resource layouts across\n * multiple files while retaining its resource and option types.\n */\nexport type DefinedResourceLayoutBuilder<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n> = CreateLayoutBuildingBlocks<Resources, Options> & {\n defineLazyDefaults: DefineLazyDefaults;\n defineOptions: DefineOptions<Resources>;\n defineResourceLayout: BoundDefineResourceLayout<Resources, Options>;\n resources: Resources;\n};\n\n/** The initial builder returned before option definitions are bound. */\nexport type CreateDefinedResourceLayoutResult<\n Resources extends NonEmptyResources,\n> = DefinedResourceLayoutBuilder<Resources, {}>;\n\ntype CreateBuilderArguments<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n> = {\n options: Options;\n resources: Resources;\n};\n\nfunction createBuilder<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n>(\n arguments_: CreateBuilderArguments<Resources, Options>,\n): DefinedResourceLayoutBuilder<Resources, Options> {\n const { options, resources } = arguments_;\n const buildingBlocks = createLayoutBuildingBlocks({ options, resources });\n const defineBoundLayout = defineResourceLayout.forResources(...resources);\n let lazyDefaults: LazyResourceStates = {};\n let lazyDefaultsDefined = false;\n let lazyLayoutCreated = false;\n\n function defineLazyDefaults(defaults: LazyResourceStates): void {\n if (lazyDefaultsDefined) {\n throw new LayoutConfigurationError(\n 'Lazy resource defaults can only be defined once.',\n );\n }\n\n if (lazyLayoutCreated) {\n throw new LayoutConfigurationError(\n 'Lazy resource defaults must be defined before creating a lazy resource layout.',\n );\n }\n\n lazyDefaults = defaults;\n lazyDefaultsDefined = true;\n }\n\n const boundDefineResourceLayout = ((definition: Record<string, unknown>) =>\n defineBoundLayout({\n ...definition,\n options,\n } as never)) as unknown as BoundDefineResourceLayout<Resources, Options>;\n\n boundDefineResourceLayout.lazy = <Module extends Record<string, unknown>>(\n lazyOptions: LazyResourceLayoutOptions<Resources, Module>,\n ): ReturnType<typeof createLazyResourceLayout<Resources, Module>> => {\n lazyLayoutCreated = true;\n\n return createLazyResourceLayout(lazyOptions, lazyDefaults);\n };\n\n function defineOptions<\n const DefinedOptions extends InPropsDefinition<Resources>,\n >(\n definedOptions: DefinedOptions,\n ): DefinedResourceLayoutBuilder<Resources, DefinedOptions> {\n return createBuilder({ options: definedOptions, resources });\n }\n\n return {\n ...buildingBlocks,\n defineLazyDefaults,\n defineOptions,\n defineResourceLayout: boundDefineResourceLayout,\n resources,\n };\n}\n\n/**\n * Binds a literal resource tuple once and returns reusable, type-linked layout\n * helpers. Chain `.defineOptions(options)` when states need to include shared\n * option props.\n *\n * @example\n * ```tsx\n * const { createRenderState, defineResourceLayout } =\n * createDefinedResourceLayout('users').defineOptions({\n * title: createProp.string(),\n * });\n * ```\n */\nexport function createDefinedResourceLayout<\n const Resources extends NonEmptyResources,\n>(...resources: Resources): CreateDefinedResourceLayoutResult<Resources> {\n return createBuilder({ options: {}, resources });\n}\n"],"mappings":";;;;;;AAyOA,SAAS,cAIP,YACkD;CAClD,MAAM,EAAE,SAAS,cAAc;CAC/B,MAAM,iBAAiB,2BAA2B;EAAE;EAAS;CAAU,CAAC;CACxE,MAAM,oBAAoB,qBAAqB,aAAa,GAAG,SAAS;CACxE,IAAI,eAAmC,CAAC;CACxC,IAAI,sBAAsB;CAC1B,IAAI,oBAAoB;CAExB,SAAS,mBAAmB,UAAoC;EAC9D,IAAI,qBACF,MAAM,IAAI,yBACR,kDACF;EAGF,IAAI,mBACF,MAAM,IAAI,yBACR,gFACF;EAGF,eAAe;EACf,sBAAsB;CACxB;CAEA,MAAM,8BAA8B,eAClC,kBAAkB;EAChB,GAAG;EACH;CACF,CAAU;CAEZ,0BAA0B,QACxB,gBACmE;EACnE,oBAAoB;EAEpB,OAAO,yBAAyB,aAAa,YAAY;CAC3D;CAEA,SAAS,cAGP,gBACyD;EACzD,OAAO,cAAc;GAAE,SAAS;GAAgB;EAAU,CAAC;CAC7D;CAEA,OAAO;EACL,GAAG;EACH;EACA;EACA,sBAAsB;EACtB;CACF;AACF;;;;;;;;;;;;;;AAeA,SAAgB,4BAEd,GAAG,WAAoE;CACvE,OAAO,cAAc;EAAE,SAAS,CAAC;EAAG;CAAU,CAAC;AACjD"}
|
|
1
|
+
{"version":3,"file":"create-defined-resource-layout.mjs","names":[],"sources":["../../src/create-config/create-defined-resource-layout.ts"],"sourcesContent":["import type { ComposableComponents } from '@jfdevelops/react-layout-composables';\nimport { LayoutConfigurationError } from '../errors';\nimport type { InPropsDefinition, InPropsObject } from '../props';\nimport type {\n IncludedComponentPropDefinitions,\n MergedLayoutInProps,\n} from '../props';\nimport type { ResourceDefinition } from '../resource';\nimport {\n type CreateViewMapBuiltInRenderStatesOptions,\n type CreateViewMapFunctionRenderOptions,\n type DefinedResourceLayout,\n defineResourceLayout,\n type LayoutIncludeProps,\n type LayoutResourcesAccessor,\n type TypedBuiltInRenderStates,\n createLayoutResourcesAccessor,\n} from './define-layout';\nimport {\n createLazyResourceLayout,\n type LazyResourceLayoutOptions,\n type LazyResourceStates,\n} from './lazy-resource-layout';\nimport {\n createRenderStateBuilder,\n type CreateRenderState,\n type LayoutComposablesDefinition,\n} from './render-state';\n\n/** A resource tuple with at least one entry, preserving literal and nested paths. */\nexport type NonEmptyResources = readonly [\n ResourceDefinition,\n ...ResourceDefinition[],\n];\n\n/** Configuration shared by every layout created from one defined-layout factory. */\nexport type CreateDefinedResourceLayoutOptions<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n> = {\n /** Resources supported by every layout created from this factory. */\n resources: Resources;\n /** Props that render states can opt into through `props.include`. */\n options?: Options;\n /** Layout-wide composables available to every render state. */\n composables?: LayoutComposablesDefinition<Resources, Composables>;\n};\n\n/** The flat layout definition accepted after shared configuration is bound. */\nexport type DefinedResourceLayoutInput<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n IncludeProps extends LayoutIncludeProps<Resources, Options, Composables>,\n CustomProps extends InPropsObject,\n Render,\n> = Omit<\n CreateViewMapFunctionRenderOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps\n >['layout'],\n 'composables' | 'render'\n> & { render: Render };\n\n/** A `defineResourceLayout` function with its shared configuration pre-bound. */\nexport type BoundDefineResourceLayout<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n> = {\n /** Defines a layout whose `render` value is a single default-state callback. */\n <\n const IncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables\n > = {},\n CustomProps extends InPropsObject = {},\n >(\n layout: Omit<\n CreateViewMapFunctionRenderOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps\n >['layout'],\n 'composables'\n >,\n ): DefinedResourceLayout<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps,\n {}\n >;\n /**\n * Defines a layout whose `render` map contains the required `default` state\n * and any built-in or custom compound component states.\n */\n <\n const IncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables\n > = {},\n CustomProps extends InPropsObject = {},\n DefaultComposables extends ComposableComponents = {},\n const DefaultIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & DefaultComposables\n > = {},\n DefaultCustomProps extends InPropsObject = {},\n LoadingComposables extends ComposableComponents = {},\n const LoadingIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & LoadingComposables\n > = {},\n LoadingCustomProps extends InPropsObject = {},\n ErrorComposables extends ComposableComponents = {},\n const ErrorIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & ErrorComposables\n > = {},\n ErrorCustomProps extends InPropsObject = {},\n NotFoundComposables extends ComposableComponents = {},\n const NotFoundIncludeProps extends LayoutIncludeProps<\n Resources,\n Options,\n Composables & NotFoundComposables\n > = {},\n NotFoundCustomProps extends InPropsObject = {},\n const RenderStates extends { default: unknown } & Record<string, unknown> = {\n default: unknown;\n },\n >(\n layout: Omit<\n CreateViewMapBuiltInRenderStatesOptions<\n Resources,\n Options,\n Composables,\n IncludeProps,\n CustomProps,\n TypedBuiltInRenderStates<\n Resources,\n Options,\n Composables,\n DefaultComposables,\n DefaultIncludeProps,\n DefaultCustomProps,\n LoadingComposables,\n LoadingIncludeProps,\n LoadingCustomProps,\n ErrorComposables,\n ErrorIncludeProps,\n ErrorCustomProps,\n NotFoundComposables,\n NotFoundIncludeProps,\n NotFoundCustomProps\n > & RenderStates\n >['layout'],\n 'composables'\n >,\n ): DefinedResourceLayout<\n Resources,\n Options,\n Composables &\n DefaultComposables &\n LoadingComposables &\n ErrorComposables &\n NotFoundComposables,\n DefaultIncludeProps &\n LoadingIncludeProps &\n ErrorIncludeProps &\n NotFoundIncludeProps,\n DefaultCustomProps &\n IncludedComponentPropDefinitions<\n MergedLayoutInProps<\n Resources,\n Options,\n Composables & DefaultComposables\n >,\n DefaultIncludeProps\n >,\n RenderStates\n >;\n /**\n * Creates a lazy proxy for the single library-defined component exported by\n * a resource module.\n *\n * @param options - Resource path and named-module import callback.\n */\n lazy<Module extends Record<string, unknown>>(\n options: LazyResourceLayoutOptions<Resources, Module>,\n ): ReturnType<typeof createLazyResourceLayout<Resources, Module>>;\n};\n\n/** Registers loading and module-error components used by lazy layouts. */\nexport type DefineLazyDefaults = {\n /**\n * Sets defaults once, before the factory creates its first lazy layout.\n *\n * @param defaults - Shared components for pending module loads and failures.\n */\n (defaults: LazyResourceStates): void;\n};\n\n/** Reusable helpers produced by {@link createDefinedResourceLayout}. */\nexport type CreateDefinedResourceLayoutResult<\n Resources extends NonEmptyResources,\n Options extends InPropsDefinition<Resources>,\n Composables extends ComposableComponents,\n> = {\n /** Creates eager, deferred, or separately imported render-state fragments. */\n createRenderState: CreateRenderState<Resources, Options, Composables>;\n /** Sets the shared loading and module-error UI used by lazy layouts. */\n defineLazyDefaults: DefineLazyDefaults;\n /** Defines a layout using the resources, options, and composables already bound. */\n defineResourceLayout: BoundDefineResourceLayout<\n Resources,\n Options,\n Composables\n >;\n /** Reads, selects, or validates the resources bound to this factory. */\n resources: LayoutResourcesAccessor<Resources>;\n};\n\n/**\n * Creates type-linked layout helpers from one shared configuration. The returned\n * `defineResourceLayout` accepts the layout directly, while `createRenderState`\n * carries the same resource and option types across file boundaries.\n *\n * @param configuration - Resources and optional shared props/composables to\n * bind to every returned helper.\n * @returns Helpers that share the configuration's inferred literal types.\n *\n * @example\n * ```tsx\n * const { createRenderState, defineResourceLayout } =\n * createDefinedResourceLayout({\n * resources: ['users'],\n * options: { title: createProp.string() },\n * });\n *\n * const Loading = createRenderState({\n * state: 'Loading',\n * props: { include: { title: true } },\n * render: ({ title }) => <p>Loading {title}</p>,\n * });\n *\n * export const usersLayout = defineResourceLayout({\n * render: { default: () => <Users />, ...Loading },\n * });\n * ```\n */\nexport function createDefinedResourceLayout<\n const Resources extends NonEmptyResources,\n const Options extends InPropsDefinition<Resources> = {},\n Composables extends ComposableComponents = {},\n>(\n configuration: CreateDefinedResourceLayoutOptions<\n Resources,\n Options,\n Composables\n >,\n): CreateDefinedResourceLayoutResult<Resources, Options, Composables> {\n const { resources, options = {} as Options, composables } = configuration;\n const defineBoundLayout = defineResourceLayout.forResources(...resources);\n let lazyDefaults: LazyResourceStates = {};\n let lazyDefaultsDefined = false;\n let lazyLayoutCreated = false;\n\n function defineLazyDefaults(defaults: LazyResourceStates): void {\n if (lazyDefaultsDefined) {\n throw new LayoutConfigurationError(\n 'Lazy resource defaults can only be defined once.',\n );\n }\n\n if (lazyLayoutCreated) {\n throw new LayoutConfigurationError(\n 'Lazy resource defaults must be defined before creating a lazy resource layout.',\n );\n }\n\n lazyDefaults = defaults;\n lazyDefaultsDefined = true;\n }\n\n const boundDefineResourceLayout = ((layout: Record<string, unknown>) =>\n defineBoundLayout({\n options,\n layout: { ...layout, composables },\n } as never)) as unknown as BoundDefineResourceLayout<\n Resources,\n Options,\n Composables\n >;\n\n boundDefineResourceLayout.lazy = <Module extends Record<string, unknown>>(\n lazyOptions: LazyResourceLayoutOptions<Resources, Module>,\n ): ReturnType<typeof createLazyResourceLayout<Resources, Module>> => {\n lazyLayoutCreated = true;\n return createLazyResourceLayout(lazyOptions, lazyDefaults);\n };\n\n return {\n createRenderState: createRenderStateBuilder({\n composables,\n options,\n resources,\n }),\n defineLazyDefaults,\n defineResourceLayout: boundDefineResourceLayout,\n resources: createLayoutResourcesAccessor(resources),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuQA,SAAgB,4BAKd,eAKoE;CACpE,MAAM,EAAE,WAAW,UAAU,CAAC,GAAc,gBAAgB;CAC5D,MAAM,oBAAoB,qBAAqB,aAAa,GAAG,SAAS;CACxE,IAAI,eAAmC,CAAC;CACxC,IAAI,sBAAsB;CAC1B,IAAI,oBAAoB;CAExB,SAAS,mBAAmB,UAAoC;EAC9D,IAAI,qBACF,MAAM,IAAI,yBACR,kDACF;EAGF,IAAI,mBACF,MAAM,IAAI,yBACR,gFACF;EAGF,eAAe;EACf,sBAAsB;CACxB;CAEA,MAAM,8BAA8B,WAClC,kBAAkB;EAChB;EACA,QAAQ;GAAE,GAAG;GAAQ;EAAY;CACnC,CAAU;CAMZ,0BAA0B,QACxB,gBACmE;EACnE,oBAAoB;EACpB,OAAO,yBAAyB,aAAa,YAAY;CAC3D;CAEA,OAAO;EACL,mBAAmB,yBAAyB;GAC1C;GACA;GACA;EACF,CAAC;EACD;EACA,sBAAsB;EACtB,WAAW,8BAA8B,SAAS;CACpD;AACF"}
|
|
@@ -41,8 +41,18 @@ function createResourceSelection(definitions) {
|
|
|
41
41
|
selection.isResource = require_resource.createIsValidResourceFn(definitions);
|
|
42
42
|
return selection;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates the callable resource accessor shared by global and bound layout
|
|
46
|
+
* definitions.
|
|
47
|
+
*
|
|
48
|
+
* @param resources - Resource definitions to expose and normalize.
|
|
49
|
+
* @returns A callable normalized accessor with raw, selection, and guard APIs.
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
44
52
|
function createLayoutResourcesAccessor(resources) {
|
|
45
|
-
const
|
|
53
|
+
const normalizedResources = require_resource.normalizeResourceDefinitions(resources);
|
|
54
|
+
const accessor = ((select) => select ? select(normalizedResources) : normalizedResources);
|
|
55
|
+
accessor.raw = ((select) => select ? select(resources) : resources);
|
|
46
56
|
accessor.isResource = require_resource.createIsValidResourceFn(resources);
|
|
47
57
|
accessor.omit = ((...keys) => createResourceSelection(resources.filter((resource) => !keys.includes(readResourceSlug(resource)))));
|
|
48
58
|
accessor.pick = ((...keys) => createResourceSelection(resources.filter((resource) => keys.includes(readResourceSlug(resource)))));
|
|
@@ -624,5 +634,6 @@ const defineResourceLayout = Object.assign(defineResourceLayoutImpl, {
|
|
|
624
634
|
});
|
|
625
635
|
|
|
626
636
|
//#endregion
|
|
637
|
+
exports.createLayoutResourcesAccessor = createLayoutResourcesAccessor;
|
|
627
638
|
exports.defineResourceLayout = defineResourceLayout;
|
|
628
639
|
//# sourceMappingURL=define-layout.cjs.map
|