{"ast":null,"code":"import _asyncToGenerator from \"E:/TekH/Visual Studio/WebUserManager/DigitalData.UserManager.NgWebUI/ClientApp/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Directive, HostListener, Host, NgModule } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nfunction SwalPortalComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst swalProviderToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#swalProvider');\nconst fireOnInitToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#fireOnInit');\nconst dismissOnDestroyToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#dismissOnDestroy');\nclass SweetAlert2LoaderService {\n swalProvider;\n swalPromiseCache;\n // Using any because Angular metadata generator does not understand a pure TS type here\n constructor(swalProvider) {\n this.swalProvider = swalProvider;\n }\n get swal() {\n if (!this.swalPromiseCache) {\n this.preloadSweetAlertLibrary();\n }\n return this.swalPromiseCache;\n }\n preloadSweetAlertLibrary() {\n if (this.swalPromiseCache) return;\n const libPromise = isLoader(this.swalProvider) ? this.swalProvider() : Promise.resolve(this.swalProvider);\n this.swalPromiseCache = libPromise.then(value => isDefaultExport(value) ? value : value.default);\n function isLoader(value) {\n return typeof value === 'function' && value.version === undefined;\n }\n function isDefaultExport(value) {\n return typeof value === 'function';\n }\n }\n static ɵfac = function SweetAlert2LoaderService_Factory(t) {\n return new (t || SweetAlert2LoaderService)(i0.ɵɵinject(swalProviderToken));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SweetAlert2LoaderService,\n factory: SweetAlert2LoaderService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SweetAlert2LoaderService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [swalProviderToken]\n }]\n }];\n }, null);\n})();\n\n/**\n * component. See the README.md for usage.\n *\n * It contains a bunch of @Inputs that have a perfect 1:1 mapping with SweetAlert2 options.\n * Their types are directly coming from SweetAlert2 types defintitions, meaning that ngx-sweetalert2 is tightly coupled\n * to SweetAlert2, but also is type-safe even if both libraries do not evolve in sync.\n *\n * (?) If you want to use an object that declares the SweetAlert2 options all at once rather than many @Inputs,\n * take a look at [swalOptions], that lets you pass a full {@link SweetAlertOptions} object.\n *\n * (?) If you are reading the TypeScript source of this component, you may think that it's a lot of code.\n * Be sure that a lot of this code is types and Angular boilerplate. Compiled and minified code is much smaller.\n * If you are really concerned about performance and/or don't care about the API and its convenient integration\n * with Angular (notably change detection and transclusion), you may totally use SweetAlert2 natively as well ;)\n *\n * /!\\ Some SweetAlert options aren't @Inputs but @Outputs: `willOpen`, `didOpen`, `didRender`, `willClose`, `didClose`\n * and `didDestroy`.\n * However, `preConfirm`, `preDeny` and `inputValidator` are still @Inputs because they are not event handlers,\n * there can't be multiple listeners on them, and we need the values they can/must return.\n */\nclass SwalComponent {\n sweetAlert2Loader;\n moduleLevelFireOnInit;\n moduleLevelDismissOnDestroy;\n title;\n titleText;\n text;\n html;\n footer;\n icon;\n iconColor;\n iconHtml;\n backdrop;\n toast;\n target;\n input;\n width;\n padding;\n background;\n position;\n grow;\n showClass;\n hideClass;\n customClass;\n timer;\n timerProgressBar;\n heightAuto;\n allowOutsideClick;\n allowEscapeKey;\n allowEnterKey;\n stopKeydownPropagation;\n keydownListenerCapture;\n showConfirmButton;\n showDenyButton;\n showCancelButton;\n confirmButtonText;\n denyButtonText;\n cancelButtonText;\n confirmButtonColor;\n denyButtonColor;\n cancelButtonColor;\n confirmButtonAriaLabel;\n denyButtonAriaLabel;\n cancelButtonAriaLabel;\n buttonsStyling;\n reverseButtons;\n focusConfirm;\n focusDeny;\n focusCancel;\n showCloseButton;\n closeButtonHtml;\n closeButtonAriaLabel;\n loaderHtml;\n showLoaderOnConfirm;\n preConfirm;\n preDeny;\n imageUrl;\n imageWidth;\n imageHeight;\n imageAlt;\n inputLabel;\n inputPlaceholder;\n inputValue;\n inputOptions;\n inputAutoTrim;\n inputAttributes;\n inputValidator;\n returnInputValueOnDeny;\n validationMessage;\n progressSteps;\n currentProgressStep;\n progressStepsDistance;\n scrollbarPadding;\n /**\n * An object of SweetAlert2 native options, useful if:\n * - you don't want to use the @Inputs for practical/philosophical reasons ;\n * - there are missing @Inputs because ngx-sweetalert2 isn't up-to-date with SweetAlert2's latest changes.\n *\n * /!\\ Please note that setting this property does NOT erase what has been set before unless you specify the\n * previous properties you want to erase again.\n * Ie. setting { title: 'Title' } and then { text: 'Text' } will give { title: 'Title', text: 'Text' }.\n *\n * /!\\ Be aware that the options defined in this object will override the @Inputs of the same name.\n */\n set swalOptions(options) {\n //=> Update properties\n Object.assign(this, options);\n //=> Mark changed properties as touched\n const touchedKeys = Object.keys(options);\n touchedKeys.forEach(this.markTouched);\n }\n /**\n * Computes the options object that will get passed to SweetAlert2.\n * Only the properties that have been set at least once on this component will be returned.\n * Mostly for internal usage.\n */\n get swalOptions() {\n //=> We will compute the options object based on the option keys that are known to have changed.\n // That avoids passing a gigantic object to SweetAlert2, making debugging easier and potentially\n // avoiding side effects.\n return [...this.touchedProps].reduce((obj, key) => ({\n ...obj,\n [key]: this[key]\n }), {});\n }\n /**\n * Whether to fire the modal as soon as the component is created and initialized in the view.\n * When left undefined (default), the value will be inherited from the module configuration, which is `false`.\n *\n * Example:\n * \n */\n swalFireOnInit;\n /**\n * Whether to dismiss the modal when the component is destroyed by Angular (for any reason) or not.\n * When left undefined (default), the value will be inherited from the module configuration, which is `true`.\n */\n swalDismissOnDestroy;\n set swalVisible(visible) {\n visible ? this.fire() : this.close();\n }\n get swalVisible() {\n return this.isCurrentlyShown;\n }\n /**\n * Modal lifecycle hook. Synchronously runs before the modal is shown on screen.\n */\n willOpen = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs before the modal is shown on screen.\n */\n didOpen = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs after the popup DOM has been updated (ie. just before the modal is\n * repainted on the screen).\n * Typically, this will happen after `Swal.fire()` or `Swal.update()`.\n * If you want to perform changes in the popup's DOM, that survive `Swal.update()`, prefer {@link didRender} over\n * {@link willOpen}.\n */\n didRender = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs when the popup closes by user interaction (and not due to another popup\n * being fired).\n */\n willClose = new EventEmitter();\n /**\n * Modal lifecycle hook. Asynchronously runs after the popup has been disposed by user interaction (and not due to\n * another popup being fired).\n */\n didClose = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs after popup has been destroyed either by user interaction or by another\n * popup.\n * If you have cleanup operations that you need to reliably execute each time a modal is closed, prefer\n * {@link didDestroy} over {@link didClose}.\n */\n didDestroy = new EventEmitter();\n /**\n * Emits when the user clicks \"Confirm\".\n * The event value ($event) can be either:\n * - by default, just `true`,\n * - when using {@link input}, the input value,\n * - when using {@link preConfirm}, the return value of this function.\n *\n * Example:\n * \n *\n * public handleConfirm(email: string): void {\n * // ... save user email\n * }\n */\n confirm = new EventEmitter();\n /**\n * Emits when the user clicks \"Deny\".\n * This event bears no value.\n * Use `(deny)` (along with {@link showDenyButton}) when you want a modal with three buttons (confirm, deny and\n * cancel), and/or when you want to handle clear refusal in a separate way than simple dismissal.\n *\n * Example:\n * \n *\n * public handleDeny(): void {\n * }\n */\n deny = new EventEmitter();\n /**\n * Emits when the user clicks \"Cancel\", or dismisses the modal by any other allowed way.\n * The event value ($event) is a string that explains how the modal was dismissed. It is `undefined` when\n * the modal was programmatically closed (through {@link close} for example).\n *\n * Example:\n * \n *\n * public handleDismiss(reason: DismissReason | undefined): void {\n * // reason can be 'cancel', 'overlay', 'close', 'timer' or undefined.\n * // ... do something\n * }\n */\n dismiss = new EventEmitter();\n /**\n * This Set retains the properties that have been changed from @Inputs, so we can know precisely\n * what options we have to send to {@link Swal.fire}.\n */\n touchedProps = new Set();\n /**\n * A function of signature `(propName: string): void` that adds a given property name to the list of\n * touched properties, ie. {@link touchedProps}.\n */\n markTouched = this.touchedProps.add.bind(this.touchedProps);\n /**\n * Is the SweetAlert2 modal represented by this component currently opened?\n */\n isCurrentlyShown = false;\n constructor(sweetAlert2Loader, moduleLevelFireOnInit, moduleLevelDismissOnDestroy) {\n this.sweetAlert2Loader = sweetAlert2Loader;\n this.moduleLevelFireOnInit = moduleLevelFireOnInit;\n this.moduleLevelDismissOnDestroy = moduleLevelDismissOnDestroy;\n }\n /**\n * Angular lifecycle hook.\n * Asks the SweetAlert2 loader service to preload the SweetAlert2 library, so it begins to be loaded only if there\n * is a component somewhere, and is probably fully loaded when the modal has to be displayed,\n * causing no delay.\n */\n ngOnInit() {\n //=> Preload SweetAlert2 library in case this component is activated.\n this.sweetAlert2Loader.preloadSweetAlertLibrary();\n }\n /**\n * Angular lifecycle hook.\n * Fires the modal, if the component or module is configured to do so.\n */\n ngAfterViewInit() {\n const fireOnInit = this.swalFireOnInit === undefined ? this.moduleLevelFireOnInit : this.swalFireOnInit;\n fireOnInit && this.fire();\n }\n /**\n * Angular lifecycle hook.\n * Updates the SweetAlert options, and if the modal is opened, asks SweetAlert to render it again.\n */\n ngOnChanges(changes) {\n //=> For each changed @Input that matches a SweetAlert2 option, mark as touched so we can\n // send it with the next fire() or update() calls.\n Object.keys(changes)\n //=> If the filtering logic becomes more complex here, we can use Swal.isValidParameter\n .filter(key => !key.startsWith('swal')).forEach(this.markTouched);\n //=> Eventually trigger re-render if the modal is open.\n void this.update();\n }\n /**\n * Angular lifecycle hook.\n * Closes the SweetAlert when the component is destroyed.\n */\n ngOnDestroy() {\n //=> Release the modal if the component is destroyed and if that behaviour is not disabled.\n const dismissOnDestroy = this.swalDismissOnDestroy === undefined ? this.moduleLevelDismissOnDestroy : this.swalDismissOnDestroy;\n dismissOnDestroy && this.close();\n }\n /**\n * Shows the SweetAlert.\n *\n * Returns the SweetAlert2 promise for convenience and use in code behind templates.\n * Otherwise, (confirm)=\"myHandler($event)\" and (dismiss)=\"myHandler($event)\" can be used in templates.\n */\n fire() {\n var _this = this;\n return _asyncToGenerator(function* () {\n const swal = yield _this.sweetAlert2Loader.swal;\n const userOptions = _this.swalOptions;\n //=> Build the SweetAlert2 options\n const options = {\n //=> Merge with calculated options set for that specific swal\n ...userOptions,\n //=> Handle modal lifecycle events\n willOpen: composeHook(userOptions.willOpen, modalElement => {\n _this.willOpen.emit({\n modalElement\n });\n }),\n didOpen: composeHook(userOptions.didOpen, modalElement => {\n _this.isCurrentlyShown = true;\n _this.didOpen.emit({\n modalElement\n });\n }),\n didRender: composeHook(userOptions.didRender, modalElement => {\n _this.didRender.emit({\n modalElement\n });\n }),\n willClose: composeHook(userOptions.willClose, modalElement => {\n _this.isCurrentlyShown = false;\n _this.willClose.emit({\n modalElement\n });\n }),\n didClose: composeHook(userOptions.didClose, () => {\n _this.didClose.emit();\n }),\n didDestroy: composeHook(userOptions.didDestroy, () => {\n _this.didDestroy.emit();\n })\n };\n //=> Show the Swal! And wait for confirmation or dimissal.\n const result = yield swal.fire(options);\n //=> Emit on (confirm), (deny) or (dismiss)\n switch (true) {\n case result.isConfirmed:\n _this.confirm.emit(result.value);\n break;\n case result.isDenied:\n _this.deny.emit();\n break;\n case result.isDismissed:\n _this.dismiss.emit(result.dismiss);\n break;\n }\n return result;\n function composeHook(userHook, libHook) {\n return (...args) => (libHook(...args), userHook?.(...args));\n }\n })();\n }\n /**\n * Closes the modal, if opened.\n *\n * @param result The value that the modal will resolve with, triggering either (confirm), (deny) or (dismiss).\n * If the argument is not passed, it is (dismiss) that will emit an `undefined` reason.\n * {@see Swal.close}.\n */\n close(result) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n if (!_this2.isCurrentlyShown) return;\n const swal = yield _this2.sweetAlert2Loader.swal;\n swal.close(result);\n })();\n }\n /**\n * Updates SweetAlert2 options while the modal is opened, causing the modal to re-render.\n * If the modal is not opened, the component options will simply be updated and that's it.\n *\n * /!\\ Please note that not all SweetAlert2 options are updatable while the modal is opened.\n *\n * @param options\n */\n update(options) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n if (options) {\n _this3.swalOptions = options;\n }\n if (!_this3.isCurrentlyShown) return;\n const swal = yield _this3.sweetAlert2Loader.swal;\n const allOptions = _this3.swalOptions;\n const updatableOptions = Object.keys(allOptions).filter(swal.isUpdatableParameter).reduce((obj, key) => ({\n ...obj,\n [key]: allOptions[key]\n }), {});\n swal.update(updatableOptions);\n })();\n }\n static ɵfac = function SwalComponent_Factory(t) {\n return new (t || SwalComponent)(i0.ɵɵdirectiveInject(SweetAlert2LoaderService), i0.ɵɵdirectiveInject(fireOnInitToken), i0.ɵɵdirectiveInject(dismissOnDestroyToken));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SwalComponent,\n selectors: [[\"swal\"]],\n inputs: {\n title: \"title\",\n titleText: \"titleText\",\n text: \"text\",\n html: \"html\",\n footer: \"footer\",\n icon: \"icon\",\n iconColor: \"iconColor\",\n iconHtml: \"iconHtml\",\n backdrop: \"backdrop\",\n toast: \"toast\",\n target: \"target\",\n input: \"input\",\n width: \"width\",\n padding: \"padding\",\n background: \"background\",\n position: \"position\",\n grow: \"grow\",\n showClass: \"showClass\",\n hideClass: \"hideClass\",\n customClass: \"customClass\",\n timer: \"timer\",\n timerProgressBar: \"timerProgressBar\",\n heightAuto: \"heightAuto\",\n allowOutsideClick: \"allowOutsideClick\",\n allowEscapeKey: \"allowEscapeKey\",\n allowEnterKey: \"allowEnterKey\",\n stopKeydownPropagation: \"stopKeydownPropagation\",\n keydownListenerCapture: \"keydownListenerCapture\",\n showConfirmButton: \"showConfirmButton\",\n showDenyButton: \"showDenyButton\",\n showCancelButton: \"showCancelButton\",\n confirmButtonText: \"confirmButtonText\",\n denyButtonText: \"denyButtonText\",\n cancelButtonText: \"cancelButtonText\",\n confirmButtonColor: \"confirmButtonColor\",\n denyButtonColor: \"denyButtonColor\",\n cancelButtonColor: \"cancelButtonColor\",\n confirmButtonAriaLabel: \"confirmButtonAriaLabel\",\n denyButtonAriaLabel: \"denyButtonAriaLabel\",\n cancelButtonAriaLabel: \"cancelButtonAriaLabel\",\n buttonsStyling: \"buttonsStyling\",\n reverseButtons: \"reverseButtons\",\n focusConfirm: \"focusConfirm\",\n focusDeny: \"focusDeny\",\n focusCancel: \"focusCancel\",\n showCloseButton: \"showCloseButton\",\n closeButtonHtml: \"closeButtonHtml\",\n closeButtonAriaLabel: \"closeButtonAriaLabel\",\n loaderHtml: \"loaderHtml\",\n showLoaderOnConfirm: \"showLoaderOnConfirm\",\n preConfirm: \"preConfirm\",\n preDeny: \"preDeny\",\n imageUrl: \"imageUrl\",\n imageWidth: \"imageWidth\",\n imageHeight: \"imageHeight\",\n imageAlt: \"imageAlt\",\n inputLabel: \"inputLabel\",\n inputPlaceholder: \"inputPlaceholder\",\n inputValue: \"inputValue\",\n inputOptions: \"inputOptions\",\n inputAutoTrim: \"inputAutoTrim\",\n inputAttributes: \"inputAttributes\",\n inputValidator: \"inputValidator\",\n returnInputValueOnDeny: \"returnInputValueOnDeny\",\n validationMessage: \"validationMessage\",\n progressSteps: \"progressSteps\",\n currentProgressStep: \"currentProgressStep\",\n progressStepsDistance: \"progressStepsDistance\",\n scrollbarPadding: \"scrollbarPadding\",\n swalOptions: \"swalOptions\",\n swalFireOnInit: \"swalFireOnInit\",\n swalDismissOnDestroy: \"swalDismissOnDestroy\",\n swalVisible: \"swalVisible\"\n },\n outputs: {\n willOpen: \"willOpen\",\n didOpen: \"didOpen\",\n didRender: \"didRender\",\n willClose: \"willClose\",\n didClose: \"didClose\",\n didDestroy: \"didDestroy\",\n confirm: \"confirm\",\n deny: \"deny\",\n dismiss: \"dismiss\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function SwalComponent_Template(rf, ctx) {},\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SwalComponent, [{\n type: Component,\n args: [{\n selector: 'swal',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: SweetAlert2LoaderService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [fireOnInitToken]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [dismissOnDestroyToken]\n }]\n }];\n }, {\n title: [{\n type: Input\n }],\n titleText: [{\n type: Input\n }],\n text: [{\n type: Input\n }],\n html: [{\n type: Input\n }],\n footer: [{\n type: Input\n }],\n icon: [{\n type: Input\n }],\n iconColor: [{\n type: Input\n }],\n iconHtml: [{\n type: Input\n }],\n backdrop: [{\n type: Input\n }],\n toast: [{\n type: Input\n }],\n target: [{\n type: Input\n }],\n input: [{\n type: Input\n }],\n width: [{\n type: Input\n }],\n padding: [{\n type: Input\n }],\n background: [{\n type: Input\n }],\n position: [{\n type: Input\n }],\n grow: [{\n type: Input\n }],\n showClass: [{\n type: Input\n }],\n hideClass: [{\n type: Input\n }],\n customClass: [{\n type: Input\n }],\n timer: [{\n type: Input\n }],\n timerProgressBar: [{\n type: Input\n }],\n heightAuto: [{\n type: Input\n }],\n allowOutsideClick: [{\n type: Input\n }],\n allowEscapeKey: [{\n type: Input\n }],\n allowEnterKey: [{\n type: Input\n }],\n stopKeydownPropagation: [{\n type: Input\n }],\n keydownListenerCapture: [{\n type: Input\n }],\n showConfirmButton: [{\n type: Input\n }],\n showDenyButton: [{\n type: Input\n }],\n showCancelButton: [{\n type: Input\n }],\n confirmButtonText: [{\n type: Input\n }],\n denyButtonText: [{\n type: Input\n }],\n cancelButtonText: [{\n type: Input\n }],\n confirmButtonColor: [{\n type: Input\n }],\n denyButtonColor: [{\n type: Input\n }],\n cancelButtonColor: [{\n type: Input\n }],\n confirmButtonAriaLabel: [{\n type: Input\n }],\n denyButtonAriaLabel: [{\n type: Input\n }],\n cancelButtonAriaLabel: [{\n type: Input\n }],\n buttonsStyling: [{\n type: Input\n }],\n reverseButtons: [{\n type: Input\n }],\n focusConfirm: [{\n type: Input\n }],\n focusDeny: [{\n type: Input\n }],\n focusCancel: [{\n type: Input\n }],\n showCloseButton: [{\n type: Input\n }],\n closeButtonHtml: [{\n type: Input\n }],\n closeButtonAriaLabel: [{\n type: Input\n }],\n loaderHtml: [{\n type: Input\n }],\n showLoaderOnConfirm: [{\n type: Input\n }],\n preConfirm: [{\n type: Input\n }],\n preDeny: [{\n type: Input\n }],\n imageUrl: [{\n type: Input\n }],\n imageWidth: [{\n type: Input\n }],\n imageHeight: [{\n type: Input\n }],\n imageAlt: [{\n type: Input\n }],\n inputLabel: [{\n type: Input\n }],\n inputPlaceholder: [{\n type: Input\n }],\n inputValue: [{\n type: Input\n }],\n inputOptions: [{\n type: Input\n }],\n inputAutoTrim: [{\n type: Input\n }],\n inputAttributes: [{\n type: Input\n }],\n inputValidator: [{\n type: Input\n }],\n returnInputValueOnDeny: [{\n type: Input\n }],\n validationMessage: [{\n type: Input\n }],\n progressSteps: [{\n type: Input\n }],\n currentProgressStep: [{\n type: Input\n }],\n progressStepsDistance: [{\n type: Input\n }],\n scrollbarPadding: [{\n type: Input\n }],\n swalOptions: [{\n type: Input\n }],\n swalFireOnInit: [{\n type: Input\n }],\n swalDismissOnDestroy: [{\n type: Input\n }],\n swalVisible: [{\n type: Input\n }],\n willOpen: [{\n type: Output\n }],\n didOpen: [{\n type: Output\n }],\n didRender: [{\n type: Output\n }],\n willClose: [{\n type: Output\n }],\n didClose: [{\n type: Output\n }],\n didDestroy: [{\n type: Output\n }],\n confirm: [{\n type: Output\n }],\n deny: [{\n type: Output\n }],\n dismiss: [{\n type: Output\n }]\n });\n})();\n\n/**\n * [swal] directive. It takes a value that defines the SweetAlert and can be of three types:\n *\n * 1) A simple array of two or three strings defining [title, text, icon] - the icon being optional, ex:\n *\n * \n *\n * 2) A native SweetAlert2 options object, ex:\n *\n * \n *\n * 3) A reference to an existing SwalComponent instance for more advanced uses, ex:\n *\n * \n * \n */\nclass SwalDirective {\n viewContainerRef;\n resolver;\n /**\n * SweetAlert2 options or a SwalComponent instance.\n * See the class doc block for more informations.\n */\n set swal(options) {\n if (options instanceof SwalComponent) {\n this.swalInstance = options;\n } else if (isArrayOptions(options)) {\n this.swalOptions = {};\n [this.swalOptions.title, this.swalOptions.text, this.swalOptions.icon] = options;\n } else {\n this.swalOptions = options;\n }\n function isArrayOptions(value) {\n return Array.isArray(options);\n }\n }\n /**\n * Emits when the user clicks \"Confirm\".\n * The event value ($event) can be either:\n * - by default, just `true`,\n * - when using {@link input}, the input value,\n * - when using {@link preConfirm}, the return value of this function.\n *\n * Example:\n * \n *\n * public handleConfirm(email: string): void {\n * // ... save user email\n * }\n */\n confirm = new EventEmitter();\n /**\n * Emits when the user clicks \"Deny\".\n * This event bears no value.\n * Use `(deny)` (along with {@link showDenyButton}) when you want a modal with three buttons (confirm, deny and\n * cancel), and/or when you want to handle clear refusal in a separate way than simple dismissal.\n *\n * Example:\n * \n *\n * public handleDeny(): void {\n * }\n */\n deny = new EventEmitter();\n /**\n * Emits when the user clicks \"Cancel\", or dismisses the modal by any other allowed way.\n * The event value ($event) is a string that explains how the modal was dismissed. It is `undefined` when\n * the modal was programmatically closed (through {@link dismiss} for example).\n *\n * Example:\n * \n *\n * public handleDismiss(reason: DismissReason | undefined): void {\n * // reason can be 'cancel', 'overlay', 'close', 'timer' or undefined.\n * // ... do something\n * }\n */\n dismiss = new EventEmitter();\n /**\n * When the user does not provides a SwalComponent instance, we create it on-the-fly and assign the plain-object\n * options to it.\n * This fields keeps a reference to the dynamically-created , to destroy it along this directive instance.\n */\n swalRef;\n /**\n * An instance of the component that this directive controls.\n * Could be an instance passed by the user, otherwise it's the instance we've dynamically created.\n */\n swalInstance;\n /**\n * Holds the native SweetAlert2 options.\n * Empty when the user passed an existing SwalComponent instance.\n */\n swalOptions;\n constructor(viewContainerRef, resolver) {\n this.viewContainerRef = viewContainerRef;\n this.resolver = resolver;\n }\n /**\n * OnInit lifecycle handler.\n * Creates a SwalComponent instance if the user didn't provided one and binds on that component (confirm),\n * (deny) and (dismiss) outputs to reemit on the directive.\n */\n ngOnInit() {\n if (!this.swalInstance) {\n const factory = this.resolver.resolveComponentFactory(SwalComponent);\n this.swalRef = this.viewContainerRef.createComponent(factory);\n this.swalInstance = this.swalRef.instance;\n }\n }\n /**\n * OnDestroy lifecycle handler.\n * Destroys the dynamically-created SwalComponent.\n */\n ngOnDestroy() {\n if (this.swalRef) {\n this.swalRef.destroy();\n }\n }\n /**\n * Click handler.\n * The directive listens for onclick events on its host element.\n * When this happens, it shows the attached to this directive.\n */\n onClick(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n if (!this.swalInstance) return;\n if (this.swalOptions) {\n this.swalInstance.swalOptions = this.swalOptions;\n }\n const swalClosed = new Subject();\n this.swalInstance.confirm.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.confirm.emit(v));\n this.swalInstance.deny.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.deny.emit(v));\n this.swalInstance.dismiss.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.dismiss.emit(v));\n this.swalInstance.fire().then(() => swalClosed.next());\n }\n static ɵfac = function SwalDirective_Factory(t) {\n return new (t || SwalDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SwalDirective,\n selectors: [[\"\", \"swal\", \"\"]],\n hostBindings: function SwalDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SwalDirective_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n },\n inputs: {\n swal: \"swal\"\n },\n outputs: {\n confirm: \"confirm\",\n deny: \"deny\",\n dismiss: \"dismiss\"\n }\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SwalDirective, [{\n type: Directive,\n args: [{\n selector: '[swal]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: i0.ComponentFactoryResolver\n }];\n }, {\n swal: [{\n type: Input\n }],\n confirm: [{\n type: Output\n }],\n deny: [{\n type: Output\n }],\n dismiss: [{\n type: Output\n }],\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }]\n });\n})();\n\n/**\n * @internal\n * Holds a consumer's Angular template and displays it on a Sweet Alert.\n * See SwalPortalDirective for info about the covered feature.\n */\nclass SwalPortalComponent {\n template = null;\n static ɵfac = function SwalPortalComponent_Factory(t) {\n return new (t || SwalPortalComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SwalPortalComponent,\n selectors: [[\"swal-portal\"]],\n inputs: {\n template: \"template\"\n },\n decls: 1,\n vars: 1,\n consts: [[4, \"ngTemplateOutlet\"]],\n template: function SwalPortalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SwalPortalComponent_ng_container_0_Template, 1, 0, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.template);\n }\n },\n dependencies: [i1.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SwalPortalComponent, [{\n type: Component,\n args: [{\n selector: 'swal-portal',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, {\n template: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Represents an object of targets for portals (use with *swalPortal directive).\n * We must use thunks to access the Swal.* functions listed below, because they get created after the first modal is\n * shown, so this object lets us reference those functions safely and in a statically-typed manner.\n */\nclass SwalPortalTargets {\n /**\n * Targets the modal close button block contents.\n */\n closeButton = {\n element: swal => swal.getCloseButton(),\n options: {\n showCloseButton: true\n }\n };\n /**\n * Targets the modal title block contents.\n */\n title = {\n element: swal => swal.getTitle(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: {\n title: ' '\n }\n };\n /**\n * Targets the modal text block contents (that is another block inside the first content block, so you can still\n * use other modal features like Swal inputs, that are situated inside that parent content block).\n */\n content = {\n element: swal => swal.getHtmlContainer(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: {\n text: ' '\n }\n };\n /**\n * Targets the actions block contents, where are the confirm and cancel buttons in a normal time.\n * /!\\ WARNING: using this target destroys some of the native SweetAlert2 modal's DOM, therefore, if you use this\n * target, do not update the modal via @Inputs while the modal is open, or you'll get an error.\n * We could workaround that inconvenient inside this integration, but that'd be detrimental to memory and\n * performance of everyone, for a relatively rare use case.\n */\n actions = {\n element: swal => swal.getActions(),\n // The button will never exist, but SweetAlert2 shows the actions block only if there is at least one button.\n options: {\n showConfirmButton: true\n }\n };\n /**\n * Targets the confirm button contents, replacing the text inside it (not the button itself)\n */\n confirmButton = {\n element: swal => swal.getConfirmButton(),\n options: {\n showConfirmButton: true\n }\n };\n /**\n * Targets the deny button contents, replacing the text inside it (not the button itself)\n */\n denyButton = {\n element: swal => swal.getDenyButton(),\n options: {\n showDenyButton: true\n }\n };\n /**\n * Targets the cancel button contents, replacing the text inside it (not the button itself)\n */\n cancelButton = {\n element: swal => swal.getCancelButton(),\n options: {\n showCancelButton: true\n }\n };\n /**\n * Targets the modal footer contents.\n */\n footer = {\n element: swal => swal.getFooter(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: {\n footer: ' '\n }\n };\n static ɵfac = function SwalPortalTargets_Factory(t) {\n return new (t || SwalPortalTargets)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SwalPortalTargets,\n factory: SwalPortalTargets.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SwalPortalTargets, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A structural directive that lets you use Angular templates inside of SweetAlerts.\n * There are different targetable zones provided by {@link SwalPortalTargets}: title, content, confirmButton, etc, but\n * you can also make your own target by implementing {@link SwalPortalTarget} and giving it to this directive.\n * The default target is the alert text content zone.\n *\n * Usage in your component's TypeScript (if you use another target than {@link SwalPortalTargets.content}):\n *\n * @Component({ ... })\n * export class MyComponent {\n * public constructor(public readonly swalTargets: SwalPortalTargets) {\n * }\n * }\n *\n * Usage in the template:\n *\n * \n * \n *
\n * ...\n *
\n *\n * \n * \n * Send ({{ secondsLeft }} seconds left)\n * \n * \n */\nclass SwalPortalDirective {\n resolver;\n injector;\n app;\n templateRef;\n sweetAlert2Loader;\n swalTargets;\n swalComponent;\n /**\n * Takes a portal target or nothing (then it will target the text content zone by default).\n *\n * See the {@link SwalPortalTargets} service to see the available targets.\n * See the class doc block for more informations.\n */\n target;\n /**\n * Holds the component reference of the controlled SwalPortalComponent to destroy it when no longer needed.\n */\n portalComponentRef;\n destroyed = new Subject();\n constructor(resolver, injector, app, templateRef, sweetAlert2Loader, swalTargets, swalComponent) {\n this.resolver = resolver;\n this.injector = injector;\n this.app = app;\n this.templateRef = templateRef;\n this.sweetAlert2Loader = sweetAlert2Loader;\n this.swalTargets = swalTargets;\n this.swalComponent = swalComponent;\n }\n /**\n * Subscribes to the the SweetAlert appearance/disappearance events to create/destroy the SwalPortalComponent\n * that will receive the consumer's template.\n */\n ngOnInit() {\n // Can't be set in a default property value, if the customer lets *swalPortal empty, the value we get is undef.\n this.target = this.target || this.swalTargets.content;\n //=> Apply the options provided by the target definition\n void this.swalComponent.update(this.target.options);\n //=> Subscribe to a few hooks frm the parent SwalComponent.\n this.swalComponent.didRender.pipe(takeUntil(this.destroyed)).subscribe(this.didRenderHook.bind(this));\n this.swalComponent.willOpen.pipe(takeUntil(this.destroyed)).subscribe(this.willOpenHook.bind(this));\n this.swalComponent.didDestroy.pipe(takeUntil(this.destroyed)).subscribe(this.didDestroyHook.bind(this));\n }\n /**\n * Signal any {@link destroyed} consumer that this is over, so they can unsubscribe from the\n * parent SwalComponent events.\n */\n ngOnDestroy() {\n this.destroyed.next();\n }\n /**\n * This didRender hook runs 1..n times (per modal instance), just before the modal is shown (and also before the\n * {@link willOpenHook}), or after Swal.update() is called.\n * This is a good place to render, or re-render, our portal contents.\n */\n didRenderHook() {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n //=> Ensure the portal component is created\n if (!_this4.portalComponentRef) {\n _this4.portalComponentRef = _this4.createPortalComponent();\n }\n //=> SweetAlert2 created the modal or just erased all of our content, so we need to install/reinstall it.\n // Swal.update() is synchronous, this observable too, and mountComponentOnTarget too (the promise inside\n // this function is already resolved at this point), so the whole process of re-rendering and re-mounting\n // the portal component is fully synchronous, causing no blinks in the modal contents.\n const swal = yield _this4.sweetAlert2Loader.swal;\n //=> Find target element\n const targetEl = _this4.target.element(swal);\n if (!targetEl) return;\n //=> Replace target's contents with our component\n // https://jsperf.com/innerhtml-vs-removechild/15\n while (targetEl.firstChild) {\n targetEl.removeChild(targetEl.firstChild);\n }\n targetEl.appendChild(_this4.portalComponentRef.location.nativeElement);\n })();\n }\n /**\n * This willOpen hook runs once (per modal instance), just before the modal is shown on the screen.\n * This is a good place to declare our detached view to the Angular app.\n */\n willOpenHook() {\n if (!this.portalComponentRef) return;\n //=> Make the Angular app aware of that detached view so rendering and change detection can happen\n this.app.attachView(this.portalComponentRef.hostView);\n }\n /**\n * This didDestroy hook runs once (per modal instance), just after the modal closing animation terminated.\n * This is a good place to detach and destroy our content, that is not visible anymore.\n */\n didDestroyHook() {\n if (!this.portalComponentRef) return;\n //=> Detach the portal component from the app and destroy it\n this.app.detachView(this.portalComponentRef.hostView);\n this.portalComponentRef.destroy();\n this.portalComponentRef = void 0;\n }\n /**\n * Creates the {@link SwalPortalComponent} and gives it the customer's template ref.\n */\n createPortalComponent() {\n //=> Create the SwalPortalComponent that will hold our content\n const factory = this.resolver.resolveComponentFactory(SwalPortalComponent);\n // Yes, we do not use the third argument that would directly use the target as the component's view\n // (unfortunately, because that would give a cleaner DOM and would avoid dirty and direct DOM manipulations)\n // That's because we want to keep our component safe from SweetAlert2's operations on the DOM, and to be\n // able to restore it at any moment, ie. after the modal has been re-rendered.\n const componentRef = factory.create(this.injector, []);\n //=> Apply the consumer's template on the component\n componentRef.instance.template = this.templateRef;\n return componentRef;\n }\n static ɵfac = function SwalPortalDirective_Factory(t) {\n return new (t || SwalPortalDirective)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(SweetAlert2LoaderService), i0.ɵɵdirectiveInject(SwalPortalTargets), i0.ɵɵdirectiveInject(SwalComponent, 1));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SwalPortalDirective,\n selectors: [[\"\", \"swalPortal\", \"\"]],\n inputs: {\n target: [i0.ɵɵInputFlags.None, \"swalPortal\", \"target\"]\n }\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SwalPortalDirective, [{\n type: Directive,\n args: [{\n selector: '[swalPortal]'\n }]\n }], function () {\n return [{\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.Injector\n }, {\n type: i0.ApplicationRef\n }, {\n type: i0.TemplateRef\n }, {\n type: SweetAlert2LoaderService\n }, {\n type: SwalPortalTargets\n }, {\n type: SwalComponent,\n decorators: [{\n type: Host\n }]\n }];\n }, {\n target: [{\n type: Input,\n args: ['swalPortal']\n }]\n });\n})();\nfunction provideDefaultSwal() {\n return import('sweetalert2');\n}\nclass SweetAlert2Module {\n static forRoot(options = {}) {\n return {\n ngModule: SweetAlert2Module,\n providers: [SweetAlert2LoaderService, {\n provide: swalProviderToken,\n useValue: options.provideSwal || provideDefaultSwal\n }, {\n provide: fireOnInitToken,\n useValue: options.fireOnInit || false\n }, {\n provide: dismissOnDestroyToken,\n useValue: options.dismissOnDestroy || true\n }]\n };\n }\n static forChild(options = {}) {\n return {\n ngModule: SweetAlert2Module,\n providers: [...(options.provideSwal ? [SweetAlert2LoaderService, {\n provide: swalProviderToken,\n useValue: options.provideSwal\n }] : []), ...(options.fireOnInit !== undefined ? [{\n provide: fireOnInitToken,\n useValue: options.fireOnInit\n }] : []), ...(options.dismissOnDestroy !== undefined ? [{\n provide: dismissOnDestroyToken,\n useValue: options.dismissOnDestroy\n }] : [])]\n };\n }\n static ɵfac = function SweetAlert2Module_Factory(t) {\n return new (t || SweetAlert2Module)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SweetAlert2Module\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SweetAlert2Module, [{\n type: NgModule,\n args: [{\n declarations: [SwalDirective, SwalComponent, SwalPortalDirective, SwalPortalComponent],\n imports: [CommonModule],\n exports: [SwalComponent, SwalPortalDirective, SwalDirective]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SwalComponent, SwalDirective, SwalPortalDirective, SwalPortalTargets, SweetAlert2LoaderService, SweetAlert2Module };","map":{"version":3,"names":["i0","InjectionToken","Injectable","Inject","EventEmitter","Component","ChangeDetectionStrategy","Input","Output","Directive","HostListener","Host","NgModule","Subject","takeUntil","i1","CommonModule","SwalPortalComponent_ng_container_0_Template","rf","ctx","ɵɵelementContainer","swalProviderToken","fireOnInitToken","dismissOnDestroyToken","SweetAlert2LoaderService","swalProvider","swalPromiseCache","constructor","swal","preloadSweetAlertLibrary","libPromise","isLoader","Promise","resolve","then","value","isDefaultExport","default","version","undefined","ɵfac","SweetAlert2LoaderService_Factory","t","ɵɵinject","ɵprov","ɵɵdefineInjectable","token","factory","ngDevMode","ɵsetClassMetadata","type","decorators","args","SwalComponent","sweetAlert2Loader","moduleLevelFireOnInit","moduleLevelDismissOnDestroy","title","titleText","text","html","footer","icon","iconColor","iconHtml","backdrop","toast","target","input","width","padding","background","position","grow","showClass","hideClass","customClass","timer","timerProgressBar","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","showConfirmButton","showDenyButton","showCancelButton","confirmButtonText","denyButtonText","cancelButtonText","confirmButtonColor","denyButtonColor","cancelButtonColor","confirmButtonAriaLabel","denyButtonAriaLabel","cancelButtonAriaLabel","buttonsStyling","reverseButtons","focusConfirm","focusDeny","focusCancel","showCloseButton","closeButtonHtml","closeButtonAriaLabel","loaderHtml","showLoaderOnConfirm","preConfirm","preDeny","imageUrl","imageWidth","imageHeight","imageAlt","inputLabel","inputPlaceholder","inputValue","inputOptions","inputAutoTrim","inputAttributes","inputValidator","returnInputValueOnDeny","validationMessage","progressSteps","currentProgressStep","progressStepsDistance","scrollbarPadding","swalOptions","options","Object","assign","touchedKeys","keys","forEach","markTouched","touchedProps","reduce","obj","key","swalFireOnInit","swalDismissOnDestroy","swalVisible","visible","fire","close","isCurrentlyShown","willOpen","didOpen","didRender","willClose","didClose","didDestroy","confirm","deny","dismiss","Set","add","bind","ngOnInit","ngAfterViewInit","fireOnInit","ngOnChanges","changes","filter","startsWith","update","ngOnDestroy","dismissOnDestroy","_this","_asyncToGenerator","userOptions","composeHook","modalElement","emit","result","isConfirmed","isDenied","isDismissed","userHook","libHook","_this2","_this3","allOptions","updatableOptions","isUpdatableParameter","SwalComponent_Factory","ɵɵdirectiveInject","ɵcmp","ɵɵdefineComponent","selectors","inputs","outputs","features","ɵɵNgOnChangesFeature","decls","vars","template","SwalComponent_Template","encapsulation","changeDetection","selector","OnPush","SwalDirective","viewContainerRef","resolver","swalInstance","isArrayOptions","Array","isArray","swalRef","resolveComponentFactory","createComponent","instance","destroy","onClick","event","preventDefault","stopImmediatePropagation","stopPropagation","swalClosed","asObservable","pipe","subscribe","v","next","SwalDirective_Factory","ViewContainerRef","ComponentFactoryResolver","ɵdir","ɵɵdefineDirective","hostBindings","SwalDirective_HostBindings","ɵɵlistener","SwalDirective_click_HostBindingHandler","$event","SwalPortalComponent","SwalPortalComponent_Factory","consts","SwalPortalComponent_Template","ɵɵtemplate","ɵɵproperty","dependencies","NgTemplateOutlet","SwalPortalTargets","closeButton","element","getCloseButton","getTitle","content","getHtmlContainer","actions","getActions","confirmButton","getConfirmButton","denyButton","getDenyButton","cancelButton","getCancelButton","getFooter","SwalPortalTargets_Factory","providedIn","SwalPortalDirective","injector","app","templateRef","swalTargets","swalComponent","portalComponentRef","destroyed","didRenderHook","willOpenHook","didDestroyHook","_this4","createPortalComponent","targetEl","firstChild","removeChild","appendChild","location","nativeElement","attachView","hostView","detachView","componentRef","create","SwalPortalDirective_Factory","Injector","ApplicationRef","TemplateRef","ɵɵInputFlags","None","provideDefaultSwal","SweetAlert2Module","forRoot","ngModule","providers","provide","useValue","provideSwal","forChild","SweetAlert2Module_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","declarations","exports"],"sources":["E:/TekH/Visual Studio/WebUserManager/DigitalData.UserManager.NgWebUI/ClientApp/node_modules/@sweetalert2/ngx-sweetalert2/fesm2022/sweetalert2-ngx-sweetalert2.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Directive, HostListener, Host, NgModule } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nconst swalProviderToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#swalProvider');\nconst fireOnInitToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#fireOnInit');\nconst dismissOnDestroyToken = new InjectionToken('@sweetalert2/ngx-sweetalert2#dismissOnDestroy');\n\nclass SweetAlert2LoaderService {\n swalProvider;\n swalPromiseCache;\n // Using any because Angular metadata generator does not understand a pure TS type here\n constructor(swalProvider) {\n this.swalProvider = swalProvider;\n }\n get swal() {\n if (!this.swalPromiseCache) {\n this.preloadSweetAlertLibrary();\n }\n return this.swalPromiseCache;\n }\n preloadSweetAlertLibrary() {\n if (this.swalPromiseCache)\n return;\n const libPromise = isLoader(this.swalProvider)\n ? this.swalProvider()\n : Promise.resolve(this.swalProvider);\n this.swalPromiseCache = libPromise.then(value => isDefaultExport(value) ? value : value.default);\n function isLoader(value) {\n return typeof value === 'function' && value.version === undefined;\n }\n function isDefaultExport(value) {\n return typeof value === 'function';\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2LoaderService, deps: [{ token: swalProviderToken }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2LoaderService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2LoaderService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [swalProviderToken]\n }] }]; } });\n\n/**\n * component. See the README.md for usage.\n *\n * It contains a bunch of @Inputs that have a perfect 1:1 mapping with SweetAlert2 options.\n * Their types are directly coming from SweetAlert2 types defintitions, meaning that ngx-sweetalert2 is tightly coupled\n * to SweetAlert2, but also is type-safe even if both libraries do not evolve in sync.\n *\n * (?) If you want to use an object that declares the SweetAlert2 options all at once rather than many @Inputs,\n * take a look at [swalOptions], that lets you pass a full {@link SweetAlertOptions} object.\n *\n * (?) If you are reading the TypeScript source of this component, you may think that it's a lot of code.\n * Be sure that a lot of this code is types and Angular boilerplate. Compiled and minified code is much smaller.\n * If you are really concerned about performance and/or don't care about the API and its convenient integration\n * with Angular (notably change detection and transclusion), you may totally use SweetAlert2 natively as well ;)\n *\n * /!\\ Some SweetAlert options aren't @Inputs but @Outputs: `willOpen`, `didOpen`, `didRender`, `willClose`, `didClose`\n * and `didDestroy`.\n * However, `preConfirm`, `preDeny` and `inputValidator` are still @Inputs because they are not event handlers,\n * there can't be multiple listeners on them, and we need the values they can/must return.\n */\nclass SwalComponent {\n sweetAlert2Loader;\n moduleLevelFireOnInit;\n moduleLevelDismissOnDestroy;\n title;\n titleText;\n text;\n html;\n footer;\n icon;\n iconColor;\n iconHtml;\n backdrop;\n toast;\n target;\n input;\n width;\n padding;\n background;\n position;\n grow;\n showClass;\n hideClass;\n customClass;\n timer;\n timerProgressBar;\n heightAuto;\n allowOutsideClick;\n allowEscapeKey;\n allowEnterKey;\n stopKeydownPropagation;\n keydownListenerCapture;\n showConfirmButton;\n showDenyButton;\n showCancelButton;\n confirmButtonText;\n denyButtonText;\n cancelButtonText;\n confirmButtonColor;\n denyButtonColor;\n cancelButtonColor;\n confirmButtonAriaLabel;\n denyButtonAriaLabel;\n cancelButtonAriaLabel;\n buttonsStyling;\n reverseButtons;\n focusConfirm;\n focusDeny;\n focusCancel;\n showCloseButton;\n closeButtonHtml;\n closeButtonAriaLabel;\n loaderHtml;\n showLoaderOnConfirm;\n preConfirm;\n preDeny;\n imageUrl;\n imageWidth;\n imageHeight;\n imageAlt;\n inputLabel;\n inputPlaceholder;\n inputValue;\n inputOptions;\n inputAutoTrim;\n inputAttributes;\n inputValidator;\n returnInputValueOnDeny;\n validationMessage;\n progressSteps;\n currentProgressStep;\n progressStepsDistance;\n scrollbarPadding;\n /**\n * An object of SweetAlert2 native options, useful if:\n * - you don't want to use the @Inputs for practical/philosophical reasons ;\n * - there are missing @Inputs because ngx-sweetalert2 isn't up-to-date with SweetAlert2's latest changes.\n *\n * /!\\ Please note that setting this property does NOT erase what has been set before unless you specify the\n * previous properties you want to erase again.\n * Ie. setting { title: 'Title' } and then { text: 'Text' } will give { title: 'Title', text: 'Text' }.\n *\n * /!\\ Be aware that the options defined in this object will override the @Inputs of the same name.\n */\n set swalOptions(options) {\n //=> Update properties\n Object.assign(this, options);\n //=> Mark changed properties as touched\n const touchedKeys = Object.keys(options);\n touchedKeys.forEach(this.markTouched);\n }\n /**\n * Computes the options object that will get passed to SweetAlert2.\n * Only the properties that have been set at least once on this component will be returned.\n * Mostly for internal usage.\n */\n get swalOptions() {\n //=> We will compute the options object based on the option keys that are known to have changed.\n // That avoids passing a gigantic object to SweetAlert2, making debugging easier and potentially\n // avoiding side effects.\n return [...this.touchedProps].reduce((obj, key) => ({ ...obj, [key]: this[key] }), {});\n }\n /**\n * Whether to fire the modal as soon as the component is created and initialized in the view.\n * When left undefined (default), the value will be inherited from the module configuration, which is `false`.\n *\n * Example:\n * \n */\n swalFireOnInit;\n /**\n * Whether to dismiss the modal when the component is destroyed by Angular (for any reason) or not.\n * When left undefined (default), the value will be inherited from the module configuration, which is `true`.\n */\n swalDismissOnDestroy;\n set swalVisible(visible) {\n visible ? this.fire() : this.close();\n }\n get swalVisible() {\n return this.isCurrentlyShown;\n }\n /**\n * Modal lifecycle hook. Synchronously runs before the modal is shown on screen.\n */\n willOpen = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs before the modal is shown on screen.\n */\n didOpen = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs after the popup DOM has been updated (ie. just before the modal is\n * repainted on the screen).\n * Typically, this will happen after `Swal.fire()` or `Swal.update()`.\n * If you want to perform changes in the popup's DOM, that survive `Swal.update()`, prefer {@link didRender} over\n * {@link willOpen}.\n */\n didRender = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs when the popup closes by user interaction (and not due to another popup\n * being fired).\n */\n willClose = new EventEmitter();\n /**\n * Modal lifecycle hook. Asynchronously runs after the popup has been disposed by user interaction (and not due to\n * another popup being fired).\n */\n didClose = new EventEmitter();\n /**\n * Modal lifecycle hook. Synchronously runs after popup has been destroyed either by user interaction or by another\n * popup.\n * If you have cleanup operations that you need to reliably execute each time a modal is closed, prefer\n * {@link didDestroy} over {@link didClose}.\n */\n didDestroy = new EventEmitter();\n /**\n * Emits when the user clicks \"Confirm\".\n * The event value ($event) can be either:\n * - by default, just `true`,\n * - when using {@link input}, the input value,\n * - when using {@link preConfirm}, the return value of this function.\n *\n * Example:\n * \n *\n * public handleConfirm(email: string): void {\n * // ... save user email\n * }\n */\n confirm = new EventEmitter();\n /**\n * Emits when the user clicks \"Deny\".\n * This event bears no value.\n * Use `(deny)` (along with {@link showDenyButton}) when you want a modal with three buttons (confirm, deny and\n * cancel), and/or when you want to handle clear refusal in a separate way than simple dismissal.\n *\n * Example:\n * \n *\n * public handleDeny(): void {\n * }\n */\n deny = new EventEmitter();\n /**\n * Emits when the user clicks \"Cancel\", or dismisses the modal by any other allowed way.\n * The event value ($event) is a string that explains how the modal was dismissed. It is `undefined` when\n * the modal was programmatically closed (through {@link close} for example).\n *\n * Example:\n * \n *\n * public handleDismiss(reason: DismissReason | undefined): void {\n * // reason can be 'cancel', 'overlay', 'close', 'timer' or undefined.\n * // ... do something\n * }\n */\n dismiss = new EventEmitter();\n /**\n * This Set retains the properties that have been changed from @Inputs, so we can know precisely\n * what options we have to send to {@link Swal.fire}.\n */\n touchedProps = new Set();\n /**\n * A function of signature `(propName: string): void` that adds a given property name to the list of\n * touched properties, ie. {@link touchedProps}.\n */\n markTouched = this.touchedProps.add.bind(this.touchedProps);\n /**\n * Is the SweetAlert2 modal represented by this component currently opened?\n */\n isCurrentlyShown = false;\n constructor(sweetAlert2Loader, moduleLevelFireOnInit, moduleLevelDismissOnDestroy) {\n this.sweetAlert2Loader = sweetAlert2Loader;\n this.moduleLevelFireOnInit = moduleLevelFireOnInit;\n this.moduleLevelDismissOnDestroy = moduleLevelDismissOnDestroy;\n }\n /**\n * Angular lifecycle hook.\n * Asks the SweetAlert2 loader service to preload the SweetAlert2 library, so it begins to be loaded only if there\n * is a component somewhere, and is probably fully loaded when the modal has to be displayed,\n * causing no delay.\n */\n ngOnInit() {\n //=> Preload SweetAlert2 library in case this component is activated.\n this.sweetAlert2Loader.preloadSweetAlertLibrary();\n }\n /**\n * Angular lifecycle hook.\n * Fires the modal, if the component or module is configured to do so.\n */\n ngAfterViewInit() {\n const fireOnInit = this.swalFireOnInit === undefined\n ? this.moduleLevelFireOnInit\n : this.swalFireOnInit;\n fireOnInit && this.fire();\n }\n /**\n * Angular lifecycle hook.\n * Updates the SweetAlert options, and if the modal is opened, asks SweetAlert to render it again.\n */\n ngOnChanges(changes) {\n //=> For each changed @Input that matches a SweetAlert2 option, mark as touched so we can\n // send it with the next fire() or update() calls.\n Object.keys(changes)\n //=> If the filtering logic becomes more complex here, we can use Swal.isValidParameter\n .filter((key) => !key.startsWith('swal'))\n .forEach(this.markTouched);\n //=> Eventually trigger re-render if the modal is open.\n void this.update();\n }\n /**\n * Angular lifecycle hook.\n * Closes the SweetAlert when the component is destroyed.\n */\n ngOnDestroy() {\n //=> Release the modal if the component is destroyed and if that behaviour is not disabled.\n const dismissOnDestroy = this.swalDismissOnDestroy === undefined\n ? this.moduleLevelDismissOnDestroy\n : this.swalDismissOnDestroy;\n dismissOnDestroy && this.close();\n }\n /**\n * Shows the SweetAlert.\n *\n * Returns the SweetAlert2 promise for convenience and use in code behind templates.\n * Otherwise, (confirm)=\"myHandler($event)\" and (dismiss)=\"myHandler($event)\" can be used in templates.\n */\n async fire() {\n const swal = await this.sweetAlert2Loader.swal;\n const userOptions = this.swalOptions;\n //=> Build the SweetAlert2 options\n const options = {\n //=> Merge with calculated options set for that specific swal\n ...userOptions,\n //=> Handle modal lifecycle events\n willOpen: composeHook(userOptions.willOpen, (modalElement) => {\n this.willOpen.emit({ modalElement });\n }),\n didOpen: composeHook(userOptions.didOpen, (modalElement) => {\n this.isCurrentlyShown = true;\n this.didOpen.emit({ modalElement });\n }),\n didRender: composeHook(userOptions.didRender, (modalElement) => {\n this.didRender.emit({ modalElement });\n }),\n willClose: composeHook(userOptions.willClose, (modalElement) => {\n this.isCurrentlyShown = false;\n this.willClose.emit({ modalElement });\n }),\n didClose: composeHook(userOptions.didClose, () => {\n this.didClose.emit();\n }),\n didDestroy: composeHook(userOptions.didDestroy, () => {\n this.didDestroy.emit();\n })\n };\n //=> Show the Swal! And wait for confirmation or dimissal.\n const result = await swal.fire(options);\n //=> Emit on (confirm), (deny) or (dismiss)\n switch (true) {\n case result.isConfirmed:\n this.confirm.emit(result.value);\n break;\n case result.isDenied:\n this.deny.emit();\n break;\n case result.isDismissed:\n this.dismiss.emit(result.dismiss);\n break;\n }\n return result;\n function composeHook(userHook, libHook) {\n return (...args) => (libHook(...args), userHook?.(...args));\n }\n }\n /**\n * Closes the modal, if opened.\n *\n * @param result The value that the modal will resolve with, triggering either (confirm), (deny) or (dismiss).\n * If the argument is not passed, it is (dismiss) that will emit an `undefined` reason.\n * {@see Swal.close}.\n */\n async close(result) {\n if (!this.isCurrentlyShown)\n return;\n const swal = await this.sweetAlert2Loader.swal;\n swal.close(result);\n }\n /**\n * Updates SweetAlert2 options while the modal is opened, causing the modal to re-render.\n * If the modal is not opened, the component options will simply be updated and that's it.\n *\n * /!\\ Please note that not all SweetAlert2 options are updatable while the modal is opened.\n *\n * @param options\n */\n async update(options) {\n if (options) {\n this.swalOptions = options;\n }\n if (!this.isCurrentlyShown)\n return;\n const swal = await this.sweetAlert2Loader.swal;\n const allOptions = this.swalOptions;\n const updatableOptions = Object.keys(allOptions)\n .filter(swal.isUpdatableParameter)\n .reduce((obj, key) => ({ ...obj, [key]: allOptions[key] }), {});\n swal.update(updatableOptions);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalComponent, deps: [{ token: SweetAlert2LoaderService }, { token: fireOnInitToken }, { token: dismissOnDestroyToken }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.5\", type: SwalComponent, selector: \"swal\", inputs: { title: \"title\", titleText: \"titleText\", text: \"text\", html: \"html\", footer: \"footer\", icon: \"icon\", iconColor: \"iconColor\", iconHtml: \"iconHtml\", backdrop: \"backdrop\", toast: \"toast\", target: \"target\", input: \"input\", width: \"width\", padding: \"padding\", background: \"background\", position: \"position\", grow: \"grow\", showClass: \"showClass\", hideClass: \"hideClass\", customClass: \"customClass\", timer: \"timer\", timerProgressBar: \"timerProgressBar\", heightAuto: \"heightAuto\", allowOutsideClick: \"allowOutsideClick\", allowEscapeKey: \"allowEscapeKey\", allowEnterKey: \"allowEnterKey\", stopKeydownPropagation: \"stopKeydownPropagation\", keydownListenerCapture: \"keydownListenerCapture\", showConfirmButton: \"showConfirmButton\", showDenyButton: \"showDenyButton\", showCancelButton: \"showCancelButton\", confirmButtonText: \"confirmButtonText\", denyButtonText: \"denyButtonText\", cancelButtonText: \"cancelButtonText\", confirmButtonColor: \"confirmButtonColor\", denyButtonColor: \"denyButtonColor\", cancelButtonColor: \"cancelButtonColor\", confirmButtonAriaLabel: \"confirmButtonAriaLabel\", denyButtonAriaLabel: \"denyButtonAriaLabel\", cancelButtonAriaLabel: \"cancelButtonAriaLabel\", buttonsStyling: \"buttonsStyling\", reverseButtons: \"reverseButtons\", focusConfirm: \"focusConfirm\", focusDeny: \"focusDeny\", focusCancel: \"focusCancel\", showCloseButton: \"showCloseButton\", closeButtonHtml: \"closeButtonHtml\", closeButtonAriaLabel: \"closeButtonAriaLabel\", loaderHtml: \"loaderHtml\", showLoaderOnConfirm: \"showLoaderOnConfirm\", preConfirm: \"preConfirm\", preDeny: \"preDeny\", imageUrl: \"imageUrl\", imageWidth: \"imageWidth\", imageHeight: \"imageHeight\", imageAlt: \"imageAlt\", inputLabel: \"inputLabel\", inputPlaceholder: \"inputPlaceholder\", inputValue: \"inputValue\", inputOptions: \"inputOptions\", inputAutoTrim: \"inputAutoTrim\", inputAttributes: \"inputAttributes\", inputValidator: \"inputValidator\", returnInputValueOnDeny: \"returnInputValueOnDeny\", validationMessage: \"validationMessage\", progressSteps: \"progressSteps\", currentProgressStep: \"currentProgressStep\", progressStepsDistance: \"progressStepsDistance\", scrollbarPadding: \"scrollbarPadding\", swalOptions: \"swalOptions\", swalFireOnInit: \"swalFireOnInit\", swalDismissOnDestroy: \"swalDismissOnDestroy\", swalVisible: \"swalVisible\" }, outputs: { willOpen: \"willOpen\", didOpen: \"didOpen\", didRender: \"didRender\", willClose: \"willClose\", didClose: \"didClose\", didDestroy: \"didDestroy\", confirm: \"confirm\", deny: \"deny\", dismiss: \"dismiss\" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'swal',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: SweetAlert2LoaderService }, { type: undefined, decorators: [{\n type: Inject,\n args: [fireOnInitToken]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [dismissOnDestroyToken]\n }] }]; }, propDecorators: { title: [{\n type: Input\n }], titleText: [{\n type: Input\n }], text: [{\n type: Input\n }], html: [{\n type: Input\n }], footer: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconColor: [{\n type: Input\n }], iconHtml: [{\n type: Input\n }], backdrop: [{\n type: Input\n }], toast: [{\n type: Input\n }], target: [{\n type: Input\n }], input: [{\n type: Input\n }], width: [{\n type: Input\n }], padding: [{\n type: Input\n }], background: [{\n type: Input\n }], position: [{\n type: Input\n }], grow: [{\n type: Input\n }], showClass: [{\n type: Input\n }], hideClass: [{\n type: Input\n }], customClass: [{\n type: Input\n }], timer: [{\n type: Input\n }], timerProgressBar: [{\n type: Input\n }], heightAuto: [{\n type: Input\n }], allowOutsideClick: [{\n type: Input\n }], allowEscapeKey: [{\n type: Input\n }], allowEnterKey: [{\n type: Input\n }], stopKeydownPropagation: [{\n type: Input\n }], keydownListenerCapture: [{\n type: Input\n }], showConfirmButton: [{\n type: Input\n }], showDenyButton: [{\n type: Input\n }], showCancelButton: [{\n type: Input\n }], confirmButtonText: [{\n type: Input\n }], denyButtonText: [{\n type: Input\n }], cancelButtonText: [{\n type: Input\n }], confirmButtonColor: [{\n type: Input\n }], denyButtonColor: [{\n type: Input\n }], cancelButtonColor: [{\n type: Input\n }], confirmButtonAriaLabel: [{\n type: Input\n }], denyButtonAriaLabel: [{\n type: Input\n }], cancelButtonAriaLabel: [{\n type: Input\n }], buttonsStyling: [{\n type: Input\n }], reverseButtons: [{\n type: Input\n }], focusConfirm: [{\n type: Input\n }], focusDeny: [{\n type: Input\n }], focusCancel: [{\n type: Input\n }], showCloseButton: [{\n type: Input\n }], closeButtonHtml: [{\n type: Input\n }], closeButtonAriaLabel: [{\n type: Input\n }], loaderHtml: [{\n type: Input\n }], showLoaderOnConfirm: [{\n type: Input\n }], preConfirm: [{\n type: Input\n }], preDeny: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], imageWidth: [{\n type: Input\n }], imageHeight: [{\n type: Input\n }], imageAlt: [{\n type: Input\n }], inputLabel: [{\n type: Input\n }], inputPlaceholder: [{\n type: Input\n }], inputValue: [{\n type: Input\n }], inputOptions: [{\n type: Input\n }], inputAutoTrim: [{\n type: Input\n }], inputAttributes: [{\n type: Input\n }], inputValidator: [{\n type: Input\n }], returnInputValueOnDeny: [{\n type: Input\n }], validationMessage: [{\n type: Input\n }], progressSteps: [{\n type: Input\n }], currentProgressStep: [{\n type: Input\n }], progressStepsDistance: [{\n type: Input\n }], scrollbarPadding: [{\n type: Input\n }], swalOptions: [{\n type: Input\n }], swalFireOnInit: [{\n type: Input\n }], swalDismissOnDestroy: [{\n type: Input\n }], swalVisible: [{\n type: Input\n }], willOpen: [{\n type: Output\n }], didOpen: [{\n type: Output\n }], didRender: [{\n type: Output\n }], willClose: [{\n type: Output\n }], didClose: [{\n type: Output\n }], didDestroy: [{\n type: Output\n }], confirm: [{\n type: Output\n }], deny: [{\n type: Output\n }], dismiss: [{\n type: Output\n }] } });\n\n/**\n * [swal] directive. It takes a value that defines the SweetAlert and can be of three types:\n *\n * 1) A simple array of two or three strings defining [title, text, icon] - the icon being optional, ex:\n *\n * \n *\n * 2) A native SweetAlert2 options object, ex:\n *\n * \n *\n * 3) A reference to an existing SwalComponent instance for more advanced uses, ex:\n *\n * \n * \n */\nclass SwalDirective {\n viewContainerRef;\n resolver;\n /**\n * SweetAlert2 options or a SwalComponent instance.\n * See the class doc block for more informations.\n */\n set swal(options) {\n if (options instanceof SwalComponent) {\n this.swalInstance = options;\n }\n else if (isArrayOptions(options)) {\n this.swalOptions = {};\n [this.swalOptions.title, this.swalOptions.text, this.swalOptions.icon] = options;\n }\n else {\n this.swalOptions = options;\n }\n function isArrayOptions(value) {\n return Array.isArray(options);\n }\n }\n /**\n * Emits when the user clicks \"Confirm\".\n * The event value ($event) can be either:\n * - by default, just `true`,\n * - when using {@link input}, the input value,\n * - when using {@link preConfirm}, the return value of this function.\n *\n * Example:\n * \n *\n * public handleConfirm(email: string): void {\n * // ... save user email\n * }\n */\n confirm = new EventEmitter();\n /**\n * Emits when the user clicks \"Deny\".\n * This event bears no value.\n * Use `(deny)` (along with {@link showDenyButton}) when you want a modal with three buttons (confirm, deny and\n * cancel), and/or when you want to handle clear refusal in a separate way than simple dismissal.\n *\n * Example:\n * \n *\n * public handleDeny(): void {\n * }\n */\n deny = new EventEmitter();\n /**\n * Emits when the user clicks \"Cancel\", or dismisses the modal by any other allowed way.\n * The event value ($event) is a string that explains how the modal was dismissed. It is `undefined` when\n * the modal was programmatically closed (through {@link dismiss} for example).\n *\n * Example:\n * \n *\n * public handleDismiss(reason: DismissReason | undefined): void {\n * // reason can be 'cancel', 'overlay', 'close', 'timer' or undefined.\n * // ... do something\n * }\n */\n dismiss = new EventEmitter();\n /**\n * When the user does not provides a SwalComponent instance, we create it on-the-fly and assign the plain-object\n * options to it.\n * This fields keeps a reference to the dynamically-created , to destroy it along this directive instance.\n */\n swalRef;\n /**\n * An instance of the component that this directive controls.\n * Could be an instance passed by the user, otherwise it's the instance we've dynamically created.\n */\n swalInstance;\n /**\n * Holds the native SweetAlert2 options.\n * Empty when the user passed an existing SwalComponent instance.\n */\n swalOptions;\n constructor(viewContainerRef, resolver) {\n this.viewContainerRef = viewContainerRef;\n this.resolver = resolver;\n }\n /**\n * OnInit lifecycle handler.\n * Creates a SwalComponent instance if the user didn't provided one and binds on that component (confirm),\n * (deny) and (dismiss) outputs to reemit on the directive.\n */\n ngOnInit() {\n if (!this.swalInstance) {\n const factory = this.resolver.resolveComponentFactory(SwalComponent);\n this.swalRef = this.viewContainerRef.createComponent(factory);\n this.swalInstance = this.swalRef.instance;\n }\n }\n /**\n * OnDestroy lifecycle handler.\n * Destroys the dynamically-created SwalComponent.\n */\n ngOnDestroy() {\n if (this.swalRef) {\n this.swalRef.destroy();\n }\n }\n /**\n * Click handler.\n * The directive listens for onclick events on its host element.\n * When this happens, it shows the attached to this directive.\n */\n onClick(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n if (!this.swalInstance)\n return;\n if (this.swalOptions) {\n this.swalInstance.swalOptions = this.swalOptions;\n }\n const swalClosed = new Subject();\n this.swalInstance.confirm.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.confirm.emit(v));\n this.swalInstance.deny.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.deny.emit(v));\n this.swalInstance.dismiss.asObservable().pipe(takeUntil(swalClosed)).subscribe(v => this.dismiss.emit(v));\n this.swalInstance.fire().then(() => swalClosed.next());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: SwalDirective, selector: \"[swal]\", inputs: { swal: \"swal\" }, outputs: { confirm: \"confirm\", deny: \"deny\", dismiss: \"dismiss\" }, host: { listeners: { \"click\": \"onClick($event)\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[swal]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { swal: [{\n type: Input\n }], confirm: [{\n type: Output\n }], deny: [{\n type: Output\n }], dismiss: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n\n/**\n * @internal\n * Holds a consumer's Angular template and displays it on a Sweet Alert.\n * See SwalPortalDirective for info about the covered feature.\n */\nclass SwalPortalComponent {\n template = null;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.5\", type: SwalPortalComponent, selector: \"swal-portal\", inputs: { template: \"template\" }, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'swal-portal',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { template: [{\n type: Input\n }] } });\n\n/**\n * Represents an object of targets for portals (use with *swalPortal directive).\n * We must use thunks to access the Swal.* functions listed below, because they get created after the first modal is\n * shown, so this object lets us reference those functions safely and in a statically-typed manner.\n */\nclass SwalPortalTargets {\n /**\n * Targets the modal close button block contents.\n */\n closeButton = {\n element: swal => swal.getCloseButton(),\n options: { showCloseButton: true }\n };\n /**\n * Targets the modal title block contents.\n */\n title = {\n element: swal => swal.getTitle(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: { title: ' ' }\n };\n /**\n * Targets the modal text block contents (that is another block inside the first content block, so you can still\n * use other modal features like Swal inputs, that are situated inside that parent content block).\n */\n content = {\n element: swal => swal.getHtmlContainer(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: { text: ' ' }\n };\n /**\n * Targets the actions block contents, where are the confirm and cancel buttons in a normal time.\n * /!\\ WARNING: using this target destroys some of the native SweetAlert2 modal's DOM, therefore, if you use this\n * target, do not update the modal via @Inputs while the modal is open, or you'll get an error.\n * We could workaround that inconvenient inside this integration, but that'd be detrimental to memory and\n * performance of everyone, for a relatively rare use case.\n */\n actions = {\n element: swal => swal.getActions(),\n // The button will never exist, but SweetAlert2 shows the actions block only if there is at least one button.\n options: { showConfirmButton: true }\n };\n /**\n * Targets the confirm button contents, replacing the text inside it (not the button itself)\n */\n confirmButton = {\n element: swal => swal.getConfirmButton(),\n options: { showConfirmButton: true }\n };\n /**\n * Targets the deny button contents, replacing the text inside it (not the button itself)\n */\n denyButton = {\n element: swal => swal.getDenyButton(),\n options: { showDenyButton: true }\n };\n /**\n * Targets the cancel button contents, replacing the text inside it (not the button itself)\n */\n cancelButton = {\n element: swal => swal.getCancelButton(),\n options: { showCancelButton: true }\n };\n /**\n * Targets the modal footer contents.\n */\n footer = {\n element: swal => swal.getFooter(),\n // Empty text that will never be shown but necessary so SweetAlert2 makes the div visible.\n options: { footer: ' ' }\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalTargets, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalTargets, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalTargets, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A structural directive that lets you use Angular templates inside of SweetAlerts.\n * There are different targetable zones provided by {@link SwalPortalTargets}: title, content, confirmButton, etc, but\n * you can also make your own target by implementing {@link SwalPortalTarget} and giving it to this directive.\n * The default target is the alert text content zone.\n *\n * Usage in your component's TypeScript (if you use another target than {@link SwalPortalTargets.content}):\n *\n * @Component({ ... })\n * export class MyComponent {\n * public constructor(public readonly swalTargets: SwalPortalTargets) {\n * }\n * }\n *\n * Usage in the template:\n *\n * \n * \n *
\n * ...\n *
\n *\n * \n * \n * Send ({{ secondsLeft }} seconds left)\n * \n * \n */\nclass SwalPortalDirective {\n resolver;\n injector;\n app;\n templateRef;\n sweetAlert2Loader;\n swalTargets;\n swalComponent;\n /**\n * Takes a portal target or nothing (then it will target the text content zone by default).\n *\n * See the {@link SwalPortalTargets} service to see the available targets.\n * See the class doc block for more informations.\n */\n target;\n /**\n * Holds the component reference of the controlled SwalPortalComponent to destroy it when no longer needed.\n */\n portalComponentRef;\n destroyed = new Subject();\n constructor(resolver, injector, app, templateRef, sweetAlert2Loader, swalTargets, swalComponent) {\n this.resolver = resolver;\n this.injector = injector;\n this.app = app;\n this.templateRef = templateRef;\n this.sweetAlert2Loader = sweetAlert2Loader;\n this.swalTargets = swalTargets;\n this.swalComponent = swalComponent;\n }\n /**\n * Subscribes to the the SweetAlert appearance/disappearance events to create/destroy the SwalPortalComponent\n * that will receive the consumer's template.\n */\n ngOnInit() {\n // Can't be set in a default property value, if the customer lets *swalPortal empty, the value we get is undef.\n this.target = this.target || this.swalTargets.content;\n //=> Apply the options provided by the target definition\n void this.swalComponent.update(this.target.options);\n //=> Subscribe to a few hooks frm the parent SwalComponent.\n this.swalComponent.didRender.pipe(takeUntil(this.destroyed)).subscribe(this.didRenderHook.bind(this));\n this.swalComponent.willOpen.pipe(takeUntil(this.destroyed)).subscribe(this.willOpenHook.bind(this));\n this.swalComponent.didDestroy.pipe(takeUntil(this.destroyed)).subscribe(this.didDestroyHook.bind(this));\n }\n /**\n * Signal any {@link destroyed} consumer that this is over, so they can unsubscribe from the\n * parent SwalComponent events.\n */\n ngOnDestroy() {\n this.destroyed.next();\n }\n /**\n * This didRender hook runs 1..n times (per modal instance), just before the modal is shown (and also before the\n * {@link willOpenHook}), or after Swal.update() is called.\n * This is a good place to render, or re-render, our portal contents.\n */\n async didRenderHook() {\n //=> Ensure the portal component is created\n if (!this.portalComponentRef) {\n this.portalComponentRef = this.createPortalComponent();\n }\n //=> SweetAlert2 created the modal or just erased all of our content, so we need to install/reinstall it.\n // Swal.update() is synchronous, this observable too, and mountComponentOnTarget too (the promise inside\n // this function is already resolved at this point), so the whole process of re-rendering and re-mounting\n // the portal component is fully synchronous, causing no blinks in the modal contents.\n const swal = await this.sweetAlert2Loader.swal;\n //=> Find target element\n const targetEl = this.target.element(swal);\n if (!targetEl)\n return;\n //=> Replace target's contents with our component\n // https://jsperf.com/innerhtml-vs-removechild/15\n while (targetEl.firstChild) {\n targetEl.removeChild(targetEl.firstChild);\n }\n targetEl.appendChild(this.portalComponentRef.location.nativeElement);\n }\n /**\n * This willOpen hook runs once (per modal instance), just before the modal is shown on the screen.\n * This is a good place to declare our detached view to the Angular app.\n */\n willOpenHook() {\n if (!this.portalComponentRef)\n return;\n //=> Make the Angular app aware of that detached view so rendering and change detection can happen\n this.app.attachView(this.portalComponentRef.hostView);\n }\n /**\n * This didDestroy hook runs once (per modal instance), just after the modal closing animation terminated.\n * This is a good place to detach and destroy our content, that is not visible anymore.\n */\n didDestroyHook() {\n if (!this.portalComponentRef)\n return;\n //=> Detach the portal component from the app and destroy it\n this.app.detachView(this.portalComponentRef.hostView);\n this.portalComponentRef.destroy();\n this.portalComponentRef = void 0;\n }\n /**\n * Creates the {@link SwalPortalComponent} and gives it the customer's template ref.\n */\n createPortalComponent() {\n //=> Create the SwalPortalComponent that will hold our content\n const factory = this.resolver.resolveComponentFactory(SwalPortalComponent);\n // Yes, we do not use the third argument that would directly use the target as the component's view\n // (unfortunately, because that would give a cleaner DOM and would avoid dirty and direct DOM manipulations)\n // That's because we want to keep our component safe from SweetAlert2's operations on the DOM, and to be\n // able to restore it at any moment, ie. after the modal has been re-rendered.\n const componentRef = factory.create(this.injector, []);\n //=> Apply the consumer's template on the component\n componentRef.instance.template = this.templateRef;\n return componentRef;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }, { token: i0.TemplateRef }, { token: SweetAlert2LoaderService }, { token: SwalPortalTargets }, { token: SwalComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: SwalPortalDirective, selector: \"[swalPortal]\", inputs: { target: [\"swalPortal\", \"target\"] }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SwalPortalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[swalPortal]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: i0.TemplateRef }, { type: SweetAlert2LoaderService }, { type: SwalPortalTargets }, { type: SwalComponent, decorators: [{\n type: Host\n }] }]; }, propDecorators: { target: [{\n type: Input,\n args: ['swalPortal']\n }] } });\n\nfunction provideDefaultSwal() {\n return import('sweetalert2');\n}\nclass SweetAlert2Module {\n static forRoot(options = {}) {\n return {\n ngModule: SweetAlert2Module,\n providers: [\n SweetAlert2LoaderService,\n { provide: swalProviderToken, useValue: options.provideSwal || provideDefaultSwal },\n { provide: fireOnInitToken, useValue: options.fireOnInit || false },\n { provide: dismissOnDestroyToken, useValue: options.dismissOnDestroy || true }\n ]\n };\n }\n static forChild(options = {}) {\n return {\n ngModule: SweetAlert2Module,\n providers: [\n ...options.provideSwal ? [\n SweetAlert2LoaderService,\n { provide: swalProviderToken, useValue: options.provideSwal }\n ] : [],\n ...options.fireOnInit !== undefined ? [\n { provide: fireOnInitToken, useValue: options.fireOnInit }\n ] : [],\n ...options.dismissOnDestroy !== undefined ? [\n { provide: dismissOnDestroyToken, useValue: options.dismissOnDestroy }\n ] : []\n ]\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2Module, declarations: [SwalDirective, SwalComponent, SwalPortalDirective, SwalPortalComponent], imports: [CommonModule], exports: [SwalComponent, SwalPortalDirective, SwalDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2Module, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SweetAlert2Module, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SwalDirective, SwalComponent, SwalPortalDirective, SwalPortalComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SwalComponent, SwalPortalDirective, SwalDirective\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SwalComponent, SwalDirective, SwalPortalDirective, SwalPortalTargets, SweetAlert2LoaderService, SweetAlert2Module };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}