Преглед изворни кода

Merge branch 'master' into minor

Michael Bromley пре 2 година
родитељ
комит
bc85133373
100 измењених фајлова са 332 додато и 162 уклоњено
  1. 65 0
      CHANGELOG.md
  2. 1 1
      docs/config.toml
  3. 1 1
      docs/content/admin-ui-api/action-bar/_index.md
  4. 1 1
      docs/content/admin-ui-api/action-bar/action-bar-item.md
  5. 1 1
      docs/content/admin-ui-api/action-bar/action-bar-location-id.md
  6. 1 1
      docs/content/admin-ui-api/action-bar/add-action-bar-item.md
  7. 1 1
      docs/content/admin-ui-api/action-bar/on-click-context.md
  8. 1 1
      docs/content/admin-ui-api/action-bar/page-location-id.md
  9. 1 1
      docs/content/admin-ui-api/bulk-actions/_index.md
  10. 42 42
      docs/content/admin-ui-api/bulk-actions/bulk-action.md
  11. 1 1
      docs/content/admin-ui-api/bulk-actions/register-bulk-action.md
  12. 1 1
      docs/content/admin-ui-api/components/_index.md
  13. 1 1
      docs/content/admin-ui-api/components/asset-picker-dialog-component.md
  14. 1 1
      docs/content/admin-ui-api/components/chip-component.md
  15. 1 1
      docs/content/admin-ui-api/components/currency-input-component.md
  16. 1 1
      docs/content/admin-ui-api/components/data-table-component.md
  17. 1 1
      docs/content/admin-ui-api/components/data-table2component.md
  18. 1 1
      docs/content/admin-ui-api/components/datetime-picker-component.md
  19. 8 1
      docs/content/admin-ui-api/components/dropdown-component.md
  20. 1 1
      docs/content/admin-ui-api/components/facet-value-selector-component.md
  21. 1 1
      docs/content/admin-ui-api/components/object-tree-component.md
  22. 1 1
      docs/content/admin-ui-api/components/order-state-label-component.md
  23. 1 1
      docs/content/admin-ui-api/components/product-variant-selector-component.md
  24. 1 1
      docs/content/admin-ui-api/components/rich-text-editor-component.md
  25. 1 1
      docs/content/admin-ui-api/components/zone-selector-component.md
  26. 1 1
      docs/content/admin-ui-api/custom-detail-components/_index.md
  27. 1 1
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component-config.md
  28. 2 1
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md
  29. 1 1
      docs/content/admin-ui-api/custom-detail-components/custom-detail-component.md
  30. 1 1
      docs/content/admin-ui-api/custom-detail-components/register-custom-detail-component.md
  31. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/_index.md
  32. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/customer-history-entry-component.md
  33. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/history-entry-component.md
  34. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/history-entry-config.md
  35. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/order-history-entry-component.md
  36. 1 1
      docs/content/admin-ui-api/custom-history-entry-components/register-history-entry-component.md
  37. 1 1
      docs/content/admin-ui-api/custom-input-components/_index.md
  38. 14 7
      docs/content/admin-ui-api/custom-input-components/default-inputs.md
  39. 3 3
      docs/content/admin-ui-api/custom-input-components/form-input-component.md
  40. 1 1
      docs/content/admin-ui-api/custom-input-components/register-form-input-component.md
  41. 1 1
      docs/content/admin-ui-api/directives/_index.md
  42. 1 1
      docs/content/admin-ui-api/directives/if-multichannel-directive.md
  43. 1 1
      docs/content/admin-ui-api/directives/if-permissions-directive.md
  44. 1 1
      docs/content/admin-ui-api/list-detail-views/_index.md
  45. 1 1
      docs/content/admin-ui-api/list-detail-views/base-detail-component.md
  46. 1 1
      docs/content/admin-ui-api/list-detail-views/base-entity-resolver.md
  47. 1 1
      docs/content/admin-ui-api/list-detail-views/base-list-component.md
  48. 10 9
      docs/content/admin-ui-api/list-detail-views/detail-component-with-resolver.md
  49. 1 1
      docs/content/admin-ui-api/list-detail-views/typed-base-detail-component.md
  50. 9 9
      docs/content/admin-ui-api/list-detail-views/typed-base-list-component.md
  51. 1 1
      docs/content/admin-ui-api/nav-menu/_index.md
  52. 1 1
      docs/content/admin-ui-api/nav-menu/add-nav-menu-item.md
  53. 1 1
      docs/content/admin-ui-api/nav-menu/add-nav-menu-section.md
  54. 1 1
      docs/content/admin-ui-api/nav-menu/nav-menu-item.md
  55. 1 1
      docs/content/admin-ui-api/nav-menu/nav-menu-section.md
  56. 1 1
      docs/content/admin-ui-api/nav-menu/navigation-types.md
  57. 1 1
      docs/content/admin-ui-api/pipes/_index.md
  58. 1 1
      docs/content/admin-ui-api/pipes/asset-preview-pipe.md
  59. 1 1
      docs/content/admin-ui-api/pipes/duration-pipe.md
  60. 1 1
      docs/content/admin-ui-api/pipes/file-size-pipe.md
  61. 1 1
      docs/content/admin-ui-api/pipes/has-permission-pipe.md
  62. 1 1
      docs/content/admin-ui-api/pipes/locale-currency-name-pipe.md
  63. 1 1
      docs/content/admin-ui-api/pipes/locale-currency-pipe.md
  64. 1 1
      docs/content/admin-ui-api/pipes/locale-date-pipe.md
  65. 1 1
      docs/content/admin-ui-api/pipes/locale-language-name-pipe.md
  66. 1 1
      docs/content/admin-ui-api/pipes/locale-region-name-pipe.md
  67. 1 1
      docs/content/admin-ui-api/pipes/time-ago-pipe.md
  68. 1 1
      docs/content/admin-ui-api/providers/_index.md
  69. 1 1
      docs/content/admin-ui-api/providers/data-service.md
  70. 1 1
      docs/content/admin-ui-api/providers/modal-service.md
  71. 1 1
      docs/content/admin-ui-api/providers/notification-service.md
  72. 1 1
      docs/content/admin-ui-api/tabs/_index.md
  73. 1 1
      docs/content/admin-ui-api/tabs/page-tab-config.md
  74. 1 1
      docs/content/admin-ui-api/tabs/register-page-tab.md
  75. 1 1
      docs/content/admin-ui-api/ui-devkit/_index.md
  76. 1 1
      docs/content/admin-ui-api/ui-devkit/admin-ui-extension.md
  77. 1 1
      docs/content/admin-ui-api/ui-devkit/compile-ui-extensions.md
  78. 4 2
      docs/content/admin-ui-api/ui-devkit/helpers.md
  79. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-devkit-client.md
  80. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-options.md
  81. 1 1
      docs/content/admin-ui-api/ui-devkit/ui-extension-compiler-process-argument.md
  82. 17 0
      docs/content/deployment/deploying-admin-ui.md
  83. 3 1
      docs/content/deployment/production-configuration/index.md
  84. 1 1
      docs/content/graphql-api/admin/enums.md
  85. 1 1
      docs/content/graphql-api/admin/input-types.md
  86. 1 1
      docs/content/graphql-api/admin/mutations.md
  87. 1 1
      docs/content/graphql-api/admin/object-types.md
  88. 1 1
      docs/content/graphql-api/admin/queries.md
  89. 1 1
      docs/content/graphql-api/shop/enums.md
  90. 1 1
      docs/content/graphql-api/shop/input-types.md
  91. 1 1
      docs/content/graphql-api/shop/mutations.md
  92. 1 1
      docs/content/graphql-api/shop/object-types.md
  93. 1 1
      docs/content/graphql-api/shop/queries.md
  94. 30 0
      docs/content/plugins/extending-the-admin-ui/_index.md
  95. 38 0
      docs/content/plugins/extending-the-admin-ui/add-actions-to-pages/_index.md
  96. 1 1
      docs/content/typescript-api/assets/_index.md
  97. 1 1
      docs/content/typescript-api/assets/asset-naming-strategy.md
  98. 1 1
      docs/content/typescript-api/assets/asset-options.md
  99. 1 1
      docs/content/typescript-api/assets/asset-preview-strategy.md
  100. 1 1
      docs/content/typescript-api/assets/asset-storage-strategy.md

