UNPKG

25.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-orderlist.umd.js","sources":["ng://primeng/orderlist/orderlist.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,AfterViewChecked,AfterContentInit,Input,Output,ContentChildren,QueryList,TemplateRef,EventEmitter,ViewChild,ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'primeng/button';\nimport {SharedModule,PrimeTemplate} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {ObjectUtils} from 'primeng/utils';\nimport { FilterUtils } from 'primeng/utils';\n\n@Component({\n selector: 'p-orderList',\n template: `\n <div [ngClass]=\"{'ui-orderlist ui-widget': true, 'ui-orderlist-controls-left': controlsPosition === 'left',\n 'ui-orderlist-controls-right': controlsPosition === 'right'}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"ui-orderlist-controls\">\n <button type=\"button\" pButton icon=\"pi pi-angle-up\" (click)=\"moveUp($event)\"></button>\n <button type=\"button\" pButton icon=\"pi pi-angle-double-up\" (click)=\"moveTop($event)\"></button>\n <button type=\"button\" pButton icon=\"pi pi-angle-down\" (click)=\"moveDown($event)\"></button>\n <button type=\"button\" pButton icon=\"pi pi-angle-double-down\" (click)=\"moveBottom($event)\"></button>\n </div>\n <div class=\"ui-orderlist-list-container\">\n <div class=\"ui-orderlist-caption ui-widget-header ui-corner-top\" *ngIf=\"header\">{{header}}</div>\n <div class=\"ui-orderlist-filter-container ui-widget-content\" *ngIf=\"filterBy\">\n <input type=\"text\" role=\"textbox\" (keyup)=\"onFilterKeyup($event)\" class=\"ui-inputtext ui-widget ui-state-default ui-corner-all\" [attr.placeholder]=\"filterPlaceholder\" [attr.aria-label]=\"ariaFilterLabel\">\n <span class=\"ui-orderlist-filter-icon pi pi-search\"></span>\n </div>\n <ul #listelement class=\"ui-widget-content ui-orderlist-list ui-corner-bottom\" [ngStyle]=\"listStyle\" (dragover)=\"onListMouseMove($event)\">\n <ng-template ngFor [ngForTrackBy]=\"trackBy\" let-item [ngForOf]=\"value\" let-i=\"index\" let-l=\"last\">\n <li class=\"ui-orderlist-droppoint\" *ngIf=\"dragdrop && isItemVisible(item)\" (dragover)=\"onDragOver($event, i)\" (drop)=\"onDrop($event, i)\" (dragleave)=\"onDragLeave($event)\"\n [ngClass]=\"{'ui-orderlist-droppoint-highlight': (i === dragOverItemIndex)}\"></li>\n <li class=\"ui-orderlist-item\" tabindex=\"0\"\n [ngClass]=\"{'ui-state-highlight':isSelected(item)}\"\n (click)=\"onItemClick($event,item,i)\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,i)\"\n [style.display]=\"isItemVisible(item) ? 'block' : 'none'\" role=\"option\" [attr.aria-selected]=\"isSelected(item)\"\n [draggable]=\"dragdrop\" (dragstart)=\"onDragStart($event, i)\" (dragend)=\"onDragEnd($event)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n <li class=\"ui-orderlist-droppoint\" *ngIf=\"dragdrop && l\" (dragover)=\"onDragOver($event, i + 1)\" (drop)=\"onDrop($event, i + 1)\" (dragleave)=\"onDragLeave($event)\"\n [ngClass]=\"{'ui-orderlist-droppoint-highlight': (i + 1 === dragOverItemIndex)}\"></li>\n </ng-template>\n </ul>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class OrderList implements AfterViewChecked,AfterContentInit {\n\n @Input() header: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() listStyle: any;\n\n @Input() responsive: boolean;\n\n @Input() filterBy: string;\n\n @Input() filterPlaceholder: string;\n\n @Input() filterLocale: string;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() dragdrop: boolean;\n\n @Input() controlsPosition: string = 'left';\n\n @Input() ariaFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Output() onReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onSelectionChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFilterEvent: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('listelement') listViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n public itemTemplate: TemplateRef<any>;\n\n _selection: any[];\n\n movedUp: boolean;\n\n movedDown: boolean;\n\n itemTouched: boolean;\n\n draggedItemIndex: number;\n\n dragOverItemIndex: number;\n\n dragging: boolean;\n\n public filterValue: string;\n\n public visibleOptions: any[];\n\n public _value: any[];\n\n constructor(public el: ElementRef) {}\n\n get selection(): any[] {\n return this._selection;\n }\n\n @Input() set selection(val:any[]) {\n this._selection = val;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (this.movedUp||this.movedDown) {\n let listItems = DomHandler.find(this.listViewChild.nativeElement, 'li.ui-state-highlight');\n let listItem;\n\n if (listItems.length > 0) {\n if (this.movedUp)\n listItem = listItems[0];\n else\n listItem = listItems[listItems.length - 1];\n\n DomHandler.scrollInView(this.listViewChild.nativeElement, listItem);\n }\n this.movedUp = false;\n this.movedDown = false;\n }\n }\n\n get value(): any[] {\n return this._value;\n }\n\n @Input() set value(val:any[]) {\n this._value = val;\n if (this.filterValue) {\n this.filter();\n }\n }\n\n onItemClick(event, item, index) {\n this.itemTouched = false;\n let selectedIndex = ObjectUtils.findIndexInList(item, this.selection);\n let selected = (selectedIndex != -1);\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey||event.shiftKey);\n\n if (selected && metaKey) {\n this._selection = this._selection.filter((val, index) => index !== selectedIndex);\n }\n else {\n this._selection = (metaKey) ? this._selection ? [...this._selection] : [] : [];\n ObjectUtils.insertIntoOrderedArray(item, index, this._selection, this.value);\n }\n }\n else {\n if (selected) {\n this._selection = this._selection.filter((val, index) => index !== selectedIndex);\n }\n else {\n this._selection = this._selection ? [...this._selection] : [];\n ObjectUtils.insertIntoOrderedArray(item, index, this._selection, this.value);\n }\n }\n\n //binding\n this.selectionChange.emit(this._selection);\n\n //event\n this.onSelectionChange.emit({originalEvent:event, value: this._selection});\n }\n\n onFilterKeyup(event) {\n this.filterValue = event.target.value.trim().toLocaleLowerCase(this.filterLocale);\n this.filter();\n\n this.onFilterEvent.emit({\n originalEvent: event,\n value: this.visibleOptions\n });\n }\n\n filter() {\n let searchFields: string[] = this.filterBy.split(',');\n this.visibleOptions = FilterUtils.filter(this.value, searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n }\n\n isItemVisible(item: any): boolean {\n if (this.filterValue && this.filterValue.trim().length) {\n for (let i = 0; i < this.visibleOptions.length; i++) {\n if (item == this.visibleOptions[i]) {\n return true;\n }\n }\n }\n else {\n return true;\n }\n }\n\n onItemTouchEnd(event) {\n this.itemTouched = true;\n }\n\n isSelected(item: any) {\n return ObjectUtils.findIndexInList(item, this.selection) != -1;\n }\n\n moveUp(event) {\n if (this.selection) {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedItem = this.selection[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, this.value);\n\n if (selectedItemIndex != 0) {\n let movedItem = this.value[selectedItemIndex];\n let temp = this.value[selectedItemIndex-1];\n this.value[selectedItemIndex-1] = movedItem;\n this.value[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n this.movedUp = true;\n this.onReorder.emit(event);\n }\n }\n\n moveTop(event) {\n if (this.selection) {\n for (let i = this.selection.length - 1; i >= 0; i--) {\n let selectedItem = this.selection[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, this.value);\n\n if (selectedItemIndex != 0) {\n let movedItem = this.value.splice(selectedItemIndex,1)[0];\n this.value.unshift(movedItem);\n }\n else {\n break;\n }\n }\n\n this.onReorder.emit(event);\n this.listViewChild.nativeElement.scrollTop = 0;\n }\n }\n\n moveDown(event) {\n if (this.selection) {\n for (let i = this.selection.length - 1; i >= 0; i--) {\n let selectedItem = this.selection[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, this.value);\n\n if (selectedItemIndex != (this.value.length - 1)) {\n let movedItem = this.value[selectedItemIndex];\n let temp = this.value[selectedItemIndex+1];\n this.value[selectedItemIndex+1] = movedItem;\n this.value[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n this.movedDown = true;\n this.onReorder.emit(event);\n }\n }\n\n moveBottom(event) {\n if (this.selection) {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedItem = this.selection[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, this.value);\n\n if (selectedItemIndex != (this.value.length - 1)) {\n let movedItem = this.value.splice(selectedItemIndex,1)[0];\n this.value.push(movedItem);\n }\n else {\n break;\n }\n }\n\n this.onReorder.emit(event);\n this.listViewChild.nativeElement.scrollTop = this.listViewChild.nativeElement.scrollHeight;\n }\n }\n\n onDragStart(event: DragEvent, index: number) {\n event.dataTransfer.setData('text', 'b'); // For firefox\n (<HTMLLIElement> event.target).blur();\n this.dragging = true;\n this.draggedItemIndex = index;\n }\n\n onDragOver(event: DragEvent, index: number) {\n if (this.dragging && this.draggedItemIndex !== index && this.draggedItemIndex + 1 !== index) {\n this.dragOverItemIndex = index;\n event.preventDefault();\n }\n }\n\n onDragLeave(event: DragEvent) {\n this.dragOverItemIndex = null;\n }\n\n onDrop(event: DragEvent, index: number) {\n let dropIndex = (this.draggedItemIndex > index) ? index : (index === 0) ? 0 : index - 1;\n ObjectUtils.reorderArray(this.value, this.draggedItemIndex, dropIndex);\n this.dragOverItemIndex = null;\n this.onReorder.emit(event);\n event.preventDefault();\n }\n\n onDragEnd(event: DragEvent) {\n this.dragging = false;\n }\n\n onListMouseMove(event: MouseEvent) {\n if (this.dragging) {\n let offsetY = this.listViewChild.nativeElement.getBoundingClientRect().top + document.body.scrollTop;\n let bottomDiff = (offsetY + this.listViewChild.nativeElement.clientHeight) - event.pageY;\n let topDiff = (event.pageY - offsetY);\n if (bottomDiff < 25 && bottomDiff > 0)\n this.listViewChild.nativeElement.scrollTop += 15;\n else if (topDiff < 25 && topDiff > 0)\n this.listViewChild.nativeElement.scrollTop -= 15;\n }\n }\n\n onItemKeydown(event: KeyboardEvent, item, index: Number) {\n let listItem = <HTMLLIElement> event.currentTarget;\n\n switch(event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(listItem);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.onItemClick(event, item, index);\n event.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return !DomHandler.hasClass(nextItem, 'ui-orderlist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return !DomHandler.hasClass(prevItem, 'ui-orderlist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else\n return null;\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule,SharedModule],\n exports: [OrderList,SharedModule],\n declarations: [OrderList]\n})\nexport class OrderListModule { }\n"],"names":["EventEmitter","DomHandler","ObjectUtils","FilterUtils","ElementRef","Input","Output","ViewChild","ContentChildren","PrimeTemplate","Component","ChangeDetectionStrategy","NgModule","CommonModule","ButtonModule","SharedModule"],"mappings":"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"}
\No newline at end of file