@vendure/admin-ui 2.0.0-next.2 → 2.0.0-next.3

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 (64) hide show
  1. package/catalog/components/collection-contents/collection-contents.component.d.ts +8 -2
  2. package/catalog/components/collection-detail/collection-detail.component.d.ts +11 -4
  3. package/catalog/components/collection-list/collection-list.component.d.ts +2 -0
  4. package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
  5. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +6 -2
  6. package/catalog/components/collection-tree/collection-tree.component.d.ts +2 -1
  7. package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
  8. package/core/common/generated-types.d.ts +62 -0
  9. package/core/common/version.d.ts +1 -1
  10. package/core/data/definitions/collection-definitions.d.ts +1 -0
  11. package/core/data/providers/collection-data.service.d.ts +4 -0
  12. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  13. package/esm2020/catalog/components/assets/assets.component.mjs +2 -2
  14. package/esm2020/catalog/components/collection-contents/collection-contents.component.mjs +53 -13
  15. package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +55 -32
  16. package/esm2020/catalog/components/collection-list/collection-list.component.mjs +30 -5
  17. package/esm2020/catalog/components/collection-tree/array-to-tree.mjs +3 -3
  18. package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +29 -10
  19. package/esm2020/catalog/components/collection-tree/collection-tree.component.mjs +6 -3
  20. package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +2 -2
  21. package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +9 -3
  22. package/esm2020/catalog/providers/routing/collection-resolver.mjs +1 -1
  23. package/esm2020/core/app.component.module.mjs +1 -1
  24. package/esm2020/core/common/base-detail.component.mjs +1 -1
  25. package/esm2020/core/common/deactivate-aware.mjs +1 -1
  26. package/esm2020/core/common/generated-types.mjs +26 -1
  27. package/esm2020/core/common/introspection-result.mjs +255 -189
  28. package/esm2020/core/common/utilities/configurable-operation-utils.mjs +21 -2
  29. package/esm2020/core/common/version.mjs +2 -2
  30. package/esm2020/core/core.module.mjs +1 -1
  31. package/esm2020/core/data/definitions/collection-definitions.mjs +18 -1
  32. package/esm2020/core/data/definitions/order-definitions.mjs +430 -430
  33. package/esm2020/core/data/definitions/shared-definitions.mjs +29 -28
  34. package/esm2020/core/data/providers/collection-data.service.mjs +5 -2
  35. package/esm2020/core/data/providers/promotion-data.service.mjs +1 -1
  36. package/esm2020/core/providers/local-storage/local-storage.service.mjs +1 -1
  37. package/esm2020/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
  38. package/esm2020/core/shared/components/configurable-input/configurable-input.component.mjs +10 -9
  39. package/esm2020/core/shared/components/help-tooltip/help-tooltip.component.mjs +2 -2
  40. package/esm2020/core/shared/components/object-tree/object-tree.component.mjs +1 -1
  41. package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
  42. package/esm2020/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +1 -1
  43. package/esm2020/core/shared/shared.module.mjs +1 -1
  44. package/esm2020/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
  45. package/esm2020/order/components/order-editor/order-editor.component.mjs +3 -3
  46. package/esm2020/order/components/order-table/order-table.component.mjs +2 -2
  47. package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +1 -1
  48. package/fesm2015/vendure-admin-ui-catalog.mjs +177 -57
  49. package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
  50. package/fesm2015/vendure-admin-ui-core.mjs +846 -717
  51. package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
  52. package/fesm2015/vendure-admin-ui-order.mjs +4 -4
  53. package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
  54. package/fesm2020/vendure-admin-ui-catalog.mjs +175 -59
  55. package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
  56. package/fesm2020/vendure-admin-ui-core.mjs +846 -716
  57. package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
  58. package/fesm2020/vendure-admin-ui-order.mjs +4 -4
  59. package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
  60. package/package.json +2 -2
  61. package/static/i18n-messages/de.json +1 -0
  62. package/static/styles/global/_forms.scss +3 -4
  63. package/static/styles/global/_overrides.scss +6 -0
  64. package/static/theme.min.css +1 -1
