@vendure/admin-ui 2.0.0-next.21 → 2.0.0-next.23

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 (87) hide show
  1. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +0 -1
  2. package/catalog/components/product-detail/product-detail.component.d.ts +2 -7
  3. package/catalog/components/product-variants-list/product-variants-list.component.d.ts +10 -10
  4. package/catalog/providers/product-detail/product-detail.service.d.ts +1 -2
  5. package/core/common/generated-types.d.ts +72 -0
  6. package/core/common/version.d.ts +1 -1
  7. package/core/data/definitions/facet-definitions.d.ts +1 -0
  8. package/core/data/providers/facet-data.service.d.ts +4 -0
  9. package/core/providers/custom-history-entry-component/history-entry-component-types.d.ts +81 -0
  10. package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +19 -0
  11. package/core/public_api.d.ts +2 -1
  12. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +16 -16
  13. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +3 -11
  14. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +1 -2
  15. package/customer/components/customer-detail/customer-detail.component.d.ts +3 -3
  16. package/customer/components/customer-history/customer-history-entry-host.component.d.ts +19 -0
  17. package/customer/components/customer-history/customer-history.component.d.ts +38 -10
  18. package/customer/customer.module.d.ts +4 -3
  19. package/customer/public_api.d.ts +1 -0
  20. package/esm2020/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +3 -3
  21. package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +3 -4
  22. package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +11 -6
  23. package/esm2020/catalog/components/product-detail/product-detail.component.mjs +17 -48
  24. package/esm2020/catalog/components/product-list/product-list-bulk-actions.mjs +4 -7
  25. package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +39 -33
  26. package/esm2020/catalog/providers/product-detail/product-detail.service.mjs +1 -4
  27. package/esm2020/core/common/generated-types.mjs +1 -1
  28. package/esm2020/core/common/introspection-result.mjs +2 -1
  29. package/esm2020/core/common/version.mjs +2 -2
  30. package/esm2020/core/data/data.module.mjs +8 -1
  31. package/esm2020/core/data/definitions/facet-definitions.mjs +12 -1
  32. package/esm2020/core/data/providers/facet-data.service.mjs +5 -2
  33. package/esm2020/core/providers/custom-history-entry-component/history-entry-component-types.mjs +2 -0
  34. package/esm2020/core/providers/custom-history-entry-component/history-entry-component.service.mjs +40 -0
  35. package/esm2020/core/public_api.mjs +3 -2
  36. package/esm2020/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +52 -25
  37. package/esm2020/core/shared/components/timeline-entry/timeline-entry.component.mjs +3 -3
  38. package/esm2020/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +8 -18
  39. package/esm2020/customer/components/customer-detail/customer-detail.component.mjs +2 -1
  40. package/esm2020/customer/components/customer-history/customer-history-entry-host.component.mjs +64 -0
  41. package/esm2020/customer/components/customer-history/customer-history.component.mjs +16 -10
  42. package/esm2020/customer/customer.module.mjs +5 -2
  43. package/esm2020/customer/providers/routing/customer-resolver.mjs +5 -3
  44. package/esm2020/customer/public_api.mjs +2 -1
  45. package/esm2020/login/components/login/login.component.mjs +36 -9
  46. package/esm2020/order/components/order-detail/order-detail.component.mjs +1 -1
  47. package/esm2020/order/components/order-history/order-history-entry-host.component.mjs +64 -0
  48. package/esm2020/order/components/order-history/order-history.component.mjs +19 -14
  49. package/esm2020/order/order.module.mjs +8 -5
  50. package/esm2020/order/public_api.mjs +2 -1
  51. package/esm2020/settings/components/admin-detail/admin-detail.component.mjs +5 -4
  52. package/fesm2015/vendure-admin-ui-catalog.mjs +69 -96
  53. package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
  54. package/fesm2015/vendure-admin-ui-core.mjs +167 -90
  55. package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
  56. package/fesm2015/vendure-admin-ui-customer.mjs +93 -21
  57. package/fesm2015/vendure-admin-ui-customer.mjs.map +1 -1
  58. package/fesm2015/vendure-admin-ui-login.mjs +35 -8
  59. package/fesm2015/vendure-admin-ui-login.mjs.map +1 -1
  60. package/fesm2015/vendure-admin-ui-order.mjs +76 -8
  61. package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
  62. package/fesm2015/vendure-admin-ui-settings.mjs +4 -3
  63. package/fesm2015/vendure-admin-ui-settings.mjs.map +1 -1
  64. package/fesm2020/vendure-admin-ui-catalog.mjs +68 -96
  65. package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
  66. package/fesm2020/vendure-admin-ui-core.mjs +165 -90
  67. package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
  68. package/fesm2020/vendure-admin-ui-customer.mjs +92 -21
  69. package/fesm2020/vendure-admin-ui-customer.mjs.map +1 -1
  70. package/fesm2020/vendure-admin-ui-login.mjs +35 -8
  71. package/fesm2020/vendure-admin-ui-login.mjs.map +1 -1
  72. package/fesm2020/vendure-admin-ui-order.mjs +75 -8
  73. package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
  74. package/fesm2020/vendure-admin-ui-settings.mjs +4 -3
  75. package/fesm2020/vendure-admin-ui-settings.mjs.map +1 -1
  76. package/login/components/login/login.component.d.ts +9 -1
  77. package/order/components/order-detail/order-detail.component.d.ts +3 -3
  78. package/order/components/order-history/order-history-entry-host.component.d.ts +19 -0
  79. package/order/components/order-history/order-history.component.d.ts +40 -13
  80. package/order/order.module.d.ts +4 -3
  81. package/order/public_api.d.ts +1 -0
  82. package/package.json +2 -2
  83. package/static/i18n-messages/de.json +3 -1
  84. package/static/i18n-messages/en.json +3 -1
  85. package/static/styles/_variables.scss +1 -0
  86. package/core/common/utilities/flatten-facet-values.d.ts +0 -2
  87. package/esm2020/core/common/utilities/flatten-facet-values.mjs +0 -4
