{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-modal.mjs","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.html","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.html","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.html","../../../projects/ng-dsv/ds/modal/ng-vagabond-lab-ng-dsv-ds-modal.ts"],"sourcesContent":["import { Injectable, signal } from \"@angular/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n    private readonly states = new Map<string, ReturnType<typeof signal<boolean>>>();\n\n    getSignal(id: string) {\n        if (!this.states.has(id)) {\n            const newSignal = signal<boolean>(false);\n            this.states.set(id, newSignal);\n        }\n        return this.states.get(id)?.() ?? false;\n    }\n\n    open(id: string) {\n        this.states.get(id)?.set(true);\n    }\n\n    close(id: string) {\n        this.states.get(id)?.set(false);\n    }\n\n    toggle(id: string) {\n        const s = this.states.get(id);\n        if (s) s.update(v => !v);\n    }\n}","import { Component, effect, inject, input, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { ModalService } from '../service/modal.service';\n\n@Component({\n  selector: 'app-modal',\n  imports: [DsvButtonComponent],\n  templateUrl: './modal.component.html',\n  styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent {\n  id = input.required<string>();\n  titleText = input.required<string>();\n  class = input<string>('');\n\n  isOpen = signal<boolean>(false);\n\n  modalService = inject(ModalService);\n  menuService = inject(MenuService);\n\n  constructor() {\n    effect(() => {\n      this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);\n      if (this.isOpen()) {\n        this.menuService.isMenuOpen.set(false);\n      }\n    });\n  }\n\n  close = () => {\n    this.modalService.close(this.id());\n  };\n}\n","@if (isOpen()) {\n  <div class=\"modal-overlay\"></div>\n  <div [class]=\"'modal ' + class()\">\n    <div class=\"modal-header\">\n      <b>{{ titleText() }}</b>\n      <dsv-button (callback)=\"close()\" variant=\"text\" color=\"default\">\n        X\n      </dsv-button>\n    </div>\n    <div class=\"modal-content\">\n      <ng-content></ng-content>\n    </div>\n    <div class=\"modal-footer\">\n      <ng-content select=\"modal-footer\"></ng-content>\n    </div>\n  </div>\n}\n","import {\n  Component,\n  effect,\n  inject,\n  input,\n  output,\n  signal,\n} from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ModalService } from '../../service/modal.service';\nimport { ModalComponent } from '../modal.component';\n\n@Component({\n  selector: 'app-modal-alert',\n  imports: [ModalComponent, DsvButtonComponent, TranslatePipe],\n  templateUrl: './modal-alert.component.html',\n})\nexport class ModalAlertComponent {\n  id = input.required<string>();\n  titleText = input<string>('title');\n  text = input<string>('text');\n  button = input<string>('button');\n  buttonClose = input<string>();\n  callback = output<void>();\n\n  isOpen = signal<boolean>(false);\n\n  modalService = inject(ModalService);\n\n  constructor() {\n    effect(() => {\n      this.isOpen.set(this.modalService.getSignal(this.id() ?? false));\n    });\n  }\n\n  doClick = () => {\n    this.modalService.toggle(this.id());\n    this.callback.emit();\n  };\n\n  doClickClose = () => {\n    this.modalService.close(this.id());\n  };\n}\n","<app-modal [id]=\"id()\" [titleText]=\"titleText()\">\n  {{ text() }}\n  <div ngProjectAs=\"modal-footer\">\n    @if (buttonClose()) {\n      <dsv-button (callback)=\"doClickClose()\" color=\"error\">\n        {{ buttonClose()! | translate }}\n      </dsv-button>\n    }\n    <dsv-button (callback)=\"doClick()\" color=\"success\">\n      {{ button() | translate }}\n    </dsv-button>\n  </div>\n</app-modal>\n","import { Component, inject, input } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ColorType } from '@ng-vagabond-lab/ng-dsv/type';\nimport { ModalService } from '../../service/modal.service';\n\n@Component({\n  selector: 'app-modal-button',\n  imports: [DsvButtonComponent],\n  templateUrl: './modal-button.component.html',\n})\nexport class ModalButtonComponent {\n  modalService = inject(ModalService);\n\n  id = input.required<string>();\n  icon = input<string>('');\n  text = input<string>('');\n  color = input<ColorType>('primary');\n\n  doToogle = () => {\n    this.modalService.toggle(this.id());\n  };\n}\n","<dsv-button\n  [color]=\"icon() ? 'inherit' : color()\"\n  [icon]=\"icon()\"\n  [variant]=\"icon() ? 'text' : 'contained'\"\n  (callback)=\"doToogle()\"\n>\n  {{ text() }}\n</dsv-button>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}