Просмотр исходного кода

docs(dashboard): Update documentation for various interfaces

David Höck 6 месяцев назад
Родитель
Сommit
6bc1ae375f

+ 9 - 2
docs/docs/reference/dashboard/components/detail-page.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DetailPage
 ## DetailPage
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/detail-page.tsx" sourceLine="90" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/detail-page.tsx" sourceLine="124" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -32,12 +32,13 @@ Parameters
 
 
 ## DetailPageProps
 ## DetailPageProps
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/detail-page.tsx" sourceLine="34" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/detail-page.tsx" sourceLine="39" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
 ```ts title="Signature"
 ```ts title="Signature"
 interface DetailPageProps<T extends TypedDocumentNode<any, any>, C extends TypedDocumentNode<any, any>, U extends TypedDocumentNode<any, any>, EntityField extends keyof ResultOf<T> = DetailEntityPath<T>> {
 interface DetailPageProps<T extends TypedDocumentNode<any, any>, C extends TypedDocumentNode<any, any>, U extends TypedDocumentNode<any, any>, EntityField extends keyof ResultOf<T> = DetailEntityPath<T>> {
+    entityName?: string;
     pageId: string;
     pageId: string;
     route: AnyRoute;
     route: AnyRoute;
     title: (entity: ResultOf<T>[EntityField]) => string;
     title: (entity: ResultOf<T>[EntityField]) => string;
@@ -50,6 +51,12 @@ interface DetailPageProps<T extends TypedDocumentNode<any, any>, C extends Typed
 
 
 <div className="members-wrapper">
 <div className="members-wrapper">
 
 
+### entityName
+
+<MemberInfo kind="property" type={`string`}   />
+
+The name of the entity.
+If not provided, it will be inferred from the query document.
 ### pageId
 ### pageId
 
 
 <MemberInfo kind="property" type={`string`}   />
 <MemberInfo kind="property" type={`string`}   />

+ 8 - 6
docs/docs/reference/dashboard/components/list-page.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ListPage
 ## ListPage
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="78" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="73" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -30,7 +30,7 @@ Parameters
 
 
 ## ListPageProps
 ## ListPageProps
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="42" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="35" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -45,9 +45,11 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
     onSearchTermChange?: (searchTerm: string) => NonNullable<V['options']>['filter'];
     onSearchTermChange?: (searchTerm: string) => NonNullable<V['options']>['filter'];
     customizeColumns?: CustomizeColumnConfig<T>;
     customizeColumns?: CustomizeColumnConfig<T>;
     additionalColumns?: AC;
     additionalColumns?: AC;
-    defaultColumnOrder?: (keyof ListQueryFields<T> | keyof AC)[];
+    defaultColumnOrder?: (keyof ListQueryFields<T> | keyof AC | CustomFieldKeysOfItem<ListQueryFields<T>>)[];
     defaultSort?: SortingState;
     defaultSort?: SortingState;
-    defaultVisibility?: Partial<Record<keyof ListQueryFields<T> | keyof AC, boolean>>;
+    defaultVisibility?: Partial<
+        Record<keyof ListQueryFields<T> | keyof AC | CustomFieldKeysOfItem<ListQueryFields<T>>, boolean>
+    >;
     children?: React.ReactNode;
     children?: React.ReactNode;
     facetedFilters?: FacetedFilterConfig<T>;
     facetedFilters?: FacetedFilterConfig<T>;
     rowActions?: RowAction<ListQueryFields<T>>[];
     rowActions?: RowAction<ListQueryFields<T>>[];
@@ -105,7 +107,7 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
 
 
 ### defaultColumnOrder
 ### defaultColumnOrder
 
 
-<MemberInfo kind="property" type={`(keyof ListQueryFields&#60;T&#62; | keyof AC)[]`}   />
+<MemberInfo kind="property" type={`(keyof ListQueryFields&#60;T&#62; | keyof AC | CustomFieldKeysOfItem&#60;ListQueryFields&#60;T&#62;&#62;)[]`}   />
 
 
 
 
 ### defaultSort
 ### defaultSort
@@ -115,7 +117,7 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
 
 
 ### defaultVisibility
 ### defaultVisibility
 
 
-<MemberInfo kind="property" type={`Partial&#60;Record&#60;keyof ListQueryFields&#60;T&#62; | keyof AC, boolean&#62;&#62;`}   />
+<MemberInfo kind="property" type={`Partial&#60;         Record&#60;keyof ListQueryFields&#60;T&#62; | keyof AC | CustomFieldKeysOfItem&#60;ListQueryFields&#60;T&#62;&#62;, boolean&#62;     &#62;`}   />
 
 
 
 
 ### children
 ### children

+ 1 - 1
docs/docs/reference/dashboard/extensions/dashboard-action-bar-item.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DashboardActionBarItem
 ## DashboardActionBarItem
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="30" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="51" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 

+ 39 - 0
docs/docs/reference/dashboard/extensions/dashboard-custom-form-component.md

@@ -0,0 +1,39 @@
+---
+title: "DashboardCustomFormComponent"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardCustomFormComponent
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="18" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to define custom form components for custom fields in the dashboard.
+
+```ts title="Signature"
+interface DashboardCustomFormComponent {
+    id: string;
+    component: React.FunctionComponent<CustomFormComponentInputProps>;
+}
+```
+
+<div className="members-wrapper">
+
+### id
+
+<MemberInfo kind="property" type={`string`}   />
+
+
+### component
+
+<MemberInfo kind="property" type={`React.FunctionComponent&#60;CustomFormComponentInputProps&#62;`}   />
+
+
+
+
+</div>

+ 13 - 1
docs/docs/reference/dashboard/extensions/dashboard-extension.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DashboardExtension
 ## DashboardExtension
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="100" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="121" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -20,10 +20,12 @@ This is used to define the routes, widgets, etc. that will be displayed in the d
 ```ts title="Signature"
 ```ts title="Signature"
 interface DashboardExtension {
 interface DashboardExtension {
     routes?: DashboardRouteDefinition[];
     routes?: DashboardRouteDefinition[];
+    navSections?: DashboardNavSectionDefinition[];
     pageBlocks?: DashboardPageBlockDefinition[];
     pageBlocks?: DashboardPageBlockDefinition[];
     actionBarItems?: DashboardActionBarItem[];
     actionBarItems?: DashboardActionBarItem[];
     alerts?: DashboardAlertDefinition[];
     alerts?: DashboardAlertDefinition[];
     widgets?: DashboardWidgetDefinition[];
     widgets?: DashboardWidgetDefinition[];
+    customFormComponents?: DashboardCustomFormComponent[];
 }
 }
 ```
 ```
 
 
@@ -34,6 +36,11 @@ interface DashboardExtension {
 <MemberInfo kind="property" type={`DashboardRouteDefinition[]`}   />
 <MemberInfo kind="property" type={`DashboardRouteDefinition[]`}   />
 
 
 Allows you to define custom routes such as list or detail views.
 Allows you to define custom routes such as list or detail views.
+### navSections
+
+<MemberInfo kind="property" type={`DashboardNavSectionDefinition[]`}   />
+
+Allows you to define custom nav sections for the dashboard.
 ### pageBlocks
 ### pageBlocks
 
 
 <MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-page-block-definition#dashboardpageblockdefinition'>DashboardPageBlockDefinition</a>[]`}   />
 <MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-page-block-definition#dashboardpageblockdefinition'>DashboardPageBlockDefinition</a>[]`}   />
@@ -55,6 +62,11 @@ Not yet implemented
 
 
 Allows you to define custom routes for the dashboard, which will render the
 Allows you to define custom routes for the dashboard, which will render the
 given components and optionally also add a nav menu item.
 given components and optionally also add a nav menu item.
+### customFormComponents
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-custom-form-component#dashboardcustomformcomponent'>DashboardCustomFormComponent</a>[]`}   />
+
+Allows you to define custom form components for custom fields in the dashboard.
 
 
 
 
 </div>
 </div>

+ 1 - 1
docs/docs/reference/dashboard/extensions/dashboard-page-block-definition.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DashboardPageBlockDefinition
 ## DashboardPageBlockDefinition
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="83" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="104" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 

+ 1 - 1
docs/docs/reference/dashboard/extensions/define-dashboard-extension.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## defineDashboardExtension
 ## defineDashboardExtension
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/define-dashboard-extension.ts" sourceLine="35" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/define-dashboard-extension.ts" sourceLine="36" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 

+ 1 - 1
docs/docs/reference/dashboard/extensions/page-block-location.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## PageBlockLocation
 ## PageBlockLocation
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="67" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="88" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 

+ 10 - 3
docs/docs/reference/dashboard/hooks/use-detail-page.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## useDetailPage
 ## useDetailPage
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="216" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="224" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -89,7 +89,7 @@ Parameters
 
 
 ## DetailPageOptions
 ## DetailPageOptions
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="37" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="39" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 
@@ -100,6 +100,7 @@ interface DetailPageOptions<T extends TypedDocumentNode<any, any>, C extends Typ
     params: {
     params: {
         id: string;
         id: string;
     };
     };
+    entityName: string;
     createDocument?: C;
     createDocument?: C;
     updateDocument?: U;
     updateDocument?: U;
     setValuesForUpdate: (entity: NonNullable<ResultOf<T>[EntityField]>) => VariablesOf<U>[VarNameUpdate];
     setValuesForUpdate: (entity: NonNullable<ResultOf<T>[EntityField]>) => VariablesOf<U>[VarNameUpdate];
@@ -127,6 +128,12 @@ The field of the query document that contains the entity.
 <MemberInfo kind="property" type={`{         id: string;     }`}   />
 <MemberInfo kind="property" type={`{         id: string;     }`}   />
 
 
 The parameters used to identify the entity.
 The parameters used to identify the entity.
+### entityName
+
+<MemberInfo kind="property" type={`string`}   />
+
+The entity type name for custom field configuration lookup.
+Required to filter out readonly custom fields before mutations.
 ### createDocument
 ### createDocument
 
 
 <MemberInfo kind="property" type={`C`}   />
 <MemberInfo kind="property" type={`C`}   />
@@ -169,7 +176,7 @@ The function to call when the update is successful.
 
 
 ## UseDetailPageResult
 ## UseDetailPageResult
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="133" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="141" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 **Status: Developer Preview**
 **Status: Developer Preview**
 
 

+ 2 - 2
docs/docs/reference/typescript-api/services/product-option-group-service.md

@@ -19,7 +19,7 @@ Contains methods relating to <a href='/reference/typescript-api/entities/product
 class ProductOptionGroupService {
 class ProductOptionGroupService {
     constructor(connection: TransactionalConnection, translatableSaver: TranslatableSaver, customFieldRelationService: CustomFieldRelationService, productOptionService: ProductOptionService, eventBus: EventBus, translator: TranslatorService)
     constructor(connection: TransactionalConnection, translatableSaver: TranslatableSaver, customFieldRelationService: CustomFieldRelationService, productOptionService: ProductOptionService, eventBus: EventBus, translator: TranslatorService)
     findAll(ctx: RequestContext, filterTerm?: string, relations?: RelationPaths<ProductOptionGroup>) => Promise<Array<Translated<ProductOptionGroup>>>;
     findAll(ctx: RequestContext, filterTerm?: string, relations?: RelationPaths<ProductOptionGroup>) => Promise<Array<Translated<ProductOptionGroup>>>;
-    findOne(ctx: RequestContext, id: ID, relations?: RelationPaths<ProductOptionGroup>) => Promise<Translated<ProductOptionGroup> | undefined>;
+    findOne(ctx: RequestContext, id: ID, relations?: RelationPaths<ProductOptionGroup>, findOneOptions?: { includeSoftDeleted: boolean }) => Promise<Translated<ProductOptionGroup> | undefined>;
     getOptionGroupsByProductId(ctx: RequestContext, id: ID) => Promise<Array<Translated<ProductOptionGroup>>>;
     getOptionGroupsByProductId(ctx: RequestContext, id: ID) => Promise<Array<Translated<ProductOptionGroup>>>;
     create(ctx: RequestContext, input: Omit<CreateProductOptionGroupInput, 'options'>) => Promise<Translated<ProductOptionGroup>>;
     create(ctx: RequestContext, input: Omit<CreateProductOptionGroupInput, 'options'>) => Promise<Translated<ProductOptionGroup>>;
     update(ctx: RequestContext, input: UpdateProductOptionGroupInput) => Promise<Translated<ProductOptionGroup>>;
     update(ctx: RequestContext, input: UpdateProductOptionGroupInput) => Promise<Translated<ProductOptionGroup>>;
@@ -41,7 +41,7 @@ class ProductOptionGroupService {
 
 
 ### findOne
 ### findOne
 
 
-<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, id: <a href='/reference/typescript-api/common/id#id'>ID</a>, relations?: RelationPaths&#60;<a href='/reference/typescript-api/entities/product-option-group#productoptiongroup'>ProductOptionGroup</a>&#62;) => Promise&#60;Translated&#60;<a href='/reference/typescript-api/entities/product-option-group#productoptiongroup'>ProductOptionGroup</a>&#62; | undefined&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, id: <a href='/reference/typescript-api/common/id#id'>ID</a>, relations?: RelationPaths&#60;<a href='/reference/typescript-api/entities/product-option-group#productoptiongroup'>ProductOptionGroup</a>&#62;, findOneOptions?: { includeSoftDeleted: boolean }) => Promise&#60;Translated&#60;<a href='/reference/typescript-api/entities/product-option-group#productoptiongroup'>ProductOptionGroup</a>&#62; | undefined&#62;`}   />
 
 
 
 
 ### getOptionGroupsByProductId
 ### getOptionGroupsByProductId

+ 1 - 1
docs/docs/reference/typescript-api/services/product-option-service.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ProductOptionService
 ## ProductOptionService
 
 
-<GenerationInfo sourceFile="packages/core/src/service/services/product-option.service.ts" sourceLine="33" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/services/product-option.service.ts" sourceLine="34" packageName="@vendure/core" />
 
 
 Contains methods relating to <a href='/reference/typescript-api/entities/product-option#productoption'>ProductOption</a> entities.
 Contains methods relating to <a href='/reference/typescript-api/entities/product-option#productoption'>ProductOption</a> entities.
 
 

+ 3 - 2
docs/docs/reference/typescript-api/tax/address-based-tax-zone-strategy.md

@@ -11,10 +11,11 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## AddressBasedTaxZoneStrategy
 ## AddressBasedTaxZoneStrategy
 
 
-<GenerationInfo sourceFile="packages/core/src/config/tax/address-based-tax-zone-strategy.ts" sourceLine="39" packageName="@vendure/core" since="3.1.0" />
+<GenerationInfo sourceFile="packages/core/src/config/tax/address-based-tax-zone-strategy.ts" sourceLine="40" packageName="@vendure/core" since="3.1.0" />
 
 
 Address based <a href='/reference/typescript-api/tax/tax-zone-strategy#taxzonestrategy'>TaxZoneStrategy</a> which tries to find the applicable <a href='/reference/typescript-api/entities/zone#zone'>Zone</a> based on the
 Address based <a href='/reference/typescript-api/tax/tax-zone-strategy#taxzonestrategy'>TaxZoneStrategy</a> which tries to find the applicable <a href='/reference/typescript-api/entities/zone#zone'>Zone</a> based on the
-country of the billing address, or else the country of the shipping address of the Order.
+country of the shipping address of the Order.
+This is useful for shops that do cross-border B2C orders and use the One-Stop-Shop (OSS) VAT scheme.
 
 
 Returns the default <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>'s default tax zone if no applicable zone is found.
 Returns the default <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>'s default tax zone if no applicable zone is found.
 
 

+ 0 - 1
packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts

@@ -150,7 +150,6 @@ export interface DashboardExtension {
      * given components and optionally also add a nav menu item.
      * given components and optionally also add a nav menu item.
      */
      */
     widgets?: DashboardWidgetDefinition[];
     widgets?: DashboardWidgetDefinition[];
-
     /**
     /**
      * @description
      * @description
      * Allows you to define custom form components for custom fields in the dashboard.
      * Allows you to define custom form components for custom fields in the dashboard.