{"version":3,"file":"suarsan-ngx-keyvalue.mjs","sources":["../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue.service.ts","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue-add/ngx-keyvalue-add.component.ts","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue-add/ngx-keyvalue-add.component.html","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue-table/ngx-keyvalue-table.component.ts","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue-table/ngx-keyvalue-table.component.html","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue.component.ts","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue.component.html","../../../../projects/suarsan/ngx-keyvalue/src/lib/ngx-keyvalue.module.ts","../../../../projects/suarsan/ngx-keyvalue/src/public-api.ts","../../../../projects/suarsan/ngx-keyvalue/src/suarsan-ngx-keyvalue.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { Item } from './item.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgxKeyvalueService {\r\n\r\n  private addItemListener = new Subject<Item>();\r\n  private deleteItemListener = new Subject<Item>();\r\n\r\n  constructor() { }\r\n\r\n  public listenAddItem(): Observable<Item> {\r\n    return this.addItemListener.asObservable();\r\n  }\r\n\r\n  public addItem(item: Item) {\r\n    this.addItemListener.next(item);\r\n  }\r\n\r\n  public listenDeleteItem(): Observable<Item> {\r\n    return this.deleteItemListener.asObservable();\r\n  }\r\n\r\n  public deleteItem(item: Item) {\r\n    this.deleteItemListener.next(item);\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Item } from '../item.interface';\r\nimport { NgxKeyvalueService } from '../ngx-keyvalue.service';\r\n\r\n@Component({\r\n  selector: 'ngx-keyvalue-add',\r\n  templateUrl: './ngx-keyvalue-add.component.html',\r\n  styleUrls: ['./ngx-keyvalue-add.component.scss']\r\n})\r\nexport class NgxKeyvalueAddComponent implements OnInit {\r\n\r\n  itemForm = new FormGroup({\r\n    key: new FormControl(null, Validators.required),\r\n    value: new FormControl(null, Validators.required)\r\n  });\r\n\r\n  constructor(private keyvalueService: NgxKeyvalueService) { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  public add() {\r\n    if (this.itemForm.valid) {\r\n      const item: Item = { key: this.itemForm.get('key')!.value, value: this.itemForm.get('value')!.value };\r\n      this.keyvalueService.addItem(item);\r\n      this.itemForm.reset();\r\n    }\r\n  }\r\n}\r\n","<header [formGroup]=\"itemForm\">\r\n    <input type=\"text\" formControlName=\"key\" placeholder=\"Key\">\r\n    <input type=\"text\" formControlName=\"value\" placeholder=\"Value\">\r\n    <button [disabled]=\"!itemForm.valid\" (click)=\"add()\">ADD</button>\r\n</header>","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Item } from '../item.interface';\r\nimport { NgxKeyvalueService } from '../ngx-keyvalue.service';\r\n\r\n@Component({\r\n  selector: 'ngx-keyvalue-table',\r\n  templateUrl: './ngx-keyvalue-table.component.html',\r\n  styleUrls: ['./ngx-keyvalue-table.component.scss']\r\n})\r\nexport class NgxKeyvalueTableComponent implements OnInit {\r\n\r\n  @Input() items!: Array<Item>;\r\n\r\n  constructor(private ngxKeyvalueService: NgxKeyvalueService) {\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  public delete(item: Item) {\r\n    this.ngxKeyvalueService.deleteItem(item);\r\n  }\r\n}\r\n","<table *ngIf=\"items && items.length > 0\">\r\n    <thead>\r\n        <tr>\r\n            <th>KEY</th>\r\n            <th>VALUE</th>\r\n            <th></th>\r\n        </tr>\r\n    </thead>\r\n    <tbody>\r\n        <tr *ngFor=\"let item of items\">\r\n            <td>{{ item.key }}</td>\r\n            <td>{{ item.value }}</td>\r\n            <td>\r\n                <button (click)=\"delete(item)\">\r\n                    <span>DELETE</span>\r\n                </button>\r\n            </td>\r\n        </tr>\r\n    </tbody>\r\n</table>\r\n<figure *ngIf=\"!(items && items.length > 0)\">\r\n    <p>keyvalue pairs not found</p>\r\n</figure>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { tap } from 'rxjs';\r\nimport { Item } from './item.interface';\r\nimport { NgxKeyvalueService } from './ngx-keyvalue.service';\r\n\r\n@Component({\r\n  selector: 'ngx-keyvalue',\r\n  templateUrl: 'ngx-keyvalue.component.html',\r\n  styleUrls: ['ngx-keyvalue.component.scss']\r\n})\r\nexport class NgxKeyvalueComponent implements OnInit {\r\n\r\n  @Input() input!: Array<Item>;\r\n  @Output() changes = new EventEmitter<Array<Item>>();\r\n  items = new Array<Item>();\r\n\r\n  constructor(private keyValueService: NgxKeyvalueService,\r\n              private cd: ChangeDetectorRef) { }\r\n\r\n  ngOnInit() {\r\n    this.listenAddItem();\r\n    this.listenDeleteItem();\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.input && (this.input.length > 0)) {\r\n      this.items = this.input;\r\n    }\r\n  }\r\n\r\n  private listenAddItem() {\r\n    this.keyValueService.listenAddItem().pipe(\r\n      tap(o => this.items.push(o)),\r\n      tap(o => this.cd.detectChanges()),\r\n      tap(o => this.changes.emit(this.items))\r\n    ).subscribe();\r\n  }\r\n\r\n  private listenDeleteItem() {\r\n    this.keyValueService.listenDeleteItem().pipe(\r\n      tap(item => this.items.splice(this.items.findIndex(i => i.key === item.key), 1)),\r\n      tap(o => this.cd.detectChanges()),\r\n      tap(o => this.changes.emit(this.items))\r\n    ).subscribe();\r\n  }\r\n\r\n}\r\n","<article>\r\n    <ngx-keyvalue-add></ngx-keyvalue-add>\r\n    <ngx-keyvalue-table [items]=\"items\"></ngx-keyvalue-table>\r\n</article>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxKeyvalueAddComponent } from './ngx-keyvalue-add/ngx-keyvalue-add.component';\r\nimport { NgxKeyvalueTableComponent } from './ngx-keyvalue-table/ngx-keyvalue-table.component';\r\nimport { NgxKeyvalueComponent } from './ngx-keyvalue.component';\r\nimport { NgxKeyvalueService } from './ngx-keyvalue.service';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NgxKeyvalueComponent,\r\n    NgxKeyvalueAddComponent,\r\n    NgxKeyvalueTableComponent\r\n  ],\r\n  providers: [\r\n    NgxKeyvalueService\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ],\r\n  exports: [\r\n    NgxKeyvalueComponent\r\n  ]\r\n})\r\nexport class NgxKeyvalueModule { }\r\n","/*\n * Public API Surface of ngx-keyvalue\n */\n\nexport * from './lib/ngx-keyvalue.service';\nexport * from './lib/ngx-keyvalue.component';\nexport * from './lib/ngx-keyvalue.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxKeyvalueService","i2","i2.NgxKeyvalueAddComponent","i3.NgxKeyvalueTableComponent"],"mappings":"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"}