@vendure/admin-ui 1.3.0 → 1.3.4

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 (31) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +25 -13
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +65 -31
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -1
  6. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +5 -4
  7. package/catalog/components/collection-tree/collection-tree.component.d.ts +11 -0
  8. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  9. package/core/common/generated-types.d.ts +4 -4
  10. package/core/common/version.d.ts +1 -1
  11. package/core/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +2 -0
  12. package/core/shared/components/currency-input/currency-input.component.d.ts +6 -3
  13. package/core/vendure-admin-ui-core.metadata.json +1 -1
  14. package/esm2015/catalog/components/collection-tree/array-to-tree.js +1 -1
  15. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +4 -14
  16. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +23 -1
  17. package/esm2015/core/common/generated-types.js +1 -1
  18. package/esm2015/core/common/introspection-result.js +1 -1
  19. package/esm2015/core/common/version.js +2 -2
  20. package/esm2015/core/data/data.module.js +1 -1
  21. package/esm2015/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +36 -22
  22. package/esm2015/core/shared/components/currency-input/currency-input.component.js +26 -7
  23. package/esm2015/core/shared/components/object-tree/object-tree.component.js +3 -3
  24. package/esm2015/dashboard/widgets/welcome-widget/welcome-widget.component.js +1 -1
  25. package/fesm2015/vendure-admin-ui-catalog.js +25 -13
  26. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  27. package/fesm2015/vendure-admin-ui-core.js +63 -30
  28. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  29. package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -1
  30. package/package.json +2 -2
  31. package/static/vendure-ui-config.json +1 -1
@@ -3598,10 +3598,12 @@
3598
3598
  this.expandAll = false;
3599
3599
  this.rearrange = new i0.EventEmitter();
3600
3600
  this.deleteCollection = new i0.EventEmitter();
3601
+ this.allMoveListItems = [];
3601
3602
  }
3602
3603
  CollectionTreeComponent.prototype.ngOnChanges = function (changes) {
3603
3604
  if ('collections' in changes && this.collections) {
3604
3605
  this.collectionTree = arrayToTree(this.collections, this.collectionTree);
3606
+ this.allMoveListItems = [];
3605
3607
  }
3606
3608
  };
3607
3609
  CollectionTreeComponent.prototype.onDrop = function (event) {
@@ -3623,6 +3625,26 @@
3623
3625
  CollectionTreeComponent.prototype.onDelete = function (id) {
3624
3626
  this.deleteCollection.emit(id);
3625
3627
  };
3628
+ CollectionTreeComponent.prototype.getMoveListItems = function (collection) {
3629
+ if (this.allMoveListItems.length === 0) {
3630
+ this.allMoveListItems = this.calculateAllMoveListItems();
3631
+ }
3632
+ return this.allMoveListItems.filter(function (item) {
3633
+ var _a;
3634
+ return item.id !== collection.id &&
3635
+ !item.ancestorIdPath.has(collection.id) &&
3636
+ item.id !== ((_a = collection.parent) === null || _a === void 0 ? void 0 : _a.id);
3637
+ });
3638
+ };
3639
+ CollectionTreeComponent.prototype.calculateAllMoveListItems = function () {
3640
+ var visit = function (node, parentPath, ancestorIdPath, output) {
3641
+ var path = parentPath.concat(node.name);
3642
+ output.push({ path: path.slice(1).join(' / ') || 'root', id: node.id, ancestorIdPath: ancestorIdPath });
3643
+ node.children.forEach(function (child) { return visit(child, path, new Set(__spreadArray(__spreadArray([], __read(ancestorIdPath)), [node.id])), output); });
3644
+ return output;
3645
+ };
3646
+ return visit(this.collectionTree, [], new Set(), []);
3647
+ };
3626
3648
  CollectionTreeComponent.prototype.isRootNode = function (node) {
3627
3649
  return !node.hasOwnProperty('parent');
3628
3650
  };
@@ -3651,6 +3673,7 @@
3651
3673
  this.dataService = dataService;
3652
3674
  this.depth = 0;
3653
3675
  this.expandAll = false;
3676
+ this.moveListItems = [];
3654
3677
  if (parent) {
3655
3678
  this.depth = parent.depth + 1;
3656
3679
  }
@@ -3676,18 +3699,7 @@
3676
3699
  return item.id;
3677
3700
  };
