UNPKG

83.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"ng2-dnd.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/dnd.utils.ts","../../src/dnd.config.ts","../../src/dnd.service.ts","../../src/abstract.component.ts","../../src/draggable.component.ts","../../src/droppable.component.ts","../../src/sortable.component.ts","../../src/dnd.module.ts","../../public_api.ts","../../ng2-dnd.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\n/**\n * Check and return true if an object is type of string\n */\nexport function isString(obj:any) {\n return typeof obj === \"string\";\n}\n\n/**\n * Check and return true if an object not undefined or null\n */\nexport function isPresent(obj: any) {\n return obj !== undefined && obj !== null;\n}\n\n/**\n * Check and return true if an object is type of Function\n */\nexport function isFunction(obj: any) {\n return typeof obj === \"function\";\n}\n\n/**\n * Create Image element with specified url string\n */\nexport function createImage(src: string) {\n let img:HTMLImageElement = new HTMLImageElement();\n img.src = src;\n return img;\n}\n\n/**\n * Call the function\n */\nexport function callFun(fun: Function) {\n return fun();\n}","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {isString} from './dnd.utils';\n\nexport class DataTransferEffect {\n\n static COPY = new DataTransferEffect('copy');\n static LINK = new DataTransferEffect('link');\n static MOVE = new DataTransferEffect('move');\n static NONE = new DataTransferEffect('none');\n\n constructor(public name: string) { }\n}\n\nexport class DragImage {\n constructor(\n public imageElement: any,\n public x_offset: number = 0,\n public y_offset: number = 0) {\n if (isString(this.imageElement)) {\n // Create real image from string source\n let imgScr: string = <string>this.imageElement;\n this.imageElement = new HTMLImageElement();\n (<HTMLImageElement>this.imageElement).src = imgScr;\n }\n }\n}\n\nexport class DragDropConfig {\n public onDragStartClass: string = \"dnd-drag-start\";\n public onDragEnterClass: string = \"dnd-drag-enter\";\n public onDragOverClass: string = \"dnd-drag-over\";\n public onSortableDragClass: string = \"dnd-sortable-drag\";\n\n public dragEffect: DataTransferEffect = DataTransferEffect.MOVE;\n public dropEffect: DataTransferEffect = DataTransferEffect.MOVE;\n public dragCursor: string = \"move\";\n public dragImage: DragImage;\n public defaultCursor: string = \"pointer\";\n}","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {Injectable, EventEmitter} from '@angular/core';\n\nimport {DragDropConfig} from './dnd.config';\nimport {isPresent} from './dnd.utils';\nimport {SortableContainer} from './sortable.component';\n\nexport class DragDropData {\n dragData: any;\n mouseEvent: MouseEvent;\n}\n\nexport function dragDropServiceFactory(): DragDropService {\n return new DragDropService();\n}\n\n@Injectable()\nexport class DragDropService {\n allowedDropZones: Array<string> = [];\n onDragSuccessCallback: EventEmitter<DragDropData>;\n dragData: any;\n isDragged: boolean;\n}\n\nexport function dragDropSortableServiceFactory(config: DragDropConfig): DragDropSortableService {\n return new DragDropSortableService(config);\n}\n\n@Injectable()\nexport class DragDropSortableService {\n index: number;\n sortableContainer: SortableContainer;\n isDragged: boolean;\n\n private _elem: HTMLElement;\n public get elem(): HTMLElement {\n return this._elem;\n }\n\n constructor(private _config:DragDropConfig) {}\n\n markSortable(elem: HTMLElement) {\n if (isPresent(this._elem)) {\n this._elem.classList.remove(this._config.onSortableDragClass);\n }\n if (isPresent(elem)) {\n this._elem = elem;\n this._elem.classList.add(this._config.onSortableDragClass);\n }\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {Injectable, ChangeDetectorRef, ViewRef} from '@angular/core';\nimport {ElementRef} from '@angular/core';\n\nimport { DragDropConfig, DragImage } from './dnd.config';\nimport { DragDropService } from './dnd.service';\nimport { isString, isFunction, isPresent, createImage, callFun } from './dnd.utils';\n\n@Injectable()\nexport abstract class AbstractComponent {\n _elem: HTMLElement;\n _dragHandle: HTMLElement;\n _dragHelper: HTMLElement;\n _defaultCursor: string;\n\n /**\n * Last element that was mousedown'ed\n */\n _target: EventTarget;\n\n /**\n * Whether the object is draggable. Default is true.\n */\n private _dragEnabled: boolean = false;\n set dragEnabled(enabled: boolean) {\n this._dragEnabled = !!enabled;\n this._elem.draggable = this._dragEnabled;\n }\n get dragEnabled(): boolean {\n return this._dragEnabled;\n }\n\n /**\n * Allows drop on this element\n */\n dropEnabled: boolean = false;\n /**\n * Drag effect\n */\n effectAllowed: string;\n /**\n * Drag cursor\n */\n effectCursor: string;\n\n /**\n * Restrict places where a draggable element can be dropped. Either one of\n * these two mechanisms can be used:\n *\n * - dropZones: an array of strings that permits to specify the drop zones\n * associated with this component. By default, if the drop-zones attribute\n * is not specified, the droppable component accepts drop operations by\n * all the draggable components that do not specify the allowed-drop-zones\n *\n * - allowDrop: a boolean function for droppable components, that is checked\n * when an item is dragged. The function is passed the dragData of this\n * item.\n * - if it returns true, the item can be dropped in this component\n * - if it returns false, the item cannot be dropped here\n */\n allowDrop: (dropData: any) => boolean;\n dropZones: string[] = [];\n\n /**\n * Here is the property dragImage you can use:\n * - The string value as url to the image\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"/images/simpler.png\">\n * ...\n * - The DragImage value with Image and optional offset by x and y:\n * let myDragImage: DragImage = new DragImage(\"/images/simpler1.png\", 0, 0);\n * ...\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"myDragImage\">\n * ...\n * - The custom function to return the value of dragImage programmatically:\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"getDragImage(someData)\">\n * ...\n * getDragImage(value:any): string {\n * return value ? \"/images/simpler1.png\" : \"/images/simpler2.png\"\n * }\n */\n dragImage: string | DragImage | Function;\n\n cloneItem: boolean = false;\n\n constructor(elemRef: ElementRef, public _dragDropService: DragDropService, public _config: DragDropConfig,\n private _cdr: ChangeDetectorRef) {\n\n // Assign default cursor unless overridden\n this._defaultCursor = _config.defaultCursor;\n this._elem = elemRef.nativeElement;\n this._elem.style.cursor = this._defaultCursor; // set default cursor on our element\n //\n // DROP events\n //\n this._elem.ondragenter = (event: Event) => {\n this._onDragEnter(event);\n };\n this._elem.ondragover = (event: DragEvent) => {\n this._onDragOver(event);\n //\n if (event.dataTransfer != null) {\n event.dataTransfer.dropEffect = this._config.dropEffect.name;\n }\n\n return false;\n };\n this._elem.ondragleave = (event: Event) => {\n this._onDragLeave(event);\n };\n this._elem.ondrop = (event: Event) => {\n this._onDrop(event);\n };\n //\n // Drag events\n //\n this._elem.onmousedown = (event: MouseEvent) => {\n this._target = event.target;\n };\n this._elem.ondragstart = (event: DragEvent) => {\n if (this._dragHandle) {\n if (!this._dragHandle.contains(<Element>this._target)) {\n event.preventDefault();\n return;\n }\n }\n\n this._onDragStart(event);\n //\n if (event.dataTransfer != null) {\n event.dataTransfer.setData('text', '');\n // Change drag effect\n event.dataTransfer.effectAllowed = this.effectAllowed || this._config.dragEffect.name;\n // Change drag image\n if (isPresent(this.dragImage)) {\n if (isString(this.dragImage)) {\n (<any>event.dataTransfer).setDragImage(createImage(<string>this.dragImage));\n } else if (isFunction(this.dragImage)) {\n (<any>event.dataTransfer).setDragImage(callFun(<Function>this.dragImage));\n } else {\n let img: DragImage = <DragImage>this.dragImage;\n (<any>event.dataTransfer).setDragImage(img.imageElement, img.x_offset, img.y_offset);\n }\n } else if (isPresent(this._config.dragImage)) {\n let dragImage: DragImage = this._config.dragImage;\n (<any>event.dataTransfer).setDragImage(dragImage.imageElement, dragImage.x_offset, dragImage.y_offset);\n } else if (this.cloneItem) {\n this._dragHelper = <HTMLElement>this._elem.cloneNode(true);\n this._dragHelper.classList.add('dnd-drag-item');\n this._dragHelper.style.position = \"absolute\";\n this._dragHelper.style.top = \"0px\";\n this._dragHelper.style.left = \"-1000px\";\n this._elem.parentElement.appendChild(this._dragHelper);\n (<any>event.dataTransfer).setDragImage(this._dragHelper, event.offsetX, event.offsetY);\n }\n\n // Change drag cursor\n let cursorelem = (this._dragHandle) ? this._dragHandle : this._elem;\n\n if (this._dragEnabled) {\n cursorelem.style.cursor = this.effectCursor ? this.effectCursor : this._config.dragCursor;\n } else {\n cursorelem.style.cursor = this._defaultCursor;\n }\n }\n };\n\n this._elem.ondragend = (event: Event) => {\n if (this._elem.parentElement && this._dragHelper) {\n this._elem.parentElement.removeChild(this._dragHelper);\n }\n // console.log('ondragend', event.target);\n this._onDragEnd(event);\n // Restore style of dragged element\n let cursorelem = (this._dragHandle) ? this._dragHandle : this._elem;\n cursorelem.style.cursor = this._defaultCursor;\n };\n }\n\n public setDragHandle(elem: HTMLElement) {\n this._dragHandle = elem;\n }\n /******* Change detection ******/\n\n detectChanges () {\n // Programmatically run change detection to fix issue in Safari\n setTimeout(() => {\n if ( this._cdr && !(this._cdr as ViewRef).destroyed ) {\n this._cdr.detectChanges();\n }\n }, 250);\n }\n\n //****** Droppable *******//\n private _onDragEnter(event: Event): void {\n // console.log('ondragenter._isDropAllowed', this._isDropAllowed);\n if (this._isDropAllowed(event)) {\n // event.preventDefault();\n this._onDragEnterCallback(event);\n }\n }\n\n private _onDragOver(event: Event) {\n // // console.log('ondragover._isDropAllowed', this._isDropAllowed);\n if (this._isDropAllowed(event)) {\n // The element is over the same source element - do nothing\n if (event.preventDefault) {\n // Necessary. Allows us to drop.\n event.preventDefault();\n }\n\n this._onDragOverCallback(event);\n }\n }\n\n private _onDragLeave(event: Event): void {\n // console.log('ondragleave._isDropAllowed', this._isDropAllowed);\n if (this._isDropAllowed(event)) {\n // event.preventDefault();\n this._onDragLeaveCallback(event);\n }\n }\n\n private _onDrop(event: Event): void {\n // console.log('ondrop._isDropAllowed', this._isDropAllowed);\n if (this._isDropAllowed(event)) {\n // Necessary. Allows us to drop.\n this._preventAndStop(event);\n\n this._onDropCallback(event);\n\n this.detectChanges();\n }\n }\n\n private _isDropAllowed(event: any): boolean {\n if ((this._dragDropService.isDragged || (event.dataTransfer && event.dataTransfer.files)) && this.dropEnabled) {\n // First, if `allowDrop` is set, call it to determine whether the\n // dragged element can be dropped here.\n if (this.allowDrop) {\n return this.allowDrop(this._dragDropService.dragData);\n }\n\n // Otherwise, use dropZones if they are set.\n if (this.dropZones.length === 0 && this._dragDropService.allowedDropZones.length === 0) {\n return true;\n }\n for (let i: number = 0; i < this._dragDropService.allowedDropZones.length; i++) {\n let dragZone: string = this._dragDropService.allowedDropZones[i];\n if (this.dropZones.indexOf(dragZone) !== -1) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _preventAndStop(event: Event): any {\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n\n //*********** Draggable **********//\n\n private _onDragStart(event: Event): void {\n //console.log('ondragstart.dragEnabled', this._dragEnabled);\n if (this._dragEnabled) {\n this._dragDropService.allowedDropZones = this.dropZones;\n // console.log('ondragstart.allowedDropZones', this._dragDropService.allowedDropZones);\n this._onDragStartCallback(event);\n }\n }\n\n private _onDragEnd(event: Event): void {\n this._dragDropService.allowedDropZones = [];\n // console.log('ondragend.allowedDropZones', this._dragDropService.allowedDropZones);\n this._onDragEndCallback(event);\n }\n\n //**** Drop Callbacks ****//\n _onDragEnterCallback(event: Event) { }\n _onDragOverCallback(event: Event) { }\n _onDragLeaveCallback(event: Event) { }\n _onDropCallback(event: Event) { }\n\n //**** Drag Callbacks ****//\n _onDragStartCallback(event: Event) { }\n _onDragEndCallback(event: Event) { }\n}\n\nexport class AbstractHandleComponent {\n _elem: HTMLElement;\n constructor(elemRef: ElementRef, public _dragDropService: DragDropService, public _config: DragDropConfig,\n private _Component: AbstractComponent, private _cdr: ChangeDetectorRef) {\n this._elem = elemRef.nativeElement;\n this._Component.setDragHandle(this._elem);\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {ChangeDetectorRef} from '@angular/core';\nimport {Directive, Input, Output, EventEmitter, ElementRef} from '@angular/core';\n\nimport {AbstractComponent, AbstractHandleComponent} from './abstract.component';\nimport {DragDropConfig, DragImage} from './dnd.config';\nimport {DragDropService, DragDropData} from './dnd.service';\n\n@Directive({ selector: '[dnd-draggable]' })\nexport class DraggableComponent extends AbstractComponent {\n\n @Input(\"dragEnabled\") set draggable(value:boolean) {\n this.dragEnabled = !!value;\n }\n\n /**\n * Callback function called when the drag actions happened.\n */\n @Output() onDragStart: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n @Output() onDragEnd: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n\n /**\n * The data that has to be dragged. It can be any JS object\n */\n @Input() dragData: any;\n\n /**\n * Callback function called when the drag action ends with a valid drop action.\n * It is activated after the on-drop-success callback\n */\n @Output(\"onDragSuccess\") onDragSuccessCallback: EventEmitter<any> = new EventEmitter<any>();\n\n @Input(\"dropZones\") set dropzones(value:Array<string>) {\n this.dropZones = value;\n }\n\n /**\n * Drag allowed effect\n */\n @Input(\"effectAllowed\") set effectallowed(value: string) {\n this.effectAllowed = value;\n }\n\n /**\n * Drag effect cursor\n */\n @Input(\"effectCursor\") set effectcursor(value: string) {\n this.effectCursor = value;\n }\n\n /**\n * Here is the property dragImage you can use:\n * - The string value as url to the image\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"/images/simpler.png\">\n * ...\n * - The DragImage value with Image and offset by x and y:\n * let myDragImage: DragImage = new DragImage(\"/images/simpler1.png\", 0, 0);\n * ...\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"myDragImage\">\n * ...\n * - The custom function to return the value of dragImage programmatically:\n * <div class=\"panel panel-default\"\n * dnd-draggable [dragEnabled]=\"true\"\n * [dragImage]=\"getDragImage(someData)\">\n * ...\n * getDragImage(value:any): string {\n * return value ? \"/images/simpler1.png\" : \"/images/simpler2.png\"\n * }\n */\n @Input() dragImage: string | DragImage | Function;\n\n \n @Input() cloneItem: boolean;\n\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig,\n cdr:ChangeDetectorRef) {\n\n super(elemRef, dragDropService, config, cdr);\n this._defaultCursor = this._elem.style.cursor;\n this.dragEnabled = true;\n }\n\n _onDragStartCallback(event: MouseEvent) {\n this._dragDropService.isDragged = true;\n this._dragDropService.dragData = this.dragData;\n this._dragDropService.onDragSuccessCallback = this.onDragSuccessCallback;\n this._elem.classList.add(this._config.onDragStartClass);\n //\n this.onDragStart.emit({dragData: this.dragData, mouseEvent: event});\n }\n\n _onDragEndCallback(event: MouseEvent) {\n this._dragDropService.isDragged = false;\n this._dragDropService.dragData = null;\n this._dragDropService.onDragSuccessCallback = null;\n this._elem.classList.remove(this._config.onDragStartClass);\n //\n this.onDragEnd.emit({dragData: this.dragData, mouseEvent: event});\n }\n}\n\n\n@Directive({ selector: '[dnd-draggable-handle]' })\nexport class DraggableHandleComponent extends AbstractHandleComponent {\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig, _Component: DraggableComponent,\n cdr:ChangeDetectorRef) {\n\n super(elemRef, dragDropService, config, _Component, cdr);\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {ChangeDetectorRef} from '@angular/core';\nimport {Directive, Input, Output, EventEmitter, ElementRef} from '@angular/core';\n\nimport {AbstractComponent} from './abstract.component';\nimport {DragDropConfig} from './dnd.config';\nimport {DragDropService, DragDropData} from './dnd.service';\n\n@Directive({ selector: '[dnd-droppable]' })\nexport class DroppableComponent extends AbstractComponent {\n\n @Input(\"dropEnabled\") set droppable(value:boolean) {\n this.dropEnabled = !!value;\n }\n\n /**\n * Callback function called when the drop action completes correctly.\n * It is activated before the on-drag-success callback.\n */\n @Output() onDropSuccess: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n @Output() onDragEnter: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n @Output() onDragOver: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n @Output() onDragLeave: EventEmitter<DragDropData> = new EventEmitter<DragDropData>();\n\n @Input(\"allowDrop\") set allowdrop(value: (dropData: any) => boolean) {\n this.allowDrop = value;\n }\n\n @Input(\"dropZones\") set dropzones(value:Array<string>) {\n this.dropZones = value;\n }\n\n /**\n * Drag allowed effect\n */\n @Input(\"effectAllowed\") set effectallowed(value: string) {\n this.effectAllowed = value;\n }\n\n /**\n * Drag effect cursor\n */\n @Input(\"effectCursor\") set effectcursor(value: string) {\n this.effectCursor = value;\n }\n\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig,\n cdr:ChangeDetectorRef) {\n\n super(elemRef, dragDropService, config, cdr);\n\n this.dropEnabled = true;\n }\n\n _onDragEnterCallback(event: MouseEvent) {\n if (this._dragDropService.isDragged) {\n this._elem.classList.add(this._config.onDragEnterClass);\n this.onDragEnter.emit({dragData: this._dragDropService.dragData, mouseEvent: event});\n }\n }\n\n _onDragOverCallback (event: MouseEvent) {\n if (this._dragDropService.isDragged) {\n this._elem.classList.add(this._config.onDragOverClass);\n this.onDragOver.emit({dragData: this._dragDropService.dragData, mouseEvent: event});\n }\n };\n\n _onDragLeaveCallback (event: MouseEvent) {\n if (this._dragDropService.isDragged) {\n this._elem.classList.remove(this._config.onDragOverClass);\n this._elem.classList.remove(this._config.onDragEnterClass);\n this.onDragLeave.emit({dragData: this._dragDropService.dragData, mouseEvent: event});\n }\n };\n\n _onDropCallback (event: MouseEvent) {\n let dataTransfer = (event as any).dataTransfer;\n if (this._dragDropService.isDragged || (dataTransfer && dataTransfer.files)) {\n this.onDropSuccess.emit({dragData: this._dragDropService.dragData, mouseEvent: event});\n if (this._dragDropService.onDragSuccessCallback) {\n this._dragDropService.onDragSuccessCallback.emit({dragData: this._dragDropService.dragData, mouseEvent: event});\n }\n this._elem.classList.remove(this._config.onDragOverClass);\n this._elem.classList.remove(this._config.onDragEnterClass);\n }\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport {ChangeDetectorRef} from '@angular/core';\nimport {Directive, Input, Output, EventEmitter, ElementRef} from '@angular/core';\nimport {FormArray} from '@angular/forms';\n\nimport {AbstractComponent, AbstractHandleComponent} from './abstract.component';\nimport {DragDropConfig} from './dnd.config';\nimport {DragDropService, DragDropSortableService} from './dnd.service';\n\n@Directive({ selector: '[dnd-sortable-container]' })\nexport class SortableContainer extends AbstractComponent {\n\n @Input(\"dragEnabled\") set draggable(value:boolean) {\n this.dragEnabled = !!value;\n }\n\n private _sortableData: Array<any>|FormArray = [];\n private sortableHandler: SortableFormArrayHandler|SortableArrayHandler;\n\n @Input() set sortableData(sortableData: Array<any>|FormArray) {\n this._sortableData = sortableData;\n if (sortableData instanceof FormArray) {\n this.sortableHandler = new SortableFormArrayHandler();\n } else {\n this.sortableHandler = new SortableArrayHandler();\n }\n //\n this.dropEnabled = !!this._sortableData;\n // console.log(\"collection is changed, drop enabled: \" + this.dropEnabled);\n }\n get sortableData(): Array<any>|FormArray {\n return this._sortableData;\n }\n\n @Input(\"dropZones\") set dropzones(value:Array<string>) {\n this.dropZones = value;\n }\n\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig, cdr:ChangeDetectorRef,\n private _sortableDataService: DragDropSortableService) {\n\n super(elemRef, dragDropService, config, cdr);\n this.dragEnabled = false;\n }\n\n _onDragEnterCallback(event: Event) {\n if (this._sortableDataService.isDragged) {\n let item:any = this._sortableDataService.sortableContainer.getItemAt(this._sortableDataService.index);\n // Check does element exist in sortableData of this Container\n if (this.indexOf(item) === -1) {\n // Let's add it\n // console.log('Container._onDragEnterCallback. drag node [' + this._sortableDataService.index.toString() + '] over parent node');\n // Remove item from previouse list\n this._sortableDataService.sortableContainer.removeItemAt(this._sortableDataService.index);\n if (this._sortableDataService.sortableContainer._sortableData.length === 0) {\n this._sortableDataService.sortableContainer.dropEnabled = true;\n }\n // Add item to new list\n this.insertItemAt(item, 0);\n this._sortableDataService.sortableContainer = this;\n this._sortableDataService.index = 0;\n }\n // Refresh changes in properties of container component\n this.detectChanges();\n }\n }\n\n getItemAt(index: number): any {\n return this.sortableHandler.getItemAt(this._sortableData, index);\n }\n\n indexOf(item: any): number {\n return this.sortableHandler.indexOf(this._sortableData, item);\n }\n\n removeItemAt(index: number): void {\n this.sortableHandler.removeItemAt(this._sortableData, index);\n }\n\n insertItemAt(item: any, index: number) {\n this.sortableHandler.insertItemAt(this._sortableData, item, index);\n }\n}\n\nclass SortableArrayHandler {\n getItemAt(sortableData: any, index: number): any {\n return sortableData[index];\n }\n\n indexOf(sortableData: any, item: any): number {\n return sortableData.indexOf(item);\n }\n\n removeItemAt(sortableData: any, index: number) {\n sortableData.splice(index, 1);\n }\n\n insertItemAt(sortableData: any, item: any, index: number) {\n sortableData.splice(index, 0, item);\n }\n}\n\nclass SortableFormArrayHandler {\n getItemAt(sortableData: any, index: number): any {\n return sortableData.at(index);\n }\n\n indexOf(sortableData: any, item: any): number {\n return sortableData.controls.indexOf(item);\n }\n\n removeItemAt(sortableData: any, index: number) {\n sortableData.removeAt(index);\n }\n\n insertItemAt(sortableData: any, item: any, index: number) {\n sortableData.insert(index, item);\n }\n}\n\n@Directive({ selector: '[dnd-sortable]' })\nexport class SortableComponent extends AbstractComponent {\n\n @Input('sortableIndex') index: number;\n\n @Input(\"dragEnabled\") set draggable(value:boolean) {\n this.dragEnabled = !!value;\n }\n\n @Input(\"dropEnabled\") set droppable(value:boolean) {\n this.dropEnabled = !!value;\n }\n\n /**\n * The data that has to be dragged. It can be any JS object\n */\n @Input() dragData: any;\n\n /**\n * Drag allowed effect\n */\n @Input(\"effectAllowed\") set effectallowed(value: string) {\n this.effectAllowed = value;\n }\n\n /**\n * Drag effect cursor\n */\n @Input(\"effectCursor\") set effectcursor(value: string) {\n this.effectCursor = value;\n }\n\n /**\n * Callback function called when the drag action ends with a valid drop action.\n * It is activated after the on-drop-success callback\n */\n @Output(\"onDragSuccess\") onDragSuccessCallback: EventEmitter<any> = new EventEmitter<any>();\n\n @Output(\"onDragStart\") onDragStartCallback: EventEmitter<any> = new EventEmitter<any>();\n @Output(\"onDragOver\") onDragOverCallback: EventEmitter<any> = new EventEmitter<any>();\n @Output(\"onDragEnd\") onDragEndCallback: EventEmitter<any> = new EventEmitter<any>();\n @Output(\"onDropSuccess\") onDropSuccessCallback: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig,\n private _sortableContainer: SortableContainer,\n private _sortableDataService: DragDropSortableService,\n cdr:ChangeDetectorRef) {\n super(elemRef, dragDropService, config, cdr);\n this.dropZones = this._sortableContainer.dropZones;\n this.dragEnabled = true;\n this.dropEnabled = true;\n }\n\n _onDragStartCallback(event: Event) {\n // console.log('_onDragStartCallback. dragging elem with index ' + this.index);\n this._sortableDataService.isDragged = true;\n this._sortableDataService.sortableContainer = this._sortableContainer;\n this._sortableDataService.index = this.index;\n this._sortableDataService.markSortable(this._elem);\n // Add dragData\n this._dragDropService.isDragged = true;\n this._dragDropService.dragData = this.dragData;\n this._dragDropService.onDragSuccessCallback = this.onDragSuccessCallback;\n //\n this.onDragStartCallback.emit(this._dragDropService.dragData);\n }\n\n _onDragOverCallback(event: Event) {\n if (this._sortableDataService.isDragged && this._elem !== this._sortableDataService.elem) {\n // console.log('_onDragOverCallback. dragging elem with index ' + this.index);\n this._sortableDataService.sortableContainer = this._sortableContainer;\n this._sortableDataService.index = this.index;\n this._sortableDataService.markSortable(this._elem);\n this.onDragOverCallback.emit(this._dragDropService.dragData);\n }\n }\n\n _onDragEndCallback(event: Event) {\n // console.log('_onDragEndCallback. end dragging elem with index ' + this.index);\n this._sortableDataService.isDragged = false;\n this._sortableDataService.sortableContainer = null;\n this._sortableDataService.index = null;\n this._sortableDataService.markSortable(null);\n // Add dragGata\n this._dragDropService.isDragged = false;\n this._dragDropService.dragData = null;\n this._dragDropService.onDragSuccessCallback = null;\n //\n this.onDragEndCallback.emit(this._dragDropService.dragData);\n }\n\n _onDragEnterCallback(event: Event) {\n if (this._sortableDataService.isDragged) {\n this._sortableDataService.markSortable(this._elem);\n if ((this.index !== this._sortableDataService.index) ||\n (this._sortableDataService.sortableContainer.sortableData !== this._sortableContainer.sortableData)) {\n // console.log('Component._onDragEnterCallback. drag node [' + this.index + '] over node [' + this._sortableDataService.index + ']');\n // Get item\n let item:any = this._sortableDataService.sortableContainer.getItemAt(this._sortableDataService.index);\n // Remove item from previouse list\n this._sortableDataService.sortableContainer.removeItemAt(this._sortableDataService.index);\n if (this._sortableDataService.sortableContainer.sortableData.length === 0) {\n this._sortableDataService.sortableContainer.dropEnabled = true;\n }\n // Add item to new list\n this._sortableContainer.insertItemAt(item, this.index);\n if (this._sortableContainer.dropEnabled) {\n this._sortableContainer.dropEnabled = false;\n }\n this._sortableDataService.sortableContainer = this._sortableContainer;\n this._sortableDataService.index = this.index;\n this.detectChanges();\n }\n }\n }\n\n _onDropCallback (event: Event) {\n if (this._sortableDataService.isDragged) {\n // console.log('onDropCallback.onDropSuccessCallback.dragData', this._dragDropService.dragData);\n this.onDropSuccessCallback.emit(this._dragDropService.dragData);\n if (this._dragDropService.onDragSuccessCallback) {\n // console.log('onDropCallback.onDragSuccessCallback.dragData', this._dragDropService.dragData);\n this._dragDropService.onDragSuccessCallback.emit(this._dragDropService.dragData);\n }\n // Refresh changes in properties of container component\n this._sortableContainer.detectChanges();\n }\n }\n}\n\n@Directive({ selector: '[dnd-sortable-handle]' })\nexport class SortableHandleComponent extends AbstractHandleComponent {\n constructor(elemRef: ElementRef, dragDropService: DragDropService, config:DragDropConfig, _Component: SortableComponent,\n cdr:ChangeDetectorRef) {\n\n super(elemRef, dragDropService, config, _Component, cdr);\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\n\nimport {DragDropConfig} from './dnd.config';\nimport {DragDropService, DragDropSortableService, dragDropServiceFactory, dragDropSortableServiceFactory} from './dnd.service';\nimport {DraggableComponent, DraggableHandleComponent} from './draggable.component';\nimport {DroppableComponent} from './droppable.component';\nimport {SortableContainer, SortableComponent, SortableHandleComponent} from './sortable.component';\n\nexport * from './abstract.component';\nexport * from './dnd.config';\nexport * from './dnd.service';\nexport * from './draggable.component';\nexport * from './droppable.component';\nexport * from './sortable.component';\n\nexport let providers = [\n DragDropConfig,\n { provide: DragDropService, useFactory: dragDropServiceFactory },\n { provide: DragDropSortableService, useFactory: dragDropSortableServiceFactory, deps: [DragDropConfig] }\n];\n\n@NgModule({\n declarations: [DraggableComponent, DraggableHandleComponent, DroppableComponent, SortableContainer, SortableComponent, SortableHandleComponent],\n exports : [DraggableComponent, DraggableHandleComponent, DroppableComponent, SortableContainer, SortableComponent, SortableHandleComponent],\n\n})\nexport class DndModule {\n static forRoot(): ModuleWithProviders<DndModule> {\n return {\n ngModule: DndModule,\n providers: providers\n };\n }\n}\n","// Copyright (C) 2016-2020 Sergey Akopkokhyants\n// This project is licensed under the terms of the MIT license.\n// https://github.com/akserg/ng2-dnd\n\nexport * from './src/dnd.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DragDropService","Injectable","DragDropSortableService","AbstractComponent","DraggableComponent","EventEmitter","Input","Output","Directive","DraggableHandleComponent","DroppableComponent","SortableContainer","FormArray","SortableComponent","SortableHandleComponent","DndModule","NgModule"],"mappings":"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"}
\No newline at end of file