+ 65 - 0
CHANGELOG.md

@@ -1,3 +1,68 @@
+## <small>2.0.4 (2023-07-13)</small>
+
+
+#### Fixes
+
+* **admin-ui** Allow target attribute on `<a>` tags in rich text editor ([8f72e1e](https://github.com/vendure-ecommerce/vendure/commit/8f72e1e)), closes [#2281](https://github.com/vendure-ecommerce/vendure/issues/2281)
+* **admin-ui** Display custom fields in StockLocation detail view ([d36ac84](https://github.com/vendure-ecommerce/vendure/commit/d36ac84))
+* **admin-ui** Fix display of Address custom fields in customer detail view ([189e714](https://github.com/vendure-ecommerce/vendure/commit/189e714)), closes [#2272](https://github.com/vendure-ecommerce/vendure/issues/2272)
+* **admin-ui** Fix layout of select customer dropdown items ([3f8a1da](https://github.com/vendure-ecommerce/vendure/commit/3f8a1da))
+* **admin-ui** Fix top left logo when using setBranding ([120a0bb](https://github.com/vendure-ecommerce/vendure/commit/120a0bb)), closes [#2225](https://github.com/vendure-ecommerce/vendure/issues/2225)
+* **admin-ui** Prevent list filter hotkey F firing from input elements ([c426f8d](https://github.com/vendure-ecommerce/vendure/commit/c426f8d))
+* **asset-server-plugin** Better handling of malformed images ([593e0e2](https://github.com/vendure-ecommerce/vendure/commit/593e0e2)), closes [#2275](https://github.com/vendure-ecommerce/vendure/issues/2275)
+* **core** Add timeout logic to session cache handling ([a817a1a](https://github.com/vendure-ecommerce/vendure/commit/a817a1a))
+* **core** Correctly update StockLocation custom fields ([1cb676a](https://github.com/vendure-ecommerce/vendure/commit/1cb676a))
+* **core** Fix admin authentication when no native auth in shop API ([8fb9719](https://github.com/vendure-ecommerce/vendure/commit/8fb9719)), closes [#2282](https://github.com/vendure-ecommerce/vendure/issues/2282)
+* **core** Fix draft orders not getting correctly placed ([4d01ab5](https://github.com/vendure-ecommerce/vendure/commit/4d01ab5)), closes [#2105](https://github.com/vendure-ecommerce/vendure/issues/2105)
+* **core** Add currencyCode option to RequestContextService.create (#2277) ([2f336a7](https://github.com/vendure-ecommerce/vendure/commit/2f336a7)), closes [#2277](https://github.com/vendure-ecommerce/vendure/issues/2277)
+
+## <small>2.0.3 (2023-07-04)</small>
+
+
+#### Fixes
+
+* **admin-ui-plugin** Enable metricsSummary query without serving UI app ([fba0739](https://github.com/vendure-ecommerce/vendure/commit/fba0739)), closes [#2261](https://github.com/vendure-ecommerce/vendure/issues/2261)
+* **admin-ui** 100% brazilian portuguese translation coverage (#2262) ([0d76b10](https://github.com/vendure-ecommerce/vendure/commit/0d76b10)), closes [#2262](https://github.com/vendure-ecommerce/vendure/issues/2262)
+* **admin-ui** 100% german translation coverage (#2248) ([60c9e86](https://github.com/vendure-ecommerce/vendure/commit/60c9e86)), closes [#2248](https://github.com/vendure-ecommerce/vendure/issues/2248)
+* **admin-ui** Add missing permission to metrics widget ([3353c6e](https://github.com/vendure-ecommerce/vendure/commit/3353c6e))
+* **admin-ui** Add missing search index rebuild trigger ([92f35d0](https://github.com/vendure-ecommerce/vendure/commit/92f35d0))
+* **admin-ui** Allow vertical resize of textarea ([86853ec](https://github.com/vendure-ecommerce/vendure/commit/86853ec)), closes [#2255](https://github.com/vendure-ecommerce/vendure/issues/2255)
+* **admin-ui** Correct location id for product-variant-detail action bar ([ebaff3a](https://github.com/vendure-ecommerce/vendure/commit/ebaff3a))
+* **admin-ui** Correctly sort customer orders in detail view ([86a17af](https://github.com/vendure-ecommerce/vendure/commit/86a17af))
+* **admin-ui** Fix description layout on shipping method detail page ([9b9119c](https://github.com/vendure-ecommerce/vendure/commit/9b9119c))
+* **admin-ui** Fix low limit of facet value selector component ([1b13e7a](https://github.com/vendure-ecommerce/vendure/commit/1b13e7a)), closes [#2251](https://github.com/vendure-ecommerce/vendure/issues/2251)
+* **admin-ui** Fix position of main nav status badge ([8669ef4](https://github.com/vendure-ecommerce/vendure/commit/8669ef4))
+* **admin-ui** Fix product multi select form input ([b5947ec](https://github.com/vendure-ecommerce/vendure/commit/b5947ec)), closes [#2249](https://github.com/vendure-ecommerce/vendure/issues/2249)
+* **admin-ui** Fix quantity label in order table (#2259) ([bb4c9e5](https://github.com/vendure-ecommerce/vendure/commit/bb4c9e5)), closes [#2259](https://github.com/vendure-ecommerce/vendure/issues/2259)
+* **admin-ui** Fix query filter option in order list component (#2258) ([7b56942](https://github.com/vendure-ecommerce/vendure/commit/7b56942)), closes [#2258](https://github.com/vendure-ecommerce/vendure/issues/2258) [#2257](https://github.com/vendure-ecommerce/vendure/issues/2257)
+* **admin-ui** Fix updating product variant asset ([b590bdd](https://github.com/vendure-ecommerce/vendure/commit/b590bdd))
+* **admin-ui** Improve keyboard controls for data table filters ([00f0155](https://github.com/vendure-ecommerce/vendure/commit/00f0155))
+* **admin-ui** Make dropdowns keyboard-accessible ([d9c6cdd](https://github.com/vendure-ecommerce/vendure/commit/d9c6cdd))
+* **admin-ui** Set page to 1 when changing list filters ([f2f60c3](https://github.com/vendure-ecommerce/vendure/commit/f2f60c3))
+* **admin-ui** Style improvements to chip & ng-select ([bcffd9c](https://github.com/vendure-ecommerce/vendure/commit/bcffd9c))
+* **admin-ui** Styling improvements to custom field relation controls ([fb8aca6](https://github.com/vendure-ecommerce/vendure/commit/fb8aca6))
+* **admin-ui** Update es translation (#2260) ([fbc4dff](https://github.com/vendure-ecommerce/vendure/commit/fbc4dff)), closes [#2260](https://github.com/vendure-ecommerce/vendure/issues/2260)
+* **admin-ui** Use SKU to filter product variant list ([52a09a4](https://github.com/vendure-ecommerce/vendure/commit/52a09a4))
+* **admin-ui** Prevent XSS attack vector in rich text editor ([GHSA-gm68-572p-q28r](https://github.com/vendure-ecommerce/vendure/security/advisories/GHSA-gm68-572p-q28r))
+* **core** Correctly set currencyCode when assigning variants to channel ([5e13b0e](https://github.com/vendure-ecommerce/vendure/commit/5e13b0e)), closes [#2228](https://github.com/vendure-ecommerce/vendure/issues/2228)
+* **core** Delete user sessions & token upon user-deletion (#2241) ([b989607](https://github.com/vendure-ecommerce/vendure/commit/b989607)), closes [#2241](https://github.com/vendure-ecommerce/vendure/issues/2241)
+* **core** Disable graphql playground according to apiOptions setting ([b9a0200](https://github.com/vendure-ecommerce/vendure/commit/b9a0200)), closes [#2246](https://github.com/vendure-ecommerce/vendure/issues/2246)
+* **core** Fix Asset.tags resolution in Shop API ([555666c](https://github.com/vendure-ecommerce/vendure/commit/555666c)), closes [#1754](https://github.com/vendure-ecommerce/vendure/issues/1754)
+* **core** Fix issue updating customer email address when no native auth ([79aab66](https://github.com/vendure-ecommerce/vendure/commit/79aab66))
+* **core** Fix null reference error when hydrating entity ([5a2b2b7](https://github.com/vendure-ecommerce/vendure/commit/5a2b2b7)), closes [#2264](https://github.com/vendure-ecommerce/vendure/issues/2264)
+* **core** Update variants when changing channel defaultCurrencyCode ([2303328](https://github.com/vendure-ecommerce/vendure/commit/2303328)), closes [#2190](https://github.com/vendure-ecommerce/vendure/issues/2190)
+* **core** Use more secure default for cookie sameSite option ([4a10d67](https://github.com/vendure-ecommerce/vendure/commit/4a10d67))
+* **email-plugin** Add warning when running devMode with transport ([7498901](https://github.com/vendure-ecommerce/vendure/commit/7498901)), closes [#2253](https://github.com/vendure-ecommerce/vendure/issues/2253)
+* **payments-plugin** Add compatibility metadata to payment plugins ([2dbfa2b](https://github.com/vendure-ecommerce/vendure/commit/2dbfa2b))
+
+#### Perf
+
+* **core** Improve performance of Product.facetValues resolver (#2239) ([a0e891a](https://github.com/vendure-ecommerce/vendure/commit/a0e891a)), closes [#2239](https://github.com/vendure-ecommerce/vendure/issues/2239)
+
+#### Features
+
+* **admin-ui** Add product variant bulk actions (assign/delete channel, delete) (#2238) ([b25ddcd](https://github.com/vendure-ecommerce/vendure/commit/b25ddcd)), closes [#2238](https://github.com/vendure-ecommerce/vendure/issues/2238)
+
 ## <small>2.0.2 (2023-06-19)</small>
 
 

+ 1 - 1
docs/config.toml

@@ -1,4 +1,4 @@
-baseURL = "https://www.vendure.io/"
+baseURL = "https://docs.vendure.io/"
 languageCode = "en-us"
 title = "Vendure headless commerce"
 googleAnalytics = "UA-133911942-1"

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

@@ -1,7 +1,7 @@
 ---
 title: "Action Bar"
 weight: 10
-date: 2023-06-08T15:03:34.592Z
+date: 2023-07-14T16:57:51.071Z
 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-21T06:23:42.172Z
+date: 2023-07-14T16:57:51.118Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "ActionBarLocationId"
 weight: 10
-date: 2023-06-21T06:23:42.035Z
+date: 2023-07-14T16:57:51.071Z
 showtoc: true
 generated: true
 ---

+ 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-21T06:23:42.202Z
+date: 2023-07-14T16:57:51.125Z
 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-21T06:23:42.164Z
+date: 2023-07-14T16:57:51.116Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "PageLocationId"
 weight: 10
-date: 2023-06-21T06:23:42.034Z
+date: 2023-07-14T16:57:51.071Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Bulk Actions"
 weight: 10
-date: 2023-06-08T15:03:34.648Z
+date: 2023-07-14T16:57:51.088Z
 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-21T06:23:42.057Z
+date: 2023-07-14T16:57:51.079Z
 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://core.clarity.design/foundation/icons/shapes/) 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-21T06:23:42.078Z
+date: 2023-07-14T16:57:51.088Z
 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-08T15:03:34.852Z
+date: 2023-07-14T16:57:51.149Z
 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-21T06:23:42.254Z
+date: 2023-07-14T16:57:51.138Z
 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-21T06:23:42.298Z
+date: 2023-07-14T16:57:51.149Z
 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-21T06:23:42.309Z
+date: 2023-07-14T16:57:51.152Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "DataTableComponent"
 weight: 10
-date: 2023-06-21T06:23:42.341Z
+date: 2023-07-14T16:57:51.164Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "DataTable2Component"
 weight: 10
-date: 2023-06-21T06:23:42.378Z
+date: 2023-07-14T16:57:51.179Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "DatetimePickerComponent"
 weight: 10
-date: 2023-06-21T06:23:42.429Z
+date: 2023-07-14T16:57:51.199Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "DropdownComponent"
 weight: 10
-date: 2023-06-21T06:23:42.498Z
+date: 2023-07-14T16:57:51.220Z
 showtoc: true
 generated: true
 ---
@@ -42,6 +42,7 @@ Used for building dropdown menus.
 
 ```TypeScript
 class DropdownComponent {
+  isOpen = false;
   public public trigger: ElementRef;
   @Input() @Input() manualToggle = false;
   onClick() => ;
@@ -52,6 +53,12 @@ class DropdownComponent {
 ```
 ## Members
 
+### isOpen
+
+{{< member-info kind="property" type=""  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
 ### trigger
 
 {{< member-info kind="property" type="ElementRef"  >}}

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

@@ -1,7 +1,7 @@
 ---
 title: "FacetValueSelectorComponent"
 weight: 10
-date: 2023-06-21T06:23:42.507Z
+date: 2023-07-14T16:57:51.224Z
 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-21T06:23:42.540Z
+date: 2023-07-14T16:57:51.235Z
 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-21T06:23:42.554Z
+date: 2023-07-14T16:57:51.241Z
 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-21T06:23:42.558Z
+date: 2023-07-14T16:57:51.242Z
 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-21T06:23:42.569Z
+date: 2023-07-14T16:57:51.246Z
 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-21T06:23:42.590Z
+date: 2023-07-14T16:57:51.254Z
 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-08T15:03:34.595Z
+date: 2023-07-14T16:57:51.072Z
 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-21T06:23:42.085Z
+date: 2023-07-14T16:57:51.090Z
 showtoc: true
 generated: true
 ---

+ 2 - 1
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-21T06:23:42.036Z
+date: 2023-07-14T16:57:51.071Z
 showtoc: true
 generated: true
 ---
@@ -27,6 +27,7 @@ type CustomDetailComponentLocationId = | 'administrator-profile'
     | 'country-detail'
     | 'customer-detail'
     | 'customer-group-detail'
+    | 'draft-order-detail'
     | 'facet-detail'
     | 'global-settings-detail'
     | 'order-detail'

+ 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-21T06:23:42.081Z
+date: 2023-07-14T16:57:51.089Z
 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-21T06:23:42.090Z
+date: 2023-07-14T16:57:51.092Z
 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-08T15:03:34.668Z
+date: 2023-07-14T16:57:51.095Z
 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-21T06:23:42.103Z
+date: 2023-07-14T16:57:51.097Z
 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-21T06:23:42.093Z
+date: 2023-07-14T16:57:51.092Z
 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-21T06:23:42.107Z
+date: 2023-07-14T16:57:51.098Z
 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-21T06:23:42.100Z
+date: 2023-07-14T16:57:51.096Z
 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-21T06:23:42.112Z
+date: 2023-07-14T16:57:51.099Z
 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-08T15:03:34.591Z
+date: 2023-07-14T16:57:51.070Z
 showtoc: false
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Default Inputs"
 weight: 10
-date: 2023-06-21T06:23:42.639Z
+date: 2023-07-14T16:57:51.266Z
 showtoc: true
 generated: true
 ---
@@ -336,12 +336,13 @@ Should be used with `ID` type fields which represent Customer IDs.
 class CustomerGroupFormInputComponent implements FormInputComponent, OnInit {
   static readonly static readonly id: DefaultFormComponentId = 'customer-group-form-input';
   @Input() @Input() readonly: boolean;
-  formControl: UntypedFormControl;
+  formControl: FormControl<string | { id: string }>;
   customerGroups$: Observable<GetCustomerGroupsQuery['customerGroups']['items']>;
   config: DefaultFormComponentConfig<'customer-group-form-input'>;
   constructor(dataService: DataService)
   ngOnInit() => ;
   selectGroup(group: ItemOf<GetCustomerGroupsQuery, 'customerGroups'>) => ;
+  compareWith(o1: ItemOf<GetCustomerGroupsQuery, 'customerGroups'>, o2: ItemOf<GetCustomerGroupsQuery, 'customerGroups'>) => ;
 }
 ```
 ## Implements
@@ -366,7 +367,7 @@ class CustomerGroupFormInputComponent implements FormInputComponent, OnInit {
 
 ### formControl
 
-{{< member-info kind="property" type="UntypedFormControl"  >}}
+{{< member-info kind="property" type="FormControl&#60;string | { id: string }&#62;"  >}}
 
 {{< member-description >}}{{< /member-description >}}
 
@@ -400,6 +401,12 @@ class CustomerGroupFormInputComponent implements FormInputComponent, OnInit {
 
 {{< member-description >}}{{< /member-description >}}
 
+### compareWith
+
+{{< member-info kind="method" type="(o1: ItemOf&#60;GetCustomerGroupsQuery, 'customerGroups'&#62;, o2: ItemOf&#60;GetCustomerGroupsQuery, 'customerGroups'&#62;) => "  >}}
+
+{{< member-description >}}{{< /member-description >}}
+
 
 </div>
 <div class="symbol">
@@ -705,8 +712,8 @@ class ProductSelectorFormInputComponent implements FormInputComponent, OnInit {
   static readonly static readonly id: DefaultFormComponentId = 'product-selector-form-input';
   readonly readonly isListInput = true;
   readonly: boolean;
-  formControl: UntypedFormControl;
-  config: InputComponentConfig;
+  formControl: FormControl<Array<string | { id: string }>>;
+  config: DefaultFormComponentUiConfig<'product-selector-form-input'>;
   selection$: Observable<Array<GetProductVariantQuery['productVariant']>>;
   constructor(dataService: DataService)
   ngOnInit() => ;
@@ -742,13 +749,13 @@ class ProductSelectorFormInputComponent implements FormInputComponent, OnInit {
 
 ### formControl
 
-{{< member-info kind="property" type="UntypedFormControl"  >}}
+{{< member-info kind="property" type="FormControl&#60;Array&#60;string | { id: string }&#62;&#62;"  >}}
 
 {{< member-description >}}{{< /member-description >}}
 
 ### config
 
-{{< member-info kind="property" type="InputComponentConfig"  >}}
+{{< member-info kind="property" type="DefaultFormComponentUiConfig&#60;'product-selector-form-input'&#62;"  >}}
 
 {{< member-description >}}{{< /member-description >}}
 

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

@@ -1,7 +1,7 @@
 ---
 title: "FormInputComponent"
 weight: 10
-date: 2023-06-21T06:23:42.028Z
+date: 2023-07-14T16:57:51.068Z
 showtoc: true
 generated: true
 ---
@@ -24,7 +24,7 @@ inputs for custom fields, or for configurable arguments.
 interface FormInputComponent<C = InputComponentConfig> {
   isListInput?: boolean;
   readonly: boolean;
-  formControl: UntypedFormControl;
+  formControl: FormControl;
   config: C;
 }
 ```
@@ -47,7 +47,7 @@ component should be rendered in a read-only state.{{< /member-description >}}
 
 ### formControl
 
-{{< member-info kind="property" type="UntypedFormControl"  >}}
+{{< member-info kind="property" type="FormControl"  >}}
 
 {{< member-description >}}This controls the actual value of the form item. The current value is available
 as `this.formControl.value`, and an Observable stream of value changes is available

+ 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-21T06:23:42.758Z
+date: 2023-07-14T16:57:51.323Z
 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-08T15:03:35.190Z
+date: 2023-07-14T16:57:51.265Z
 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-21T06:23:42.622Z
+date: 2023-07-14T16:57:51.263Z
 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-21T06:23:42.629Z
+date: 2023-07-14T16:57:51.265Z
 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-08T15:03:34.498Z
+date: 2023-07-14T16:57:51.042Z
 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-21T06:23:41.854Z
+date: 2023-07-14T16:57:51.024Z
 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-21T06:23:41.971Z
+date: 2023-07-14T16:57:51.047Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "BaseListComponent"
 weight: 10
-date: 2023-06-21T06:23:41.976Z
+date: 2023-07-14T16:57:51.048Z
 showtoc: true
 generated: true
 ---

+ 10 - 9
docs/content/admin-ui-api/list-detail-views/detail-component-with-resolver.md

@@ -1,7 +1,7 @@
 ---
 title: "DetailComponentWithResolver"
 weight: 10
-date: 2023-06-21T06:23:41.968Z
+date: 2023-07-14T16:57:51.046Z
 showtoc: true
 generated: true
 ---
@@ -15,8 +15,8 @@ generated: true
 
 {{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-detail.component.ts" sourceLine="243" packageName="@vendure/admin-ui">}}
 
-A helper function for creating tabs that point to a <a href='/admin-ui-api/list-detail-views/typed-base-detail-component#typedbasedetailcomponent'>TypedBaseDetailComponent</a>. This takes
-care of the route resolver parts so that the detail component automatically has access to the
+A helper function for creating tabs that point to a <a href='/admin-ui-api/list-detail-views/typed-base-detail-component#typedbasedetailcomponent'>TypedBaseDetailComponent</a>. This takes
+care of the route resolver parts so that the detail component automatically has access to the
 correct resolved detail data.
 
 *Example*
@@ -44,17 +44,18 @@ export class ProductSpecsUiExtensionModule {}
 ## Signature
 
 ```TypeScript
-function detailComponentWithResolver<T extends TypedDocumentNode<any, { id: string }>, Field extends keyof ResultOf<T>, R extends Field>(config: {
-    component: Type<TypedBaseDetailComponent<T, Field>>;
-    query: T;
-    entityKey: R;
-    getBreadcrumbs?: (entity: ResultOf<T>[R]) => BreadcrumbValue;
+function detailComponentWithResolver<T extends TypedDocumentNode<any, { id: string }>, Field extends keyof ResultOf<T>, R extends Field>(config: {
+    component: Type<TypedBaseDetailComponent<T, Field>>;
+    query: T;
+    entityKey: R;
+    getBreadcrumbs?: (entity: ResultOf<T>[R]) => BreadcrumbValue;
+    variables?: T extends TypedDocumentNode<any, infer V> ? Omit<V, 'id'> : never;
 }): void
 ```
 ## Parameters
 
 ### config
 
-{{< member-info kind="parameter" type="{
     component: Type&#60;<a href='/admin-ui-api/list-detail-views/typed-base-detail-component#typedbasedetailcomponent'>TypedBaseDetailComponent</a>&#60;T, Field&#62;&#62;;
     query: T;
     entityKey: R;
     getBreadcrumbs?: (entity: ResultOf&#60;T&#62;[R]) =&#62; BreadcrumbValue;
 }" >}}
+{{< member-info kind="parameter" type="{     component: Type&#60;<a href='/admin-ui-api/list-detail-views/typed-base-detail-component#typedbasedetailcomponent'>TypedBaseDetailComponent</a>&#60;T, Field&#62;&#62;;     query: T;     entityKey: R;     getBreadcrumbs?: (entity: ResultOf&#60;T&#62;[R]) =&#62; BreadcrumbValue;     variables?: T extends TypedDocumentNode&#60;any, infer V&#62; ? Omit&#60;V, 'id'&#62; : never; }" >}}
 
 </div>

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

@@ -1,7 +1,7 @@
 ---
 title: "TypedBaseDetailComponent"
 weight: 10
-date: 2023-06-21T06:23:41.962Z
+date: 2023-07-14T16:57:51.043Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "TypedBaseListComponent"
 weight: 10
-date: 2023-06-21T06:23:42.009Z
+date: 2023-07-14T16:57:51.061Z
 showtoc: true
 generated: true
 ---
@@ -13,9 +13,9 @@ generated: true
 
 # TypedBaseListComponent
 
-{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-list.component.ts" sourceLine="198" packageName="@vendure/admin-ui">}}
+{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/common/base-list.component.ts" sourceLine="199" 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
+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
@@ -28,11 +28,11 @@ class TypedBaseListComponent<T extends TypedDocumentNode<any, Vars>, Field exten
   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>>;
+  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']>>;
@@ -91,7 +91,7 @@ class TypedBaseListComponent<T extends TypedDocumentNode<any, Vars>, Field exten
 
 ### 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-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 >}}
 

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

@@ -1,7 +1,7 @@
 ---
 title: "Nav Menu"
 weight: 10
-date: 2023-06-08T15:03:34.714Z
+date: 2023-07-14T16:57:51.109Z
 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-21T06:23:42.196Z
+date: 2023-07-14T16:57:51.124Z
 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-21T06:23:42.192Z
+date: 2023-07-14T16:57:51.123Z
 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-21T06:23:42.138Z
+date: 2023-07-14T16:57:51.109Z
 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-21T06:23:42.149Z
+date: 2023-07-14T16:57:51.113Z
 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-21T06:23:42.134Z
+date: 2023-07-14T16:57:51.108Z
 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-08T15:03:35.350Z
+date: 2023-07-14T16:57:51.325Z
 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-21T06:23:42.760Z
+date: 2023-07-14T16:57:51.324Z
 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-21T06:23:42.763Z
+date: 2023-07-14T16:57:51.325Z
 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-21T06:23:42.767Z
+date: 2023-07-14T16:57:51.328Z
 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-21T06:23:42.770Z
+date: 2023-07-14T16:57:51.329Z
 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-21T06:23:42.774Z
+date: 2023-07-14T16:57:51.331Z
 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-21T06:23:42.779Z
+date: 2023-07-14T16:57:51.334Z
 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-21T06:23:42.783Z
+date: 2023-07-14T16:57:51.336Z
 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-21T06:23:42.788Z
+date: 2023-07-14T16:57:51.339Z
 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-21T06:23:42.793Z
+date: 2023-07-14T16:57:51.341Z
 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-21T06:23:42.797Z
+date: 2023-07-14T16:57:51.344Z
 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-08T15:03:34.620Z
+date: 2023-07-14T16:57:51.079Z
 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-21T06:23:42.038Z
+date: 2023-07-14T16:57:51.072Z
 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-21T06:23:42.114Z
+date: 2023-07-14T16:57:51.099Z
 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-21T06:23:42.206Z
+date: 2023-07-14T16:57:51.126Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Tabs"
 weight: 10
-date: 2023-06-08T15:03:34.816Z
+date: 2023-07-14T16:57:51.138Z
 showtoc: false
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "PageTabConfig"
 weight: 10
-date: 2023-06-21T06:23:42.238Z
+date: 2023-07-14T16:57:51.134Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "RegisterPageTab"
 weight: 10
-date: 2023-06-21T06:23:42.251Z
+date: 2023-07-14T16:57:51.138Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Ui Devkit"
 weight: 10
-date: 2023-06-08T15:03:35.414Z
+date: 2023-07-14T16:57:51.349Z
 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-21T06:23:42.810Z
+date: 2023-07-14T16:57:51.350Z
 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-21T06:23:42.807Z
+date: 2023-07-14T16:57:51.349Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Helpers"
 weight: 10
-date: 2023-06-21T06:23:42.809Z
+date: 2023-07-14T16:57:51.349Z
 showtoc: true
 generated: true
 ---
@@ -13,7 +13,7 @@ generated: true
 
 # setBranding
 
-{{< generation-info sourceFile="packages/ui-devkit/src/compiler/helpers.ts" sourceLine="24" packageName="@vendure/ui-devkit">}}
+{{< generation-info sourceFile="packages/ui-devkit/src/compiler/helpers.ts" sourceLine="26" packageName="@vendure/ui-devkit">}}
 
 A helper function to simplify the process of setting custom branding images.
 
@@ -24,7 +24,9 @@ compileUiExtensions({
   outputPath: path.join(__dirname, '../admin-ui'),
   extensions: [
     setBranding({
+      // This is used as the branding in the top-left above the navigation
       smallLogoPath: path.join(__dirname, 'images/my-logo-sm.png'),
+      // This is used on the login page
       largeLogoPath: path.join(__dirname, 'images/my-logo-lg.png'),
       faviconPath: path.join(__dirname, 'images/my-favicon.ico'),
     }),

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

@@ -1,7 +1,7 @@
 ---
 title: "UiDevkitClient"
 weight: 10
-date: 2023-06-21T06:23:42.801Z
+date: 2023-07-14T16:57:51.346Z
 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-21T06:23:42.829Z
+date: 2023-07-14T16:57:51.362Z
 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-21T06:23:42.828Z
+date: 2023-07-14T16:57:51.361Z
 showtoc: true
 generated: true
 ---

+ 17 - 0
docs/content/deployment/deploying-admin-ui.md

@@ -11,6 +11,23 @@ If you have customized the Admin UI with extensions, you should [compile your ex
 
 Usually, the Admin UI is served from the Vendure server via the AdminUiPlugin. However, you may wish to deploy the Admin UI app elsewhere. Since it is just a static Angular app, it can be deployed to any static hosting service such as Vercel or Netlify.
 
+#### Metrics
+
+The AdminUiPlugin not only serves the Admin UI app, but also provides a `metricSummary` query which is used to display the order metrics on the dashboard. If you wish to deploy the Admin UI app stand-alone (not served by the AdminUiPlugin), but still want to display the metrics on the dashboard, you'll need to include the AdminUiPlugin in your server's plugins array, but do not call `init()`:
+
+```TypeScript
+import { AdminUiPlugin } from '\@vendure/admin-ui-plugin';
+
+const config: VendureConfig = {
+  plugins: [
+    AdminUiPlugin, // <== include the plugin, but don't call init()
+  ],
+  // ...
+};
+```
+
+#### Example Script
+
 Here's an example script that can be run as part of your host's `build` command, which will generate a stand-alone app bundle and configure it to point to your remote server API.
 
 This example is for Vercel, and assumes:

+ 3 - 1
docs/content/deployment/production-configuration/index.md

@@ -91,7 +91,9 @@ For this reason you should consider using the UuidIdStrategy for production.
 import { UuidIdStrategy, VendureConfig } from '@vendure/core';
   
 export const config: VendureConfig = {
-  entityIdStrategy: new UuidIdStrategy(),
+  entityOptions: {
+        entityIdStrategy: new UuidIdStrategy(),
+  },
   // ...
 }
 ```

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

@@ -1,7 +1,7 @@
 ---
 title: "Enums"
 weight: 5
-date: 2023-06-21T06:23:32.377Z
+date: 2023-07-04T11:02:07.589Z
 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-21T06:23:32.377Z
+date: 2023-07-04T11:02:07.589Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Mutations"
 weight: 2
-date: 2023-06-21T06:23:32.377Z
+date: 2023-07-04T11:02:07.589Z
 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-21T06:23:32.377Z
+date: 2023-07-04T11:02:07.589Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Queries"
 weight: 1
-date: 2023-06-21T06:23:32.377Z
+date: 2023-07-04T11:02:07.589Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Enums"
 weight: 5
-date: 2023-06-21T06:23:30.799Z
+date: 2023-07-04T11:02:06.199Z
 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-21T06:23:30.799Z
+date: 2023-07-04T11:02:06.199Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Mutations"
 weight: 2
-date: 2023-06-21T06:23:30.799Z
+date: 2023-07-04T11:02:06.199Z
 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-21T06:23:30.799Z
+date: 2023-07-04T11:02:06.199Z
 showtoc: true
 generated: true
 ---

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

@@ -1,7 +1,7 @@
 ---
 title: "Queries"
 weight: 1
-date: 2023-06-21T06:23:30.799Z
+date: 2023-07-04T11:02:06.199Z
 showtoc: true
 generated: true
 ---

+ 30 - 0
docs/content/plugins/extending-the-admin-ui/_index.md

@@ -100,3 +100,33 @@ plugins: [
 }
 ```
 {{< /alert >}}
+{{< alert warning >}}
+**Also note:** When you use compileUiExtensions to compile the Angular App, a new directory will be created to host the compiled Admin-UI app. The name and location of the app is specified by the "outputPath" which is set in the compileUiExtensions options object. Make sure to **exlcude** the admin-ui directory from typescript's transpilation since code there is already transpiled.
+```json
+{
+  "exclude": [
+    "node_modules",
+    "migration.ts",
+    "admin-ui" // <-- add this
+  ],
+}
+```
+{{< /alert >}}
+
+{{< alert "primary" >}}
+To compile the angular app ahead of time (for production) and copy the dist folder to Vendure's output dist folder, include the following commands in your packages.json scripts:
+```json
+{
+  "scripts": {
+    "copy": "npx copyfiles -u 1 'src/__admin-ui/dist/**/*' dist",
+    "build": "tsc && yarn copy",
+    "build:admin": "rimraf admin-ui && npx ts-node src/compile-admin-ui.ts",
+  }
+}
+```
+"build:admin" will remove the admin-ui folder and run the compileUiExtensions function to generate the admin-ui Angular app.
+Make sure to install copyfiles before running the "copy" command:
+```bash
+yarn install copyfiles
+```
+{{< /alert >}}

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

@@ -38,6 +38,44 @@ export class SharedExtensionModule {}
 
 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" >}}).
 
+### Adding onClick Actions to ActionBar buttons
+
+The onClick property of the addActionBarItem function allows you to define a function that will be executed when the ActionBar button is clicked. This function receives two arguments: the click event and the current context.
+
+The context object provides access to the DataService, which allows you to perform GraphQL queries and mutations, and the current route, which can be used to get parameters from the URL.
+
+Here's an example of how to use the onClick property to perform a GraphQL mutation when the ActionBar button is clicked:
+
+```TypeScript
+addActionBarItem({
+    id: 'myButtonId',
+    label: 'My Button Label',
+    locationId: 'order-detail',
+    onClick: async (event, context) => {
+        const mutation = gql`
+            mutation MyMutation($orderId: ID!) {
+                myMutation(orderId: $orderId)
+            }
+        `;
+
+        try {
+            const orderId = context.route.snapshot.params.id;
+            const mutationResult = await firstValueFrom(
+                context.dataService.mutate(mutation, { orderId })
+            );
+            return mutationResult;
+        } catch (error) {
+            console.error('Error executing mutation:', error);
+        }
+    },
+    requiresPermission: 'ReadOrder',
+}),
+```
+
+In this example, clicking the ActionBar button triggers a GraphQL mutation. The `context.dataService` is utilized to execute the mutation. It can also be employed to retrieve additional information about the current order if needed. The `context.route` is used to extract the ID of the current order from the URL.
+
+The utility function `firstValueFrom` from the RxJS library is used in this example to convert the Observable returned by `context.dataService.mutate(...)` into a Promise. This conversion allows the use of the `await` keyword to pause execution until the Observable emits its first value or completes.
+
 ## Adding Bulk Actions
 
 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

+ 1 - 1
docs/content/typescript-api/assets/_index.md

@@ -1,7 +1,7 @@
 ---
 title: "Assets"
 weight: 10
-date: 2023-06-07T09:42:20.845Z
+date: 2023-07-14T16:57:49.465Z
 showtoc: false
 generated: true
 ---

+ 1 - 1
docs/content/typescript-api/assets/asset-naming-strategy.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetNamingStrategy"
 weight: 10
-date: 2023-06-21T06:23:37.094Z
+date: 2023-07-14T16:57:49.462Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/typescript-api/assets/asset-options.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetOptions"
 weight: 10
-date: 2023-06-21T06:23:37.858Z
+date: 2023-07-14T16:57:49.751Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/typescript-api/assets/asset-preview-strategy.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetPreviewStrategy"
 weight: 10
-date: 2023-06-21T06:23:37.108Z
+date: 2023-07-14T16:57:49.467Z
 showtoc: true
 generated: true
 ---

+ 1 - 1
docs/content/typescript-api/assets/asset-storage-strategy.md

@@ -1,7 +1,7 @@
 ---
 title: "AssetStorageStrategy"
 weight: 10
-date: 2023-06-21T06:23:37.111Z
+date: 2023-07-14T16:57:49.469Z
 showtoc: true
 generated: true
 ---

Неке датотеке нису приказане због велике количине промена