mutable-div
Version:
Directives to enable moving or resizing a div element.
1 lines • 25.7 kB
Source Map (JSON)
{"version":3,"file":"mutable-div.mjs","sources":["../../../projects/mutable-div/src/lib/draggable-element.directive.ts","../../../projects/mutable-div/src/lib/resize-handlers/resize-handlers.component.ts","../../../projects/mutable-div/src/lib/resize-handlers/resize-handlers.component.html","../../../projects/mutable-div/src/lib/resizable-element.directive.ts","../../../projects/mutable-div/src/lib/mutable-div.module.ts","../../../projects/mutable-div/src/public-api.ts","../../../projects/mutable-div/src/mutable-div.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { Position } from './model/position.model';\n\n@Directive({\n selector: '[draggable]'\n})\nexport class DraggableElementDirective {\n\n originalPosition: Position;\n private pointerDown: boolean = false;\n\n @Input() rotate = 0;\n @Output() coordinates = new EventEmitter<Position>();\n @Output() stopped = new EventEmitter();\n\n constructor(private el: ElementRef) {\n el.nativeElement.style.position = 'absolute';\n }\n\n @HostListener('pointerdown', ['$event']) onPointerDown(event: PointerEvent) {\n event.preventDefault();\n this.pointerDown = true;\n this.setOriginalPosition(event);\n }\n\n @HostListener('pointerup') onPointerUp() {\n this.stopped.emit();\n }\n\n @HostListener('window:pointermove', ['$event']) onPointerMove(event: PointerEvent) {\n if (this.pointerDown) {\n const element = this.el.nativeElement;\n const newPosition = this.setNewPosition(event);\n this.setOriginalPosition(event);\n element.style.left = (element.offsetLeft + newPosition.x) + 'px';\n element.style.top = (element.offsetTop + newPosition.y) + 'px';\n this.coordinates.emit({ x: newPosition.x, y: newPosition.y });\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n\n @HostListener('panstart', ['$event']) onPanStart(event: any) {\n this.onPointerDown(event.srcEvent);\n }\n\n @HostListener('panend') onPanEnd() {\n this.onPointerUp();\n }\n\n @HostListener('window:panmove', ['$event']) onPanMove(event: any) {\n this.onPointerMove(event.srcEvent);\n }\n\n @HostListener('window:panend') onWindowPanEnd() {\n this.onWindowPointerUp();\n }\n\n private setOriginalPosition(event: PointerEvent): void {\n switch (this.rotate) {\n case 90:\n this.originalPosition = {\n x: event.clientY,\n y: screen.width - event.clientX\n };\n break;\n case 180:\n this.originalPosition = {\n x: screen.width - event.clientX,\n y: screen.height - event.clientY\n };\n break;\n case 270:\n this.originalPosition = {\n x: screen.height - event.clientY,\n y: event.clientX\n };\n break;\n default:\n this.originalPosition = {\n x: event.clientX,\n y: event.clientY\n };\n }\n }\n\n private setNewPosition(event: PointerEvent): Position {\n let newPosition: Position = {\n x: 0,\n y: 0\n };\n switch (this.rotate) {\n case 90:\n newPosition = {\n x: event.clientY - this.originalPosition.x,\n y: (screen.width - event.clientX) - this.originalPosition.y\n };\n break;\n case 180:\n newPosition = {\n x: (screen.width - event.clientX) - this.originalPosition.x,\n y: (screen.height - event.clientY) - this.originalPosition.y\n };\n break;\n case 270:\n newPosition = {\n x: (screen.height - event.clientY) - this.originalPosition.x,\n y: event.clientX - this.originalPosition.y\n };\n break;\n default:\n newPosition = {\n x: event.clientX - this.originalPosition.x,\n y: event.clientY - this.originalPosition.y\n };\n }\n return newPosition;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport { Position } from '../model/position.model';\nimport { Size } from '../model/size.model';\nimport { HandleBar } from '../model/handle-bar.model';\n\n@Component({\n selector: 'lib-resize-handlers',\n templateUrl: './resize-handlers.component.html',\n styleUrls: ['./resize-handlers.component.css']\n})\nexport class ResizeHandlersComponent implements AfterViewInit, OnChanges {\n\n @Input() parentElement: ElementRef;\n @Input() rotate: number;\n @Input() selected = false;\n\n @ViewChildren('handle') handles: QueryList<ElementRef>;\n\n minimumSize = 20;\n\n constructor() { }\n\n ngAfterViewInit(): void {\n this.setHandlePositions();\n }\n\n ngOnChanges(): void {\n if (this.selected) {\n this.setHandlePositions();\n }\n }\n\n setHandlePositions(): void {\n this.handles.forEach((element, index) => {\n switch (index) {\n case 0:\n this.setHandleStyles(element, { left: '-7px', right: '', top: '-7px', bottom: '' });\n break;\n case 1:\n this.setHandleStyles(element, { left: '', right: '-7px', top: '-7px', bottom: '' });\n break;\n case 2:\n this.setHandleStyles(element, { left: '-7px', right: '', top: '', bottom: '-7px' });\n break;\n default:\n this.setHandleStyles(element, { left: '', right: '-7px', top: '', bottom: '-7px' });\n }\n });\n }\n\n setHandleStyles(element: ElementRef, styles: HandleBar) {\n element.nativeElement.style.left = styles.left;\n element.nativeElement.style.right = styles.right;\n element.nativeElement.style.top = styles.top;\n element.nativeElement.style.bottom = styles.bottom;\n }\n\n onPointerDown(event: PointerEvent) {\n event.stopPropagation();\n }\n\n resize(className: string, coordinates: Position) {\n const parentElement = this.parentElement.nativeElement;\n const size = this.calculatingPosition(parentElement, className, coordinates);\n if (size.width > this.minimumSize && size.height > this.minimumSize) {\n if (className.includes('TOP-LEFT')) {\n parentElement.style.left = size.position.x + 'px';\n parentElement.style.width = size.width + 'px';\n parentElement.style.top = size.position.y + 'px';\n parentElement.style.height = size.height + 'px';\n } else if (className.includes('TOP-RIGHT')) {\n parentElement.style.width = size.width + 'px';\n parentElement.style.top = size.position.y + 'px';\n parentElement.style.height = size.height + 'px';\n } else if (className.includes('BOTTOM-LEFT')) {\n parentElement.style.left = size.position.x + 'px';\n parentElement.style.width = size.width + 'px';\n parentElement.style.height = size.height + 'px';\n } else {\n parentElement.style.width = size.width + 'px';\n parentElement.style.height = size.height + 'px';\n }\n }\n this.setHandlePositions();\n }\n\n calculatingPosition(parentElement: any, className: string, coordinates: Position): Size {\n switch (this.rotate) {\n case 90:\n return {\n width: className.includes('LEFT') ? parentElement.offsetWidth - coordinates.y : parentElement.offsetWidth + coordinates.y,\n height: className.includes('TOP') ? parentElement.offsetHeight + coordinates.x : parentElement.offsetHeight - coordinates.x,\n position: {\n x: parentElement.offsetLeft + coordinates.y,\n y: parentElement.offsetTop - coordinates.x\n }\n };\n break;\n case 180:\n return {\n width: className.includes('LEFT') ? parentElement.offsetWidth + coordinates.x : parentElement.offsetWidth - coordinates.x,\n height: className.includes('TOP') ? parentElement.offsetHeight + coordinates.y : parentElement.offsetHeight - coordinates.y,\n position: {\n x: parentElement.offsetLeft - coordinates.x,\n y: parentElement.offsetTop - coordinates.y\n }\n };\n break;\n case 270:\n return {\n width: className.includes('LEFT') ? parentElement.offsetWidth + coordinates.y : parentElement.offsetWidth - coordinates.y,\n height: className.includes('TOP') ? parentElement.offsetHeight - coordinates.x : parentElement.offsetHeight + coordinates.x,\n position: {\n x: parentElement.offsetLeft - coordinates.y,\n y: parentElement.offsetTop + coordinates.x\n }\n };\n break;\n default:\n return {\n width: className.includes('LEFT') ? parentElement.offsetWidth - coordinates.x : parentElement.offsetWidth + coordinates.x,\n height: className.includes('TOP') ? parentElement.offsetHeight - coordinates.y : parentElement.offsetHeight + coordinates.y,\n position: {\n x: parentElement.offsetLeft + coordinates.x,\n y: parentElement.offsetTop + coordinates.y\n }\n };\n }\n }\n}\n","<div *ngIf=\"selected\" class=\"resize-handlers\">\n <div #handle #topLeft\n class=\"TOP-LEFT handle\"\n draggable\n (pointerdown)=\"onPointerDown($event)\"\n (coordinates)=\"resize(topLeft.className, $event)\"></div>\n <div #handle #topRight\n class=\"TOP-RIGHT handle\"\n draggable\n (pointerdown)=\"onPointerDown($event)\"\n (coordinates)=\"resize(topRight.className, $event)\"></div>\n <div #handle #bottomLeft\n class=\"BOTTOM-LEFT handle\"\n draggable\n (pointerdown)=\"onPointerDown($event)\"\n (coordinates)=\"resize(bottomLeft.className, $event)\"></div>\n <div #handle #bottomRight\n class=\"BOTTOM-RIGHT handle\"\n draggable\n (pointerdown)=\"onPointerDown($event)\"\n (coordinates)=\"resize(bottomRight.className, $event)\"></div>\n</div>\n","import {\n OnInit,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n OnChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { ResizeHandlersComponent } from './resize-handlers/resize-handlers.component';\n\n@Directive({\n selector: '[resizable]'\n})\nexport class ResizableElementDirective implements OnInit, OnChanges {\n\n @Input() rotate = 0;\n @Input() selected = false;\n @Output() stopped = new EventEmitter();\n\n resizeHandlersComponent: ComponentRef<ResizeHandlersComponent>;\n\n constructor(private el: ElementRef, private container: ViewContainerRef) {}\n\n ngOnInit(): void {\n this.addHandlersToElement();\n }\n\n ngOnChanges(): void {\n if (this.resizeHandlersComponent) {\n this.resizeHandlersComponent.instance.selected = this.selected;\n this.resizeHandlersComponent.instance.rotate = this.rotate;\n }\n }\n\n addHandlersToElement() {\n this.resizeHandlersComponent = this.container.createComponent(ResizeHandlersComponent);\n this.resizeHandlersComponent.instance.parentElement = this.el;\n this.resizeHandlersComponent.instance.rotate = this.rotate;\n this.resizeHandlersComponent.instance.selected = this.selected;\n this.el.nativeElement.appendChild(this.resizeHandlersComponent.location.nativeElement);\n }\n\n @HostListener('pointerdown') onPointerDown() {\n this.resizeHandlersComponent.instance.selected = true;\n }\n\n @HostListener('pointerup') onPointerUp() {\n this.stopped.emit();\n }\n\n @HostListener('window:pointerup', ['$event.target']) onWindowPointerUp(targetEvent) {\n if (!this.el.nativeElement.contains(targetEvent)) {\n this.resizeHandlersComponent.instance.selected = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DraggableElementDirective } from './draggable-element.directive';\nimport { ResizableElementDirective } from './resizable-element.directive';\nimport { ResizeHandlersComponent } from './resize-handlers/resize-handlers.component';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [\n DraggableElementDirective,\n ResizableElementDirective,\n ResizeHandlersComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n DraggableElementDirective,\n ResizableElementDirective,\n ]\n})\nexport class MutableDivModule { }\n","/*\n * Public API Surface of mutable-div\n */\n\nexport * from './lib/mutable-div.module';\nexport * from './lib/draggable-element.directive';\nexport * from './lib/resizable-element.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DraggableElementDirective"],"mappings":"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"}