فهرست منبع

docs: Update lots of docs

Michael Bromley 2 سال پیش
والد
کامیت
2206a5b863
100فایلهای تغییر یافته به همراه597 افزوده شده و 312 حذف شده
  1. 1 1
      docs/content/admin-ui-api/action-bar/_index.md
  2. 1 1
      docs/content/admin-ui-api/action-bar/action-bar-item.md
  3. 2 2
      docs/content/admin-ui-api/action-bar/action-bar-location-id.md
  4. 1 1
      docs/content/admin-ui-api/action-bar/add-action-bar-item.md
  5. 1 1
      docs/content/admin-ui-api/action-bar/on-click-context.md
  6. 68 0
      docs/content/admin-ui-api/action-bar/page-location-id.md
  7. 1 1
      docs/content/admin-ui-api/bulk-actions/_index.md
  8. 42 42
      docs/content/admin-ui-api/bulk-actions/bulk-action.md
  9. 1 1
      docs/content/admin-ui-api/bulk-actions/register-bulk-action.md
  10. 1 1
      docs/content/admin-ui-api/components/_index.md
  11. 1 1
      docs/content/admin-ui-api/components/asset-picker-dialog-component.md
  12. 1 1
      docs/content/admin-ui-api/components/chip-component.md
  13. 1 1
      docs/content/admin-ui-api/components/currency-input-component.md
  14. 4 2
      docs/content/admin-ui-api/components/data-table-component.md
  15. 53 50
      docs/content/admin-ui-api/components/data-table2component.md
  16. 1 1
      docs/content/admin-ui-api/components/datetime-picker-component.md
  17. 1 1
      docs/content/admin-ui-api/components/dropdown-component.md
  18. 1 1
      docs/content/admin-ui-api/components/facet-value-selector-component.md
  19. 1 1
      docs/content/admin-ui-api/components/object-tree-component.md
  20. 1 1
      docs/content/admin-ui-api/components/order-state-label-component.md
  21. 1 1
      docs/content/admin-ui-api/components/product-variant-selector-component.md
  22. 1 1
      docs/content/admin-ui-api/components/rich-text-editor-component.md
  23. 1 1
      docs/content/admin-ui-api/components/zone-selector-component.md
  24. 1 1
      docs/content/admin-ui-api/custom-detail-components/_index.md
  25. 1 1
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component-config.md
  26. 2 2
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md
  27. 1 1
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component.md
  28. 1 1
      docs/content/admin-ui-api/custom-detail-components/register-custom-detail-component.md
  29. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/_index.md
  30. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/customer-history-entry-component.md
  31. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/history-entry-component.md
  32. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/history-entry-config.md
  33. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/order-history-entry-component.md
  34. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/register-history-entry-component.md
  35. 1 1
      docs/content/admin-ui-api/custom-input-components/_index.md
  36. 1 1
      docs/content/admin-ui-api/custom-input-components/default-inputs.md
  37. 1 1
      docs/content/admin-ui-api/custom-input-components/form-input-component.md
  38. 0 55
      docs/content/admin-ui-api/custom-input-components/register-custom-field-component.md
  39. 1 1
      docs/content/admin-ui-api/custom-input-components/register-form-input-component.md
  40. 1 1
      docs/content/admin-ui-api/directives/_index.md
  41. 1 1
      docs/content/admin-ui-api/directives/if-multichannel-directive.md
  42. 1 1
      docs/content/admin-ui-api/directives/if-permissions-directive.md
  43. 1 1
      docs/content/admin-ui-api/list-detail-views/_index.md
  44. 1 1
      docs/content/admin-ui-api/list-detail-views/base-detail-component.md
  45. 1 1
      docs/content/admin-ui-api/list-detail-views/base-entity-resolver.md
  46. 3 62
      docs/content/admin-ui-api/list-detail-views/base-list-component.md
  47. 63 0
      docs/content/admin-ui-api/list-detail-views/typed-base-detail-component.md
  48. 129 0
      docs/content/admin-ui-api/list-detail-views/typed-base-list-component.md
  49. 1 1
      docs/content/admin-ui-api/nav-menu/_index.md
  50. 1 1
      docs/content/admin-ui-api/nav-menu/add-nav-menu-item.md
  51. 1 1
      docs/content/admin-ui-api/nav-menu/add-nav-menu-section.md
  52. 1 1
      docs/content/admin-ui-api/nav-menu/nav-menu-item.md
  53. 1 1
      docs/content/admin-ui-api/nav-menu/nav-menu-section.md
  54. 1 1
      docs/content/admin-ui-api/nav-menu/navigation-types.md
  55. 1 1
      docs/content/admin-ui-api/pipes/_index.md
  56. 1 1
      docs/content/admin-ui-api/pipes/asset-preview-pipe.md
  57. 1 1
      docs/content/admin-ui-api/pipes/duration-pipe.md
  58. 1 1
      docs/content/admin-ui-api/pipes/file-size-pipe.md
  59. 1 1
      docs/content/admin-ui-api/pipes/has-permission-pipe.md
  60. 1 1
      docs/content/admin-ui-api/pipes/locale-currency-name-pipe.md
  61. 1 1
      docs/content/admin-ui-api/pipes/locale-currency-pipe.md
  62. 1 1
      docs/content/admin-ui-api/pipes/locale-date-pipe.md
  63. 1 1
      docs/content/admin-ui-api/pipes/locale-language-name-pipe.md
  64. 1 1
      docs/content/admin-ui-api/pipes/locale-region-name-pipe.md
  65. 1 1
      docs/content/admin-ui-api/pipes/time-ago-pipe.md
  66. 1 1
      docs/content/admin-ui-api/providers/_index.md
  67. 1 1
      docs/content/admin-ui-api/providers/data-service.md
  68. 1 1
      docs/content/admin-ui-api/providers/modal-service.md
  69. 1 1
      docs/content/admin-ui-api/providers/notification-service.md
  70. 11 0
      docs/content/admin-ui-api/tabs/_index.md
  71. 74 0
      docs/content/admin-ui-api/tabs/page-tab-config.md
  72. 48 0
      docs/content/admin-ui-api/tabs/register-page-tab.md
  73. 1 1
      docs/content/admin-ui-api/ui-devkit/_index.md
  74. 1 1
      docs/content/admin-ui-api/ui-devkit/admin-ui-extension.md
  75. 1 1
      docs/content/admin-ui-api/ui-devkit/compile-ui-extensions.md
  76. 1 1
      docs/content/admin-ui-api/ui-devkit/helpers.md
  77. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-devkit-client.md
  78. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-options.md
  79. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-process-argument.md
  80. 2 2
      docs/content/developer-guide/multi-vendor-marketplaces/_index.md
  81. 1 0
      docs/content/getting-started.md
  82. 1 1
      docs/content/graphql-api/admin/enums.md
  83. 1 1
      docs/content/graphql-api/admin/input-types.md
  84. 1 1
      docs/content/graphql-api/admin/mutations.md
  85. 1 1
      docs/content/graphql-api/admin/object-types.md
  86. 1 1
      docs/content/graphql-api/admin/queries.md
  87. 1 1
      docs/content/graphql-api/shop/enums.md
  88. 1 1
      docs/content/graphql-api/shop/input-types.md
  89. 1 1
      docs/content/graphql-api/shop/mutations.md
  90. 1 1
      docs/content/graphql-api/shop/object-types.md
  91. 1 1
      docs/content/graphql-api/shop/queries.md
  92. 2 0
      docs/content/migrating-from-v1/breaking-api-changes.md
  93. 8 9
      docs/content/plugins/_index.md
  94. 8 9
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/_index.md
  95. BIN
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/bulk-actions-screenshot.png
  96. BIN
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/bulk-actions-screenshot.webp
  97. BIN
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar.jpg
  98. BIN
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar.webp
  99. 1 1
      docs/content/plugins/extending-the-admin-ui/adding-ui-translations/_index.md
  100. BIN
      docs/content/plugins/extending-the-admin-ui/adding-ui-translations/ui-translations-01.jpg

