{"version":3,"file":"studiohyperdrive-ngx-gov-flanders.mjs","sources":["../tmp-esm2022/lib/services/acm-component-injection.service.js","../tmp-esm2022/studiohyperdrive-ngx-gov-flanders.js"],"sourcesContent":["import { inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { NgxWindowService } from '@studiohyperdrive/ngx-core';\nimport { first, from, fromEvent, of, retry, switchMap, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\n/**\n * The `NgxAcmComponentInjectionService` is a service that provides methods to inject either a GlobalHeader or a GlobalFooter by ACM to your application.\n */\nexport class NgxAcmComponentInjectionService {\n    constructor() {\n        /**\n         * An instance of the RendererFactory2\n         */\n        this.rendererFactory = inject(RendererFactory2);\n        /**\n         * An instance of the Renderer2\n         */\n        this.renderer = this.rendererFactory.createRenderer(null, null);\n        /**\n         * An instance of the NgxWindowService\n         */\n        this.windowService = inject(NgxWindowService);\n    }\n    /**\n     * Initializes the VO Global Header widget and sets optional applicationMenuLinks.\n     *\n     * @param selector - The selector of the element where the header widget should be mounted.\n     * @param configuration - The configuration object\n     * @param configuration.url - The URL of the widget (e.g. 'https://<environment>.widgets.burgerprofiel.vlaanderen.be/')\n     * @param configuration.id - The ID of the widget (e.g. '7502b557-5d49-4ab3-9995-168718b81be5')\n     * @param configuration.profile - The profile configuration object\n     * @param links - Optional application menu links\n     *\n     * @returns The GlobalHeaderClient object will be returned to allow for custom implementations that are not supported out of the box, see: https://test.widgets.burgerprofiel.dev-vlaanderen.be/docs/global-header/ for more information.\n     */\n    injectGlobalHeaderComponent({ selector, configuration, links, }) {\n        // Denis: The following code should only run in the browser.\n        return this.windowService.runInBrowser(({ browserWindow, browserDocument }) => {\n            // Denis: Create a new script tag\n            return this.injectComponent(browserDocument, selector, configuration, 'GlobalHeaderComponent').pipe(switchMap((headerElement) => {\n                // Denis: Get the GlobalHeaderClient object\n                const headerClient = browserWindow.globalHeaderClient;\n                return from(headerClient.mount(headerElement));\n            }), switchMap(() => {\n                // Denis: If there are no links, fallback to the default links\n                if (!Array.isArray(links) || !links.length) {\n                    return of(null);\n                }\n                // Denis: Get the GlobalHeaderClient object\n                const headerClient = browserWindow.globalHeaderClient;\n                // Denis: Set the optional application menu links\n                return from(headerClient.accessMenu.setApplicationMenuLinks(links));\n            }), switchMap(() => {\n                // Denis: Get the GlobalHeaderClient object\n                const headerClient = browserWindow.globalHeaderClient;\n                // Denis: Set the provided ProfileConfig\n                return headerClient.accessMenu.setProfile(configuration.profile);\n            }), map(() => browserWindow.globalHeaderClient));\n        });\n    }\n    /**\n     * Initializes the VO Global Footer widget and sets optional navigation links.\n     *\n     * @param selector - The selector of the element where the footer widget should be mounted.\n     * @param configuration - The configuration object\n     * @param configuration.url - The URL of the widget (e.g. 'https://<environment>.widgets.burgerprofiel.vlaanderen.be/')\n     * @param configuration.id - The ID of the widget (e.g. '7502b557-5d49-4ab3-9995-168718b81be5')\n     * @param links - Optional navigation links\n     *\n     * @returns The GlobalFooterClient object will be returned to allow for custom implementations that are not supported out of the box, see: https://test.widgets.burgerprofiel.dev-vlaanderen.be/docs/global-footer/ for more information.\n     */\n    injectGlobalFooterComponent({ selector, configuration, links, }) {\n        // Denis: The following code should only run in the browser.\n        return this.windowService.runInBrowser(({ browserWindow, browserDocument }) => {\n            // Denis: Create a new script tag\n            return this.injectComponent(browserDocument, selector, configuration, 'GlobalFooterComponent').pipe(switchMap((footerElement) => {\n                // Denis: When the script is loaded, get the GlobalHeaderClient object\n                const footerClient = browserWindow.globalFooterClient;\n                return from(footerClient.mount(footerElement));\n            }), switchMap(() => {\n                // Denis: If there are no links, fallback to the default links\n                if (!Array.isArray(links) || !links.length) {\n                    return of(null);\n                }\n                // Denis: Get the GlobalHeaderClient object\n                const footerClient = browserWindow.globalFooterClient;\n                // Denis: Set the provided navigation links\n                return from(footerClient.setNavigationLinks(links));\n            }), map(() => browserWindow.globalFooterClient));\n        });\n    }\n    /**\n     * Creates a script tag for the ACMComponent and appends it to the browser\n     *\n     * @private\n     * @param browserDocument - An instance of the browser document\n     * @param configuration - The configuration of the ACM component\n     * @param selector - The selector of the component\n     * @param component - The name of the component we wish to append\n     */\n    injectComponent(browserDocument, selector, configuration, component) {\n        // Denis: Create a new script tag\n        const script = this.renderer.createElement('script');\n        // Denis: Set up the script to load the header widget\n        script.src = configuration.url + 'api/v2/widget/' + configuration.id + '/entry';\n        script.type = 'text/javascript';\n        // Denis: Append the script to the DOM to load it.\n        this.renderer.appendChild(browserDocument.head, script);\n        return fromEvent(script, 'load').pipe(first(), switchMap(() => {\n            // Denis: Mount the provided widget script\n            const element = browserDocument.querySelector(selector);\n            // Iben: If no element was found, we throw an error\n            if (typeof element === 'undefined' || element === null) {\n                return throwError(() => new Error(`NGXGovFlanders: An error occurred when trying to mount the ${component}, the provided targetElement was not found.`));\n            }\n            // Iben: Return the element\n            return of(element);\n        }), retry({\n            count: 5,\n            delay: 100,\n        }));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: NgxAcmComponentInjectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: NgxAcmComponentInjectionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: NgxAcmComponentInjectionService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNtLWNvbXBvbmVudC1pbmplY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9nb3YvZmxhbmRlcnMvc3JjL2xpYi9zZXJ2aWNlcy9hY20tY29tcG9uZW50LWluamVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9yQzs7R0FFRztBQUlILE1BQU0sT0FBTywrQkFBK0I7SUFINUM7UUFJQzs7V0FFRztRQUNLLG9CQUFlLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFOztXQUVHO1FBQ0ssYUFBUSxHQUFjLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RTs7V0FFRztRQUNLLGtCQUFhLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBZ0tuRTtJQTlKQTs7Ozs7Ozs7Ozs7T0FXRztJQUNJLDJCQUEyQixDQUFDLEVBQ2xDLFFBQVEsRUFDUixhQUFhLEVBQ2IsS0FBSyxHQUNzRTtRQUMzRSw0REFBNEQ7UUFDNUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDckMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1lBQ3RDLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQzFCLGVBQWUsRUFDZixRQUFRLEVBQ1IsYUFBYSxFQUNiLHVCQUF1QixDQUN2QixDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsQ0FBQyxhQUEwQixFQUFFLEVBQUU7Z0JBQ3hDLDJDQUEyQztnQkFDM0MsTUFBTSxZQUFZLEdBQXVCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFFMUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsOERBQThEO2dCQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLENBQUM7Z0JBRUQsMkNBQTJDO2dCQUMzQyxNQUFNLFlBQVksR0FBdUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDO2dCQUUxRSxpREFBaUQ7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLDJDQUEyQztnQkFDM0MsTUFBTSxZQUFZLEdBQXVCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFFMUUsd0NBQXdDO2dCQUN4QyxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQzNDLENBQUM7UUFDSCxDQUFDLENBQ0QsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksMkJBQTJCLENBQUMsRUFDbEMsUUFBUSxFQUNSLGFBQWEsRUFDYixLQUFLLEdBQ2tDO1FBQ3ZDLDREQUE0RDtRQUM1RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNyQyxDQUFDLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUU7WUFDdEMsaUNBQWlDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FDMUIsZUFBZSxFQUNmLFFBQVEsRUFDUixhQUFhLEVBQ2IsdUJBQXVCLENBQ3ZCLENBQUMsSUFBSSxDQUNMLFNBQVMsQ0FBQyxDQUFDLGFBQTBCLEVBQUUsRUFBRTtnQkFDeEMsc0VBQXNFO2dCQUN0RSxNQUFNLFlBQVksR0FBdUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDO2dCQUUxRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCw4REFBOEQ7Z0JBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakIsQ0FBQztnQkFFRCwyQ0FBMkM7Z0JBQzNDLE1BQU0sWUFBWSxHQUF1QixhQUFhLENBQUMsa0JBQWtCLENBQUM7Z0JBRTFFLDJDQUEyQztnQkFDM0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUMzQyxDQUFDO1FBQ0gsQ0FBQyxDQUNELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxlQUFlLENBQ3RCLGVBQXlCLEVBQ3pCLFFBQWdCLEVBQ2hCLGFBQTJDLEVBQzNDLFNBQWlCO1FBRWpCLGlDQUFpQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyRCxxREFBcUQ7UUFDckQsTUFBTSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxHQUFHLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ2hGLE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFFaEMsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEMsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLDBDQUEwQztZQUMxQyxNQUFNLE9BQU8sR0FBZ0IsZUFBZSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyRSxtREFBbUQ7WUFDbkQsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN4RCxPQUFPLFVBQVUsQ0FDaEIsR0FBRyxFQUFFLENBQ0osSUFBSSxLQUFLLENBQ1IsOERBQThELFNBQVMsNkNBQTZDLENBQ3BILENBQ0YsQ0FBQztZQUNILENBQUM7WUFFRCwyQkFBMkI7WUFDM0IsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDO1lBQ0wsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsR0FBRztTQUNWLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzs4R0EzS1csK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FGL0IsTUFBTTs7MkZBRU4sK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHbG9iYWxGb290ZXJDbGllbnQgfSBmcm9tICdAZ292ZmxhbmRlcnMvdmwtd2lkZ2V0LWdsb2JhbC1mb290ZXItdHlwZXMnO1xuaW1wb3J0IHsgR2xvYmFsSGVhZGVyQ2xpZW50IH0gZnJvbSAnQGdvdmZsYW5kZXJzL3ZsLXdpZGdldC1nbG9iYWwtaGVhZGVyLXR5cGVzJztcbmltcG9ydCB7IE5neFdpbmRvd1NlcnZpY2UgfSBmcm9tICdAc3R1ZGlvaHlwZXJkcml2ZS9uZ3gtY29yZSc7XG5pbXBvcnQgeyBmaXJzdCwgZnJvbSwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgcmV0cnksIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcblx0Tmd4QWNtQ29tcG9uZW50Q29uZmlndXJhdGlvbixcblx0Tmd4QWNtQ29tcG9uZW50SW5qZWN0aW9uQ29uZmlndXJhdGlvbixcblx0Tmd4QWNtSGVhZGVyQ29tcG9uZW50Q29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBgTmd4QWNtQ29tcG9uZW50SW5qZWN0aW9uU2VydmljZWAgaXMgYSBzZXJ2aWNlIHRoYXQgcHJvdmlkZXMgbWV0aG9kcyB0byBpbmplY3QgZWl0aGVyIGEgR2xvYmFsSGVhZGVyIG9yIGEgR2xvYmFsRm9vdGVyIGJ5IEFDTSB0byB5b3VyIGFwcGxpY2F0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmd4QWNtQ29tcG9uZW50SW5qZWN0aW9uU2VydmljZSB7XG5cdC8qKlxuXHQgKiBBbiBpbnN0YW5jZSBvZiB0aGUgUmVuZGVyZXJGYWN0b3J5MlxuXHQgKi9cblx0cHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XG5cdC8qKlxuXHQgKiBBbiBpbnN0YW5jZSBvZiB0aGUgUmVuZGVyZXIyXG5cdCAqL1xuXHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblx0LyoqXG5cdCAqIEFuIGluc3RhbmNlIG9mIHRoZSBOZ3hXaW5kb3dTZXJ2aWNlXG5cdCAqL1xuXHRwcml2YXRlIHdpbmRvd1NlcnZpY2U6IE5neFdpbmRvd1NlcnZpY2UgPSBpbmplY3QoTmd4V2luZG93U2VydmljZSk7XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBWTyBHbG9iYWwgSGVhZGVyIHdpZGdldCBhbmQgc2V0cyBvcHRpb25hbCBhcHBsaWNhdGlvbk1lbnVMaW5rcy5cblx0ICpcblx0ICogQHBhcmFtIHNlbGVjdG9yIC0gVGhlIHNlbGVjdG9yIG9mIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBoZWFkZXIgd2lkZ2V0IHNob3VsZCBiZSBtb3VudGVkLlxuXHQgKiBAcGFyYW0gY29uZmlndXJhdGlvbiAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdFxuXHQgKiBAcGFyYW0gY29uZmlndXJhdGlvbi51cmwgLSBUaGUgVVJMIG9mIHRoZSB3aWRnZXQgKGUuZy4gJ2h0dHBzOi8vPGVudmlyb25tZW50Pi53aWRnZXRzLmJ1cmdlcnByb2ZpZWwudmxhYW5kZXJlbi5iZS8nKVxuXHQgKiBAcGFyYW0gY29uZmlndXJhdGlvbi5pZCAtIFRoZSBJRCBvZiB0aGUgd2lkZ2V0IChlLmcuICc3NTAyYjU1Ny01ZDQ5LTRhYjMtOTk5NS0xNjg3MThiODFiZTUnKVxuXHQgKiBAcGFyYW0gY29uZmlndXJhdGlvbi5wcm9maWxlIC0gVGhlIHByb2ZpbGUgY29uZmlndXJhdGlvbiBvYmplY3Rcblx0ICogQHBhcmFtIGxpbmtzIC0gT3B0aW9uYWwgYXBwbGljYXRpb24gbWVudSBsaW5rc1xuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgR2xvYmFsSGVhZGVyQ2xpZW50IG9iamVjdCB3aWxsIGJlIHJldHVybmVkIHRvIGFsbG93IGZvciBjdXN0b20gaW1wbGVtZW50YXRpb25zIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgb3V0IG9mIHRoZSBib3gsIHNlZTogaHR0cHM6Ly90ZXN0LndpZGdldHMuYnVyZ2VycHJvZmllbC5kZXYtdmxhYW5kZXJlbi5iZS9kb2NzL2dsb2JhbC1oZWFkZXIvIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXHQgKi9cblx0cHVibGljIGluamVjdEdsb2JhbEhlYWRlckNvbXBvbmVudCh7XG5cdFx0c2VsZWN0b3IsXG5cdFx0Y29uZmlndXJhdGlvbixcblx0XHRsaW5rcyxcblx0fTogTmd4QWNtQ29tcG9uZW50SW5qZWN0aW9uQ29uZmlndXJhdGlvbjxOZ3hBY21IZWFkZXJDb21wb25lbnRDb25maWd1cmF0aW9uPik6IE9ic2VydmFibGU8R2xvYmFsSGVhZGVyQ2xpZW50PiB7XG5cdFx0Ly8gRGVuaXM6IFRoZSBmb2xsb3dpbmcgY29kZSBzaG91bGQgb25seSBydW4gaW4gdGhlIGJyb3dzZXIuXG5cdFx0cmV0dXJuIHRoaXMud2luZG93U2VydmljZS5ydW5JbkJyb3dzZXI8T2JzZXJ2YWJsZTxHbG9iYWxIZWFkZXJDbGllbnQ+Pihcblx0XHRcdCh7IGJyb3dzZXJXaW5kb3csIGJyb3dzZXJEb2N1bWVudCB9KSA9PiB7XG5cdFx0XHRcdC8vIERlbmlzOiBDcmVhdGUgYSBuZXcgc2NyaXB0IHRhZ1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5pbmplY3RDb21wb25lbnQoXG5cdFx0XHRcdFx0YnJvd3NlckRvY3VtZW50LFxuXHRcdFx0XHRcdHNlbGVjdG9yLFxuXHRcdFx0XHRcdGNvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdFx0J0dsb2JhbEhlYWRlckNvbXBvbmVudCdcblx0XHRcdFx0KS5waXBlKFxuXHRcdFx0XHRcdHN3aXRjaE1hcCgoaGVhZGVyRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRcdC8vIERlbmlzOiBHZXQgdGhlIEdsb2JhbEhlYWRlckNsaWVudCBvYmplY3Rcblx0XHRcdFx0XHRcdGNvbnN0IGhlYWRlckNsaWVudDogR2xvYmFsSGVhZGVyQ2xpZW50ID0gYnJvd3NlcldpbmRvdy5nbG9iYWxIZWFkZXJDbGllbnQ7XG5cblx0XHRcdFx0XHRcdHJldHVybiBmcm9tKGhlYWRlckNsaWVudC5tb3VudChoZWFkZXJFbGVtZW50KSk7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0c3dpdGNoTWFwKCgpID0+IHtcblx0XHRcdFx0XHRcdC8vIERlbmlzOiBJZiB0aGVyZSBhcmUgbm8gbGlua3MsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGxpbmtzXG5cdFx0XHRcdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkobGlua3MpIHx8ICFsaW5rcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG9mKG51bGwpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBEZW5pczogR2V0IHRoZSBHbG9iYWxIZWFkZXJDbGllbnQgb2JqZWN0XG5cdFx0XHRcdFx0XHRjb25zdCBoZWFkZXJDbGllbnQ6IEdsb2JhbEhlYWRlckNsaWVudCA9IGJyb3dzZXJXaW5kb3cuZ2xvYmFsSGVhZGVyQ2xpZW50O1xuXG5cdFx0XHRcdFx0XHQvLyBEZW5pczogU2V0IHRoZSBvcHRpb25hbCBhcHBsaWNhdGlvbiBtZW51IGxpbmtzXG5cdFx0XHRcdFx0XHRyZXR1cm4gZnJvbShoZWFkZXJDbGllbnQuYWNjZXNzTWVudS5zZXRBcHBsaWNhdGlvbk1lbnVMaW5rcyhsaW5rcykpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XG5cdFx0XHRcdFx0XHQvLyBEZW5pczogR2V0IHRoZSBHbG9iYWxIZWFkZXJDbGllbnQgb2JqZWN0XG5cdFx0XHRcdFx0XHRjb25zdCBoZWFkZXJDbGllbnQ6IEdsb2JhbEhlYWRlckNsaWVudCA9IGJyb3dzZXJXaW5kb3cuZ2xvYmFsSGVhZGVyQ2xpZW50O1xuXG5cdFx0XHRcdFx0XHQvLyBEZW5pczogU2V0IHRoZSBwcm92aWRlZCBQcm9maWxlQ29uZmlnXG5cdFx0XHRcdFx0XHRyZXR1cm4gaGVhZGVyQ2xpZW50LmFjY2Vzc01lbnUuc2V0UHJvZmlsZShjb25maWd1cmF0aW9uLnByb2ZpbGUpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdG1hcCgoKSA9PiBicm93c2VyV2luZG93Lmdsb2JhbEhlYWRlckNsaWVudClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBWTyBHbG9iYWwgRm9vdGVyIHdpZGdldCBhbmQgc2V0cyBvcHRpb25hbCBuYXZpZ2F0aW9uIGxpbmtzLlxuXHQgKlxuXHQgKiBAcGFyYW0gc2VsZWN0b3IgLSBUaGUgc2VsZWN0b3Igb2YgdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGZvb3RlciB3aWRnZXQgc2hvdWxkIGJlIG1vdW50ZWQuXG5cdCAqIEBwYXJhbSBjb25maWd1cmF0aW9uIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG5cdCAqIEBwYXJhbSBjb25maWd1cmF0aW9uLnVybCAtIFRoZSBVUkwgb2YgdGhlIHdpZGdldCAoZS5nLiAnaHR0cHM6Ly88ZW52aXJvbm1lbnQ+LndpZGdldHMuYnVyZ2VycHJvZmllbC52bGFhbmRlcmVuLmJlLycpXG5cdCAqIEBwYXJhbSBjb25maWd1cmF0aW9uLmlkIC0gVGhlIElEIG9mIHRoZSB3aWRnZXQgKGUuZy4gJzc1MDJiNTU3LTVkNDktNGFiMy05OTk1LTE2ODcxOGI4MWJlNScpXG5cdCAqIEBwYXJhbSBsaW5rcyAtIE9wdGlvbmFsIG5hdmlnYXRpb24gbGlua3Ncblx0ICpcblx0ICogQHJldHVybnMgVGhlIEdsb2JhbEZvb3RlckNsaWVudCBvYmplY3Qgd2lsbCBiZSByZXR1cm5lZCB0byBhbGxvdyBmb3IgY3VzdG9tIGltcGxlbWVudGF0aW9ucyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIG91dCBvZiB0aGUgYm94LCBzZWU6IGh0dHBzOi8vdGVzdC53aWRnZXRzLmJ1cmdlcnByb2ZpZWwuZGV2LXZsYWFuZGVyZW4uYmUvZG9jcy9nbG9iYWwtZm9vdGVyLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblx0ICovXG5cdHB1YmxpYyBpbmplY3RHbG9iYWxGb290ZXJDb21wb25lbnQoe1xuXHRcdHNlbGVjdG9yLFxuXHRcdGNvbmZpZ3VyYXRpb24sXG5cdFx0bGlua3MsXG5cdH06IE5neEFjbUNvbXBvbmVudEluamVjdGlvbkNvbmZpZ3VyYXRpb24pOiBPYnNlcnZhYmxlPEdsb2JhbEZvb3RlckNsaWVudD4ge1xuXHRcdC8vIERlbmlzOiBUaGUgZm9sbG93aW5nIGNvZGUgc2hvdWxkIG9ubHkgcnVuIGluIHRoZSBicm93c2VyLlxuXHRcdHJldHVybiB0aGlzLndpbmRvd1NlcnZpY2UucnVuSW5Ccm93c2VyPE9ic2VydmFibGU8R2xvYmFsRm9vdGVyQ2xpZW50Pj4oXG5cdFx0XHQoeyBicm93c2VyV2luZG93LCBicm93c2VyRG9jdW1lbnQgfSkgPT4ge1xuXHRcdFx0XHQvLyBEZW5pczogQ3JlYXRlIGEgbmV3IHNjcmlwdCB0YWdcblx0XHRcdFx0cmV0dXJuIHRoaXMuaW5qZWN0Q29tcG9uZW50KFxuXHRcdFx0XHRcdGJyb3dzZXJEb2N1bWVudCxcblx0XHRcdFx0XHRzZWxlY3Rvcixcblx0XHRcdFx0XHRjb25maWd1cmF0aW9uLFxuXHRcdFx0XHRcdCdHbG9iYWxGb290ZXJDb21wb25lbnQnXG5cdFx0XHRcdCkucGlwZShcblx0XHRcdFx0XHRzd2l0Y2hNYXAoKGZvb3RlckVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0XHQvLyBEZW5pczogV2hlbiB0aGUgc2NyaXB0IGlzIGxvYWRlZCwgZ2V0IHRoZSBHbG9iYWxIZWFkZXJDbGllbnQgb2JqZWN0XG5cdFx0XHRcdFx0XHRjb25zdCBmb290ZXJDbGllbnQ6IEdsb2JhbEZvb3RlckNsaWVudCA9IGJyb3dzZXJXaW5kb3cuZ2xvYmFsRm9vdGVyQ2xpZW50O1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4gZnJvbShmb290ZXJDbGllbnQubW91bnQoZm9vdGVyRWxlbWVudCkpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XG5cdFx0XHRcdFx0XHQvLyBEZW5pczogSWYgdGhlcmUgYXJlIG5vIGxpbmtzLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBsaW5rc1xuXHRcdFx0XHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KGxpbmtzKSB8fCAhbGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRGVuaXM6IEdldCB0aGUgR2xvYmFsSGVhZGVyQ2xpZW50IG9iamVjdFxuXHRcdFx0XHRcdFx0Y29uc3QgZm9vdGVyQ2xpZW50OiBHbG9iYWxGb290ZXJDbGllbnQgPSBicm93c2VyV2luZG93Lmdsb2JhbEZvb3RlckNsaWVudDtcblxuXHRcdFx0XHRcdFx0Ly8gRGVuaXM6IFNldCB0aGUgcHJvdmlkZWQgbmF2aWdhdGlvbiBsaW5rc1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZyb20oZm9vdGVyQ2xpZW50LnNldE5hdmlnYXRpb25MaW5rcyhsaW5rcykpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdG1hcCgoKSA9PiBicm93c2VyV2luZG93Lmdsb2JhbEZvb3RlckNsaWVudClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBzY3JpcHQgdGFnIGZvciB0aGUgQUNNQ29tcG9uZW50IGFuZCBhcHBlbmRzIGl0IHRvIHRoZSBicm93c2VyXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSBicm93c2VyRG9jdW1lbnQgLSBBbiBpbnN0YW5jZSBvZiB0aGUgYnJvd3NlciBkb2N1bWVudFxuXHQgKiBAcGFyYW0gY29uZmlndXJhdGlvbiAtIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBBQ00gY29tcG9uZW50XG5cdCAqIEBwYXJhbSBzZWxlY3RvciAtIFRoZSBzZWxlY3RvciBvZiB0aGUgY29tcG9uZW50XG5cdCAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IHdlIHdpc2ggdG8gYXBwZW5kXG5cdCAqL1xuXHRwcml2YXRlIGluamVjdENvbXBvbmVudChcblx0XHRicm93c2VyRG9jdW1lbnQ6IERvY3VtZW50LFxuXHRcdHNlbGVjdG9yOiBzdHJpbmcsXG5cdFx0Y29uZmlndXJhdGlvbjogTmd4QWNtQ29tcG9uZW50Q29uZmlndXJhdGlvbixcblx0XHRjb21wb25lbnQ6IHN0cmluZ1xuXHQpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG5cdFx0Ly8gRGVuaXM6IENyZWF0ZSBhIG5ldyBzY3JpcHQgdGFnXG5cdFx0Y29uc3Qgc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuXHRcdC8vIERlbmlzOiBTZXQgdXAgdGhlIHNjcmlwdCB0byBsb2FkIHRoZSBoZWFkZXIgd2lkZ2V0XG5cdFx0c2NyaXB0LnNyYyA9IGNvbmZpZ3VyYXRpb24udXJsICsgJ2FwaS92Mi93aWRnZXQvJyArIGNvbmZpZ3VyYXRpb24uaWQgKyAnL2VudHJ5Jztcblx0XHRzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG5cdFx0Ly8gRGVuaXM6IEFwcGVuZCB0aGUgc2NyaXB0IHRvIHRoZSBET00gdG8gbG9hZCBpdC5cblx0XHR0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJyb3dzZXJEb2N1bWVudC5oZWFkLCBzY3JpcHQpO1xuXG5cdFx0cmV0dXJuIGZyb21FdmVudChzY3JpcHQsICdsb2FkJykucGlwZShcblx0XHRcdGZpcnN0KCksXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT4ge1xuXHRcdFx0XHQvLyBEZW5pczogTW91bnQgdGhlIHByb3ZpZGVkIHdpZGdldCBzY3JpcHRcblx0XHRcdFx0Y29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSBicm93c2VyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG5cblx0XHRcdFx0Ly8gSWJlbjogSWYgbm8gZWxlbWVudCB3YXMgZm91bmQsIHdlIHRocm93IGFuIGVycm9yXG5cdFx0XHRcdGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgZWxlbWVudCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKFxuXHRcdFx0XHRcdFx0KCkgPT5cblx0XHRcdFx0XHRcdFx0bmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRcdGBOR1hHb3ZGbGFuZGVyczogQW4gZXJyb3Igb2NjdXJyZWQgd2hlbiB0cnlpbmcgdG8gbW91bnQgdGhlICR7Y29tcG9uZW50fSwgdGhlIHByb3ZpZGVkIHRhcmdldEVsZW1lbnQgd2FzIG5vdCBmb3VuZC5gXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSWJlbjogUmV0dXJuIHRoZSBlbGVtZW50XG5cdFx0XHRcdHJldHVybiBvZihlbGVtZW50KTtcblx0XHRcdH0pLFxuXHRcdFx0cmV0cnkoe1xuXHRcdFx0XHRjb3VudDogNSxcblx0XHRcdFx0ZGVsYXk6IDEwMCxcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1ZGlvaHlwZXJkcml2ZS1uZ3gtZ292LWZsYW5kZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2dvdi9mbGFuZGVycy9zcmMvc3R1ZGlvaHlwZXJkcml2ZS1uZ3gtZ292LWZsYW5kZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}