@@ -1,7 +1,7 @@
1
1
  import { OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
- import { DataService, GetCollectionContentsQuery } from '@vendure/admin-ui/core';
4
+ import { ConfigurableOperationInput, DataService, GetCollectionContentsQuery } from '@vendure/admin-ui/core';
5
5
  import { Observable } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class CollectionContentsComponent implements OnInit, OnChanges, OnDestroy {
@@ -9,13 +9,19 @@ export declare class CollectionContentsComponent implements OnInit, OnChanges, O
9
9
  private router;
10
10
  private dataService;
11
11
  collectionId: string;
12
+ parentId: string;
13
+ updatedFilters: ConfigurableOperationInput[] | undefined;
14
+ previewUpdatedFilters: boolean;
12
15
  headerTemplate: TemplateRef<any>;
13
16
  contents$: Observable<NonNullable<GetCollectionContentsQuery['collection']>['productVariants']['items']>;
14
17
  contentsTotalItems$: Observable<number>;
15
18
  contentsItemsPerPage$: Observable<number>;
16
19
  contentsCurrentPage$: Observable<number>;
17
20
  filterTermControl: FormControl;
21
+ isLoading: boolean;
18
22
  private collectionIdChange$;
23
+ private parentIdChange$;
24
+ private filterChanges$;
19
25
  private refresh$;
20
26
  private destroy$;
21
27
  constructor(route: ActivatedRoute, router: Router, dataService: DataService);
@@ -27,5 +33,5 @@ export declare class CollectionContentsComponent implements OnInit, OnChanges, O
27
33
  refresh(): void;
28
34
  private setParam;
29
35
  static ɵfac: i0.ɵɵFactoryDeclaration<CollectionContentsComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<CollectionContentsComponent, "vdr-collection-contents", never, { "collectionId": "collectionId"; }, {}, ["headerTemplate"], never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<CollectionContentsComponent, "vdr-collection-contents", never, { "collectionId": "collectionId"; "parentId": "parentId"; "updatedFilters": "updatedFilters"; "previewUpdatedFilters": "previewUpdatedFilters"; }, {}, ["headerTemplate"], never>;
31
37
  }
@@ -1,7 +1,8 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
- import { Asset, BaseDetailComponent, CollectionFragment, ConfigurableOperation, ConfigurableOperationDefinition, CustomFieldConfig, DataService, LanguageCode, ModalService, NotificationService, Permission, ServerConfigService } from '@vendure/admin-ui/core';
4
+ import { Asset, BaseDetailComponent, CollectionFragment, ConfigurableOperation, ConfigurableOperationDefinition, ConfigurableOperationInput, CustomFieldConfig, DataService, LanguageCode, LocalStorageService, ModalService, NotificationService, Permission, ServerConfigService } from '@vendure/admin-ui/core';
5
+ import { Observable } from 'rxjs';
5
6
  import { CollectionContentsComponent } from '../collection-contents/collection-contents.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class CollectionDetailComponent extends BaseDetailComponent<CollectionFragment> implements OnInit, OnDestroy {
@@ -10,6 +11,7 @@ export declare class CollectionDetailComponent extends BaseDetailComponent<Colle
10
11
  private formBuilder;
11
12
  private notificationService;
12
13
  private modalService;
14
+ private localStorageService;
13
15
  customFields: CustomFieldConfig[];
14
16
  detailForm: FormGroup;
15
17
  assetChanges: {
@@ -18,22 +20,27 @@ export declare class CollectionDetailComponent extends BaseDetailComponent<Colle
18
20
  };
19
21
  filters: ConfigurableOperation[];
20
22
  allFilters: ConfigurableOperationDefinition[];
23
+ updatedFilters$: Observable<ConfigurableOperationInput[]>;
24
+ livePreview: boolean;
25
+ parentId$: Observable<string | undefined>;
21
26
  readonly updatePermission: Permission[];
22
27
  contentsComponent: CollectionContentsComponent;
23
- constructor(router: Router, route: ActivatedRoute, serverConfigService: ServerConfigService, changeDetector: ChangeDetectorRef, dataService: DataService, formBuilder: FormBuilder, notificationService: NotificationService, modalService: ModalService);
28
+ constructor(router: Router, route: ActivatedRoute, serverConfigService: ServerConfigService, changeDetector: ChangeDetectorRef, dataService: DataService, formBuilder: FormBuilder, notificationService: NotificationService, modalService: ModalService, localStorageService: LocalStorageService);
24
29
  ngOnInit(): void;
25
30
  ngOnDestroy(): void;
26
- getFilterDefinition(filter: ConfigurableOperation): ConfigurableOperationDefinition | undefined;
31
+ getFilterDefinition(_filter: ConfigurableOperation): ConfigurableOperationDefinition | undefined;
27
32
  assetsChanged(): boolean;
28
33
  /**
29
34
  * If creating a new Collection, automatically generate the slug based on the collection name.
30
35
  */
31
36
  updateSlug(nameValue: string): void;
32
37
  addFilter(collectionFilter: ConfigurableOperation): void;
33
- removeFilter(collectionFilter: ConfigurableOperation): void;
38
+ removeFilter(index: number): void;
34
39
  create(): void;
35
40
  save(): void;
36
41
  canDeactivate(): boolean;
42
+ toggleLivePreview(): void;
43
+ trackByFn(index: number, item: ConfigurableOperation): string;
37
44
  /**
38
45
  * Sets the values of the form on changes to the category or current language.
39
46
  */
@@ -19,11 +19,13 @@ export declare class CollectionListComponent implements OnInit, OnDestroy {
19
19
  availableLanguages$: Observable<LanguageCode[]>;
20
20
  contentLanguage$: Observable<LanguageCode>;
21
21
  expandAll: boolean;
22
+ expandedIds: string[];
22
23
  private queryResult;
23
24
  private destroy$;
24
25
  constructor(dataService: DataService, notificationService: NotificationService, modalService: ModalService, router: Router, route: ActivatedRoute, serverConfigService: ServerConfigService);
25
26
  ngOnInit(): void;
26
27
  ngOnDestroy(): void;
28
+ toggleExpandAll(): void;
27
29
  onRearrange(event: RearrangeEvent): void;
28
30
  deleteCollection(id: string): void;
29
31
  closeContents(): void;
@@ -16,4 +16,4 @@ export declare type RootNode<T extends HasParent> = {
16
16
  * Builds a tree from an array of nodes which have a parent.
17
17
  * Based on https://stackoverflow.com/a/31247960/772859, modified to preserve ordering.
18
18
  */
19
- export declare function arrayToTree<T extends HasParent>(nodes: T[], currentState?: RootNode<T>): RootNode<T>;
19
+ export declare function arrayToTree<T extends HasParent>(nodes: T[], currentState?: RootNode<T>, expandedIds?: string[]): RootNode<T>;
@@ -1,5 +1,6 @@
1
1
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
2
  import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
3
+ import { ActivatedRoute, Router } from '@angular/router';
3
4
  import { DataService } from '@vendure/admin-ui/core';
4
5
  import { Observable } from 'rxjs';
5
6
  import { RootNode, TreeNode } from './array-to-tree';
@@ -10,6 +11,8 @@ export declare class CollectionTreeNodeComponent implements OnInit, OnChanges {
10
11
  private parent;
11
12
  private dataService;
12
13
  private collectionTreeService;
14
+ private router;
15
+ private route;
13
16
  depth: number;
14
17
  parentName: string;
15
18
  collectionTree: TreeNode<CollectionPartial>;
@@ -21,16 +24,17 @@ export declare class CollectionTreeNodeComponent implements OnInit, OnChanges {
21
24
  path: string;
22
25
  id: string;
23
26
  }>;
24
- constructor(parent: CollectionTreeNodeComponent, dataService: DataService, collectionTreeService: CollectionTreeService);
27
+ constructor(parent: CollectionTreeNodeComponent, dataService: DataService, collectionTreeService: CollectionTreeService, router: Router, route: ActivatedRoute);
25
28
  ngOnInit(): void;
26
29
  ngOnChanges(changes: SimpleChanges): void;
27
30
  trackByFn(index: number, item: CollectionPartial): string;
31
+ toggleExpanded(collection: TreeNode<CollectionPartial>): void;
28
32
  getMoveListItems(collection: CollectionPartial): void;
29
33
  move(collection: CollectionPartial, parentId: string): void;
30
34
  moveUp(collection: CollectionPartial, currentIndex: number): void;
31
35
  moveDown(collection: CollectionPartial, currentIndex: number): void;
32
36
  drop(event: CdkDragDrop<CollectionPartial | RootNode<CollectionPartial>>): void;
33
37
  delete(id: string): void;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<CollectionTreeNodeComponent, [{ optional: true; skipSelf: true; }, null, null]>;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<CollectionTreeNodeComponent, [{ optional: true; skipSelf: true; }, null, null, null, null]>;
35
39
  static ɵcmp: i0.ɵɵComponentDeclaration<CollectionTreeNodeComponent, "vdr-collection-tree-node", never, { "collectionTree": "collectionTree"; "activeCollectionId": "activeCollectionId"; "expandAll": "expandAll"; }, {}, never, never>;
36
40
  }
@@ -8,6 +8,7 @@ export declare class CollectionTreeComponent implements OnInit, OnChanges {
8
8
  collections: CollectionPartial[];
9
9
  activeCollectionId: string;
10
10
  expandAll: boolean;
11
+ expandedIds: string[];
11
12
  rearrange: EventEmitter<RearrangeEvent>;
12
13
  deleteCollection: EventEmitter<string>;
13
14
  collectionTree: RootNode<CollectionPartial>;
@@ -15,5 +16,5 @@ export declare class CollectionTreeComponent implements OnInit, OnChanges {
15
16
  ngOnChanges(changes: SimpleChanges): void;
16
17
  ngOnInit(): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<CollectionTreeComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<CollectionTreeComponent, "vdr-collection-tree", never, { "collections": "collections"; "activeCollectionId": "activeCollectionId"; "expandAll": "expandAll"; }, { "rearrange": "rearrange"; "deleteCollection": "deleteCollection"; }, never, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<CollectionTreeComponent, "vdr-collection-tree", never, { "collections": "collections"; "activeCollectionId": "activeCollectionId"; "expandAll": "expandAll"; "expandedIds": "expandedIds"; }, { "rearrange": "rearrange"; "deleteCollection": "deleteCollection"; }, never, never>;
19
20
  }
@@ -51,6 +51,7 @@ export declare class ProductVariantsListComponent implements OnChanges, OnInit,
51
51
  trackById(index: number, item: ProductVariantFragment): string;
52
52
  inventoryIsNotTracked(formGroup: FormGroup): boolean;
53
53
  getTaxCategoryName(group: FormGroup): string;
54
+ getStockOnHandMinValue(variant: FormGroup): any;
54
55
  getSaleableStockLevel(variant: ProductVariantFragment): number;
55
56
  areAllSelected(): boolean;
56
57
  onAssetChange(variantId: string, event: AssetChange): void;
@@ -3133,6 +3133,31 @@ export declare type PaymentStateTransitionError = ErrorResult & {
3133
3133
  * Permissions for administrators and customers. Used to control access to
3134
3134
  * GraphQL resolvers via the {@link Allow} decorator.
3135
3135
  *
3136
+ * ## Understanding Permission.Owner
3137
+ *
3138
+ * `Permission.Owner` is a special permission which is used in some of the Vendure resolvers to indicate that that resolver should only
3139
+ * be accessible to the "owner" of that resource.
3140
+ *
3141
+ * For example, the Shop API `activeCustomer` query resolver should only return the Customer object for the "owner" of that Customer, i.e.
3142
+ * based on the activeUserId of the current session. As a result, the resolver code looks like this:
3143
+ *
3144
+ * @example
3145
+ * ```TypeScript
3146
+ * \@Query()
3147
+ * \@Allow(Permission.Owner)
3148
+ * async activeCustomer(\@Ctx() ctx: RequestContext): Promise<Customer | undefined> {
3149
+ * const userId = ctx.activeUserId;
3150
+ * if (userId) {
3151
+ * return this.customerService.findOneByUserId(ctx, userId);
3152
+ * }
3153
+ * }
3154
+ * ```
3155
+ *
3156
+ * Here we can see that the "ownership" must be enforced by custom logic inside the resolver. Since "ownership" cannot be defined generally
3157
+ * nor statically encoded at build-time, any resolvers using `Permission.Owner` **must** include logic to enforce that only the owner
3158
+ * of the resource has access. If not, then it is the equivalent of using `Permission.Public`.
3159
+ *
3160
+ *
3136
3161
  * @docsCategory common
3137
3162
  */
3138
3163
  export declare enum Permission {
@@ -3314,6 +3339,10 @@ export declare type PermissionDefinition = {
3314
3339
  description: Scalars['String'];
3315
3340
  name: Scalars['String'];
3316
3341
  };
3342
+ export declare type PreviewCollectionVariantsInput = {
3343
+ filters: Array<ConfigurableOperationInput>;
3344
+ parentId?: InputMaybe<Scalars['ID']>;
3345
+ };
3317
3346
  /** The price range where the result has more than one price */
3318
3347
  export declare type PriceRange = {
3319
3348
  __typename?: 'PriceRange';
@@ -3656,6 +3685,8 @@ export declare type Query = {
3656
3685
  paymentMethodHandlers: Array<ConfigurableOperationDefinition>;
3657
3686
  paymentMethods: PaymentMethodList;
3658
3687
  pendingSearchIndexUpdates: Scalars['Int'];
3688
+ /** Used for real-time previews of the contents of a Collection */
3689
+ previewCollectionVariants: ProductVariantList;
3659
3690
  /** Get a Product either by id or slug. If neither id nor slug is specified, an error will result. */
3660
3691
  product?: Maybe<Product>;
3661
3692
  productOptionGroup?: Maybe<ProductOptionGroup>;
@@ -3760,6 +3791,10 @@ export declare type QueryPaymentMethodArgs = {
3760
3791
  export declare type QueryPaymentMethodsArgs = {
3761
3792
  options?: InputMaybe<PaymentMethodListOptions>;
3762
3793
  };
3794
+ export declare type QueryPreviewCollectionVariantsArgs = {
3795
+ input: PreviewCollectionVariantsInput;
3796
+ options?: InputMaybe<ProductVariantListOptions>;
3797
+ };
3763
3798
  export declare type QueryProductArgs = {
3764
3799
  id?: InputMaybe<Scalars['ID']>;
3765
3800
  slug?: InputMaybe<Scalars['String']>;
@@ -5351,6 +5386,7 @@ export declare type GetCollectionFiltersQuery = {
5351
5386
  list: boolean;
5352
5387
  ui?: any | null;
5353
5388
  label?: string | null;
5389
+ description?: string | null;
5354
5390
  }>;
5355
5391
  }>;
5356
5392
  };
@@ -5826,10 +5862,28 @@ export declare type GetCollectionContentsQuery = {
5826
5862
  id: string;
5827
5863
  productId: string;
5828
5864
  name: string;
5865
+ sku: string;
5829
5866
  }>;
5830
5867
  };
5831
5868
  } | null;
5832
5869
  };
5870
+ export declare type PreviewCollectionContentsQueryVariables = Exact<{
5871
+ input: PreviewCollectionVariantsInput;
5872
+ options?: InputMaybe<ProductVariantListOptions>;
5873
+ }>;
5874
+ export declare type PreviewCollectionContentsQuery = {
5875
+ previewCollectionVariants: {
5876
+ __typename?: 'ProductVariantList';
5877
+ totalItems: number;
5878
+ items: Array<{
5879
+ __typename?: 'ProductVariant';
5880
+ id: string;
5881
+ productId: string;
5882
+ name: string;
5883
+ sku: string;
5884
+ }>;
5885
+ };
5886
+ };
5833
5887
  export declare type AddressFragment = {
5834
5888
  __typename?: 'Address';
5835
5889
  id: string;
@@ -10374,6 +10428,7 @@ export declare type GetAdjustmentOperationsQuery = {
10374
10428
  list: boolean;
10375
10429
  ui?: any | null;
10376
10430
  label?: string | null;
10431
+ description?: string | null;
10377
10432
  }>;
10378
10433
  }>;
10379
10434
  promotionActions: Array<{
@@ -10389,6 +10444,7 @@ export declare type GetAdjustmentOperationsQuery = {
10389
10444
  list: boolean;
10390
10445
  ui?: any | null;
10391
10446
  label?: string | null;
10447
+ description?: string | null;
10392
10448
  }>;
10393
10449
  }>;
10394
10450
  };
@@ -11293,6 +11349,7 @@ export declare type GetPaymentMethodOperationsQuery = {
11293
11349
  list: boolean;
11294
11350
  ui?: any | null;
11295
11351
  label?: string | null;
11352
+ description?: string | null;
11296
11353
  }>;
11297
11354
  }>;
11298
11355
  paymentMethodHandlers: Array<{
@@ -11308,6 +11365,7 @@ export declare type GetPaymentMethodOperationsQuery = {
11308
11365
  list: boolean;
11309
11366
  ui?: any | null;
11310
11367
  label?: string | null;
11368
+ description?: string | null;
11311
11369
  }>;
11312
11370
  }>;
11313
11371
  };
@@ -16377,6 +16435,7 @@ export declare type ConfigurableOperationDefFragment = {
16377
16435
  list: boolean;
16378
16436
  ui?: any | null;
16379
16437
  label?: string | null;
16438
+ description?: string | null;
16380
16439
  }>;
16381
16440
  };
16382
16441
  declare type ErrorResult_AlreadyRefundedError_Fragment = {
@@ -16696,6 +16755,7 @@ export declare type GetShippingMethodOperationsQuery = {
16696
16755
  list: boolean;
16697
16756
  ui?: any | null;
16698
16757
  label?: string | null;
16758
+ description?: string | null;
16699
16759
  }>;
16700
16760
  }>;
16701
16761
  shippingCalculators: Array<{
@@ -16711,6 +16771,7 @@ export declare type GetShippingMethodOperationsQuery = {
16711
16771
  list: boolean;
16712
16772
  ui?: any | null;
16713
16773
  label?: string | null;
16774
+ description?: string | null;
16714
16775
  }>;
16715
16776
  }>;
16716
16777
  fulfillmentHandlers: Array<{
@@ -16726,6 +16787,7 @@ export declare type GetShippingMethodOperationsQuery = {
16726
16787
  list: boolean;
16727
16788
  ui?: any | null;
16728
16789
  label?: string | null;
16790
+ description?: string | null;
16729
16791
  }>;
16730
16792
  }>;
16731
16793
  };
