@recursyve/nice-ui-kit.v2 14.0.0-beta.109 → 14.0.0-beta.110

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.
@@ -1,6 +1,8 @@
1
1
  import { CdkDropList, moveItemInArray } from "@angular/cdk/drag-drop";
2
2
  import { Directive, EventEmitter, Input, Optional, Output } from "@angular/core";
3
3
  import { FormArrayName } from "@angular/forms";
4
+ import { pairwise, startWith, Subject } from "rxjs";
5
+ import { map, takeUntil } from "rxjs/operators";
4
6
  import { LexoRankUtils } from "../../utils/lexorank.utils";
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "@angular/forms";
@@ -13,13 +15,23 @@ export class NiceDraggableListDirective {
13
15
  this.itemsUpdated = new EventEmitter();
14
16
  this.itemRankUpdated = new EventEmitter();
15
17
  this.sortedItems = [];
18
+ this.unsubscribeAll$ = new Subject();
16
19
  }
17
20
  ngOnInit() {
18
21
  if (this.formArrayName) {
19
22
  this.formArray = this.formArrayName.control;
23
+ this.formArray.valueChanges.pipe(takeUntil(this.unsubscribeAll$), startWith(this.formArray.getRawValue()), map(() => this.formArray.getRawValue()), pairwise()).subscribe(([previous, current]) => {
24
+ if (previous.length !== current.length) {
25
+ this.sortItems(current);
26
+ }
27
+ });
20
28
  this.sortItems(this.formArray.getRawValue());
21
29
  }
22
- this.cdkDropList.dropped.subscribe((event) => this.drop(event));
30
+ this.cdkDropList.dropped.pipe(takeUntil(this.unsubscribeAll$)).subscribe((event) => this.drop(event));
31
+ }
32
+ ngOnDestroy() {
33
+ this.unsubscribeAll$.next();
34
+ this.unsubscribeAll$.complete();
23
35
  }
