1 | {"version":3,"file":"angular-resizable-element.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/angular-resizable-element/src/lib/util/is-touch-device.ts","../../../projects/angular-resizable-element/src/lib/util/clone-node.ts","../../../projects/angular-resizable-element/src/lib/resizable.directive.ts","../../../projects/angular-resizable-element/src/lib/resize-handle.directive.ts","../../../projects/angular-resizable-element/src/lib/resizable.module.ts","../../../projects/angular-resizable-element/src/public-api.ts","../../../projects/angular-resizable-element/src/angular-resizable-element.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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * @hidden\n */\nexport const IS_TOUCH_DEVICE: boolean = (() => {\n // In case we're in Node.js environment.\n if (typeof window === 'undefined') {\n return false;\n } else {\n return (\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0\n );\n }\n})();\n","/** Creates a deep clone of an element. */\nexport function deepCloneNode(node: HTMLElement): HTMLElement {\n const clone = node.cloneNode(true) as HTMLElement;\n const descendantsWithId = clone.querySelectorAll('[id]');\n const nodeName = node.nodeName.toLowerCase();\n\n // Remove the `id` to avoid having multiple elements with the same id on the page.\n clone.removeAttribute('id');\n\n descendantsWithId.forEach((descendant) => {\n descendant.removeAttribute('id');\n });\n\n if (nodeName === 'canvas') {\n transferCanvasData(node as HTMLCanvasElement, clone as HTMLCanvasElement);\n } else if (\n nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'textarea'\n ) {\n transferInputData(node as HTMLInputElement, clone as HTMLInputElement);\n }\n\n transferData('canvas', node, clone, transferCanvasData);\n transferData('input, textarea, select', node, clone, transferInputData);\n return clone;\n}\n\n/** Matches elements between an element and its clone and allows for their data to be cloned. */\nfunction transferData<T extends Element>(\n selector: string,\n node: HTMLElement,\n clone: HTMLElement,\n callback: (source: T, clone: T) => void\n) {\n const descendantElements = node.querySelectorAll<T>(selector);\n\n if (descendantElements.length) {\n const cloneElements = clone.querySelectorAll<T>(selector);\n\n for (let i = 0; i < descendantElements.length; i++) {\n callback(descendantElements[i], cloneElements[i]);\n }\n }\n}\n\n// Counter for unique cloned radio button names.\nlet cloneUniqueId = 0;\n\n/** Transfers the data of one input element to another. */\nfunction transferInputData(\n source: Element & { value: string },\n clone: Element & { value: string; name: string; type: string }\n) {\n // Browsers throw an error when assigning the value of a file input programmatically.\n if (clone.type !== 'file') {\n clone.value = source.value;\n }\n\n // Radio button `name` attributes must be unique for radio button groups\n // otherwise original radio buttons can lose their checked state\n // once the clone is inserted in the DOM.\n if (clone.type === 'radio' && clone.name) {\n clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;\n }\n}\n\n/** Transfers the data of one canvas element to another. */\nfunction transferCanvasData(\n source: HTMLCanvasElement,\n clone: HTMLCanvasElement\n) {\n const context = clone.getContext('2d');\n\n if (context) {\n // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0).\n // We can't do much about it so just ignore the error.\n try {\n context.drawImage(source, 0, 0);\n } catch {}\n }\n}\n","import {\n Directive,\n Renderer2,\n ElementRef,\n OnInit,\n Output,\n Input,\n EventEmitter,\n OnDestroy,\n NgZone,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, Observable, Observer, merge } from 'rxjs';\nimport {\n map,\n mergeMap,\n takeUntil,\n filter,\n pairwise,\n take,\n share,\n tap,\n} from 'rxjs/operators';\nimport { Edges } from './interfaces/edges.interface';\nimport { BoundingRectangle } from './interfaces/bounding-rectangle.interface';\nimport { ResizeEvent } from './interfaces/resize-event.interface';\nimport { IS_TOUCH_DEVICE } from './util/is-touch-device';\nimport { deepCloneNode } from './util/clone-node';\n\ninterface PointerEventCoordinate {\n clientX: number;\n clientY: number;\n event: MouseEvent | TouchEvent;\n}\n\ninterface Coordinate {\n x: number;\n y: number;\n}\n\nfunction getNewBoundingRectangle(\n startingRect: BoundingRectangle,\n edges: Edges,\n clientX: number,\n clientY: number\n): BoundingRectangle {\n const newBoundingRect: BoundingRectangle = {\n top: startingRect.top,\n bottom: startingRect.bottom,\n left: startingRect.left,\n right: startingRect.right,\n };\n\n if (edges.top) {\n newBoundingRect.top += clientY;\n }\n if (edges.bottom) {\n newBoundingRect.bottom += clientY;\n }\n if (edges.left) {\n newBoundingRect.left += clientX;\n }\n if (edges.right) {\n newBoundingRect.right += clientX;\n }\n newBoundingRect.height = newBoundingRect.bottom - newBoundingRect.top;\n newBoundingRect.width = newBoundingRect.right - newBoundingRect.left;\n\n return newBoundingRect;\n}\n\nfunction getElementRect(\n element: ElementRef,\n ghostElementPositioning: string\n): BoundingRectangle {\n let translateX = 0;\n let translateY = 0;\n const style = element.nativeElement.style;\n const transformProperties = [\n 'transform',\n '-ms-transform',\n '-moz-transform',\n '-o-transform',\n ];\n const transform = transformProperties\n .map((property) => style[property])\n .find((value) => !!value);\n if (transform && transform.includes('translate')) {\n translateX = transform.replace(\n /.*translate3?d?\\((-?[0-9]*)px, (-?[0-9]*)px.*/,\n '$1'\n );\n translateY = transform.replace(\n /.*translate3?d?\\((-?[0-9]*)px, (-?[0-9]*)px.*/,\n '$2'\n );\n }\n\n if (ghostElementPositioning === 'absolute') {\n return {\n height: element.nativeElement.offsetHeight,\n width: element.nativeElement.offsetWidth,\n top: element.nativeElement.offsetTop - translateY,\n bottom:\n element.nativeElement.offsetHeight +\n element.nativeElement.offsetTop -\n translateY,\n left: element.nativeElement.offsetLeft - translateX,\n right:\n element.nativeElement.offsetWidth +\n element.nativeElement.offsetLeft -\n translateX,\n };\n } else {\n const boundingRect: BoundingRectangle =\n element.nativeElement.getBoundingClientRect();\n return {\n height: boundingRect.height,\n width: boundingRect.width,\n top: boundingRect.top - translateY,\n bottom: boundingRect.bottom - translateY,\n left: boundingRect.left - translateX,\n right: boundingRect.right - translateX,\n scrollTop: element.nativeElement.scrollTop,\n scrollLeft: element.nativeElement.scrollLeft,\n };\n }\n}\n\nexport interface ResizeCursors {\n topLeft: string;\n topRight: string;\n bottomLeft: string;\n bottomRight: string;\n leftOrRight: string;\n topOrBottom: string;\n}\n\nconst DEFAULT_RESIZE_CURSORS: ResizeCursors = Object.freeze({\n topLeft: 'nw-resize',\n topRight: 'ne-resize',\n bottomLeft: 'sw-resize',\n bottomRight: 'se-resize',\n leftOrRight: 'col-resize',\n topOrBottom: 'row-resize',\n});\n\nfunction getResizeCursor(edges: Edges, cursors: ResizeCursors): string {\n if (edges.left && edges.top) {\n return cursors.topLeft;\n } else if (edges.right && edges.top) {\n return cursors.topRight;\n } else if (edges.left && edges.bottom) {\n return cursors.bottomLeft;\n } else if (edges.right && edges.bottom) {\n return cursors.bottomRight;\n } else if (edges.left || edges.right) {\n return cursors.leftOrRight;\n } else if (edges.top || edges.bottom) {\n return cursors.topOrBottom;\n } else {\n return '';\n }\n}\n\nfunction getEdgesDiff({\n edges,\n initialRectangle,\n newRectangle,\n}: {\n edges: Edges;\n initialRectangle: BoundingRectangle;\n newRectangle: BoundingRectangle;\n}): Edges {\n const edgesDiff: Edges = {};\n Object.keys(edges).forEach((edge) => {\n edgesDiff[edge] = (newRectangle[edge] || 0) - (initialRectangle[edge] || 0);\n });\n return edgesDiff;\n}\n\nconst RESIZE_ACTIVE_CLASS: string = 'resize-active';\nconst RESIZE_GHOST_ELEMENT_CLASS: string = 'resize-ghost-element';\n\nexport const MOUSE_MOVE_THROTTLE_MS: number = 50;\n\n/**\n * Place this on an element to make it resizable. For example:\n *\n * ```html\n * <div\n * mwlResizable\n * [resizeEdges]=\"{bottom: true, right: true, top: true, left: true}\"\n * [enableGhostResize]=\"true\">\n * </div>\n * ```\n * Or in case they are sibling elements:\n * ```html\n * <div mwlResizable #resizableElement=\"mwlResizable\"></div>\n * <div mwlResizeHandle [resizableContainer]=\"resizableElement\" [resizeEdges]=\"{bottom: true, right: true}\"></div>\n * ```\n */\n@Directive({\n selector: '[mwlResizable]',\n exportAs: 'mwlResizable',\n})\nexport class ResizableDirective implements OnInit, OnDestroy {\n /**\n * A function that will be called before each resize event. Return `true` to allow the resize event to propagate or `false` to cancel it\n */\n @Input() validateResize: (resizeEvent: ResizeEvent) => boolean;\n\n /**\n * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events.\n */\n @Input() enableGhostResize: boolean = false;\n\n /**\n * A snap grid that resize events will be locked to.\n *\n * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}`\n */\n @Input() resizeSnapGrid: Edges = {};\n\n /**\n * The mouse cursors that will be set on the resize edges\n */\n @Input() resizeCursors: ResizeCursors = DEFAULT_RESIZE_CURSORS;\n\n /**\n * Define the positioning of the ghost element (can be fixed or absolute)\n */\n @Input() ghostElementPositioning: 'fixed' | 'absolute' = 'fixed';\n\n /**\n * Allow elements to be resized to negative dimensions\n */\n @Input() allowNegativeResizes: boolean = false;\n\n /**\n * The mouse move throttle in milliseconds, default: 50 ms\n */\n @Input() mouseMoveThrottleMS: number = MOUSE_MOVE_THROTTLE_MS;\n\n /**\n * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object.\n */\n @Output() resizeStart = new EventEmitter<ResizeEvent>();\n\n /**\n * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object.\n */\n @Output() resizing = new EventEmitter<ResizeEvent>();\n\n /**\n * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object.\n */\n @Output() resizeEnd = new EventEmitter<ResizeEvent>();\n\n /**\n * @hidden\n */\n public mouseup = new Subject<{\n clientX: number;\n clientY: number;\n edges?: Edges;\n }>();\n\n /**\n * @hidden\n */\n public mousedown = new Subject<{\n clientX: number;\n clientY: number;\n edges?: Edges;\n }>();\n\n /**\n * @hidden\n */\n public mousemove = new Subject<{\n clientX: number;\n clientY: number;\n edges?: Edges;\n event: MouseEvent | TouchEvent;\n }>();\n\n private pointerEventListeners: PointerEventListeners;\n\n private destroy$ = new Subject<void>();\n\n /**\n * @hidden\n */\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public elm: ElementRef,\n private zone: NgZone\n ) {\n this.pointerEventListeners = PointerEventListeners.getInstance(\n renderer,\n zone\n );\n }\n\n /**\n * @hidden\n */\n ngOnInit(): void {\n const mousedown$: Observable<{\n clientX: number;\n clientY: number;\n edges?: Edges;\n }> = merge(this.pointerEventListeners.pointerDown, this.mousedown);\n\n const mousemove$ = merge(\n this.pointerEventListeners.pointerMove,\n this.mousemove\n ).pipe(\n tap(({ event }) => {\n if (currentResize) {\n try {\n event.preventDefault();\n } catch (e) {\n // just adding try-catch not to see errors in console if there is a passive listener for same event somewhere\n // browser does nothing except of writing errors to console\n }\n }\n }),\n share()\n );\n\n const mouseup$ = merge(this.pointerEventListeners.pointerUp, this.mouseup);\n\n let currentResize: {\n edges: Edges;\n startingRect: BoundingRectangle;\n currentRect: BoundingRectangle;\n clonedNode?: HTMLElement;\n } | null;\n\n const removeGhostElement = () => {\n if (currentResize && currentResize.clonedNode) {\n this.elm.nativeElement.parentElement.removeChild(\n currentResize.clonedNode\n );\n this.renderer.setStyle(this.elm.nativeElement, 'visibility', 'inherit');\n }\n };\n\n const getResizeCursors = (): ResizeCursors => {\n return {\n ...DEFAULT_RESIZE_CURSORS,\n ...this.resizeCursors,\n };\n };\n\n const mousedrag: Observable<any> = mousedown$\n .pipe(\n mergeMap((startCoords) => {\n function getDiff(moveCoords: { clientX: number; clientY: number }) {\n return {\n clientX: moveCoords.clientX - startCoords.clientX,\n clientY: moveCoords.clientY - startCoords.clientY,\n };\n }\n\n const getSnapGrid = () => {\n const snapGrid: Coordinate = { x: 1, y: 1 };\n\n if (currentResize) {\n if (this.resizeSnapGrid.left && currentResize.edges.left) {\n snapGrid.x = +this.resizeSnapGrid.left;\n } else if (\n this.resizeSnapGrid.right &&\n currentResize.edges.right\n ) {\n snapGrid.x = +this.resizeSnapGrid.right;\n }\n\n if (this.resizeSnapGrid.top && currentResize.edges.top) {\n snapGrid.y = +this.resizeSnapGrid.top;\n } else if (\n this.resizeSnapGrid.bottom &&\n currentResize.edges.bottom\n ) {\n snapGrid.y = +this.resizeSnapGrid.bottom;\n }\n }\n\n return snapGrid;\n };\n\n function getGrid(\n coords: { clientX: number; clientY: number },\n snapGrid: Coordinate\n ) {\n return {\n x: Math.ceil(coords.clientX / snapGrid.x),\n y: Math.ceil(coords.clientY / snapGrid.y),\n };\n }\n\n return (\n merge(\n mousemove$.pipe(take(1)).pipe(map((coords) => [, coords])),\n mousemove$.pipe(pairwise())\n ) as Observable<\n [\n { clientX: number; clientY: number },\n { clientX: number; clientY: number }\n ]\n >\n )\n .pipe(\n map(([previousCoords, newCoords]) => {\n return [\n previousCoords ? getDiff(previousCoords) : previousCoords,\n getDiff(newCoords),\n ];\n })\n )\n .pipe(\n filter(([previousCoords, newCoords]) => {\n if (!previousCoords) {\n return true;\n }\n\n const snapGrid: Coordinate = getSnapGrid();\n const previousGrid: Coordinate = getGrid(\n previousCoords,\n snapGrid\n );\n const newGrid: Coordinate = getGrid(newCoords, snapGrid);\n\n return (\n previousGrid.x !== newGrid.x || previousGrid.y !== newGrid.y\n );\n })\n )\n .pipe(\n map(([, newCoords]) => {\n const snapGrid: Coordinate = getSnapGrid();\n return {\n clientX:\n Math.round(newCoords.clientX / snapGrid.x) * snapGrid.x,\n clientY:\n Math.round(newCoords.clientY / snapGrid.y) * snapGrid.y,\n };\n })\n )\n .pipe(takeUntil(merge(mouseup$, mousedown$)));\n })\n )\n .pipe(filter(() => !!currentResize));\n\n mousedrag\n .pipe(\n map(({ clientX, clientY }) => {\n return getNewBoundingRectangle(\n currentResize!.startingRect,\n currentResize!.edges,\n clientX,\n clientY\n );\n })\n )\n .pipe(\n filter((newBoundingRect: BoundingRectangle) => {\n return (\n this.allowNegativeResizes ||\n !!(\n newBoundingRect.height &&\n newBoundingRect.width &&\n newBoundingRect.height > 0 &&\n newBoundingRect.width > 0\n )\n );\n })\n )\n .pipe(\n filter((newBoundingRect: BoundingRectangle) => {\n return this.validateResize\n ? this.validateResize({\n rectangle: newBoundingRect,\n edges: getEdgesDiff({\n edges: currentResize!.edges,\n initialRectangle: currentResize!.startingRect,\n newRectangle: newBoundingRect,\n }),\n })\n : true;\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((newBoundingRect: BoundingRectangle) => {\n if (currentResize && currentResize.clonedNode) {\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'height',\n `${newBoundingRect.height}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'width',\n `${newBoundingRect.width}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'top',\n `${newBoundingRect.top}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'left',\n `${newBoundingRect.left}px`\n );\n }\n\n if (this.resizing.observers.length > 0) {\n this.zone.run(() => {\n this.resizing.emit({\n edges: getEdgesDiff({\n edges: currentResize!.edges,\n initialRectangle: currentResize!.startingRect,\n newRectangle: newBoundingRect,\n }),\n rectangle: newBoundingRect,\n });\n });\n }\n currentResize!.currentRect = newBoundingRect;\n });\n\n mousedown$\n .pipe(\n map(({ edges }) => {\n return edges || {};\n }),\n filter((edges: Edges) => {\n return Object.keys(edges).length > 0;\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((edges: Edges) => {\n if (currentResize) {\n removeGhostElement();\n }\n const startingRect: BoundingRectangle = getElementRect(\n this.elm,\n this.ghostElementPositioning\n );\n currentResize = {\n edges,\n startingRect,\n currentRect: startingRect,\n };\n const resizeCursors = getResizeCursors();\n const cursor = getResizeCursor(currentResize.edges, resizeCursors);\n this.renderer.setStyle(document.body, 'cursor', cursor);\n this.setElementClass(this.elm, RESIZE_ACTIVE_CLASS, true);\n if (this.enableGhostResize) {\n currentResize.clonedNode = deepCloneNode(this.elm.nativeElement);\n this.elm.nativeElement.parentElement.appendChild(\n currentResize.clonedNode\n );\n this.renderer.setStyle(\n this.elm.nativeElement,\n 'visibility',\n 'hidden'\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'position',\n this.ghostElementPositioning\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'left',\n `${currentResize.startingRect.left}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'top',\n `${currentResize.startingRect.top}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'height',\n `${currentResize.startingRect.height}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'width',\n `${currentResize.startingRect.width}px`\n );\n this.renderer.setStyle(\n currentResize.clonedNode,\n 'cursor',\n getResizeCursor(currentResize.edges, resizeCursors)\n );\n this.renderer.addClass(\n currentResize.clonedNode,\n RESIZE_GHOST_ELEMENT_CLASS\n );\n currentResize.clonedNode!.scrollTop = currentResize.startingRect\n .scrollTop as number;\n currentResize.clonedNode!.scrollLeft = currentResize.startingRect\n .scrollLeft as number;\n }\n if (this.resizeStart.observers.length > 0) {\n this.zone.run(() => {\n this.resizeStart.emit({\n edges: getEdgesDiff({\n edges,\n initialRectangle: startingRect,\n newRectangle: startingRect,\n }),\n rectangle: getNewBoundingRectangle(startingRect, {}, 0, 0),\n });\n });\n }\n });\n\n mouseup$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (currentResize) {\n this.renderer.removeClass(this.elm.nativeElement, RESIZE_ACTIVE_CLASS);\n this.renderer.setStyle(document.body, 'cursor', '');\n this.renderer.setStyle(this.elm.nativeElement, 'cursor', '');\n if (this.resizeEnd.observers.length > 0) {\n this.zone.run(() => {\n this.resizeEnd.emit({\n edges: getEdgesDiff({\n edges: currentResize!.edges,\n initialRectangle: currentResize!.startingRect,\n newRectangle: currentResize!.currentRect,\n }),\n rectangle: currentResize!.currentRect,\n });\n });\n }\n removeGhostElement();\n currentResize = null;\n }\n });\n }\n\n /**\n * @hidden\n */\n ngOnDestroy(): void {\n // browser check for angular universal, because it doesn't know what document is\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.setStyle(document.body, 'cursor', '');\n }\n this.mousedown.complete();\n this.mouseup.complete();\n this.mousemove.complete();\n this.destroy$.next();\n }\n\n private setElementClass(elm: ElementRef, name: string, add: boolean): void {\n if (add) {\n this.renderer.addClass(elm.nativeElement, name);\n } else {\n this.renderer.removeClass(elm.nativeElement, name);\n }\n }\n}\n\nclass PointerEventListeners {\n public pointerDown: Observable<PointerEventCoordinate>;\n\n public pointerMove: Observable<PointerEventCoordinate>;\n\n public pointerUp: Observable<PointerEventCoordinate>;\n\n private static instance: PointerEventListeners;\n\n public static getInstance(\n renderer: Renderer2,\n zone: NgZone\n ): PointerEventListeners {\n if (!PointerEventListeners.instance) {\n PointerEventListeners.instance = new PointerEventListeners(\n renderer,\n zone\n );\n }\n return PointerEventListeners.instance;\n }\n\n constructor(renderer: Renderer2, zone: NgZone) {\n this.pointerDown = new Observable(\n (observer: Observer<PointerEventCoordinate>) => {\n let unsubscribeMouseDown: () => void;\n let unsubscribeTouchStart: (() => void) | undefined;\n\n zone.runOutsideAngular(() => {\n unsubscribeMouseDown = renderer.listen(\n 'document',\n 'mousedown',\n (event: MouseEvent) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n }\n );\n\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchStart = renderer.listen(\n 'document',\n 'touchstart',\n (event: TouchEvent) => {\n observer.next({\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n event,\n });\n }\n );\n }\n });\n\n return () => {\n unsubscribeMouseDown();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchStart!();\n }\n };\n }\n ).pipe(share());\n\n this.pointerMove = new Observable(\n (observer: Observer<PointerEventCoordinate>) => {\n let unsubscribeMouseMove: () => void;\n let unsubscribeTouchMove: (() => void) | undefined;\n\n zone.runOutsideAngular(() => {\n unsubscribeMouseMove = renderer.listen(\n 'document',\n 'mousemove',\n (event: MouseEvent) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n }\n );\n\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchMove = renderer.listen(\n 'document',\n 'touchmove',\n (event: TouchEvent) => {\n observer.next({\n clientX: event.targetTouches[0].clientX,\n clientY: event.targetTouches[0].clientY,\n event,\n });\n }\n );\n }\n });\n\n return () => {\n unsubscribeMouseMove();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchMove!();\n }\n };\n }\n ).pipe(share());\n\n this.pointerUp = new Observable(\n (observer: Observer<PointerEventCoordinate>) => {\n let unsubscribeMouseUp: () => void;\n let unsubscribeTouchEnd: (() => void) | undefined;\n let unsubscribeTouchCancel: (() => void) | undefined;\n\n zone.runOutsideAngular(() => {\n unsubscribeMouseUp = renderer.listen(\n 'document',\n 'mouseup',\n (event: MouseEvent) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n }\n );\n\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchEnd = renderer.listen(\n 'document',\n 'touchend',\n (event: TouchEvent) => {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event,\n });\n }\n );\n\n unsubscribeTouchCancel = renderer.listen(\n 'document',\n 'touchcancel',\n (event: TouchEvent) => {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event,\n });\n }\n );\n }\n });\n\n return () => {\n unsubscribeMouseUp();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchEnd!();\n unsubscribeTouchCancel!();\n }\n };\n }\n ).pipe(share());\n }\n}\n","import {\n Directive,\n Input,\n Renderer2,\n ElementRef,\n OnInit,\n OnDestroy,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ResizableDirective } from './resizable.directive';\nimport { Edges } from './interfaces/edges.interface';\nimport { IS_TOUCH_DEVICE } from './util/is-touch-device';\n\n/**\n * An element placed inside a `mwlResizable` directive to be used as a drag and resize handle\n *\n * For example\n *\n * ```html\n * <div mwlResizable>\n * <div mwlResizeHandle [resizeEdges]=\"{bottom: true, right: true}\"></div>\n * </div>\n * ```\n * Or in case they are sibling elements:\n * ```html\n * <div mwlResizable #resizableElement=\"mwlResizable\"></div>\n * <div mwlResizeHandle [resizableContainer]=\"resizableElement\" [resizeEdges]=\"{bottom: true, right: true}\"></div>\n * ```\n */\n@Directive({\n selector: '[mwlResizeHandle]',\n})\nexport class ResizeHandleDirective implements OnInit, OnDestroy {\n /**\n * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on\n */\n @Input() resizeEdges: Edges = {};\n /**\n * Reference to ResizableDirective in case if handle is not located inside of element with ResizableDirective\n */\n @Input() resizableContainer: ResizableDirective;\n\n private eventListeners: {\n touchmove?: () => void;\n mousemove?: () => void;\n [key: string]: (() => void) | undefined;\n } = {};\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private zone: NgZone,\n @Optional() private resizableDirective: ResizableDirective\n ) {}\n\n ngOnInit(): void {\n this.zone.runOutsideAngular(() => {\n this.listenOnTheHost<MouseEvent>('mousedown').subscribe((event) => {\n this.onMousedown(event, event.clientX, event.clientY);\n });\n\n this.listenOnTheHost<MouseEvent>('mouseup').subscribe((event) => {\n this.onMouseup(event.clientX, event.clientY);\n });\n\n if (IS_TOUCH_DEVICE) {\n this.listenOnTheHost<TouchEvent>('touchstart').subscribe((event) => {\n this.onMousedown(\n event,\n event.touches[0].clientX,\n event.touches[0].clientY\n );\n });\n\n merge(\n this.listenOnTheHost<TouchEvent>('touchend'),\n this.listenOnTheHost<TouchEvent>('touchcancel')\n ).subscribe((event) => {\n this.onMouseup(\n event.changedTouches[0].clientX,\n event.changedTouches[0].clientY\n );\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.unsubscribeEventListeners();\n }\n\n /**\n * @hidden\n */\n onMousedown(\n event: MouseEvent | TouchEvent,\n clientX: number,\n clientY: number\n ): void {\n event.preventDefault();\n if (!this.eventListeners.touchmove) {\n this.eventListeners.touchmove = this.renderer.listen(\n this.element.nativeElement,\n 'touchmove',\n (touchMoveEvent: TouchEvent) => {\n this.onMousemove(\n touchMoveEvent,\n touchMoveEvent.targetTouches[0].clientX,\n touchMoveEvent.targetTouches[0].clientY\n );\n }\n );\n }\n if (!this.eventListeners.mousemove) {\n this.eventListeners.mousemove = this.renderer.listen(\n this.element.nativeElement,\n 'mousemove',\n (mouseMoveEvent: MouseEvent) => {\n this.onMousemove(\n mouseMoveEvent,\n mouseMoveEvent.clientX,\n mouseMoveEvent.clientY\n );\n }\n );\n }\n this.resizable.mousedown.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n });\n }\n\n /**\n * @hidden\n */\n onMouseup(clientX: number, clientY: number): void {\n this.unsubscribeEventListeners();\n this.resizable.mouseup.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n });\n }\n\n // directive might be passed from DI or as an input\n private get resizable(): ResizableDirective {\n return this.resizableDirective || this.resizableContainer;\n }\n\n private onMousemove(\n event: MouseEvent | TouchEvent,\n clientX: number,\n clientY: number\n ): void {\n this.resizable.mousemove.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n event,\n });\n }\n\n private unsubscribeEventListeners(): void {\n Object.keys(this.eventListeners).forEach((type) => {\n (this as any).eventListeners[type]();\n delete this.eventListeners[type];\n });\n }\n\n private listenOnTheHost<T extends Event>(eventName: string) {\n return fromEvent<T>(this.element.nativeElement, eventName).pipe(\n takeUntil(this.destroy$)\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ResizableDirective } from './resizable.directive';\nimport { ResizeHandleDirective } from './resize-handle.directive';\n\n@NgModule({\n declarations: [ResizableDirective, ResizeHandleDirective],\n exports: [ResizableDirective, ResizeHandleDirective],\n})\nexport class ResizableModule {}\n","/*\n * Public API Surface of angular-resizable-element\n */\n\nexport * from './lib/resizable.module';\nexport { BoundingRectangle } from './lib/interfaces/bounding-rectangle.interface';\nexport { Edges } from './lib/interfaces/edges.interface';\nexport { ResizeEvent } from './lib/interfaces/resize-event.interface';\nexport { ResizableDirective } from './lib/resizable.directive';\nexport { ResizeHandleDirective } from './lib/resize-handle.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Subject","merge","tap","share","mergeMap","take","map","pairwise","filter","takeUntil","isPlatformBrowser","Directive","Inject","PLATFORM_ID","Renderer2","ElementRef","NgZone","Input","Output","Observable","fromEvent","Optional","NgModule"],"mappings":"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"} |