@ng-vagabond-lab/ng-dsv 0.1.76 → 0.1.77
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.
|
@@ -133,7 +133,7 @@ class ListItemComponent {
|
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
args: [{ selector: 'dsv-list-item', imports: [], template: "<li\n #liRef\n [attr.data-index]=\"index()\"\n [draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n", styles: [":host li{display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #e0e0e0;border-radius:5px;transition:opacity .2s,border-color .2s;-webkit-user-select:none;user-select:none}:host li.dragging{opacity:.4}.ghost-drag{display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #e0e0e0;border-radius:5px;opacity:.3;pointer-events:none;z-index:99999;position:fixed;transform:scale(.98)}\n"] }]
|
|
136
|
+
args: [{ selector: 'dsv-list-item', standalone: true, imports: [], template: "<li\n #liRef\n [attr.data-index]=\"index()\"\n [draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n", styles: [":host li{display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #e0e0e0;border-radius:5px;transition:opacity .2s,border-color .2s;-webkit-user-select:none;user-select:none}:host li.dragging{opacity:.4}.ghost-drag{display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #e0e0e0;border-radius:5px;opacity:.3;pointer-events:none;z-index:99999;position:fixed;transform:scale(.98)}\n"] }]
|
|
137
137
|
}], ctorParameters: () => [], propDecorators: { index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: true }] }], callbackOrder: [{ type: i0.Output, args: ["callbackOrder"] }], liRef: [{ type: i0.ViewChild, args: ['liRef', { isSignal: true }] }] } });
|
|
138
138
|
|
|
139
139
|
class ListComponent {
|
|
@@ -142,7 +142,7 @@ class ListComponent {
|
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ListComponent, decorators: [{
|
|
144
144
|
type: Component,
|
|
145
|
-
args: [{ selector: 'dsv-list', imports: [], template: "<ul>\n <ng-content></ng-content>\n</ul>\n", styles: [":host ul{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:8px}\n"] }]
|
|
145
|
+
args: [{ selector: 'dsv-list', standalone: true, imports: [], template: "<ul>\n <ng-content></ng-content>\n</ul>\n", styles: [":host ul{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:8px}\n"] }]
|
|
146
146
|
}] });
|
|
147
147
|
|
|
148
148
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-list.mjs","sources":["../../../projects/ng-dsv/ds/list/item/component/drag/list.item.drag.component.ts","../../../projects/ng-dsv/ds/list/item/component/drag/list.item.drag.component.html","../../../projects/ng-dsv/ds/list/list/service/list.drag.service.ts","../../../projects/ng-dsv/ds/list/item/component/list.item.component.ts","../../../projects/ng-dsv/ds/list/item/component/list.item.component.html","../../../projects/ng-dsv/ds/list/list/component/list.component.ts","../../../projects/ng-dsv/ds/list/list/component/list.component.html","../../../projects/ng-dsv/ds/list/ng-vagabond-lab-ng-dsv-ds-list.ts"],"sourcesContent":["import { Component, inject, input } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ButtonVariantType } from \"@ng-vagabond-lab/ng-dsv/type\";\nimport { ListDragService } from \"../../../public-api\";\n\n@Component({\n selector: 'dsv-list-item-drag',\n imports: [DsvButtonComponent],\n templateUrl: './list.item.drag.component.html',\n styleUrl: './list.item.drag.component.scss',\n})\nexport class ListItemDragComponent {\n readonly listDragService = inject(ListDragService);\n\n variant = input<ButtonVariantType>('text');\n\n onHandleMouseDown(event: MouseEvent) {\n const li = (event.currentTarget as HTMLElement).closest('li') as HTMLElement;\n if (li) {\n li.draggable = true;\n }\n }\n\n onTouchStart(event: TouchEvent) {\n this.listDragService.touchDragging.set(true);\n }\n}","<dsv-button\n class=\"drag-handle\"\n icon=\"ri-menu-line\"\n [variant]=\"variant()\"\n color=\"primary\"\n (mousedown)=\"onHandleMouseDown($event)\"\n (touchstart)=\"onTouchStart($event)\"\n/>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ListDragService {\n dragSrcIndex = signal<number | null>(null);\n touchDragging = signal<boolean>(false);\n}","import { Component, ElementRef, inject, input, output, viewChild } from \"@angular/core\";\nimport { ListItemDragDto } from \"../../list/dto/list.dto\";\nimport { ListDragService } from \"../../list/service/list.drag.service\";\n\n@Component({\n selector: 'dsv-list-item',\n imports: [],\n templateUrl: './list.item.component.html',\n styleUrl: './list.item.component.scss',\n})\nexport class ListItemComponent {\n readonly listDragService = inject(ListDragService);\n\n index = input.required<number>();\n\n callbackOrder = output<ListItemDragDto>();\n\n readonly liRef = viewChild<ElementRef>('liRef');\n ghostEl: HTMLElement | null = null;\n\n constructor() {\n }\n\n onHandleMouseDown(event: MouseEvent) {\n const div = (event.currentTarget as HTMLElement).closest('div') as HTMLElement;\n if (div) div.draggable = true;\n }\n\n onDragStart(index: number, event: DragEvent) {\n this.listDragService.dragSrcIndex.set(index);\n event.dataTransfer!.effectAllowed = 'move';\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.dataTransfer!.dropEffect = 'move';\n }\n\n onDrop(targetIndex: number, event: DragEvent) {\n event.preventDefault();\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex === null || dragSrcIndex === targetIndex) {\n return;\n }\n this.callbackOrder.emit({ dragSrcIndex: dragSrcIndex, targetIndex: targetIndex });\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onDragEnd() {\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onTouchStart(event: TouchEvent) {\n if (!this.listDragService.touchDragging()) {\n return;\n }\n this.listDragService.dragSrcIndex.set(this.index());\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (!li) {\n return;\n }\n\n const rect = li.getBoundingClientRect();\n const touch = event.touches[0];\n\n this.ghostEl = li.cloneNode(true) as HTMLElement;\n this.ghostEl.classList.add('ghost-drag');\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n this.ghostEl.style.width = `${rect.width - 25}px`;\n this.ghostEl.style.height = `${rect.height - 25}px`;\n\n const ul = li.closest('ul');\n if (ul) {\n ul.appendChild(this.ghostEl);\n }\n this.ghostEl.style.opacity = '0.5';\n }\n\n onTouchMove(event: TouchEvent) {\n event.preventDefault();\n const touch = event.touches[0];\n\n if (this.ghostEl) {\n const rect = (this.liRef()?.nativeElement as HTMLElement).getBoundingClientRect();\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n }\n\n const target = document.elementFromPoint(touch.clientX, touch.clientY);\n const targetLi = target?.closest('li');\n\n document.querySelectorAll('li.drag-over-touch')\n .forEach(el => el.classList.remove('drag-over-touch'));\n\n if (targetLi && targetLi !== this.liRef()?.nativeElement) {\n targetLi.classList.add('drag-over-touch');\n }\n }\n\n onTouchEnd(event: TouchEvent) {\n if (this.ghostEl) {\n this.ghostEl.remove();\n this.ghostEl = null;\n }\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (li) li.style.opacity = '1';\n\n const touch = event.changedTouches[0];\n const target = document.elementFromPoint(touch?.clientX, touch?.clientY);\n const targetLi = target?.closest('[data-index]') as HTMLElement | null;\n\n if (targetLi) {\n const targetIndex = parseInt(targetLi.dataset['index'] ?? '-1');\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex !== null && dragSrcIndex !== targetIndex && targetIndex >= 0) {\n this.callbackOrder.emit({ dragSrcIndex, targetIndex });\n }\n }\n\n document.querySelectorAll('li.drag-over-touch')\n .forEach(el => el.classList.remove('drag-over-touch'));\n this.listDragService.dragSrcIndex.set(null);\n this.listDragService.touchDragging.set(false);\n }\n}","<li\n #liRef\n [attr.data-index]=\"index()\"\n [draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: 'dsv-list',\n imports: [],\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n})\nexport class ListComponent {\n}","<ul>\n <ng-content></ng-content>\n</ul>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-list.mjs","sources":["../../../projects/ng-dsv/ds/list/item/component/drag/list.item.drag.component.ts","../../../projects/ng-dsv/ds/list/item/component/drag/list.item.drag.component.html","../../../projects/ng-dsv/ds/list/list/service/list.drag.service.ts","../../../projects/ng-dsv/ds/list/item/component/list.item.component.ts","../../../projects/ng-dsv/ds/list/item/component/list.item.component.html","../../../projects/ng-dsv/ds/list/list/component/list.component.ts","../../../projects/ng-dsv/ds/list/list/component/list.component.html","../../../projects/ng-dsv/ds/list/ng-vagabond-lab-ng-dsv-ds-list.ts"],"sourcesContent":["import { Component, inject, input } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ButtonVariantType } from \"@ng-vagabond-lab/ng-dsv/type\";\nimport { ListDragService } from \"../../../public-api\";\n\n@Component({\n selector: 'dsv-list-item-drag',\n imports: [DsvButtonComponent],\n templateUrl: './list.item.drag.component.html',\n styleUrl: './list.item.drag.component.scss',\n})\nexport class ListItemDragComponent {\n readonly listDragService = inject(ListDragService);\n\n variant = input<ButtonVariantType>('text');\n\n onHandleMouseDown(event: MouseEvent) {\n const li = (event.currentTarget as HTMLElement).closest('li') as HTMLElement;\n if (li) {\n li.draggable = true;\n }\n }\n\n onTouchStart(event: TouchEvent) {\n this.listDragService.touchDragging.set(true);\n }\n}","<dsv-button\n class=\"drag-handle\"\n icon=\"ri-menu-line\"\n [variant]=\"variant()\"\n color=\"primary\"\n (mousedown)=\"onHandleMouseDown($event)\"\n (touchstart)=\"onTouchStart($event)\"\n/>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ListDragService {\n dragSrcIndex = signal<number | null>(null);\n touchDragging = signal<boolean>(false);\n}","import { Component, ElementRef, inject, input, output, viewChild } from \"@angular/core\";\nimport { ListItemDragDto } from \"../../list/dto/list.dto\";\nimport { ListDragService } from \"../../list/service/list.drag.service\";\n\n@Component({\n selector: 'dsv-list-item',\n standalone: true,\n imports: [],\n templateUrl: './list.item.component.html',\n styleUrl: './list.item.component.scss',\n})\nexport class ListItemComponent {\n readonly listDragService = inject(ListDragService);\n\n index = input.required<number>();\n\n callbackOrder = output<ListItemDragDto>();\n\n readonly liRef = viewChild<ElementRef>('liRef');\n ghostEl: HTMLElement | null = null;\n\n constructor() {\n }\n\n onHandleMouseDown(event: MouseEvent) {\n const div = (event.currentTarget as HTMLElement).closest('div') as HTMLElement;\n if (div) div.draggable = true;\n }\n\n onDragStart(index: number, event: DragEvent) {\n this.listDragService.dragSrcIndex.set(index);\n event.dataTransfer!.effectAllowed = 'move';\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.dataTransfer!.dropEffect = 'move';\n }\n\n onDrop(targetIndex: number, event: DragEvent) {\n event.preventDefault();\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex === null || dragSrcIndex === targetIndex) {\n return;\n }\n this.callbackOrder.emit({ dragSrcIndex: dragSrcIndex, targetIndex: targetIndex });\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onDragEnd() {\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onTouchStart(event: TouchEvent) {\n if (!this.listDragService.touchDragging()) {\n return;\n }\n this.listDragService.dragSrcIndex.set(this.index());\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (!li) {\n return;\n }\n\n const rect = li.getBoundingClientRect();\n const touch = event.touches[0];\n\n this.ghostEl = li.cloneNode(true) as HTMLElement;\n this.ghostEl.classList.add('ghost-drag');\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n this.ghostEl.style.width = `${rect.width - 25}px`;\n this.ghostEl.style.height = `${rect.height - 25}px`;\n\n const ul = li.closest('ul');\n if (ul) {\n ul.appendChild(this.ghostEl);\n }\n this.ghostEl.style.opacity = '0.5';\n }\n\n onTouchMove(event: TouchEvent) {\n event.preventDefault();\n const touch = event.touches[0];\n\n if (this.ghostEl) {\n const rect = (this.liRef()?.nativeElement as HTMLElement).getBoundingClientRect();\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n }\n\n const target = document.elementFromPoint(touch.clientX, touch.clientY);\n const targetLi = target?.closest('li');\n\n document.querySelectorAll('li.drag-over-touch')\n .forEach(el => el.classList.remove('drag-over-touch'));\n\n if (targetLi && targetLi !== this.liRef()?.nativeElement) {\n targetLi.classList.add('drag-over-touch');\n }\n }\n\n onTouchEnd(event: TouchEvent) {\n if (this.ghostEl) {\n this.ghostEl.remove();\n this.ghostEl = null;\n }\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (li) li.style.opacity = '1';\n\n const touch = event.changedTouches[0];\n const target = document.elementFromPoint(touch?.clientX, touch?.clientY);\n const targetLi = target?.closest('[data-index]') as HTMLElement | null;\n\n if (targetLi) {\n const targetIndex = parseInt(targetLi.dataset['index'] ?? '-1');\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex !== null && dragSrcIndex !== targetIndex && targetIndex >= 0) {\n this.callbackOrder.emit({ dragSrcIndex, targetIndex });\n }\n }\n\n document.querySelectorAll('li.drag-over-touch')\n .forEach(el => el.classList.remove('drag-over-touch'));\n this.listDragService.dragSrcIndex.set(null);\n this.listDragService.touchDragging.set(false);\n }\n}","<li\n #liRef\n [attr.data-index]=\"index()\"\n [draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: 'dsv-list',\n standalone: true,\n imports: [],\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n})\nexport class ListComponent {\n}","<ul>\n <ng-content></ng-content>\n</ul>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|