@pepperi-addons/ngx-lib 0.3.9-beta.3 → 0.3.9-beta.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.
- package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js +35 -26
- package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js.map +1 -1
- package/draggable-items/draggable-item/draggable-item.component.d.ts +0 -1
- package/draggable-items/draggable-items.component.d.ts +8 -5
- package/draggable-items/draggable-items.model.d.ts +3 -1
- package/draggable-items/draggable-items.module.d.ts +3 -0
- package/draggable-items/pepperi-addons-ngx-lib-draggable-items.metadata.json +1 -1
- package/esm2015/draggable-items/draggable-item/draggable-item.component.js +4 -15
- package/esm2015/draggable-items/draggable-items.component.js +20 -8
- package/esm2015/draggable-items/draggable-items.model.js +1 -1
- package/esm2015/draggable-items/draggable-items.module.js +12 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js +33 -21
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js.map +1 -1
- package/package.json +1 -1
- package/src/core/style/vendors/normalize.scss +6 -0
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@pepperi-addons/ngx-lib'), require('@pepperi-addons/ngx-lib/button'), require('@pepperi-addons/ngx-lib/search'), require('@angular/cdk/drag-drop'), require('rxjs'), require('rxjs/operators')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@pepperi-addons/ngx-lib/draggable-items', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@pepperi-addons/ngx-lib', '@pepperi-addons/ngx-lib/button', '@pepperi-addons/ngx-lib/search', '@angular/cdk/drag-drop', 'rxjs', 'rxjs/operators'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['pepperi-addons'] = global['pepperi-addons'] || {}, global['pepperi-addons']['ngx-lib'] = global['pepperi-addons']['ngx-lib'] || {}, global['pepperi-addons']['ngx-lib']['draggable-items'] = {}), global.ng.core, global.ng.common, global.ng.forms, global['pepperi-addons']['ngx-lib'], global['pepperi-addons']['ngx-lib'].button, global['pepperi-addons']['ngx-lib'].search, global.ng.cdk.dragDrop, global.rxjs, global.rxjs.operators));
|
|
5
|
-
}(this, (function (exports, core, common, forms, ngxLib, button, search, dragDrop, rxjs, operators) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@pepperi-addons/ngx-lib'), require('@pepperi-addons/ngx-lib/button'), require('@pepperi-addons/ngx-lib/search'), require('@angular/cdk/drag-drop'), require('rxjs'), require('rxjs/operators'), require('@pepperi-addons/ngx-lib/icon')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@pepperi-addons/ngx-lib/draggable-items', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@pepperi-addons/ngx-lib', '@pepperi-addons/ngx-lib/button', '@pepperi-addons/ngx-lib/search', '@angular/cdk/drag-drop', 'rxjs', 'rxjs/operators', '@pepperi-addons/ngx-lib/icon'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['pepperi-addons'] = global['pepperi-addons'] || {}, global['pepperi-addons']['ngx-lib'] = global['pepperi-addons']['ngx-lib'] || {}, global['pepperi-addons']['ngx-lib']['draggable-items'] = {}), global.ng.core, global.ng.common, global.ng.forms, global['pepperi-addons']['ngx-lib'], global['pepperi-addons']['ngx-lib'].button, global['pepperi-addons']['ngx-lib'].search, global.ng.cdk.dragDrop, global.rxjs, global.rxjs.operators, global['pepperi-addons']['ngx-lib'].icon));
|
|
5
|
+
}(this, (function (exports, core, common, forms, ngxLib, button, search, dragDrop, rxjs, operators, icon) { 'use strict';
|
|
6
6
|
|
|
7
7
|
var DraggableItemComponent = /** @class */ (function () {
|
|
8
|
-
// private _isDraggable = false;
|
|
9
|
-
// @Input()
|
|
10
|
-
// set isDraggable(value: boolean) {
|
|
11
|
-
// this._isDraggable = value;
|
|
12
|
-
// this._cursor = value ? 'move' : 'inherit'
|
|
13
|
-
// }
|
|
14
|
-
// get isDraggable(): boolean {
|
|
15
|
-
// return this._isDraggable;
|
|
16
|
-
// }
|
|
17
8
|
function DraggableItemComponent() {
|
|
18
|
-
this._cursor = 'move';
|
|
19
9
|
this.title = '';
|
|
20
10
|
this.disabled = false;
|
|
21
11
|
//
|
|
@@ -28,13 +18,12 @@
|
|
|
28
18
|
DraggableItemComponent.decorators = [
|
|
29
19
|
{ type: core.Component, args: [{
|
|
30
20
|
selector: 'pep-draggable-item',
|
|
31
|
-
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ '
|
|
32
|
-
styles: [":host{display:block
|
|
21
|
+
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ 'disable': disabled }\">\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div *ngIf=\"title !== ''\" class=\"title-container\">\n <span class=\"body-sm bold ellipsis title\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <ng-content select=\"[pep-actions]\"></ng-content>\n </div>\n</div>",
|
|
22
|
+
styles: [":host{display:block}.pep-draggable-item-container{height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding-inline:.5rem;padding-inline:var(--pep-spacing-sm,.5rem);background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container .title-container{overflow-x:hidden;margin-inline:.5rem;margin-inline:var(--pep-spacing-sm,.5rem)}.pep-draggable-item-container .title-container .title{display:block}.pep-draggable-item-container .actions{display:inline-flex;grid-gap:.25rem;gap:.25rem;grid-gap:var(--pep-spacing-xs,.25rem);gap:var(--pep-spacing-xs,.25rem)}"]
|
|
33
23
|
},] }
|
|
34
24
|
];
|
|
35
25
|
DraggableItemComponent.ctorParameters = function () { return []; };
|
|
36
26
|
DraggableItemComponent.propDecorators = {
|
|
37
|
-
_cursor: [{ type: core.HostBinding, args: ['style.cursor',] }],
|
|
38
27
|
title: [{ type: core.Input }],
|
|
39
28
|
data: [{ type: core.Input }],
|
|
40
29
|
disabled: [{ type: core.Input }]
|
|
@@ -42,16 +31,17 @@
|
|
|
42
31
|
|
|
43
32
|
var DraggableItemsComponent = /** @class */ (function () {
|
|
44
33
|
function DraggableItemsComponent() {
|
|
45
|
-
this.showTitle = false;
|
|
46
34
|
this.showSearch = false;
|
|
47
35
|
this.title = '';
|
|
36
|
+
this.titleType = 'regular';
|
|
48
37
|
this.allowMultiple = '';
|
|
49
|
-
this.
|
|
38
|
+
this.itemPlaceholderType = 'none';
|
|
39
|
+
this.dropAreaIds = [];
|
|
50
40
|
this._items = [];
|
|
51
41
|
this.itemDragStarted = new core.EventEmitter();
|
|
52
42
|
this.itemDragEnded = new core.EventEmitter();
|
|
53
43
|
this.searchControl = new forms.FormControl();
|
|
54
|
-
this.numberItemsToShowSearch =
|
|
44
|
+
this.numberItemsToShowSearch = 3;
|
|
55
45
|
//
|
|
56
46
|
this._destroyed = new rxjs.Subject();
|
|
57
47
|
}
|
|
@@ -77,6 +67,14 @@
|
|
|
77
67
|
return this.items.filter(function (opt) { return opt.title &&
|
|
78
68
|
opt.title.toLowerCase().includes(filterValue.toLowerCase()); });
|
|
79
69
|
};
|
|
70
|
+
DraggableItemsComponent.prototype.changeCursorOnDragStart = function () {
|
|
71
|
+
document.body.classList.add('inheritCursors');
|
|
72
|
+
document.body.style.cursor = 'grabbing';
|
|
73
|
+
};
|
|
74
|
+
DraggableItemsComponent.prototype.changeCursorOnDragEnd = function () {
|
|
75
|
+
document.body.classList.remove('inheritCursors');
|
|
76
|
+
document.body.style.cursor = 'unset';
|
|
77
|
+
};
|
|
80
78
|
DraggableItemsComponent.prototype.getDestroyer = function () {
|
|
81
79
|
return operators.takeUntil(this._destroyed);
|
|
82
80
|
};
|
|
@@ -94,9 +92,11 @@
|
|
|
94
92
|
this._destroyed.complete();
|
|
95
93
|
};
|
|
96
94
|
DraggableItemsComponent.prototype.onDragStart = function (event) {
|
|
95
|
+
this.changeCursorOnDragStart();
|
|
97
96
|
this.itemDragStarted.emit(event);
|
|
98
97
|
};
|
|
99
98
|
DraggableItemsComponent.prototype.onDragEnd = function (event) {
|
|
99
|
+
this.changeCursorOnDragEnd();
|
|
100
100
|
this.itemDragEnded.emit(event);
|
|
101
101
|
};
|
|
102
102
|
return DraggableItemsComponent;
|
|
@@ -104,24 +104,29 @@
|
|
|
104
104
|
DraggableItemsComponent.decorators = [
|
|
105
105
|
{ type: core.Component, args: [{
|
|
106
106
|
selector: 'pep-draggable-items',
|
|
107
|
-
template: "<div class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"
|
|
108
|
-
styles: [""]
|
|
107
|
+
template: "<div id=\"test\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"body-xl bold ellipsis\">{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" sizeType=\"sm\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\" [shrinkInSmallScreen]=\"true\"></pep-search>\r\n </div>\r\n\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n\r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n</div>",
|
|
108
|
+
styles: [".draggble-item{margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem);cursor:-webkit-grab;cursor:grab}.draggble-item.cdk-drag-disabled{cursor:not-allowed}.title-container{height:2.5rem;display:flex;flex-flow:row;justify-content:space-between}.title-container.pep-border-bottom{margin-bottom:1rem;margin-bottom:var(--pep-spacing-lg,1rem)}.placeholder-item{height:2.5rem;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:100%;margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem)}.placeholder-item.none{opacity:0}.placeholder-item.weak{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]
|
|
109
109
|
},] }
|
|
110
110
|
];
|
|
111
111
|
DraggableItemsComponent.ctorParameters = function () { return []; };
|
|
112
112
|
DraggableItemsComponent.propDecorators = {
|
|
113
|
-
showTitle: [{ type: core.Input }],
|
|
114
113
|
showSearch: [{ type: core.Input }],
|
|
115
114
|
title: [{ type: core.Input }],
|
|
115
|
+
titleType: [{ type: core.Input }],
|
|
116
116
|
allowMultiple: [{ type: core.Input }],
|
|
117
|
-
|
|
117
|
+
itemPlaceholderType: [{ type: core.Input }],
|
|
118
|
+
dropAreaIds: [{ type: core.Input }],
|
|
118
119
|
items: [{ type: core.Input }],
|
|
119
120
|
itemDragStarted: [{ type: core.Output }],
|
|
120
121
|
itemDragEnded: [{ type: core.Output }]
|
|
121
122
|
};
|
|
122
123
|
|
|
123
124
|
var PepDraggableItemsModule = /** @class */ (function () {
|
|
124
|
-
function PepDraggableItemsModule() {
|
|
125
|
+
function PepDraggableItemsModule(pepIconRegistry) {
|
|
126
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
127
|
+
this.pepIconRegistry.registerIcons([
|
|
128
|
+
icon.pepIconSystemMove,
|
|
129
|
+
]);
|
|
125
130
|
}
|
|
126
131
|
return PepDraggableItemsModule;
|
|
127
132
|
}());
|
|
@@ -136,6 +141,7 @@
|
|
|
136
141
|
forms.ReactiveFormsModule,
|
|
137
142
|
ngxLib.PepNgxLibModule,
|
|
138
143
|
button.PepButtonModule,
|
|
144
|
+
icon.PepIconModule,
|
|
139
145
|
search.PepSearchModule,
|
|
140
146
|
dragDrop.DragDropModule
|
|
141
147
|
],
|
|
@@ -144,7 +150,10 @@
|
|
|
144
150
|
DraggableItemComponent
|
|
145
151
|
],
|
|
146
152
|
},] }
|
|
147
|
-
];
|
|
153
|
+
];
|
|
154
|
+
PepDraggableItemsModule.ctorParameters = function () { return [
|
|
155
|
+
{ type: icon.PepIconRegistry }
|
|
156
|
+
]; };
|
|
148
157
|
|
|
149
158
|
/*
|
|
150
159
|
* Public API Surface of ngx-lib/draggable-items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-draggable-items.umd.js","sources":["../../../projects/ngx-lib/draggable-items/draggable-item/draggable-item.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.module.ts","../../../projects/ngx-lib/draggable-items/public-api.ts","../../../projects/ngx-lib/draggable-items/pepperi-addons-ngx-lib-draggable-items.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'pep-draggable-item',\n templateUrl: './draggable-item.component.html',\n styleUrls: ['./draggable-item.component.scss']\n})\nexport class DraggableItemComponent implements OnInit {\n
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-draggable-items.umd.js","sources":["../../../projects/ngx-lib/draggable-items/draggable-item/draggable-item.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.module.ts","../../../projects/ngx-lib/draggable-items/public-api.ts","../../../projects/ngx-lib/draggable-items/pepperi-addons-ngx-lib-draggable-items.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'pep-draggable-item',\n templateUrl: './draggable-item.component.html',\n styleUrls: ['./draggable-item.component.scss']\n})\nexport class DraggableItemComponent implements OnInit {\n @Input() title = '';\n @Input() data: any;\n @Input() disabled = false;\n\n constructor() {\n //\n }\n\n ngOnInit(): void {\n //\n }\n}\n","import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { IPepDraggableItem, PepDraggableItemPlaceholderType, PepDraggableItemsTitleType } from './draggable-items.model';\n\n@Component({\n selector: 'pep-draggable-items',\n templateUrl: './draggable-items.component.html',\n styleUrls: ['./draggable-items.component.scss']\n})\nexport class DraggableItemsComponent implements OnInit, OnDestroy {\n\n @Input() showSearch = false;\n @Input() title = '';\n @Input() titleType: PepDraggableItemsTitleType = 'regular';\n @Input() allowMultiple = '';\n\n @Input() itemPlaceholderType: PepDraggableItemPlaceholderType = 'none';\n\n @Input() dropAreaIds = [];\n\n private _items: Array<IPepDraggableItem> = [];\n @Input()\n set items(value: Array<IPepDraggableItem>) {\n this._items = value;\n\n if (this.items?.length > 0) {\n this.searchControl.enable();\n } else {\n this.searchControl.disable();\n }\n }\n get items(): Array<IPepDraggableItem> {\n return this._items;\n }\n\n @Output() itemDragStarted: EventEmitter<CdkDragStart<IPepDraggableItem>> = new EventEmitter<CdkDragStart<IPepDraggableItem>>();\n @Output() itemDragEnded: EventEmitter<CdkDragEnd<IPepDraggableItem>> = new EventEmitter<CdkDragEnd<IPepDraggableItem>>();\n\n filteredItems$: Observable<any>;\n searchControl = new FormControl();\n numberItemsToShowSearch = 3;\n private readonly _destroyed: Subject<void>;\n\n constructor() {\n //\n this._destroyed = new Subject();\n }\n\n private filterItems(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.items.filter(\n (opt) =>\n opt.title &&\n opt.title.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n private changeCursorOnDragStart() {\n document.body.classList.add('inheritCursors');\n document.body.style.cursor = 'grabbing';\n }\n\n private changeCursorOnDragEnd() {\n document.body.classList.remove('inheritCursors');\n document.body.style.cursor = 'unset';\n }\n\n protected getDestroyer() {\n return takeUntil(this._destroyed);\n }\n\n ngOnInit(): void {\n // If there is no item disable the search.\n if (this.items.length === 0) {\n this.searchControl.disable();\n }\n\n // Filter the draggableItems by the search control.\n this.filteredItems$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterItems(value) : this.items))\n );\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n onDragStart(event: CdkDragStart) {\n this.changeCursorOnDragStart();\n this.itemDragStarted.emit(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.changeCursorOnDragEnd();\n this.itemDragEnded.emit(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { DraggableItemsComponent } from './draggable-items.component';\nimport { DraggableItemComponent } from './draggable-item/draggable-item.component';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemMove,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n declarations: [\n DraggableItemsComponent,\n DraggableItemComponent\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n PepNgxLibModule,\n PepButtonModule,\n PepIconModule,\n PepSearchModule,\n DragDropModule\n ],\n exports: [\n DraggableItemsComponent,\n DraggableItemComponent\n ],\n})\nexport class PepDraggableItemsModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemMove,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/draggable-items\n */\nexport * from './draggable-item/draggable-item.component';\n\nexport * from './draggable-items.module';\nexport * from './draggable-items.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Component","Input","EventEmitter","FormControl","Subject","takeUntil","startWith","map","Output","pepIconSystemMove","NgModule","CommonModule","ReactiveFormsModule","PepNgxLibModule","PepButtonModule","PepIconModule","PepSearchModule","DragDropModule","PepIconRegistry"],"mappings":"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"}
|
|
@@ -2,24 +2,27 @@ import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';
|
|
|
2
2
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
3
3
|
import { FormControl } from '@angular/forms';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
|
-
import { IPepDraggableItem } from './draggable-items.model';
|
|
5
|
+
import { IPepDraggableItem, PepDraggableItemPlaceholderType, PepDraggableItemsTitleType } from './draggable-items.model';
|
|
6
6
|
export declare class DraggableItemsComponent implements OnInit, OnDestroy {
|
|
7
|
-
showTitle: boolean;
|
|
8
7
|
showSearch: boolean;
|
|
9
8
|
title: string;
|
|
9
|
+
titleType: PepDraggableItemsTitleType;
|
|
10
10
|
allowMultiple: string;
|
|
11
|
-
|
|
11
|
+
itemPlaceholderType: PepDraggableItemPlaceholderType;
|
|
12
|
+
dropAreaIds: any[];
|
|
12
13
|
private _items;
|
|
13
14
|
set items(value: Array<IPepDraggableItem>);
|
|
14
15
|
get items(): Array<IPepDraggableItem>;
|
|
15
|
-
itemDragStarted: EventEmitter<CdkDragStart
|
|
16
|
-
itemDragEnded: EventEmitter<
|
|
16
|
+
itemDragStarted: EventEmitter<CdkDragStart<IPepDraggableItem>>;
|
|
17
|
+
itemDragEnded: EventEmitter<CdkDragEnd<IPepDraggableItem>>;
|
|
17
18
|
filteredItems$: Observable<any>;
|
|
18
19
|
searchControl: FormControl;
|
|
19
20
|
numberItemsToShowSearch: number;
|
|
20
21
|
private readonly _destroyed;
|
|
21
22
|
constructor();
|
|
22
23
|
private filterItems;
|
|
24
|
+
private changeCursorOnDragStart;
|
|
25
|
+
private changeCursorOnDragEnd;
|
|
23
26
|
protected getDestroyer(): import("rxjs").MonoTypeOperatorFunction<unknown>;
|
|
24
27
|
ngOnInit(): void;
|
|
25
28
|
ngOnDestroy(): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export declare type PepDraggableItemsTitleType = 'none' | 'regular' | 'with-bottom-border';
|
|
2
|
+
export declare type PepDraggableItemPlaceholderType = 'none' | 'regular' | 'weak';
|
|
1
3
|
export interface IPepDraggableItem {
|
|
2
4
|
title: string;
|
|
3
|
-
disabled: boolean;
|
|
4
5
|
data: any;
|
|
6
|
+
disabled?: boolean;
|
|
5
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"DraggableItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"pep-draggable-item","template":"<div class=\"pep-draggable-item-container\" [ngClass]=\"{ '
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"DraggableItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"pep-draggable-item","template":"<div class=\"pep-draggable-item-container\" [ngClass]=\"{ 'disable': disabled }\">\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div *ngIf=\"title !== ''\" class=\"title-container\">\n <span class=\"body-sm bold ellipsis title\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <ng-content select=\"[pep-actions]\"></ng-content>\n </div>\n</div>","styles":[":host{display:block}.pep-draggable-item-container{height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding-inline:.5rem;padding-inline:var(--pep-spacing-sm,.5rem);background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container .title-container{overflow-x:hidden;margin-inline:.5rem;margin-inline:var(--pep-spacing-sm,.5rem)}.pep-draggable-item-container .title-container .title{display:block}.pep-draggable-item-container .actions{display:inline-flex;grid-gap:.25rem;gap:.25rem;grid-gap:var(--pep-spacing-xs,.25rem);gap:var(--pep-spacing-xs,.25rem)}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":5}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"PepDraggableItemsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DraggableItemsComponent"},{"__symbolic":"reference","name":"DraggableItemComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":25,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib","name":"PepNgxLibModule","line":26,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/button","name":"PepButtonModule","line":27,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconModule","line":28,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/search","name":"PepSearchModule","line":29,"character":8},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":30,"character":8}],"exports":[{"__symbolic":"reference","name":"DraggableItemsComponent"},{"__symbolic":"reference","name":"DraggableItemComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconRegistry","line":38,"character":41}]}]}},"DraggableItemsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"pep-draggable-items","template":"<div id=\"test\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"body-xl bold ellipsis\">{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" sizeType=\"sm\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\" [shrinkInSmallScreen]=\"true\"></pep-search>\r\n </div>\r\n\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n\r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n</div>","styles":[".draggble-item{margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem);cursor:-webkit-grab;cursor:grab}.draggble-item.cdk-drag-disabled{cursor:not-allowed}.title-container{height:2.5rem;display:flex;flex-flow:row;justify-content:space-between}.title-container.pep-border-bottom{margin-bottom:1rem;margin-bottom:var(--pep-spacing-lg,1rem)}.placeholder-item{height:2.5rem;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:100%;margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem)}.placeholder-item.none{opacity:0}.placeholder-item.weak{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]}]}],"members":{"showSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":5}}]}],"titleType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"allowMultiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"itemPlaceholderType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5}}]}],"dropAreaIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":5}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5}}]}],"itemDragStarted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":5}}]}],"itemDragEnded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":39,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor"}],"filterItems":[{"__symbolic":"method"}],"changeCursorOnDragStart":[{"__symbolic":"method"}],"changeCursorOnDragEnd":[{"__symbolic":"method"}],"getDestroyer":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDragStart":[{"__symbolic":"method"}],"onDragEnd":[{"__symbolic":"method"}]}}},"origins":{"DraggableItemComponent":"./draggable-item/draggable-item.component","PepDraggableItemsModule":"./draggable-items.module","DraggableItemsComponent":"./draggable-items.component"},"importAs":"@pepperi-addons/ngx-lib/draggable-items"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
2
|
export class DraggableItemComponent {
|
|
3
|
-
// private _isDraggable = false;
|
|
4
|
-
// @Input()
|
|
5
|
-
// set isDraggable(value: boolean) {
|
|
6
|
-
// this._isDraggable = value;
|
|
7
|
-
// this._cursor = value ? 'move' : 'inherit'
|
|
8
|
-
// }
|
|
9
|
-
// get isDraggable(): boolean {
|
|
10
|
-
// return this._isDraggable;
|
|
11
|
-
// }
|
|
12
3
|
constructor() {
|
|
13
|
-
this._cursor = 'move';
|
|
14
4
|
this.title = '';
|
|
15
5
|
this.disabled = false;
|
|
16
6
|
//
|
|
@@ -22,15 +12,14 @@ export class DraggableItemComponent {
|
|
|
22
12
|
DraggableItemComponent.decorators = [
|
|
23
13
|
{ type: Component, args: [{
|
|
24
14
|
selector: 'pep-draggable-item',
|
|
25
|
-
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ '
|
|
26
|
-
styles: [":host{display:block
|
|
15
|
+
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ 'disable': disabled }\">\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div *ngIf=\"title !== ''\" class=\"title-container\">\n <span class=\"body-sm bold ellipsis title\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <ng-content select=\"[pep-actions]\"></ng-content>\n </div>\n</div>",
|
|
16
|
+
styles: [":host{display:block}.pep-draggable-item-container{height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding-inline:.5rem;padding-inline:var(--pep-spacing-sm,.5rem);background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container .title-container{overflow-x:hidden;margin-inline:.5rem;margin-inline:var(--pep-spacing-sm,.5rem)}.pep-draggable-item-container .title-container .title{display:block}.pep-draggable-item-container .actions{display:inline-flex;grid-gap:.25rem;gap:.25rem;grid-gap:var(--pep-spacing-xs,.25rem);gap:var(--pep-spacing-xs,.25rem)}"]
|
|
27
17
|
},] }
|
|
28
18
|
];
|
|
29
19
|
DraggableItemComponent.ctorParameters = () => [];
|
|
30
20
|
DraggableItemComponent.propDecorators = {
|
|
31
|
-
_cursor: [{ type: HostBinding, args: ['style.cursor',] }],
|
|
32
21
|
title: [{ type: Input }],
|
|
33
22
|
data: [{ type: Input }],
|
|
34
23
|
disabled: [{ type: Input }]
|
|
35
24
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMvZHJhZ2dhYmxlLWl0ZW0vZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZCLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFPNUYsTUFBTSxPQUFPLHNCQUFzQjtJQUsvQjtRQUpTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3RCLEVBQUU7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLEVBQUU7SUFDTixDQUFDOzs7WUFoQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHNmQUE4Qzs7YUFFakQ7Ozs7b0JBRUksS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1kcmFnZ2FibGUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWdnYWJsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcmFnZ2FibGUtaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gICAgQElucHV0KCkgZGF0YTogYW55O1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy9cbiAgICB9XG59XG4iXX0=
|
|
@@ -4,16 +4,17 @@ import { Subject } from 'rxjs';
|
|
|
4
4
|
import { map, startWith, takeUntil } from 'rxjs/operators';
|
|
5
5
|
export class DraggableItemsComponent {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.showTitle = false;
|
|
8
7
|
this.showSearch = false;
|
|
9
8
|
this.title = '';
|
|
9
|
+
this.titleType = 'regular';
|
|
10
10
|
this.allowMultiple = '';
|
|
11
|
-
this.
|
|
11
|
+
this.itemPlaceholderType = 'none';
|
|
12
|
+
this.dropAreaIds = [];
|
|
12
13
|
this._items = [];
|
|
13
14
|
this.itemDragStarted = new EventEmitter();
|
|
14
15
|
this.itemDragEnded = new EventEmitter();
|
|
15
16
|
this.searchControl = new FormControl();
|
|
16
|
-
this.numberItemsToShowSearch =
|
|
17
|
+
this.numberItemsToShowSearch = 3;
|
|
17
18
|
//
|
|
18
19
|
this._destroyed = new Subject();
|
|
19
20
|
}
|
|
@@ -35,6 +36,14 @@ export class DraggableItemsComponent {
|
|
|
35
36
|
return this.items.filter((opt) => opt.title &&
|
|
36
37
|
opt.title.toLowerCase().includes(filterValue.toLowerCase()));
|
|
37
38
|
}
|
|
39
|
+
changeCursorOnDragStart() {
|
|
40
|
+
document.body.classList.add('inheritCursors');
|
|
41
|
+
document.body.style.cursor = 'grabbing';
|
|
42
|
+
}
|
|
43
|
+
changeCursorOnDragEnd() {
|
|
44
|
+
document.body.classList.remove('inheritCursors');
|
|
45
|
+
document.body.style.cursor = 'unset';
|
|
46
|
+
}
|
|
38
47
|
getDestroyer() {
|
|
39
48
|
return takeUntil(this._destroyed);
|
|
40
49
|
}
|
|
@@ -51,28 +60,31 @@ export class DraggableItemsComponent {
|
|
|
51
60
|
this._destroyed.complete();
|
|
52
61
|
}
|
|
53
62
|
onDragStart(event) {
|
|
63
|
+
this.changeCursorOnDragStart();
|
|
54
64
|
this.itemDragStarted.emit(event);
|
|
55
65
|
}
|
|
56
66
|
onDragEnd(event) {
|
|
67
|
+
this.changeCursorOnDragEnd();
|
|
57
68
|
this.itemDragEnded.emit(event);
|
|
58
69
|
}
|
|
59
70
|
}
|
|
60
71
|
DraggableItemsComponent.decorators = [
|
|
61
72
|
{ type: Component, args: [{
|
|
62
73
|
selector: 'pep-draggable-items',
|
|
63
|
-
template: "<div class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"
|
|
64
|
-
styles: [""]
|
|
74
|
+
template: "<div id=\"test\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"body-xl bold ellipsis\">{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" sizeType=\"sm\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\" [shrinkInSmallScreen]=\"true\"></pep-search>\r\n </div>\r\n\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n\r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n</div>",
|
|
75
|
+
styles: [".draggble-item{margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem);cursor:-webkit-grab;cursor:grab}.draggble-item.cdk-drag-disabled{cursor:not-allowed}.title-container{height:2.5rem;display:flex;flex-flow:row;justify-content:space-between}.title-container.pep-border-bottom{margin-bottom:1rem;margin-bottom:var(--pep-spacing-lg,1rem)}.placeholder-item{height:2.5rem;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:100%;margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem)}.placeholder-item.none{opacity:0}.placeholder-item.weak{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]
|
|
65
76
|
},] }
|
|
66
77
|
];
|
|
67
78
|
DraggableItemsComponent.ctorParameters = () => [];
|
|
68
79
|
DraggableItemsComponent.propDecorators = {
|
|
69
|
-
showTitle: [{ type: Input }],
|
|
70
80
|
showSearch: [{ type: Input }],
|
|
71
81
|
title: [{ type: Input }],
|
|
82
|
+
titleType: [{ type: Input }],
|
|
72
83
|
allowMultiple: [{ type: Input }],
|
|
73
|
-
|
|
84
|
+
itemPlaceholderType: [{ type: Input }],
|
|
85
|
+
dropAreaIds: [{ type: Input }],
|
|
74
86
|
items: [{ type: Input }],
|
|
75
87
|
itemDragStarted: [{ type: Output }],
|
|
76
88
|
itemDragEnded: [{ type: Output }]
|
|
77
89
|
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zL2RyYWdnYWJsZS1pdGVtcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRM0QsTUFBTSxPQUFPLHVCQUF1QjtJQWtDaEM7UUFoQ1MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUErQixTQUFTLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFbkIsd0JBQW1CLEdBQW9DLE1BQU0sQ0FBQztRQUU5RCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVsQixXQUFNLEdBQTZCLEVBQUUsQ0FBQztRQWVwQyxvQkFBZSxHQUFrRCxJQUFJLFlBQVksRUFBbUMsQ0FBQztRQUNySCxrQkFBYSxHQUFnRCxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUd6SCxrQkFBYSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsNEJBQXVCLEdBQUcsQ0FBQyxDQUFDO1FBSXhCLEVBQUU7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQXpCRCxJQUNJLEtBQUssQ0FBQyxLQUErQjs7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxD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QUs7b0JBR0wsS0FBSzs4QkFjTCxNQUFNOzRCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElQZXBEcmFnZ2FibGVJdGVtLCBQZXBEcmFnZ2FibGVJdGVtUGxhY2Vob2xkZXJUeXBlLCBQZXBEcmFnZ2FibGVJdGVtc1RpdGxlVHlwZSB9IGZyb20gJy4vZHJhZ2dhYmxlLWl0ZW1zLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZHJhZ2dhYmxlLWl0ZW1zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJhZ2dhYmxlLWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcmFnZ2FibGUtaXRlbXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGVJdGVtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIHNob3dTZWFyY2ggPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICAgIEBJbnB1dCgpIHRpdGxlVHlwZTogUGVwRHJhZ2dhYmxlSXRlbXNUaXRsZVR5cGUgPSAncmVndWxhcic7XG4gICAgQElucHV0KCkgYWxsb3dNdWx0aXBsZSA9ICcnO1xuXG4gICAgQElucHV0KCkgaXRlbVBsYWNlaG9sZGVyVHlwZTogUGVwRHJhZ2dhYmxlSXRlbVBsYWNlaG9sZGVyVHlwZSA9ICdub25lJztcblxuICAgIEBJbnB1dCgpIGRyb3BBcmVhSWRzID0gW107XG5cbiAgICBwcml2YXRlIF9pdGVtczogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgaXRlbXModmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLml0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBpdGVtcygpOiBBcnJheTxJUGVwRHJhZ2dhYmxlSXRlbT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGl0ZW1EcmFnU3RhcnRlZDogRXZlbnRFbWl0dGVyPENka0RyYWdTdGFydDxJUGVwRHJhZ2dhYmxlSXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDZGtEcmFnU3RhcnQ8SVBlcERyYWdnYWJsZUl0ZW0+PigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRHJhZ0VuZGVkOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0VuZDxJUGVwRHJhZ2dhYmxlSXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDZGtEcmFnRW5kPElQZXBEcmFnZ2FibGVJdGVtPj4oKTtcblxuICAgIGZpbHRlcmVkSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIG51bWJlckl0ZW1zVG9TaG93U2VhcmNoID0gMztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckl0ZW1zKHZhbHVlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgKG9wdCkgPT5cbiAgICAgICAgICAgICAgICBvcHQudGl0bGUgJiZcbiAgICAgICAgICAgICAgICBvcHQudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlQ3Vyc29yT25EcmFnU3RhcnQoKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnaW5oZXJpdEN1cnNvcnMnKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlQ3Vyc29yT25EcmFnRW5kKCkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2luaGVyaXRDdXJzb3JzJyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJ3Vuc2V0JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVzdHJveWVyKCkge1xuICAgICAgICByZXR1cm4gdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGl0ZW0gZGlzYWJsZSB0aGUgc2VhcmNoLlxuICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgdGhlIGRyYWdnYWJsZUl0ZW1zIGJ5IHRoZSBzZWFyY2ggY29udHJvbC5cbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJCA9IHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHRoaXMuZ2V0RGVzdHJveWVyKCksXG4gICAgICAgICAgICBzdGFydFdpdGg8YW55PignJyksXG4gICAgICAgICAgICBtYXAoKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IG9wdGlvbiA6IG9wdGlvbiAmJiBvcHRpb24udmFsdWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAodmFsdWUgPyB0aGlzLmZpbHRlckl0ZW1zKHZhbHVlKSA6IHRoaXMuaXRlbXMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQ3Vyc29yT25EcmFnU3RhcnQoKTtcbiAgICAgICAgdGhpcy5pdGVtRHJhZ1N0YXJ0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQ3Vyc29yT25EcmFnRW5kKCk7XG4gICAgICAgIHRoaXMuaXRlbURyYWdFbmRlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW1zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMvZHJhZ2dhYmxlLWl0ZW1zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQZXBEcmFnZ2FibGVJdGVtc1RpdGxlVHlwZSA9ICdub25lJyB8ICdyZWd1bGFyJyB8ICd3aXRoLWJvdHRvbS1ib3JkZXInO1xyXG5cclxuZXhwb3J0IHR5cGUgUGVwRHJhZ2dhYmxlSXRlbVBsYWNlaG9sZGVyVHlwZSA9ICdub25lJyB8ICdyZWd1bGFyJyB8ICd3ZWFrJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBlcERyYWdnYWJsZUl0ZW0ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGRhdGE6IGFueVxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59Il19
|
|
@@ -7,7 +7,14 @@ import { PepSearchModule } from '@pepperi-addons/ngx-lib/search';
|
|
|
7
7
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
8
8
|
import { DraggableItemsComponent } from './draggable-items.component';
|
|
9
9
|
import { DraggableItemComponent } from './draggable-item/draggable-item.component';
|
|
10
|
+
import { PepIconModule, PepIconRegistry, pepIconSystemMove, } from '@pepperi-addons/ngx-lib/icon';
|
|
10
11
|
export class PepDraggableItemsModule {
|
|
12
|
+
constructor(pepIconRegistry) {
|
|
13
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
14
|
+
this.pepIconRegistry.registerIcons([
|
|
15
|
+
pepIconSystemMove,
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
11
18
|
}
|
|
12
19
|
PepDraggableItemsModule.decorators = [
|
|
13
20
|
{ type: NgModule, args: [{
|
|
@@ -20,6 +27,7 @@ PepDraggableItemsModule.decorators = [
|
|
|
20
27
|
ReactiveFormsModule,
|
|
21
28
|
PepNgxLibModule,
|
|
22
29
|
PepButtonModule,
|
|
30
|
+
PepIconModule,
|
|
23
31
|
PepSearchModule,
|
|
24
32
|
DragDropModule
|
|
25
33
|
],
|
|
@@ -29,4 +37,7 @@ PepDraggableItemsModule.decorators = [
|
|
|
29
37
|
],
|
|
30
38
|
},] }
|
|
31
39
|
];
|
|
32
|
-
|
|
40
|
+
PepDraggableItemsModule.ctorParameters = () => [
|
|
41
|
+
{ type: PepIconRegistry }
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zL2RyYWdnYWJsZS1pdGVtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFDSCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixHQUNwQixNQUFNLDhCQUE4QixDQUFDO0FBcUJ0QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztZQUMvQixpQkFBaUI7U0FDcEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBeEJKLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsdUJBQXVCO29CQUN2QixzQkFBc0I7aUJBQ3pCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixjQUFjO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsdUJBQXVCO29CQUN2QixzQkFBc0I7aUJBQ3pCO2FBQ0o7OztZQXRCRyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQZXBOZ3hMaWJNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwU2VhcmNoTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VhcmNoJztcblxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgRHJhZ2dhYmxlSXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2RyYWdnYWJsZS1pdGVtcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJhZ2dhYmxlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHJhZ2dhYmxlLWl0ZW0vZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgUGVwSWNvbk1vZHVsZSxcbiAgICBQZXBJY29uUmVnaXN0cnksXG4gICAgcGVwSWNvblN5c3RlbU1vdmUsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBEcmFnZ2FibGVJdGVtc0NvbXBvbmVudCxcbiAgICAgICAgRHJhZ2dhYmxlSXRlbUNvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBJY29uTW9kdWxlLFxuICAgICAgICBQZXBTZWFyY2hNb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIERyYWdnYWJsZUl0ZW1zQ29tcG9uZW50LFxuICAgICAgICBEcmFnZ2FibGVJdGVtQ29tcG9uZW50XG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwRHJhZ2dhYmxlSXRlbXNNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbXG4gICAgICAgICAgICBwZXBJY29uU3lzdGVtTW92ZSxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, Input, EventEmitter, Output, NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
@@ -7,19 +7,10 @@ import { PepSearchModule } from '@pepperi-addons/ngx-lib/search';
|
|
|
7
7
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
8
8
|
import { Subject } from 'rxjs';
|
|
9
9
|
import { takeUntil, startWith, map } from 'rxjs/operators';
|
|
10
|
+
import { pepIconSystemMove, PepIconModule, PepIconRegistry } from '@pepperi-addons/ngx-lib/icon';
|
|
10
11
|
|
|
11
12
|
class DraggableItemComponent {
|
|
12
|
-
// private _isDraggable = false;
|
|
13
|
-
// @Input()
|
|
14
|
-
// set isDraggable(value: boolean) {
|
|
15
|
-
// this._isDraggable = value;
|
|
16
|
-
// this._cursor = value ? 'move' : 'inherit'
|
|
17
|
-
// }
|
|
18
|
-
// get isDraggable(): boolean {
|
|
19
|
-
// return this._isDraggable;
|
|
20
|
-
// }
|
|
21
13
|
constructor() {
|
|
22
|
-
this._cursor = 'move';
|
|
23
14
|
this.title = '';
|
|
24
15
|
this.disabled = false;
|
|
25
16
|
//
|
|
@@ -31,13 +22,12 @@ class DraggableItemComponent {
|
|
|
31
22
|
DraggableItemComponent.decorators = [
|
|
32
23
|
{ type: Component, args: [{
|
|
33
24
|
selector: 'pep-draggable-item',
|
|
34
|
-
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ '
|
|
35
|
-
styles: [":host{display:block
|
|
25
|
+
template: "<div class=\"pep-draggable-item-container\" [ngClass]=\"{ 'disable': disabled }\">\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div *ngIf=\"title !== ''\" class=\"title-container\">\n <span class=\"body-sm bold ellipsis title\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <ng-content select=\"[pep-actions]\"></ng-content>\n </div>\n</div>",
|
|
26
|
+
styles: [":host{display:block}.pep-draggable-item-container{height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding-inline:.5rem;padding-inline:var(--pep-spacing-sm,.5rem);background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container .title-container{overflow-x:hidden;margin-inline:.5rem;margin-inline:var(--pep-spacing-sm,.5rem)}.pep-draggable-item-container .title-container .title{display:block}.pep-draggable-item-container .actions{display:inline-flex;grid-gap:.25rem;gap:.25rem;grid-gap:var(--pep-spacing-xs,.25rem);gap:var(--pep-spacing-xs,.25rem)}"]
|
|
36
27
|
},] }
|
|
37
28
|
];
|
|
38
29
|
DraggableItemComponent.ctorParameters = () => [];
|
|
39
30
|
DraggableItemComponent.propDecorators = {
|
|
40
|
-
_cursor: [{ type: HostBinding, args: ['style.cursor',] }],
|
|
41
31
|
title: [{ type: Input }],
|
|
42
32
|
data: [{ type: Input }],
|
|
43
33
|
disabled: [{ type: Input }]
|
|
@@ -45,16 +35,17 @@ DraggableItemComponent.propDecorators = {
|
|
|
45
35
|
|
|
46
36
|
class DraggableItemsComponent {
|
|
47
37
|
constructor() {
|
|
48
|
-
this.showTitle = false;
|
|
49
38
|
this.showSearch = false;
|
|
50
39
|
this.title = '';
|
|
40
|
+
this.titleType = 'regular';
|
|
51
41
|
this.allowMultiple = '';
|
|
52
|
-
this.
|
|
42
|
+
this.itemPlaceholderType = 'none';
|
|
43
|
+
this.dropAreaIds = [];
|
|
53
44
|
this._items = [];
|
|
54
45
|
this.itemDragStarted = new EventEmitter();
|
|
55
46
|
this.itemDragEnded = new EventEmitter();
|
|
56
47
|
this.searchControl = new FormControl();
|
|
57
|
-
this.numberItemsToShowSearch =
|
|
48
|
+
this.numberItemsToShowSearch = 3;
|
|
58
49
|
//
|
|
59
50
|
this._destroyed = new Subject();
|
|
60
51
|
}
|
|
@@ -76,6 +67,14 @@ class DraggableItemsComponent {
|
|
|
76
67
|
return this.items.filter((opt) => opt.title &&
|
|
77
68
|
opt.title.toLowerCase().includes(filterValue.toLowerCase()));
|
|
78
69
|
}
|
|
70
|
+
changeCursorOnDragStart() {
|
|
71
|
+
document.body.classList.add('inheritCursors');
|
|
72
|
+
document.body.style.cursor = 'grabbing';
|
|
73
|
+
}
|
|
74
|
+
changeCursorOnDragEnd() {
|
|
75
|
+
document.body.classList.remove('inheritCursors');
|
|
76
|
+
document.body.style.cursor = 'unset';
|
|
77
|
+
}
|
|
79
78
|
getDestroyer() {
|
|
80
79
|
return takeUntil(this._destroyed);
|
|
81
80
|
}
|
|
@@ -92,32 +91,41 @@ class DraggableItemsComponent {
|
|
|
92
91
|
this._destroyed.complete();
|
|
93
92
|
}
|
|
94
93
|
onDragStart(event) {
|
|
94
|
+
this.changeCursorOnDragStart();
|
|
95
95
|
this.itemDragStarted.emit(event);
|
|
96
96
|
}
|
|
97
97
|
onDragEnd(event) {
|
|
98
|
+
this.changeCursorOnDragEnd();
|
|
98
99
|
this.itemDragEnded.emit(event);
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
DraggableItemsComponent.decorators = [
|
|
102
103
|
{ type: Component, args: [{
|
|
103
104
|
selector: 'pep-draggable-items',
|
|
104
|
-
template: "<div class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"
|
|
105
|
-
styles: [""]
|
|
105
|
+
template: "<div id=\"test\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"body-xl bold ellipsis\">{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" sizeType=\"sm\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\" [shrinkInSmallScreen]=\"true\"></pep-search>\r\n </div>\r\n\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n\r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n</div>",
|
|
106
|
+
styles: [".draggble-item{margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem);cursor:-webkit-grab;cursor:grab}.draggble-item.cdk-drag-disabled{cursor:not-allowed}.title-container{height:2.5rem;display:flex;flex-flow:row;justify-content:space-between}.title-container.pep-border-bottom{margin-bottom:1rem;margin-bottom:var(--pep-spacing-lg,1rem)}.placeholder-item{height:2.5rem;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:100%;margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem)}.placeholder-item.none{opacity:0}.placeholder-item.weak{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]
|
|
106
107
|
},] }
|
|
107
108
|
];
|
|
108
109
|
DraggableItemsComponent.ctorParameters = () => [];
|
|
109
110
|
DraggableItemsComponent.propDecorators = {
|
|
110
|
-
showTitle: [{ type: Input }],
|
|
111
111
|
showSearch: [{ type: Input }],
|
|
112
112
|
title: [{ type: Input }],
|
|
113
|
+
titleType: [{ type: Input }],
|
|
113
114
|
allowMultiple: [{ type: Input }],
|
|
114
|
-
|
|
115
|
+
itemPlaceholderType: [{ type: Input }],
|
|
116
|
+
dropAreaIds: [{ type: Input }],
|
|
115
117
|
items: [{ type: Input }],
|
|
116
118
|
itemDragStarted: [{ type: Output }],
|
|
117
119
|
itemDragEnded: [{ type: Output }]
|
|
118
120
|
};
|
|
119
121
|
|
|
120
122
|
class PepDraggableItemsModule {
|
|
123
|
+
constructor(pepIconRegistry) {
|
|
124
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
125
|
+
this.pepIconRegistry.registerIcons([
|
|
126
|
+
pepIconSystemMove,
|
|
127
|
+
]);
|
|
128
|
+
}
|
|
121
129
|
}
|
|
122
130
|
PepDraggableItemsModule.decorators = [
|
|
123
131
|
{ type: NgModule, args: [{
|
|
@@ -130,6 +138,7 @@ PepDraggableItemsModule.decorators = [
|
|
|
130
138
|
ReactiveFormsModule,
|
|
131
139
|
PepNgxLibModule,
|
|
132
140
|
PepButtonModule,
|
|
141
|
+
PepIconModule,
|
|
133
142
|
PepSearchModule,
|
|
134
143
|
DragDropModule
|
|
135
144
|
],
|
|
@@ -138,6 +147,9 @@ PepDraggableItemsModule.decorators = [
|
|
|
138
147
|
DraggableItemComponent
|
|
139
148
|
],
|
|
140
149
|
},] }
|
|
150
|
+
];
|
|
151
|
+
PepDraggableItemsModule.ctorParameters = () => [
|
|
152
|
+
{ type: PepIconRegistry }
|
|
141
153
|
];
|
|
142
154
|
|
|
143
155
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-draggable-items.js","sources":["../../../projects/ngx-lib/draggable-items/draggable-item/draggable-item.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.module.ts","../../../projects/ngx-lib/draggable-items/public-api.ts","../../../projects/ngx-lib/draggable-items/pepperi-addons-ngx-lib-draggable-items.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'pep-draggable-item',\n templateUrl: './draggable-item.component.html',\n styleUrls: ['./draggable-item.component.scss']\n})\nexport class DraggableItemComponent implements OnInit {\n
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-draggable-items.js","sources":["../../../projects/ngx-lib/draggable-items/draggable-item/draggable-item.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.component.ts","../../../projects/ngx-lib/draggable-items/draggable-items.module.ts","../../../projects/ngx-lib/draggable-items/public-api.ts","../../../projects/ngx-lib/draggable-items/pepperi-addons-ngx-lib-draggable-items.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'pep-draggable-item',\n templateUrl: './draggable-item.component.html',\n styleUrls: ['./draggable-item.component.scss']\n})\nexport class DraggableItemComponent implements OnInit {\n @Input() title = '';\n @Input() data: any;\n @Input() disabled = false;\n\n constructor() {\n //\n }\n\n ngOnInit(): void {\n //\n }\n}\n","import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { IPepDraggableItem, PepDraggableItemPlaceholderType, PepDraggableItemsTitleType } from './draggable-items.model';\n\n@Component({\n selector: 'pep-draggable-items',\n templateUrl: './draggable-items.component.html',\n styleUrls: ['./draggable-items.component.scss']\n})\nexport class DraggableItemsComponent implements OnInit, OnDestroy {\n\n @Input() showSearch = false;\n @Input() title = '';\n @Input() titleType: PepDraggableItemsTitleType = 'regular';\n @Input() allowMultiple = '';\n\n @Input() itemPlaceholderType: PepDraggableItemPlaceholderType = 'none';\n\n @Input() dropAreaIds = [];\n\n private _items: Array<IPepDraggableItem> = [];\n @Input()\n set items(value: Array<IPepDraggableItem>) {\n this._items = value;\n\n if (this.items?.length > 0) {\n this.searchControl.enable();\n } else {\n this.searchControl.disable();\n }\n }\n get items(): Array<IPepDraggableItem> {\n return this._items;\n }\n\n @Output() itemDragStarted: EventEmitter<CdkDragStart<IPepDraggableItem>> = new EventEmitter<CdkDragStart<IPepDraggableItem>>();\n @Output() itemDragEnded: EventEmitter<CdkDragEnd<IPepDraggableItem>> = new EventEmitter<CdkDragEnd<IPepDraggableItem>>();\n\n filteredItems$: Observable<any>;\n searchControl = new FormControl();\n numberItemsToShowSearch = 3;\n private readonly _destroyed: Subject<void>;\n\n constructor() {\n //\n this._destroyed = new Subject();\n }\n\n private filterItems(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.items.filter(\n (opt) =>\n opt.title &&\n opt.title.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n private changeCursorOnDragStart() {\n document.body.classList.add('inheritCursors');\n document.body.style.cursor = 'grabbing';\n }\n\n private changeCursorOnDragEnd() {\n document.body.classList.remove('inheritCursors');\n document.body.style.cursor = 'unset';\n }\n\n protected getDestroyer() {\n return takeUntil(this._destroyed);\n }\n\n ngOnInit(): void {\n // If there is no item disable the search.\n if (this.items.length === 0) {\n this.searchControl.disable();\n }\n\n // Filter the draggableItems by the search control.\n this.filteredItems$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterItems(value) : this.items))\n );\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n onDragStart(event: CdkDragStart) {\n this.changeCursorOnDragStart();\n this.itemDragStarted.emit(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.changeCursorOnDragEnd();\n this.itemDragEnded.emit(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { DraggableItemsComponent } from './draggable-items.component';\nimport { DraggableItemComponent } from './draggable-item/draggable-item.component';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemMove,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n declarations: [\n DraggableItemsComponent,\n DraggableItemComponent\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n PepNgxLibModule,\n PepButtonModule,\n PepIconModule,\n PepSearchModule,\n DragDropModule\n ],\n exports: [\n DraggableItemsComponent,\n DraggableItemComponent\n ],\n})\nexport class PepDraggableItemsModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemMove,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/draggable-items\n */\nexport * from './draggable-item/draggable-item.component';\n\nexport * from './draggable-items.module';\nexport * from './draggable-items.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED