@vendure/dashboard 3.3.8 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +62 -0
  2. package/dist/plugin/api/api-extensions.d.ts +1 -0
  3. package/dist/plugin/api/api-extensions.js +38 -0
  4. package/dist/plugin/api/metrics.resolver.d.ts +8 -0
  5. package/dist/plugin/api/metrics.resolver.js +40 -0
  6. package/dist/plugin/config/metrics-strategies.d.ts +39 -0
  7. package/dist/plugin/config/metrics-strategies.js +74 -0
  8. package/dist/plugin/constants.d.ts +4 -3
  9. package/dist/plugin/constants.js +10 -277
  10. package/dist/plugin/dashboard.plugin.d.ts +95 -0
  11. package/dist/plugin/dashboard.plugin.js +168 -0
  12. package/dist/plugin/index.d.ts +2 -1
  13. package/dist/plugin/index.js +18 -1
  14. package/dist/plugin/package.json +3 -0
  15. package/dist/plugin/service/metrics.service.d.ts +15 -0
  16. package/dist/plugin/service/metrics.service.js +145 -0
  17. package/dist/plugin/types.d.ts +20 -37
  18. package/dist/plugin/types.js +13 -1
  19. package/dist/vite/constants.d.ts +5 -0
  20. package/dist/vite/constants.js +277 -0
  21. package/dist/vite/index.d.ts +1 -0
  22. package/dist/vite/index.js +1 -0
  23. package/dist/vite/types.d.ts +40 -0
  24. package/dist/vite/utils/config-loader.js +1 -0
  25. package/dist/{plugin → vite}/utils/plugin-discovery.js +1 -1
  26. package/dist/vite/utils/ui-config.d.ts +3 -0
  27. package/dist/vite/utils/ui-config.js +30 -0
  28. package/dist/vite/vite-plugin-ui-config.d.ts +123 -0
  29. package/dist/{plugin → vite}/vite-plugin-ui-config.js +3 -11
  30. package/dist/{plugin → vite}/vite-plugin-vendure-dashboard.js +1 -1
  31. package/index.html +1 -1
  32. package/package.json +16 -7
  33. package/src/app/app-providers.tsx +1 -1
  34. package/src/app/routes/_authenticated/_collections/collections_.$id.tsx +1 -1
  35. package/src/app/routes/_authenticated/_facets/components/facet-values-table.tsx +20 -35
  36. package/src/app/routes/_authenticated/_facets/facets.graphql.ts +40 -0
  37. package/src/app/routes/_authenticated/_facets/facets_.$facetId.values_.$id.tsx +147 -0
  38. package/src/app/routes/_authenticated/_orders/components/order-history/order-history.tsx +380 -33
  39. package/src/app/routes/_authenticated/_products/components/option-value-input.tsx +1 -1
  40. package/src/app/routes/_authenticated/_system/healthchecks.tsx +1 -1
  41. package/src/app/routes/_authenticated/_system/job-queue.tsx +1 -0
  42. package/src/app/routes/_authenticated/index.tsx +2 -2
  43. package/src/app/routes/_authenticated.tsx +1 -1
  44. package/src/lib/components/data-input/rich-text-input.tsx +14 -8
  45. package/src/lib/components/data-table/data-table-bulk-actions.tsx +17 -4
  46. package/src/lib/components/layout/app-layout.tsx +2 -7
  47. package/src/lib/components/layout/channel-switcher.tsx +166 -57
  48. package/src/lib/components/layout/dev-mode-indicator.tsx +18 -0
  49. package/src/lib/components/layout/language-dialog.tsx +2 -1
  50. package/src/lib/components/layout/manage-languages-dialog.tsx +77 -40
  51. package/src/lib/components/layout/nav-item-wrapper.tsx +107 -0
  52. package/src/lib/components/layout/nav-main.tsx +196 -107
  53. package/src/lib/components/login/login-form.tsx +80 -45
  54. package/src/lib/components/shared/asset/asset-bulk-actions.tsx +19 -4
  55. package/src/lib/components/shared/asset/asset-gallery.tsx +2 -2
  56. package/src/lib/components/shared/detail-page-button.tsx +42 -0
  57. package/src/lib/components/shared/history-timeline/history-entry-date.tsx +37 -0
  58. package/src/lib/components/shared/history-timeline/history-entry.tsx +135 -65
  59. package/src/lib/components/shared/history-timeline/history-note-input.tsx +4 -4
  60. package/src/lib/components/shared/history-timeline/history-timeline.tsx +7 -54
  61. package/src/lib/components/shared/translatable-form-field.tsx +16 -2
  62. package/src/lib/framework/defaults.ts +4 -10
  63. package/src/lib/framework/extension-api/define-dashboard-extension.ts +4 -0
  64. package/src/lib/framework/extension-api/extension-api-types.ts +11 -2
  65. package/src/lib/framework/extension-api/logic/index.ts +1 -0
  66. package/src/lib/framework/extension-api/logic/login.ts +17 -0
  67. package/src/lib/framework/extension-api/logic/navigation.ts +1 -0
  68. package/src/lib/framework/extension-api/types/data-table.ts +12 -3
  69. package/src/lib/framework/extension-api/types/detail-forms.ts +13 -0
  70. package/src/lib/framework/extension-api/types/form-components.ts +11 -0
  71. package/src/lib/framework/extension-api/types/index.ts +1 -0
  72. package/src/lib/framework/extension-api/types/layout.ts +3 -6
  73. package/src/lib/framework/extension-api/types/login.ts +96 -0
  74. package/src/lib/framework/extension-api/types/navigation.ts +57 -0
  75. package/src/lib/framework/extension-api/types/widgets.ts +0 -4
  76. package/src/lib/framework/extension-api/use-login-extensions.ts +26 -0
  77. package/src/lib/framework/layout-engine/dev-mode-button.tsx +24 -0
  78. package/src/lib/framework/layout-engine/location-wrapper.tsx +5 -12
  79. package/src/lib/framework/registry/global-registry.ts +4 -0
  80. package/src/lib/framework/registry/registry-types.ts +2 -0
  81. package/src/lib/graphql/api.ts +25 -3
  82. package/src/lib/graphql/graphql-env.d.ts +28 -28
  83. package/src/lib/graphql/settings-store-operations.ts +17 -0
  84. package/src/lib/hooks/use-floating-bulk-actions.ts +82 -0
  85. package/src/lib/hooks/use-local-format.ts +20 -5
  86. package/src/lib/index.ts +2 -1
  87. package/src/lib/providers/channel-provider.tsx +13 -11
  88. package/src/lib/providers/user-settings.tsx +78 -3
  89. package/src/lib/virtual.d.ts +26 -2
  90. package/src/vite-env.d.ts +2 -0
  91. package/vite/utils/plugin-discovery.ts +1 -1
  92. package/vite/utils/ui-config.ts +30 -42
  93. package/vite/vite-plugin-ui-config.ts +119 -17
  94. package/vite/vite-plugin-vendure-dashboard.ts +1 -1
  95. package/dist/plugin/utils/ui-config.d.ts +0 -3
  96. package/dist/plugin/utils/ui-config.js +0 -34
  97. package/dist/plugin/vite-plugin-ui-config.d.ts +0 -15
  98. package/src/app/routes/_authenticated/_facets/components/add-facet-value-dialog.tsx +0 -146
  99. package/src/lib/components/shared/rich-text-editor.tsx +0 -0
  100. /package/dist/{plugin/utils/ast-utils.spec.d.ts → vite/types.js} +0 -0
  101. /package/dist/{plugin → vite}/utils/ast-utils.d.ts +0 -0
  102. /package/dist/{plugin → vite}/utils/ast-utils.js +0 -0
  103. /package/dist/{plugin/utils/config-loader.d.ts → vite/utils/ast-utils.spec.d.ts} +0 -0
  104. /package/dist/{plugin → vite}/utils/ast-utils.spec.js +0 -0
  105. /package/dist/{plugin → vite}/utils/compiler.d.ts +0 -0
  106. /package/dist/{plugin → vite}/utils/compiler.js +0 -0
  107. /package/dist/{plugin/utils/config-loader.js → vite/utils/config-loader.d.ts} +0 -0
  108. /package/dist/{plugin → vite}/utils/logger.d.ts +0 -0
  109. /package/dist/{plugin → vite}/utils/logger.js +0 -0
  110. /package/dist/{plugin → vite}/utils/plugin-discovery.d.ts +0 -0
  111. /package/dist/{plugin → vite}/utils/schema-generator.d.ts +0 -0
  112. /package/dist/{plugin → vite}/utils/schema-generator.js +0 -0
  113. /package/dist/{plugin → vite}/utils/tsconfig-utils.d.ts +0 -0
  114. /package/dist/{plugin → vite}/utils/tsconfig-utils.js +0 -0
  115. /package/dist/{plugin → vite}/vite-plugin-admin-api-schema.d.ts +0 -0
  116. /package/dist/{plugin → vite}/vite-plugin-admin-api-schema.js +0 -0
  117. /package/dist/{plugin → vite}/vite-plugin-config-loader.d.ts +0 -0
  118. /package/dist/{plugin → vite}/vite-plugin-config-loader.js +0 -0
  119. /package/dist/{plugin → vite}/vite-plugin-config.d.ts +0 -0
  120. /package/dist/{plugin → vite}/vite-plugin-config.js +0 -0
  121. /package/dist/{plugin → vite}/vite-plugin-dashboard-metadata.d.ts +0 -0
  122. /package/dist/{plugin → vite}/vite-plugin-dashboard-metadata.js +0 -0
  123. /package/dist/{plugin → vite}/vite-plugin-gql-tada.d.ts +0 -0
  124. /package/dist/{plugin → vite}/vite-plugin-gql-tada.js +0 -0
  125. /package/dist/{plugin → vite}/vite-plugin-tailwind-source.d.ts +0 -0
  126. /package/dist/{plugin → vite}/vite-plugin-tailwind-source.js +0 -0
  127. /package/dist/{plugin → vite}/vite-plugin-theme.d.ts +0 -0
  128. /package/dist/{plugin → vite}/vite-plugin-theme.js +0 -0
  129. /package/dist/{plugin → vite}/vite-plugin-transform-index.d.ts +0 -0
  130. /package/dist/{plugin → vite}/vite-plugin-transform-index.js +0 -0
  131. /package/dist/{plugin → vite}/vite-plugin-vendure-dashboard.d.ts +0 -0
