@firestitch/popover 9.4.12 → 9.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/firestitch-popover.umd.js +7 -2
- package/bundles/firestitch-popover.umd.js.map +1 -1
- package/bundles/firestitch-popover.umd.min.js +1 -1
- package/bundles/firestitch-popover.umd.min.js.map +1 -1
- package/esm2015/app/components/popover/popover.component.js +8 -3
- package/esm5/app/components/popover/popover.component.js +8 -3
- package/fesm2015/firestitch-popover.js +7 -2
- package/fesm2015/firestitch-popover.js.map +1 -1
- package/fesm5/firestitch-popover.js +7 -2
- package/fesm5/firestitch-popover.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","Position","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","FsPopoverRef","config","this","_autoShow$","BehaviorSubject","_autoClose$","_componentLoading$","_init","prototype","_loadingDiameter","_size","_theme","_loading","asObservable","getValue","combineLatest","autoShow$","componentLoading$","pipe","map","_a","_b","autoShow","componentLoading","_wrapperClass","_maxWidth","show","_this","setTimeout","updatePosition","close","overlayRef","detach","wrapperClass","maxWidth","loading","loadingDiameter","size","theme","autoClose","Injectable","FsPopoverWrapperComponent","popoverRef","_el","_zone","_super","hidden","_updatePosition","Subject","_destroy$","_updateClass","__","constructor","create","__extends","nativeElement","style","ngOnInit","_watchMousePosition","_observeContentChanges","_listenUpdatePositionRequests","ngOnDestroy","_contentChangesObserver","disconnect","complete","attachTemplatePortal","portal","_portalOutlet","hasAttached","Error","attachComponentPortal","componentVisibilityChange$","componentVisible$","filter","runOutsideAngular","fromEvent","document","takeUntil","subscribe","spinner","left","x","top","y","class","Boolean","join","MutationObserver","observe","childList","subtree","debounceTime","ElementRef","NgZone","ViewChild","CdkPortalOutlet","static","HostBinding","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","BasePortalOutlet","createPopupPositionStrategy","el","overlay","position","overlayX","overlayY","originX","originY","offsetX","offsetY","panelClass","North","South","East","West","flexibleConnectedTo","withGrowAfterOpen","withFlexibleDimensions","withViewportMargin","createBasePopupPositionStrategy","withPositions","FsPopoverService","_injector","_overlay","_activeElement","_activeElementGUID","setActivePopoverGUID","openPopover","data","positionStrategy","scrollStrategy","scrollStrategies","reposition","hasBackdrop","overlayConfig","OverlayConfig","createOverlayRef","containerRef","_openPortalPreview","templatePortal","TemplatePortal","popover","createTempatePortal","instance","location","component","containerPortal","ComponentPortal","parentInjector","injectionTokens","WeakMap","PortalInjector","createInjector","attach","Injector","Overlay","pointInRect","x1","y1","x2","y2","px","py","FsPopoverComponent","_elRef","_popoverService","_ngZone","_router","_guid","guid","leaveDelay","showDelay","indication","trigger","_mouseEnter$","_mouseMove$","passive","_mouseLeave$","_popoverClosed$","paramIndex","decorator","timer","_popoverRef","_listenMouseHostClick","_listenMouseHostEnter","_listenRouteChange","_closePopover","run","_wrapperElement","hasActivePopover","events","event","NavigationEnd","delay","tap","stopPropagation","_openPopover","switchMap","_listenMouseHostLeave$","closeTimer$","actualMouseState$","merge","mapTo","startWith","distinctUntilChanged","openTimer$","withLatestFrom","finalize","activeElementGUID","_hostBounds","getBoundingClientRect","mouseMove$","_mouseLeftTheTargets","hostBounds","popoverBounds","pointInHostRect","width","height","pointInPopoverRect","Router","type","Optional","Input","TemplateRef","FsPopoverModule","forRoot","ngModule","FsPopoverModule_1","providers","NgModule","imports","CommonModule","PortalModule","MatProgressSpinnerModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 __exportStar(m, exports) {\r\n for (var p in m) if (!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","export enum Position {\n North = 'north',\n South = 'south',\n East = 'east',\n West = 'west'\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\nexport class FsPopoverRef {\n\n public overlayRef: OverlayRef;\n\n private readonly _autoShow$ = new BehaviorSubject<boolean>(true);\n private readonly _autoClose$ = new BehaviorSubject<boolean>(true);\n private readonly _componentLoading$ = new BehaviorSubject<boolean>(true);\n private _maxWidth: number;\n private _wrapperClass: string;\n private _loadingDiameter: number;\n private _loading: boolean;\n private _theme: string;\n private _size: string;\n\n constructor(config: IPopoverConfig = {}) {\n this._init(config);\n }\n\n public get loadingDiameter() {\n return this._loadingDiameter;\n }\n\n public get size() {\n return this._size;\n }\n\n public get theme() {\n return this._theme;\n }\n\n public get loading() {\n return this._loading;\n }\n\n public get autoShow$() {\n return this._autoShow$.asObservable();\n }\n\n public get autoShow() {\n return this._autoShow$.getValue();\n }\n\n public set autoShow(value: boolean) {\n this._autoShow$.next(value);\n }\n\n public get autoClose$() {\n return this._autoClose$.asObservable();\n }\n\n public get autoClose() {\n return this._autoClose$.getValue();\n }\n\n public set autoClose(value: boolean) {\n this._autoClose$.next(value);\n }\n\n public get componentVisible$() {\n return combineLatest([\n this.autoShow$,\n this.componentLoading$,\n ]).pipe(\n map(([autoShow, componentLoading]) => {\n return autoShow || !componentLoading;\n })\n )\n }\n\n public get componentLoading$() {\n return this._componentLoading$.asObservable();\n }\n\n public get componentLoading() {\n return this._componentLoading$.getValue();\n }\n\n public get wrapperClass() {\n return this._wrapperClass;\n }\n\n public get maxWidth() {\n return this._maxWidth;\n }\n\n public show() {\n setTimeout(() => {\n this._componentLoading$.next(false);\n setTimeout(() => {\n this.updatePosition();\n });\n });\n }\n\n public close() {\n this.overlayRef.detach();\n this._componentLoading$.next(true);\n }\n\n public updatePosition() {\n this.overlayRef.updatePosition();\n }\n\n private _init(config: IPopoverConfig) {\n this._wrapperClass = config.wrapperClass;\n this._maxWidth = config.maxWidth;\n this._loading = config.loading;\n this._loadingDiameter = config.loadingDiameter;\n this._size = config.size;\n this._theme = config.theme;\n this._autoShow$.next(config.autoShow);\n this._autoClose$.next(config.autoClose);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n ViewChild,\n HostBinding,\n OnDestroy, NgZone,\n OnInit,\n} from '@angular/core';\n\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover-wrapper',\n templateUrl: 'popover-wrapper.component.html',\n styleUrls: [ 'popover-wrapper.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsPopoverWrapperComponent extends BasePortalOutlet implements OnInit, OnDestroy {\n\n @ViewChild(CdkPortalOutlet, { static: true })\n public _portalOutlet: CdkPortalOutlet;\n\n @ViewChild('spinner')\n public spinner;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\n private _contentChangesObserver: MutationObserver;\n private _updatePosition = new Subject<void>();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n public popoverRef: FsPopoverRef,\n private _el: ElementRef,\n private _zone: NgZone,\n ) {\n super();\n this._updateClass();\n\n this.wrapperClass = this.popoverRef.wrapperClass;\n this.maxWidth = this.popoverRef.maxWidth;\n }\n\n public set maxWidth(value: number) {\n this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;\n }\n\n public set wrapperClass(value: string) {\n this._wrapperClass = value;\n this._updateClass();\n }\n\n public ngOnInit(): void {\n if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {\n this._watchMousePosition();\n }\n\n this._observeContentChanges();\n this._listenUpdatePositionRequests();\n }\n\n\n public ngOnDestroy() {\n this._contentChangesObserver.disconnect();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n /**\n * Attach a TemplatePortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover template already attached');\n }\n\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n\n /**\n * Attach a ComponentPortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover component already attached');\n }\n\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n public updatePosition() {\n this._updatePosition.next();\n }\n\n private _watchMousePosition() {\n const componentVisibilityChange$ = this.popoverRef.componentVisible$\n .pipe(\n filter((value) => value === true)\n );\n\n this._zone.runOutsideAngular(() => {\n fromEvent(document, 'mousemove')\n .pipe(\n takeUntil(componentVisibilityChange$),\n takeUntil(this._destroy$),\n )\n .subscribe((e: MouseEvent) => {\n this.spinner.nativeElement.style.left = e.x + 'px';\n this.spinner.nativeElement.style.top = (e.y + 20) + 'px';\n });\n });\n }\n\n private _updateClass() {\n this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\n }\n\n private _observeContentChanges() {\n const config = {\n childList: true,\n subtree: true\n };\n\n this._contentChangesObserver = new MutationObserver(() => {\n this.updatePosition();\n });\n\n this._contentChangesObserver.observe(this._el.nativeElement, config);\n }\n\n private _listenUpdatePositionRequests() {\n this._updatePosition\n .pipe(\n debounceTime(50),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.popoverRef.updatePosition();\n })\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { FlexibleConnectedPositionStrategy, Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport { Position } from './../enums/position';\n\n\nexport function createPopupPositionStrategy(el: ElementRef, overlay: Overlay, position: Position): PositionStrategy {\n\n let overlayX: 'start' | 'center' | 'end' = 'center';\n let overlayY: 'top' | 'center' | 'bottom' = 'center';\n\n let originX: 'start' | 'center' | 'end' = 'center';\n let originY: 'top' | 'center' | 'bottom' = 'center';\n\n let offsetX = 0;\n let offsetY = 0;\n\n let panelClass: string[] = [];\n\n\n switch (position) {\n case Position.North:\n originY = 'top';\n overlayY = 'bottom';\n panelClass = ['fs-popover-top'];\n offsetY = -8;\n break;\n case Position.South:\n originY = 'bottom';\n overlayY = 'top';\n panelClass = ['fs-popover-bottom'];\n offsetY = 8;\n break;\n case Position.East:\n overlayX = 'start';\n originX = 'end';\n panelClass = ['fs-popover-left'];\n offsetX = 8;\n break;\n case Position.West:\n overlayX = 'end';\n originX = 'start';\n panelClass = ['fs-popover-right'];\n offsetX = -8;\n break;\n }\n\n return createBasePopupPositionStrategy(el, overlay)\n .withPositions([\n {\n originX: originX,\n originY: originY,\n overlayX: overlayX,\n overlayY: overlayY,\n offsetX: offsetX,\n offsetY: offsetY,\n panelClass: panelClass,\n }\n ]);\n}\n\n\nfunction createBasePopupPositionStrategy(el: ElementRef, overlay: Overlay): FlexibleConnectedPositionStrategy {\n return overlay.position()\n .flexibleConnectedTo(el)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(false)\n .withViewportMargin(4);\n}\n","import { ElementRef, Injectable, Injector, TemplateRef } from '@angular/core';\n\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\n\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Position } from './../enums/position';\nimport { FsPopoverRef } from '../class/popover-ref';\nimport { FsPopoverWrapperComponent } from '../components/popover-wrapper/popover-wrapper.component';\nimport { createOverlayRef } from '../helpers/create-overlay-ref';\nimport { createInjector } from '../helpers/create-injector';\nimport { createTempatePortal } from '../helpers/create-template-portal';\nimport { IPopoverActiveElement } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\n private _activeElementGUID: string;\n\n constructor(\n private _injector: Injector,\n private _overlay: Overlay,\n ) {}\n\n public get hasActivePopover() {\n return !!this._activeElement;\n }\n\n public get activeElementGUID(): string {\n return this._activeElementGUID;\n }\n\n public setActivePopoverGUID(value: string) {\n this._activeElementGUID = value;\n }\n\n public openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\n\n if (this._activeElement) {\n this.close(this._activeElement.popoverRef)\n }\n\n const overlayRef = createOverlayRef(el, this._overlay, position);\n const containerRef = this._openPortalPreview(FsPopoverWrapperComponent, overlayRef, popoverRef);\n const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\n popoverRef.overlayRef = overlayRef;\n\n this._activeElement = {\n overlayRef,\n popoverRef,\n };\n\n return containerRef.location.nativeElement;\n }\n\n public close(popoverRef: FsPopoverRef = null) {\n if (this._activeElement.popoverRef === popoverRef) {\n popoverRef.close();\n this._activeElement = void 0;\n this._activeElementGUID = void 0;\n }\n }\n\n private _openPortalPreview(\n component: ComponentType<FsPopoverWrapperComponent>,\n overlayRef: OverlayRef,\n popoverRef: FsPopoverRef,\n ) {\n const containerPortal = new ComponentPortal<FsPopoverWrapperComponent>(\n component,\n void 0,\n createInjector(popoverRef, this._injector),\n );\n\n return overlayRef.attach(containerPortal);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { createPopupPositionStrategy } from './create-position-strategy';\nimport { Position } from './../enums/position';\n\n\nexport function createOverlayRef(el: ElementRef, overlay: Overlay, position: Position) {\n const config = {\n positionStrategy: createPopupPositionStrategy(el, overlay, position),\n scrollStrategy: overlay.scrollStrategies.reposition(),\n hasBackdrop: false\n };\n\n const overlayConfig = new OverlayConfig(config);\n\n return overlay.create(overlayConfig);\n}\n","import { TemplateRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createTempatePortal(template: TemplateRef<any>, popoverRef: FsPopoverRef, data: any) {\n return new TemplatePortal(\n template,\n void 0,\n { data: data, popover: popoverRef },\n );\n}\n","import { Injector } from '@angular/core';\nimport { PortalInjector } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createInjector(popoverRef: FsPopoverRef, parentInjector: Injector) {\n const injectionTokens = new WeakMap<any, any>([\n [FsPopoverRef, popoverRef],\n ]);\n\n return new PortalInjector(parentInjector, injectionTokens);\n}\n","export function pointInRect(x1, y1, x2, y2, px, py) {\n return (px > x1 && px < x2) && (py > y1 && py < y2);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable, merge } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n finalize,\n mapTo,\n startWith,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport { guid } from '@firestitch/common';\n\nimport { Position } from './../../enums/position';\nimport { FsPopoverService } from '../../services/popover.service';\nimport { pointInRect } from '../../helpers/point-in-rect';\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\n\n private _guid = guid('xxxxxxx');\n\n @Input()\n public template: TemplateRef<any>;\n\n @Input()\n public data: any;\n\n @Input()\n public leaveDelay = 100;\n\n @Input()\n public showDelay = 0;\n\n @Input()\n public maxWidth = 250;\n\n @Input()\n public wrapperClass: string;\n\n @Input()\n public autoShow = true;\n\n @Input()\n public autoClose = true;\n\n @Input()\n public loadingDiameter = 20;\n\n @Input()\n public loading = true;\n\n @Input()\n @HostBinding('class.indication')\n public indication = true;\n\n @Input()\n public position: Position = Position.South;\n\n @Input()\n public theme: 'light' | 'dark' = 'light';\n\n @Input()\n public size: 'tiny' | 'small' | 'normal' = 'normal';\n\n @Input()\n public trigger: 'click' | 'mouseover' = 'mouseover';\n\n private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\n\n private _mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');\n private _mouseMove$ = fromEvent(document, 'mousemove', { passive: true });\n private _mouseLeave$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'mouseleave');\n\n private _popoverClosed$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _elRef: ElementRef,\n private _popoverService: FsPopoverService,\n private _ngZone: NgZone,\n @Optional() private _router: Router,\n ) {\n }\n\n public get openTimer$(): Observable<number> {\n return timer(this.showDelay);\n }\n\n public get closeTimer$(): Observable<number> {\n return timer(this.leaveDelay);\n }\n\n public ngOnInit() {\n this._popoverRef = new FsPopoverRef({\n maxWidth: this.maxWidth,\n wrapperClass: this.wrapperClass,\n autoShow: this.autoShow,\n autoClose: this.autoClose,\n loadingDiameter: this.loadingDiameter,\n loading: this.loading,\n size: this.size,\n theme: this.theme,\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (this.trigger === 'click') {\n this._listenMouseHostClick();\n } else {\n this._listenMouseHostEnter();\n }\n });\n\n this._listenRouteChange();\n }\n\n public ngOnDestroy() {\n this._popoverClosed$.next();\n this._destroy$.next();\n }\n\n private _closePopover() {\n this._popoverClosed$.next();\n\n this._ngZone.run(() => {\n this._wrapperElement = null;\n\n if (this._popoverService.hasActivePopover) {\n this._popoverService.close(this._popoverRef);\n }\n });\n }\n\n private _listenRouteChange(): void {\n this._router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n pipe(\n takeUntil(\n this._destroy$\n .pipe(delay(200)),\n ),\n )\n )\n .subscribe(() => {\n this._closePopover();\n })\n }\n\n private _listenMouseHostClick(): void {\n fromEvent(this._elRef.nativeElement, 'click', { passive: true })\n .pipe(\n tap((e: MouseEvent) => {\n e.stopPropagation();\n\n this._openPopover();\n }),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._closePopover();\n });\n }\n\n private _listenMouseHostEnter(): void {\n const actualMouseState$ = merge(\n this._mouseLeave$.pipe(mapTo(true)),\n this._mouseEnter$.pipe(mapTo(false)),\n )\n .pipe(\n startWith(false),\n distinctUntilChanged()\n );\n\n this._mouseEnter$\n .pipe(\n filter(() => {\n return !this._wrapperElement;\n }),\n tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n // we have to check that after all delays mouse still over an elemen\n withLatestFrom(actualMouseState$),\n filter(([_, mouseLeave]) => {\n return !mouseLeave;\n }),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n finalize(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n if (this._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n const mouseMove$ = this._mouseMove$\n .pipe(\n debounceTime(50),\n filter(() => !!this._wrapperElement),\n filter((event: MouseEvent) => {\n return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);\n }),\n );\n\n return merge(\n mouseMove$,\n this._mouseLeave$,\n );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","Position","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","FsPopoverRef","config","this","_autoShow$","BehaviorSubject","_autoClose$","_componentLoading$","_init","prototype","_loadingDiameter","_size","_theme","_loading","asObservable","getValue","combineLatest","autoShow$","componentLoading$","pipe","map","_a","_b","autoShow","componentLoading","_wrapperClass","_maxWidth","show","_this","setTimeout","updatePosition","close","overlayRef","detach","wrapperClass","maxWidth","loading","loadingDiameter","size","theme","autoClose","Injectable","FsPopoverWrapperComponent","popoverRef","_el","_zone","_super","hidden","_updatePosition","Subject","_destroy$","_updateClass","__","constructor","create","__extends","nativeElement","style","ngOnInit","_watchMousePosition","_observeContentChanges","_listenUpdatePositionRequests","ngOnDestroy","_contentChangesObserver","disconnect","complete","attachTemplatePortal","portal","_portalOutlet","hasAttached","Error","attachComponentPortal","componentVisibilityChange$","componentVisible$","filter","runOutsideAngular","fromEvent","document","takeUntil","subscribe","spinner","left","x","top","y","class","Boolean","join","MutationObserver","observe","childList","subtree","debounceTime","ElementRef","NgZone","ViewChild","CdkPortalOutlet","static","HostBinding","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","BasePortalOutlet","createPopupPositionStrategy","el","overlay","position","overlayX","overlayY","originX","originY","offsetX","offsetY","panelClass","North","South","East","West","flexibleConnectedTo","withGrowAfterOpen","withFlexibleDimensions","withViewportMargin","createBasePopupPositionStrategy","withPositions","FsPopoverService","_injector","_overlay","_activeElement","_activeElementGUID","setActivePopoverGUID","openPopover","data","positionStrategy","scrollStrategy","scrollStrategies","reposition","hasBackdrop","overlayConfig","OverlayConfig","createOverlayRef","containerRef","_openPortalPreview","templatePortal","TemplatePortal","popover","createTempatePortal","instance","location","component","containerPortal","ComponentPortal","parentInjector","injectionTokens","WeakMap","PortalInjector","createInjector","attach","Injector","Overlay","pointInRect","x1","y1","x2","y2","px","py","FsPopoverComponent","_elRef","_popoverService","_ngZone","_router","_guid","guid","leaveDelay","showDelay","indication","trigger","_mouseEnter$","_mouseMove$","passive","_mouseLeave$","_popoverClosed$","paramIndex","decorator","timer","_popoverRef","_listenMouseHostClick","_listenMouseHostEnter","_listenRouteChange","_closePopover","run","_wrapperElement","hasActivePopover","events","event","NavigationEnd","delay","tap","stopPropagation","_openPopover","switchMap","_listenMouseHostLeave$","closeTimer$","actualMouseState$","merge","mapTo","startWith","distinctUntilChanged","openTimer$","withLatestFrom","finalize","activeElementGUID","_hostBounds","getBoundingClientRect","_mouseLeftTheTargets","hostBounds","popoverBounds","pointInHostRect","width","height","pointInPopoverRect","Router","type","Optional","Input","TemplateRef","FsPopoverModule","forRoot","ngModule","FsPopoverModule_1","providers","NgModule","imports","CommonModule","PortalModule","MatProgressSpinnerModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 __exportStar(m, exports) {\r\n for (var p in m) if (!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","export enum Position {\n North = 'north',\n South = 'south',\n East = 'east',\n West = 'west'\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\nexport class FsPopoverRef {\n\n public overlayRef: OverlayRef;\n\n private readonly _autoShow$ = new BehaviorSubject<boolean>(true);\n private readonly _autoClose$ = new BehaviorSubject<boolean>(true);\n private readonly _componentLoading$ = new BehaviorSubject<boolean>(true);\n private _maxWidth: number;\n private _wrapperClass: string;\n private _loadingDiameter: number;\n private _loading: boolean;\n private _theme: string;\n private _size: string;\n\n constructor(config: IPopoverConfig = {}) {\n this._init(config);\n }\n\n public get loadingDiameter() {\n return this._loadingDiameter;\n }\n\n public get size() {\n return this._size;\n }\n\n public get theme() {\n return this._theme;\n }\n\n public get loading() {\n return this._loading;\n }\n\n public get autoShow$() {\n return this._autoShow$.asObservable();\n }\n\n public get autoShow() {\n return this._autoShow$.getValue();\n }\n\n public set autoShow(value: boolean) {\n this._autoShow$.next(value);\n }\n\n public get autoClose$() {\n return this._autoClose$.asObservable();\n }\n\n public get autoClose() {\n return this._autoClose$.getValue();\n }\n\n public set autoClose(value: boolean) {\n this._autoClose$.next(value);\n }\n\n public get componentVisible$() {\n return combineLatest([\n this.autoShow$,\n this.componentLoading$,\n ]).pipe(\n map(([autoShow, componentLoading]) => {\n return autoShow || !componentLoading;\n })\n )\n }\n\n public get componentLoading$() {\n return this._componentLoading$.asObservable();\n }\n\n public get componentLoading() {\n return this._componentLoading$.getValue();\n }\n\n public get wrapperClass() {\n return this._wrapperClass;\n }\n\n public get maxWidth() {\n return this._maxWidth;\n }\n\n public show() {\n setTimeout(() => {\n this._componentLoading$.next(false);\n setTimeout(() => {\n this.updatePosition();\n });\n });\n }\n\n public close() {\n this.overlayRef.detach();\n this._componentLoading$.next(true);\n }\n\n public updatePosition() {\n this.overlayRef.updatePosition();\n }\n\n private _init(config: IPopoverConfig) {\n this._wrapperClass = config.wrapperClass;\n this._maxWidth = config.maxWidth;\n this._loading = config.loading;\n this._loadingDiameter = config.loadingDiameter;\n this._size = config.size;\n this._theme = config.theme;\n this._autoShow$.next(config.autoShow);\n this._autoClose$.next(config.autoClose);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n ViewChild,\n HostBinding,\n OnDestroy, NgZone,\n OnInit,\n} from '@angular/core';\n\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover-wrapper',\n templateUrl: 'popover-wrapper.component.html',\n styleUrls: [ 'popover-wrapper.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsPopoverWrapperComponent extends BasePortalOutlet implements OnInit, OnDestroy {\n\n @ViewChild(CdkPortalOutlet, { static: true })\n public _portalOutlet: CdkPortalOutlet;\n\n @ViewChild('spinner')\n public spinner;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\n private _contentChangesObserver: MutationObserver;\n private _updatePosition = new Subject<void>();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n public popoverRef: FsPopoverRef,\n private _el: ElementRef,\n private _zone: NgZone,\n ) {\n super();\n this._updateClass();\n\n this.wrapperClass = this.popoverRef.wrapperClass;\n this.maxWidth = this.popoverRef.maxWidth;\n }\n\n public set maxWidth(value: number) {\n this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;\n }\n\n public set wrapperClass(value: string) {\n this._wrapperClass = value;\n this._updateClass();\n }\n\n public ngOnInit(): void {\n if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {\n this._watchMousePosition();\n }\n\n this._observeContentChanges();\n this._listenUpdatePositionRequests();\n }\n\n\n public ngOnDestroy() {\n this._contentChangesObserver.disconnect();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n /**\n * Attach a TemplatePortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover template already attached');\n }\n\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n\n /**\n * Attach a ComponentPortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover component already attached');\n }\n\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n public updatePosition() {\n this._updatePosition.next();\n }\n\n private _watchMousePosition() {\n const componentVisibilityChange$ = this.popoverRef.componentVisible$\n .pipe(\n filter((value) => value === true)\n );\n\n this._zone.runOutsideAngular(() => {\n fromEvent(document, 'mousemove')\n .pipe(\n takeUntil(componentVisibilityChange$),\n takeUntil(this._destroy$),\n )\n .subscribe((e: MouseEvent) => {\n this.spinner.nativeElement.style.left = e.x + 'px';\n this.spinner.nativeElement.style.top = (e.y + 20) + 'px';\n });\n });\n }\n\n private _updateClass() {\n this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\n }\n\n private _observeContentChanges() {\n const config = {\n childList: true,\n subtree: true\n };\n\n this._contentChangesObserver = new MutationObserver(() => {\n this.updatePosition();\n });\n\n this._contentChangesObserver.observe(this._el.nativeElement, config);\n }\n\n private _listenUpdatePositionRequests() {\n this._updatePosition\n .pipe(\n debounceTime(50),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.popoverRef.updatePosition();\n })\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { FlexibleConnectedPositionStrategy, Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport { Position } from './../enums/position';\n\n\nexport function createPopupPositionStrategy(el: ElementRef, overlay: Overlay, position: Position): PositionStrategy {\n\n let overlayX: 'start' | 'center' | 'end' = 'center';\n let overlayY: 'top' | 'center' | 'bottom' = 'center';\n\n let originX: 'start' | 'center' | 'end' = 'center';\n let originY: 'top' | 'center' | 'bottom' = 'center';\n\n let offsetX = 0;\n let offsetY = 0;\n\n let panelClass: string[] = [];\n\n\n switch (position) {\n case Position.North:\n originY = 'top';\n overlayY = 'bottom';\n panelClass = ['fs-popover-top'];\n offsetY = -8;\n break;\n case Position.South:\n originY = 'bottom';\n overlayY = 'top';\n panelClass = ['fs-popover-bottom'];\n offsetY = 8;\n break;\n case Position.East:\n overlayX = 'start';\n originX = 'end';\n panelClass = ['fs-popover-left'];\n offsetX = 8;\n break;\n case Position.West:\n overlayX = 'end';\n originX = 'start';\n panelClass = ['fs-popover-right'];\n offsetX = -8;\n break;\n }\n\n return createBasePopupPositionStrategy(el, overlay)\n .withPositions([\n {\n originX: originX,\n originY: originY,\n overlayX: overlayX,\n overlayY: overlayY,\n offsetX: offsetX,\n offsetY: offsetY,\n panelClass: panelClass,\n }\n ]);\n}\n\n\nfunction createBasePopupPositionStrategy(el: ElementRef, overlay: Overlay): FlexibleConnectedPositionStrategy {\n return overlay.position()\n .flexibleConnectedTo(el)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(false)\n .withViewportMargin(4);\n}\n","import { ElementRef, Injectable, Injector, TemplateRef } from '@angular/core';\n\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\n\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Position } from './../enums/position';\nimport { FsPopoverRef } from '../class/popover-ref';\nimport { FsPopoverWrapperComponent } from '../components/popover-wrapper/popover-wrapper.component';\nimport { createOverlayRef } from '../helpers/create-overlay-ref';\nimport { createInjector } from '../helpers/create-injector';\nimport { createTempatePortal } from '../helpers/create-template-portal';\nimport { IPopoverActiveElement } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\n private _activeElementGUID: string;\n\n constructor(\n private _injector: Injector,\n private _overlay: Overlay,\n ) {}\n\n public get hasActivePopover() {\n return !!this._activeElement;\n }\n\n public get activeElementGUID(): string {\n return this._activeElementGUID;\n }\n\n public setActivePopoverGUID(value: string) {\n this._activeElementGUID = value;\n }\n\n public openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\n\n if (this._activeElement) {\n this.close(this._activeElement.popoverRef)\n }\n\n const overlayRef = createOverlayRef(el, this._overlay, position);\n const containerRef = this._openPortalPreview(FsPopoverWrapperComponent, overlayRef, popoverRef);\n const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\n popoverRef.overlayRef = overlayRef;\n\n this._activeElement = {\n overlayRef,\n popoverRef,\n };\n\n return containerRef.location.nativeElement;\n }\n\n public close(popoverRef: FsPopoverRef = null) {\n if (this._activeElement.popoverRef === popoverRef) {\n popoverRef.close();\n this._activeElement = void 0;\n this._activeElementGUID = void 0;\n }\n }\n\n private _openPortalPreview(\n component: ComponentType<FsPopoverWrapperComponent>,\n overlayRef: OverlayRef,\n popoverRef: FsPopoverRef,\n ) {\n const containerPortal = new ComponentPortal<FsPopoverWrapperComponent>(\n component,\n void 0,\n createInjector(popoverRef, this._injector),\n );\n\n return overlayRef.attach(containerPortal);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { createPopupPositionStrategy } from './create-position-strategy';\nimport { Position } from './../enums/position';\n\n\nexport function createOverlayRef(el: ElementRef, overlay: Overlay, position: Position) {\n const config = {\n positionStrategy: createPopupPositionStrategy(el, overlay, position),\n scrollStrategy: overlay.scrollStrategies.reposition(),\n hasBackdrop: false\n };\n\n const overlayConfig = new OverlayConfig(config);\n\n return overlay.create(overlayConfig);\n}\n","import { TemplateRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createTempatePortal(template: TemplateRef<any>, popoverRef: FsPopoverRef, data: any) {\n return new TemplatePortal(\n template,\n void 0,\n { data: data, popover: popoverRef },\n );\n}\n","import { Injector } from '@angular/core';\nimport { PortalInjector } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createInjector(popoverRef: FsPopoverRef, parentInjector: Injector) {\n const injectionTokens = new WeakMap<any, any>([\n [FsPopoverRef, popoverRef],\n ]);\n\n return new PortalInjector(parentInjector, injectionTokens);\n}\n","export function pointInRect(x1, y1, x2, y2, px, py) {\n return (px > x1 && px < x2) && (py > y1 && py < y2);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable, merge } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n finalize,\n mapTo,\n startWith,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport { guid } from '@firestitch/common';\n\nimport { Position } from './../../enums/position';\nimport { FsPopoverService } from '../../services/popover.service';\nimport { pointInRect } from '../../helpers/point-in-rect';\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\n\n private _guid = guid('xxxxxxx');\n\n @Input()\n public template: TemplateRef<any>;\n\n @Input()\n public data: any;\n\n @Input()\n public leaveDelay = 100;\n\n @Input()\n public showDelay = 0;\n\n @Input()\n public maxWidth = 250;\n\n @Input()\n public wrapperClass: string;\n\n @Input()\n public autoShow = true;\n\n @Input()\n public autoClose = true;\n\n @Input()\n public loadingDiameter = 20;\n\n @Input()\n public loading = true;\n\n @Input()\n @HostBinding('class.indication')\n public indication = true;\n\n @Input()\n public position: Position = Position.South;\n\n @Input()\n public theme: 'light' | 'dark' = 'light';\n\n @Input()\n public size: 'tiny' | 'small' | 'normal' = 'normal';\n\n @Input()\n public trigger: 'click' | 'mouseover' = 'mouseover';\n\n private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\n\n private _mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');\n private _mouseMove$ = fromEvent(document, 'mousemove', { passive: true });\n private _mouseLeave$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'mouseleave');\n\n private _popoverClosed$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _elRef: ElementRef,\n private _popoverService: FsPopoverService,\n private _ngZone: NgZone,\n @Optional() private _router: Router,\n ) {\n }\n\n public get openTimer$(): Observable<number> {\n return timer(this.showDelay);\n }\n\n public get closeTimer$(): Observable<number> {\n return timer(this.leaveDelay);\n }\n\n public ngOnInit() {\n this._popoverRef = new FsPopoverRef({\n maxWidth: this.maxWidth,\n wrapperClass: this.wrapperClass,\n autoShow: this.autoShow,\n autoClose: this.autoClose,\n loadingDiameter: this.loadingDiameter,\n loading: this.loading,\n size: this.size,\n theme: this.theme,\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (this.trigger === 'click') {\n this._listenMouseHostClick();\n } else {\n this._listenMouseHostEnter();\n }\n });\n\n this._listenRouteChange();\n }\n\n public ngOnDestroy() {\n this._popoverClosed$.next();\n this._destroy$.next();\n }\n\n private _closePopover() {\n this._popoverClosed$.next();\n\n this._ngZone.run(() => {\n this._wrapperElement = null;\n\n if (this._popoverService.hasActivePopover) {\n this._popoverService.close(this._popoverRef);\n }\n });\n }\n\n private _listenRouteChange(): void {\n this._router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n pipe(\n takeUntil(\n this._destroy$\n .pipe(delay(200)),\n ),\n )\n )\n .subscribe(() => {\n this._closePopover();\n })\n }\n\n private _listenMouseHostClick(): void {\n fromEvent(this._elRef.nativeElement, 'click', { passive: true })\n .pipe(\n tap((e: MouseEvent) => {\n e.stopPropagation();\n\n this._openPopover();\n }),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._closePopover();\n });\n }\n\n private _listenMouseHostEnter(): void {\n const actualMouseState$ = merge(\n this._mouseLeave$.pipe(mapTo(true)),\n this._mouseEnter$.pipe(mapTo(false)),\n )\n .pipe(\n startWith(false),\n distinctUntilChanged(),\n );\n\n this._mouseEnter$\n .pipe(\n filter(() => {\n return !this._wrapperElement;\n }),\n tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n // we have to check that after all delays mouse still over an elemen\n withLatestFrom(actualMouseState$),\n filter(([_, mouseLeave]) => {\n return !mouseLeave;\n }),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n finalize(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n if (this._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n return this._mouseMove$\n .pipe(\n debounceTime(50),\n filter(() => !!this._wrapperElement),\n filter((event: MouseEvent) => {\n return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);\n }),\n );\n //\n // return this._mouseLeave$\n // .pipe(\n // //\n // timeoutWith(200, mouseMove$),\n // );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n"]}
|
|
@@ -118,11 +118,16 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
_listenMouseHostLeave$() {
|
|
121
|
-
|
|
121
|
+
return this._mouseMove$
|
|
122
122
|
.pipe(debounceTime(50), filter(() => !!this._wrapperElement), filter((event) => {
|
|
123
123
|
return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);
|
|
124
124
|
}));
|
|
125
|
-
|
|
125
|
+
//
|
|
126
|
+
// return this._mouseLeave$
|
|
127
|
+
// .pipe(
|
|
128
|
+
// //
|
|
129
|
+
// timeoutWith(200, mouseMove$),
|
|
130
|
+
// );
|
|
126
131
|
}
|
|
127
132
|
// Check if mouse left target or popover rects
|
|
128
133
|
_mouseLeftTheTargets(event) {
|
|
@@ -214,4 +219,4 @@ FsPopoverComponent = __decorate([
|
|
|
214
219
|
Router])
|
|
215
220
|
], FsPopoverComponent);
|
|
216
221
|
export { FsPopoverComponent };
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9wb3BvdmVyLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU3ZELElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBNkQ3QixZQUNVLE1BQWtCLEVBQ2xCLGVBQWlDLEVBQ2pDLE9BQWUsRUFDSCxPQUFlO1FBSDNCLFdBQU0sR0FBTixN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QztBQUd6QztJQURDLEtBQUssRUFBRTs7Z0RBQzRDO0FBR3BEO0lBREMsS0FBSyxFQUFFOzttREFDNEM7QUFoRHpDLGtCQUFrQjtJQU45QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0QixzSkFBcUM7UUFFckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O0tBQ2hELENBQUM7SUFrRUcsV0FBQSxRQUFRLEVBQUUsQ0FBQTtxQ0FISyxVQUFVO1FBQ0QsZ0JBQWdCO1FBQ3hCLE1BQU07UUFDTSxNQUFNO0dBakUxQixrQkFBa0IsQ0FxUDlCO1NBclBZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgcGlwZSwgU3ViamVjdCwgdGltZXIsIE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwVG8sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi8uLi8uLi9lbnVtcy9wb3NpdGlvbic7XG5pbXBvcnQgeyBGc1BvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG9wb3Zlci5zZXJ2aWNlJztcbmltcG9ydCB7IHBvaW50SW5SZWN0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9wb2ludC1pbi1yZWN0JztcbmltcG9ydCB7IEZzUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL2NsYXNzL3BvcG92ZXItcmVmJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICdwb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICdwb3BvdmVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfZ3VpZCA9IGd1aWQoJ3h4eHh4eHgnKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IGFueTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGVhdmVEZWxheSA9IDEwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0RlbGF5ID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4V2lkdGggPSAyNTA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHdyYXBwZXJDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvU2hvdyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9DbG9zZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmdEaWFtZXRlciA9IDIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmluZGljYXRpb24nKVxuICBwdWJsaWMgaW5kaWNhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBvc2l0aW9uOiBQb3NpdGlvbiA9IFBvc2l0aW9uLlNvdXRoO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNpemU6ICd0aW55JyB8ICdzbWFsbCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmlnZ2VyOiAnY2xpY2snIHwgJ21vdXNlb3ZlcicgPSAnbW91c2VvdmVyJztcblxuICBwcml2YXRlIF9wb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWY7XG4gIHByaXZhdGUgX3dyYXBwZXJFbGVtZW50OiBFbGVtZW50O1xuICBwcml2YXRlIF9ob3N0Qm91bmRzOiBET01SZWN0O1xuXG4gIHByaXZhdGUgX21vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJyk7XG4gIHByaXZhdGUgX21vdXNlTW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gIHByaXZhdGUgX21vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcG9wb3ZlclNlcnZpY2U6IEZzUG9wb3ZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuVGltZXIkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRpbWVyKHRoaXMuc2hvd0RlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvc2VUaW1lciQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGltZXIodGhpcy5sZWF2ZURlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9wb3BvdmVyUmVmID0gbmV3IEZzUG9wb3ZlclJlZih7XG4gICAgICBtYXhXaWR0aDogdGhpcy5tYXhXaWR0aCxcbiAgICAgIHdyYXBwZXJDbGFzczogdGhpcy53cmFwcGVyQ2xhc3MsXG4gICAgICBhdXRvU2hvdzogdGhpcy5hdXRvU2hvdyxcbiAgICAgIGF1dG9DbG9zZTogdGhpcy5hdXRvQ2xvc2UsXG4gICAgICBsb2FkaW5nRGlhbWV0ZXI6IHRoaXMubG9hZGluZ0RpYW1ldGVyLFxuICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxuICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2NsaWNrJykge1xuICAgICAgICB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RDbGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuTW91c2VIb3N0RW50ZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xpc3RlblJvdXRlQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlUG9wb3ZlcigpIHtcbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VkJC5uZXh0KCk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuX3dyYXBwZXJFbGVtZW50ID0gbnVsbDtcblxuICAgICAgaWYgKHRoaXMuX3BvcG92ZXJTZXJ2aWNlLmhhc0FjdGl2ZVBvcG92ZXIpIHtcbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UuY2xvc2UodGhpcy5fcG9wb3ZlclJlZik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Sb3V0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQ7XG4gICAgICAgIH0pLFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3kkXG4gICAgICAgICAgICAgIC5waXBlKGRlbGF5KDIwMCkpLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Nb3VzZUhvc3RDbGljaygpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgIHRoaXMuX29wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fbGlzdGVuTW91c2VIb3N0TGVhdmUkKCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jbG9zZVRpbWVyJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdEVudGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdHVhbE1vdXNlU3RhdGUkID0gbWVyZ2UoXG4gICAgICB0aGlzLl9tb3VzZUxlYXZlJC5waXBlKG1hcFRvKHRydWUpKSxcbiAgICAgIHRoaXMuX21vdXNlRW50ZXIkLnBpcGUobWFwVG8oZmFsc2UpKSxcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICB0aGlzLl9tb3VzZUVudGVyJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLl93cmFwcGVyRWxlbWVudDtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2Uuc2V0QWN0aXZlUG9wb3ZlckdVSUQodGhpcy5fZ3VpZCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vcGVuVGltZXIkKSxcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjaGVjayB0aGF0IGFmdGVyIGFsbCBkZWxheXMgbW91c2Ugc3RpbGwgb3ZlciBhbiBlbGVtZW5cbiAgICAgICAgd2l0aExhdGVzdEZyb20oYWN0dWFsTW91c2VTdGF0ZSQpLFxuICAgICAgICBmaWx0ZXIoKFtfLCBtb3VzZUxlYXZlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhbW91c2VMZWF2ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9vcGVuUG9wb3ZlcigpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2xvc2VUaW1lciQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fY2xvc2VQb3BvdmVyKCkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLl9jbG9zZVBvcG92ZXIoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcG9wb3ZlclNlcnZpY2UuYWN0aXZlRWxlbWVudEdVSUQgIT09IHRoaXMuX2d1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9ob3N0Qm91bmRzID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSB0aGlzLl9wb3BvdmVyU2VydmljZS5vcGVuUG9wb3ZlcihcbiAgICAgICAgdGhpcy5fZWxSZWYsXG4gICAgICAgIHRoaXMudGVtcGxhdGUsXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5fcG9wb3ZlclJlZixcbiAgICAgICAgdGhpcy5wb3NpdGlvblxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgICBjb25zdCBtb3VzZU1vdmUkID0gdGhpcy5fbW91c2VNb3ZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuX3dyYXBwZXJFbGVtZW50KSxcbiAgICAgICAgZmlsdGVyKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9wb3BvdmVyUmVmLmF1dG9DbG9zZSAmJiB0aGlzLl9tb3VzZUxlZnRUaGVUYXJnZXRzKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgbW91c2VNb3ZlJCxcbiAgICAgIHRoaXMuX21vdXNlTGVhdmUkLFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBtb3VzZSBsZWZ0IHRhcmdldCBvciBwb3BvdmVyIHJlY3RzXG4gIHByaXZhdGUgX21vdXNlTGVmdFRoZVRhcmdldHMoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBob3N0Qm91bmRzID0gdGhpcy5faG9zdEJvdW5kcztcbiAgICBjb25zdCBwb3BvdmVyQm91bmRzID0gdGhpcy5fd3JhcHBlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBwb2ludEluSG9zdFJlY3QgPSBwb2ludEluUmVjdChcbiAgICAgIGhvc3RCb3VuZHMueCxcbiAgICAgIGhvc3RCb3VuZHMueSxcbiAgICAgIGhvc3RCb3VuZHMueCArIGhvc3RCb3VuZHMud2lkdGgsXG4gICAgICBob3N0Qm91bmRzLnkgKyBob3N0Qm91bmRzLmhlaWdodCxcbiAgICAgIGV2ZW50LngsXG4gICAgICBldmVudC55XG4gICAgKTtcblxuICAgIGNvbnN0IHBvaW50SW5Qb3BvdmVyUmVjdCA9IHBvaW50SW5SZWN0KFxuICAgICAgcG9wb3ZlckJvdW5kcy54LFxuICAgICAgcG9wb3ZlckJvdW5kcy55LFxuICAgICAgcG9wb3ZlckJvdW5kcy54ICsgcG9wb3ZlckJvdW5kcy53aWR0aCxcbiAgICAgIHBvcG92ZXJCb3VuZHMueSArIHBvcG92ZXJCb3VuZHMuaGVpZ2h0LFxuICAgICAgZXZlbnQueCxcbiAgICAgIGV2ZW50LnlcbiAgICApO1xuXG4gICAgcmV0dXJuICFwb2ludEluSG9zdFJlY3QgJiYgIXBvaW50SW5Qb3BvdmVyUmVjdDtcbiAgfVxufVxuIl19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9wb3BvdmVyLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU3ZELElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBNkQ3QixZQUNVLE1BQWtCLEVBQ2xCLGVBQWlDLEVBQ2pDLE9BQWUsRUFDSCxPQUFlO1FBSDNCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDSCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBL0Q3QixVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBU3pCLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFHakIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUdkLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFNZixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFHckIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUlmLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsYUFBUSxHQUFhLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFHcEMsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFHbEMsU0FBSSxHQUFnQyxRQUFRLENBQUM7UUFHN0MsWUFBTyxHQUEwQixXQUFXLENBQUM7UUFNNUMsaUJBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEUsZ0JBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLGlCQUFZLEdBQUcsU0FBUyxDQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlFLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVF4QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLENBQUM7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFFNUIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDOUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2FBQ2hCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sS0FBSyxZQUFZLGFBQWEsQ0FBQztRQUN4QyxDQUFDLENBQUMsRUFDRixJQUFJLENBQ0YsU0FBUyxDQUNQLElBQUksQ0FBQyxTQUFTO2FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNwQixDQUNGLENBQ0Y7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzdELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRTtZQUNwQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3JDO2FBQ0EsSUFBSSxDQUNILFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFDaEIsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUMvQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDaEMsb0VBQW9FO1FBQ3BFLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUNqQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsRUFDOUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDakMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUMvQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDekQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUNyRCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixJQUFJLENBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFDcEMsTUFBTSxDQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixFQUFFO1FBQ0YsMkJBQTJCO1FBQzNCLFdBQVc7UUFDWCxTQUFTO1FBQ1Qsb0NBQW9DO1FBQ3BDLE9BQU87SUFDVCxDQUFDO0lBRUQsOENBQThDO0lBQ3RDLG9CQUFvQixDQUFDLEtBQWlCO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRW5FLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FDakMsVUFBVSxDQUFDLENBQUMsRUFDWixVQUFVLENBQUMsQ0FBQyxFQUNaLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFDL0IsVUFBVSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUNoQyxLQUFLLENBQUMsQ0FBQyxFQUNQLEtBQUssQ0FBQyxDQUFDLENBQ1IsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUNwQyxhQUFhLENBQUMsQ0FBQyxFQUNmLGFBQWEsQ0FBQyxDQUFDLEVBQ2YsYUFBYSxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUNyQyxhQUFhLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQ3RDLEtBQUssQ0FBQyxDQUFDLEVBQ1AsS0FBSyxDQUFDLENBQUMsQ0FDUixDQUFDO1FBRUYsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELENBQUM7Q0FDRixDQUFBOztZQXhMbUIsVUFBVTtZQUNELGdCQUFnQjtZQUN4QixNQUFNO1lBQ00sTUFBTSx1QkFBbEMsUUFBUTs7QUE1RFg7SUFEQyxLQUFLLEVBQUU7OEJBQ1MsV0FBVztvREFBTTtBQUdsQztJQURDLEtBQUssRUFBRTs7Z0RBQ1M7QUFHakI7SUFEQyxLQUFLLEVBQUU7O3NEQUNnQjtBQUd4QjtJQURDLEtBQUssRUFBRTs7cURBQ2E7QUFHckI7SUFEQyxLQUFLLEVBQUU7O29EQUNjO0FBR3RCO0lBREMsS0FBSyxFQUFFOzt3REFDb0I7QUFHNUI7SUFEQyxLQUFLLEVBQUU7O29EQUNlO0FBR3ZCO0lBREMsS0FBSyxFQUFFOztxREFDZ0I7QUFHeEI7SUFEQyxLQUFLLEVBQUU7OzJEQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTs7bURBQ2M7QUFJdEI7SUFGQyxLQUFLLEVBQUU7SUFDUCxXQUFXLENBQUMsa0JBQWtCLENBQUM7O3NEQUNQO0FBR3pCO0lBREMsS0FBSyxFQUFFOztvREFDbUM7QUFHM0M7SUFEQyxLQUFLLEVBQUU7O2lEQUNpQztBQUd6QztJQURDLEtBQUssRUFBRTs7Z0RBQzRDO0FBR3BEO0lBREMsS0FBSyxFQUFFOzttREFDNEM7QUFoRHpDLGtCQUFrQjtJQU45QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0QixzSkFBcUM7UUFFckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O0tBQ2hELENBQUM7SUFrRUcsV0FBQSxRQUFRLEVBQUUsQ0FBQTtxQ0FISyxVQUFVO1FBQ0QsZ0JBQWdCO1FBQ3hCLE1BQU07UUFDTSxNQUFNO0dBakUxQixrQkFBa0IsQ0FzUDlCO1NBdFBZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgcGlwZSwgU3ViamVjdCwgdGltZXIsIE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwVG8sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi8uLi8uLi9lbnVtcy9wb3NpdGlvbic7XG5pbXBvcnQgeyBGc1BvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG9wb3Zlci5zZXJ2aWNlJztcbmltcG9ydCB7IHBvaW50SW5SZWN0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9wb2ludC1pbi1yZWN0JztcbmltcG9ydCB7IEZzUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL2NsYXNzL3BvcG92ZXItcmVmJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICdwb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICdwb3BvdmVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfZ3VpZCA9IGd1aWQoJ3h4eHh4eHgnKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IGFueTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGVhdmVEZWxheSA9IDEwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0RlbGF5ID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4V2lkdGggPSAyNTA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHdyYXBwZXJDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvU2hvdyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9DbG9zZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmdEaWFtZXRlciA9IDIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmluZGljYXRpb24nKVxuICBwdWJsaWMgaW5kaWNhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBvc2l0aW9uOiBQb3NpdGlvbiA9IFBvc2l0aW9uLlNvdXRoO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNpemU6ICd0aW55JyB8ICdzbWFsbCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmlnZ2VyOiAnY2xpY2snIHwgJ21vdXNlb3ZlcicgPSAnbW91c2VvdmVyJztcblxuICBwcml2YXRlIF9wb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWY7XG4gIHByaXZhdGUgX3dyYXBwZXJFbGVtZW50OiBFbGVtZW50O1xuICBwcml2YXRlIF9ob3N0Qm91bmRzOiBET01SZWN0O1xuXG4gIHByaXZhdGUgX21vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJyk7XG4gIHByaXZhdGUgX21vdXNlTW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gIHByaXZhdGUgX21vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcG9wb3ZlclNlcnZpY2U6IEZzUG9wb3ZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuVGltZXIkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRpbWVyKHRoaXMuc2hvd0RlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvc2VUaW1lciQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGltZXIodGhpcy5sZWF2ZURlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9wb3BvdmVyUmVmID0gbmV3IEZzUG9wb3ZlclJlZih7XG4gICAgICBtYXhXaWR0aDogdGhpcy5tYXhXaWR0aCxcbiAgICAgIHdyYXBwZXJDbGFzczogdGhpcy53cmFwcGVyQ2xhc3MsXG4gICAgICBhdXRvU2hvdzogdGhpcy5hdXRvU2hvdyxcbiAgICAgIGF1dG9DbG9zZTogdGhpcy5hdXRvQ2xvc2UsXG4gICAgICBsb2FkaW5nRGlhbWV0ZXI6IHRoaXMubG9hZGluZ0RpYW1ldGVyLFxuICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxuICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2NsaWNrJykge1xuICAgICAgICB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RDbGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuTW91c2VIb3N0RW50ZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xpc3RlblJvdXRlQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlUG9wb3ZlcigpIHtcbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VkJC5uZXh0KCk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuX3dyYXBwZXJFbGVtZW50ID0gbnVsbDtcblxuICAgICAgaWYgKHRoaXMuX3BvcG92ZXJTZXJ2aWNlLmhhc0FjdGl2ZVBvcG92ZXIpIHtcbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UuY2xvc2UodGhpcy5fcG9wb3ZlclJlZik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Sb3V0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQ7XG4gICAgICAgIH0pLFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3kkXG4gICAgICAgICAgICAgIC5waXBlKGRlbGF5KDIwMCkpLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Nb3VzZUhvc3RDbGljaygpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgIHRoaXMuX29wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fbGlzdGVuTW91c2VIb3N0TGVhdmUkKCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jbG9zZVRpbWVyJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdEVudGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdHVhbE1vdXNlU3RhdGUkID0gbWVyZ2UoXG4gICAgICB0aGlzLl9tb3VzZUxlYXZlJC5waXBlKG1hcFRvKHRydWUpKSxcbiAgICAgIHRoaXMuX21vdXNlRW50ZXIkLnBpcGUobWFwVG8oZmFsc2UpKSxcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuXG4gICAgdGhpcy5fbW91c2VFbnRlciRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5fd3JhcHBlckVsZW1lbnQ7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnNldEFjdGl2ZVBvcG92ZXJHVUlEKHRoaXMuX2d1aWQpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMub3BlblRpbWVyJCksXG4gICAgICAgIC8vIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBhZnRlciBhbGwgZGVsYXlzIG1vdXNlIHN0aWxsIG92ZXIgYW4gZWxlbWVuXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKGFjdHVhbE1vdXNlU3RhdGUkKSxcbiAgICAgICAgZmlsdGVyKChbXywgbW91c2VMZWF2ZV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gIW1vdXNlTGVhdmU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fb3BlblBvcG92ZXIoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNsb3NlVGltZXIkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2Nsb3NlUG9wb3ZlcigpKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5fY2xvc2VQb3BvdmVyKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3BvcG92ZXJTZXJ2aWNlLmFjdGl2ZUVsZW1lbnRHVUlEICE9PSB0aGlzLl9ndWlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faG9zdEJvdW5kcyA9IHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuX3dyYXBwZXJFbGVtZW50ID0gdGhpcy5fcG9wb3ZlclNlcnZpY2Uub3BlblBvcG92ZXIoXG4gICAgICAgIHRoaXMuX2VsUmVmLFxuICAgICAgICB0aGlzLnRlbXBsYXRlLFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIHRoaXMuX3BvcG92ZXJSZWYsXG4gICAgICAgIHRoaXMucG9zaXRpb25cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX21vdXNlTW92ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLl93cmFwcGVyRWxlbWVudCksXG4gICAgICAgIGZpbHRlcigoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fcG9wb3ZlclJlZi5hdXRvQ2xvc2UgJiYgdGhpcy5fbW91c2VMZWZ0VGhlVGFyZ2V0cyhldmVudCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAvL1xuICAgIC8vIHJldHVybiB0aGlzLl9tb3VzZUxlYXZlJFxuICAgIC8vICAgLnBpcGUoXG4gICAgLy8gICAgIC8vXG4gICAgLy8gICAgIHRpbWVvdXRXaXRoKDIwMCwgbW91c2VNb3ZlJCksXG4gICAgLy8gICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgbW91c2UgbGVmdCB0YXJnZXQgb3IgcG9wb3ZlciByZWN0c1xuICBwcml2YXRlIF9tb3VzZUxlZnRUaGVUYXJnZXRzKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaG9zdEJvdW5kcyA9IHRoaXMuX2hvc3RCb3VuZHM7XG4gICAgY29uc3QgcG9wb3ZlckJvdW5kcyA9IHRoaXMuX3dyYXBwZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgcG9pbnRJbkhvc3RSZWN0ID0gcG9pbnRJblJlY3QoXG4gICAgICBob3N0Qm91bmRzLngsXG4gICAgICBob3N0Qm91bmRzLnksXG4gICAgICBob3N0Qm91bmRzLnggKyBob3N0Qm91bmRzLndpZHRoLFxuICAgICAgaG9zdEJvdW5kcy55ICsgaG9zdEJvdW5kcy5oZWlnaHQsXG4gICAgICBldmVudC54LFxuICAgICAgZXZlbnQueVxuICAgICk7XG5cbiAgICBjb25zdCBwb2ludEluUG9wb3ZlclJlY3QgPSBwb2ludEluUmVjdChcbiAgICAgIHBvcG92ZXJCb3VuZHMueCxcbiAgICAgIHBvcG92ZXJCb3VuZHMueSxcbiAgICAgIHBvcG92ZXJCb3VuZHMueCArIHBvcG92ZXJCb3VuZHMud2lkdGgsXG4gICAgICBwb3BvdmVyQm91bmRzLnkgKyBwb3BvdmVyQm91bmRzLmhlaWdodCxcbiAgICAgIGV2ZW50LngsXG4gICAgICBldmVudC55XG4gICAgKTtcblxuICAgIHJldHVybiAhcG9pbnRJbkhvc3RSZWN0ICYmICFwb2ludEluUG9wb3ZlclJlY3Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -134,11 +134,16 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
134
134
|
};
|
|
135
135
|
FsPopoverComponent.prototype._listenMouseHostLeave$ = function () {
|
|
136
136
|
var _this = this;
|
|
137
|
-
|
|
137
|
+
return this._mouseMove$
|
|
138
138
|
.pipe(debounceTime(50), filter(function () { return !!_this._wrapperElement; }), filter(function (event) {
|
|
139
139
|
return _this._popoverRef.autoClose && _this._mouseLeftTheTargets(event);
|
|
140
140
|
}));
|
|
141
|
-
|
|
141
|
+
//
|
|
142
|
+
// return this._mouseLeave$
|
|
143
|
+
// .pipe(
|
|
144
|
+
// //
|
|
145
|
+
// timeoutWith(200, mouseMove$),
|
|
146
|
+
// );
|
|
142
147
|
};
|
|
143
148
|
// Check if mouse left target or popover rects
|
|
144
149
|
FsPopoverComponent.prototype._mouseLeftTheTargets = function (event) {
|
|
@@ -231,4 +236,4 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
231
236
|
return FsPopoverComponent;
|
|
232
237
|
}());
|
|
233
238
|
export { FsPopoverComponent };
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9wb3BvdmVyLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU3ZEO0lBNkRFLDRCQUNVLE1BQWtCLEVBQ2xCLGVBQWlDLEVBQ2pDLE9BQWUsRUFDSCxPQUFlO1FBSDNCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsb0JBQWUsR0FBZixlQUFl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Q1AsV0FBVyxDQUFDLGtCQUFrQixDQUFDOzswREFDUDtJQUd6QjtRQURDLEtBQUssRUFBRTs7d0RBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFOztxREFDaUM7SUFHekM7UUFEQyxLQUFLLEVBQUU7O29EQUM0QztJQUdwRDtRQURDLEtBQUssRUFBRTs7dURBQzRDO0lBaER6QyxrQkFBa0I7UUFOOUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFlBQVk7WUFDdEIsc0pBQXFDO1lBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO1FBa0VHLFdBQUEsUUFBUSxFQUFFLENBQUE7eUNBSEssVUFBVTtZQUNELGdCQUFnQjtZQUN4QixNQUFNO1lBQ00sTUFBTTtPQWpFMUIsa0JBQWtCLENBcVA5QjtJQUFELHlCQUFDO0NBQUEsQUFyUEQsSUFxUEM7U0FyUFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgSG9zdEJpbmRpbmcsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBwaXBlLCBTdWJqZWN0LCB0aW1lciwgT2JzZXJ2YWJsZSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGVsYXksXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXBUbyxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLy4uLy4uL2VudW1zL3Bvc2l0aW9uJztcbmltcG9ydCB7IEZzUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9pbnRJblJlY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3BvaW50LWluLXJlY3QnO1xuaW1wb3J0IHsgRnNQb3BvdmVyUmVmIH0gZnJvbSAnLi4vLi4vY2xhc3MvcG9wb3Zlci1yZWYnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJ3BvcG92ZXIuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZzUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9ndWlkID0gZ3VpZCgneHh4eHh4eCcpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZWF2ZURlbGF5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RGVsYXkgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhXaWR0aCA9IDI1MDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9TaG93ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b0Nsb3NlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZ0RpYW1ldGVyID0gMjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaW5kaWNhdGlvbicpXG4gIHB1YmxpYyBpbmRpY2F0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9zaXRpb246IFBvc2l0aW9uID0gUG9zaXRpb24uU291dGg7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2l6ZTogJ3RpbnknIHwgJ3NtYWxsJyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRyaWdnZXI6ICdjbGljaycgfCAnbW91c2VvdmVyJyA9ICdtb3VzZW92ZXInO1xuXG4gIHByaXZhdGUgX3BvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZjtcbiAgcHJpdmF0ZSBfd3JhcHBlckVsZW1lbnQ6IEVsZW1lbnQ7XG4gIHByaXZhdGUgX2hvc3RCb3VuZHM6IERPTVJlY3Q7XG5cbiAgcHJpdmF0ZSBfbW91c2VFbnRlciQgPSBmcm9tRXZlbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKTtcbiAgcHJpdmF0ZSBfbW91c2VNb3ZlJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBfbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICBwcml2YXRlIF9wb3BvdmVyQ2xvc2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9wb3BvdmVyU2VydmljZTogRnNQb3BvdmVyU2VydmljZSxcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9wZW5UaW1lciQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGltZXIodGhpcy5zaG93RGVsYXkpO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG9zZVRpbWVyJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aW1lcih0aGlzLmxlYXZlRGVsYXkpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3BvcG92ZXJSZWYgPSBuZXcgRnNQb3BvdmVyUmVmKHtcbiAgICAgIG1heFdpZHRoOiB0aGlzLm1heFdpZHRoLFxuICAgICAgd3JhcHBlckNsYXNzOiB0aGlzLndyYXBwZXJDbGFzcyxcbiAgICAgIGF1dG9TaG93OiB0aGlzLmF1dG9TaG93LFxuICAgICAgYXV0b0Nsb3NlOiB0aGlzLmF1dG9DbG9zZSxcbiAgICAgIGxvYWRpbmdEaWFtZXRlcjogdGhpcy5sb2FkaW5nRGlhbWV0ZXIsXG4gICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RFbnRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuUm91dGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VkJC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWQkLm5leHQoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSBudWxsO1xuXG4gICAgICBpZiAodGhpcy5fcG9wb3ZlclNlcnZpY2UuaGFzQWN0aXZlUG9wb3Zlcikge1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5jbG9zZSh0aGlzLl9wb3BvdmVyUmVmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvdXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgfSksXG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveSRcbiAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoMjAwKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2Nsb3NlUG9wb3ZlcigpO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgdGhpcy5fb3BlblBvcG92ZXIoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNsb3NlVGltZXIkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0RW50ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0dWFsTW91c2VTdGF0ZSQgPSBtZXJnZShcbiAgICAgIHRoaXMuX21vdXNlTGVhdmUkLnBpcGUobWFwVG8odHJ1ZSkpLFxuICAgICAgdGhpcy5fbW91c2VFbnRlciQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIHRoaXMuX21vdXNlRW50ZXIkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gIXRoaXMuX3dyYXBwZXJFbGVtZW50O1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5zZXRBY3RpdmVQb3BvdmVyR1VJRCh0aGlzLl9ndWlkKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm9wZW5UaW1lciQpLFxuICAgICAgICAvLyB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgYWZ0ZXIgYWxsIGRlbGF5cyBtb3VzZSBzdGlsbCBvdmVyIGFuIGVsZW1lblxuICAgICAgICB3aXRoTGF0ZXN0RnJvbShhY3R1YWxNb3VzZVN0YXRlJCksXG4gICAgICAgIGZpbHRlcigoW18sIG1vdXNlTGVhdmVdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICFtb3VzZUxlYXZlO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX29wZW5Qb3BvdmVyKCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fbGlzdGVuTW91c2VIb3N0TGVhdmUkKCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jbG9zZVRpbWVyJCksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9jbG9zZVBvcG92ZXIoKSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuX2Nsb3NlUG9wb3ZlcigpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW5Qb3BvdmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9wb3BvdmVyU2VydmljZS5hY3RpdmVFbGVtZW50R1VJRCAhPT0gdGhpcy5fZ3VpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2hvc3RCb3VuZHMgPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLl93cmFwcGVyRWxlbWVudCA9IHRoaXMuX3BvcG92ZXJTZXJ2aWNlLm9wZW5Qb3BvdmVyKFxuICAgICAgICB0aGlzLl9lbFJlZixcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSxcbiAgICAgICAgdGhpcy5kYXRhLFxuICAgICAgICB0aGlzLl9wb3BvdmVyUmVmLFxuICAgICAgICB0aGlzLnBvc2l0aW9uXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0TGVhdmUkKCk6IE9ic2VydmFibGU8TW91c2VFdmVudD4ge1xuICAgIGNvbnN0IG1vdXNlTW92ZSQgPSB0aGlzLl9tb3VzZU1vdmUkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5fd3JhcHBlckVsZW1lbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJSZWYuYXV0b0Nsb3NlICYmIHRoaXMuX21vdXNlTGVmdFRoZVRhcmdldHMoZXZlbnQpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICBtb3VzZU1vdmUkLFxuICAgICAgdGhpcy5fbW91c2VMZWF2ZSQsXG4gICAgKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIG1vdXNlIGxlZnQgdGFyZ2V0IG9yIHBvcG92ZXIgcmVjdHNcbiAgcHJpdmF0ZSBfbW91c2VMZWZ0VGhlVGFyZ2V0cyhldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhvc3RCb3VuZHMgPSB0aGlzLl9ob3N0Qm91bmRzO1xuICAgIGNvbnN0IHBvcG92ZXJCb3VuZHMgPSB0aGlzLl93cmFwcGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHBvaW50SW5Ib3N0UmVjdCA9IHBvaW50SW5SZWN0KFxuICAgICAgaG9zdEJvdW5kcy54LFxuICAgICAgaG9zdEJvdW5kcy55LFxuICAgICAgaG9zdEJvdW5kcy54ICsgaG9zdEJvdW5kcy53aWR0aCxcbiAgICAgIGhvc3RCb3VuZHMueSArIGhvc3RCb3VuZHMuaGVpZ2h0LFxuICAgICAgZXZlbnQueCxcbiAgICAgIGV2ZW50LnlcbiAgICApO1xuXG4gICAgY29uc3QgcG9pbnRJblBvcG92ZXJSZWN0ID0gcG9pbnRJblJlY3QoXG4gICAgICBwb3BvdmVyQm91bmRzLngsXG4gICAgICBwb3BvdmVyQm91bmRzLnksXG4gICAgICBwb3BvdmVyQm91bmRzLnggKyBwb3BvdmVyQm91bmRzLndpZHRoLFxuICAgICAgcG9wb3ZlckJvdW5kcy55ICsgcG9wb3ZlckJvdW5kcy5oZWlnaHQsXG4gICAgICBldmVudC54LFxuICAgICAgZXZlbnQueVxuICAgICk7XG5cbiAgICByZXR1cm4gIXBvaW50SW5Ib3N0UmVjdCAmJiAhcG9pbnRJblBvcG92ZXJSZWN0O1xuICB9XG59XG4iXX0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9wb3BvdmVyLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU3ZEO0lBNkRFLDRCQUNVLE1BQWtCLEVBQ2xCLGVBQWlDLEVBQ2pDLE9BQWUsRUFDSCxPQUFlO1FBSDNCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsb0JBQWUsR0FBZixlQUFl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Q1AsV0FBVyxDQUFDLGtCQUFrQixDQUFDOzswREFDUDtJQUd6QjtRQURDLEtBQUssRUFBRTs7d0RBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFOztxREFDaUM7SUFHekM7UUFEQyxLQUFLLEVBQUU7O29EQUM0QztJQUdwRDtRQURDLEtBQUssRUFBRTs7dURBQzRDO0lBaER6QyxrQkFBa0I7UUFOOUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFlBQVk7WUFDdEIsc0pBQXFDO1lBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO1FBa0VHLFdBQUEsUUFBUSxFQUFFLENBQUE7eUNBSEssVUFBVTtZQUNELGdCQUFnQjtZQUN4QixNQUFNO1lBQ00sTUFBTTtPQWpFMUIsa0JBQWtCLENBc1A5QjtJQUFELHlCQUFDO0NBQUEsQUF0UEQsSUFzUEM7U0F0UFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgSG9zdEJpbmRpbmcsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBwaXBlLCBTdWJqZWN0LCB0aW1lciwgT2JzZXJ2YWJsZSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGVsYXksXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXBUbyxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLy4uLy4uL2VudW1zL3Bvc2l0aW9uJztcbmltcG9ydCB7IEZzUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9pbnRJblJlY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3BvaW50LWluLXJlY3QnO1xuaW1wb3J0IHsgRnNQb3BvdmVyUmVmIH0gZnJvbSAnLi4vLi4vY2xhc3MvcG9wb3Zlci1yZWYnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJ3BvcG92ZXIuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZzUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9ndWlkID0gZ3VpZCgneHh4eHh4eCcpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZWF2ZURlbGF5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RGVsYXkgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhXaWR0aCA9IDI1MDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9TaG93ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b0Nsb3NlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZ0RpYW1ldGVyID0gMjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaW5kaWNhdGlvbicpXG4gIHB1YmxpYyBpbmRpY2F0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9zaXRpb246IFBvc2l0aW9uID0gUG9zaXRpb24uU291dGg7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2l6ZTogJ3RpbnknIHwgJ3NtYWxsJyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRyaWdnZXI6ICdjbGljaycgfCAnbW91c2VvdmVyJyA9ICdtb3VzZW92ZXInO1xuXG4gIHByaXZhdGUgX3BvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZjtcbiAgcHJpdmF0ZSBfd3JhcHBlckVsZW1lbnQ6IEVsZW1lbnQ7XG4gIHByaXZhdGUgX2hvc3RCb3VuZHM6IERPTVJlY3Q7XG5cbiAgcHJpdmF0ZSBfbW91c2VFbnRlciQgPSBmcm9tRXZlbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKTtcbiAgcHJpdmF0ZSBfbW91c2VNb3ZlJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBfbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICBwcml2YXRlIF9wb3BvdmVyQ2xvc2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9wb3BvdmVyU2VydmljZTogRnNQb3BvdmVyU2VydmljZSxcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9wZW5UaW1lciQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGltZXIodGhpcy5zaG93RGVsYXkpO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG9zZVRpbWVyJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aW1lcih0aGlzLmxlYXZlRGVsYXkpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3BvcG92ZXJSZWYgPSBuZXcgRnNQb3BvdmVyUmVmKHtcbiAgICAgIG1heFdpZHRoOiB0aGlzLm1heFdpZHRoLFxuICAgICAgd3JhcHBlckNsYXNzOiB0aGlzLndyYXBwZXJDbGFzcyxcbiAgICAgIGF1dG9TaG93OiB0aGlzLmF1dG9TaG93LFxuICAgICAgYXV0b0Nsb3NlOiB0aGlzLmF1dG9DbG9zZSxcbiAgICAgIGxvYWRpbmdEaWFtZXRlcjogdGhpcy5sb2FkaW5nRGlhbWV0ZXIsXG4gICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RFbnRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuUm91dGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VkJC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWQkLm5leHQoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSBudWxsO1xuXG4gICAgICBpZiAodGhpcy5fcG9wb3ZlclNlcnZpY2UuaGFzQWN0aXZlUG9wb3Zlcikge1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5jbG9zZSh0aGlzLl9wb3BvdmVyUmVmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvdXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgfSksXG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveSRcbiAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoMjAwKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2Nsb3NlUG9wb3ZlcigpO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgdGhpcy5fb3BlblBvcG92ZXIoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNsb3NlVGltZXIkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0RW50ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0dWFsTW91c2VTdGF0ZSQgPSBtZXJnZShcbiAgICAgIHRoaXMuX21vdXNlTGVhdmUkLnBpcGUobWFwVG8odHJ1ZSkpLFxuICAgICAgdGhpcy5fbW91c2VFbnRlciQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG5cbiAgICB0aGlzLl9tb3VzZUVudGVyJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLl93cmFwcGVyRWxlbWVudDtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2Uuc2V0QWN0aXZlUG9wb3ZlckdVSUQodGhpcy5fZ3VpZCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vcGVuVGltZXIkKSxcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjaGVjayB0aGF0IGFmdGVyIGFsbCBkZWxheXMgbW91c2Ugc3RpbGwgb3ZlciBhbiBlbGVtZW5cbiAgICAgICAgd2l0aExhdGVzdEZyb20oYWN0dWFsTW91c2VTdGF0ZSQpLFxuICAgICAgICBmaWx0ZXIoKFtfLCBtb3VzZUxlYXZlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhbW91c2VMZWF2ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9vcGVuUG9wb3ZlcigpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2xvc2VUaW1lciQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fY2xvc2VQb3BvdmVyKCkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLl9jbG9zZVBvcG92ZXIoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcG9wb3ZlclNlcnZpY2UuYWN0aXZlRWxlbWVudEdVSUQgIT09IHRoaXMuX2d1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9ob3N0Qm91bmRzID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSB0aGlzLl9wb3BvdmVyU2VydmljZS5vcGVuUG9wb3ZlcihcbiAgICAgICAgdGhpcy5fZWxSZWYsXG4gICAgICAgIHRoaXMudGVtcGxhdGUsXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5fcG9wb3ZlclJlZixcbiAgICAgICAgdGhpcy5wb3NpdGlvblxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbW91c2VNb3ZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuX3dyYXBwZXJFbGVtZW50KSxcbiAgICAgICAgZmlsdGVyKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9wb3BvdmVyUmVmLmF1dG9DbG9zZSAmJiB0aGlzLl9tb3VzZUxlZnRUaGVUYXJnZXRzKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIC8vXG4gICAgLy8gcmV0dXJuIHRoaXMuX21vdXNlTGVhdmUkXG4gICAgLy8gICAucGlwZShcbiAgICAvLyAgICAgLy9cbiAgICAvLyAgICAgdGltZW91dFdpdGgoMjAwLCBtb3VzZU1vdmUkKSxcbiAgICAvLyAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBtb3VzZSBsZWZ0IHRhcmdldCBvciBwb3BvdmVyIHJlY3RzXG4gIHByaXZhdGUgX21vdXNlTGVmdFRoZVRhcmdldHMoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBob3N0Qm91bmRzID0gdGhpcy5faG9zdEJvdW5kcztcbiAgICBjb25zdCBwb3BvdmVyQm91bmRzID0gdGhpcy5fd3JhcHBlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBwb2ludEluSG9zdFJlY3QgPSBwb2ludEluUmVjdChcbiAgICAgIGhvc3RCb3VuZHMueCxcbiAgICAgIGhvc3RCb3VuZHMueSxcbiAgICAgIGhvc3RCb3VuZHMueCArIGhvc3RCb3VuZHMud2lkdGgsXG4gICAgICBob3N0Qm91bmRzLnkgKyBob3N0Qm91bmRzLmhlaWdodCxcbiAgICAgIGV2ZW50LngsXG4gICAgICBldmVudC55XG4gICAgKTtcblxuICAgIGNvbnN0IHBvaW50SW5Qb3BvdmVyUmVjdCA9IHBvaW50SW5SZWN0KFxuICAgICAgcG9wb3ZlckJvdW5kcy54LFxuICAgICAgcG9wb3ZlckJvdW5kcy55LFxuICAgICAgcG9wb3ZlckJvdW5kcy54ICsgcG9wb3ZlckJvdW5kcy53aWR0aCxcbiAgICAgIHBvcG92ZXJCb3VuZHMueSArIHBvcG92ZXJCb3VuZHMuaGVpZ2h0LFxuICAgICAgZXZlbnQueCxcbiAgICAgIGV2ZW50LnlcbiAgICApO1xuXG4gICAgcmV0dXJuICFwb2ludEluSG9zdFJlY3QgJiYgIXBvaW50SW5Qb3BvdmVyUmVjdDtcbiAgfVxufVxuIl19
|
|
@@ -466,11 +466,16 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
466
466
|
});
|
|
467
467
|
}
|
|
468
468
|
_listenMouseHostLeave$() {
|
|
469
|
-
|
|
469
|
+
return this._mouseMove$
|
|
470
470
|
.pipe(debounceTime(50), filter(() => !!this._wrapperElement), filter((event) => {
|
|
471
471
|
return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);
|
|
472
472
|
}));
|
|
473
|
-
|
|
473
|
+
//
|
|
474
|
+
// return this._mouseLeave$
|
|
475
|
+
// .pipe(
|
|
476
|
+
// //
|
|
477
|
+
// timeoutWith(200, mouseMove$),
|
|
478
|
+
// );
|
|
474
479
|
}
|
|
475
480
|
// Check if mouse left target or popover rects
|
|
476
481
|
_mouseLeftTheTargets(event) {
|