slick-components 17.0.77 → 17.0.79

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.
@@ -23,7 +23,7 @@ class SlickInitParams {
23
23
  }
24
24
  }
25
25
  class SlickInitService {
26
- static { this.version = "17.0.77"; }
26
+ static { this.version = "17.0.79"; }
27
27
  constructor() { }
28
28
  static init(initParams) {
29
29
  console.info(`Slick Components Version ${SlickInitService.version}`);
@@ -2851,26 +2851,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2851
2851
  }] });
2852
2852
 
2853
2853
  class SlickDragDropDirective {
2854
+ constructor() {
2855
+ this.itemDropped = new EventEmitter();
2856
+ this.dragEntered = new EventEmitter();
2857
+ this.dragLeft = new EventEmitter();
2858
+ }
2859
+ onDragOver(event) {
2860
+ event.preventDefault(); // Needed to allow drop
2861
+ }
2862
+ onDragEnter(event) {
2863
+ event.preventDefault();
2864
+ this.dragEntered.emit();
2865
+ }
2866
+ onDragLeave(event) {
2867
+ this.dragLeft.emit();
2868
+ }
2869
+ onDrop(event) {
2870
+ event.preventDefault();
2871
+ if (!event.dataTransfer)
2872
+ return;
2873
+ // Only accept slick-draggable items
2874
+ const slickData = event.dataTransfer.getData('application/x-slick-draggable');
2875
+ if (!slickData)
2876
+ return; // Not from slick-draggable, ignore
2877
+ try {
2878
+ const item = JSON.parse(slickData);
2879
+ this.itemDropped.emit(item);
2880
+ }
2881
+ catch (e) {
2882
+ console.warn('Dropped data not valid JSON', e);
2883
+ }
2884
+ }
2854
2885
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDragDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2855
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: SlickDragDropDirective, selector: "[slick-drag-drop]", ngImport: i0 }); }
2886
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: SlickDragDropDirective, selector: "[slick-drag-drop]", outputs: { itemDropped: "itemDropped", dragEntered: "dragEntered", dragLeft: "dragLeft" }, host: { listeners: { "dragover": "onDragOver($event)", "dragenter": "onDragEnter($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
2856
2887
  }
2857
2888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDragDropDirective, decorators: [{
2858
2889
  type: Directive,
2859
2890
  args: [{
2860
2891
  selector: '[slick-drag-drop]'
2861
2892
  }]
2862
- }] });
2893
+ }], propDecorators: { itemDropped: [{
2894
+ type: Output
2895
+ }], dragEntered: [{
2896
+ type: Output
2897
+ }], dragLeft: [{
2898
+ type: Output
2899
+ }], onDragOver: [{
2900
+ type: HostListener,
2901
+ args: ['dragover', ['$event']]
2902
+ }], onDragEnter: [{
2903
+ type: HostListener,
2904
+ args: ['dragenter', ['$event']]
2905
+ }], onDragLeave: [{
2906
+ type: HostListener,
2907
+ args: ['dragleave', ['$event']]
2908
+ }], onDrop: [{
2909
+ type: HostListener,
2910
+ args: ['drop', ['$event']]
2911
+ }] } });
2863
2912
 
2864
2913
  class SlickDraggableDirective {
2865
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDraggableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2866
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: SlickDraggableDirective, selector: "[slick-draggable]", ngImport: i0 }); }
2914
+ constructor(el) {
2915
+ this.el = el;
2916
+ this.dragStarted = new EventEmitter();
2917
+ this.dragEnded = new EventEmitter();
2918
+ this.el.nativeElement.draggable = true;
2919
+ }
2920
+ onDragStart(event) {
2921
+ if (!event.dataTransfer)
2922
+ return;
2923
+ // Use a custom MIME type for slick-draggable items
2924
+ event.dataTransfer.setData('application/x-slick-draggable', JSON.stringify(this.data));
2925
+ this.el.nativeElement.style.opacity = '0.5';
2926
+ this.dragStarted.emit(this.data);
2927
+ }
2928
+ onDragEnd(event) {
2929
+ this.el.nativeElement.style.opacity = '1';
2930
+ this.dragEnded.emit(this.data);
2931
+ }
2932
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDraggableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2933
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: SlickDraggableDirective, selector: "[slick-draggable]", inputs: { data: "data" }, outputs: { dragStarted: "dragStarted", dragEnded: "dragEnded" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" } }, ngImport: i0 }); }
2867
2934
  }
2868
2935
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDraggableDirective, decorators: [{
2869
2936
  type: Directive,
2870
2937
  args: [{
2871
2938
  selector: '[slick-draggable]'
2872
2939
  }]
2873
- }] });
2940
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{
2941
+ type: Input
2942
+ }], dragStarted: [{
2943
+ type: Output
2944
+ }], dragEnded: [{
2945
+ type: Output
2946
+ }], onDragStart: [{
2947
+ type: HostListener,
2948
+ args: ['dragstart', ['$event']]
2949
+ }], onDragEnd: [{
2950
+ type: HostListener,
2951
+ args: ['dragend', ['$event']]
2952
+ }] } });
2874
2953
 
2875
2954
  class SlickDragDropModule {
2876
2955
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -3529,6 +3608,12 @@ class SlickDropListDirective {
3529
3608
  }
3530
3609
  }
3531
3610
  async mouseDown(e, target = null) {
3611
+ const clickedElement = e.target;
3612
+ const formControl = SlickUtilsService.findParent(clickedElement, 'input') ||
3613
+ SlickUtilsService.findParent(clickedElement, 'textarea') ||
3614
+ SlickUtilsService.findParent(clickedElement, 'select');
3615
+ if (formControl)
3616
+ return;
3532
3617
  this.isAdding = false;
3533
3618
  this.isMoving = false;
3534
3619
  if (e.button !== 0 || !e || !e.target)