24
36
  ngOnChanges(changes) {
25
37
  if ("items" in changes && this.items) {
@@ -79,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
79
91
  }], itemRankUpdated: [{
80
92
  type: Output
81
93
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1saXN0L2RyYWdnYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0JuQyxZQUFnQyxhQUE0QixFQUFVLFdBQXdCO1FBQTlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFYdkYsaUJBQVksR0FBRyxNQUFNLENBQUM7UUFHdEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3ZDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUV4QyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQUdvRSxDQUFDO0lBRTNGLFFBQVE7UUFDWCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUss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QUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakYsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDOzt1SEF2RVEsMEJBQTBCOzJHQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO2lCQUMvQzs7MEJBaUJnQixRQUFRO3NFQWRkLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsZUFBZTtzQkFEckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQXJyYXlOYW1lIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBMZXhvUmFua1V0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xleG9yYW5rLnV0aWxzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltjZGtEcm9wTGlzdF1bbmljZURyYWdnYWJsZUxpc3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgTmljZURyYWdnYWJsZUxpc3REaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbXM6IFRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJhbmtQcm9wZXJ0eSA9IFwicmFua1wiO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGl0ZW1zVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGl0ZW1SYW5rVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIHB1YmxpYyBzb3J0ZWRJdGVtczogVFtdID0gW107XG4gICAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtQXJyYXlOYW1lOiBGb3JtQXJyYXlOYW1lLCBwcml2YXRlIGNka0Ryb3BMaXN0OiBDZGtEcm9wTGlzdCkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUFycmF5TmFtZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLmZvcm1BcnJheU5hbWUuY29udHJvbDtcbiAgICAgICAgICAgIHRoaXMuc29ydEl0ZW1zKHRoaXMuZm9ybUFycmF5LmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZGtEcm9wTGlzdC5kcm9wcGVkLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuZHJvcChldmVudCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcIml0ZW1zXCIgaW4gY2hhbmdlcyAmJiB0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLnNvcnRJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnksIGFueT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5wcmV2aW91c0luZGV4ID09PSBldmVudC5jdXJyZW50SW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50Lml0ZW0uZGF0YVt0aGlzLnJhbmtQcm9wZXJ0eV0gPSB0aGlzLmdldE5leHRSYW5rKGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc29ydEl0ZW1zKHRoaXMuc29ydGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5pdGVtc1VwZGF0ZWQubmV4dCh0aGlzLnNvcnRlZEl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuaXRlbVJhbmtVcGRhdGVkLm5leHQoZXZlbnQuaXRlbS5kYXRhKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQXJyYXkuZ2V0KFtldmVudC5wcmV2aW91c0luZGV4LCB0aGlzLnJhbmtQcm9wZXJ0eV0pPy5wYXRjaFZhbHVlKGV2ZW50Lml0ZW0uZGF0YVt0aGlzLnJhbmtQcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmZvcm1BcnJheS5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBjb250YWluZXIgY2hhbmdlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRJdGVtcyhpdGVtczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCAmJiBpdGVtcy5zb21lKChpdGVtKSA9PiAhaXRlbVt0aGlzLnJhbmtQcm9wZXJ0eV0pKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFsbCBpdGVtcyBtdXN0IGhhdmUgYSAke3RoaXMucmFua1Byb3BlcnR5fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zb3J0ZWRJdGVtcyA9IFsuLi5pdGVtc11cbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiAoey4uLml0ZW19KSlcbiAgICAgICAgICAgIC5zb3J0KChpdGVtQSwgaXRlbUIpID0+IExleG9SYW5rVXRpbHMuY29tcGFyZVN0cmluZ0ZuKGl0ZW1BW3RoaXMucmFua1Byb3BlcnR5XSwgaXRlbUJbdGhpcy5yYW5rUHJvcGVydHldKSk7XG4gICAgICAgIHRoaXMuY2RrRHJvcExpc3QuZGF0YSA9IHRoaXMuc29ydGVkSXRlbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0UmFuayhldmVudDogQ2RrRHJhZ0Ryb3A8YW55LCBhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZnJvbUluZGV4ID0gZXZlbnQucHJldmlvdXNJbmRleDtcbiAgICAgICAgY29uc3QgdG9JbmRleCA9IGV2ZW50LmN1cnJlbnRJbmRleDtcblxuICAgICAgICBjb25zdCBpdGVtQWZ0ZXIgPSB0aGlzLnNvcnRlZEl0ZW1zW2Zyb21JbmRleCA+IHRvSW5kZXggPyB0b0luZGV4IDogdG9JbmRleCArIDFdO1xuICAgICAgICBjb25zdCBpdGVtQmVmb3JlID0gdGhpcy5zb3J0ZWRJdGVtc1tmcm9tSW5kZXggPiB0b0luZGV4ID8gdG9JbmRleCAtIDEgOiB0b0luZGV4XTtcbiAgICAgICAgcmV0dXJuIExleG9SYW5rVXRpbHMuZ2V0TmV3UmFuayhpdGVtQWZ0ZXI/Llt0aGlzLnJhbmtQcm9wZXJ0eV0sIGl0ZW1CZWZvcmU/Llt0aGlzLnJhbmtQcm9wZXJ0eV0pO1xuICAgIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1saXN0L2RyYWdnYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsUUFBUSxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sMEJBQTBCO0lBa0JuQyxZQUFnQyxhQUE0QixFQUFVLFdBQXdCO1FBQTlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFidkYsaUJBQVksR0FBRyxNQUFNLENBQUM7UUFHdEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3ZDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUV4QyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUdyQixvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFbUQsQ0FBQztJQUUzRixRQUFRO1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxD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dEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO2lCQUMvQzs7MEJBbUJnQixRQUFRO3NFQWhCZCxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLGVBQWU7c0JBRHJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQXJyYXlOYW1lIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBwYWlyd2lzZSwgc3RhcnRXaXRoLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBMZXhvUmFua1V0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xleG9yYW5rLnV0aWxzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltjZGtEcm9wTGlzdF1bbmljZURyYWdnYWJsZUxpc3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgTmljZURyYWdnYWJsZUxpc3REaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtczogVFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmFua1Byb3BlcnR5ID0gXCJyYW5rXCI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXRlbXNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXRlbVJhbmtVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgcHVibGljIHNvcnRlZEl0ZW1zOiBUW10gPSBbXTtcbiAgICBwdWJsaWMgZm9ybUFycmF5OiBGb3JtQXJyYXk7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1BcnJheU5hbWU6IEZvcm1BcnJheU5hbWUsIHByaXZhdGUgY2RrRHJvcExpc3Q6IENka0Ryb3BMaXN0KSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtQXJyYXlOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUFycmF5TmFtZS5jb250cm9sO1xuICAgICAgICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtQXJyYXkuZ2V0UmF3VmFsdWUoKSksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybUFycmF5LmdldFJhd1ZhbHVlKCkpLFxuICAgICAgICAgICAgICAgIHBhaXJ3aXNlKClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChbcHJldmlvdXMsIGN1cnJlbnRdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzLmxlbmd0aCAhPT0gY3VycmVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3J0SXRlbXMoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuc29ydEl0ZW1zKHRoaXMuZm9ybUFycmF5LmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZGtEcm9wTGlzdC5kcm9wcGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5kcm9wKGV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFwiaXRlbXNcIiBpbiBjaGFuZ2VzICYmIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueSwgYW55Pik6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnByZXZpb3VzSW5kZXggPT09IGV2ZW50LmN1cnJlbnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXZlbnQuaXRlbS5kYXRhW3RoaXMucmFua1Byb3BlcnR5XSA9IHRoaXMuZ2V0TmV4dFJhbmsoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5zb3J0SXRlbXModGhpcy5zb3J0ZWRJdGVtcyk7XG4gICAgICAgICAgICB0aGlzLml0ZW1zVXBkYXRlZC5uZXh0KHRoaXMuc29ydGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5pdGVtUmFua1VwZGF0ZWQubmV4dChldmVudC5pdGVtLmRhdGEpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1BcnJheS5nZXQoW2V2ZW50LnByZXZpb3VzSW5kZXgsIHRoaXMucmFua1Byb3BlcnR5XSk/LnBhdGNoVmFsdWUoZXZlbnQuaXRlbS5kYXRhW3RoaXMucmFua1Byb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVE9ETzogSGFuZGxlIGNvbnRhaW5lciBjaGFuZ2VcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoICYmIGl0ZW1zLnNvbWUoKGl0ZW0pID0+ICFpdGVtW3RoaXMucmFua1Byb3BlcnR5XSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWxsIGl0ZW1zIG11c3QgaGF2ZSBhICR7dGhpcy5yYW5rUHJvcGVydHl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNvcnRlZEl0ZW1zID0gWy4uLml0ZW1zXVxuICAgICAgICAgICAgLm1hcChpdGVtID0+ICh7Li4uaXRlbX0pKVxuICAgICAgICAgICAgLnNvcnQoKGl0ZW1BLCBpdGVtQikgPT4gTGV4b1JhbmtVdGlscy5jb21wYXJlU3RyaW5nRm4oaXRlbUFbdGhpcy5yYW5rUHJvcGVydHldLCBpdGVtQlt0aGlzLnJhbmtQcm9wZXJ0eV0pKTtcbiAgICAgICAgdGhpcy5jZGtEcm9wTGlzdC5kYXRhID0gdGhpcy5zb3J0ZWRJdGVtcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRSYW5rKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnksIGFueT4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmcm9tSW5kZXggPSBldmVudC5wcmV2aW91c0luZGV4O1xuICAgICAgICBjb25zdCB0b0luZGV4ID0gZXZlbnQuY3VycmVudEluZGV4O1xuXG4gICAgICAgIGNvbnN0IGl0ZW1BZnRlciA9IHRoaXMuc29ydGVkSXRlbXNbZnJvbUluZGV4ID4gdG9JbmRleCA/IHRvSW5kZXggOiB0b0luZGV4ICsgMV07XG4gICAgICAgIGNvbnN0IGl0ZW1CZWZvcmUgPSB0aGlzLnNvcnRlZEl0ZW1zW2Zyb21JbmRleCA+IHRvSW5kZXggPyB0b0luZGV4IC0gMSA6IHRvSW5kZXhdO1xuICAgICAgICByZXR1cm4gTGV4b1JhbmtVdGlscy5nZXROZXdSYW5rKGl0ZW1BZnRlcj8uW3RoaXMucmFua1Byb3BlcnR5XSwgaXRlbUJlZm9yZT8uW3RoaXMucmFua1Byb3BlcnR5XSk7XG4gICAgfVxufVxuIl19
@@ -6,7 +6,7 @@ import { Injectable, NgModule, EventEmitter, Component, ViewEncapsulation, Chang
6
6
  import { plainToInstance } from 'class-transformer';
7
7
  import { map, filter, takeUntil, tap, take, debounceTime as debounceTime$1, delay, switchMap } from 'rxjs/operators';
8
8
  import { __rest, __awaiter } from 'tslib';
9
- import { catchError, ReplaySubject, Subject, BehaviorSubject, mergeMap, from, isObservable, firstValueFrom, debounceTime, distinctUntilChanged, startWith, tap as tap$1, Observable, combineLatest, of, fromEvent, merge as merge$1 } from 'rxjs';
9
+ import { catchError, ReplaySubject, Subject, BehaviorSubject, mergeMap, from, isObservable, firstValueFrom, debounceTime, distinctUntilChanged, startWith, tap as tap$1, Observable, combineLatest, of, fromEvent, merge as merge$1, pairwise } from 'rxjs';
10
10
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
11
11
  import * as i2 from '@angular/common';
12
12
  import { CommonModule, DatePipe, CurrencyPipe, DOCUMENT, isPlatformServer } from '@angular/common';
@@ -10452,13 +10452,23 @@ class NiceDraggableListDirective {
10452
10452
  this.itemsUpdated = new EventEmitter();
10453
10453
  this.itemRankUpdated = new EventEmitter();
10454
10454
  this.sortedItems = [];
10455
+ this.unsubscribeAll$ = new Subject();
10455
10456
  }
10456
10457
  ngOnInit() {
10457
10458
  if (this.formArrayName) {
10458
10459
  this.formArray = this.formArrayName.control;
10460
+ this.formArray.valueChanges.pipe(takeUntil(this.unsubscribeAll$), startWith(this.formArray.getRawValue()), map(() => this.formArray.getRawValue()), pairwise()).subscribe(([previous, current]) => {
10461
+ if (previous.length !== current.length) {
10462
+ this.sortItems(current);
10463
+ }
10464
+ });
10459
10465
  this.sortItems(this.formArray.getRawValue());
10460
10466
  }
10461
- this.cdkDropList.dropped.subscribe((event) => this.drop(event));
10467
+ this.cdkDropList.dropped.pipe(takeUntil(this.unsubscribeAll$)).subscribe((event) => this.drop(event));
10468
+ }
10469
+ ngOnDestroy() {
10470
+ this.unsubscribeAll$.next();
10471
+ this.unsubscribeAll$.complete();
10462
10472
  }
10463
10473
  ngOnChanges(changes) {
10464
10474
  if ("items" in changes && this.items) {