3678
3701
  CollectionTreeNodeComponent.prototype.getMoveListItems = function (collection) {
3679
- var visit = function (node, parentPath, output) {
3680
- if (node.id !== collection.id) {
3681
- var path_1 = parentPath.concat(node.name);
3682
- var parentId = collection.parent && collection.parent.id;
3683
- if (node.id !== parentId) {
3684
- output.push({ path: path_1.slice(1).join(' / ') || 'root', id: node.id });
3685
- }
3686
- node.children.forEach(function (child) { return visit(child, path_1, output); });
3687
- }
3688
- return output;
3689
- };
3690
- return visit(this.root.collectionTree, [], []);
3702
+ this.moveListItems = this.root.getMoveListItems(collection);
3691
3703
  };
3692
3704
  CollectionTreeNodeComponent.prototype.move = function (collection, parentId) {
3693
3705
  this.root.onMove({
@@ -3728,7 +3740,7 @@
3728
3740
  CollectionTreeNodeComponent.decorators = [
3729
3741
  { type: i0.Component, args: [{
3730
3742
  selector: 'vdr-collection-tree-node',
3731
- template: "<div\r\n cdkDropList\r\n class=\"tree-node\"\r\n #dropList\r\n [cdkDropListData]=\"collectionTree\"\r\n [cdkDropListDisabled]=\"!(hasUpdatePermission$ | async)\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <div\r\n class=\"collection\"\r\n [class.private]=\"collection.isPrivate\"\r\n *ngFor=\"let collection of collectionTree.children; index as i; trackBy: trackByFn\"\r\n cdkDrag\r\n [cdkDragData]=\"collection\"\r\n >\r\n <div\r\n class=\"collection-detail\"\r\n [ngClass]=\"'depth-' + depth\"\r\n [class.active]=\"collection.id === activeCollectionId\"\r\n >\r\n <div class=\"name\">\r\n <button\r\n class=\"icon-button folder-button\"\r\n [disabled]=\"expandAll\"\r\n *ngIf=\"collection.children?.length; else folderSpacer\"\r\n (click)=\"collection.expanded = !collection.expanded\"\r\n >\r\n <clr-icon shape=\"folder\" *ngIf=\"!collection.expanded && !expandAll\"></clr-icon>\r\n <clr-icon shape=\"folder-open\" *ngIf=\"collection.expanded || expandAll\"></clr-icon>\r\n </button>\r\n <ng-template #folderSpacer>\r\n <div class=\"folder-button-spacer\"></div>\r\n </ng-template>\r\n {{ collection.name }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-chip *ngIf=\"collection.isPrivate\">{{ 'catalog.private' | translate }}</vdr-chip>\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: collection.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'catalog.view-contents' | translate }}\r\n </a>\r\n <a class=\"btn btn-link btn-sm\" [routerLink]=\"['/catalog/collections/', collection.id]\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n <div class=\"drag-handle\" cdkDragHandle *vdrIfPermissions=\"['UpdateCatalog', 'UpdateCollection']\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a\r\n class=\"dropdown-item\"\r\n [routerLink]=\"['./', 'create', { parentId: collection.id }]\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateCollection']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-collection' | translate }}\r\n </a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n [disabled]=\"i === 0 || !(hasUpdatePermission$ | async)\"\r\n (click)=\"moveUp(collection, i)\"\r\n >\r\n <clr-icon shape=\"caret up\"></clr-icon>\r\n {{ 'catalog.move-up' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n [disabled]=\"\r\n i === collectionTree.children.length - 1 || !(hasUpdatePermission$ | async)\r\n \"\r\n (click)=\"moveDown(collection, i)\"\r\n >\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n {{ 'catalog.move-down' | translate }}\r\n </button>\r\n <h4 class=\"dropdown-header\">{{ 'catalog.move-to' | translate }}</h4>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n *ngFor=\"let item of getMoveListItems(collection)\"\r\n (click)=\"move(collection, item.id)\"\r\n [disabled]=\"!(hasUpdatePermission$ | async)\"\r\n >\r\n <div class=\"move-to-item\">\r\n <div class=\"move-icon\">\r\n <clr-icon shape=\"child-arrow\"></clr-icon>\r\n </div>\r\n <div class=\"path\">\r\n {{ item.path }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(collection.id)\"\r\n [disabled]=\"!(hasDeletePermission$ | async)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n <vdr-collection-tree-node\r\n *ngIf=\"collection.expanded || expandAll\"\r\n [expandAll]=\"expandAll\"\r\n [collectionTree]=\"collection\"\r\n [activeCollectionId]=\"activeCollectionId\"\r\n ></vdr-collection-tree-node>\r\n </div>\r\n</div>\r\n",
3743
+ template: "<div\r\n cdkDropList\r\n class=\"tree-node\"\r\n #dropList\r\n [cdkDropListData]=\"collectionTree\"\r\n [cdkDropListDisabled]=\"!(hasUpdatePermission$ | async)\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <div\r\n class=\"collection\"\r\n [class.private]=\"collection.isPrivate\"\r\n *ngFor=\"let collection of collectionTree.children; index as i; trackBy: trackByFn\"\r\n cdkDrag\r\n [cdkDragData]=\"collection\"\r\n >\r\n <div\r\n class=\"collection-detail\"\r\n [ngClass]=\"'depth-' + depth\"\r\n [class.active]=\"collection.id === activeCollectionId\"\r\n >\r\n <div class=\"name\">\r\n <button\r\n class=\"icon-button folder-button\"\r\n [disabled]=\"expandAll\"\r\n *ngIf=\"collection.children?.length; else folderSpacer\"\r\n (click)=\"collection.expanded = !collection.expanded\"\r\n >\r\n <clr-icon shape=\"folder\" *ngIf=\"!collection.expanded && !expandAll\"></clr-icon>\r\n <clr-icon shape=\"folder-open\" *ngIf=\"collection.expanded || expandAll\"></clr-icon>\r\n </button>\r\n <ng-template #folderSpacer>\r\n <div class=\"folder-button-spacer\"></div>\r\n </ng-template>\r\n {{ collection.name }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-chip *ngIf=\"collection.isPrivate\">{{ 'catalog.private' | translate }}</vdr-chip>\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: collection.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'catalog.view-contents' | translate }}\r\n </a>\r\n <a class=\"btn btn-link btn-sm\" [routerLink]=\"['/catalog/collections/', collection.id]\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n <div class=\"drag-handle\" cdkDragHandle *vdrIfPermissions=\"['UpdateCatalog', 'UpdateCollection']\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger (click)=\"getMoveListItems(collection)\">\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a\r\n class=\"dropdown-item\"\r\n [routerLink]=\"['./', 'create', { parentId: collection.id }]\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateCollection']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-collection' | translate }}\r\n </a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n [disabled]=\"i === 0 || !(hasUpdatePermission$ | async)\"\r\n (click)=\"moveUp(collection, i)\"\r\n >\r\n <clr-icon shape=\"caret up\"></clr-icon>\r\n {{ 'catalog.move-up' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n [disabled]=\"\r\n i === collectionTree.children.length - 1 || !(hasUpdatePermission$ | async)\r\n \"\r\n (click)=\"moveDown(collection, i)\"\r\n >\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n {{ 'catalog.move-down' | translate }}\r\n </button>\r\n <h4 class=\"dropdown-header\">{{ 'catalog.move-to' | translate }}</h4>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n *ngFor=\"let item of moveListItems\"\r\n (click)=\"move(collection, item.id)\"\r\n [disabled]=\"!(hasUpdatePermission$ | async)\"\r\n >\r\n <div class=\"move-to-item\">\r\n <div class=\"move-icon\">\r\n <clr-icon shape=\"child-arrow\"></clr-icon>\r\n </div>\r\n <div class=\"path\">\r\n {{ item.path }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(collection.id)\"\r\n [disabled]=\"!(hasDeletePermission$ | async)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n <vdr-collection-tree-node\r\n *ngIf=\"collection.expanded || expandAll\"\r\n [expandAll]=\"expandAll\"\r\n [collectionTree]=\"collection\"\r\n [activeCollectionId]=\"activeCollectionId\"\r\n ></vdr-collection-tree-node>\r\n </div>\r\n</div>\r\n",
3732
3744
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
3733
3745
  styles: [":host{display:block}.collection{background-color:var(--color-component-bg-100);font-size:.65rem;transition:transform .25s cubic-bezier(0,0,.2,1);margin-bottom:2px;border-left:2px solid transparent;transition:border-left-color .2s}.collection.private{background-color:var(--color-component-bg-200)}.collection .collection-detail{padding:6px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-component-border-100)}.collection .collection-detail.active{background-color:var(--clr-global-selection-color)}.collection .collection-detail.depth-1{padding-left:36px}.collection .collection-detail.depth-2{padding-left:60px}.collection .collection-detail.depth-3{padding-left:84px}.collection .collection-detail.depth-4{padding-left:108px}.collection .collection-detail .folder-button-spacer{display:inline-block;width:28px}.tree-node{display:block;background:var(--color-component-bg-100);overflow:hidden}.tree-node.cdk-drop-list-dragging>.collection{border-left-color:var(--color-primary-300)}.drag-placeholder{min-height:120px;background-color:var(--color-component-bg-300);transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging .tree-node:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.move-to-item{display:flex;white-space:normal;align-items:baseline}.move-to-item .move-icon{flex:none;margin-right:3px}.move-to-item .path{line-height:18px}\n"]
3734
3746
  },] }