Procházet zdrojové kódy

docs(dashboard): Update documentation for various interfaces

David Höck před 6 měsíci
rodič
revize
6bc1ae375f

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 
@@ -32,12 +32,13 @@ Parameters
 
 ## 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**
 
 ```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>> {
+    entityName?: string;
     pageId: string;
     route: AnyRoute;
     title: (entity: ResultOf<T>[EntityField]) => string;
@@ -50,6 +51,12 @@ interface DetailPageProps<T extends TypedDocumentNode<any, any>, C extends Typed
 
 <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
 
 <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
 
-<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**
 
@@ -30,7 +30,7 @@ Parameters
 
 ## 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**
 
@@ -45,9 +45,11 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
     onSearchTermChange?: (searchTerm: string) => NonNullable<V['options']>['filter'];
     customizeColumns?: CustomizeColumnConfig<T>;
     additionalColumns?: AC;
-    defaultColumnOrder?: (keyof ListQueryFields<T> | keyof AC)[];
+    defaultColumnOrder?: (keyof ListQueryFields<T> | keyof AC | CustomFieldKeysOfItem<ListQueryFields<T>>)[];
     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;
     facetedFilters?: FacetedFilterConfig<T>;
     rowActions?: RowAction<ListQueryFields<T>>[];
@@ -105,7 +107,7 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
 
 ### 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
@@ -115,7 +117,7 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
 
 ### 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

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 

+ 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
 
-<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**
 
@@ -20,10 +20,12 @@ This is used to define the routes, widgets, etc. that will be displayed in the d
 ```ts title="Signature"
 interface DashboardExtension {
     routes?: DashboardRouteDefinition[];
+    navSections?: DashboardNavSectionDefinition[];
     pageBlocks?: DashboardPageBlockDefinition[];
     actionBarItems?: DashboardActionBarItem[];
     alerts?: DashboardAlertDefinition[];
     widgets?: DashboardWidgetDefinition[];
+    customFormComponents?: DashboardCustomFormComponent[];
 }
 ```
 
@@ -34,6 +36,11 @@ interface DashboardExtension {
 <MemberInfo kind="property" type={`DashboardRouteDefinition[]`}   />
 
 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
 
 <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
 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>

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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**
 
@@ -89,7 +89,7 @@ Parameters
 
 ## 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**
 
@@ -100,6 +100,7 @@ interface DetailPageOptions<T extends TypedDocumentNode<any, any>, C extends Typ
     params: {
         id: string;
     };
+    entityName: string;
     createDocument?: C;
     updateDocument?: U;
     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;     }`}   />
 
 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
 
 <MemberInfo kind="property" type={`C`}   />
@@ -169,7 +176,7 @@ The function to call when the update is successful.
 
 ## 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**
 

+ 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 {
     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>>>;
-    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>>>;
     create(ctx: RequestContext, input: Omit<CreateProductOptionGroupInput, 'options'>) => Promise<Translated<ProductOptionGroup>>;
     update(ctx: RequestContext, input: UpdateProductOptionGroupInput) => Promise<Translated<ProductOptionGroup>>;
@@ -41,7 +41,7 @@ class ProductOptionGroupService {
 
 ### 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

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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.
 

+ 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
 
-<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
-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.
 

+ 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.
      */
     widgets?: DashboardWidgetDefinition[];
-
     /**
      * @description
      * Allows you to define custom form components for custom fields in the dashboard.