{ "version": 3, "sources": ["libs/proman/src/lib/services/outside-click-detector.service.ts", "libs/proman/src/lib/inline-list/inline-list.component.ts", "libs/proman/src/lib/inline-list/inline-list.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class OutsideClickDetectorService {\n listeners: any = [];\n\n constructor() {\n\n }\n\n isException(event: MouseEvent) {\n const exceptions: string[] = [];\n\n const result = exceptions.filter((selector) => {\n const exceptionElement = document.querySelector(selector);\n if (!exceptionElement) return false;\n\n return exceptionElement.contains(event.target as Node);\n\n }).length > 0;\n\n return result;\n }\n\n handleClick = (event: MouseEvent) => {\n let element;\n\n if (!this.isException(event)) {\n\n for (const listener of this.listeners) {\n element = listener.element;\n\n const isSameElOrParent = element === event.target || element.contains(event.target);\n\n if (!isSameElOrParent) {\n setTimeout(() => {\n listener.callback(event);\n });\n\n }\n\n }\n\n }\n\n };\n\n addListener(element: HTMLElement, callback: () => void) {\n\n if (this.listeners.length === 0) {\n document.addEventListener('mousedown', this.handleClick);\n\n }\n\n this.listeners.push({ element, callback });\n\n return ((index) => {\n return {\n cancel: () => {\n this.listeners.splice(index, 1);\n\n if (this.listeners.length === 0) {\n document.removeEventListener('mousedown', this.handleClick);\n }\n }\n };\n })(this.listeners.length - 1);\n }\n}\n", "import { Component, Input, ElementRef, ViewChild, OnChanges, ChangeDetectorRef, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pro-inline-list',\n template: `\n