package/README.md CHANGED
@@ -3,6 +3,68 @@
3
3
  This is a React-based admin dashboard for Vendure. It is a standalone application that can be extended to suit the
4
4
  needs of any Vendure project.
5
5
 
6
+ The package consists of three main components:
7
+
8
+ - `@vendure/dashboard`: Dashboard source code
9
+ - `@vendure/dashboard/vite`: A Vite plugin that is used to compile the dashboard in your project
10
+ - `@vendure/dashboard/plugin`: A Vendure plugin that provides backend functionality used by the dashboard app.
11
+
12
+ ## DashboardPlugin
13
+
14
+ ### Basic usage - serving the Dashboard UI
15
+
16
+ ```typescript
17
+ import { DashboardPlugin } from '@vendure/dashboard-plugin';
18
+
19
+ const config: VendureConfig = {
20
+ // Add an instance of the plugin to the plugins array
21
+ plugins: [
22
+ DashboardPlugin.init({ route: 'dashboard' }),
23
+ ],
24
+ };
25
+ ```
26
+
27
+ The Dashboard UI will be served at the `/dashboard/` path.
28
+
29
+ ### Using only the metrics API
30
+
31
+ If you are building a stand-alone version of the Dashboard UI app and don't need this plugin to serve the Dashboard UI, you can still use the `metricSummary` query by adding the `DashboardPlugin` to the `plugins` array without calling the `init()` method:
32
+
33
+ ```typescript
34
+ import { DashboardPlugin } from '@vendure/dashboard-plugin';
35
+
36
+ const config: VendureConfig = {
37
+ plugins: [
38
+ DashboardPlugin, // <-- no call to .init()
39
+ ],
40
+ // ...
41
+ };
42
+ ```
43
+
44
+ ### Custom Dashboard UI build
45
+
46
+ You can also provide a custom build of the Dashboard UI:
47
+
48
+ ```typescript
49
+ import { DashboardPlugin } from '@vendure/dashboard-plugin';
50
+
51
+ const config: VendureConfig = {
52
+ plugins: [
53
+ DashboardPlugin.init({
54
+ route: 'dashboard',
55
+ app: path.join(__dirname, 'custom-dashboard-build'),
56
+ }),
57
+ ],
58
+ };
59
+ ```
60
+
61
+ ## API
62
+
63
+ ### DashboardPluginOptions
64
+
65
+ - `route: string` - The route at which the Dashboard UI will be served (default: `'dashboard'`)
66
+ - `app?: string` - Optional path to a custom build of the Dashboard UI
67
+
6
68
  ## Development