+ 1 - 1
docs/content/admin-ui-api/action-bar/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Action Bar"
 weight: 10
-date: 2023-06-06T14:49:35.359Z
+date: 2023-06-07T09:42:25.375Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/action-bar/action-bar-item.md

@@ -1,7 +1,7 @@
 ---
 title: "ActionBarItem"
 weight: 10
-date: 2023-06-06T14:49:35.484Z
+date: 2023-06-07T09:42:25.521Z
 showtoc: true
 generated: true
 ---

+ 2 - 2
docs/content/admin-ui-api/action-bar/action-bar-location-id.md

@@ -1,7 +1,7 @@
 ---
 title: "ActionBarLocationId"
 weight: 10
-date: 2023-06-06T14:49:35.358Z
+date: 2023-06-07T09:42:25.376Z
 showtoc: true
 generated: true
 ---
@@ -13,7 +13,7 @@ generated: true
 
 # ActionBarLocationId
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="97" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="103" packageName="@vendure/admin-ui">}}
 
 The valid locationIds for registering action bar items.
 

+ 1 - 1
docs/content/admin-ui-api/action-bar/add-action-bar-item.md

@@ -1,7 +1,7 @@
 ---
 title: "AddActionBarItem"
 weight: 10
-date: 2023-06-06T14:49:35.502Z
+date: 2023-06-07T09:42:25.540Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/action-bar/on-click-context.md

@@ -1,7 +1,7 @@
 ---
 title: "OnClickContext"
 weight: 10
-date: 2023-06-06T14:49:35.476Z
+date: 2023-06-07T09:42:25.517Z
 showtoc: true
 generated: true
 ---

+ 68 - 0
docs/content/admin-ui-api/action-bar/page-location-id.md

@@ -0,0 +1,68 @@
+---
+title: "PageLocationId"
+weight: 10
+date: 2023-06-07T09:42:25.374Z
+showtoc: true
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+# PageLocationId
+<div class="symbol">
+
+
+# PageLocationId
+
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="51" packageName="@vendure/admin-ui">}}
+
+The valid locationIds for registering action bar items or tabs.
+
+## Signature
+
+```TypeScript
+type PageLocationId = | 'administrator-detail'
+    | 'administrator-list'
+    | 'asset-detail'
+    | 'asset-list'
+    | 'channel-detail'
+    | 'channel-list'
+    | 'collection-detail'
+    | 'collection-list'
+    | 'country-detail'
+    | 'country-list'
+    | 'customer-detail'
+    | 'customer-list'
+    | 'customer-group-list'
+    | 'customer-group-detail'
+    | 'draft-order-detail'
+    | 'facet-detail'
+    | 'facet-list'
+    | 'global-setting-detail'
+    | 'system-status'
+    | 'job-list'
+    | 'order-detail'
+    | 'order-list'
+    | 'payment-method-detail'
+    | 'payment-method-list'
+    | 'product-detail'
+    | 'product-list'
+    | 'product-variant-detail'
+    | 'profile'
+    | 'promotion-detail'
+    | 'promotion-list'
+    | 'role-detail'
+    | 'role-list'
+    | 'seller-detail'
+    | 'seller-list'
+    | 'shipping-method-detail'
+    | 'shipping-method-list'
+    | 'stock-location-detail'
+    | 'stock-location-list'
+    | 'tax-category-detail'
+    | 'tax-category-list'
+    | 'tax-rate-detail'
+    | 'tax-rate-list'
+    | 'zone-detail'
+    | 'zone-list'
+```
+</div>

+ 1 - 1
docs/content/admin-ui-api/bulk-actions/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Bulk Actions"
 weight: 10
-date: 2023-06-06T14:49:35.397Z
+date: 2023-06-07T09:42:25.423Z
 showtoc: false
 generated: true
 ---

+ 42 - 42
docs/content/admin-ui-api/bulk-actions/bulk-action.md

@@ -1,7 +1,7 @@
 ---
 title: "BulkAction"
 weight: 10
-date: 2023-06-06T14:49:35.379Z
+date: 2023-06-07T09:42:25.397Z
 showtoc: true
 generated: true
 ---
