@nativescript-community/ui-drawer
Version:
Easily add a side drawer (side menu) to your projects.
224 lines • 21.7 kB
JavaScript
import { Component, Directive, ElementRef, Inject, NgModule, ViewContainerRef } from '@angular/core';
import { registerElement } from '@nativescript/angular';
import { Drawer } from '@nativescript-community/ui-drawer';
import * as i0 from "@angular/core";
const _c0 = ["*"];
const LEFTDRAWER = 'LeftDrawer';
const RIGHTDRAWER = 'RightDrawer';
const TOPDRAWER = 'TopDrawer';
const BOTTOMDRAWER = 'BottomDrawer';
const MAINCONTENT = 'MainContent';
/**
* This is the SideDrawer component. It separates your mobile app's screen
* into a main part and a menu part whereby the menu part is shown upon a swipe
* gesture using a transition effect.
*/
export class DrawerComponent {
elementRef;
viewContainer;
drawer;
mainTemplate;
drawerTemplate;
_gestureEnabled;
constructor(elementRef, viewContainer) {
this.elementRef = elementRef;
this.viewContainer = viewContainer;
this.drawer = this.elementRef.nativeElement;
}
get nativeElement() {
return this.drawer;
}
set gestureEnabled(value) {
this._gestureEnabled = value;
this.updateGestureEnabled();
}
updateGestureEnabled() {
this.drawer.gestureEnabled = this._gestureEnabled;
}
static ɵfac = function DrawerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DrawerComponent)(i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(ViewContainerRef)); };
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawerComponent, selectors: [["Drawer"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DrawerComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵprojectionDef();
i0.ɵɵprojection(0);
} }, encapsulation: 2 });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerComponent, [{
type: Component,
args: [{
selector: 'Drawer',
template: '<ng-content></ng-content>'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }, { type: i0.ViewContainerRef, decorators: [{
type: Inject,
args: [ViewContainerRef]
}] }], null); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DrawerComponent, { className: "DrawerComponent", filePath: "module.ts", lineNumber: 26 }); })();
/**
* Directive identifying the left drawer
*/
export class LeftDrawerDirective {
_elementRef;
constructor(_elementRef) {
this._elementRef = _elementRef;
this._elementRef.nativeElement.id = LEFTDRAWER;
}
static ɵfac = function LeftDrawerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LeftDrawerDirective)(i0.ɵɵdirectiveInject(ElementRef)); };
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LeftDrawerDirective, selectors: [["", "leftDrawer", ""]] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LeftDrawerDirective, [{
type: Directive,
args: [{
selector: '[leftDrawer]'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }], null); })();
/**
* Directive identifying the right drawer
*/
export class RightDrawerDirective {
_elementRef;
constructor(_elementRef) {
this._elementRef = _elementRef;
this._elementRef.nativeElement.id = RIGHTDRAWER;
}
static ɵfac = function RightDrawerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RightDrawerDirective)(i0.ɵɵdirectiveInject(ElementRef)); };
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RightDrawerDirective, selectors: [["", "rightDrawer", ""]] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RightDrawerDirective, [{
type: Directive,
args: [{
selector: '[rightDrawer]'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }], null); })();
/**
* Directive identifying the right drawer
*/
export class TopDrawerDirective {
_elementRef;
constructor(_elementRef) {
this._elementRef = _elementRef;
this._elementRef.nativeElement.id = TOPDRAWER;
}
static ɵfac = function TopDrawerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TopDrawerDirective)(i0.ɵɵdirectiveInject(ElementRef)); };
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TopDrawerDirective, selectors: [["", "topDrawer", ""]] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TopDrawerDirective, [{
type: Directive,
args: [{
selector: '[topDrawer]'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }], null); })();
/**
* Directive identifying the right drawer
*/
export class BottomDrawerDirective {
_elementRef;
constructor(_elementRef) {
this._elementRef = _elementRef;
this._elementRef.nativeElement.id = BOTTOMDRAWER;
}
static ɵfac = function BottomDrawerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BottomDrawerDirective)(i0.ɵɵdirectiveInject(ElementRef)); };
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BottomDrawerDirective, selectors: [["", "bottomDrawer", ""]] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomDrawerDirective, [{
type: Directive,
args: [{
selector: '[bottomDrawer]'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }], null); })();
/**
* Directive identifying the main content.
*/
export class MainContentDirective {
_elementRef;
constructor(_elementRef) {
this._elementRef = _elementRef;
this._elementRef.nativeElement.id = MAINCONTENT;
}
static ɵfac = function MainContentDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MainContentDirective)(i0.ɵɵdirectiveInject(ElementRef)); };
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MainContentDirective, selectors: [["", "mainContent", ""]] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MainContentDirective, [{
type: Directive,
args: [{
selector: '[mainContent]'
}]
}], () => [{ type: i0.ElementRef, decorators: [{
type: Inject,
args: [ElementRef]
}] }], null); })();
const sideDrawerMeta = {
insertChild: (parent, child) => {
const drawer = parent;
const childView = child;
if (childView.id === MAINCONTENT) {
drawer.mainContent = childView;
}
if (childView.id === LEFTDRAWER) {
drawer.leftDrawer = childView;
}
if (childView.id === RIGHTDRAWER) {
drawer.rightDrawer = childView;
}
if (childView.id === TOPDRAWER) {
drawer.topDrawer = childView;
}
if (childView.id === BOTTOMDRAWER) {
drawer.bottomDrawer = childView;
}
},
removeChild: (parent, child) => {
const drawer = parent;
const childView = child;
if (childView.id === MAINCONTENT) {
drawer.mainContent = null;
}
if (childView.id === LEFTDRAWER) {
drawer.leftDrawer = null;
}
if (childView.id === RIGHTDRAWER) {
drawer.rightDrawer = null;
}
if (childView.id === TOPDRAWER) {
drawer.topDrawer = null;
}
if (childView.id === BOTTOMDRAWER) {
drawer.bottomDrawer = null;
}
}
};
/**
* Directives identifying the Drawer.
*/
export const SIDEDRAWER_DIRECTIVES = [LeftDrawerDirective, RightDrawerDirective, TopDrawerDirective, BottomDrawerDirective, MainContentDirective];
registerElement('Drawer', () => Drawer, sideDrawerMeta);
/**
* NgModule containing all of the RadSideDrawer directives.
*/
export class DrawerModule {
static ɵfac = function DrawerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DrawerModule)(); };
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DrawerModule });
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerModule, [{
type: NgModule,
args: [{
declarations: [DrawerComponent, SIDEDRAWER_DIRECTIVES],
exports: [DrawerComponent, SIDEDRAWER_DIRECTIVES]
}]
}], null, null); })();
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrawerModule, { declarations: [DrawerComponent, LeftDrawerDirective, RightDrawerDirective, TopDrawerDirective, BottomDrawerDirective, MainContentDirective], exports: [DrawerComponent, LeftDrawerDirective, RightDrawerDirective, TopDrawerDirective, BottomDrawerDirective, MainContentDirective] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3VpLWRyYXdlci9hbmd1bGFyL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlDLE1BQU0sRUFBUyxRQUFRLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hLLE9BQU8sRUFBeUIsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFFM0QsTUFBTSxVQUFVLEdBQVcsWUFBWSxDQUFDO0FBQ3hDLE1BQU0sV0FBVyxHQUFXLGFBQWEsQ0FBQztBQUMxQyxNQUFNLFNBQVMsR0FBVyxXQUFXLENBQUM7QUFDdEMsTUFBTSxZQUFZLEdBQVcsY0FBYyxDQUFDO0FBQzVDLE1BQU0sV0FBVyxHQUFXLGFBQWEsQ0FBQztBQVExQzs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFPZTtJQUEwRDtJQU4xRixNQUFNLENBQVM7SUFDZixZQUFZLENBQTBCO0lBQ3RDLGNBQWMsQ0FBMEI7SUFFdkMsZUFBZSxDQUFVO0lBRWpDLFlBQXVDLFVBQXNCLEVBQW9DLGFBQStCO1FBQXpGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBb0Msa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQzVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3RELENBQUM7eUdBdEJRLGVBQWUsdUJBT0osVUFBVSx3QkFBeUMsZ0JBQWdCOzZEQVA5RSxlQUFlOztZQUZiLGtCQUF5Qjs7O2lGQUUzQixlQUFlO2NBSjNCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLDJCQUEyQjthQUN4Qzs7c0JBUWdCLE1BQU07dUJBQUMsVUFBVTs7c0JBQWtDLE1BQU07dUJBQUMsZ0JBQWdCOztrRkFQOUUsZUFBZTtBQXlCNUI7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ1k7SUFBeEMsWUFBd0MsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUNuRCxDQUFDOzZHQUhRLG1CQUFtQix1QkFDUixVQUFVOzZEQURyQixtQkFBbUI7O2lGQUFuQixtQkFBbUI7Y0FIL0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCOztzQkFFZ0IsTUFBTTt1QkFBQyxVQUFVOztBQUlsQzs7R0FFRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFDVztJQUF4QyxZQUF3QyxXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBQ3BELENBQUM7OEdBSFEsb0JBQW9CLHVCQUNULFVBQVU7NkRBRHJCLG9CQUFvQjs7aUZBQXBCLG9CQUFvQjtjQUhoQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7YUFDNUI7O3NCQUVnQixNQUFNO3VCQUFDLFVBQVU7O0FBS2xDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUNhO0lBQXhDLFlBQXdDLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDbEQsQ0FBQzs0R0FIUSxrQkFBa0IsdUJBQ1AsVUFBVTs2REFEckIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBSDlCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTthQUMxQjs7c0JBRWdCLE1BQU07dUJBQUMsVUFBVTs7QUFLbEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBQ1U7SUFBeEMsWUFBd0MsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUNyRCxDQUFDOytHQUhRLHFCQUFxQix1QkFDVixVQUFVOzZEQURyQixxQkFBcUI7O2lGQUFyQixxQkFBcUI7Y0FIakMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7YUFDN0I7O3NCQUVnQixNQUFNO3VCQUFDLFVBQVU7O0FBS2xDOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUNXO0lBQXhDLFlBQXdDLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDcEQsQ0FBQzs4R0FIUSxvQkFBb0IsdUJBQ1QsVUFBVTs2REFEckIsb0JBQW9COztpRkFBcEIsb0JBQW9CO2NBSGhDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTthQUM1Qjs7c0JBRWdCLE1BQU07dUJBQUMsVUFBVTs7QUFLbEMsTUFBTSxjQUFjLEdBQWtCO0lBQ2xDLFdBQVcsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUF1QixDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUF1QixDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUVsSixlQUFlLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztBQUV4RDs7R0FFRztBQUtILE1BQU0sT0FBTyxZQUFZO3NHQUFaLFlBQVk7NERBQVosWUFBWTs7O2lGQUFaLFlBQVk7Y0FKeEIsUUFBUTtlQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQztnQkFDdEQsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO2FBQ3BEOzt3RkFDWSxZQUFZLG1CQS9JWixlQUFlLEVBK0JmLG1CQUFtQixFQVduQixvQkFBb0IsRUFZcEIsa0JBQWtCLEVBWWxCLHFCQUFxQixFQVlyQixvQkFBb0IsYUE5RXBCLGVBQWUsRUErQmYsbUJBQW1CLEVBV25CLG9CQUFvQixFQVlwQixrQkFBa0IsRUFZbEIscUJBQXFCLEVBWXJCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nVmlldywgVmlld0NsYXNzTWV0YSwgcmVnaXN0ZXJFbGVtZW50IH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9hbmd1bGFyJztcbmltcG9ydCB7IERyYXdlciB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLWRyYXdlcic7XG5cbmNvbnN0IExFRlREUkFXRVI6IHN0cmluZyA9ICdMZWZ0RHJhd2VyJztcbmNvbnN0IFJJR0hURFJBV0VSOiBzdHJpbmcgPSAnUmlnaHREcmF3ZXInO1xuY29uc3QgVE9QRFJBV0VSOiBzdHJpbmcgPSAnVG9wRHJhd2VyJztcbmNvbnN0IEJPVFRPTURSQVdFUjogc3RyaW5nID0gJ0JvdHRvbURyYXdlcic7XG5jb25zdCBNQUlOQ09OVEVOVDogc3RyaW5nID0gJ01haW5Db250ZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtRXZlbnRBcmdzIHtcbiAgICBvYmplY3Q6IGFueTtcbiAgICB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcbiAgICByZXR1cm5WYWx1ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgU2lkZURyYXdlciBjb21wb25lbnQuIEl0IHNlcGFyYXRlcyB5b3VyIG1vYmlsZSBhcHAncyBzY3JlZW5cbiAqIGludG8gYSBtYWluIHBhcnQgYW5kIGEgbWVudSBwYXJ0IHdoZXJlYnkgdGhlIG1lbnUgcGFydCBpcyBzaG93biB1cG9uIGEgc3dpcGVcbiAqIGdlc3R1cmUgdXNpbmcgYSB0cmFuc2l0aW9uIGVmZmVjdC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdEcmF3ZXInLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgZHJhd2VyOiBEcmF3ZXI7XG4gICAgcHVibGljIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XG4gICAgcHVibGljIGRyYXdlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblxuICAgIHByaXZhdGUgX2dlc3R1cmVFbmFibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChFbGVtZW50UmVmKSBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKSBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgdGhpcy5kcmF3ZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogRHJhd2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhd2VyO1xuICAgIH1cblxuICAgIHNldCBnZXN0dXJlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9nZXN0dXJlRW5hYmxlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUdlc3R1cmVFbmFibGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVHZXN0dXJlRW5hYmxlZCgpIHtcbiAgICAgICAgdGhpcy5kcmF3ZXIuZ2VzdHVyZUVuYWJsZWQgPSB0aGlzLl9nZXN0dXJlRW5hYmxlZDtcbiAgICB9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGlkZW50aWZ5aW5nIHRoZSBsZWZ0IGRyYXdlclxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tsZWZ0RHJhd2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgTGVmdERyYXdlckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pZCA9IExFRlREUkFXRVI7XG4gICAgfVxufVxuLyoqXG4gKiBEaXJlY3RpdmUgaWRlbnRpZnlpbmcgdGhlIHJpZ2h0IGRyYXdlclxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyaWdodERyYXdlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0RHJhd2VyRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlkID0gUklHSFREUkFXRVI7XG4gICAgfVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSBpZGVudGlmeWluZyB0aGUgcmlnaHQgZHJhd2VyXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RvcERyYXdlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFRvcERyYXdlckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pZCA9IFRPUERSQVdFUjtcbiAgICB9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGlkZW50aWZ5aW5nIHRoZSByaWdodCBkcmF3ZXJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYm90dG9tRHJhd2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgQm90dG9tRHJhd2VyRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlkID0gQk9UVE9NRFJBV0VSO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgaWRlbnRpZnlpbmcgdGhlIG1haW4gY29udGVudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWFpbkNvbnRlbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYWluQ29udGVudERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pZCA9IE1BSU5DT05URU5UO1xuICAgIH1cbn1cblxuY29uc3Qgc2lkZURyYXdlck1ldGE6IFZpZXdDbGFzc01ldGEgPSB7XG4gICAgaW5zZXJ0Q2hpbGQ6IChwYXJlbnQ6IE5nVmlldywgY2hpbGQ6IE5nVmlldykgPT4ge1xuICAgICAgICBjb25zdCBkcmF3ZXIgPSBwYXJlbnQgYXMgYW55IGFzIERyYXdlcjtcbiAgICAgICAgY29uc3QgY2hpbGRWaWV3ID0gY2hpbGQ7XG5cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gTUFJTkNPTlRFTlQpIHtcbiAgICAgICAgICAgIGRyYXdlci5tYWluQ29udGVudCA9IGNoaWxkVmlldztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZFZpZXcuaWQgPT09IExFRlREUkFXRVIpIHtcbiAgICAgICAgICAgIGRyYXdlci5sZWZ0RHJhd2VyID0gY2hpbGRWaWV3O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZFZpZXcuaWQgPT09IFJJR0hURFJBV0VSKSB7XG4gICAgICAgICAgICBkcmF3ZXIucmlnaHREcmF3ZXIgPSBjaGlsZFZpZXc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gVE9QRFJBV0VSKSB7XG4gICAgICAgICAgICBkcmF3ZXIudG9wRHJhd2VyID0gY2hpbGRWaWV3O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZFZpZXcuaWQgPT09IEJPVFRPTURSQVdFUikge1xuICAgICAgICAgICAgZHJhd2VyLmJvdHRvbURyYXdlciA9IGNoaWxkVmlldztcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmVtb3ZlQ2hpbGQ6IChwYXJlbnQ6IE5nVmlldywgY2hpbGQ6IE5nVmlldykgPT4ge1xuICAgICAgICBjb25zdCBkcmF3ZXIgPSBwYXJlbnQgYXMgYW55IGFzIERyYXdlcjtcbiAgICAgICAgY29uc3QgY2hpbGRWaWV3ID0gY2hpbGQ7XG5cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gTUFJTkNPTlRFTlQpIHtcbiAgICAgICAgICAgIGRyYXdlci5tYWluQ29udGVudCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGRWaWV3LmlkID09PSBMRUZURFJBV0VSKSB7XG4gICAgICAgICAgICBkcmF3ZXIubGVmdERyYXdlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gUklHSFREUkFXRVIpIHtcbiAgICAgICAgICAgIGRyYXdlci5yaWdodERyYXdlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gVE9QRFJBV0VSKSB7XG4gICAgICAgICAgICBkcmF3ZXIudG9wRHJhd2VyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hpbGRWaWV3LmlkID09PSBCT1RUT01EUkFXRVIpIHtcbiAgICAgICAgICAgIGRyYXdlci5ib3R0b21EcmF3ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuLyoqXG4gKiBEaXJlY3RpdmVzIGlkZW50aWZ5aW5nIHRoZSBEcmF3ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBTSURFRFJBV0VSX0RJUkVDVElWRVMgPSBbTGVmdERyYXdlckRpcmVjdGl2ZSwgUmlnaHREcmF3ZXJEaXJlY3RpdmUsIFRvcERyYXdlckRpcmVjdGl2ZSwgQm90dG9tRHJhd2VyRGlyZWN0aXZlLCBNYWluQ29udGVudERpcmVjdGl2ZV07XG5cbnJlZ2lzdGVyRWxlbWVudCgnRHJhd2VyJywgKCkgPT4gRHJhd2VyLCBzaWRlRHJhd2VyTWV0YSk7XG5cbi8qKlxuICogTmdNb2R1bGUgY29udGFpbmluZyBhbGwgb2YgdGhlIFJhZFNpZGVEcmF3ZXIgZGlyZWN0aXZlcy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtEcmF3ZXJDb21wb25lbnQsIFNJREVEUkFXRVJfRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogW0RyYXdlckNvbXBvbmVudCwgU0lERURSQVdFUl9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBEcmF3ZXJNb2R1bGUge31cbiJdfQ==