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