@@ -1 +1 @@
1
- export declare const ADMIN_UI_VERSION = "2.0.0-next.2";
1
+ export declare const ADMIN_UI_VERSION = "2.0.0-next.3";
@@ -7,3 +7,4 @@ export declare const UPDATE_COLLECTION: import("apollo-angular").TypedDocumentNo
7
7
  export declare const MOVE_COLLECTION: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
8
8
  export declare const DELETE_COLLECTION: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
9
9
  export declare const GET_COLLECTION_CONTENTS: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
10
+ export declare const PREVIEW_COLLECTION_CONTENTS: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
@@ -14,6 +14,10 @@ export declare class CollectionDataService {
14
14
  updateCollection(input: Codegen.UpdateCollectionInput): import("rxjs").Observable<Codegen.UpdateCollectionMutation>;
15
15
  moveCollection(inputs: Codegen.MoveCollectionInput[]): import("rxjs").Observable<Codegen.MoveCollectionMutation[]>;
16
16
  deleteCollection(id: string): import("rxjs").Observable<Codegen.DeleteCollectionMutation>;
17
+ previewCollectionVariants(input: Codegen.PreviewCollectionVariantsInput, options: Codegen.ProductVariantListOptions): import("@vendure/admin-ui/core").QueryResult<Codegen.PreviewCollectionContentsQuery, Codegen.Exact<{
18
+ input: Codegen.PreviewCollectionVariantsInput;
19
+ options?: Codegen.InputMaybe<Codegen.ProductVariantListOptions> | undefined;
20
+ }>>;
17
21
  getCollectionContents(id: string, take?: number, skip?: number, filterTerm?: string): import("@vendure/admin-ui/core").QueryResult<Codegen.GetCollectionContentsQuery, Codegen.Exact<{
18
22
  id: string;
19
23
  options?: Codegen.InputMaybe<Codegen.ProductVariantListOptions> | undefined;
@@ -11,6 +11,7 @@ export declare type LocalStorageTypeMap = {
11
11
  orderListLastCustomFilters: any;
12
12
  dashboardWidgetLayout: WidgetLayoutDefinition;
13
13
  activeTheme: string;
14
+ livePreviewCollectionContents: boolean;
14
15
  };
15
16
  export declare type LocalStorageLocationBasedTypeMap = {
16
17
  shippingTestOrder: any;
@@ -78,10 +78,10 @@ export class AssetsComponent {
78
78
  }
79
79
  }
80
80
  AssetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssetsComponent, deps: [{ token: i1.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
81
- AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AssetsComponent, selector: "vdr-assets", inputs: { assetsSetter: ["assets", "assetsSetter"], featuredAsset: "featuredAsset", compact: "compact", updatePermissions: "updatePermissions" }, outputs: { change: "change" }, host: { properties: { "class.compact": "this.compact" } }, ngImport: i0, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"], components: [{ type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "assetPreview": i1.AssetPreviewPipe, "translate": i5.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
+ AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AssetsComponent, selector: "vdr-assets", inputs: { assetsSetter: ["assets", "assetsSetter"], featuredAsset: "featuredAsset", compact: "compact", updatePermissions: "updatePermissions" }, outputs: { change: "change" }, host: { properties: { "class.compact": "this.compact" } }, ngImport: i0, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb img{width:50px;height:50px}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"], components: [{ type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "assetPreview": i1.AssetPreviewPipe, "translate": i5.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssetsComponent, decorators: [{
83
83
  type: Component,
84
- args: [{ selector: 'vdr-assets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"] }]
84
+ args: [{ selector: 'vdr-assets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb img{width:50px;height:50px}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"] }]
85
85
  }], ctorParameters: function () { return [{ type: i1.ModalService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { assetsSetter: [{
86
86
  type: Input,
87
87
  args: ['assets']