{"version":3,"file":"bootkit-ng1-components-confirmation.mjs","sources":["../../../projects/ng1/components/confirmation/confirmation.component.ts","../../../projects/ng1/components/confirmation/confirmation.component.html","../../../projects/ng1/components/confirmation/types.ts","../../../projects/ng1/components/confirmation/confirmation.service.ts","../../../projects/ng1/components/confirmation/confirmation.directive.ts","../../../projects/ng1/components/confirmation/confirmation.module.ts","../../../projects/ng1/components/confirmation/bootkit-ng1-components-confirmation.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ConfirmationConfig, ConfirmationRef } from './types';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport { LocalizationModule } from '@bootkit/ng1/localization';\n\n@Component({\n    selector: 'ng1-confirmation',\n    exportAs: 'ng1Confirmation',\n    templateUrl: 'confirmation.component.html',\n    styleUrls: ['confirmation.component.scss'],\n    standalone: true,\n    imports: [\n        CommonModule,\n        DialogModule,\n        LocalizationModule,\n    ],\n})\nexport class ConfirmationComponent implements OnInit {\n    confirmationRef!: ConfirmationRef;\n    _config?: ConfirmationConfig;\n    _clicked = false;\n\n    constructor() {\n    }\n\n    _onClick(result: boolean) {\n        this._clicked = true;\n        if (result) {\n            this.confirmationRef.confirm();\n        } else {\n            this.confirmationRef.cancel();\n        }\n\n        if (this._config?.autoClose == null || this._config?.autoClose === true) {\n            this.confirmationRef.close();\n        }\n    }\n\n    ngOnInit(): void {\n        this.confirmationRef.configChanged.subscribe(x => this._config = x);\n        // var addClass = (c: string) => this._renderer.addClass(this._element.nativeElement, c);\n\n        // ['card', 'show'].forEach(c => addClass(c));\n        // if (this.config?.color) {\n        //     addClass('text-bg-' + this.config?.color);\n        // }\n    }\n}\n","<div class=\"modal d-block\" tabindex=\"-1\">\n    <div class=\"modal-dialog\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\">{{_config?.title ?? 'warning' | ng1Translate }}</h5>\n            </div>\n\n            <div class=\"modal-body\">\n                {{ _config?.message ?? 'areYouSure' | ng1Translate }}\n            </div>\n\n            <div class=\"modal-footer\">\n                <div>\n                    <button type=\"button\" class=\"btn btn-success me-1\" aria-label=\"Confirm\" [disabled]=\"_clicked\"\n                            (click)=\"_onClick(true)\">\n                        {{'ok' | ng1Translate}}\n                    </button>\n\n                    <button type=\"button\" class=\"btn btn-secondary\" aria-label=\"Close\" [disabled]=\"_clicked\"\n                            (click)=\"_onClick(false)\">\n                        {{'cancel' | ng1Translate}}\n                    </button>\n                </div>\n\n                <div class=\"ms-auto\">\n                    @if(_config?.icon == 'loading') {\n                    <div class=\"spinner-border text-success\" role=\"status\">\n                        <span class=\"visually-hidden\">Processing</span>\n                    </div>\n                    }\n\n                    @if(_config?.icon == 'check') {\n                    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'\n                         width=\"32\" height=\"32\">\n                        <path fill='#0493A8'\n                              d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z' />\n                    </svg>\n                    }\n                </div>\n            </div>\n        </div>\n    </div>\n</div>","import { DialogRef } from \"@angular/cdk/dialog\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\n\nexport interface ConfirmationConfig {\n    message?: string;\n    title?: string;\n    // color?: BootstrapColor,\n    icon?: 'loading' | 'check';\n    /** automaticaly close confirmation after confirmation/cancelation. default is true */\n    autoClose?: boolean;\n}\n\nexport class ConfirmationRef {\n    private _configChangeSubject = new Subject<ConfirmationConfig>();\n    public configChanged = this._configChangeSubject.asObservable();\n\n    private _confirmSubject = new Subject();\n    public confirmed = this._confirmSubject.asObservable();\n\n    private _cancelSubject = new Subject();\n    public canceled = this._cancelSubject.asObservable();\n\n    constructor(private _dialogRef: DialogRef<any, any>, private _config: ConfirmationConfig) {\n    }\n\n    confirm() {\n        this._confirmSubject.next(undefined);\n    }\n\n    cancel() {\n        this._cancelSubject.next(undefined);\n    }\n\n    close() {\n        this._dialogRef.close();\n    }\n\n    update(config: ConfirmationConfig) {\n        for (const key in config as any) {\n            if (Object.prototype.hasOwnProperty.call(config, key)) {\n                const element = (config as any)[key];\n                if(element !== undefined) {\n                    (this._config as any)[key] = element;\n                }\n            }\n        }\n\n        this._configChangeSubject.next(this._config);\n    }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { inject, Injectable } from '@angular/core';\nimport { ConfirmationComponent } from './confirmation.component';\nimport { ConfirmationConfig, ConfirmationRef } from './types';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConfirmationService {\n  private _dialog = inject(Dialog);\n\n  open(config: ConfirmationConfig = {}): ConfirmationRef {\n    var dlgRef = this._dialog.open(ConfirmationComponent, {\n      disableClose: false,\n    });\n\n    var componentRef = dlgRef.componentInstance!;\n    componentRef.confirmationRef = new ConfirmationRef(dlgRef, config);\n    return componentRef.confirmationRef;\n  }\n}\n\n","import { Directive, EventEmitter, HostListener, inject, input, Input, Output } from '@angular/core';\nimport { ConfirmationService } from './confirmation.service';\nimport { ConfirmationConfig, ConfirmationRef } from './types';\n\n@Directive({\n  selector: '[ng1Confirmation]',\n  exportAs: 'ng1Confirmation',\n  standalone: true\n})\nexport class ConfirmationDirective {\n  private _confirmationService = inject(ConfirmationService);\n\n  public readonly config = input<ConfirmationConfig>();\n  @Output() public readonly confirm = new EventEmitter<ConfirmationRef>();\n  @Output() public readonly cancel = new EventEmitter<ConfirmationRef>();\n\n  @HostListener('click')\n  protected _onClick() {\n    var ref = this._confirmationService.open(this.config());\n    ref.confirmed.subscribe(x => this.confirm.emit(ref));\n    ref.canceled.subscribe(x => this.cancel.emit(ref));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { ConfirmationComponent } from './confirmation.component';\nimport { ConfirmationDirective } from './confirmation.directive';\n\n@NgModule({\n    imports: [\n        ConfirmationComponent,\n        ConfirmationDirective\n    ],\n    exports: [\n        ConfirmationComponent,\n        ConfirmationDirective\n    ]\n})\nexport class ConfirmationModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}