{"version":3,"file":"acorex-cdk-double-click.mjs","sources":["../tmp-esm2022/double-click/lib/double-click.directive.js","../tmp-esm2022/double-click/acorex-cdk-double-click.js"],"sourcesContent":["import { Directive, ElementRef, inject, input, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive to detect single-click and double-click events on the host element.\n * Supports both desktop (click-based detection) and mobile (touchend) events.\n * Prevents native click event propagation and emits separate single-click and double-click events.\n * Can be disabled to allow native DOM behavior (click and dblclick events).\n *\n * Usage:\n * <button\n *   axDoubleClick\n *   [duration]=\"300\"\n *   [disabled]=\"false\"\n *   (onClick)=\"onSingleClick($event)\"\n *   (onDblClick)=\"onDoubleClick($event)\"\n * >Click me</button>\n */\nexport class AXDoubleClickDirective {\n    constructor() {\n        this.elementRef = inject(ElementRef);\n        /**\n         * Input to configure the duration in milliseconds for detecting double-clicks.\n         * Defaults to 250ms.\n         * Two clicks/taps within this duration are considered a double-click.\n         */\n        this.duration = input(250, ...(ngDevMode ? [{ debugName: \"duration\" }] : []));\n        /**\n         * Input to disable the directive's custom click handling.\n         * When true, native click and dblclick events will fire normally (DOM default behavior).\n         * When false (default), the directive prevents default and emits custom single/double-click events.\n         * Defaults to false.\n         */\n        this.disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n        /**\n         * Output event emitted when a single-click is detected.\n         * Emits after the configured duration milliseconds if no second click occurs.\n         * Emits the MouseEvent.\n         */\n        this.onClick = output();\n        /**\n         * Output event emitted when a double-click is detected.\n         * Emits when two clicks occur within the configured duration milliseconds.\n         * Emits the Event (MouseEvent for desktop, TouchEvent for mobile).\n         */\n        this.onDblClick = output();\n        this.lastClick = 0;\n        this.lastTap = 0;\n        this.clickTimeout = null;\n        this.pendingClickEvent = null;\n    }\n    /**\n     * Handles click events and detects both single-clicks and double-clicks.\n     * Prevents native click propagation and emits appropriate events.\n     * When disabled is true, emits click immediately, still detects double-clicks, and allows native DOM behavior (no preventDefault).\n     */\n    handleClick(event) {\n        const duration = this.duration();\n        const currentTime = new Date().getTime();\n        const clickGap = currentTime - this.lastClick;\n        // If disabled, emit click immediately and still track for double-click, but don't prevent default\n        if (this.disabled()) {\n            // Emit single click immediately\n            this.onClick.emit(event);\n            // Still track for double-click detection\n            if (clickGap > 0 && clickGap < duration) {\n                // Double-click detected - emit double-click\n                if (this.clickTimeout) {\n                    clearTimeout(this.clickTimeout);\n                    this.clickTimeout = null;\n                }\n                if (this.pendingClickEvent) {\n                    this.pendingClickEvent = null;\n                }\n                this.onDblClick.emit(event);\n                this.lastClick = 0;\n            }\n            else {\n                // First click - store it and wait to see if a second click comes\n                this.lastClick = currentTime;\n                this.pendingClickEvent = event;\n                if (this.clickTimeout) {\n                    clearTimeout(this.clickTimeout);\n                }\n                // Set timeout to emit double-click if second click occurs within duration\n                // Note: We already emitted single-click, so we just track for double-click here\n                this.clickTimeout = setTimeout(() => {\n                    // No double-click detected within duration, reset state\n                    this.pendingClickEvent = null;\n                    this.lastClick = 0;\n                    this.clickTimeout = null;\n                }, duration);\n            }\n            // Don't prevent default - allow native click and dblclick to fire\n            return;\n        }\n        // When enabled, prevent the native click event from propagating\n        event.preventDefault();\n        event.stopPropagation();\n        event.stopImmediatePropagation();\n        if (clickGap > 0 && clickGap < duration) {\n            // Double-click detected - clear pending single click and emit double-click\n            if (this.clickTimeout) {\n                clearTimeout(this.clickTimeout);\n                this.clickTimeout = null;\n            }\n            if (this.pendingClickEvent) {\n                this.pendingClickEvent = null;\n            }\n            this.onDblClick.emit(event);\n            this.lastClick = 0;\n        }\n        else {\n            // First click - store it and wait to see if a second click comes\n            this.lastClick = currentTime;\n            this.pendingClickEvent = event;\n            if (this.clickTimeout) {\n                clearTimeout(this.clickTimeout);\n            }\n            // Set timeout to emit single-click if no second click occurs\n            this.clickTimeout = setTimeout(() => {\n                // No double-click detected, emit single-click\n                if (this.pendingClickEvent) {\n                    this.onClick.emit(this.pendingClickEvent);\n                    this.pendingClickEvent = null;\n                }\n                this.lastClick = 0;\n                this.clickTimeout = null;\n            }, duration);\n        }\n    }\n    /**\n     * Handles touchend events (mobile) to detect double-tap.\n     * When disabled is true, allows native touch behavior.\n     */\n    onTouchEnd(event) {\n        // If disabled, let native events fire normally\n        if (this.disabled()) {\n            return;\n        }\n        const duration = this.duration();\n        const currentTime = new Date().getTime();\n        const tapGap = currentTime - this.lastTap;\n        if (tapGap > 0 && tapGap < duration) {\n            // Detected a double-tap\n            this.onDblClick.emit(event);\n            event.preventDefault(); // Prevent further default actions\n        }\n        this.lastTap = currentTime;\n    }\n    ngOnDestroy() {\n        if (this.clickTimeout) {\n            clearTimeout(this.clickTimeout);\n            this.clickTimeout = null;\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDoubleClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXDoubleClickDirective, isStandalone: true, selector: \"[axDoubleClick]\", inputs: { duration: { classPropertyName: \"duration\", publicName: \"duration\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\", onDblClick: \"onDblClick\" }, host: { listeners: { \"click\": \"handleClick($event)\", \"touchend\": \"onTouchEnd($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDoubleClickDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[axDoubleClick]',\n                    host: {\n                        '(click)': 'handleClick($event)',\n                        '(touchend)': 'onTouchEnd($event)',\n                    },\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91YmxlLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9kb3VibGUtY2xpY2svc3JjL2xpYi9kb3VibGUtY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4Rjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVFILE1BQU0sT0FBTyxzQkFBc0I7SUFQbkM7UUFRVSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhDOzs7O1dBSUc7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFTLEdBQUcsb0RBQUMsQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxvREFBQyxDQUFDO1FBRXhDOzs7O1dBSUc7UUFDSSxZQUFPLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFdEM7Ozs7V0FJRztRQUNJLGVBQVUsR0FBRyxNQUFNLEVBQVMsQ0FBQztRQUU1QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGlCQUFZLEdBQXlDLElBQUksQ0FBQztRQUMxRCxzQkFBaUIsR0FBc0IsSUFBSSxDQUFDO0tBc0hyRDtJQXBIQzs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTlDLGtHQUFrRztRQUNsRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFB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QUFxQjt3QkFDaEMsWUFBWSxFQUFFLG9CQUFvQjtxQkFDbkM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIGRldGVjdCBzaW5nbGUtY2xpY2sgYW5kIGRvdWJsZS1jbGljayBldmVudHMgb24gdGhlIGhvc3QgZWxlbWVudC5cbiAqIFN1cHBvcnRzIGJvdGggZGVza3RvcCAoY2xpY2stYmFzZWQgZGV0ZWN0aW9uKSBhbmQgbW9iaWxlICh0b3VjaGVuZCkgZXZlbnRzLlxuICogUHJldmVudHMgbmF0aXZlIGNsaWNrIGV2ZW50IHByb3BhZ2F0aW9uIGFuZCBlbWl0cyBzZXBhcmF0ZSBzaW5nbGUtY2xpY2sgYW5kIGRvdWJsZS1jbGljayBldmVudHMuXG4gKiBDYW4gYmUgZGlzYWJsZWQgdG8gYWxsb3cgbmF0aXZlIERPTSBiZWhhdmlvciAoY2xpY2sgYW5kIGRibGNsaWNrIGV2ZW50cykuXG4gKlxuICogVXNhZ2U6XG4gKiA8YnV0dG9uXG4gKiAgIGF4RG91YmxlQ2xpY2tcbiAqICAgW2R1cmF0aW9uXT1cIjMwMFwiXG4gKiAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gKiAgIChvbkNsaWNrKT1cIm9uU2luZ2xlQ2xpY2soJGV2ZW50KVwiXG4gKiAgIChvbkRibENsaWNrKT1cIm9uRG91YmxlQ2xpY2soJGV2ZW50KVwiXG4gKiA+Q2xpY2sgbWU8L2J1dHRvbj5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RG91YmxlQ2xpY2tdJyxcbiAgaG9zdDoge1xuICAgICcoY2xpY2spJzogJ2hhbmRsZUNsaWNrKCRldmVudCknLFxuICAgICcodG91Y2hlbmQpJzogJ29uVG91Y2hFbmQoJGV2ZW50KScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRG91YmxlQ2xpY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIElucHV0IHRvIGNvbmZpZ3VyZSB0aGUgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIGZvciBkZXRlY3RpbmcgZG91YmxlLWNsaWNrcy5cbiAgICogRGVmYXVsdHMgdG8gMjUwbXMuXG4gICAqIFR3byBjbGlja3MvdGFwcyB3aXRoaW4gdGhpcyBkdXJhdGlvbiBhcmUgY29uc2lkZXJlZCBhIGRvdWJsZS1jbGljay5cbiAgICovXG4gIHB1YmxpYyBkdXJhdGlvbiA9IGlucHV0PG51bWJlcj4oMjUwKTtcblxuICAvKipcbiAgICogSW5wdXQgdG8gZGlzYWJsZSB0aGUgZGlyZWN0aXZlJ3MgY3VzdG9tIGNsaWNrIGhhbmRsaW5nLlxuICAgKiBXaGVuIHRydWUsIG5hdGl2ZSBjbGljayBhbmQgZGJsY2xpY2sgZXZlbnRzIHdpbGwgZmlyZSBub3JtYWxseSAoRE9NIGRlZmF1bHQgYmVoYXZpb3IpLlxuICAgKiBXaGVuIGZhbHNlIChkZWZhdWx0KSwgdGhlIGRpcmVjdGl2ZSBwcmV2ZW50cyBkZWZhdWx0IGFuZCBlbWl0cyBjdXN0b20gc2luZ2xlL2RvdWJsZS1jbGljayBldmVudHMuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlZCB3aGVuIGEgc2luZ2xlLWNsaWNrIGlzIGRldGVjdGVkLlxuICAgKiBFbWl0cyBhZnRlciB0aGUgY29uZmlndXJlZCBkdXJhdGlvbiBtaWxsaXNlY29uZHMgaWYgbm8gc2Vjb25kIGNsaWNrIG9jY3Vycy5cbiAgICogRW1pdHMgdGhlIE1vdXNlRXZlbnQuXG4gICAqL1xuICBwdWJsaWMgb25DbGljayA9IG91dHB1dDxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlZCB3aGVuIGEgZG91YmxlLWNsaWNrIGlzIGRldGVjdGVkLlxuICAgKiBFbWl0cyB3aGVuIHR3byBjbGlja3Mgb2NjdXIgd2l0aGluIHRoZSBjb25maWd1cmVkIGR1cmF0aW9uIG1pbGxpc2Vjb25kcy5cbiAgICogRW1pdHMgdGhlIEV2ZW50IChNb3VzZUV2ZW50IGZvciBkZXNrdG9wLCBUb3VjaEV2ZW50IGZvciBtb2JpbGUpLlxuICAgKi9cbiAgcHVibGljIG9uRGJsQ2xpY2sgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBsYXN0Q2xpY2sgPSAwO1xuICBwcml2YXRlIGxhc3RUYXAgPSAwO1xuICBwcml2YXRlIGNsaWNrVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBwZW5kaW5nQ2xpY2tFdmVudDogTW91c2VFdmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGNsaWNrIGV2ZW50cyBhbmQgZGV0ZWN0cyBib3RoIHNpbmdsZS1jbGlja3MgYW5kIGRvdWJsZS1jbGlja3MuXG4gICAqIFByZXZlbnRzIG5hdGl2ZSBjbGljayBwcm9wYWdhdGlvbiBhbmQgZW1pdHMgYXBwcm9wcmlhdGUgZXZlbnRzLlxuICAgKiBXaGVuIGRpc2FibGVkIGlzIHRydWUsIGVtaXRzIGNsaWNrIGltbWVkaWF0ZWx5LCBzdGlsbCBkZXRlY3RzIGRvdWJsZS1jbGlja3MsIGFuZCBhbGxvd3MgbmF0aXZlIERPTSBiZWhhdmlvciAobm8gcHJldmVudERlZmF1bHQpLlxuICAgKi9cbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuZHVyYXRpb24oKTtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGNsaWNrR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RDbGljaztcblxuICAgIC8vIElmIGRpc2FibGVkLCBlbWl0IGNsaWNrIGltbWVkaWF0ZWx5IGFuZCBzdGlsbCB0cmFjayBmb3IgZG91YmxlLWNsaWNrLCBidXQgZG9uJ3QgcHJldmVudCBkZWZhdWx0XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgLy8gRW1pdCBzaW5nbGUgY2xpY2sgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcblxuICAgICAgLy8gU3RpbGwgdHJhY2sgZm9yIGRvdWJsZS1jbGljayBkZXRlY3Rpb25cbiAgICAgIGlmIChjbGlja0dhcCA+IDAgJiYgY2xpY2tHYXAgPCBkdXJhdGlvbikge1xuICAgICAgICAvLyBEb3VibGUtY2xpY2sgZGV0ZWN0ZWQgLSBlbWl0IGRvdWJsZS1jbGlja1xuICAgICAgICBpZiAodGhpcy5jbGlja1RpbWVvdXQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbGlja1RpbWVvdXQpO1xuICAgICAgICAgIHRoaXMuY2xpY2tUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZW5kaW5nQ2xpY2tFdmVudCkge1xuICAgICAgICAgIHRoaXMucGVuZGluZ0NsaWNrRXZlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25EYmxDbGljay5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5sYXN0Q2xpY2sgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmlyc3QgY2xpY2sgLSBzdG9yZSBpdCBhbmQgd2FpdCB0byBzZWUgaWYgYSBzZWNvbmQgY2xpY2sgY29tZXNcbiAgICAgICAgdGhpcy5sYXN0Q2xpY2sgPSBjdXJyZW50VGltZTtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ2xpY2tFdmVudCA9IGV2ZW50O1xuXG4gICAgICAgIGlmICh0aGlzLmNsaWNrVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsaWNrVGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGltZW91dCB0byBlbWl0IGRvdWJsZS1jbGljayBpZiBzZWNvbmQgY2xpY2sgb2NjdXJzIHdpdGhpbiBkdXJhdGlvblxuICAgICAgICAvLyBOb3RlOiBXZSBhbHJlYWR5IGVtaXR0ZWQgc2luZ2xlLWNsaWNrLCBzbyB3ZSBqdXN0IHRyYWNrIGZvciBkb3VibGUtY2xpY2sgaGVyZVxuICAgICAgICB0aGlzLmNsaWNrVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIC8vIE5vIGRvdWJsZS1jbGljayBkZXRlY3RlZCB3aXRoaW4gZHVyYXRpb24sIHJlc2V0IHN0YXRlXG4gICAgICAgICAgdGhpcy5wZW5kaW5nQ2xpY2tFdmVudCA9IG51bGw7XG4gICAgICAgICAgdGhpcy5sYXN0Q2xpY2sgPSAwO1xuICAgICAgICAgIHRoaXMuY2xpY2tUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfSwgZHVyYXRpb24pO1xuICAgICAgfVxuXG4gICAgICAvLyBEb24ndCBwcmV2ZW50IGRlZmF1bHQgLSBhbGxvdyBuYXRpdmUgY2xpY2sgYW5kIGRibGNsaWNrIHRvIGZpcmVcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXaGVuIGVuYWJsZWQsIHByZXZlbnQgdGhlIG5hdGl2ZSBjbGljayBldmVudCBmcm9tIHByb3BhZ2F0aW5nXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgIGlmIChjbGlja0dhcCA+IDAgJiYgY2xpY2tHYXAgPCBkdXJhdGlvbikge1xuICAgICAgLy8gRG91YmxlLWNsaWNrIGRldGVjdGVkIC0gY2xlYXIgcGVuZGluZyBzaW5nbGUgY2xpY2sgYW5kIGVtaXQgZG91YmxlLWNsaWNrXG4gICAgICBpZiAodGhpcy5jbGlja1RpbWVvdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xpY2tUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5jbGlja1RpbWVvdXQgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGVuZGluZ0NsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ2xpY2tFdmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLm9uRGJsQ2xpY2suZW1pdChldmVudCk7XG4gICAgICB0aGlzLmxhc3RDbGljayA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZpcnN0IGNsaWNrIC0gc3RvcmUgaXQgYW5kIHdhaXQgdG8gc2VlIGlmIGEgc2Vjb25kIGNsaWNrIGNvbWVzXG4gICAgICB0aGlzLmxhc3RDbGljayA9IGN1cnJlbnRUaW1lO1xuICAgICAgdGhpcy5wZW5kaW5nQ2xpY2tFdmVudCA9IGV2ZW50O1xuXG4gICAgICBpZiAodGhpcy5jbGlja1RpbWVvdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xpY2tUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHRpbWVvdXQgdG8gZW1pdCBzaW5nbGUtY2xpY2sgaWYgbm8gc2Vjb25kIGNsaWNrIG9jY3Vyc1xuICAgICAgdGhpcy5jbGlja1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gTm8gZG91YmxlLWNsaWNrIGRldGVjdGVkLCBlbWl0IHNpbmdsZS1jbGlja1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nQ2xpY2tFdmVudCkge1xuICAgICAgICAgIHRoaXMub25DbGljay5lbWl0KHRoaXMucGVuZGluZ0NsaWNrRXZlbnQpO1xuICAgICAgICAgIHRoaXMucGVuZGluZ0NsaWNrRXZlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdENsaWNrID0gMDtcbiAgICAgICAgdGhpcy5jbGlja1RpbWVvdXQgPSBudWxsO1xuICAgICAgfSwgZHVyYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoZW5kIGV2ZW50cyAobW9iaWxlKSB0byBkZXRlY3QgZG91YmxlLXRhcC5cbiAgICogV2hlbiBkaXNhYmxlZCBpcyB0cnVlLCBhbGxvd3MgbmF0aXZlIHRvdWNoIGJlaGF2aW9yLlxuICAgKi9cbiAgb25Ub3VjaEVuZChldmVudDogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIC8vIElmIGRpc2FibGVkLCBsZXQgbmF0aXZlIGV2ZW50cyBmaXJlIG5vcm1hbGx5XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5kdXJhdGlvbigpO1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdGFwR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RUYXA7XG5cbiAgICBpZiAodGFwR2FwID4gMCAmJiB0YXBHYXAgPCBkdXJhdGlvbikge1xuICAgICAgLy8gRGV0ZWN0ZWQgYSBkb3VibGUtdGFwXG4gICAgICB0aGlzLm9uRGJsQ2xpY2suZW1pdChldmVudCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50IGZ1cnRoZXIgZGVmYXVsdCBhY3Rpb25zXG4gICAgfVxuICAgIHRoaXMubGFzdFRhcCA9IGN1cnJlbnRUaW1lO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xpY2tUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5jbGlja1RpbWVvdXQpO1xuICAgICAgdGhpcy5jbGlja1RpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1kb3VibGUtY2xpY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZG91YmxlLWNsaWNrL3NyYy9hY29yZXgtY2RrLWRvdWJsZS1jbGljay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}