7
69
 
8
70
  Run `npx vite` to start Vite in dev mode.
@@ -0,0 +1 @@
1
+ export declare const adminApiExtensions: import("graphql").DocumentNode;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.adminApiExtensions = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.adminApiExtensions = (0, graphql_tag_1.default) `
9
+ type MetricSummary {
10
+ interval: MetricInterval!
11
+ type: MetricType!
12
+ title: String!
13
+ entries: [MetricSummaryEntry!]!
14
+ }
15
+ enum MetricInterval {
16
+ Daily
17
+ }
18
+ enum MetricType {
19
+ OrderCount
20
+ OrderTotal
21
+ AverageOrderValue
22
+ }
23
+ type MetricSummaryEntry {
24
+ label: String!
25
+ value: Float!
26
+ }
27
+ input MetricSummaryInput {
28
+ interval: MetricInterval!
29
+ types: [MetricType!]!
30
+ refresh: Boolean
31
+ }
32
+ extend type Query {
33
+ """
34
+ Get metrics for the given interval and metric types.
35
+ """
36
+ metricSummary(input: MetricSummaryInput): [MetricSummary!]!
37
+ }
38
+ `;
@@ -0,0 +1,8 @@
1
+ import { RequestContext } from '@vendure/core';
2
+ import { MetricsService } from '../service/metrics.service.js';
3
+ import { MetricSummary, MetricSummaryInput } from '../types.js';
4
+ export declare class MetricsResolver {
5
+ private service;
6
+ constructor(service: MetricsService);
7
+ metricSummary(ctx: RequestContext, input: MetricSummaryInput): Promise<MetricSummary[]>;
8
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MetricsResolver = void 0;
16
+ const graphql_1 = require("@nestjs/graphql");
17
+ const core_1 = require("@vendure/core");
18
+ const metrics_service_js_1 = require("../service/metrics.service.js");
19
+ let MetricsResolver = class MetricsResolver {
20
+ constructor(service) {
21
+ this.service = service;
22
+ }
23
+ async metricSummary(ctx, input) {
24
+ return this.service.getMetrics(ctx, input);
25
+ }
26
+ };
27
+ exports.MetricsResolver = MetricsResolver;
28
+ __decorate([
29
+ (0, graphql_1.Query)(),
30
+ (0, core_1.Allow)(core_1.Permission.ReadOrder),
31
+ __param(0, (0, core_1.Ctx)()),
32
+ __param(1, (0, graphql_1.Args)('input')),
33
+ __metadata("design:type", Function),
34
+ __metadata("design:paramtypes", [core_1.RequestContext, Object]),
35
+ __metadata("design:returntype", Promise)
36
+ ], MetricsResolver.prototype, "metricSummary", null);
37
+ exports.MetricsResolver = MetricsResolver = __decorate([
38
+ (0, graphql_1.Resolver)(),
39
+ __metadata("design:paramtypes", [metrics_service_js_1.MetricsService])
40
+ ], MetricsResolver);
@@ -0,0 +1,39 @@
1
+ import { RequestContext } from '@vendure/core';
2
+ import { MetricData } from '../service/metrics.service.js';
3
+ import { MetricInterval, MetricSummaryEntry, MetricType } from '../types.js';
4
+ /**
5
+ * Calculate your metric data based on the given input.
6
+ * Be careful with heavy queries and calculations,
7
+ * as this function is executed everytime a user views its dashboard
8
+ *
9
+ */
10
+ export interface MetricCalculation {
11
+ type: MetricType;
12
+ getTitle(ctx: RequestContext): string;
13
+ calculateEntry(ctx: RequestContext, interval: MetricInterval, data: MetricData): MetricSummaryEntry;
14
+ }
15
+ export declare function getMonthName(monthNr: number): string;
16
+ /**
17
+ * Calculates the average order value per month/week
18
+ */
19
+ export declare class AverageOrderValueMetric implements MetricCalculation {
20
+ readonly type = MetricType.AverageOrderValue;
21
+ getTitle(ctx: RequestContext): string;
22
+ calculateEntry(ctx: RequestContext, interval: MetricInterval, data: MetricData): MetricSummaryEntry;
23
+ }
24
+ /**
25
+ * Calculates number of orders
26
+ */
27
+ export declare class OrderCountMetric implements MetricCalculation {
28
+ readonly type = MetricType.OrderCount;
29
+ getTitle(ctx: RequestContext): string;
30
+ calculateEntry(ctx: RequestContext, interval: MetricInterval, data: MetricData): MetricSummaryEntry;
31
+ }
32
+ /**
33
+ * Calculates order total
34
+ */
35
+ export declare class OrderTotalMetric implements MetricCalculation {
36
+ readonly type = MetricType.OrderTotal;
37
+ getTitle(ctx: RequestContext): string;
38
+ calculateEntry(ctx: RequestContext, interval: MetricInterval, data: MetricData): MetricSummaryEntry;
39
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderTotalMetric = exports.OrderCountMetric = exports.AverageOrderValueMetric = void 0;
4
+ exports.getMonthName = getMonthName;
5
+ const types_js_1 = require("../types.js");
6
+ function getMonthName(monthNr) {
7
+ const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
8
+ return monthNames[monthNr];
9
+ }
10
+ /**
11
+ * Calculates the average order value per month/week
12
+ */
13
+ class AverageOrderValueMetric {
14
+ constructor() {
15
+ this.type = types_js_1.MetricType.AverageOrderValue;
16
+ }
17
+ getTitle(ctx) {
18
+ return 'average-order-value';
19
+ }
20
+ calculateEntry(ctx, interval, data) {
21
+ const label = data.date.toISOString();
22
+ if (!data.orders.length) {
23
+ return {
24
+ label,
25
+ value: 0,
26
+ };
27
+ }
28
+ const total = data.orders.map(o => o.totalWithTax).reduce((_total, current) => _total + current);
29
+ const average = Math.round(total / data.orders.length);
30
+ return {
31
+ label,
32
+ value: average,
33
+ };
34
+ }
35
+ }
36
+ exports.AverageOrderValueMetric = AverageOrderValueMetric;
37
+ /**
38
+ * Calculates number of orders
39
+ */
40
+ class OrderCountMetric {
41
+ constructor() {
42
+ this.type = types_js_1.MetricType.OrderCount;
43
+ }
44
+ getTitle(ctx) {
45
+ return 'order-count';
46
+ }
47
+ calculateEntry(ctx, interval, data) {
48
+ const label = data.date.toISOString();
49
+ return {
50
+ label,
51
+ value: data.orders.length,
52
+ };
53
+ }
54
+ }
55
+ exports.OrderCountMetric = OrderCountMetric;
56
+ /**
57
+ * Calculates order total
58
+ */
59
+ class OrderTotalMetric {
60
+ constructor() {
61
+ this.type = types_js_1.MetricType.OrderTotal;
62
+ }
63
+ getTitle(ctx) {
64
+ return 'order-totals';
65
+ }
66
+ calculateEntry(ctx, interval, data) {
67
+ const label = data.date.toISOString();
68
+ return {
69
+ label,
70
+ value: data.orders.map(o => o.totalWithTax).reduce((_total, current) => _total + current, 0),
71
+ };
72
+ }
73
+ }
74
+ exports.OrderTotalMetric = OrderTotalMetric;
@@ -1,5 +1,6 @@
1
- import { LanguageCode } from '@vendure/core';
2
- export declare const defaultLanguage = LanguageCode.en;
1
+ export declare const DEFAULT_APP_PATH: string;
2
+ export declare const loggerCtx = "DashboardPlugin";
3
+ export declare const defaultLanguage = "en";
3
4
  export declare const defaultLocale: undefined;
4
- export declare const defaultAvailableLanguages: LanguageCode[];
5
+ export declare const defaultAvailableLanguages: string[];
5
6
  export declare const defaultAvailableLocales: string[];
@@ -1,277 +1,10 @@
1
- import { LanguageCode } from '@vendure/core';
2
- export const defaultLanguage = LanguageCode.en;
3
- export const defaultLocale = undefined;
4
- export const defaultAvailableLanguages = [
5
- LanguageCode.he,
6
- LanguageCode.ar,
7
- LanguageCode.de,
8
- LanguageCode.en,
9
- LanguageCode.es,
10
- LanguageCode.pl,
11
- LanguageCode.zh_Hans,
12
- LanguageCode.zh_Hant,
13
- LanguageCode.pt_BR,
14
- LanguageCode.pt_PT,
15
- LanguageCode.cs,
16
- LanguageCode.fr,
17
- LanguageCode.ru,
18
- LanguageCode.uk,
19
- LanguageCode.it,
20
- LanguageCode.fa,
21
- LanguageCode.ne,
22
- LanguageCode.hr,
23
- LanguageCode.sv,
24
- LanguageCode.nb,
25
- LanguageCode.tr,
26
- ];
27
- export const defaultAvailableLocales = [
28
- 'AF',
29
- 'AL',
30
- 'DZ',
31
- 'AS',
32
- 'AD',
33
- 'AO',
34
- 'AI',
35
- 'AQ',
36
- 'AG',
37
- 'AR',
38
- 'AM',
39
- 'AW',
40
- 'AU',
41
- 'AT',
42
- 'AZ',
43
- 'BS',
44
- 'BH',
45
- 'BD',
46
- 'BB',
47
- 'BY',
48
- 'BE',
49
- 'BZ',
50
- 'BJ',
51
- 'BM',
52
- 'BT',
53
- 'BO',
54
- 'BQ',
55
- 'BA',
56
- 'BW',
57
- 'BV',
58
- 'BR',
59
- 'IO',
60
- 'BN',
61
- 'BG',
62
- 'BF',
63
- 'BI',
64
- 'CV',
65
- 'KH',
66
- 'CM',
67
- 'CA',
68
- 'KY',
69
- 'CF',
70
- 'TD',
71
- 'CL',
72
- 'CN',
73
- 'CX',
74
- 'CC',
75
- 'CO',
76
- 'KM',
77
- 'CD',
78
- 'CG',
79
- 'CK',
80
- 'CR',
81
- 'HR',
82
- 'CU',
83
- 'CW',
84
- 'CY',
85
- 'CZ',
86
- 'CI',
87
- 'DK',
88
- 'DJ',
89
- 'DM',
90
- 'DO',
91
- 'EC',
92
- 'EG',
93
- 'SV',
94
- 'GQ',
95
- 'ER',
96
- 'EE',
97
- 'SZ',
98
- 'ET',
99
- 'FK',
100
- 'FO',
101
- 'FJ',
102
- 'FI',
103
- 'FR',
104
- 'GF',
105
- 'PF',
106
- 'TF',
107
- 'GA',
108
- 'GM',
109
- 'GE',
110
- 'DE',
111
- 'GH',
112
- 'GI',
113
- 'GR',
114
- 'GL',
115
- 'GD',
116
- 'GP',
117
- 'GU',
118
- 'GT',
119
- 'GG',
120
- 'GN',
121
- 'GW',
122
- 'GY',
123
- 'HT',
124
- 'HM',
125
- 'VA',
126
- 'HN',
127
- 'HK',
128
- 'HU',
129
- 'IS',
130
- 'IN',
131
- 'ID',
132
- 'IR',
133
- 'IQ',
134
- 'IE',
135
- 'IM',
136
- 'IL',
137
- 'IT',
138
- 'JM',
139
- 'JP',
140
- 'JE',
141
- 'JO',
142
- 'KZ',
143
- 'KE',
144
- 'KI',
145
- 'KP',
146
- 'KR',
147
- 'KW',
148
- 'KG',
149
- 'LA',
150
- 'LV',
151
- 'LB',
152
- 'LS',
153
- 'LR',
154
- 'LY',
155
- 'LI',
156
- 'LT',
157
- 'LU',
158
- 'MO',
159
- 'MG',
160
- 'MW',
161
- 'MY',
162
- 'MV',
163
- 'ML',
164
- 'MT',
165
- 'MH',
166
- 'MQ',
167
- 'MR',
168
- 'MU',
169
- 'YT',
170
- 'MX',
171
- 'FM',
172
- 'MD',
173
- 'MC',
174
- 'MN',
175
- 'ME',
176
- 'MS',
177
- 'MA',
178
- 'MZ',
179
- 'MM',
180
- 'NA',
181
- 'NR',
182
- 'NP',
183
- 'NL',
184
- 'NC',
185
- 'NZ',
186
- 'NI',
187
- 'NE',
188
- 'NG',
189
- 'NU',
190
- 'NF',
191
- 'MK',
192
- 'MP',
193
- 'NO',
194
- 'OM',
195
- 'PK',
196
- 'PW',
197
- 'PS',
198
- 'PA',
199
- 'PG',
200
- 'PY',
201
- 'PE',
202
- 'PH',
203
- 'PN',
204
- 'PL',
205
- 'PT',
206
- 'PR',
207
- 'QA',
208
- 'RO',
209
- 'RU',
210
- 'RW',
211
- 'RE',
212
- 'BL',
213
- 'SH',
214
- 'KN',
215
- 'LC',
216
- 'MF',
217
- 'PM',
218
- 'VC',
219
- 'WS',
220
- 'SM',
221
- 'ST',
222
- 'SA',
223
- 'SN',
224
- 'RS',
225
- 'SC',
226
- 'SL',
227
- 'SG',
228
- 'SX',
229
- 'SK',
230
- 'SI',
231
- 'SB',
232
- 'SO',
233
- 'ZA',
234
- 'GS',
235
- 'SS',
236
- 'ES',
237
- 'LK',
238
- 'SD',
239
- 'SR',
240
- 'SJ',
241
- 'SE',
242
- 'CH',
243
- 'SY',
244
- 'TW',
245
- 'TJ',
246
- 'TZ',
247
- 'TH',
248
- 'TL',
249
- 'TG',
250
- 'TK',
251
- 'TO',
252
- 'TT',
253
- 'TN',
254
- 'TR',
255
- 'TM',
256
- 'TC',
257
- 'TV',
258
- 'UG',
259
- 'UA',
260
- 'AE',
261
- 'GB',
262
- 'UM',
263
- 'US',
264
- 'UY',
265
- 'UZ',
266
- 'VU',
267
- 'VE',
268
- 'VN',
269
- 'VG',
270
- 'VI',
271
- 'WF',
272
- 'EH',
273
- 'YE',
274
- 'ZM',
275
- 'ZW',
276
- 'AX',
277
- ];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultAvailableLocales = exports.defaultAvailableLanguages = exports.defaultLocale = exports.defaultLanguage = exports.loggerCtx = exports.DEFAULT_APP_PATH = void 0;
4
+ const path_1 = require("path");
5
+ exports.DEFAULT_APP_PATH = (0, path_1.join)(__dirname, 'dist');
6
+ exports.loggerCtx = 'DashboardPlugin';
7
+ exports.defaultLanguage = 'en';
8
+ exports.defaultLocale = undefined;
9
+ exports.defaultAvailableLanguages = ['en', 'de', 'es', 'cs', 'zh_Hans', 'pt_BR', 'pt_PT', 'zh_Hant'];
10
+ exports.defaultAvailableLocales = ['en-US', 'de-DE', 'es-ES', 'zh-CN', 'zh-TW', 'pt-BR', 'pt-PT'];
@@ -0,0 +1,95 @@
1
+ import { MiddlewareConsumer, NestModule } from '@nestjs/common';
2
+ import { Type } from '@vendure/common/lib/shared-types';
3
+ import { ProcessContext } from '@vendure/core';
4
+ /**
5
+ * @description
6
+ * Configuration options for the {@link DashboardPlugin}.
7
+ *
8
+ * @docsCategory core plugins/DashboardPlugin
9
+ */
10
+ export interface DashboardPluginOptions {
11
+ /**
12
+ * @description
13
+ * The route to the Dashboard UI.
14
+ *
15
+ * @default 'dashboard'
16
+ */
17
+ route: string;
18
+ /**
19
+ * @description
20
+ * The path to the dashboard UI app dist directory. By default, the built-in dashboard UI
21
+ * will be served. This can be overridden with a custom build of the dashboard.
22
+ */
23
+ appDir: string;
24
+ }
25
+ /**
26
+ * @description
27
+ * This plugin serves the static files of the Vendure Dashboard and provides the
28
+ * GraphQL extensions needed for the order metrics on the dashboard index page.
29
+ *
30
+ * ## Installation
31
+ *
32
+ * `npm install \@vendure/dashboard`
33
+ *
34
+ * ## Usage
35
+ *
36
+ * First you need to set up compilation of the Dashboard, using the Vite configuration
37
+ * described in the [Dashboard Getting Started Guide](/guides/extending-the-dashboard/getting-started/)
38
+ *
39
+ * Once set up, you run `npx vite build` to build the production version of the dashboard app.
40
+ *
41
+ * The built app files will be output to the location specified by `build.outDir` in your Vite
42
+ * config file. This should then be passed to the `appDir` init option, as in the example below:
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * import { DashboardPlugin } from '\@vendure/dashboard/plugin';
47
+ *
48
+ * const config: VendureConfig = {
49
+ * // Add an instance of the plugin to the plugins array
50
+ * plugins: [
51
+ * DashboardPlugin.init({
52
+ * route: 'dashboard',
53
+ * appDir: './dist/dashboard',
54
+ * }),
55
+ * ],
56
+ * };
57
+ * ```
58
+ *
59
+ * ## Metrics
60
+ *
61
+ * This plugin defines a `metricSummary` query which is used by the Dashboard UI to
62
+ * display the order metrics on the dashboard.
63
+ *
64
+ * If you are building a stand-alone version of the Dashboard UI app, and therefore
65
+ * don't need this plugin to serve the Dashboard UI, you can still use the
66
+ * `metricSummary` query by adding the `DashboardPlugin` to the `plugins` array,
67
+ * but without calling the `init()` method:
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import { DashboardPlugin } from '\@vendure/dashboard-plugin';
72
+ *
73
+ * const config: VendureConfig = {
74
+ * plugins: [
75
+ * DashboardPlugin, // <-- no call to .init()
76
+ * ],
77
+ * // ...
78
+ * };
79
+ * ```
80
+ *
81
+ * @docsCategory core plugins/DashboardPlugin
82
+ */
83
+ export declare class DashboardPlugin implements NestModule {
84
+ private readonly processContext;
85
+ private static options;
86
+ constructor(processContext: ProcessContext);
87
+ /**
88
+ * @description
89
+ * Set the plugin options
90
+ */
91
+ static init(options: DashboardPluginOptions): Type<DashboardPlugin>;
92
+ configure(consumer: MiddlewareConsumer): void;
93
+ private createStaticServer;
94
+ private getDashboardPath;
95
+ }