@@ -1,9 +1,11 @@
1
+ import { HttpClient } from '@angular/common/http';
1
2
  import { Router } from '@angular/router';
2
3
  import { AuthService } from '@vendure/admin-ui/core';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class LoginComponent {
5
6
  private authService;
6
7
  private router;
8
+ private httpClient;
7
9
  username: string;
8
10
  password: string;
9
11
  rememberMe: boolean;
@@ -12,8 +14,14 @@ export declare class LoginComponent {
12
14
  brand: string | undefined;
13
15
  hideVendureBranding: boolean | undefined;
14
16
  hideVersion: boolean | undefined;
15
- constructor(authService: AuthService, router: Router);
17
+ customImageUrl: string | undefined;
18
+ imageUrl: string;
19
+ imageLocation: string;
20
+ imageCreator: string;
21
+ constructor(authService: AuthService, router: Router, httpClient: HttpClient);
16
22
  logIn(): void;
23
+ loadImage(): void;
24
+ updateImage(res: any): void;
17
25
  /**
18
26
  * Attempts to read a redirect param from the current url and parse it into a
19
27
  * route from which the user was redirected after a 401 error.
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
- import { BaseDetailComponent, CustomFieldConfig, DataService, GetOrderHistoryQuery, HistoryEntry, ModalService, NotificationService, OrderDetailFragment, ServerConfigService } from '@vendure/admin-ui/core';
4
+ import { BaseDetailComponent, CustomFieldConfig, DataService, GetOrderHistoryQuery, ModalService, NotificationService, OrderDetailFragment, ServerConfigService, TimelineHistoryEntry } from '@vendure/admin-ui/core';
5
5
  import { Observable, Subject } from 'rxjs';
6
6
  import { OrderTransitionService } from '../../providers/order-transition.service';
7
7
  import * as i0 from "@angular/core";
@@ -48,8 +48,8 @@ export declare class OrderDetailComponent extends BaseDetailComponent<OrderDetai
48
48
  note: string;
49
49
  isPublic: boolean;
50
50
  }): void;
51
- updateNote(entry: HistoryEntry): void;
52
- deleteNote(entry: HistoryEntry): import("rxjs").Subscription;
51
+ updateNote(entry: TimelineHistoryEntry): void;
52
+ deleteNote(entry: TimelineHistoryEntry): import("rxjs").Subscription;
53
53
  orderHasSettledPayments(order: OrderDetailFragment): boolean;
54
54
  private cancelOrder;
55
55
  private refundOrder;
@@ -0,0 +1,19 @@
1
+ import { ComponentFactoryResolver, EventEmitter, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { HistoryEntryComponentService, OrderDetailFragment, OrderHistoryEntryComponent, TimelineHistoryEntry } from '@vendure/admin-ui/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class OrderHistoryEntryHostComponent implements OnInit, OnDestroy {
5
+ private componentFactoryResolver;
6
+ private historyEntryComponentService;
7
+ entry: TimelineHistoryEntry;
8
+ order: OrderDetailFragment;
9
+ expanded: boolean;
10
+ expandClick: EventEmitter<void>;
11
+ portalRef: ViewContainerRef;
12
+ instance: OrderHistoryEntryComponent;
13
+ private componentRef;
14
+ constructor(componentFactoryResolver: ComponentFactoryResolver, historyEntryComponentService: HistoryEntryComponentService);
15
+ ngOnInit(): void;
16
+ ngOnDestroy(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderHistoryEntryHostComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderHistoryEntryHostComponent, "vdr-order-history-entry-host", ["historyEntry"], { "entry": "entry"; "order": "order"; "expanded": "expanded"; }, { "expandClick": "expandClick"; }, never, never>;
19
+ }
@@ -1,26 +1,54 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { GetOrderHistoryQuery, HistoryEntry, HistoryEntryType, OrderDetailFragment, TimelineDisplayType } from '@vendure/admin-ui/core';
2
+ import { HistoryEntryComponentService, HistoryEntryType, OrderDetailFragment, TimelineDisplayType, TimelineHistoryEntry } from '@vendure/admin-ui/core';
3
3
  import * as i0 from "@angular/core";
4
- declare type OrderHistoryItem = NonNullable<GetOrderHistoryQuery['order']>['history']['items'][number];
5
4
  export declare class OrderHistoryComponent {
5
+ private historyEntryComponentService;
6
6
  order: OrderDetailFragment;
7
- history: OrderHistoryItem[];
7
+ history: TimelineHistoryEntry[];
8
8
  addNote: EventEmitter<{
9
9
  note: string;
10
10
  isPublic: boolean;
11
11
  }>;
12
- updateNote: EventEmitter<HistoryEntry>;
13
- deleteNote: EventEmitter<HistoryEntry>;
12
+ updateNote: EventEmitter<{
13
+ __typename?: "HistoryEntry" | undefined;
14
+ id: string;
15
+ type: HistoryEntryType;
16
+ createdAt: any;
17
+ isPublic: boolean;
18
+ data: any;
19
+ administrator?: {
20
+ __typename?: "Administrator" | undefined;
21
+ id: string;
22
+ firstName: string;
23
+ lastName: string;
24
+ } | null | undefined;
25
+ }>;
26
+ deleteNote: EventEmitter<{
27
+ __typename?: "HistoryEntry" | undefined;
28
+ id: string;
29
+ type: HistoryEntryType;
30
+ createdAt: any;
31
+ isPublic: boolean;
32
+ data: any;
33
+ administrator?: {
34
+ __typename?: "Administrator" | undefined;
35
+ id: string;
36
+ firstName: string;
37
+ lastName: string;
38
+ } | null | undefined;
39
+ }>;
14
40
  note: string;
15
41
  noteIsPrivate: boolean;
16
42
  expanded: boolean;
17
43
  readonly type: typeof HistoryEntryType;
18
- getDisplayType(entry: OrderHistoryItem): TimelineDisplayType;
19
- getTimelineIcon(entry: OrderHistoryItem): string[] | "ban" | "credit-card" | "note" | "pencil" | "truck" | undefined;
20
- isFeatured(entry: OrderHistoryItem): boolean;
21
- getFulfillment(entry: OrderHistoryItem): NonNullable<OrderDetailFragment['fulfillments']>[number] | undefined;
22
- getPayment(entry: OrderHistoryItem): NonNullable<OrderDetailFragment['payments']>[number] | undefined;
23
- getCancelledItems(entry: OrderHistoryItem): Array<{
44
+ constructor(historyEntryComponentService: HistoryEntryComponentService);
45
+ hasCustomComponent(type: string): boolean;
46
+ getDisplayType(entry: TimelineHistoryEntry): TimelineDisplayType;
47
+ getTimelineIcon(entry: TimelineHistoryEntry): string[] | "ban" | "credit-card" | "note" | "pencil" | "truck" | undefined;
48
+ isFeatured(entry: TimelineHistoryEntry): boolean;
49
+ getFulfillment(entry: TimelineHistoryEntry): NonNullable<OrderDetailFragment['fulfillments']>[number] | undefined;
50
+ getPayment(entry: TimelineHistoryEntry): NonNullable<OrderDetailFragment['payments']>[number] | undefined;
51
+ getCancelledItems(entry: TimelineHistoryEntry): Array<{
24
52
  name: string;
25
53
  quantity: number;
26
54
  }>;
@@ -51,9 +79,8 @@ export declare class OrderHistoryComponent {
51
79
  id: string;
52
80
  }[] | null | undefined;
53
81
  } | undefined;
54
- getName(entry: OrderHistoryItem): string;
82
+ getName(entry: TimelineHistoryEntry): string;
55
83
  addNoteToOrder(): void;
56
84
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderHistoryComponent, never>;
57
85
  static ɵcmp: i0.ɵɵComponentDeclaration<OrderHistoryComponent, "vdr-order-history", never, { "order": "order"; "history": "history"; }, { "addNote": "addNote"; "updateNote": "updateNote"; "deleteNote": "deleteNote"; }, never, never>;
58
86
  }
59
- export {};
@@ -33,10 +33,11 @@ import * as i31 from "./components/select-customer-dialog/select-customer-dialog
33
33
  import * as i32 from "./components/select-address-dialog/select-address-dialog.component";
34
34
  import * as i33 from "./components/coupon-code-selector/coupon-code-selector.component";
35
35
  import * as i34 from "./components/select-shipping-method-dialog/select-shipping-method-dialog.component";
36
- import * as i35 from "@vendure/admin-ui/core";
37
- import * as i36 from "@angular/router";
36
+ import * as i35 from "./components/order-history/order-history-entry-host.component";
37
+ import * as i36 from "@vendure/admin-ui/core";
38
+ import * as i37 from "@angular/router";
38
39
  export declare class OrderModule {
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderModule, never>;
40
- static ɵmod: i0.ɵɵNgModuleDeclaration<OrderModule, [typeof i1.OrderListComponent, typeof i2.OrderDetailComponent, typeof i3.FulfillOrderDialogComponent, typeof i4.LineFulfillmentComponent, typeof i5.RefundOrderDialogComponent, typeof i6.CancelOrderDialogComponent, typeof i7.PaymentStateLabelComponent, typeof i8.LineRefundsComponent, typeof i9.OrderPaymentCardComponent, typeof i10.RefundStateLabelComponent, typeof i11.SettleRefundDialogComponent, typeof i12.OrderHistoryComponent, typeof i13.FulfillmentDetailComponent, typeof i14.PaymentDetailComponent, typeof i15.SimpleItemListComponent, typeof i16.OrderCustomFieldsCardComponent, typeof i17.OrderProcessGraphComponent, typeof i18.OrderProcessNodeComponent, typeof i19.OrderProcessEdgeComponent, typeof i20.OrderProcessGraphDialogComponent, typeof i21.FulfillmentStateLabelComponent, typeof i22.FulfillmentCardComponent, typeof i23.OrderEditorComponent, typeof i24.OrderTableComponent, typeof i25.OrderEditsPreviewDialogComponent, typeof i26.ModificationDetailComponent, typeof i27.AddManualPaymentDialogComponent, typeof i28.OrderStateSelectDialogComponent, typeof i29.DraftOrderDetailComponent, typeof i30.DraftOrderVariantSelectorComponent, typeof i31.SelectCustomerDialogComponent, typeof i32.SelectAddressDialogComponent, typeof i33.CouponCodeSelectorComponent, typeof i34.SelectShippingMethodDialogComponent], [typeof i35.SharedModule, typeof i36.RouterModule], never>;
41
+ static ɵmod: i0.ɵɵNgModuleDeclaration<OrderModule, [typeof i1.OrderListComponent, typeof i2.OrderDetailComponent, typeof i3.FulfillOrderDialogComponent, typeof i4.LineFulfillmentComponent, typeof i5.RefundOrderDialogComponent, typeof i6.CancelOrderDialogComponent, typeof i7.PaymentStateLabelComponent, typeof i8.LineRefundsComponent, typeof i9.OrderPaymentCardComponent, typeof i10.RefundStateLabelComponent, typeof i11.SettleRefundDialogComponent, typeof i12.OrderHistoryComponent, typeof i13.FulfillmentDetailComponent, typeof i14.PaymentDetailComponent, typeof i15.SimpleItemListComponent, typeof i16.OrderCustomFieldsCardComponent, typeof i17.OrderProcessGraphComponent, typeof i18.OrderProcessNodeComponent, typeof i19.OrderProcessEdgeComponent, typeof i20.OrderProcessGraphDialogComponent, typeof i21.FulfillmentStateLabelComponent, typeof i22.FulfillmentCardComponent, typeof i23.OrderEditorComponent, typeof i24.OrderTableComponent, typeof i25.OrderEditsPreviewDialogComponent, typeof i26.ModificationDetailComponent, typeof i27.AddManualPaymentDialogComponent, typeof i28.OrderStateSelectDialogComponent, typeof i29.DraftOrderDetailComponent, typeof i30.DraftOrderVariantSelectorComponent, typeof i31.SelectCustomerDialogComponent, typeof i32.SelectAddressDialogComponent, typeof i33.CouponCodeSelectorComponent, typeof i34.SelectShippingMethodDialogComponent, typeof i35.OrderHistoryEntryHostComponent], [typeof i36.SharedModule, typeof i37.RouterModule], never>;
41
42
  static ɵinj: i0.ɵɵInjectorDeclaration<OrderModule>;
42
43
  }
@@ -14,6 +14,7 @@ export * from './components/order-custom-fields-card/order-custom-fields-card.co
14
14
  export * from './components/order-detail/order-detail.component';
15
15
  export * from './components/order-editor/order-editor.component';
16
16
  export * from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';
17
+ export * from './components/order-history/order-history-entry-host.component';
17
18
  export * from './components/order-history/order-history.component';
18
19
  export * from './components/order-list/order-list.component';
19
20
  export * from './components/order-payment-card/order-payment-card.component';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/admin-ui",
3
- "version": "2.0.0-next.21",
3
+ "version": "2.0.0-next.23",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "@angular/animations": "13.2.3",
@@ -22,7 +22,7 @@
22
22
  "@ng-select/ng-select": "^8.1.1",
23
23
  "@ngx-translate/core": "^14.0.0",
24
24
  "@ngx-translate/http-loader": "^7.0.0",
25
- "@vendure/common": "^2.0.0-next.21",
25
+ "@vendure/common": "^2.0.0-next.23",
26
26
  "@webcomponents/custom-elements": "^1.4.3",
27
27
  "apollo-angular": "^3.0.0",
28
28
  "apollo-upload-client": "^17.0.0",
@@ -289,7 +289,9 @@
289
289
  "username": "Benutzername",
290
290
  "view-next-month": "Nächsten Monat anzeigen",
291
291
  "view-previous-month": "Vorherigen Monat anzeigen",
292
- "with-selected": "Auswahl..."
292
+ "with-selected": "Auswahl...",
293
+ "login-title": "Anmelden bei Vendure",
294
+ "login-image-title": "Hallo! Willkommen zurück. Schön, dich zu sehen."
293
295
  },
294
296
  "customer": {
295
297
  "add-customer-to-group": "Kunde zu Gruppe hinzufügen",
@@ -289,7 +289,9 @@
289
289
  "username": "Username",
290
290
  "view-next-month": "View next month",
291
291
  "view-previous-month": "View previous month",
292
- "with-selected": "With {count} selected..."
292
+ "with-selected": "With {count} selected...",
293
+ "login-title": "Log in to Vendure",
294
+ "login-image-title": "Hi! Welcome back. Good to see you."
293
295
  },
294
296
  "customer": {
295
297
  "add-customer-to-group": "Add customer to group",
@@ -4,3 +4,4 @@
4
4
 
5
5
  // breakpoints
6
6
  $breakpoint-small: 768px;
7
+ $breakpoint-medium: 992px;
@@ -1,2 +0,0 @@
1
- import { FacetValueFragment, FacetWithValuesFragment } from '../generated-types';
2
- export declare function flattenFacetValues(facetsWithValues: FacetWithValuesFragment[]): FacetValueFragment[];
@@ -1,4 +0,0 @@
1
- export function flattenFacetValues(facetsWithValues) {
2
- return facetsWithValues.reduce((flattened, facet) => flattened.concat(facet.values), []);
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlbi1mYWNldC12YWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbW1vbi91dGlsaXRpZXMvZmxhdHRlbi1mYWNldC12YWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGtCQUFrQixDQUFDLGdCQUEyQztJQUMxRSxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDcEQsRUFBMEIsQ0FDN0IsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWNldFZhbHVlRnJhZ21lbnQsIEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50IH0gZnJvbSAnLi4vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuRmFjZXRWYWx1ZXMoZmFjZXRzV2l0aFZhbHVlczogRmFjZXRXaXRoVmFsdWVzRnJhZ21lbnRbXSk6IEZhY2V0VmFsdWVGcmFnbWVudFtdIHtcclxuICAgIHJldHVybiBmYWNldHNXaXRoVmFsdWVzLnJlZHVjZShcclxuICAgICAgICAoZmxhdHRlbmVkLCBmYWNldCkgPT4gZmxhdHRlbmVkLmNvbmNhdChmYWNldC52YWx1ZXMpLFxyXG4gICAgICAgIFtdIGFzIEZhY2V0VmFsdWVGcmFnbWVudFtdLFxyXG4gICAgKTtcclxufVxyXG4iXX0=