@@ -15,8 +15,8 @@ generated: true
 
 {{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/providers/bulk-action-registry/bulk-action-types.ts" sourceLine="99" packageName="@vendure/admin-ui" since="1.8.0">}}
 
-Configures a bulk action which can be performed on all selected items in a list view.
-
+Configures a bulk action which can be performed on all selected items in a list view.
+
 For a full example, see the <a href='/admin-ui-api/bulk-actions/register-bulk-action#registerbulkaction'>registerBulkAction</a> docs.
 
 ## Signature
@@ -25,8 +25,8 @@ For a full example, see the <a href='/admin-ui-api/bulk-actions/register-bulk-ac
 interface BulkAction<ItemType = any, ComponentType = any> {
   location: BulkActionLocationId;
   label: string;
-  getTranslationVars?: (
-        context: BulkActionFunctionContext<ItemType, ComponentType>,
+  getTranslationVars?: (
+        context: BulkActionFunctionContext<ItemType, ComponentType>,
     ) => Record<string, string | number> | Promise<Record<string, string | number>>;
   icon?: string;
   iconClass?: string;
@@ -51,28 +51,28 @@ interface BulkAction<ItemType = any, ComponentType = any> {
 
 ### getTranslationVars
 
-{{< member-info kind="property" type="(
         context: <a href='/admin-ui-api/bulk-actions/bulk-action#bulkactionfunctioncontext'>BulkActionFunctionContext</a>&#60;ItemType, ComponentType&#62;,
     ) =&#62; Record&#60;string, string | number&#62; | Promise&#60;Record&#60;string, string | number&#62;&#62;"  >}}
+{{< member-info kind="property" type="(         context: <a href='/admin-ui-api/bulk-actions/bulk-action#bulkactionfunctioncontext'>BulkActionFunctionContext</a>&#60;ItemType, ComponentType&#62;,     ) =&#62; Record&#60;string, string | number&#62; | Promise&#60;Record&#60;string, string | number&#62;&#62;"  >}}
 
-{{< member-description >}}An optional function that should resolve to a map of translation variables which can be
+{{< member-description >}}An optional function that should resolve to a map of translation variables which can be
 used when translating the `label` string.{{< /member-description >}}
 
 ### icon
 
 {{< member-info kind="property" type="string"  >}}
 
-{{< member-description >}}A valid [Clarity Icons](https://clarity.design/icons) icon shape, e.g.
+{{< member-description >}}A valid [Clarity Icons](https://core.clarity.design/foundation/icons/shapes/) icon shape, e.g.
 "cog", "user", "info-standard".{{< /member-description >}}
 
 ### iconClass
 
 {{< member-info kind="property" type="string"  >}}
 
-{{< member-description >}}A class to be added to the icon element. Examples:
-
-- is-success
-- is-danger
-- is-warning
-- is-info
+{{< member-description >}}A class to be added to the icon element. Examples:
+
+- is-success
+- is-danger
+- is-warning
+- is-info
 - is-highlight{{< /member-description >}}
 
 ### onClick
@@ -85,10 +85,10 @@ used when translating the `label` string.{{< /member-description >}}
 
 {{< member-info kind="property" type="(context: <a href='/admin-ui-api/bulk-actions/bulk-action#bulkactionfunctioncontext'>BulkActionFunctionContext</a>&#60;ItemType, ComponentType&#62;) =&#62; boolean | Promise&#60;boolean&#62;"  >}}
 
-{{< member-description >}}A function that determines whether this bulk action item should be displayed in the menu.
-If not defined, the item will always be displayed.
-
-This function will be invoked each time the selection is changed, so try to avoid expensive code
+{{< member-description >}}A function that determines whether this bulk action item should be displayed in the menu.
+If not defined, the item will always be displayed.
+
+This function will be invoked each time the selection is changed, so try to avoid expensive code
 running here.
 
 *Example*
@@ -143,25 +143,25 @@ A valid location of a list view that supports the bulk actions API.
 ## Signature
 
 ```TypeScript
-type BulkActionLocationId = | 'product-list'
-    | 'facet-list'
-    | 'collection-list'
-    | 'customer-list'
-    | 'customer-group-list'
-    | 'customer-group-members-list'
-    | 'customer-group-members-picker-list'
-    | 'promotion-list'
-    | 'seller-list'
-    | 'channel-list'
-    | 'administrator-list'
-    | 'role-list'
-    | 'shipping-method-list'
-    | 'stock-location-list'
-    | 'payment-method-list'
-    | 'tax-category-list'
-    | 'tax-rate-list'
-    | 'zone-list'
-    | 'zone-members-list'
+type BulkActionLocationId = | 'product-list'
+    | 'facet-list'
+    | 'collection-list'
+    | 'customer-list'
+    | 'customer-group-list'
+    | 'customer-group-members-list'
+    | 'customer-group-members-picker-list'
+    | 'promotion-list'
+    | 'seller-list'
+    | 'channel-list'
+    | 'administrator-list'
+    | 'role-list'
+    | 'shipping-method-list'
+    | 'stock-location-list'
+    | 'payment-method-list'
+    | 'tax-category-list'
+    | 'tax-rate-list'
+    | 'zone-list'
+    | 'zone-members-list'
     | string
 ```
 </div>
@@ -172,7 +172,7 @@ type BulkActionLocationId = | 'product-list'
 
 {{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/providers/bulk-action-registry/bulk-action-types.ts" sourceLine="43" packageName="@vendure/admin-ui" since="1.8.0">}}
 
-This is the argument which gets passed to the `getTranslationVars` and `isVisible` functions
+This is the argument which gets passed to the `getTranslationVars` and `isVisible` functions
 of the BulkAction definition.
 
 ## Signature
@@ -197,16 +197,16 @@ interface BulkActionFunctionContext<ItemType, ComponentType> {
 
 {{< member-info kind="property" type="ComponentType"  >}}
 
-{{< member-description >}}The component instance that is hosting the list view. For instance,
-`ProductListComponent`. This can be used to call methods on the instance,
-e.g. calling `hostComponent.refresh()` to force a list refresh after
+{{< member-description >}}The component instance that is hosting the list view. For instance,
+`ProductListComponent`. This can be used to call methods on the instance,
+e.g. calling `hostComponent.refresh()` to force a list refresh after
 deleting the selected items.{{< /member-description >}}
 
 ### injector
 
 {{< member-info kind="property" type="<a href='/typescript-api/common/injector#injector'>Injector</a>"  >}}
 
-{{< member-description >}}The Angular [Injector](https://angular.io/api/core/Injector) which can be used
+{{< member-description >}}The Angular [Injector](https://angular.io/api/core/Injector) which can be used
 to get service instances which might be needed in the click handler.{{< /member-description >}}
 
 ### route

+ 1 - 1
docs/content/admin-ui-api/bulk-actions/register-bulk-action.md

@@ -1,7 +1,7 @@
 ---
 title: "RegisterBulkAction"
 weight: 10
-date: 2023-06-06T14:49:35.399Z
+date: 2023-06-07T09:42:25.427Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Components"
 weight: 10
-date: 2023-06-06T14:49:35.548Z
+date: 2023-06-07T09:42:25.595Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/asset-picker-dialog-component.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetPickerDialogComponent"
 weight: 10
-date: 2023-06-06T14:49:35.524Z
+date: 2023-06-07T09:42:25.571Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/chip-component.md

@@ -1,7 +1,7 @@
 ---
 title: "ChipComponent"
 weight: 10
-date: 2023-06-06T14:49:35.550Z
+date: 2023-06-07T09:42:25.596Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/currency-input-component.md

@@ -1,7 +1,7 @@
 ---
 title: "CurrencyInputComponent"
 weight: 10
-date: 2023-06-06T14:49:35.556Z
+date: 2023-06-07T09:42:25.603Z
 showtoc: true
 generated: true
 ---

+ 4 - 2
docs/content/admin-ui-api/components/data-table-component.md

@@ -1,7 +1,7 @@
 ---
 title: "DataTableComponent"
 weight: 10
-date: 2023-06-06T14:49:35.582Z
+date: 2023-06-07T09:42:25.631Z
 showtoc: true
 generated: true
 ---
@@ -13,11 +13,13 @@ generated: true
 
 # DataTableComponent
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/components/data-table/data-table.component.ts" sourceLine="83" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/components/data-table/data-table.component.ts" sourceLine="86" packageName="@vendure/admin-ui">}}
 
 A table for displaying PaginatedList results. It is designed to be used inside components which
 extend the <a href='/admin-ui-api/list-detail-views/base-list-component#baselistcomponent'>BaseListComponent</a> class.
 
+**Deprecated** This component is deprecated. Use the <a href='/admin-ui-api/components/data-table2component#datatable2component'>DataTable2Component</a> instead.
+
 *Example*
 
 ```HTML

+ 53 - 50
docs/content/admin-ui-api/components/data-table2component.md

@@ -1,7 +1,7 @@
 ---
 title: "DataTable2Component"
 weight: 10
-date: 2023-06-06T14:49:35.615Z
+date: 2023-06-07T09:42:25.663Z
 showtoc: true
 generated: true
 ---
@@ -13,62 +13,65 @@ generated: true
 
 # DataTable2Component
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/components/data-table-2/data-table2.component.ts" sourceLine="89" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/components/data-table-2/data-table2.component.ts" sourceLine="92" packageName="@vendure/admin-ui">}}
 
 A table for displaying PaginatedList results. It is designed to be used inside components which
-extend the <a href='/admin-ui-api/list-detail-views/base-list-component#baselistcomponent'>BaseListComponent</a> class.
+extend the <a href='/admin-ui-api/list-detail-views/base-list-component#baselistcomponent'>BaseListComponent</a> or <a href='/admin-ui-api/list-detail-views/typed-base-list-component#typedbaselistcomponent'>TypedBaseListComponent</a> class.
 
 *Example*
 
 ```HTML
-<vdr-data-table
-  [items]="items$ | async"
-  [itemsPerPage]="itemsPerPage$ | async"
-  [totalItems]="totalItems$ | async"
-  [currentPage]="currentPage$ | async"
-  (pageChange)="setPageNumber($event)"
-  (itemsPerPageChange)="setItemsPerPage($event)"
+<vdr-data-table-2
+    id="product-review-list"
+    [items]="items$ | async"
+    [itemsPerPage]="itemsPerPage$ | async"
+    [totalItems]="totalItems$ | async"
+    [currentPage]="currentPage$ | async"
+    [filters]="filters"
+    (pageChange)="setPageNumber($event)"
+    (itemsPerPageChange)="setItemsPerPage($event)"
 >
-  <!-- The header columns are defined first -->
-  <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>
-  <vdr-dt-column></vdr-dt-column>
-  <vdr-dt-column></vdr-dt-column>
-
-  <!-- Then we define how a row is rendered -->
-  <ng-template let-taxRate="item">
-    <td class="left align-middle">{{ taxRate.name }}</td>
-    <td class="left align-middle">{{ taxRate.category.name }}</td>
-    <td class="left align-middle">{{ taxRate.zone.name }}</td>
-    <td class="left align-middle">{{ taxRate.value }}%</td>
-    <td class="right align-middle">
-      <vdr-table-row-action
-        iconShape="edit"
-        [label]="'common.edit' | translate"
-        [linkTo]="['./', taxRate.id]"
-      ></vdr-table-row-action>
-    </td>
-    <td class="right align-middle">
-      <vdr-dropdown>
-        <button type="button" class="btn btn-link btn-sm" vdrDropdownTrigger>
-          {{ 'common.actions' | translate }}
-          <clr-icon shape="caret down"></clr-icon>
-        </button>
-        <vdr-dropdown-menu vdrPosition="bottom-right">
-          <button
-              type="button"
-              class="delete-button"
-              (click)="deleteTaxRate(taxRate)"
-              [disabled]="!(['DeleteSettings', 'DeleteTaxRate'] | hasPermission)"
-              vdrDropdownItem
-          >
-              <clr-icon shape="trash" class="is-danger"></clr-icon>
-              {{ 'common.delete' | translate }}
-          </button>
-        </vdr-dropdown-menu>
-      </vdr-dropdown>
-    </td>
-  </ng-template>
-</vdr-data-table>
+    <vdr-bulk-action-menu
+        locationId="product-review-list"
+        [hostComponent]="this"
+        [selectionManager]="selectionManager"
+    />
+    <vdr-dt2-search
+        [searchTermControl]="searchTermControl"
+        searchTermPlaceholder="Filter by title"
+    />
+    <vdr-dt2-column [heading]="'common.id' | translate" [hiddenByDefault]="true">
+        <ng-template let-review="item">
+            {{ review.id }}
+        </ng-template>
+    </vdr-dt2-column>
+    <vdr-dt2-column
+        [heading]="'common.created-at' | translate"
+        [hiddenByDefault]="true"
+        [sort]="sorts.get('createdAt')"
+    >
+        <ng-template let-review="item">
+            {{ review.createdAt | localeDate : 'short' }}
+        </ng-template>
+    </vdr-dt2-column>
+    <vdr-dt2-column
+        [heading]="'common.updated-at' | translate"
+        [hiddenByDefault]="true"
+        [sort]="sorts.get('updatedAt')"
+    >
+        <ng-template let-review="item">
+            {{ review.updatedAt | localeDate : 'short' }}
+        </ng-template>
+    </vdr-dt2-column>
+    <vdr-dt2-column [heading]="'common.name' | translate" [optional]="false" [sort]="sorts.get('name')">
+        <ng-template let-review="item">
+            <a class="button-ghost" [routerLink]="['./', review.id]"
+                ><span>{{ review.name }}</span>
+                <clr-icon shape="arrow right"></clr-icon>
+            </a>
+        </ng-template>
+    </vdr-dt2-column>
+</vdr-data-table-2>
 ```
 
 ## Signature

+ 1 - 1
docs/content/admin-ui-api/components/datetime-picker-component.md

@@ -1,7 +1,7 @@
 ---
 title: "DatetimePickerComponent"
 weight: 10
-date: 2023-06-06T14:49:35.670Z
+date: 2023-06-07T09:42:25.707Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/dropdown-component.md

@@ -1,7 +1,7 @@
 ---
 title: "DropdownComponent"
 weight: 10
-date: 2023-06-06T14:49:35.716Z
+date: 2023-06-07T09:42:25.760Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/facet-value-selector-component.md

@@ -1,7 +1,7 @@
 ---
 title: "FacetValueSelectorComponent"
 weight: 10
-date: 2023-06-06T14:49:35.726Z
+date: 2023-06-07T09:42:25.771Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/object-tree-component.md

@@ -1,7 +1,7 @@
 ---
 title: "ObjectTreeComponent"
 weight: 10
-date: 2023-06-06T14:49:35.754Z
+date: 2023-06-07T09:42:25.798Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/order-state-label-component.md

@@ -1,7 +1,7 @@
 ---
 title: "OrderStateLabelComponent"
 weight: 10
-date: 2023-06-06T14:49:35.765Z
+date: 2023-06-07T09:42:25.813Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/product-variant-selector-component.md

@@ -1,7 +1,7 @@
 ---
 title: "ProductVariantSelectorComponent"
 weight: 10
-date: 2023-06-06T14:49:35.768Z
+date: 2023-06-07T09:42:25.817Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/rich-text-editor-component.md

@@ -1,7 +1,7 @@
 ---
 title: "RichTextEditorComponent"
 weight: 10
-date: 2023-06-06T14:49:35.778Z
+date: 2023-06-07T09:42:25.827Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/components/zone-selector-component.md

@@ -1,7 +1,7 @@
 ---
 title: "ZoneSelectorComponent"
 weight: 10
-date: 2023-06-06T14:49:35.797Z
+date: 2023-06-07T09:42:25.846Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-detail-components/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Custom Detail Components"
 weight: 10
-date: 2023-06-06T14:49:35.361Z
+date: 2023-06-07T09:42:25.378Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-detail-components/custom-detail-component-config.md

@@ -1,7 +1,7 @@
 ---
 title: "CustomDetailComponentConfig"
 weight: 10
-date: 2023-06-06T14:49:35.405Z
+date: 2023-06-07T09:42:25.434Z
 showtoc: true
 generated: true
 ---

+ 2 - 2
docs/content/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md

@@ -1,7 +1,7 @@
 ---
 title: "CustomDetailComponentLocationId"
 weight: 10
-date: 2023-06-06T14:49:35.360Z
+date: 2023-06-07T09:42:25.377Z
 showtoc: true
 generated: true
 ---
@@ -13,7 +13,7 @@ generated: true
 
 # CustomDetailComponentLocationId
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="105" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="111" packageName="@vendure/admin-ui">}}
 
 The valid locations for embedding a <a href='/admin-ui-api/custom-detail-components/custom-detail-component#customdetailcomponent'>CustomDetailComponent</a>.
 

+ 1 - 1
docs/content/admin-ui-api/custom-detail-components/custom-detail-component.md

@@ -1,7 +1,7 @@
 ---
 title: "CustomDetailComponent"
 weight: 10
-date: 2023-06-06T14:49:35.402Z
+date: 2023-06-07T09:42:25.431Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-detail-components/register-custom-detail-component.md

@@ -1,7 +1,7 @@
 ---
 title: "RegisterCustomDetailComponent"
 weight: 10
-date: 2023-06-06T14:49:35.408Z
+date: 2023-06-07T09:42:25.439Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Custom History Entry Components"
 weight: 10
-date: 2023-06-06T14:49:35.416Z
+date: 2023-06-07T09:42:25.453Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/customer-history-entry-component.md

@@ -1,7 +1,7 @@
 ---
 title: "CustomerHistoryEntryComponent"
 weight: 10
-date: 2023-06-06T14:49:35.420Z
+date: 2023-06-07T09:42:25.462Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/history-entry-component.md

@@ -1,7 +1,7 @@
 ---
 title: "HistoryEntryComponent"
 weight: 10
-date: 2023-06-06T14:49:35.410Z
+date: 2023-06-07T09:42:25.442Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/history-entry-config.md

@@ -1,7 +1,7 @@
 ---
 title: "HistoryEntryConfig"
 weight: 10
-date: 2023-06-06T14:49:35.423Z
+date: 2023-06-07T09:42:25.466Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/order-history-entry-component.md

@@ -1,7 +1,7 @@
 ---
 title: "OrderHistoryEntryComponent"
 weight: 10
-date: 2023-06-06T14:49:35.417Z
+date: 2023-06-07T09:42:25.455Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-history-entry-components/register-history-entry-component.md

@@ -1,7 +1,7 @@
 ---
 title: "RegisterHistoryEntryComponent"
 weight: 10
-date: 2023-06-06T14:49:35.426Z
+date: 2023-06-07T09:42:25.470Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-input-components/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Custom Input Components"
 weight: 10
-date: 2023-06-06T14:49:35.357Z
+date: 2023-06-07T09:42:25.373Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-input-components/default-inputs.md

@@ -1,7 +1,7 @@
 ---
 title: "Default Inputs"
 weight: 10
-date: 2023-06-06T14:49:35.830Z
+date: 2023-06-07T09:42:25.877Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/custom-input-components/form-input-component.md

@@ -1,7 +1,7 @@
 ---
 title: "FormInputComponent"
 weight: 10
-date: 2023-06-06T14:49:35.353Z
+date: 2023-06-07T09:42:25.367Z
 showtoc: true
 generated: true
 ---

+ 0 - 55
docs/content/admin-ui-api/custom-input-components/register-custom-field-component.md

@@ -1,55 +0,0 @@
----
-title: "RegisterCustomFieldComponent"
-weight: 10
-date: 2023-06-06T14:49:35.964Z
-showtoc: true
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-
-# registerCustomFieldComponent
-<div class="symbol">
-
-
-# registerCustomFieldComponent
-
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/dynamic-form-inputs/register-dynamic-input-components.ts" sourceLine="130" packageName="@vendure/admin-ui">}}
-
-**Deprecated** use `registerFormInputComponent()` in combination with the customField `ui` config instead.
-
-Registers a custom component to act as the form input control for the given custom field.
-This should be used in the NgModule `providers` array of your ui extension module.
-
-*Example*
-
-```TypeScript
-@NgModule({
-  imports: [SharedModule],
-  declarations: [MyCustomFieldControl],
-  providers: [
-      registerCustomFieldComponent('Product', 'someCustomField', MyCustomFieldControl),
-  ],
-})
-export class MyUiExtensionModule {}
-```
-
-## Signature
-
-```TypeScript
-function registerCustomFieldComponent(entity: CustomFieldEntityName, fieldName: string, component: Type<CustomFieldControl>): FactoryProvider
-```
-## Parameters
-
-### entity
-
-{{< member-info kind="parameter" type="CustomFieldEntityName" >}}
-
-### fieldName
-
-{{< member-info kind="parameter" type="string" >}}
-
-### component
-
-{{< member-info kind="parameter" type="Type&#60;CustomFieldControl&#62;" >}}
-
-</div>

+ 1 - 1
docs/content/admin-ui-api/custom-input-components/register-form-input-component.md

@@ -1,7 +1,7 @@
 ---
 title: "RegisterFormInputComponent"
 weight: 10
-date: 2023-06-06T14:49:35.961Z
+date: 2023-06-07T09:42:26.001Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/directives/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Directives"
 weight: 10
-date: 2023-06-06T14:49:35.824Z
+date: 2023-06-07T09:42:25.870Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/directives/if-multichannel-directive.md

@@ -1,7 +1,7 @@
 ---
 title: "IfMultichannelDirective"
 weight: 10
-date: 2023-06-06T14:49:35.821Z
+date: 2023-06-07T09:42:25.867Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/directives/if-permissions-directive.md

@@ -1,7 +1,7 @@
 ---
 title: "IfPermissionsDirective"
 weight: 10
-date: 2023-06-06T14:49:35.825Z
+date: 2023-06-07T09:42:25.872Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/list-detail-views/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "List Detail Views"
 weight: 10
-date: 2023-06-06T14:49:35.319Z
+date: 2023-06-07T09:42:25.306Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/list-detail-views/base-detail-component.md

@@ -1,7 +1,7 @@
 ---
 title: "BaseDetailComponent"
 weight: 10
-date: 2023-06-06T14:49:35.277Z
+date: 2023-06-07T09:42:25.251Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/list-detail-views/base-entity-resolver.md

@@ -1,7 +1,7 @@
 ---
 title: "BaseEntityResolver"
 weight: 10
-date: 2023-06-06T14:49:35.320Z
+date: 2023-06-07T09:42:25.316Z
 showtoc: true
 generated: true
 ---

+ 3 - 62
docs/content/admin-ui-api/list-detail-views/base-list-component.md

@@ -1,7 +1,7 @@
 ---
 title: "BaseListComponent"
 weight: 10
-date: 2023-06-06T14:49:35.324Z
+date: 2023-06-07T09:42:25.320Z
 showtoc: true
 generated: true
 ---
@@ -13,71 +13,12 @@ generated: true
 
 # BaseListComponent
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-list.component.ts" sourceLine="96" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-list.component.ts" sourceLine="39" packageName="@vendure/admin-ui">}}
 
 This is a base class which implements the logic required to fetch and manipulate
 a list of data from a query which returns a PaginatedList type.
 
-*Example*
-
-```TypeScript
-@Component({
-  selector: 'my-entity-list',
-  templateUrl: './my-entity-list.component.html',
-  styleUrls: ['./my-entity-list.component.scss'],
-  changeDetection: ChangeDetectionStrategy.OnPush,
-})
-export class MyEntityListComponent extends BaseListComponent<GetMyEntityList.Query, GetMyEntityList.Items> {
-  constructor(
-    private dataService: DataService,
-    router: Router,
-    route: ActivatedRoute,
-  ) {
-    super(router, route);
-    super.setQueryFn(
-      (...args: any[]) => this.dataService.query<GetMyEntityList.Query>(GET_MY_ENTITY_LIST),
-      data => data.myEntities,
-    );
-  }
-}
-```
-
-The template for the component will typically use the <a href='/admin-ui-api/components/data-table-component#datatablecomponent'>DataTableComponent</a> to display the results.
-
-*Example*
-
-```HTML
-<vdr-action-bar>
-  <vdr-ab-right>
-    <a class="btn btn-primary" [routerLink]="['./create']" *vdrIfPermissions="['CreateSettings', 'CreateTaxRate']">
-      <clr-icon shape="plus"></clr-icon>
-      Create new my entity
-    </a>
-  </vdr-ab-right>
-</vdr-action-bar>
-
-<vdr-data-table
-  [items]="items$ | async"
-  [itemsPerPage]="itemsPerPage$ | async"
-  [totalItems]="totalItems$ | async"
-  [currentPage]="currentPage$ | async"
-  (pageChange)="setPageNumber($event)"
-  (itemsPerPageChange)="setItemsPerPage($event)"
->
-  <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>
-  <vdr-dt-column></vdr-dt-column>
-  <ng-template let-myEntity="item">
-    <td class="left align-middle">{{ myEntity.name }}</td>
-    <td class="right align-middle">
-      <vdr-table-row-action
-        iconShape="edit"
-        [label]="'common.edit' | translate"
-        [linkTo]="['./', myEntity.id]"
-      ></vdr-table-row-action>
-    </td>
-  </ng-template>
-</vdr-data-table>
-```
+It is normally used in combination with the <a href='/admin-ui-api/components/data-table2component#datatable2component'>DataTable2Component</a>.
 
 ## Signature
 

+ 63 - 0
docs/content/admin-ui-api/list-detail-views/typed-base-detail-component.md

@@ -0,0 +1,63 @@
+---
+title: "TypedBaseDetailComponent"
+weight: 10
+date: 2023-06-07T09:42:25.308Z
+showtoc: true
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+# TypedBaseDetailComponent
+<div class="symbol">
+
+
+# TypedBaseDetailComponent
+
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-detail.component.ts" sourceLine="179" packageName="@vendure/admin-ui">}}
+
+A version of the <a href='/admin-ui-api/list-detail-views/base-detail-component#basedetailcomponent'>BaseDetailComponent</a> which is designed to be used with a
+[TypedDocumentNode](https://the-guild.dev/graphql/codegen/plugins/typescript/typed-document-node).
+
+## Signature
+
+```TypeScript
+class TypedBaseDetailComponent<T extends TypedDocumentNode<any, any>, Field extends keyof ResultOf<T>> extends BaseDetailComponent<NonNullable<ResultOf<T>[Field]>> {
+  protected protected result$: Observable<ResultOf<T>>;
+  protected protected entity: ResultOf<T>[Field];
+  constructor()
+  override init() => ;
+}
+```
+## Extends
+
+ * <a href='/admin-ui-api/list-detail-views/base-detail-component#basedetailcomponent'>BaseDetailComponent</a>&#60;NonNullable&#60;ResultOf&#60;T&#62;[Field]&#62;&#62;
+
+
+## Members
+
+### result$
+
+{{< member-info kind="property" type="Observable&#60;ResultOf&#60;T&#62;&#62;"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### entity
+
+{{< member-info kind="property" type="ResultOf&#60;T&#62;[Field]"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### constructor
+
+{{< member-info kind="method" type="() => TypedBaseDetailComponent"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### init
+
+{{< member-info kind="method" type="() => "  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+
+</div>

+ 129 - 0
docs/content/admin-ui-api/list-detail-views/typed-base-list-component.md

@@ -0,0 +1,129 @@
+---
+title: "TypedBaseListComponent"
+weight: 10
+date: 2023-06-07T09:42:25.350Z
+showtoc: true
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+# TypedBaseListComponent
+<div class="symbol">
+
+
+# TypedBaseListComponent
+
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-list.component.ts" sourceLine="198" packageName="@vendure/admin-ui">}}
+
+A version of the <a href='/admin-ui-api/list-detail-views/base-list-component#baselistcomponent'>BaseListComponent</a> which is designed to be used with a
+[TypedDocumentNode](https://the-guild.dev/graphql/codegen/plugins/typescript/typed-document-node).
+
+## Signature
+
+```TypeScript
+class TypedBaseListComponent<T extends TypedDocumentNode<any, Vars>, Field extends keyof ResultOf<T>, Vars extends { options: { filter: any; sort: any } } = VariablesOf<T>> extends BaseListComponent<ResultOf<T>, ItemOf<ResultOf<T>, Field>, VariablesOf<T>> implements OnInit {
+  availableLanguages$: Observable<LanguageCode[]>;
+  contentLanguage$: Observable<LanguageCode>;
+  protected protected dataService = inject(DataService);
+  protected protected router = inject(Router);
+  protected protected serverConfigService = inject(ServerConfigService);
+  constructor()
+  protected configure(config: {
+        document: T;
+        getItems: (data: ResultOf<T>) => { items: Array<ItemOf<ResultOf<T>, Field>>; totalItems: number };
+        setVariables?: (skip: number, take: number) => VariablesOf<T>;
+        refreshListOnChanges?: Array<Observable<any>>;
+    }) => ;
+  ngOnInit() => ;
+  createFilterCollection() => DataTableFilterCollection<NonNullable<NonNullable<Vars['options']>['filter']>>;
+  createSortCollection() => DataTableSortCollection<NonNullable<NonNullable<Vars['options']>['sort']>>;
+  setLanguage(code: LanguageCode) => ;
+  getCustomFieldConfig(key: Exclude<keyof CustomFields, '__typename'>) => CustomFieldConfig[];
+}
+```
+## Extends
+
+ * <a href='/admin-ui-api/list-detail-views/base-list-component#baselistcomponent'>BaseListComponent</a>&#60;ResultOf&#60;T&#62;, ItemOf&#60;ResultOf&#60;T&#62;, Field&#62;, VariablesOf&#60;T&#62;&#62;
+
+
+## Implements
+
+ * OnInit
+
+
+## Members
+
+### availableLanguages$
+
+{{< member-info kind="property" type="Observable&#60;<a href='/typescript-api/common/language-code#languagecode'>LanguageCode</a>[]&#62;"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### contentLanguage$
+
+{{< member-info kind="property" type="Observable&#60;<a href='/typescript-api/common/language-code#languagecode'>LanguageCode</a>&#62;"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### dataService
+
+{{< member-info kind="property" type=""  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### router
+
+{{< member-info kind="property" type=""  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### serverConfigService
+
+{{< member-info kind="property" type=""  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### constructor
+
+{{< member-info kind="method" type="() => TypedBaseListComponent"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### configure
+
+{{< member-info kind="method" type="(config: {         document: T;         getItems: (data: ResultOf&#60;T&#62;) =&#62; { items: Array&#60;ItemOf&#60;ResultOf&#60;T&#62;, Field&#62;&#62;; totalItems: number };         setVariables?: (skip: number, take: number) =&#62; VariablesOf&#60;T&#62;;         refreshListOnChanges?: Array&#60;Observable&#60;any&#62;&#62;;     }) => "  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### ngOnInit
+
+{{< member-info kind="method" type="() => "  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### createFilterCollection
+
+{{< member-info kind="method" type="() => DataTableFilterCollection&#60;NonNullable&#60;NonNullable&#60;Vars['options']&#62;['filter']&#62;&#62;"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### createSortCollection
+
+{{< member-info kind="method" type="() => DataTableSortCollection&#60;NonNullable&#60;NonNullable&#60;Vars['options']&#62;['sort']&#62;&#62;"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### setLanguage
+
+{{< member-info kind="method" type="(code: <a href='/typescript-api/common/language-code#languagecode'>LanguageCode</a>) => "  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+### getCustomFieldConfig
+
+{{< member-info kind="method" type="(key: Exclude&#60;keyof <a href='/typescript-api/custom-fields/#customfields'>CustomFields</a>, '__typename'&#62;) => <a href='/typescript-api/custom-fields/custom-field-config#customfieldconfig'>CustomFieldConfig</a>[]"  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
+
+</div>

+ 1 - 1
docs/content/admin-ui-api/nav-menu/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Nav Menu"
 weight: 10
-date: 2023-06-06T14:49:35.450Z
+date: 2023-06-07T09:42:25.497Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/nav-menu/add-nav-menu-item.md

@@ -1,7 +1,7 @@
 ---
 title: "AddNavMenuItem"
 weight: 10
-date: 2023-06-06T14:49:35.499Z
+date: 2023-06-07T09:42:25.536Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/nav-menu/add-nav-menu-section.md

@@ -1,7 +1,7 @@
 ---
 title: "AddNavMenuSection"
 weight: 10
-date: 2023-06-06T14:49:35.496Z
+date: 2023-06-07T09:42:25.533Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/nav-menu/nav-menu-item.md

@@ -1,7 +1,7 @@
 ---
 title: "NavMenuItem"
 weight: 10
-date: 2023-06-06T14:49:35.452Z
+date: 2023-06-07T09:42:25.499Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/nav-menu/nav-menu-section.md

@@ -1,7 +1,7 @@
 ---
 title: "NavMenuSection"
 weight: 10
-date: 2023-06-06T14:49:35.461Z
+date: 2023-06-07T09:42:25.508Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/nav-menu/navigation-types.md

@@ -1,7 +1,7 @@
 ---
 title: "Navigation Types"
 weight: 10
-date: 2023-06-06T14:49:35.448Z
+date: 2023-06-07T09:42:25.492Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Pipes"
 weight: 10
-date: 2023-06-06T14:49:35.970Z
+date: 2023-06-07T09:42:26.008Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/asset-preview-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetPreviewPipe"
 weight: 10
-date: 2023-06-06T14:49:35.967Z
+date: 2023-06-07T09:42:26.004Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/duration-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "DurationPipe"
 weight: 10
-date: 2023-06-06T14:49:35.972Z
+date: 2023-06-07T09:42:26.009Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/file-size-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "FileSizePipe"
 weight: 10
-date: 2023-06-06T14:49:35.976Z
+date: 2023-06-07T09:42:26.014Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/has-permission-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "HasPermissionPipe"
 weight: 10
-date: 2023-06-06T14:49:35.980Z
+date: 2023-06-07T09:42:26.018Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/locale-currency-name-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "LocaleCurrencyNamePipe"
 weight: 10
-date: 2023-06-06T14:49:35.987Z
+date: 2023-06-07T09:42:26.026Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/locale-currency-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "LocaleCurrencyPipe"
 weight: 10
-date: 2023-06-06T14:49:35.993Z
+date: 2023-06-07T09:42:26.033Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/locale-date-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "LocaleDatePipe"
 weight: 10
-date: 2023-06-06T14:49:35.999Z
+date: 2023-06-07T09:42:26.039Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/locale-language-name-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "LocaleLanguageNamePipe"
 weight: 10
-date: 2023-06-06T14:49:36.004Z
+date: 2023-06-07T09:42:26.047Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/locale-region-name-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "LocaleRegionNamePipe"
 weight: 10
-date: 2023-06-06T14:49:36.010Z
+date: 2023-06-07T09:42:26.053Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/pipes/time-ago-pipe.md

@@ -1,7 +1,7 @@
 ---
 title: "TimeAgoPipe"
 weight: 10
-date: 2023-06-06T14:49:36.017Z
+date: 2023-06-07T09:42:26.060Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/providers/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Providers"
 weight: 10
-date: 2023-06-06T14:49:35.378Z
+date: 2023-06-07T09:42:25.396Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/providers/data-service.md

@@ -1,7 +1,7 @@
 ---
 title: "DataService"
 weight: 10
-date: 2023-06-06T14:49:35.362Z
+date: 2023-06-07T09:42:25.379Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/providers/modal-service.md

@@ -1,7 +1,7 @@
 ---
 title: "ModalService"
 weight: 10
-date: 2023-06-06T14:49:35.428Z
+date: 2023-06-07T09:42:25.474Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/providers/notification-service.md

@@ -1,7 +1,7 @@
 ---
 title: "NotificationService"
 weight: 10
-date: 2023-06-06T14:49:35.504Z
+date: 2023-06-07T09:42:25.542Z
 showtoc: true
 generated: true
 ---

+ 11 - 0
docs/content/admin-ui-api/tabs/_index.md

@@ -0,0 +1,11 @@
+---
+title: "Tabs"
+weight: 10
+date: 2023-06-07T09:42:25.568Z
+showtoc: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+
+# tabs

+ 74 - 0
docs/content/admin-ui-api/tabs/page-tab-config.md

@@ -0,0 +1,74 @@
+---
+title: "PageTabConfig"
+weight: 10
+date: 2023-06-07T09:42:25.561Z
+showtoc: true
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+# PageTabConfig
+<div class="symbol">
+
+
+# PageTabConfig
+
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/providers/page/page.service.ts" sourceLine="14" packageName="@vendure/admin-ui">}}
+
+The object used to configure a new page tab.
+
+## Signature
+
+```TypeScript
+interface PageTabConfig {
+  location: PageLocationId;
+  tabIcon?: string;
+  route: string;
+  tab: string;
+  priority?: number;
+  component: Type<any> | ReturnType<typeof detailComponentWithResolver>;
+}
+```
+## Members
+
+### location
+
+{{< member-info kind="property" type="<a href='/admin-ui-api/action-bar/page-location-id#pagelocationid'>PageLocationId</a>"  >}}
+
+{{< member-description >}}A valid location representing a list or detail page.{{< /member-description >}}
+
+### tabIcon
+
+{{< member-info kind="property" type="string"  >}}
+
+{{< member-description >}}An optional icon to display in the tab. The icon
+should be a valid shape name from the [Clarity Icons](https://core.clarity.design/foundation/icons/shapes/)
+set.{{< /member-description >}}
+
+### route
+
+{{< member-info kind="property" type="string"  >}}
+
+{{< member-description >}}The route path to the tab. This will be appended to the
+route of the parent page.{{< /member-description >}}
+
+### tab
+
+{{< member-info kind="property" type="string"  >}}
+
+{{< member-description >}}The name of the tab to display in the UI.{{< /member-description >}}
+
+### priority
+
+{{< member-info kind="property" type="number"  >}}
+
+{{< member-description >}}The priority of the tab. Tabs with a lower priority will be displayed first.{{< /member-description >}}
+
+### component
+
+{{< member-info kind="property" type="Type&#60;any&#62; | ReturnType&#60;typeof detailComponentWithResolver&#62;"  >}}
+
+{{< member-description >}}The component to render at the route of the tab.{{< /member-description >}}
+
+
+</div>

+ 48 - 0
docs/content/admin-ui-api/tabs/register-page-tab.md

@@ -0,0 +1,48 @@
+---
+title: "RegisterPageTab"
+weight: 10
+date: 2023-06-07T09:42:25.569Z
+showtoc: true
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+
+# registerPageTab
+<div class="symbol">
+
+
+# registerPageTab
+
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/providers/page/page.service.ts" sourceLine="71" packageName="@vendure/admin-ui">}}
+
+Add a tab to an existing list or detail page.
+
+*Example*
+
+```TypeScript
+@NgModule({
+  imports: [SharedModule],
+  providers: [
+    registerPageTab({
+      location: 'product-list',
+      tab: 'Deleted Products',
+      route: 'deleted',
+      component: DeletedProductListComponent,
+    }),
+  ],
+})
+export class MyUiExtensionModule {}
+```
+
+## Signature
+
+```TypeScript
+function registerPageTab(config: PageTabConfig): Provider
+```
+## Parameters
+
+### config
+
+{{< member-info kind="parameter" type="<a href='/admin-ui-api/tabs/page-tab-config#pagetabconfig'>PageTabConfig</a>" >}}
+
+</div>

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Ui Devkit"
 weight: 10
-date: 2023-06-06T14:49:36.029Z
+date: 2023-06-07T09:42:26.072Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/admin-ui-extension.md

@@ -1,7 +1,7 @@
 ---
 title: "AdminUiExtension"
 weight: 10
-date: 2023-06-06T14:49:36.035Z
+date: 2023-06-07T09:42:26.078Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/compile-ui-extensions.md

@@ -1,7 +1,7 @@
 ---
 title: "CompileUiExtensions"
 weight: 10
-date: 2023-06-06T14:49:36.030Z
+date: 2023-06-07T09:42:26.074Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/helpers.md

@@ -1,7 +1,7 @@
 ---
 title: "Helpers"
 weight: 10
-date: 2023-06-06T14:49:36.033Z
+date: 2023-06-07T09:42:26.076Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/ui-devkit-client.md

@@ -1,7 +1,7 @@
 ---
 title: "UiDevkitClient"
 weight: 10
-date: 2023-06-06T14:49:36.022Z
+date: 2023-06-07T09:42:26.065Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-options.md

@@ -1,7 +1,7 @@
 ---
 title: "UiExtensionCompilerOptions"
 weight: 10
-date: 2023-06-06T14:49:36.062Z
+date: 2023-06-07T09:42:26.104Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-process-argument.md

@@ -1,7 +1,7 @@
 ---
 title: "UiExtensionCompilerProcessArgument"
 weight: 10
-date: 2023-06-06T14:49:36.061Z
+date: 2023-06-07T09:42:26.103Z
 showtoc: true
 generated: true
 ---

+ 2 - 2
docs/content/developer-guide/multi-vendor-marketplaces/_index.md

@@ -13,10 +13,10 @@ This guide introduces the major concepts & APIs you will need to understand in o
 
 ## Multi-vendor plugin
 
-All the concepts presented here have been implemented in an example multi-vendor plugin. The guides here will refer to specific parts of this plugin which you should consult to get a full understanding of how an implementation would look.
+All the concepts presented here have been implemented in our [example multi-vendor plugin](https://github.com/vendure-ecommerce/vendure/tree/master/packages/dev-server/example-plugins/multivendor-plugin). The guides here will refer to specific parts of this plugin which you should consult to get a full understanding of how an implementation would look.
 
 {{< alert warning >}}
-**Note:** the example multi-vendor plugin is for educational purposes only, and for the sake of clarity leaves out several parts that would be required in a production-ready solution, such as email verification and setup of a real payment solution.
+**Note:** the [example multi-vendor plugin](https://github.com/vendure-ecommerce/vendure/tree/master/packages/dev-server/example-plugins/multivendor-plugin) is for educational purposes only, and for the sake of clarity leaves out several parts that would be required in a production-ready solution, such as email verification and setup of a real payment solution.
 {{< /alert >}}
 
 ## Sellers, Channels & Roles

+ 1 - 0
docs/content/getting-started.md

@@ -72,4 +72,5 @@ Log in with the superadmin credentials you specified, which default to:
 
 * Learn more about [Configuration]({{< relref "/developer-guide/configuration" >}}) of your Vendure server.
 * Get a better understanding of how Vendure works by reading the [Architecture Overview]({{< relref "/developer-guide/overview" >}})
+* Start writing custom plugins with the [Plugin guide]({{< relref "/plugins" >}})
 * Learn how to implement a storefront with the [GraphQL API Guide]({{< relref "/storefront/shop-api-guide" >}})

+ 1 - 1
docs/content/graphql-api/admin/enums.md

@@ -1,7 +1,7 @@
 ---
 title: "Enums"
 weight: 5
-date: 2023-06-06T14:49:27.902Z
+date: 2023-06-07T09:42:15.213Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/admin/input-types.md

@@ -1,7 +1,7 @@
 ---
 title: "Input Objects"
 weight: 4
-date: 2023-06-06T14:49:27.902Z
+date: 2023-06-07T09:42:15.213Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/admin/mutations.md

@@ -1,7 +1,7 @@
 ---
 title: "Mutations"
 weight: 2
-date: 2023-06-06T14:49:27.902Z
+date: 2023-06-07T09:42:15.213Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/admin/object-types.md

@@ -1,7 +1,7 @@
 ---
 title: "Types"
 weight: 3
-date: 2023-06-06T14:49:27.902Z
+date: 2023-06-07T09:42:15.213Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/admin/queries.md

@@ -1,7 +1,7 @@
 ---
 title: "Queries"
 weight: 1
-date: 2023-06-06T14:49:27.902Z
+date: 2023-06-07T09:42:15.213Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/shop/enums.md

@@ -1,7 +1,7 @@
 ---
 title: "Enums"
 weight: 5
-date: 2023-06-06T14:49:26.419Z
+date: 2023-06-07T09:42:13.591Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/shop/input-types.md

@@ -1,7 +1,7 @@
 ---
 title: "Input Objects"
 weight: 4
-date: 2023-06-06T14:49:26.419Z
+date: 2023-06-07T09:42:13.591Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/shop/mutations.md

@@ -1,7 +1,7 @@
 ---
 title: "Mutations"
 weight: 2
-date: 2023-06-06T14:49:26.419Z
+date: 2023-06-07T09:42:13.591Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/shop/object-types.md

@@ -1,7 +1,7 @@
 ---
 title: "Types"
 weight: 3
-date: 2023-06-06T14:49:26.419Z
+date: 2023-06-07T09:42:13.591Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/graphql-api/shop/queries.md

@@ -1,7 +1,7 @@
 ---
 title: "Queries"
 weight: 1
-date: 2023-06-06T14:49:26.419Z
+date: 2023-06-07T09:42:13.591Z
 showtoc: true
 generated: true
 ---

+ 2 - 0
docs/content/migrating-from-v1/breaking-api-changes.md

@@ -209,3 +209,5 @@ If you are using the `@vendure/ui-devkit` package to generate custom ui extensio
   2. Start the server and login as administrator. For each channel that you'd like to use Stripe payments, you need to create a payment method with payment handler Stripe payment and the apiKey and webhookSigningSecret belonging to that channel's Stripe account.
 - If you are using the **BullMQJobQueuePlugin**, the minimum Redis recommended version is 6.2.0.
 - The `WorkerHealthIndicator` which was deprecated in v1.3.0 has been removed, as well as the `jobQueueOptions.enableWorkerHealthCheck` config option.
+- The `CustomerGroupEntityEvent` (fired on creation, update or deletion of a CustomerGroup) has been renamed to `CustomerGroupEvent`, and the former `CustomerGroupEvent` (fired when Customers are added to or removed from a group) has been renamed to `CustomerGroupChangeEvent`.
+- We introduced the [plugin compatibility API]({{< relref "vendure-plugin-metadata" >}}#compatibility) to allow plugins to indicate what version of Vendure they are compatible with. To avoid bootstrap messages you should add this property to your plugins.

+ 8 - 9
docs/content/plugins/_index.md

@@ -5,20 +5,19 @@ weight: 1
 
 # Vendure Plugins
 
-Plugins are the method by which the built-in functionality of Vendure can be extended. Plugins in Vendure allow one to:
+The heart of Vendure is its plugin system. Plugins not only allow you to instantly add new functionality to your Vendure server, they are also the means by which you build out the custom business logic of your application.
 
-* Modify the [VendureConfig]({{< ref "/typescript-api/configuration" >}}#vendureconfig) object.
-* Extend the GraphQL API, including modifying existing types and adding completely new queries and mutations.
+Plugins in Vendure allow one to:
+
+* Modify the [VendureConfig]({{< ref "/typescript-api/configuration" >}}#vendureconfig) object, such as defining [custom fields]({{< relref "customizing-models" >}}) on existing entities.
+* Extend the GraphQL APIs, including modifying existing types and adding completely new queries and mutations.
 * Define new database entities and interact directly with the database.
-* Run code before the server bootstraps, such as starting web servers.
-* Respond to events such as new orders being placed.
+* Interact with external systems that you need to integrate with.
+* Respond to [events]({{< relref "event-bus" >}}) such as new orders being placed.
 * Trigger background tasks to run on the worker process.
 * ... and more!
 
-
-These abilities make plugins a very versatile and powerful means of implementing custom business requirements.
-
-This section details the official Vendure plugins included in the main Vendure repo, as well as a guide on writing your own plugins for Vendure.
+In a typical Vendure application, custom logic and functionality is implemented as a set of plugins which are usually independent of one another. For example, there could be a plugin for each of the following: wishlists, product reviews, loyalty points, gift cards, etc. This allows for a clean separation of concerns and makes it easy to add or remove functionality as needed.
 
 ## Core Plugins
 

+ 8 - 9
docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/_index.md

@@ -8,7 +8,7 @@ weight: 5
 
 ## Adding ActionBar buttons
 
-It may not always make sense to navigate to your extension view from the main nav menu. For example, a "product reviews" extension that shows reviews for a particular product. In this case, you can add new buttons to the "ActionBar", which is the horizontal section at the top of each screen containing the primary actions for that view. This is done using the [addActionBarItem function]({{< relref "add-action-bar-item" >}}).
+It may not always make sense to navigate to your extension view from the main nav menu. For example, an "order invoice" extension that allows you to print invoices for orders. In this case, you can add new buttons to the "ActionBar", which is the horizontal section at the top of each screen containing the primary actions for that view. This is done using the [addActionBarItem function]({{< relref "add-action-bar-item" >}}).
 
 ### ActionBar Example
 
@@ -20,22 +20,21 @@ import { SharedModule, addActionBarItem } from '@vendure/admin-ui/core';
   imports: [SharedModule],
   providers: [
     addActionBarItem({
-      id: 'product-reviews',
-      label: 'Product reviews',
-      locationId: 'product-detail',
-      buttonStyle: 'outline',
+      id: 'print-invoice',
+      label: 'Print invoice',
+      locationId: 'order-detail',
       routerLink: route => {
           const id = route.snapshot.params.id;
-          return ['./extensions/reviews', id];
+          return ['./extensions/order-invoices', id];
       },
-      requiresPermission: 'SuperAdmin'
+      requiresPermission: 'ReadOrder',
     }),
   ],
 })
 export class SharedExtensionModule {}
 ```
 
-{{< figure src="./ui-extensions-actionbar.jpg" >}}
+{{< figure src="./ui-extensions-actionbar.webp" >}}
 
 In each list or detail view in the app, the ActionBar has a unique `locationId` which is how the app knows in which view to place your button. The complete list of available locations into which you can add new ActionBar can be found in the [ActionBarLocationId docs]({{< relref "action-bar-location-id" >}}).
 
@@ -44,7 +43,7 @@ In each list or detail view in the app, the ActionBar has a unique `locationId`
 Certain list views in the Admin UI support bulk actions. There are a default set of bulk actions that are defined by the Admin UI itself (e.g. delete, assign to channels), but using the `@vendure/ui-devit` package
 you are also able to define your own bulk actions.
 
-{{< figure src="./bulk-actions-screenshot.png" >}}
+{{< figure src="./bulk-actions-screenshot.webp" >}}
 
 Use cases for bulk actions include things like:
 

BIN
docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/bulk-actions-screenshot.png


BIN
docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/bulk-actions-screenshot.webp


BIN
docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar.jpg


BIN
docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar.webp


+ 1 - 1
docs/content/plugins/extending-the-admin-ui/adding-ui-translations/_index.md

@@ -10,7 +10,7 @@ The Vendure Admin UI is fully localizable, allowing you to:
 * override existing translations
 * add complete translations for whole new languages
 
-{{< figure src="./ui-translations-01.jpg" caption="The UI language is set from the User menu" >}}
+{{< figure src="./ui-translations-01.webp" caption="The UI language is set from the User menu" >}}
 
 ## Translation format
 

BIN
docs/content/plugins/extending-the-admin-ui/adding-ui-translations/ui-translations-01.jpg


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است